MeshRadio – Firmware Flash Anleitung (ohne Entwicklungsumgebung)

MeshRadio – Webinterface & API Referenz. <- Klick hier

Diese Anleitung beschreibt, wie die MeshRadio Firmware auf ein unterstütztes Gerät installiert wird.

Es sind keine Programmierkenntnisse erforderlich.
Die Installation erfolgt mit einer fertigen Firmwaredatei.


Unterstützte Hardware

MeshRadio unterstützt aktuell vier Geräte:

Die richtige Firmware gibt es im Downloads <- Klick

⚠️ Wichtig
Die Firmware ist boardspezifisch.
Bitte die richtige Firmware verwenden.


Benötigte Software

Zum Flashen wird nur ein Tool benötigt:

ESP Flash Download Tool

Download:

https://www.espressif.com/en/support/download/other-tools

Nach dem Download die ZIP Datei entpacken.

Das Tool benötigt keine Installation.


Schritt 1 – Board anschließen

Das LoRa Board per USB Kabel anschließen.

Beispiele:

Board Anschluss
LILYGO_SX1276 USB-C
HELTEC_V3 USB-C
TBEAM_V11_SX1276 USB-C
TBEAM_V12_AXP2101 USB-C

Windows erkennt das Gerät automatisch als USB Serial Port.

Beispiel:

COM7

Den COM-Port merken.

Schritt 2 – Flash Tool starten

Programm starten:

flash_download_tool.exe
Danach erscheint ein Auswahlfenster.

Auswahl:

ChipType: ESP32   Für LILYGO_SX1276, TBEAM_V11_SX1276, TBEAM_V12_AXP2101
ChipType: ESP32-S3 Für HeltecV3
WorkMode: Develop
LoadMode: UART
Dann:
OK

Schritt 3 – Firmware auswählen

Im Flash Tool die Firmware auswählen.

Beispiel:

MeshRadio_HeltecV3.bin
Adresse einstellen:
0x0
Checkbox aktivieren.

Schritt 4 – Flash Parameter einstellen

Folgende Parameter einstellen:

Parameter Wert
SPI Speed 40 MHz
SPI Mode DIO
Flash Size 4MB

Diese Einstellungen funktionieren mit allen unterstützten Boards.

Schritt 5 – COM Port auswählen

Unten im Flash Tool:

COM Port: COM7
Baud Rate: 921600
(je nach System kann der COM-Port abweichen)

Schritt 6 – Flash starten

Button klicken:

START
Das Tool beginnt nun mit dem Flashvorgang.

Beispiel Ausgabe:

Writing at 0x00010000…
Hash of data verified.
Der Vorgang dauert etwa:
5 – 15 Sekunden

Schritt 7 – Flash abgeschlossen

Nach erfolgreichem Flashen erscheint:

FINISH
Das Gerät startet anschließend automatisch neu.

Falls nicht:

RST Taste drücken

ACHTUNG!!!
AB Version > 3.1 können Updates über OTA WEB geflashed werden
3.1 oder der erste Flash selbst muss über das Tool geflashed werden!
http://<aktuelleIP>/update

Flashen unter Linux (ESP32-S3 / LiLyGo)

1. Alte esptool Version entfernen

sudo apt remove esptool

2. Python-Umgebung erstellen

# Falls venv noch nicht installiert ist

sudo apt install python3-venv

python3 -m venv ~/esptool_env
source ~/esptool_env/bin/activate

3. Offizielles esptool installieren

pip install esptool

4. Firmware flashen

HeltecV3:
esptool.py –chip esp32s3 –port /dev/ttyACM0 –baud 921600 write_flash -z 0x00 AktuellesMeshRadioHeltec.bin
LiLyGo:
esptool.py –chip esp32 –port /dev/ttyUSB0 –baud 921600 write_flash -z 0x00 AktuellesMeshRadioLiLyGo.bin

Hinweis

Solange die Python-Umgebung aktiv ist, erscheint im Terminal:

(esptool_env)

Erststart des Gerätes

Einmal am Gerät Reset drücken!

Nach dem Flash erzeugt der Node automatisch ein WLAN.

SSID:

MeshRadio-Setup
oder
MeshRadio-SetupX

Passwort:

Verbindung zum Webinterface

Mit dem WLAN verbinden.

Danach im Browser öffnen:

http://192.168.4.1

Jetzt erscheint das MeshRadio Webinterface mit Configuration Abschnitt.

Wichtiger Schritt – Factory Reset

Nach dem ersten Flash sollte immer ein Factory Reset durchgeführt werden.
Bei den nächsten flash Zyklen bleibt die NVS Speicherung erhalten.

Grund:

Der interne Speicher (NVS) kann alte Daten enthalten.

Factory Reset durchführen

Im Webinterface:

Factory Reset
Danach startet der Node automatisch neu.

Anschließend erneut verbinden mit:

MeshRadio-Setup

Typische Probleme beim Flashen

Gerät wird nicht erkannt

Treiber installieren:

CP210x USB Driver
oder
CH340 Driver
abhängig vom Board.

Flash startet nicht

BOOT Taste gedrückt halten während START gedrückt wird.

Danach loslassen.

falsche Firmware

Wenn falsche Firmware verwendet wurde:

einfach erneut flashen.

Das Gerät kann dadurch nicht dauerhaft beschädigt werden.

Firmware Update

Für ein Firmware Update wird einfach erneut geflasht.

Vorgehen:

Flash Tool starten

neue Firmware auswählen

START
Die Konfiguration bleibt normalerweise erhalten.

Wenn Probleme auftreten:

Factory Reset

durchführen.

ACHTUNG!!!
AB Version 3.1 können Updates über OTA WEB geflashed werden
3.1 oder beim ersten flash selbst muss über das Tool geflashed werden!
http://<aktuelleIP>/update

Sicherheitshinweis

Beim Flashen wird nur die Firmware ersetzt.

Folgende Daten können gespeichert bleiben:

  • Node Konfiguration
  • Frequenz
  • Callsign
  • Routing Einstellungen

Wenn eine saubere Neuinstallation gewünscht ist:

Factory Reset durchführen.
Danach muss das Device neu konfiguriert werden!

Empfehlung

Nach jedem Firmware Update:

Factory Reset

Konfiguration neu laden
Danach muss das Device neu konfiguriert werden!
So wird sichergestellt, dass keine alten Einstellungen Konflikte verursachen.

MeshRadio – Webinterface & API Referenz

Diese Dokumentation beschreibt alle Funktionen des MeshRadio Webinterfaces sowie die zugrunde liegende API.

Das Webinterface dient zur Konfiguration eines Nodes ohne zusätzliche Software.

Zugriff auf das Webinterface

Nach dem Start erzeugt der Node ein WLAN:

MeshRadio-Setup

Verbinden mit:

Passwort:
Dann im Browser öffnen:
http://192.168.4.1
Jetzt kann der eigene AP Konfiguriert werden:
Danach APPLY FORM -> SAVE NVS -> RESET ESP
Das Target startet neu und wenn alles richtig war verbindet es sich mit dem eigenen AP. Eventuell muss am Target Reset gedrückt werden.
Wenn etwas schief geht bleibt die Adresse http://192.168.4.1  bestehen!
Kontrolle kann über UART USB CLI durchgeführt werden. Dort erfährt man auch die neue Adresse und den Hostname.

Adresse der Targets COM???   im puty öffnen 115200 Baud.

Danach steht das Gerät über die neue IP bzw. den Hostname zu Verfügung. http://<ZugeteilteIP o. Hostname>


Webinterface – Aufbau

Das Webinterface besteht aus folgenden Bereichen:

  1. System Information
  2. Node Configuration
  3. RF Configuration
  4. Routing Settings
  5. Sensor Settings
  6. Message Interface
  7. Configuration Control
  8. Command Trigger

Falls das Device ein GPS Modul hat wir das Webinterface um dieses Fenster erweitert:
In der Version 3.3.0 kann jedes Decice mit aktivierten WIFI eine Position im APRS als Router anzeigen.

Beim Klicken auf den APRS Button kann das folgende Konfiguriert werden.

Nach ausfüllen speichern und das Device sendet an das Relay Callsign die GPS Daten. Wenn alles stimmt wird es an APRS.fi übertragen.
Ist die Position für das Test Gateway eingetragen, alle Daten stimmen (APRS) und WIFI verbunden wird die Position übertragen.

Kein GPS FIX bei Devices mit GPS Modulen, keine Übertragung!


1 System Information

Zeigt Hardware- und Firmwareinformationen.

Feld Beschreibung
UI-Ampel Status der Oberfläche (z. B. OK / OLD)
Status Aktiver Betriebszustand mit Parametern (Call, Mode, Display, WiFi, Relay, Crypto, Batterie)
Target Hardware-Board
LoRa Chip verwendeter LoRa-Chip
Firmware installierte Firmware-Version
Protokoll verwendete MeshRadio-Protokollversion

2 Node Configuration

Grundkonfiguration des Nodes.

Parameter Beschreibung
Callsign eigenes Rufzeichen
Relay Callsign Zielnode
Node Mode Betriebsmodus
Crypto Verschlüsselung aktiv
WiFi Accesspoint aktiv

Callsign

Eigenes Rufzeichen des Nodes.

Beispiel:

DJ1ABCF
Maximal:
8 Zeichen

Relay Callsign

Zielnode für Nachrichten.
Im Modus Sensor bei Powersave on sendet der sensor an diese Adresse ein Awake Nachricht.
Bei aktivierten BME280 oder einem anderem Sensor werden die Daten mit gesendet.

Beispiel:

DL7ABCF

Node Mode

Bestimmt die Rolle des Nodes.

Mögliche Werte:

0 = RELAY
1 = EDGE
2 = SENSOR

Beschreibung:

Mode Funktion
RELAY Router Node
EDGE Endpunkt
SENSOR Sensor Node

Crypto

Aktiviert AES-CCM Verschlüsselung.

ON
OFF

Wenn aktiv müssen beide Nodes denselben Schlüssel verwenden. Crypto muss nicht auf Sender und Empfänger aktiviert sein.
Das Device erkennt verschlüsselte Nachrichten und entschlüsselt diese.

3 RF Configuration

Einstellungen des Funkmoduls.

Parameter Beschreibung
Frequency Funkfrequenz
TX Power Sendeleistung

Frequency

Frequenz in Hertz.

Beispiel:

433050000
Alle Nodes müssen dieselbe Frequenz verwenden.

TX Power

Sendeleistung in dBm.

Beispiele:

2
10
14
20
Typische Werte:
Wert Leistung
2 minimal
10 mittel
14 Standard
20 maximale Leistung

4 Routing Einstellungen

Mesh Routing Parameter.

Parameter Beschreibung
Beacon Interval Beacon Intervall
RouteAdv Routing Updates
RouteAdv TopN Anzahl Routing Einträge
RouteAdv Delta ETX Änderung
Holddown Routing Stabilisierung

Beacon Interval

Zeit zwischen Beacons.

Beispiel:

30000
Einheit:
Millisekunden

5 Sensor Einstellungen

Nur relevant im Sensor Mode.

Parameter Beschreibung
PowerSave Deep Sleep aktiv
Wake Period Aufwachintervall
RX Window Empfangsfenster
BME280 Wettersensor aktiv

PowerSave

Aktiviert Deep Sleep.

ON
OFF
Wenn aktiviert schläft der Node zwischen den Messungen.

Wake Period

Zeit zwischen zwei Aufwachzyklen.

Beispiel:

300000
entspricht
5 Minuten

RX Window

Zeitfenster in dem der Sensor Kommandos empfangen kann.

Beispiel:

30000
entspricht
30 Sekunden

BME280

Aktiviert den Wettersensor.

ON
OFF
Wenn aktiv sendet der Node:
SENSOR:AWAKE WX t=23.1C p=1013hPa rh=42% bat=3710mV bat=63%

ACHTUNG! Die BME280 sind fest verdrahtet. Heltec: SDA GPIO 41   SCL GPIO 42    und LiLyGo:  SDA  GPIO 21    SCL GPIO 22

6 Message Interface

Direktes Senden von Nachrichten.

Felder:

Feld Beschreibung
Destination Zielnode
ACK Empfangsbestätigung
Message Nachricht

Beispiel

Destination: DL7ABCF
ACK: 1
Message: STATUS?

ACK

0 = keine Bestätigung
1 = ACK erforderlich

7 Configuration Control

Steuerbuttons im Webinterface.

Apply Form

Übernimmt Änderungen sofort in die Laufzeit.
Änderungen sind noch nicht gespeichert.

Save NVS

Speichert Konfiguration dauerhaft im Flash.
Ohne Save gehen Änderungen beim Neustart verloren.
Es empfiehlt sich nach jeder Änderung ein Reset durchzuführen!

Load NVS

Lädt gespeicherte Konfiguration aus dem Flash.

Defaults

Setzt Standardwerte.

Reload Config

Lädt aktuelle Konfiguration neu vom Gerät.

Reset

Startet den ESP neu.

Factory Reset

Löscht komplette Konfiguration.

Gelöscht werden:

  • Callsign
  • Frequenz
  • Routing Einstellungen
  • WiFi Einstellungen

Danach startet das Gerät neu.

8. Command Trigger

Es stehen für das Device jeweils 2 GPIO’s zu Verfügung die mit einem Befehl belegt werden können.
Unterschiedlich für LiLyGo und Heltec.
Die GPIO’s können ausgewählt werden.
Command Destination beschreibt das Ziel Target an dem der Befehl ankommen soll.
Im Command Text wird der Befehl ausgewählt der gesendet werden soll.
Die GPIO’s sind so programmiert das sie nur nach GND gezogen werden müssen um den Befehl abzusetzen.

Was Ihr damit jetzt tun könnt:

GPIO 48 – Verwendung (ESP32-S3)

Der Pin GPIO 48 kann durch die flexible Pin-Matrix des ESP32-S3 für verschiedene digitale Funktionen genutzt werden.

Kommunikation & Sensoren

  • GPS-Module – z. B. als GPS_RX für NMEA-Daten
  • One-Wire Sensoren – z. B. DS18B20 Temperaturfühler
  • I²C / SPI – zusätzliche Sensoren oder Displays (z. B. BME280)
  • UART – zusätzlicher serieller Kommunikationsport

Ein- und Ausgänge

  • Taster / Schalter – mit internen Pull-up / Pull-down Widerständen
  • Rotary Encoder – für Menüsteuerungen
  • LEDs oder Summer – Statusanzeigen oder Signaltöne
  • Relaismodule – zum Schalten externer Geräte

Steuerung (PWM)

  • Servo-Motoren – Positionssteuerung
  • Lüfterregelung – Geschwindigkeitssteuerung
  • LED-Dimmen – Helligkeitssteuerung von LEDs

Wichtige Hinweise

  • Kein Analog-Eingang: GPIO 48 besitzt keinen ADC
  • 3,3 V Logik: 5 V dürfen nicht direkt angeschlossen werden

API Referenz

Das Webinterface nutzt eine HTTP API.
Alle Befehle können auch direkt über HTTP aufgerufen werden.

GET /api/cfg

Beispiel: Gilt auch für alle folgenden Commands.
http://<Deine_IP_oder_Domain/api/cfg

Liest die komplette Konfiguration.

Antwort:

{
„callsign“:„DJ1ABCF“,
„relay_callsign“:„DL7ABCF“,
„net_id“:66,
„crypto“:1,
„node_mode“:0,
„wifi“:1,
„ssid“:„MeshRadio“,
„beacon“:1,
„beacon_ms“:30000,
„routeadv“:1,
„rf_hz“:433050000,
„tx_dbm“:10,
„powersave“:0
}

POST /api/cfg

Setzt Konfiguration.

Body Beispiel:

{
„callsign“:„DJ1ABCF“,
„node_mode“:2,
„rf_hz“:433050000
}

POST /api/reset

Startet das Gerät neu.

Antwort:

OK reset

POST /api/factory

Factory Reset durchführen.

Antwort:

OK factory reset

POST /api/send

Sendet eine Nachricht.

Beispiel:

{
„dst“:„DL7ABCF“,
„ack“:1,
„text“:„STATUS?“
}

CLI Befehle (UART)

Zusätzlich existiert eine serielle CLI.

help

zeigt Befehle

help

status

zeigt Status

status?

wifi

wifi on
wifi off

role

role 0
role 1
role 2

crypto

crypto on
crypto off

relay

relay on
relay off
relay toggle

send

send DL7ABCF 1 HELLO

cmd

Remote Kommandos.

cmd DL7ABCF 1 STATUS
cmd DL7ABCF 1 RELAY ON
cmd DL7ABCF 1 RELAY OFF
cmd DL7ABCF 1 RELAY TOGGLE
cmd DL7ABCF 1 CRYPTO ON
cmd DL7ABCF 1 CRYPTO OFF

Sensor Nachrichten

ACHTUNG! Die BME280 sind fest verdrahtet. Heltec: SDA GPIO 41   SCL GPIO 42    und LiLyGo:  SDA  GPIO 21    SCL GPIO 22

Sensor Nodes senden automatisch:
SENSOR:AWAKE
oder
SENSOR:AWAKE WX t=23.1C p=1013hPa rh=42% bat=3710mV bat=63%
Wenn BME280 und Powersave aktiv.

Zu den Sensor Nachrichten gibt es eine Visualisierung
mit Steuerung

Im Release enthalten Pyton File:

Zur Beschreibung <- Klick

Zusammenfassung

Typischer Ablauf:

Flash Firmware

Factory Reset

Konfiguration im Webinterface

Apply

Save

Reset