Raspberry GPS Stick und Garmin GLO via Bluetooth
Den GPS Garmin GLO II mit dem Rapberry Pi Buster per Bluetooth verbinden? Hier erkläre ich wie man die Zeitsynchronisierung des Betriebssystems aus dem GPS-Signal übernimmt und auch die GPS-Daten einbindet um Diese anderen Programmen zur Verfügung zu stellen.
Funktionsweise:
Der Garmin GLO wird direkt über dessen MAC-Adresse per Bluetooth angesprochen, dem Bluetoothgerät wird dann eine tty-Schnittstelle zugewiesen, welche dann cgps oder alles anderen GPS-Anwendungen dort zur Verfügung steht. Außerdem wird dem GPS-Signal die Zeit-Information entnommen und in dem OS bei Systemstart eingestellt.
HowTo für GPS-USB-Sticks :
Bevor man startet, empfehle ich ein Backup der SD-Karte zu machen.
Gestartet wird dann mit der Installation der benötigten Programme für den GPS empfang und die Handhabung der Zeiteinstellung. Hierzu mit Adminrechten folgende Kommandozeile nutzen:
sudo apt -y install gpsd gpsd-clients python-gps chrony
Im nächsten Schritt muss der App gpsd das Device mitgeteilt werden, von dem es seine Daten beziehen soll. Hierzu öffnen wir die Konfigurationsdatei:
sudo nano /etc/default/gpsd
und ändern hier unter dem Punkt “Devices” die Information:
DEVICES="/dev/ttyACM0"
und geben unter Andere Optionen den Befehl:
GPSD_OPTIONS="-n"
Nun bekommt das OS GPS Daten aus dem installierten GPS-Stick. Jetzt folgt die Implementierung der Zeitdaten aus dem GPS-Signal in die Betriebssystem Uhrzeit, hierzu muss in der App Chrony folgendes geändert werden:
sudo nano /etc/chrony/chrony.conf
In der Konfigurationsdatei lösch man nun die Zeile “pool 2.debian.pool.ntp.org iburst“. Am einfachsten mittels # auskommentieren. Dies erspart im späteren Zeitpunkt viele Nerven, da dieser dienst unser vorhaben der Zeitsynchronisierung behindert, sobald der Raspi eine WiFi-Verbindung nutzt, um sich von hier die Zeit zu holen. Desweiteren hängen wir am Ende der Konfigurationsdatei noch folgendes an:
refclock SHM 0 offset 0.5 delay 0.2 refid NMEA
Nun ist schon alles erledigt. Nach einem reboot kann man nun noch kontrollieren, ob alles sauber arbeitet. Hierzu unter “chronyc sources -v” in der letzten Zeile nachschauen, ob “#* NMEA” steht.
Das # steht hier für die Eigenschaften der lokalen Uhrzeit. Der * zeigt an, dass die Uhrzeit per GPS synchronisiert wird. Hat man die “pool” Zeile in der Chrony Konfiguration nicht gelöscht, stehen hier noch andere Zeitbezüge für die Systemzeit. Um diese zu verhindern muss die pool-Zeile deaktiviert werden oder man startet ohne WiFi-Verbindung nochmal neu.
Garmin GLO II per Bluetooth einbinden:
Mit dem Befehl “hcitool scan” startet man den Bluetoothscan und bekommt die MAC-Adresse des Garmin GLO II angezeigt. Diese benötigen wir für die nächsten Schritte. Mit dem Befehl “bluetoothctl” starten wir das Bluetoothmodul, dem wir im nächsten Schritt folgende Befehle geben:
agent NoInputNoOutput
default -agent
pair (hier MAC-Adresse einsetzen)
scan on
paired-devices
Nun sollte der Garmin GLO II per Bluetooth initialisiert und als gepaartes Gerät angezeigt werden. Nun kann das Bluetoothmodul mit “quit” wieder geschlossen werden. Wir weisen nun noch dem initialisiertem Bluetoothgerät einen Deviceslot zu, auf den dann wie obig im GPS-Stickverfahren zugegriffen wird. Hierzu:
sudo rfcomm bind /dev/rfcomm1 (MAC-Adresse des GARMIN GLO II)
Mit dem Befehl “rfcomm” kann nun nocheinmal abgefragt werden, ob der Slot zugewiesen wurde. Nun muss lediglich in der Konfugurationsdatei von gpsd das Device von der zuvor eingestellten ID(ttyACM0) umgestellt werden auf die neue ID rfcomm1 und die Systemzeit wird per GPS über den mit Bluetooth verbundenen Garmin GLO II synchronisiert.
Um zu kontrollieren ob auf der ID GPS-Daten ankommen, gebt “screen /dev/rfcomm1” ein.
Dank an Mike G4WNC für den ersten Teil der Zeitsync-Einbindung. Viel Erfolg!
Grüße DO8SEB, 73!