Skip to content
This repository was archived by the owner on Oct 19, 2026. It is now read-only.

Releases: Pietwars/DisasterMesh

DisasterMesh v0.9.2

Choose a tag to compare

@github-actions github-actions released this 18 Oct 11:07
b2d33de

⚠️ Kein zertifiziertes Notrufsystem. In Lebensgefahr immer 112 wählen. Diese Firmware ist auf echter Hardware nicht abgenommen.

Änderungen

Verlauf-Speicherfehler behoben: Der Web-Chatverlauf (und der Ausgang für Direktnachrichten) wird jetzt im Flash gespeichert. Firmwarekennung v1.18.0-ahr0.9.2; Release-Paket weiterhin nur für Heltec WiFi LoRa 32 V2. 0.9.2 ist nicht separat auf Hardware getestet.

  • Chatverlauf/Ausgang gespeichert (Fix, aus DisAHRsterRadio-MeshCore übernommen): SPIFFS.open(fehlendeDatei,"r+") liefert unter arduino-esp32 ein gültiges Verzeichnis-Handle; dadurch wurde /dr-history.bin nie angelegt und der Web-Chatverlauf nie gespeichert (gleiches Muster bei /dr-outbox.bin). Neu SlotFile.h (Öffnen per SPIFFS.exists(), Verzeichnis-Handles verwerfen, Auffüllen mit Nullen bis zum Slot, da SPIFFS nicht hinter das Dateiende springen kann), genutzt von DisasterPortal (Verlauf) und DeliveryOutbox; serielles [VERLAUF]-Log bei Schreibfehlern. Hosttest tests/slot_file.test.cpp; Testattrappe tests/fakes/SPIFFS.h kennt jetzt seek(…, SeekEnd), position() und isDirectory(). Oberfläche unverändert.
  • Version 0.9.2 in README, Projektseite, Demo, Weboberfläche und Flyer (Flyer neu erzeugt, QR-Code zum Release v0.9.2).

Pakete

Board Datei
Heltec WiFi LoRa 32 V2 (SX1276) DisasterMesh-0.9.2-heltec-v2.zip

Jedes Paket enthält …-factory.bin (komplett an 0x0 flashen, z. B. mit https://espressif.github.io/esptool-js/), die Einzelteile unter teile/, SHA256SUMS und eine deutsche ANLEITUNG.md. Antenne zuerst anschrauben! Update ohne Datenverlust: nur teile/firmware.bin an 0x10000.

Automatisch gebaut vom Workflow „Release“ aus dem Tag v0.9.2 (Pietwars/DisasterMesh); vor der Veröffentlichung auf Vollständigkeit und Prüfsummen geprüft.

DisasterMesh v0.9.1

Choose a tag to compare

@github-actions github-actions released this 18 Oct 10:02
16cc268

⚠️ Kein zertifiziertes Notrufsystem. In Lebensgefahr immer 112 wählen. Diese Firmware ist auf echter Hardware nicht abgenommen.

Änderungen

Versionsangleich der Projektfamilie auf 0.9.1 (DisAHRsterRadio-MeshCore 0.9.1 auf LILYGO T-Deck Plus und Heltec V2 getestet). Enthält die bisher unveröffentlichten Punkte unten (offener Zugang, feste Bibliotheksversionen); Firmware-Funktionen von DisasterMesh sonst unverändert, Firmwarekennung v1.18.0-ahr0.9.1.

  • Release-Paket vorerst nur für Heltec WiFi LoRa 32 V2 (release.yml); T3-S3 und T3 V1.6.1 bleiben im Code und im CI, sind aber nicht im Release. DisasterMesh unterstützt den T-Deck Plus nicht.
  • README, Projektseite, Flyer-Quelle und Demo auf 0.9.1; README-Bilder aus der Demo neu aufgenommen (tools/capture_previews.cjs).

Offener Zugang (seit 0.9.0-alpha)

  • Offenes WLAN: softAP(ssid, nullptr, 1, false, 4), gespeichertes ap-pass wird beim Start gelöscht; seriell/OLED „offen“.
  • Bluetooth ohne PIN: Just Works (ESP32/nRF52/RP2040), gespeicherte BLE-PIN wird auf 0 gesetzt, keine Zufalls-PIN mehr, App kann keine PIN setzen; nRF52 ohne Bluetooth-DFU.
  • Offene Bluetooth-/Netzwerk-Companions: Nachrichten, Kontakte, Uhrzeit-Abgleich, Status; Betreiberbefehle (Funk, Name, Kanäle, Schlüssel, Reset, CLI) nur USB/Admin-Bereich. Längen-/Pfadprüfungen für Companion-Befehle.
  • Live-Demo ohne Demo-Zugangsdaten (Admin-Bereich in der Simulation direkt offen). Doku, Flash-Anleitung und Flyer ohne Zugangsdaten-Hinweise; Hosttest tests/open_access.test.cpp. Hardwareabnahme steht aus.
  • Room-Server mit öffentlichem Gast-Passwort hello (MeshCore-Standard): mit hello lesen und schreiben, ohne Passwort nur lesen (allow.read.only an). Beim Start wird das Gast-Passwort auf hello gesetzt (ersetzt leere/zufällige Werte älterer Versionen); set guest.password und set allow.read.only werden abgelehnt. Admin-Login unverändert. Portal: kein Eingabefeld, „Beitreten“ meldet automatisch mit hello an – Aushängen im Portal wieder möglich. Hosttest tests/room_access.test.cpp, docs/meshcore-room-changes.patch neu erzeugt.

Feste Versionen (17.10.2026)

  • Bibliotheken festgelegt (Verbesserungsliste 6): alle ^/~-Bereiche in firmware/MeshCore/platformio.ini und allen variants/*/platformio.ini auf die heute aufgelöste Version gesetzt (z. B. Crypto 0.4.0, RTClib 2.1.4, Melopero RV3028 1.2.0, Adafruit SSD1306 2.5.17, base64 1.4.0) mit tools/pin_libs.py; CI (Tests) prüft mit --check, dass keine Bereiche zurückkommen. Plattform war schon fest (platformio/espressif32@6.11.0), PlatformIO in CI 6.2.0.

Pakete

Board Datei
Heltec WiFi LoRa 32 V2 (SX1276) DisasterMesh-0.9.1-heltec-v2.zip

Jedes Paket enthält …-factory.bin (komplett an 0x0 flashen, z. B. mit https://espressif.github.io/esptool-js/), die Einzelteile unter teile/, SHA256SUMS und eine deutsche ANLEITUNG.md. Antenne zuerst anschrauben! Update ohne Datenverlust: nur teile/firmware.bin an 0x10000.

Automatisch gebaut vom Workflow „Release“ aus dem Tag v0.9.1 (Pietwars/DisasterMesh); vor der Veröffentlichung auf Vollständigkeit und Prüfsummen geprüft.

Werbevideos v2 (Facebook, 4:5)

Pre-release

Choose a tag to compare

@Pietwars Pietwars released this 18 Oct 03:39
611a14c

Werbevideos für Facebook (4:5, 1080×1350, H.264/AAC, ca. 28–29 s), deutsche Sprecherin, gemafreie Musik, echte Aufnahmen der Live-Demos.

  • DisasterMesh-facebook-v2.mp4: DisasterMesh, das Original (MeshCore + Web-UI MeshAhrtal)
  • DisAHRsterRadio-MeshCore-facebook-v2.mp4: DisAHRsterRadio, das MeshCore-Funknetz fürs Ahrtal
  • HaldenFunk-facebook-v2.mp4: HaldenFunk – Glück Auf (Sangerhausen / Mansfelder Land)
  • HaldenFunk-MeshCore-facebook-v2.mp4: HaldenFunk – Glück Auf, MeshCore-Version
  • Werbevideos-v2.zip: alle vier Videos plus Skripte

Keine Firmware-Version. Dieses Release ist nur eine Vorabversion für Werbematerial.

DisasterMesh v0.9.0-alpha (Vorabversion)

Choose a tag to compare

@github-actions github-actions released this 17 Oct 10:47
b11387b

⚠️ Kein zertifiziertes Notrufsystem. In Lebensgefahr immer 112 wählen. Vorabversion, auf echter Hardware nicht abgenommen.

Änderungen

  • Standard-Funkprofil vereinheitlicht auf das MeshCore-Preset EU/UK (Narrow): 869,618 MHz, 62,5 kHz, SF8, CR 4/8. Neu: -D LORA_CR=8 global in platformio.ini – bisher bekamen nur die eigenen Profile CR 4/8, die übrigen Geräte der Matrix fielen auf CR 4/5 zurück. Sendeleistung unverändert (nicht erhöht), Syncword MeshCore-Standard.
  • Doku (firmware/MeshCore/docs/cli_commands.md, ERSTE_SCHRITTE.md, T3S3_V13_WINDOWS.md, REPEATER_WINDOWS.md, SCHWARZES_BRETT.md): Standardwerte 869.618,62.5,8,8.
  • Flyer 0.9.0-alpha neu erzeugt (Druck-PDF mit QR-Codes zu Download und Demo, Digital-PDF mit klickbaren Links) mit dem Generator tools/flyer/flyer.py (Konfiguration tools/flyer/flyer.json, Version aus VERSION, schreibt auch docs/flyer/flyer.html); beide PDFs hängen am Release.
  • Fußzeile der Weboberfläche (und damit PortalPage.h) zeigt jetzt „MeshCore v1.18.0 · DisAHRsterRadio 0.9.0-alpha“ statt v1.17.1 / 0.8.0; Demo-Firmwarekennung v1.18.0-ahr0.9.0-alpha.
  • Zentrale Version: Datei VERSION ist die einzige Quelle. tools/version.py schreibt Fußzeile, Demo, Firmwarekennung aller Profile, README, package.json/-lock, Flyer-HTML und Projektseite; --check läuft in CI (Tests + Firmware) und bricht bei Abweichungen ab (tests/version.test.py).
  • CI: nach tools/embed_web.py prüft git diff --exit-code, dass PortalPage.h/PortalAssets.h eingecheckt zur Weboberfläche passen (auch im Job sx1276-boards und T3-S3).
  • Doku: englische Kurzfassung (Boards, MeshCore 1.18), T3S3_V13_WINDOWS.md, VALIDIERUNG.md, dist/LESEN.md aktualisiert; STARTPAKET.md verlinkt keine abgelaufenen/anmeldepflichtigen Artefakte mehr als aktuelle Downloads.
  • Projektfamilie: eine gemeinsame Tabelle mit allen fünf Repositorys (erzeugt mit tools/projektfamilie.py).
  • Automatische Releases: Workflow release.yml baut bei jedem Tag v* die drei Boards (T3-S3, T3 V1.6.1, Heltec V2) mit tools/package.sh, packt je Board DisasterMesh-<Version>-<Board>.zip mit …-factory.bin, teile/ (bootloader, partitions, boot_app0, firmware, spiffs), SHA256SUMS und deutscher ANLEITUNG.md, prüft alles mit tools/verify_release.py (Abbruch bei fehlender/leerer Datei, falscher Prüfsumme, fehlender Version) und veröffentlicht eine Vorabversion mit Text aus diesem CHANGELOG (tools/release_notes.py) plus Flyern. Probelauf ohne Veröffentlichung bei PRs, die die Paketierung ändern.
  • Freier Speicher (Heap): /api/state meldet zusätzlich diagnostics.heapWarn (Standard 40 KB, HEAP_WARN_BYTES). Gerätediagnose zeigt RAM in KB; liegt freier RAM oder Minimum unter der Schwelle, erscheint ein roter Hinweis, die Statuszeile wird rot mit ⚠. Seriell alle 30 s [HEAP] frei … | Minimum … | groesster Block …, unter der Schwelle mit WARNUNG: wenig freier Speicher.
  • Karten verkleinert: tools/shrink_geojson.py (Gegenstück zu HaldenFunk/tools/shrink_maps.py für GeoJSON) – alle fünf Pakete zusammen 6,2 → 3,8 MB (Heimersheim 2,4 → 1,5 MB, Dernau 1,3 → 0,7 MB, Altenahr 0,9 → 0,5 MB, Sinzig 0,7 → 0,4 MB, Ahrtal 0,97 → 0,81 MB). Koordinaten ~1 m, Douglas-Peucker, unbenutzte OSM-Eigenschaften an Linien/Flächen entfernt; Punkte und POIs vollständig. Paketrevisionen auf 2026-10-17-klein1 angehoben (Handys laden neu). Vorher/Nachher-Screenshots aller Pakete verglichen; Test tests/maps_shrink.test.py.

Schlanke TTGO-/T3-V1.6.1-Profile

  • T3 V1.6.1 / TLora V2.1-1.6 wurde ohne Optimierung gebaut (-O0): Die Upstream-Variante LilyGo_TLora_V2_1_1_6 entfernt mit build_unflags = -Os die Optimierung, dabei fällt auch das -Os aus build_flags weg. disaster_ttgo_wifi (inkl. _wifi_sd, disaster_tlora_v2_1_sx1276_wifi), disaster_ttgo_repeater, disaster_ttgo_room übernehmen dieses build_unflags nicht mehr → -Os wie bei allen anderen Boards.
  • Die ~15 Sensorbibliotheken aus sensor_base (INA3221/219/226/260, AHTX0, BME280/680, BMP280/085, SHTC3, SHT4x, LPS22HB, MLX90614, VL53L0X, MicroNMEA, BSEC) werden für diese Profile nicht mehr gebaut ([dm_classic_slim] in firmware/MeshCore/platformio.local.ini: eigene lib_deps, lib_ignore). ENV_INCLUDE_* waren schon aus; der Sensorcode fällt beim Kompilieren weg, Batterie-Telemetrie bleibt. T3-S3-Profile (GPS) unverändert.
  • Flash (App-Partition 1,9 MB, min_spiffs.csv): disaster_ttgo_wifi 85,1 % → 65,6 % (1 672 453 → 1 289 693 Bytes), _wifi_sd 87,1 % → 67,2 %, Repeater 44,4 % → 29,5 %, Room 43,4 % → 29,3 %. Auf Hardware noch nicht geprüft.

Pakete

Board Datei
LILYGO T3-S3 V1.3 (SX1262) DisasterMesh-0.9.0-alpha-t3s3.zip
LILYGO T3 V1.6.1 (SX1276) DisasterMesh-0.9.0-alpha-t3-v161.zip
Heltec WiFi LoRa 32 V2 (SX1276) DisasterMesh-0.9.0-alpha-heltec-v2.zip

Jedes Paket enthält …-factory.bin (komplett an 0x0 flashen, z. B. mit https://espressif.github.io/esptool-js/), die Einzelteile unter teile/, SHA256SUMS und eine deutsche ANLEITUNG.md. Antenne zuerst anschrauben! Update ohne Datenverlust: nur teile/firmware.bin an 0x10000.

Automatisch gebaut vom Workflow „Release“ aus dem Tag v0.9.0-alpha (Pietwars/DisasterMesh); vor der Veröffentlichung auf Vollständigkeit und Prüfsummen geprüft.

DisAHRsterRadio 0.8.0

Choose a tag to compare

@Pietwars Pietwars released this 16 Oct 03:06
b684ddf

Prototyp – keine Hardwarefreigabe. Version 0.8.0 ist auf echter Hardware noch nicht getestet. Nicht als einziges Kommunikationsmittel im Notfall verwenden. Im Notfall immer 112.

Neu in 0.8.0

  • Startbild „DisAHRsterRadio · MeshCore-Funknetz fürs Ahrtal“ aus dem Originalfoto (© Pietwars) mit Mesh-Knoten und Funkwellen, lokal als WebP (ca. 30 KB)
  • Ahrtal-Bezug: Leiste mit dem Flusslauf von Schuld bis Sinzig, Hinweis „Notruf 112“, kurzer Gedenktext zur Flut im Juli 2021; größere Schaltflächen und Schrift
  • Schnellmeldungen auf dem Schwarzen Brett: Trinkwasser, Strom/Laden, Medikamente, Verletzt, Evakuierung, „Mir geht es gut“, Hilfe anbieten, Strom vorhanden – mit Ortsliste
  • Standort/GPS: Standort teilen per Ortsliste, Karte, Handy-Ortung oder GPS-Modul; kompakte Meldung !DP1 mit Genauigkeit grob/mittel/fein, nur auf Knopfdruck, höchstens alle 5 Minuten; Positionen mit Alter auf der Karte
  • Optionale GPS-Firmware disaster_t3s3_sx1262_wifi_gps für ein externes NMEA-GPS an GPIO 43/44, eigener CI-Build (Anschluss)
  • Konsistenz: einheitliche Namen – DisAHRsterRadio (Projekt), MeshAhrtal (Oberfläche/Netz), DisasterMesh (nur Repository); README neu, Validierungsstand 0.8.0 ehrlich dokumentiert, Vorschaubilder neu
  • Repeater-Name geändert: Der Bekanntgabename heißt jetzt DisAHRsterRadio-Repeater-… statt -Relay-… – bestehende Repeater erscheinen nach dem Update unter neuem Namen

Dateien

  • DisAHRsterRadio-Ahrtal-Demo.zip – interaktive Demo 0.8.0, alles simuliert. Entpacken, index.html öffnen. (veraltet: enthält noch den früheren Demo-Adminzugang; aktuelle Demo ohne Zugangsdaten: https://pietwars.github.io/DisasterMesh/demo/)
  • DisAHRsterRadio-Startpaket.zip – weiterhin der geprüfte Stand 0.7.1.1 (identisch mit v0.7.2), bis ein neuer Prüfstand für 0.8.0 vorliegt

Firmware-Builds stehen wie bisher unter Actions bereit (Anmeldung nötig) oder lassen sich selbst bauen. Vor dem Flashen Firmware und Einstellungen sichern. Details: CHANGELOG

DisAHRsterRadio 0.7.2

Choose a tag to compare

@Pietwars Pietwars released this 16 Oct 01:21
04fe628

Entwicklungsprototyp · LILYGO T3-S3 V1.3 / SX1262 / 868 MHz – kein Ersatz für ein geprüftes Notrufsystem. Zwei echte Boards, Repeater, Room-Server über Neustart und ein echtes iPhone sind nicht abgenommen.

Neu in 0.7.2

  • Verlauf im Flash lässt sich im Adminbereich löschen (unverschlüsselt; Schlüssel und SD-Archiv bleiben).
  • Sendebudget pro Handy: höchstens alle 15 Sekunden und sechsmal in zehn Minuten; geräteweites Minimum von 5 s bleibt.
  • Optionaler Name pro Handy vor normalen Nachrichten (nicht vor !DM1-Meldungen).
  • Schwarzes Brett zeigt aktuelle Hilfen vor Angeboten und dem übrigen Verlauf (Anzeige, keine Funkpriorität).
  • Kanalnamen und Schlüssel als Kopierzeile auf ein zweites Board übertragbar.
  • Kartenpakete: Heimersheim (mit Gebäuden), Altenahr/Mayschoß/Rech, Dernau/Ahrweiler, Sinzig sowie Ahrtal-Übersicht von Blankenheim bis zur Mündung.
  • Alte TTGO-BINs entfernt; Firmware nur noch aus den Actions-Artefakten oder eigenem Build.
  • Repo: Build-ZIPs liegen jetzt hier im Release statt im Git; Playwright ist optional.

Funktionsumfang

Kanalchat und Direktnachrichten mit begrenzten Zustellaufträgen, Schwarzes Brett über Room-Server mit Hilfe-/Angebot-/Info-Vorlagen, Offlinekarten mit automatischem Download, Versorgungs-POIs aus OSM, eigene POIs und Erntefundorte, Diagnose und Administration mit 868-MHz-Funkprofilen, optionales SD-Archiv.

Downloads

  • DisAHRsterRadio-Ahrtal-Demo.zip – aktuelle Demo 0.7.2, frisch aus tools/build_demo.py gebaut. Entpacken, index.html öffnen. Alles simuliert; (veraltet: enthält noch den früheren Demo-Adminzugang; aktuelle Demo ohne Zugangsdaten: https://pietwars.github.io/DisasterMesh/demo/).
  • DisAHRsterRadio-Startpaket.zip – das zuletzt geprüfte Startpaket (Stand 0.7.1.1, Prüfstand vom 15.10.2026), identisch mit der bisher im Repository verlinkten Datei. tools/build_start_package.py baut bewusst nur für den geprüften Softwarestand; ein 0.7.2-Startpaket folgt nach neuem Prüfstand.
  • Firmware: keine BINs im Release. Aktuelle Builds als Artefakte der Workflows „Build T3-S3 V1.3“ und „Build DisAHRsterRadio TTGO“ (GitHub-Anmeldung nötig). Anleitung: docs/STARTPAKET.md.

Vollständige Änderungen: CHANGELOG.md