Bei Ebay finden sich immer wieder Platinen mit dem Cirocomm G100/300 GPS-Receiver, der unter anderem in TomTom Go Geräten verbaut ist. Zwar basiert dieser Receiver auf einem Sirf II-Chipsatz, der inzwischen schon in die Jahre gekommen ist und deshalb von Genauigkeit und Geschwindigkeit her nicht mehr mit aktuellen Geräten mithalten kann, aber für rund 10€ ist er trotzdem eine Überlegung wert.
Warum? Weil man ihn extrem einfach mit einem Microcontroller ansteuern kann.
Das GPS-Modul hat ein Flexprintkabel, jedoch findet man nur relativ schlecht Buchsen dafür. Besser geht es für den Hobbybastler durch Nutzung der Testpads, welche auch im Bild oben (links, teilweise mit roten Drähten) zu sehen sind.
Da es leider kaum Dokumentation zum Modul selbst gibt, musste hier ein bisschen Try-and-Error sowie Gehirnschmalz investiert werden. Folgende Pinbelegung scheint richtig zu sein (Ich übernehm keine Haftung falls es bei irgendwem mit dieser Belegung abraucht ;)):
Testpunkt | Flachbandkabel* | Funktion |
---|---|---|
TP6 = TP28 | 4 | GND |
TP1 | 3 | VCC |
TP3 | 6 | !Reset |
TP4 | 7 | TX (Output) |
TP5 | 8 | RX (Input) |
*Wenn das Kabel von unten kommt und die Kontakte oben liegen, von links nach rechts gezählt
Die Weiteren Pins sind vermutlich für Features wie Waypoint Arrival Alarm usw. Pin TP7 ist insofern interessant, da er ein sich veränderndes, periodisches (analoges) Signal von ca 200-400µs Länge, Amplitude rund 3V und 1khz Periodendauer ausgibt:
Leider habe ich bisher noch nicht herausgefunden, was es genau bedeutet - falls jemand eine Idee hat, würde ich mich über Hinweise freuen.
Das Modul kann mit 3.3 oder 5 V betrieben werden (oder natürlich auch irgendwo zwischendrin ;)). Der Reset hat einen Pullup eingebaut, das Modul (und auch seine Einstellungen!) kann durch Verbinden mit GND zurückgesetzt werden.
Standardmäßig (z.B. nach längerer Stromlosigkeit oder Reset) läuft das Modul im NMEA-Modus mit 4800kbps.
So kann man mit einem einfachen Seriellen Terminal oder Software wie z.b. dem NMEA Monitor das Modul direkt in Betrieb nehmen.
Besonders interessant wird es für Microcontroller jedoch, wenn man auf das Binary Protocol umschaltet. Dies kann man mithilfe des NMEA-Befehls 100 umschalten. Beispielsweise lässt sich über folgenden, einfach als ASCII an das Modul übertragenen Befehl auf Binärprotokoll und 9600,8,1,N umschalten:
$PSRF100,0,9600,8,1,0*0C
Eine Beschreibung des Binärprotokolls findet man vielfach im Internet, unter anderem z.B. in den Unterlagen zu GPSd.
Mittels simpelstem Bytemasking (z.B. über Unions) lässt sich dieses Protokoll dann auf dem Microcontroller interpretieren und so Daten wie die aktuelle Position, Geschwindigkeit oder GPS-Zeit in eigenen Projekten verwenden.