Repository navigation
Releases: Pietwars/DisasterMesh
Release list
DisasterMesh v0.9.2
⚠️ 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.binnie angelegt und der Web-Chatverlauf nie gespeichert (gleiches Muster bei/dr-outbox.bin). NeuSlotFile.h(Öffnen perSPIFFS.exists(), Verzeichnis-Handles verwerfen, Auffüllen mit Nullen bis zum Slot, da SPIFFS nicht hinter das Dateiende springen kann), genutzt vonDisasterPortal(Verlauf) undDeliveryOutbox; serielles[VERLAUF]-Log bei Schreibfehlern. Hosttesttests/slot_file.test.cpp; Testattrappetests/fakes/SPIFFS.hkennt jetztseek(…, SeekEnd),position()undisDirectory(). 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
⚠️ 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), gespeichertesap-passwird 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): mithellolesen und schreiben, ohne Passwort nur lesen (allow.read.onlyan). Beim Start wird das Gast-Passwort aufhellogesetzt (ersetzt leere/zufällige Werte älterer Versionen);set guest.passwordundset allow.read.onlywerden abgelehnt. Admin-Login unverändert. Portal: kein Eingabefeld, „Beitreten“ meldet automatisch mithelloan – Aushängen im Portal wieder möglich. Hosttesttests/room_access.test.cpp,docs/meshcore-room-changes.patchneu erzeugt.
Feste Versionen (17.10.2026)
- Bibliotheken festgelegt (Verbesserungsliste 6): alle
^/~-Bereiche infirmware/MeshCore/platformio.iniund allenvariants/*/platformio.iniauf 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) mittools/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 CI6.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)
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)
⚠️ 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=8global inplatformio.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): Standardwerte869.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(Konfigurationtools/flyer/flyer.json, Version ausVERSION, schreibt auchdocs/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-Firmwarekennungv1.18.0-ahr0.9.0-alpha. - Zentrale Version: Datei
VERSIONist die einzige Quelle.tools/version.pyschreibt Fußzeile, Demo, Firmwarekennung aller Profile, README, package.json/-lock, Flyer-HTML und Projektseite;--checkläuft in CI (Tests + Firmware) und bricht bei Abweichungen ab (tests/version.test.py). - CI: nach
tools/embed_web.pyprüftgit diff --exit-code, dassPortalPage.h/PortalAssets.heingecheckt 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.mdaktualisiert;STARTPAKET.mdverlinkt 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.ymlbaut bei jedem Tagv*die drei Boards (T3-S3, T3 V1.6.1, Heltec V2) mittools/package.sh, packt je BoardDisasterMesh-<Version>-<Board>.zipmit…-factory.bin,teile/(bootloader, partitions, boot_app0, firmware, spiffs),SHA256SUMSund deutscherANLEITUNG.md, prüft alles mittools/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/statemeldet zusätzlichdiagnostics.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 mitWARNUNG: wenig freier Speicher. - Karten verkleinert:
tools/shrink_geojson.py(Gegenstück zuHaldenFunk/tools/shrink_maps.pyfü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 auf2026-10-17-klein1angehoben (Handys laden neu). Vorher/Nachher-Screenshots aller Pakete verglichen; Testtests/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_6entfernt mitbuild_unflags = -Osdie Optimierung, dabei fällt auch das-Osausbuild_flagsweg.disaster_ttgo_wifi(inkl._wifi_sd,disaster_tlora_v2_1_sx1276_wifi),disaster_ttgo_repeater,disaster_ttgo_roomübernehmen diesesbuild_unflagsnicht mehr →-Oswie 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]infirmware/MeshCore/platformio.local.ini: eigenelib_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_wifi85,1 % → 65,6 % (1 672 453 → 1 289 693 Bytes),_wifi_sd87,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
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
!DP1mit 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_gpsfü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
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.pygebaut. 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.pybaut 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