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/