Ein LoRa-APRS-Datendecoder mit M5Stack
Version vom 8. Mai 2021

 https://translate.google.com/translate?hl=de&sl=de&tl=en&u=http%3A%2F%2Fwww.kh-gps.de%2Flora_s5stack.htm
NEU im Mai 2021:
Firmware-Versionen ( mit und ohne Sprachausgabe ) decodieren jetzt auch das Format der LoRa-Digi's und I-Gate's mit "L"-Logo.
Hinweise zum Download sind weiter unten in der Rubrik "NACHBAU" zu findenden.

NEU: Aufrufmöglichkeit für Displayfenster zur Darstellung empfangener LoRa-APRS-Rohdaten 

NEU: Version mit Möglichkeiten auch zur Wetterdatenanzeige und Sprachausgabe ( siehe dazu weiter unten )
          und das kleine Video ( einer Vorgängerversion ) von Peter, DG3SMA:   https://youtu.be/Vgay99kEZiE

NEU: 25 Min-YOU-TUBE-Video zum Projekt von Manuel Lausmann:
  https://www.youtube.com/watch?v=sxWXExY1rek
In Verbindung mit LoRa-APRS kann es hilfreich sein, eine einfache Einheit zur Kontrolle von Aussendungen auf z.B. 433.775 MHz. aufzubauen. Für erste Versuche hatte ich schon einmal ein Board mit ARDUINO Pro-Mini, 0.96" OLED und RFM98-LoRa-Baustein erstellt ( http://www.kh-gps.de/lora_aprs2.htm ), aber unlängst "entdeckte" ich nun die ESP32-Bausteine der Serie "M5Stack" ( Abb.1 ). Hier kam mir als absolutem "Mechanikmuffel" entgegen, dass man mit ihrer Hilfe auch umfangreiche ESP32-Projekte realisieren konnte, ohne dabei irgendwelche Mechanikarbeiten durchzuführen zu müssen. M.E. liessen sich die Ergebnisse aber dennoch gut ansehen.

 
Abb.1  LoRa-APRS-Decoder mit M5Stack ( Vorgängerversion )

Herzstück bei der M5Stack-Serie ist die Basiseinheit gem. Abb.2. Sie wird in einem quadratischen Platikgehäuse geliefert. Beinhaltet sind u.a. ESP32-Prozessor, 320x240 Pixel-TFT-Farbdisplay, 160mAh-Akku, Ladevorrichtung , NF-Verstärker mit 1W-Lautsprecher, SD-Kartenslot,  Grove-I2C-Port, 30pol. Anschlussleiste und Bodenplatte . Eine USB-Buchse des Typs C dient dabei der externen 5V-Versorgung und Programmierung ( z.B. via ARDUINO-IDE ).
Ansteckbar an die Basiseinheit ist ein reichhaltes Sortiment von verfügbaren, im gleichen quadratischen Format ausgelegten Zusatzbausteinen. Dazu gehören z.B. ein 650mAh-Akku ( die Kapazität des internen Akkus der Basiseinheit ist nicht für längeren Betrieb ausgelegt ), frei bestückbaren Prototypenboards, GPS-Boards, LoRa-Boards u.v.a.


Abb.2  Innenleben des M5Stack-Bausteins                                  Abb.3  LoRa 433 MHz-Baustein ( hier: Hilfsantenne benutzt )
HF-Stecker der ( alternativ verwendbaren ) Kabelpeitsche zur MCX-Antennenbuchse unbedingt zusätzlich isolieren ( Kurzschlussgefahr ! )  

 
Hardwaremäßig setzt sich die realisierte LoRa-Decodereinheit aus dem M5Stack-Basisbaustein, einem Akku-Zusatzbaustein und einem LoRa-Modul für den 433MHz-Bereich ( Abb.3 ) zusammen. Im Modul ist ein LoRa-Chip des Typs "Ra-02" ( ist im Programm identisch zu den RFM9x-Chips ansprechbar ) verbaut. Möglich ist dabei die Nutzung einer im Platikgehäuse enthaltenen Behelfsantenne ( genügt für den Nahbetrieb ) oder einer via MCX-Buchse anschliessbaren externen Antenne.
 

Der zum ESP32 des Basisbausteins hochzuladende Quellcode basiert zum Teil auf LoRa-Softwarebausteinen von Stuart Robinson, GW7HPW. Auf einfache Weise erlauben sie eine Anpassung an die Hardwareports der M5Stacks und auch die verwendeten LoRa-Parameter incl. der Betriebsfrequenz.

                  
Abb. 4a-c    Beispiele für wählbare Displaydarstellungen   

Die rechte Taste des M5Stack erlaubt eine Auswahl zwischen drei verschiedenen Displaydarstellungen (Abb.4a-c ). In der rechten Ecke der oberen Zeile wird dabei jeweils der Stand eines nach jeder ( gültig erkannten ) Lora-Dateneinlesung incrementierenden Zählers angezeigt. Darunter erscheinen die Rufzeichen empfangener Stationen. Die Darstellungen in den folgenden Zeilen sind je nach gewähltem Fenster unterschiedlich:

Das Fenster gem. Abb.4a zeigt die Werte von Breitengrad ( Lat ), Längengrad ( Lon ) und Höhe ( Alti ) ankommender Stationen. Nachdem Eingangssignale eintreffen können, die sowohl entweder
im komprimierten Übertragungsformat mit Namen "BASE91", als auch im unkomprimierten Standard-APRS-Format ausgesandt wurden, wird das jeweils erkannte Format mithilfe der Begriffe "BASE" oder "APRS" angezeigt.
Die beiden unteren Displayzeilen sind reserviert, um auch eventell mitübertragene Zusatztexte darstellen zu können. Auf die Bedeutung des "T" kommen wir weiter unten noch zurück.

Das mittlere in Abb.4b gezeigte Fenster dient der Anzeige von Distanz- ( DST ) und Richtungswerten ( BRG ) bezogen auf einen im Quellcode ablegbaren ( und hier auch vom Nutzer entsprechend seiner eigenen Bedürfnisse anpassbaren ) Fix-Standort.
Die Werte "RSSI" und "SNR" werden vom LoRa-Empfangsteil bereitgestellt und geben Hinweise auf die Stärke des Eingangssignals und seinen Störabstand.

Erfolgte auch eine zusätzliche Übertragung von Wetterdaten, so können diese im Fenster gem. Abb.4c sichtbar gemacht werden. Weiterhin erfolgt derzeit auch hier noch eine Anzeige von RSSI- und SNR-Werten, wobei aber geplant ist, sie künftig durch weitere Wetterdaten zu ersetzen.

NEU hinzugekommen ( aber hier im Bild noch nicht vorgestellt ) ist eine vierte Displayseite zur Darstellung empfangener LoRa-APRS-Rohdaten 

Serielle Ausgabe empfangener APRS-Protokolle via Bluetooth und die Möglichkeit
ihrer Auswertbarkeit mit z.B. Smartphones und Tablets

Nachdem ESP32-Prozessoren bereits von Haus aus mit Bluetoothfunktionalität ausgestattet sind, lag es nahe, auch diese zu nutzen und empfangene LoRa-Daten wieder im ( unkomprimierten ) APRS-Format bereitzustellen. Ggf. im BASE91-Format empfangene Daten werden dazu entsprechend vorher gewandelt.  

 
Abb. 5a und 5b  Beispiele für Anzeigemöglichkeiten unter APRSDROID

Nach Bluetooth-Verbindungsherstellung mit z.B. einem Smartphone/Tablet und Verwendung einer geeigneten APP erlaubt das u.a. auch eine Kartendarstellung von Standortdaten. Zur Auswertung der APRS-Daten bietet sich die bekannte APP "APRSDROID" an ( Abb. 5a und 5b ). Für erste Versuche und generelle Kontrolle der Bluetoothverbindung kann die Verwendung eines ANDROID-Terminalprogrammes empfohlen werden.

Sprachausgabe 
Nachdem ich ein ähnliches Decoderprogramm auch schon für HELTEC- und TTGO-ESP32-Boards realisiert und dabei auch eine Option zur Sprachausgabe* eingefügt hatte, lag es nahe, so etwas auch für den M5Stack umzusetzen. Aus Gründen der Einfachheit, sollte auch dabei wieder der Sprachbaustein "DFPlayer" von Fa. DFRobot zum Einsatz kommen. Nachdem es hierfür allerdings keinen fertigen Steckbaustein gab, war vorher zuerst einmal eines der für die M5Stacks preiswert verfügbaren PROTO-Boards entsprechend zu bestücken ( Abb. 6 ).

*
siehe dazu incl. Sprach- und Videobeispielen: http://www.kh-gps.de/aprs_monitor.htm
 

   
Abb.6  PROTO-Bestückung für den Sprachausgabezusatz
( nicht sichtbare Kabelverdrahtung auf der Platinenunterseite )

Das in Abb.6 zu erkennende blaue Wendelpoti wurde übrigens an einer Stelle angeordnet, bei der ein im Platikrahmen ohnehin vorhandener Durchbruch benutzt werden konnte, um eine Lautstärkeeinstellung auch noch im eingebauten Zustand zu ermöglichen. Abb.7 zeigt das elektrische Schaltbild der zusätzlich erforderlichen Bauteileanordnung.

Nach Inbetriebnahme eines M5Stacks in der Sprachausgabeversion wird zuerst eine Einschaltmeldung hörbar. Auch ist jetzt bereits der weitere Sprachausgabemodus aktiviert.  In der Displayanzeige wird dieser Zustand durch den Bauchstaben "T" für "TON" signalisiert und kann über die linke Taste am M5Stack geschaltet werden.

In Einschaltzustand werden die Rufzeichen empfangener Stationen gesprochen. Bei Anwahl des Fensters mit den Distanz- und Richtungswerten ( gem. Abb.4b ) werden zusätzlich auch diese Werte mit angesagt ).


Abb.7  Zusatzbeschaltung für Sprachausgabe

Nachbau

Quellcodes gibt es in jeweils einer Version für den Betrieb mit oder ohne Sprachausgabe. Sie können in der Version vom 2. Mai 2021 hier heruntergeladen werden:
http://www.kh-gps.de/LoRa_APRS_M5S_Decoder_02_05.zip

Für die Sprachausgabeversion wird zusätzlich noch ein Satz MP3-Sprachfiles benötigt:
http://www.kh-gps.de/LoRa_Decoder_Mp3.zip
Ihre Ablage erfolgt auf einer Micro-SD-Speicherkarte, die in Verbindung mit dem DFPlayer-Modul verwendet wird. Auf der Karte sind sie in einen hier ggf. noch anzulegenden Subordner mit Namen "Mp3" ( hierbei Gross/Kleinschreibung beachten! ) zu kopieren.

HINWEIS von Ralph, DG5NET:  
Zum Hochladen von Programmen unter Verwendung von M5Stack-Bausteinen aus der Serie "GREY" ist die Einstellung "M5Stack Fire" zu verwenden.

 Im Gegensatz zu mir, der die auf dem Protoboard zur Sprachausgabe erforderliche Zusatzbeschaltung ( gem. Abb.7 ) nur einigermaßen "wild" durchgeführt hat, erfolgte sie bei Peter, DG3SMA deutlich geordneter und ist aus den Abb. 8a-8b ersichtlich, was für eigene Vorhaben u.U. hilfreich sein kann.

     
 Abb. 8a-8b  Zusatzbeschaltung zur Sprachausgabe ( zur Grossdarstellung anklicken )