Diese Wiki erklärt die Voraussetzungen, die erste Einrichtung, die wichtigsten Einstellungen der Weboberfläche sowie optionale Funktionen wie DVSwitch, FRN, SSH-Actions, SVXLink, APRS, Wetter, Autobahn-Verkehr, HAMQSL, ADSB, Hinweise, SD-Dateimanager, SD-gehostete Weboberfläche, Screen Mirror, Desktop-Simulator, OTA, Target-Listen und das Flashen der unterstützten Displays.
Stand dieser Wiki
Diese Fassung ist auf die Firmware v0.0.2.3 aktualisiert.
1. Kurzbeschreibung
Das MMDVM Display ist eine ESP32-basierte Touchscreen-Firmware zur Anzeige von Live-, Heard-, Watch- und Statusdaten eines MMDVM-Hotspots. Unterstützt werden Pi-Star und WPSD als MMDVM-Backend.
Zusätzlich können optionale WATCH-Quellen aktiviert werden:
- DVSwitch Übersicht
- Free Radio Network (FRN)
- SVXLink
- APRS.fi
- OpenWeather
- HAMQSL / N0NBH
- ADSB / dump1090 / readsb
- Screen Mirror
Zusätzlich kann die Firmware aktuelle Warnungen, Sperrungen und Baustellen der deutschen Autobahn-API als scrollenden Footer anzeigen. Die Verkehrsmeldungen können nach Autobahnen, Radius und Positionsquelle gefiltert werden.
Außerdem unterstützt die Firmware optionale Popup-Warnungen:
- Deutschland / KATWARN-NINA über den öffentlichen NINA-Dashboard-/Map-Feed, optional positionsbezogen
- MeteoAlarm Europa über EDR oder Atom
- NOAA / NWS Hinweise für US-Wetterzonen
Die Konfiguration erfolgt über die integrierte Weboberfläche. Bei fehlender oder ungültiger Konfiguration startet das Gerät automatisch einen Setup-Access-Point.
2. Voraussetzungen
Hardware
Benötigt wird ein unterstütztes ESP32-Touchdisplay. Die Standard-Firmwaretargets sind:
Display / Board Target Firmware-Prefix
ESP32-2432S028R ILI9341 CYD_ILI9341 esp32-2432S028R-ILI9341
ESP32-2432S028R ILI9341 V2 CYD_ILI9341_V2 esp32-2432S028R-ILI9341-V2
ESP32-2432S028R ST7789 CYD_ST7789 esp32-2432S028R-ST7789
JC3248W535C JC3248W535C esp32s3-JC3248W535C
WS8048S043C WS8048S043C esp32s3-WS8048S043C
WS8048S070C WS8048S070C esp32s3-WS8048S070C
EC8048S070C EC8048S070C esp32s3-EC8048S070C
EC8048S070B EC8048S070B esp32s3-EC8048S070B
EC8048S070CT EC8048S070CT esp32s3-EC8048S070CT
WSTOUCHLCD28 WSTOUCHLCD28 esp32s3-WSTOUCHLCD28Jedes Ziel kann einzeln gebaut werden, indem der Targetname an
build_firmware.bat übergeben wird.Netzwerk
Benötigt wird:
- ein 2,4-GHz-WLAN für das ESP32-Display,
- ein Pi-Star- oder WPSD-Hotspot im selben Netzwerk,
- die IP-Adresse oder der Hostname des Dashboards, zum Beispiel
pi-star.local oder 192.168.1.50,- optional Internetzugriff für RadioID, Target-Listen, OpenWeather, APRS.fi, HAMQSL, MeteoAlarm, NINA/KATWARN, NOAA, die Autobahn-Verkehrs-API und die FRN-System-Manager-Passwortabfrage.
Optional: SSH
SSH wird nur benötigt, wenn über den Touchscreen oder die Weboberfläche Befehle ausgeführt werden sollen, zum Beispiel:
- DigiMode-Umschaltung auf Pi-Star/WPSD oder DVSwitch,
- Talkgroup-, Reflector- oder DVSwitch-Zielaktionen,
- Disconnect-Befehle,
- eigene Skripte auf dem Hotspot,
- SVXLink-DTMF- oder Steuerbefehle.
Dafür müssen SSH-Server, Benutzername, Passwort und Port des Zielsystems bekannt sein. Passwörter werden lokal auf dem Display gespeichert. Diese Funktion sollte nur in vertrauenswürdigen Netzwerken verwendet werden.
Optional: SD-Karte / lokaler Speicher
Einige Zusatzfunktionen nutzen lokale Dateien:
- Target-Listen im Ordner
/lookup- Länderflaggen als PNG oder 24-Bit-BMP im Ordner
/flags beziehungsweise als Ausweichlösung im SD-Hauptverzeichnis- Wetter-Icons im Ordner
/weather- APRS-Icons im Ordner
/aprs- ADSB-Airline-Logos im Ordner
/adsb- optional
/adsb/airlines.dat zur Zuordnung von ICAO-Airline-Prefixen zu IATA-Logo-Dateien- ab v0.0.2.3 die komplette Weboberfläche im Ordner
/webui- weitere Dateien, die über Application -> SD files verwaltet werden können
Für größere Darstellungsbereiche können optionale
_64-Varianten verwendet werden, zum Beispiel /flags/DE_64.png, /weather/01d_64.png oder /adsb/LH_64.png. Die Firmware skaliert und zentriert unterstützte Flaggen, Wetter-Icons und Airline-Logos passend zur Displaygröße.Je nach Display-Backend wird SD oder SD_MMC verwendet. Ab v0.0.2.3 werden die HTML-, CSS- und JavaScript-Dateien der Weboberfläche nicht mehr als große Seiten in die Firmware eingebettet, sondern aus
/webui geladen. Deshalb sollte der komplette mitgelieferte sdcard/webui-Ordner auf die SD-Karte kopiert werden. Fehlt eine benötigte Datei, meldet der Webserver ausdrücklich Missing SD WebUI asset. Für reine Displayfunktionen sind Icons/Logos weiterhin optional, die Weboberfläche benötigt jedoch ihr WebUI-Bundle.Software / Build-Umgebung
Für das Kompilieren aus der .ino-Datei werden je nach Display unter anderem verwendet:
- ESP32 Arduino Core,
- WiFi, WiFiClientSecure, HTTPClient, WebServer, WebSocketsServer, Update, FS, SD / SD_MMC, SPI,
- ArduinoJson,
- PNGdec,
- TJpg_Decoder,
- je nach Display TFT_eSPI und XPT2046_Touchscreen,
- oder Arduino_GFX_Library, Wire und teilweise lvgl,
- für ZIP-Entpacken zlib, wenn ZIP im Build aktiviert ist,
- für SSH-Actions: libssh_esp32 / libssh.
Für die Desktop-Version werden zusätzlich SDL2, zlib und die plattformspezifischen Netzwerk-/Thread-Bibliotheken verwendet. Der Remote-Screen-Mirror-Sender nutzt unter Windows die native GDI-Aufnahme; unter Linux kann OpenCV verwendet werden. Das Makefile besitzt ab v0.0.2.3 getrennte Release- und Debug-Profile.
Für OTA-Updates muss die erste Firmware per USB mit einer passenden OTA-Partitionstabelle geflasht werden. OTA erwartet später nur die Application
.bin, nicht .ino, .zip, Bootloader-, Partition- oder Merged-Flash-Dateien.3. Firmware bauen und Displays flashen
3.1 Empfohlenes Windows-Projektlayout
Die Batch-Dateien sind für ein portables Arduino IDE 2 Layout gedacht:
C:\ArduinoIDE\Data\Arduino15
C:\ArduinoIDE\Data\Sketchbook
C:\ArduinoIDE\Data\LibEmpfohlener Projektordner:
C:\ArduinoIDE\Project\MMDVM-Display\contentIm Ordner
content sollten liegen:content\build_firmware.bat
content\flash_firmware.bat
content\esptool.exe
content\Makefile
content\partitions.csv
content\partitions_ota.csv
content\mmdvm-display\mmdvm-display.ino
content\firmware\
content\sdcard\
content\sdcard\webui\index.html
content\sdcard\webui\styles.css
content\sdcard\webui\app.js
content\sdcard\webui\bind.js
content\svxlink\Der Ordner
content\sdcard\webui gehört ab v0.0.2.3 zur auszuliefernden Weboberfläche. Beim Kopieren auf die SD-Karte muss daraus /webui/index.html usw. werden.Partitionstabellen:
content\partitions_ota.csvESP32 CYD 4 MB OTA-Layout mit app0/app1 OTA-Slots.
content\partitions.csvESP32 CYD 4 MB Factory-/Huge-App-Layout mit einer großen App-Partition, aber ohne OTA.
Der Arduino CLI wird normalerweise aus Arduino IDE 2 gefunden, zum Beispiel:
C:\ArduinoIDE\resources\app\lib\backend\resources\arduino-cli.exeWenn Arduino CLI woanders liegt, kann der Pfad vorher gesetzt werden:
set "ARDUINO_CLI=C:\path\to\arduino-cli.exe"
build_firmware.bat --check3.2 Firmware unter Windows bauen
Zum Bauen wird
build_firmware.bat verwendet. Das Flashen erfolgt separat mit flash_firmware.bat.Doppelklick:
build_firmware.batMenü:
1) Build firmware for all displays
2) Build Windows desktop version only
3) Build firmware for all displays + desktop
4) Install/update Arduino ESP32 core and libraries
5) Check paths/configuration
6) Toggle ESP32 partition: OTA / Factory
7) Show Help
0) ExitErsteinrichtung der Build-Umgebung:
build_firmware.bat --installPfade und Konfiguration prüfen:
build_firmware.bat --checkAlle Standard-Display-Firmwares bauen:
build_firmware.bat --firmware-onlyNur Windows-Desktop-Version bauen:
build_firmware.bat --desktop-onlyFirmware und Desktop-Version bauen:
build_firmware.bat --allEin einzelnes Displaytarget bauen:
build_firmware.bat WS8048S070C
build_firmware.bat CYD_ILI9341
build_firmware.bat CYD_ILI9341_V2
build_firmware.bat CYD_ST7789
build_firmware.bat EC8048S070BAusgabedateien landen in:
content\firmwareBeispiel für ein ESP32-S3-Target:
content\firmware\esp32s3-WS8048S070C.bin
content\firmware\esp32s3-WS8048S070C.boot.bin
content\firmware\esp32s3-WS8048S070C.bootloader.bin
content\firmware\esp32s3-WS8048S070C.partitions.binHinweis: Bei einigen ESP32-S3-Targets wird keine
.boot.bin erzeugt. Das Flash-Tool erkennt das automatisch.3.3 ESP32 CYD Partition: OTA oder Factory/Huge-App
Die originalen ESP32 CYD Boards haben meist 4 MB Flash. Deshalb gibt es zwei sinnvolle Partition-Modi.
OTA-Modus
build_firmware.bat --ota CYD_ST7789
build_firmware.bat --ota CYD_ILI9341Nutzt:
content\partitions_ota.csvOTA-Modus erstellt zwei App-Slots:
app0 / ota_0
app1 / ota_1Maximale App-Größe im OTA-Modus:
0x1F0000 bytes = 2,031,616 bytes = ca. 1.94 MiBDiesen Modus verwenden, wenn spätere OTA-Updates über die Weboberfläche gewünscht sind. Wenn die Firmware-
.bin größer ist, funktioniert OTA nicht. Dann muss entweder die Firmware verkleinert oder Factory/Huge-App genutzt werden.Factory-/Huge-App-Modus
build_firmware.bat --factory CYD_ST7789
build_firmware.bat --factory CYD_ILI9341Nutzt:
content\partitions.csvFactory-Modus erstellt eine große App-Partition.
Maximale App-Größe im Factory-Modus:
0x3E0000 bytes = 4,063,232 bytes = ca. 3.88 MiBDieser Modus ist für große USB-Flash-Builds gedacht und unterstützt keine OTA-Updates.
Wichtig:
-
--ota und --factory betreffen die originalen ESP32 CYD Targets.- ESP32-S3-Targets nutzen das generierte 16 MB Custom-OTA-Layout des Build-Tools.
- Nach Änderung des Partition-Modus immer neu bauen und neu flashen.
- Beim Flashen muss die passende
.partitions.bin zur passenden Firmware-.bin verwendet werden.- OTA- und Factory-/Huge-App-Binaries sind nicht austauschbar.
3.4 Flashen unter Windows - empfohlene Methode
Zum Flashen wird die separate Datei verwendet:
flash_firmware.batSie gehört in den
content-Ordner neben esptool.exe und den Firmware-Ordner:content\flash_firmware.bat
content\esptool.exe
content\firmware\Doppelklick:
flash_firmware.batMenü:
1) Flash firmware to a display
2) List serial COM ports
3) Check paths and firmware folder
0) ExitAblauf beim Flashen:
1. Das Tool listet erkannte COM-Ports.
2. Der passende COM-Port wird ausgewählt.
3. Das Display-/Device-Target wird ausgewählt.
4. Das Tool prüft, ob die benötigten .bin-Dateien in
content\firmware vorhanden sind.5. Nach Bestätigung wird der Flash gelöscht und die Firmware geschrieben.
Kommandozeilen-Beispiele:
flash_firmware.bat --target WS8048S070C --port COM5
flash_firmware.bat --target EC8048S070B --port COM7
flash_firmware.bat CYD_ILI9341 COM5
flash_firmware.bat CYD_ST7789 COM5
flash_firmware.bat WS8048S070C COM5Ohne vorheriges Löschen flashen, falls nötig:
flash_firmware.bat --target WS8048S070C --port COM5 --no-eraseCOM-Ports anzeigen:
flash_firmware.bat --list-portsFlash-Tool prüfen:
flash_firmware.bat --checkWenn der Flashvorgang bei
Connecting... hängen bleibt: BOOT-Taste gedrückt halten, während das Display verbunden wird oder der Flash startet. Sobald die Verbindung beginnt, BOOT loslassen.3.5 Manuelles Flashen mit esptool.exe unter Windows
Die empfohlene Methode ist
flash_firmware.bat. Die folgenden Befehle sind nur für manuelles Flashen gedacht. COM7 muss durch den richtigen Port ersetzt werden.2432S028R - ILI9341
esptool.exe --chip esp32 --port COM7 --baud 460800 write-flash -z 0x1000 firmware\esp32-2432S028R-ILI9341.bootloader.bin 0x8000 firmware\esp32-2432S028R-ILI9341.partitions.bin 0xe000 firmware\esp32-2432S028R-ILI9341.boot.bin 0x10000 firmware\esp32-2432S028R-ILI9341.bin2432S028R - ILI9341 V2
esptool.exe --chip esp32 --port COM7 --baud 460800 write-flash -z 0x1000 firmware\esp32-2432S028R-ILI9341-V2.bootloader.bin 0x8000 firmware\esp32-2432S028R-ILI9341-V2.partitions.bin 0xe000 firmware\esp32-2432S028R-ILI9341-V2.boot.bin 0x10000 firmware\esp32-2432S028R-ILI9341-V2.bin2432S028R - ST7789
esptool.exe --chip esp32 --port COM7 --baud 460800 write-flash -z 0x1000 firmware\esp32-2432S028R-ST7789.bootloader.bin 0x8000 firmware\esp32-2432S028R-ST7789.partitions.bin 0xe000 firmware\esp32-2432S028R-ST7789.boot.bin 0x10000 firmware\esp32-2432S028R-ST7789.binESP32-S3 Display mit boot.bin, Beispiel WS8048S070C
esptool.exe --chip esp32s3 --port COM7 --baud 460800 write-flash -z 0x0000 firmware\esp32s3-WS8048S070C.bootloader.bin 0x8000 firmware\esp32s3-WS8048S070C.partitions.bin 0xe000 firmware\esp32s3-WS8048S070C.boot.bin 0x10000 firmware\esp32s3-WS8048S070C.binESP32-S3 Display ohne boot.bin, Beispiel JC3248W535C
esptool.exe --chip esp32s3 --port COM7 --baud 460800 write-flash -z 0x0000 firmware\esp32s3-JC3248W535C.bootloader.bin 0x8000 firmware\esp32s3-JC3248W535C.partitions.bin 0x10000 firmware\esp32s3-JC3248W535C.binPassende Firmware-Prefixe:
esp32-2432S028R-ILI9341
esp32-2432S028R-ILI9341-V2
esp32-2432S028R-ST7789
esp32s3-JC3248W535C
esp32s3-WS8048S043C
esp32s3-WS8048S070C
esp32s3-EC8048S070C
esp32s3-EC8048S070B
esp32s3-EC8048S070CT
esp32s3-WSTOUCHLCD283.6 Flashen mit Python / Linux
Zuerst esptool installieren:
pip install esptoolUnter Linux erscheint das Gerät normalerweise als
/dev/ttyUSB0 oder /dev/ttyACM0. Der Port muss angepasst werden.2432S028R - ILI9341
python -m esptool --chip esp32 --port /dev/ttyUSB0 --baud 460800 write-flash -z 0x1000 firmware/esp32-2432S028R-ILI9341.bootloader.bin 0x8000 firmware/esp32-2432S028R-ILI9341.partitions.bin 0xe000 firmware/esp32-2432S028R-ILI9341.boot.bin 0x10000 firmware/esp32-2432S028R-ILI9341.bin2432S028R - ILI9341 V2
python -m esptool --chip esp32 --port /dev/ttyUSB0 --baud 460800 write-flash -z 0x1000 firmware/esp32-2432S028R-ILI9341-V2.bootloader.bin 0x8000 firmware/esp32-2432S028R-ILI9341-V2.partitions.bin 0xe000 firmware/esp32-2432S028R-ILI9341-V2.boot.bin 0x10000 firmware/esp32-2432S028R-ILI9341-V2.bin2432S028R - ST7789
python -m esptool --chip esp32 --port /dev/ttyUSB0 --baud 460800 write-flash -z 0x1000 firmware/esp32-2432S028R-ST7789.bootloader.bin 0x8000 firmware/esp32-2432S028R-ST7789.partitions.bin 0xe000 firmware/esp32-2432S028R-ST7789.boot.bin 0x10000 firmware/esp32-2432S028R-ST7789.binESP32-S3 Display mit boot.bin, Beispiel WS8048S070C
python -m esptool --chip esp32s3 --port /dev/ttyUSB0 --baud 460800 write-flash -z 0x0000 firmware/esp32s3-WS8048S070C.bootloader.bin 0x8000 firmware/esp32s3-WS8048S070C.partitions.bin 0xe000 firmware/esp32s3-WS8048S070C.boot.bin 0x10000 firmware/esp32s3-WS8048S070C.binESP32-S3 Display ohne boot.bin, Beispiel JC3248W535C
python -m esptool --chip esp32s3 --port /dev/ttyUSB0 --baud 460800 write-flash -z 0x0000 firmware/esp32s3-JC3248W535C.bootloader.bin 0x8000 firmware/esp32s3-JC3248W535C.partitions.bin 0x10000 firmware/esp32s3-JC3248W535C.bin3.7 Wichtige Flash-Hinweise
-
build_firmware.bat nur zum Bauen verwenden.-
flash_firmware.bat nur zum Flashen verwenden.- Die Firmware-Dateien müssen vor dem Flashen in
content\firmware vorhanden sein.-
build_firmware.bat --install einmal vor dem ersten Arduino-CLI-Build ausführen.- Nach Änderung von Partition-Modus oder Build-Optionen neu bauen und neu flashen.
- Bei OTA-Problemen prüfen, ob das Gerät mit OTA-Partition geflasht wurde und ob die
.bin in den freien OTA-Slot passt.- Wenn Arduino CLI Bibliotheken nicht findet,
C:\ArduinoIDE\Data\Lib und C:\ArduinoIDE\Data\Sketchbook\libraries prüfen.- Wenn SSH-Funktionen genutzt werden, muss die passende SSH-Bibliothek in den Arduino-Libraries vorhanden sein.
- Alles erfolgt auf eigenes Risiko.
3.8 Desktop-Version und Remote-Sender mit Makefile
Die Desktop-Version verwendet denselben UI-Code wie das ESP32-Display, läuft aber in einem SDL2-Fenster. Ab v0.0.2.3 besitzt der Desktop-Build vollständigere Netzwerk-, WebSocket-, SD- und Screen-Mirror-Funktionen.
Wichtige Makefile-Ziele:
make release
make release-desktop
make release-remote
make debug
make debug-desktop
make debug-remoteRelease verwendet größenoptimierte Compiler-/Linker-Optionen. Unter unterstützten Plattformen können LTO und Strip gesteuert werden. Debug baut mit Debugsymbolen und ohne Release-Optimierung.
Der Desktop-Simulator startet standardmäßig im Vollbildmodus. Umschalten ist mit
F11 oder Alt+Enter möglich. Fenstergrößenänderungen, High-DPI-Skalierung, Maus und native Touch-Ereignisse werden auf die interne Displayauflösung umgesetzt.Die Option Show mouse cursor (desktop) unter Display legt fest, ob der Mauszeiger über dem simulierten Display sichtbar ist.
SD-Karten-Root für Desktop:
- Zuerst wird
MMDVM_SDCARD_DIR verwendet, falls gesetzt.- Sonst sucht die Anwendung nach einem passenden
sdcard-Ordner neben Projekt beziehungsweise ausführbarer Datei.- Der Ordner sollte insbesondere
webui/index.html, webui/styles.css und webui/app.js enthalten.Netzwerkabfragen sind im Desktop-Build standardmäßig aktiv. Für einen reinen UI-Test können sie mit
MMDVM_DESKTOP_NETWORK=0 deaktiviert werden.4. Erste Einrichtung nach dem Flashen
Schritt 1: Display starten
Nach dem Flashen wird das Display per USB oder über die normale Stromversorgung gestartet. Wenn noch keine gültige Konfiguration vorhanden ist, öffnet das Gerät automatisch einen Setup-Access-Point.
Schritt 2: Mit dem Setup-WLAN verbinden
Mit Handy, Tablet oder PC das WLAN verbinden:
MMDVM-Display-xxxxxxDie genaue Adresse wird auf dem Display angezeigt. In der Regel wird die Weboberfläche über die auf dem Display angezeigte IP geöffnet.
Schritt 3: Grundkonfiguration speichern
In der Weboberfläche mindestens folgende Felder ausfüllen:
- Aktiv backend: Pi-Star oder WPSD auswählen.
- Pi-Star / WPSD Host or IP: Hostname oder IP des Hotspots eintragen.
- WiFi SSID 1 und WiFi Passwort 1: eigenes WLAN eintragen.
- Optional: Device callsign setzen.
Danach auf Speichern configuration klicken.
Schritt 4: Normale Verbindung verwenden
Nach dem Speichern verbindet sich das Display mit dem eingetragenen WLAN. Die neue IP-Adresse wird auf dem Display angezeigt. Danach die Weboberfläche über diese neue Adresse öffnen.
5. Aufbau der Weboberfläche
Die Weboberfläche ist in zwei Hauptbereiche aufgeteilt.
Konfiguration
Hier werden die allgemeinen Geräteeinstellungen vorgenommen:
- System mode
- MMDVM
- Quick actions
- Network
- Wifi
- Display
- Weather
- Traffic
- Lookup
- Design
Application
Hier liegen Zusatzseiten und Wartungsfunktionen:
- DVSwitch
- FRN
- SVXLink
- APRS
- HAMQSL
- Screen Mirror
- ADSB
- Hinweise
- Ziel lists
- SD files
- OTA firmware
Oben in der Weboberfläche stehen Import- und Export-Funktionen für die Konfiguration zur Verfügung.
Ab v0.0.2.3 werden die sichtbaren Seiten aus
/webui auf der SD-Karte ausgeliefert. Gemeinsame Darstellung und Bindings liegen in styles.css, app.js und bind.js. Die aktuellen Konfigurations- und Laufzeitwerte werden über /api/webui/state geladen. Dadurch zeigt die Oberfläche unter anderem Firmwareversion, Board/Controller, FRN-Laufzeitstatus und Traffic-Status dynamisch an.6. System mode
Aktiv backend
Hier wird ausgewählt, welches MMDVM-System für die normalen LIVE- und HEARD-Seiten verwendet wird:
- Pi-Star
- WPSD
DVSwitch und FRN ersetzen diese Backend-Auswahl nicht. DVSwitch wird unabhängig unter Application -> DVSwitch als zusätzliche WATCH-/HEARD-Quelle aktiviert; FRN wird unter Application -> FRN als direkte zusätzliche WATCH-Quelle konfiguriert.
Device callsign
Hier kann ein eigenes Rufzeichen für Bootscreen, Statusanzeigen und Weboberfläche eingetragen werden. Bleibt das Feld leer, wird der Standardwert verwendet.
Start Seite after boot
Wenn zusätzliche WATCH-Quellen aktiviert sind, kann die Startseite nach dem Booten ausgewählt werden.
Mögliche Startseiten sind, abhängig von den aktivierten Funktionen:
- MMDVM LIVE / WATCH
- MMDVM HEARD
- DVSwitch LIVE / WATCH
- DVSwitch HEARD
- SVXLink LIVE / WATCH
- SVXLink HEARD
- FRN LIVE / WATCH
- FRN CLIENTS
- APRS WATCH
- Weather WATCH
- HAMQSL WATCH
- ADSB WATCH
- Screen Mirror WATCH
Wenn eine gewählte Quelle später deaktiviert oder unvollständig konfiguriert wird, fällt die Firmware beim Booten auf MMDVM LIVE zurück.
7. MMDVM settings
Dieser Bereich verbindet das Display mit Pi-Star oder WPSD.
Pi-Star / WPSD Host or IP
Hier wird die Adresse des Dashboards eingetragen, zum Beispiel:
pi-star.local
192.168.1.50Das Display liest darüber die Live- und Last-Heard-Daten.
Enable SSH remote control
Diese Option aktiviert SSH-Steuerung für Touch-Bedienung und Quick Aktionen.
Nur aktivieren, wenn wirklich Befehle vom Display auf dem Hotspot ausgeführt werden sollen.
SSH user / Passwort / port
Standardwerte:
User: pi-star
Port: 22Das Passwort muss zum Zielsystem passen. Bei WPSD oder angepassten Installationen können andere Zugangsdaten nötig sein.
8. Quick actions
Quick Aktionen sind bis zu vier frei definierbare SSH-Befehle. Sie erscheinen im Touchscreen-Popup ACTIONS auf der Live-Seite und können auch direkt aus der Weboberfläche gestartet werden.
Pro Preset gibt es:
- Enable preset: Schaltet den Slot ein.
- Prefix command with sudo: Führt den Befehl mit sudo aus.
- Button label: Beschriftung des Buttons auf dem Display.
- Remote shell command: Der auszuführende Shell-Befehl.
Beispiele für sinnvolle Aktionen:
DMR TG91
DMR TG263
REF001C
DisconnectWichtig: Das Display führt exakt den Befehl aus, der eingetragen wird. Befehle sollten vorher manuell per SSH getestet werden.
9. Network
Refresh interval
Legt fest, wie oft das Display neue Daten vom MMDVM-Backend abfragt. Standard ist etwa 1500 ms.
Ein kleiner Wert aktualisiert schneller, erzeugt aber mehr Netzwerk- und CPU-Last. Ein größerer Wert ist ruhiger und stabiler bei schwachen Netzwerken.
Callsign hold
Legt fest, wie lange ein empfangenes Rufzeichen auf dem Display gehalten wird, bevor der normale Idle-Zustand wieder erscheint.
Convert API UTC time to local device time
Wenn aktiv, werden UTC-Zeitangaben aus der API in lokale Zeit umgerechnet.
Zeit zone rule
Für Deutschland kann diese POSIX-Zeitzonenregel verwendet werden:
CET-1CEST,M3.5.0/2,M10.5.0/310. Wifi
Die Firmware unterstützt bis zu 5 gespeicherte WLAN-Profile.
Für jedes Profil gibt es:
- WiFi SSID
- WiFi Passwort
Nicht genutzte Zeilen bleiben leer.
Retries per WiFi Profil
Legt fest, wie oft ein sichtbares WLAN erneut versucht wird, bevor das nächste Profil verwendet wird.
Beispiele:
- 0: nur ein Versuch,
- 2: erster Versuch plus zwei Wiederholungen.
Wenn kein gespeichertes WLAN funktioniert, bleibt der Setup-Access-Point aktiv, damit die Konfiguration erneut geändert werden kann.
Hinweis: Neuere Versionen speichern auch SSIDs und Passwörter mit Leerzeichen sauber und stellen sie korrekt wieder her.
11. Display
Brightness
Helligkeit von 0 bis 255.
Design base color
Basisfarbe der Weboberfläche und Display-Akzentfarbe, zum Beispiel:
#35C2FFFlip screen 180°
Dreht die Anzeige um 180 Grad.
Show mouse cursor (desktop)
Diese Option gilt nur für den Desktop-Simulator. Wenn deaktiviert, bleibt der Mauszeiger über dem simulierten Display verborgen.
Enable scrolling Text
Lange Texte scrollen automatisch, statt abgeschnitten zu werden.
Enable screensaver
Aktiviert den normalen Bildschirmschoner. Nach Inaktivität wird die Hintergrundbeleuchtung gedimmt.
Use Weather for Screensaver
Wenn aktiv, zeigt der Screensaver die volle Weather-Seite. Wenn deaktiviert, bleibt der normale Screensaver aktiv und kann bei aktivierter Wetterfunktion ein kompaktes Wetter-Badge anzeigen.
Voraussetzung ist eine funktionierende Weather-Konfiguration.
Screensaver timeout
Zeit bis zum Start des Screensavers in Millisekunden.
Screensaver brightness
Helligkeit im Screensaver-Modus von 0 bis 255.
Eine Berührung des Displays beendet den Screensaver.
Ab v0.0.2.1 verwenden Länderflaggen, Wetter-Badges und Last-Heard-Badges responsive Größen und werden auf den verschiedenen Displayauflösungen zentriert. Der normale schwarze Screensaver bietet dadurch mehr Platz für längere Zielinformationen.
12. Weather / OpenWeather
Die Wetterfunktion ist optional und erscheint als WATCH-Quelle sowie optional im Screensaver.
Benötigt werden:
- Enable Weather WATCH + screensaver
- Refresh time
- Latitude
- Longitude
- OpenWeather API key
Beispielkoordinaten:
Latitude: 50.11552
Longitude: 8.68417Die Firmware nutzt OpenWeather für aktuelle Wetterdaten und zusätzlich Forecast-Daten. Dadurch gibt es neben der aktuellen Wetteransicht auch eine Forecast/Cast-Seite mit mehreren kommenden Tagen.
Wenn SVXLink GPS-Koordinaten verfügbar sind, kann die Firmware diese Koordinaten automatisch für Wetterinformationen verwenden. Ändern sich die SVXLink-Koordinaten deutlich, werden die Wetterkoordinaten angepasst und die Wetterdaten neu geladen.
Wetter-Icons
Wetter-Icons können lokal auf der SD-Karte liegen:
/weatherDie Firmware sucht nach mehreren Varianten, zum Beispiel:
/weather/01d_64.png
/weather/01d_32.png
/weather/01d.png
/weather/01d_24.png
/weather/01_64.png
/weather/01_32.png
/weather/01.png
/weather/01_24.pngFehlen Icons, funktioniert die Wetterseite trotzdem, nur ohne Symbolgrafik.
13. Traffic / deutsche Autobahn
Ab v0.0.2.3 kann die Firmware aktuelle Verkehrsinformationen der deutschen Autobahn-API als scrollenden Footer anzeigen.
Einstellungen im Hauptbereich Traffic:
- Enable Autobahn traffic footer
- Coordinate source
- Refresh interval minutes
- Ort radius km
- Static latitude
- Static longitude
- Highways
Enable Autobahn traffic footer
Wenn aktiviert, ersetzt der Traffic-Text den normalen Footer und scrollt automatisch. Die eigentliche Abfrage läuft getrennt vom normalen Display-Refresh, damit Web-/Displaydarstellung nicht auf langsame API-Aufrufe warten muss.
Coordinate source
Mögliche Quellen:
- Auto: SVXLink, Weather, APRS, Static
- SVXLink latitude / longitude
- Weather latitude / longitude
- APRS center / current position
- Static latitude / longitude
Bei Auto wird zuerst eine gültige SVXLink-GPS-Position versucht, danach Weather, APRS-Mittelpunkt beziehungsweise aktuelle APRS-Position und zuletzt die statischen Traffic-Koordinaten.
Refresh interval minutes
Erlaubter Bereich: 1 bis 120 Minuten. Standard ist 5 Minuten. Bei Fehlern versucht die Firmware später automatisch erneut.
Ort radius km
Erlaubter Bereich: 10 bis 500 km. Standard ist 120 km. Wenn gültige Koordinaten vorhanden sind, werden nur Meldungen innerhalb dieses Radius berücksichtigt.
Highways
Bis zu acht Autobahnen können eingetragen werden. Trennzeichen dürfen Semikolon, Komma oder Leerzeichen sein.
Standard:
A3;A5;A45;A66Die Firmware fragt pro Autobahn aktuelle warnings, closures und roadworks ab. Zukünftige Einträge werden übersprungen. Sperrungen erhalten eine höhere Priorität; bei vorhandener Position fließt zusätzlich die Entfernung in die Sortierung ein. Im Footer werden bis zu drei relevante Meldungen gezeigt.
Wenn keine aktuelle Meldung gefunden wird, erscheint eine entsprechende Meldung für die konfigurierten Autobahnen beziehungsweise den gewählten Radius.
14. Lookup / RadioID
RadioID fallback
Wenn aktiviert, kann das Display fehlende Rufzeicheninformationen online über RadioID oder eine kompatible API nachladen.
Standard-URL:
https://radioid.net/api/users?callsign=Bei eigenen APIs kann
%CALLSIGN% im URL-Template verwendet werden. Die Firmware ersetzt diesen Platzhalter automatisch durch das Rufzeichen.Unterstützte Antwortformate:
- RadioID-ähnliches JSON
- JSON-Objekt oder JSON-Array mit Namensfeld
- Plain-Text mit Operatornamen
Ab v0.0.2.1 werden Namen, Orte und andere externe Texte für die Displaydarstellung normalisiert. Dazu gehören unter anderem lesbare deutsche Umlaute und Gradzeichen, soweit die verwendete Display-Schrift dies erfordert.
15. Ziel lists
Target-Listen lösen Talkgroups, Reflectoren und Räume in lesbare Namen auf. Die Dateien liegen im Ordner:
/lookupVerwendete Dateien:
/lookup/dmr.txt
/lookup/dstar.txt
/lookup/ysf.txt
/lookup/p25.txt
/lookup/nxdn.txtUnterstütztes Format:
262|GermanyAkzeptiert werden auch Semikolon, Komma, Tab oder einfache Leerzeichen als Trennzeichen.
Source URLs
Standard-Basis-URL:
https://w0chp.radio/digital-radio-lists/Standardpfade:
brandmeister-talkgroups/
xlx-reflectors/
ysf-reflectors/
p25-reflectors/
nxdn-reflectors/Es können eigene URLs pro Mode eingetragen werden. Bleibt ein Feld leer, verwendet das Display die Standardpfade.
Update
Über Application -> Ziel lists -> Update können Listen für folgende Modi heruntergeladen werden:
- DMR
- D-STAR / XLX
- YSF
- P25
- NXDN
Internetverbindung wird nur für das Aktualisieren benötigt. Die Anzeige selbst nutzt danach die lokalen Dateien.
16. DVSwitch
DVSwitch ist ab v0.0.2.2 eine eigenständige optionale WATCH- und HEARD-Quelle. Die normale MMDVM-Verbindung zu Pi-Star oder WPSD bleibt dabei unverändert aktiv.
Die Einstellungen liegen unter:
Application -> DVSwitchDVSwitch Übersicht
Einstellungen:
- Enable DVSwitch
- DVSwitch host/IP or base URL
- Last-heard path
- Status path
Beispiele für Host oder Basis-URL:
192.168.1.60
http://dvswitch.localStandardpfade einer typischen DVSwitch-Dashboard-Installation:
Last-heard path: /include/lh.php
Status path: /include/status.phpDie Firmware liest die HTML-Ausgaben dieser Seiten und übernimmt daraus je nach vorhandenen Dashboarddaten unter anderem:
- Callsign
- Mode und DMR-Timeslot
- Ziel beziehungsweise Quelle
- Dauer
- Loss und BER
- aktuell ausgewählten DVSwitch-Digitalmode
Nach dem Speichern erscheint DVSwitch im WATCH-Auswahlfenster. Auf dem Display stehen eine DVSwitch-LIVE-Ansicht und eine DVSwitch-HEARD-Ansicht zur Verfügung. Beide können außerdem unter Start Seite after boot als Startseite gewählt werden.
Wenn DVSwitch deaktiviert wird oder kein Host eingetragen ist, fällt die Anzeige sicher auf MMDVM zurück.
DVSwitch SSH Anmelden
SSH ist nur erforderlich, wenn DVSwitch-Modi oder gespeicherte Ziele direkt vom Touchscreen geschaltet werden sollen.
Einstellungen:
- Enable DVSwitch SSH actions
- DVSwitch SSH user
- DVSwitch SSH Passwort
- DVSwitch SSH port
- Ziel switch script
Standardwerte:
User: root
Port: 22
Script: /opt/MMDVM_Bridge/dvswitch.shDashboard-Zugriff und SSH verwenden denselben eingetragenen DVSwitch-Host. Der Host muss deshalb sowohl die Dashboardseiten bereitstellen als auch per SSH erreichbar sein, wenn die Steuerfunktionen genutzt werden.
Mode-Umschaltung auf dem Display
Auf der DVSwitch-LIVE-Seite können folgende Modi über die Mode-Buttons gewählt werden:
- DMR
- D-STAR
- YSF
- P25
- NXDN
Nach dem Antippen erscheint eine Bestätigung. Die Firmware führt anschließend über SSH sinngemäß folgenden Befehl aus:
/opt/MMDVM_Bridge/dvswitch.sh mode DMRDer Modename wird passend zum gewählten Button eingesetzt. Bei einem anderen Installationspfad muss Ziel switch script angepasst werden. Für einen Nicht-root-Benutzer wird der Aufruf über sudo ausgeführt.
DVSwitch target presets
Es stehen vier frei definierbare Ziel-Presets zur Verfügung. Jeder Slot enthält:
- Aktiviert
- Use sudo
- Button label
- SSH command / target command
Die aktivierten Presets erscheinen über den ACTIONS-Button auf der DVSwitch-LIVE-Seite und verwenden die separaten DVSwitch-SSH-Zugangsdaten.
Beispiele:
/opt/MMDVM_Bridge/dvswitch.sh DMR 262 262 'DMR TG 262'
/opt/MMDVM_Bridge/dvswitch.sh mode DMR && /opt/MMDVM_Bridge/dvswitch.sh tune 262Das Display führt den eingetragenen Shell-Befehl exakt aus. Befehle, Scriptpfade und sudo-Berechtigungen sollten deshalb zuerst manuell per SSH getestet werden.
17. Free Radio Network / FRN
FRN ist ab v0.0.2.3 eine eigenständige optionale WATCH-Quelle. Das Display verbindet sich direkt mit einem FRN-Server und arbeitet dabei als receive-only PC client. Es fordert keine Aussendung an und spielt kein Audio ab.
Die Einstellungen liegen unter:
Application -> FRNDirekter FRN-Monitor
Einstellungen:
- Enable FRN WATCH
- FRN server hostname / IP
- FRN server port
- FRN net / room
Der Standardport im Formular ist
10024, der tatsächlich benötigte Port hängt jedoch vom verwendeten FRN-Server ab. Server, Port und Net/Raum müssen zu den Daten passen, die auch ein normaler FRN-Client verwendet.FRN Anmelden identity
FRN benötigt auch für einen reinen Monitor eine Login-Identität:
- FRN E-Mail
- FRN main Passwort / dynamic Passwort
- Callsign and user
- Country
- City / area
- Beschreibung
Vor der Verbindung fragt die Firmware automatisch
sysman.freeradionetwork.de nach einem dynamischen Passwort. Ist diese Abfrage nicht verfügbar oder wurde bereits ein dynamisches Passwort eingetragen, wird auf den konfigurierten Wert zurückgegriffen.Wichtig: Das direkte Legacy-FRN-Protokoll verwendet kein TLS. Passwort und Accountdaten werden lokal auf dem Display gespeichert und nach FRN-Protokoll an den Server übertragen. FRN sollte deshalb nur mit einem vertrauenswürdigen Server/Netz verwendet werden. Wenn möglich, ist ein eigener Monitor-Account sinnvoll.
FRN LIVE
Nach dem Speichern erscheint FRN im WATCH-Auswahlfenster. Die LIVE-Seite zeigt unter anderem:
- Verbindungsstatus, zum Beispiel Getting FRN Passwort, Connecting, Logging in oder Online
- FRN-Server, Port und Net/Raum
- aktiven Absender beziehungsweise aktuell sendenden Client
- Callsign/Benutzer
- City/Country
- Band/Channel
- Zahl der verbundenen Clients
- Access-Level und Client-Typ
FRN CLIENTS
Die CLIENTS-Seite zeigt die vom FRN-Server gelieferte Clientliste. Der aktuell sendende Eintrag wird hervorgehoben. Auf speicherarmen CYD-Builds wird bewusst nur ein kleinerer Ausschnitt der Liste lokal gehalten; die Gesamtzahl der verbundenen Clients wird separat angezeigt.
Startseite und Wiederverbindung
FRN LIVE und FRN CLIENTS können unter Start Seite after boot gewählt werden. Ist FRN deaktiviert oder unvollständig konfiguriert, fällt die Firmware sicher auf MMDVM LIVE zurück.
Normale Netzwerkabbrüche führen zu automatischen Wiederverbindungsversuchen. Authentifizierungsfehler werden langsamer erneut versucht, damit der FRN-Server nicht mit Loginversuchen belastet wird.
18. SVXLink
SVXLink ist optional und wird getrennt von Pi-Star/WPSD konfiguriert.
Enable SVXLink
Aktiviert SVXLink als zusätzliche WATCH- und HEARD-Quelle. Danach kann auf dem Display zwischen MMDVM und SVXLink gewechselt werden.
SVXLink source
Es gibt zwei Varianten:
- URL / dashboard HTML: liest eine bestehende SVXLink-Dashboardseite
- API / JSON bridge: nutzt einen JSON-Endpunkt wie
display-json.phpSVXLink Host/IP or full URL
Beispiele:
192.168.1.60
https://svxlink-host/index.phpSVXLink URL/API path
Beispiele:
/index.php
/api/display-json.phpSVXLink SSH actions
Für SVXLink gibt es separate SSH-Daten und separate Action-Slots. Diese erscheinen nur, wenn SVXLink als aktive WATCH-Quelle ausgewählt ist.
Einstellungen:
- Enable SVXLink SSH actions
- SVXLink SSH user
- SVXLink SSH Passwort
- SVXLink SSH port
- vier eigene SVXLink Action-Slots
SVXLink GPS für Wetter
Wenn SVXLink gültige GPS-Koordinaten liefert, kann die Firmware diese Koordinaten für die Wetterfunktion verwenden. Das ist besonders nützlich bei mobilen oder wechselnden Standorten.
19. APRS.fi
APRS kann als WATCH-Quelle aktiviert werden. Das Display verwendet den aktuellen LIVE- oder Last-Heard-Callsign als Suchrufzeichen und kann zusätzlich mehrere zuletzt gehörte Callsigns in einer Anfrage berücksichtigen.
Einstellungen unter Application -> APRS:
- Enable APRS
- APRS.fi API key
- Refresh interval minutes
- Area radius km
- Area center latitude
- Area center longitude
Area radius km
Legt fest, in welchem Umkreis APRS-Stationen angezeigt werden. Standard ist 50 km.
Area center latitude / longitude
Legt den Mittelpunkt für die APRS-Radar-/Umkreis-Anzeige fest.
Wenn leer, verwendet die Firmware nach Möglichkeit aktuelle/APRS-/Wetterpositionen als Mittelpunkt.
APRS Radar und Stations-Popups
Die APRS-Seite kann Stationen im konfigurierten Radius anzeigen. Beim Antippen beziehungsweise über die Detailansicht werden Informationen wie diese angezeigt:
- Callsign
- Entfernung
- Position
- Geschwindigkeit
- Kurs
- Höhe
- Kommentar oder Status
- Pfad
- Zuletzt gesehen
APRS-Icons können im Ordner
/aprs liegen. Die Firmware sucht je nach APRS-Symbol nach passenden PNG-Dateien.Rate-Limits
Die Firmware begrenzt APRS-Abfragen, um Rate-Limits zu vermeiden:
- Mindest-Refresh: 10 Minuten
- Requests werden mindestens 5 Minuten auseinandergezogen
- bei Rate-Limit-Antworten wird eine 60-Minuten-Pause eingelegt
- bei Fehlern wird mit Backoff erneut versucht
Die APRS-Seite zeigt einen sichtbaren aprs.fi-Credit.
20. HAMQSL
HAMQSL zeigt Solar- und Ausbreitungsdaten als WATCH-Seite.
Die Einstellungen liegen unter:
Application -> HAMQSLEinstellungen:
- Enable HAMQSL
- HAMQSL XML URL
- Refresh interval minutes
Standard-URL:
https://www.hamqsl.com/solarxml.phpDie minimale Aktualisierungszeit beträgt 60 Minuten.
Die Anzeige enthält unter anderem:
- Solar Flux
- Sunspots
- A-Index / K-Index
- X-Ray
- Geomagnetic Field
- Signal Noise
- Solar Wind
- MUF / foF2
- HF-Bandbedingungen
- VHF-Bedingungen
Die Displayseite zeigt einen sichtbaren HAMQSL/N0NBH-Credit.
21. ADSB / dump1090 / readsb
ADSB ist eine optionale WATCH-/RADAR-Quelle für Flugzeugdaten aus einem lokalen dump1090-, dump1090-fa- oder readsb-Server.
Die Einstellungen liegen unter:
Application -> ADSBEinstellungen:
- Enable ADSB WATCH
- dump1090 Host/IP or full URL
- Aircraft JSON path
- Refresh interval seconds
- Radar radius km
- Radar center latitude
- Radar center longitude
Host und JSON-Pfad
Beispiele:
192.168.1.70:8080
http://dump1090.localHäufige JSON-Pfade:
/dump1090-fa/data/aircraft.json
/data/aircraft.jsonRefresh interval seconds
Standard ist 10 Sekunden. Erlaubter Bereich ist 5 bis 600 Sekunden.
Radar radius km
Standard ist 150 km. Erlaubter Bereich ist 1 bis 999 km.
Radar center latitude / longitude
Wenn diese Felder leer bleiben, nutzt die Firmware nach Möglichkeit Wetter- oder APRS-Koordinaten als Mittelpunkt.
ADSB Detail-Popup
Die ADSB-Radaransicht zeigt Flugzeuge im konfigurierten Bereich. Die Detailansicht kann unter anderem anzeigen:
- Hex-ID
- Flight / Callsign
- Squawk
- Position
- Entfernung
- Flughöhe
- Geschwindigkeit
- Track / Kurs
- Seen-Zeit
Airline-Logos
Optionale Airline-Logos werden aus folgendem Ordner geladen:
/adsbBeispiele:
/adsb/LH_64.png
/adsb/LH.png
/adsb/U2_64.png
/adsb/U2.pngAuf größeren Displays wird zuerst nach einer passenden
_64-Variante gesucht. Fehlt sie, verwendet die Firmware das normale Logo und zentriert es im verfügbaren Bereich.Wenn die Datei vorhanden ist, kann eine Zuordnung über folgende Datei erfolgen:
/adsb/airlines.datDamit können ICAO-Callsign-Prefixe wie DLH auf IATA-Logo-Dateien wie LH.png gemappt werden. Fehlende Logos werden übersprungen.
22. Hinweise / Warnmeldungen
Hinweise sind optionale Popup-Warnungen auf dem Display. Die Einstellungen liegen unter:
Application -> AlertsDie Firmware unterstützt drei Warnquellen:
- Deutschland: KATWARN/NINA über öffentliche NINA-Dashboard-/Map-Daten, optional positionsbezogen
- Europa: MeteoAlarm über EDR oder Atom
- USA: NOAA / National Weather Service Hinweise
Warnungen erscheinen als scrollbares Popup mit PREV / CLOSE / NEXT-Bedienung, wenn neue passende Meldungen gefunden werden.
22.1 Germany alerts / KATWARN-NINA
Einstellungen:
- Enable Germany alerts
- NINA / KATWARN location id
Für Deutschland kann weiterhin eine regionale ARS-ID eingetragen werden, wie sie von warnung.bund.de / NINA verwendet wird.
Beispiel:
064350000000Ab v0.0.2.3 versuchen ESP32-Builds jedoch zuerst eine positionsbezogene Prüfung, wenn gültige Koordinaten vorhanden sind. Die Reihenfolge der möglichen Koordinatenquellen ist: SVXLink GPS, Weather, APRS center und ADS-B center. Die Firmware lädt dafür die NINA/KATWARN-Kartendaten und prüft die GeoJSON-Polygone der Warnungen gegen die aktuelle Position. Nur Warnungen, deren Polygon die Position enthält, werden angezeigt.
Wenn keine gültigen Koordinaten vorhanden sind, bleibt die konfigurierte ARS-ID als Ausweichlösung aktiv. Die Firmware bezeichnet die Anzeige als KATWARN/NINA und verwendet die öffentlichen NINA-Dashboard-/Map-Endpunkte als HTTP-Quelle.
22.2 MeteoAlarm Europe alerts
Einstellungen:
- Enable MeteoAlarm alerts
- MeteoAlarm mode
- MeteoAlarm country / feed settings
- optional EDR URL und Token, falls eine EDR-Quelle genutzt wird
Für viele Anwendungsfälle reicht der öffentliche Atom-Modus. Dabei wird je nach Land der passende MeteoAlarm-Feed verwendet. Wenn ein Dienst oder Server eine EDR-Quelle benötigt, können entsprechende URL-/Token-Felder genutzt werden. Für die koordinatenbasierte EDR-Filterung werden dieselben konfigurierten Positionsquellen verwendet, die auch der Alert-Laufzeitstatus der Weboberfläche meldet.
22.3 NOAA / NWS alerts
Einstellungen:
- Enable NOAA alerts
- NOAA zone oder passende NWS-Zonenkennung
Diese Funktion ist für US-Wetterzonen gedacht. Für Europa ist MeteoAlarm sinnvoller, für Deutschland KATWARN/NINA.
22.4 Alert-Popups
Neue Warnungen erscheinen als Popup. Die Bedienung erfolgt über:
- PREV: vorherige Warnung
- CLOSE: Popup schließen
- NEXT: nächste Warnung
Längere Texte werden gewrappt und können über die Popup-Seite gelesen werden.
23. SD files / SD-Dateimanager
Ab v0.0.2.0 gibt es eine eigene SD-Dateiverwaltung in der Weboberfläche.
Adresse:
/app/filesDie Seite zeigt einen Browser mit:
- Name
- Type
- Größe
- Ordnernavigation
- Back / Refresh
- Auswahl-Popup für Aktionen
Mögliche Aktionen:
- Datei hochladen
- Datei herunterladen
- Ordner erstellen
- Datei oder Ordner umbenennen
- Datei oder Ordner löschen
- kleine Textdateien im Browser öffnen und speichern
- optional ZIP-Datei hochladen und direkt entpacken
Texteditor
Kleine Textdateien bis 64 KB können direkt im Browser bearbeitet werden. Beim Speichern wird zuerst eine temporäre Datei geschrieben und danach die Originaldatei ersetzt. Dadurch wird das Risiko reduziert, dass eine Datei bei einem fehlgeschlagenen Speichern beschädigt wird.
ZIP-Upload
Wenn ZIP-Unterstützung im Build aktiviert ist, können ZIP-Dateien hochgeladen und in den aktuellen SD-Ordner entpackt werden.
Sicherheitsregeln:
- normale stored/deflated ZIP-Einträge werden unterstützt,
- Pfade wie
../ werden blockiert,- CRC-Prüfungen werden genutzt,
- maximal 512 ZIP-Einträge,
- maximal 32 MB entpackte Daten,
- problematische oder unsichere Pfade werden übersprungen.
Hinweis: Auf ESP32-2432S028R / CYD OTA-Builds kann ZIP-Entpacken automatisch deaktiviert sein, um Flash und RAM zu sparen. Der normale Dateimanager bleibt trotzdem verfügbar.
Geschützte Dateien
Konfigurationsdateien und temporäre Systemdateien werden gegen versehentliches Löschen geschützt, soweit die Firmware sie als geschützt erkennt.
24. SD-gehostete Weboberfläche
Ab v0.0.2.3 wird die Weboberfläche als eigenes Dateienpaket auf der SD-Karte ausgeliefert. Dadurch können HTML, CSS und JavaScript gepflegt werden, ohne die Firmware mit großen eingebetteten Seiten zu belasten.
Benötigter Ordner auf der SD-Karte:
/webuiZum Kernpaket gehören insbesondere:
/webui/index.html
/webui/styles.css
/webui/app.js
/webui/bind.js
/webui/message.html
/webui/dvswitch.html
/webui/svxlink.html
/webui/frn.html
/webui/aprs.html
/webui/hamqsl.html
/webui/screen-mirror.html
/webui/adsb.html
/webui/alerts.html
/webui/target-lists.html
/webui/files.html
/webui/ota.htmlDie normale Geräteadresse
/ lädt /webui/index.html. Auch die bekannten /app/...-Adressen bleiben bestehen und liefern die jeweilige Seite aus dem WebUI-Ordner.Runtime-State API
Die JavaScript-Bindings laden aktuelle Werte über:
/api/webui/stateDie Antwort enthält die gespeicherte Konfiguration und Laufzeitdaten, unter anderem:
- Firmwareversion
- IP-Adresse
- Display-/Controller-Bezeichnung
- Backend und Build
- Callsign
- Traffic-Text und verwendete Traffic-Positionsquelle
- FRN-Status, Clientzahl und aktiven FRN-Client
- verfügbare Alert-Koordinaten und deren Quelle
- OTA-/Partitionsstatus, soweit auf dem jeweiligen Build verfügbar
Dadurch kann ein statischer HTML-Header noch einen älteren Platzhaltertext enthalten;
bind.js ersetzt die sichtbaren Statuswerte beim Laden mit den tatsächlichen Runtime-Daten der Firmware.Zusätzliche Assets
Dateien unter
/webui, die nicht zu den fest registrierten Kernseiten gehören, können ebenfalls direkt ausgeliefert werden. Der Webserver ermittelt dafür den MIME-Typ anhand der Dateiendung.Fehlendes WebUI-Bundle
Wenn eine benötigte Datei fehlt, liefert die Firmware eine klare 404-Meldung wie:
Missing SD WebUI asset: /webui/index.html
Copy the complete supplied /webui directory to the SD-card root.In diesem Fall den vollständigen
content/sdcard/webui-Ordner erneut auf die SD-Karte kopieren.25. Screen Mirror
Screen Mirror ist eine optionale WATCH-Quelle. Sie empfängt Frames über WebSocket von einem PC-Sender und zeichnet sie zwischen Header und Footer. JPEG bleibt unterstützt; ab v0.0.2.3 kann der Desktop-/Remote-Sender zusätzlich direkte RGB565-Frames in der vom Display angeforderten Größe liefern.
Die Einstellungen liegen unter:
Application -> Screen MirrorEinstellungen:
- Enable Screen Mirror
- WebSocket port
- Frame width
- Frame height
- Maximum JPEG KB
- Refresh interval ms
Die Seite zeigt außerdem die aktuelle Receiver-URL, zum Beispiel:
ws://<display-ip>:<port>Typische Framegrößen:
320x240
480x320
800x480Für die beste Darstellung sollte der PC-Sender dieselbe Größe senden, die auf der Screen-Mirror-Seite eingestellt ist.
Nutzung auf dem Display
1. Screen Mirror in der Weboberfläche aktivieren.
2. Einstellungen speichern.
3. Auf dem Display WATCH antippen.
4. MIRROR auswählen.
5. Den PC-Sender mit der WebSocket-URL des Displays verbinden.
Die Firmware fordert Frames im eingestellten Refresh-Intervall an. Bei JPEG werden zu große Bilder auf den verfügbaren Bereich zwischen Header und Footer begrenzt. Der aktuelle Desktop-Remote-Sender versteht zusätzlich
REQUEST_FRAME_RGB565:<breite>x<höhe> und sendet danach einen RGB565-Frame in genau dieser Größe. Dadurch entfällt JPEG-Decoding auf dem Empfänger für diesen Pfad.Touch-Eingaben können an den aktiven WebSocket-Sender weitergereicht werden. Beim RGB565-Pfad werden die Touch-Koordinaten an die tatsächlich angeforderte Framegröße angepasst.
26. OTA firmware
OTA-Updates erfolgen über:
Application -> OTA firmwareDie OTA-Seite ist für Application-
.bin-Dateien gedacht.Nicht verwenden:
-
.ino-
.zip- Bootloader-
.bin- Partition-
.bin- Merged-/Full-Flash-Dateien
Ab v0.0.2.0 zeigt die OTA-Seite zusätzliche Statusinformationen:
- Sketch Größe
- OTA free space
- OTA partition Status
- Upload-/Update-Status
- klarere Fehlermeldungen bei falscher Datei, falscher Größe oder fehlender OTA-Partition
Wichtig:
- Das Gerät muss vorher per USB mit OTA-Partition geflasht worden sein.
- Für CYD 4 MB muss die App in den OTA-Slot passen.
- Factory-/Huge-App-CYD-Builds unterstützen keine OTA-Updates.
- Nach einem erfolgreichen OTA-Update startet das Gerät neu.
27. Import / Export und Konfiguration sichern
Die Weboberfläche bietet Import und Export der Konfiguration. Vor größeren Änderungen, OTA-Updates oder einem Factory-Flash sollte die Konfiguration exportiert werden.
Die Konfiguration enthält unter anderem:
- Backend und Hotspot-Adresse
- WLAN-Profile
- Display- und Theme-Einstellungen
- Screensaver-Einstellungen
- Weather, Lookup und Target-Listen
- SSH Quick Aktionen
- DVSwitch inklusive Dashboardpfaden, SSH-Zugang und Ziel-Presets
- FRN inklusive Server, Net/Raum und Login-Identität
- Autobahn-Traffic inklusive Intervall, Radius, Positionsquelle, Koordinaten und Autobahnliste
- SVXLink, APRS, HAMQSL, ADSB und Hinweise
- Screen Mirror Einstellungen
- Desktop-Cursor-Einstellung
Bei der Desktop-Version wird die Konfiguration vollständig als Snapshot gespeichert. Ab v0.0.2.3 gehören auch FRN-, Traffic- und Desktop-Cursor-Einstellungen dazu.
28. Fehlersuche
Display startet Setup-AP
Prüfen:
- WLAN-SSID korrekt?
- WLAN-Passwort korrekt?
- 2,4-GHz-WLAN aktiv?
- Hotspot-IP/Hostname korrekt?
- Backend Pi-Star/WPSD richtig gewählt?
Keine Live-Daten
Prüfen:
- Pi-Star/WPSD Übersicht im Browser erreichbar?
- IP-Adresse oder Hostname im MMDVM-Bereich korrekt?
- Backend richtig gewählt?
- Hotspot und Display im selben Netzwerk?
DVSwitch wird nicht angezeigt oder liefert keine Daten
Prüfen:
- DVSwitch unter Application -> DVSwitch aktiviert?
- Host/IP oder Basis-URL korrekt?
- Dashboardseiten
/include/lh.php und /include/status.php im Browser erreichbar?- Abweichende Dashboardpfade in der Weboberfläche angepasst?
- Display und DVSwitch-System im selben Netzwerk beziehungsweise über das Netzwerk erreichbar?
DVSwitch Mode-Buttons oder Presets schlagen fehl
Prüfen:
- Enable DVSwitch SSH actions aktiviert?
- SSH-Benutzer, Passwort und Port korrekt?
- DVSwitch-Host per SSH erreichbar?
- Pfad zu
dvswitch.sh korrekt?- Befehl manuell per SSH getestet?
- Bei Nicht-root-Benutzern sudo-Berechtigung vorhanden?
- SSH-Unterstützung in diesem Firmware-Build enthalten?
FRN wird nicht angezeigt oder bleibt offline
Prüfen:
- FRN unter Application -> FRN aktiviert?
- Serverhostname/IP und Serverport korrekt?
- Net/Raum exakt richtig geschrieben?
- E-Mail, Passwort beziehungsweise dynamisches Passwort und Callsign/Benutzer eingetragen?
- Internetzugriff auf
sysman.freeradionetwork.de:10025 für die automatische Dynamic-Password-Abfrage möglich?- FRN-Server aus dem verwendeten Netzwerk erreichbar?
- Bei wiederholten Authentifizierungsfehlern Zugangsdaten mit einem normalen FRN-Client gegenprüfen.
Traffic-Footer zeigt keine Meldungen
Prüfen:
- Enable Autobahn traffic footer aktiviert?
- Mindestens eine gültige Autobahn wie
A3 eingetragen?- Internetzugriff auf
verkehr.autobahn.de möglich?- Bei aktivem Radius gültige Positionsquelle vorhanden?
- Testweise Coordinate source auf Static setzen und bekannte Latitude/Longitude eintragen.
- Radius testweise vergrößern.
- Im Web UI den angezeigten Traffic-Status und die verwendete Positionsquelle kontrollieren.
KATWARN/NINA zeigt keine lokale Warnung
Prüfen:
- Germany alerts aktiviert?
- Sind gültige SVXLink-, Weather-, APRS- oder ADS-B-Koordinaten vorhanden?
- Im Web UI unter Runtime-State prüfen, welche Alert-Koordinaten verwendet werden.
- Wenn keine Koordinaten verfügbar sind: gültige NINA-/ARS-Location-ID als Ausweichlösung eintragen.
- Eine Warnung wird im Koordinatenmodus nur angezeigt, wenn die Position innerhalb des gelieferten NINA-GeoJSON-Polygons liegt.
Weboberfläche fehlt oder zeigt Missing SD WebUI asset
Prüfen:
- Existiert
/webui/index.html auf der SD-Karte?- Wurden
styles.css, app.js und bind.js mitkopiert?- Am besten immer den kompletten mitgelieferten
content/sdcard/webui-Ordner kopieren.- Desktop:
MMDVM_SDCARD_DIR prüfen oder den sdcard-Ordner neben Projekt/EXE ablegen.OTA schlägt fehl
Prüfen:
- Wurde zuerst per USB mit OTA-Partition geflasht?
- Ist die hochgeladene Datei wirklich die Application-
.bin?- Passt die Datei in den freien OTA-Slot?
- CYD: eventuell
--ota oder Factory/Huge-App für USB-Flash verwenden.Flashen schlägt bei Connecting fehl
BOOT-Taste gedrückt halten, während das Flashen startet, danach loslassen. Anderes USB-Kabel, underen USB-Port oder niedrigere Baudrate probieren, wenn es weiterhin fehlschlägt.
SD-Dateien fehlen oder Icons werden nicht angezeigt
Prüfen:
- SD-Karte korrekt formatiert und eingesteckt?
- Richtiger Ordnername, zum Beispiel
/weather, /lookup, /aprs, /adsb?- Dateinamen exakt passend?
- Bei CYD OTA: ZIP-Entpacken kann deaktiviert sein, normaler Upload einzelner Dateien bleibt möglich.
Screen Mirror verbindet nicht
Prüfen:
- Screen Mirror in der Weboberfläche aktiviert?
- Display-IP und WebSocket-Port korrekt?
- PC und Display im selben Netzwerk?
- Firewall auf dem PC blockiert den Absender?
- Port 80 vermeiden; die Firmware setzt ihn auf den Default-Port zurück.
- Auf dem Display WATCH -> MIRROR auswählen.
- Bei Verwendung des aktuellen Desktop-Remote-Senders prüfen, ob RGB565-Frameanforderungen beantwortet werden und die angeforderte Breite/Höhe zur Displayfläche passt.
29. Hinweise
- Firmware-Dateien müssen zum Displaytarget passen.
- Bootloader, Partition und Application müssen aus demselben Build stammen.
- Nach Änderung des Partition-Modus immer neu bauen und komplett per USB flashen.
- OTA ist bequem, aber nur möglich, wenn das Gerät vorher mit OTA-Partition geflasht wurde.
- SD-Dateien und Konfiguration vor größeren Aktualisierungen sichern.
- Ab v0.0.2.3 gehört
/webui zum benötigten SD-Weboberflächenpaket; Firmware und WebUI-Bundle sollten gemeinsam aktualisiert werden.- FRN verwendet ein Legacy-Protokoll ohne TLS; Zugangsdaten nur in vertrauenswürdigen Netzen/Servern verwenden.
- Autobahn-Traffic und positionsbezogene Warnungen hängen von externen APIs und gültigen Koordinaten ab.
- SSH-Befehle immer vorher manuell testen.
- Externe APIs können Rate-Limits oder Ausfälle haben.
- DVSwitch-, Pi-Star/WPSD- und SVXLink-SSH-Befehle werden auf dem jeweiligen Zielsystem ausgeführt und sollten nur in vertrauenswürdigen Netzwerken verwendet werden.
- Nutzung auf eigenes Risiko.