GPS-Decoder mit Anzeige 10-stelliger Maidenhead-Locatordaten
In Bearbeitung
Stand: 07. Dezember 2023 
  Automatic translation by GOOGLE: 
https://www-kh--gps-de.translate.goog/locator.html?_x_tr_sch=http&_x_tr_sl=de&_x_tr_tl=en&_x_tr_hl=de&_x_tr_pto=wapp

NEUE Softwareversion "V3":  
Hinzugekommen ist eine Anzeige von Höhendaten und eine
Umschaltmöglichkeit auf die mitteleuropäischen Zeitzonen incl. ihrer EEPROM-Speicherung.
Zur Umschaltung wird die Taste oberhalb der USB-Buchse verwendet
.


         



Abb.1 Gesamtansicht der Locator-Decodereinheit

Schon seit vielen Jahren gibt es eine Fülle von Anwendungen, die sich der Maidenhead-Locatordaten bedienen. Diese setzen sich aus einer kurzen Folge gebräuchlicher Buchstaben und Ziffern zusammen und erlauben damit die weltweite Definition rechteckförmiger geographischer Bereiche. Tabelle 1 liefert eine Übersicht über die verschiedenen Datenformate mit 4-10 Charaktären und den sich daraus für Standorte in Mitteleuropa ergebenden Detaillierungsgraden.

locator data
vertical square length
horizontal  square length
 4 characters
 ( e.g.: JN49 )
~ 110 Km
~ 150 Km
 6  characters
 ( e.g.: JN49EF )
~ 4,7 Km
~ 6,0 Km
 8 characters
 ( e.g.:JN49EF30 )
~ 470 m
~ 600m
 10 characters
( e.g.:JN49EF30AB )
~ 20 m
~ 25 m
Tabelle 1  Detaillierungsgrade der einzelnen Locatorversionen

Im Amateurfunkbetrieb werden Locatordaten üblicherweise zur Bestimmung des eigenen Standortes benutzt, lassen sie bedarfsweise aber auch auf dem Funkweg an Gegenstationen übertragen. Hierbei handelt es sich entweder um Festwerte oder von angeschlossenen GPS-Empfängern stammende und danach konvertierte Livedaten. Während die 6-stellige Variante dabei als das Standardformat bezeichnet werden kann, begnügt man sich bei verschiedenen digitalen Modes ( z.B. bei FT8 ) und speziell Kurzwellenanwendungen mit dem 4-stelligen Format.


Das realisierte Decoderkonzept

Mein Interesse aber galt speziell dem 10-stelligen Format mit seinen dabei definierten Rechteckbereichen mit Abmessungen von nur etwa 20x25m. Mir war dabei allerdings bewusst, dass ich mich damit schon in einem Bereich bewegen würde, der unterhalb des vom US-Netzbetreiber für zivile GPS-Anwendungen ermöglichten Genauigkeitsbereiches liegen würde. Bei Betrieb eines GPS-Empfängers an einem hierfür nicht optimalem Standort ( also ohne freie Sicht zum Himmel und rundum bis zum Horizont ) waren wechselnde Locatoranzeigen auch bei stationärem Betrieb zu erwarten und würden sich dabei vorzugsweise auf die letzten beiden der angezeigten Stellen auswirken.


Abb.2  verwendetes LiLyGo ESP32-Modul mit 1.14"-TFT-Display


Damit ging es um den Aufbau eines entsprechenden einfachen Decoders, der nur aus einem GPS-Empfängermodul und einem Mikrocontrollerbaustein mit zugehörigem Display bestehen sollte. Nach einiger Suche schien mir der seit einiger Zeit erhältliche LiliGO-Baustein mit ESP32-Prozessor und 1.14"-TFT-Display [ gem. Abb.2 ] als hierfür besonders gut geeignet zu sein. In kompakter Weise vereint er einen leistungsfähigen Prozessor mit möglichen Zusatzfunktionen wie z.B. Bluetooth und ein 1.14"-TFT-Farbdisplay mit einer Auflösung von 135x240 Pixeln. Für externe 5V-Speisung und zur Programmierung besitzt er einen C-USB-Anschluß, erlaubt aber auch den Betrieb über einen anschaltbaren 3.7V-Akku. Somit war zur Komplettierung als vollständige Decodereinheit nur noch ein zusätzliches GPS-Modul erforderlich.

Infos zur Software und Datenauswertung

Die erstellte Software verwendet die bekannte TinyGPSPlus-Library von Mikal Hart. Die zur Wandlung der GPS-Daten in das 10-stellige Maidenheadformat benutzte Routine wurde an das ARDUINO-Format angepasst und basiert dabei auf einer älteren, von OE3HBW stammenden BASCOM-Version.
Die realisierte Softwareversion ermöglicht die Displaydarstellung von GPS-Urzeit in GMT, der vom Empfängermodul gelieferten Daten von Breiten- und Längengrad, eines daraus konvertierten 10poligen-Maidenhead-Locatorwertes, sowie der Anzahl ausgewerterter GPS-Satelliten. Erfahrene Satellitenutzer wissen, daß es nach Betriebsbeginn abhängig vom Einsatzstandort und auch der jeweilgen Empfängerkonstellation einige Minuten dauern kann, bis ein sog. "GPS-Fix" erfolgt ist und verlässliche Daten angezeigt werden. Erfahrungsgemäß beginnt das mit der Anzeige  korrekter Zeitwerte, erfordert für die restlichen Daten aber den Empfang von mindestens 3-4 Satelliten. Kleinere Abweichungen können sich hinsichtlich dieses Verhaltens bei Verwendung unterschiedlicher Typen von GPS-Moduln ergeben.


Abb.3  Locator-Decodereinheit in Betrieb

Nachdem zum Leistungsumfang der ESP32-Prozessoren auch eine Bluetooth-Funktion gehört, lag es nahe, sie zu verwenden, um die auf dem Display angezeigten Daten bei Bedarf auch noch parallel dazu über Distanzen von einigen Meter drahtlos übertragen zu können. Dazu ist ausgehend von üblicherweise einem PC oder Smartphone/Tablet einmalig ein "Pairing" mit dem Decodermodul herzustellen, wobei sich das Letzgenannte dabei unter dem Namen "LILIGO-LOCATOR" meldet. Zum Datenempfang mit einem Smartphones/Tablets eignet sich im einfachsten Fall ein Bluetooth-Terminalprogramm ( gem. Abb.4a ).

   
Abb.4a Anzeige der Bluetoothdaten   Abb.4b  Kartenausschnitt der K7FRY-Seite mit Bereichsmarkierung gem. 10pol-Locatordaten

Zur Kartendarstellung ( siehe Abb.4b ) bis zu 10-stelliger Locatordaten am PC/Smartphone usw. gibt es auf der Internet-Seite von K7FRY ein hierzu hervorragend geeignetes Tool  [3].

Nachbau

Als GPS-Modul wählte ich eine Version mit serieller Bereitstellung von 9600bps-NMEA-Daten bei TTL-Pegeln, sowie einem Betriebspannungsbereich von ca. 3-5V und einer integrierten Patch-Antenne, wobei an dieser Stelle selbstverständlich auch Versionen mit separater Antenne nutzbar sein würden. Die Zusammenschaltung von ESP32-Prozessor und GPS-Modul erfolgt über lediglich 3 Leitungsverbindungen, als da sind: Masse, +5V und der seriellen Datenzuführung vom GPS-Modul an den ESP32-Port: "GPIO27" ( siehe dazu auch Abb.7 ).
Besondere Nachbauhinweise ergeben sich ansonsten nicht.

 
Abb.5a  GPS-Modul auf Gehäuserückseite  und  Abb.5b  verwendbares Thingiverse-Gehäuse

Wie aus den Abb.1, 3, 5a und 5b zu ersehen ist, gibt es für das verwendete Prozessormodul ein kleines passendes 3D-Gehäuse ( Thingiverse 3777859 ), welches z.B. hier [4] erhältlich ist.  

Programmierung

Besonders für die weniger Geübten kann das Hochladen der benötigten Programmfiles incl. ggf. mehrer seiner Libraries unter Verwendung der Arduino-IDE eine oftmals kaum überwindbare Hürde darstellen. Da sollte es eine gute Nachricht sein, wenn die benötigte Software hier [1] bereits im BIN-Format vorliegt und mithilfe des von der Firma EXPRESSIF verfügbaren Windows-Tools "Flash Download" [2] nach nur wenigen zusätzlichen Eingaben auf unkomplizierte Weise in wenigen Sekunden zum Processor hochgeladen werden kann.

   
Abb.6a-c  Eingabefenster des Flash-Tools ( 6b-c zur Grossdarstellung anklicken )

Vorher sind PC und ESP32-Baustein allerdings erst einmal kabelmäßig via USB miteinander zu verbinden. Nach PC-Aufruf des Flash-Download-Tools müssen gem. Abb.6a zuerst noch der verwendete Processortyp  "ESP32" ausgewählt und anschliessend die OK-Taste betätigt werden. Im daraufhin gemäß Abb.6b erscheinenden neuen Fenster ist eine freie Eingabezeile auszuwählen und hier über das zugehörige "..."-Fenster in den jeweiligen Ordner zu verzweigen, in dem die zu verwendende BIN-Datei vorher abgelegt wurde. Nach ihrer Anwahl sollte sie auch in der entsprechenden Eingabezeile des Tools erscheinen. Im rechts daneben sichtbaren Fenster ist jetzt mit Eingabe des Hexwertes "0x10000" noch die zur Datenablage benutzte Startadresse einzugeben und durch Setzen eines Hakens am linken Rand die gesamte Zeile zu aktivieren. Beim Anstecken des ESP32-Bausteins sollte auch schon der für die Verbindung benutze COM-Port gefunden worden sein und nach Aufruf des Auswahlfenster neben "COM:" auch angewählt werden können. In den sonstigen Positionen sollte es genügen, die angezeigten Defaultwerte zu übernehmen. Nach Betätigung der Start-Taste kann anschliessend der Ladevorgang gestartet werden. Gemäß Abb.6c ist er dabei auch als Laufbalken verfolgbar und bereits nach wenigen Sekunden abgeschlossen. Beendet wird der Vorgang durch Drücken der Stop-Taste. Nach erfolgreichem Abschluss und ggf. noch einmal erforderlicher kurzer Betätigung des auf der Platinenunterseite des ESP32-Moduls befindlichen RESET-Tasters, sollten auf dem TFT-Display bereits einige Textzeilen entspr. Abb.7 sichtbar werden und die Decodereinheit soweit betriebsbereit sein.
Wie schon oben beschrieben, ist danach allerdings immer auch noch der Zeitraum bis zum GPS-Fix abzuwarten.  


  Abb.7  LilyGO-Modul ohne Gehäuse mit angezeigter Einschaltmeldung
( siehe auch die Pins über die das GPS-Modul angeschlossen ist )

NEU: Betrieb mit Akku
Nachdem bei den verwendeten Lilygo-Bausteinen auch der Betrieb und die Lademöglichkeit für einen anschliessbaren 3,7V-Akku vorgesehen sind und mehrere Leute dazu schon Fragen gestellt haben, beschäftigte ich mich auch mit dieser Angelegenheit. Selbst hatte ich den Baustein bisher immer nur mit 5V über den C-USB-Anschluss betrieben und musste den Akkubetrieb somit erst einmal testen. Grundsätzlich erwies sich dieser dabei auch möglich, was aber fehlte, war eine über das Board steuerbare Schaltmöglichkeit für seine Betriebsspannung. Leider brachte die versuchsweise getestete, von den ESP32-Prozessoren bereitgestellte Deep-Sleep-Funktion hierbei auch nicht die gewünschte Lösung. Nachdem über sie nicht auch die zur Versorgung externer Einheiten, wie in userem Fall dem GPS-Modul verwendeten Spannungsausgänge deaktivierbar waren, dürfte man für den Akkubetrieb vermutlich nicht um die Verwendung eines externen, in eine der Versorgungsleitungen eingefügten Schalters herumkommen.    

Linkliste

[1]  http://www.kh-gps.de/locator_v3.bin
[2]  https://www.espressif.com/en/support/download/other-tools

[3]  https://k7fry.com/grid/
[4]  https://www.3d-loewe.de/



E-Mail contact via: