Linux ist so krass.
Das Zeug ist in der astroberry-Distribution schon vorinstalliert. Testweise habe ich auch mal die mobilen Daten meines Smartphones dem RPi per USB-Thethering zugewiesen und tatsächlich bei aktivierter Standorterkennung wird die Position auch dem RPi bereitgestellt.
Die astroberry-Distribution hat im INDI-Webmanager auch gpsd zum aktivieren drin und eine Map mit aktuellen Standortinformationen im Webinterface. Die astroberry-Jungs haben da tolle Arbeit gemacht.
Ich habe an der Stelle den Vorschlag, ein bis zwei Software-Ebenen höher zu arbeiten, glaube aber das im Linux schon alles fertig ist:
gpsd-clients ist eine Toolsammlung von Programmen um GPS zu debuggen und Module zu steuern. Das macht auf mich einen soliden Eindruck, wenn ich mir gerade so den Quellcode anschaue (
apt-get source gpsd-clients). Die Portieren die GPS-Daten auf ein konformes IP-Protokoll, an dem sich der Client bindet, wie auch gpsd das tut.
Dabei wird der Ublox Treiber im Quellcode unter driver_ubx.c/.h geführt. Das AZ-NEO sehe ich dort nicht, das würde ich dann aber den udev-Mechanismen überlassen.
Ob die Hardware erkannt wird, kann auch geprüft werden mit
udev-adm monitor (Zeigt die Hotplug-Events, wenn das Gerät an und abgesteckt wird) (Beenden mit CTRL+C).
dmesg (Kernelnachrichten)
lshw
Das INSTALL Manual sagt zur Vorbereitung, die UART soll vorher konfiguriert werden (mit stty) und die folgenden Bibliotheken werden noch benötigt:
apt-get update
apt-get dist-upgrade
rpi-update
reboot
apt-get install scons libncurses5-dev python-dev pps-tools
apt-get install git-core
(Curses ist für grafische Oberflächen, PPS-Tools für den Zeitgeber, Git ist Git und Scons liefert eine Programmiersprachen-Querübersetzung zur Portation von Programmen für Webinterfaces. Läuft das Raspberry mit Wheezy muss noch mehr gemacht werden als einfach nur
apt-get install gpsd-clients.
Die haben auch RTC-Support und bringen wie vermute die Uhrzeit von PPS zum NTPd:
"[...] You can verify gpsd is using the PPS by running ntpshmmon:
--------------------------------------------------------------
~ # ntpshmmon
# Name Seen@ Clock Real L Prec
sample NTP0 1461619703.641899335 1461619703.445224418 1461619703.000000000 0 -1
sample NTP2 1461619703.642203397 1461619702.999262204 1461619703.000000000 0 -20
sample NTP0 1461619704.142097363 1461619703.445224418 1461619703.000000000 0 -1
sample NTP2 1461619704.142204134 1461619703.999258157 1461619704.000000000 0 -20
--------------------------------------------------------------
If you do not see NTP2 then you misconfigured the pps_gpio driver.
The serial time is provided to ntpd on NTP0, the PPS time is on NTP2, not
on NTP1 like described earlier. So your ntp.conf will need to be adjusted
from: [...]"
Das Modul ist fest im Raspi verbaut, ich werde ihn wohl mal am Stativ anders Montieren.
>> Wenn eine Patch-Antenne verwendet wird, einfach (ungefähr) horizontal positionieren wie das Bild zum NEO-6M zeigt. Da das GPS Signal sowieso von überall herkommen wird, abhängig von den Satellitenpositionen, gibt eine versuchte genaue Ausrichtung auch keinen Sinn. Noch was: Verwendet Ihr nicht aktuelle Satelliten-Ephemeriden, dann braucht es einfach bis zu 5 oder 6 Minuten, bis die Position errechnet werden kann. Das Zeitsignal kommt auch von GPS (PPS-Modul in Linux (Pulses per seconds)). Das oben genannte INSTALL-Manual sagt auch:
"[...]
5. Have patience. If you are cold-starting a new GPS, it may take
15-20 minutes after it gets a skyview for it to download an ephemeris
and begin delivering fixes. [...]"
___
Ein zweites Bluetooth Modul ist nicht notwendig. Wenn es darum geht einfach nur das /dev/ttyXY zu duplizieren, reicht ein einfaches C-Programm, dass die UART nach /dev/pts/XY forked. Dafür sollten wir aber ein neues Thema erstellen.
Grüße erstmal (wieder),
Sebastian.