GPS Logger im Eigenbau

Mein bisheriger GPS Logger QStarz BT-Q1000 hat mir jahrelange treue Dienste geleistet, leider ist er durch einen Unfall stark beschädigt worden und funktioniert nicht mehr zuverlässig. Da meine Wünsche durch kein kommerzielles Produkt abgedeckt wurden, wagte ich einen Eigenbau.

Prinzipiell kam der QStarz Logger meinen Anforderungen schon recht nah, wenn auch nicht optimal. Ich wünsche mir

  • Aufzeichnung der GPS Position mit 1Hz, besser höher
  • Normaler Betrieb mit einer Akkuladung für mindestens 16 Stunden
  • Übertragung der aktuellen GPS Daten per Bluetooth (GPS Maus Funktion)
  • Abruf der Logs per Bluetooth und direkt durch Auslesen der Speicherkarte
  • Log-Format offen und ohne weitere Konvertierung verwendbar
  • Genügend Speicher um mal zwei Wochen in Urlaub zu fahren ohne an Grenzen zu stoßen

Offenbar sind meine Anforderungen durch kein kommerzielles Produkt so richtig abgedeckt. Auch der QStarz-Logger schwächelte, wenn es darum ging, permanent zu loggen und zeitweise die GPS-Daten auch per Bluetooth bereitzustellen. Außerdem dauerte es immer eine kleine Ewigkeit, die Logs vom Gerät abzurufen.

Bleibt die Alternative eines Eigenbaus. Dank einem immer größeren Angebot an Systemen wie Arduino sollte ein Eigenbau kein großes Problem mehr darstellen. Ich habe mir daher die folgenden Bauteile besorgt:

Komponente Bezeichnung Preis
GPS Adafruit Ultimate GPS Breakout v3 36,66€ [1]
Bluetooth Serial port bluetooth module HC-05 9,95€ [1]
SD-Reader Sparkfun Breakout Board for microSD Transflash 8,33€ [1]
SD-Karte Kingston 4GB MicroSDHC 5,00€ [3]
Microcontroller Arduino Pro Mini 328 - 3.3V/8MHz 9,95€ [1]
Spannungsregler Sparkfun NCP1402-3.3V Step-Up Breakout PRT-10967 4,90€ [1]
Gehäuse Hammond Electronics Hand-Gehäuse ABS Licht-Grau (RAL 7035) 92 x 66 x 28 1593PGY 4,43€ [2]
Zubehör Hammond Electronics Batteriehalter BH2AAW Kunststoff Schwarz 2 x AA 3,19€ [2]
Akkus 2x Conrad energy NiMH Mignon-Akku 1800 mAh 1.2 5,90€ [2]
Summe 88,31€
Flash-Adapter Sparkfun FTDI Basic Breakout 11,50€ [1]

Bezugsquellen: [1] Exp-Tech, [2] Conrad, [3] Amazon

Gemäß dem folgenden Plan habe ich das ganze dann zusammengeschraubt bzw. -gelötet:
LocLog by jowi24 c19a797cfd1dd9e6 - Upverter

Die Verbindung zwischen Bluetooth-Modul und Arduino wird über den im Arduino integrierten Hardware-UART auf den Pins 0 und 1 realisiert, da hier zuverlässig eine hohe Baudrate von 115200 Bit/s erreicht werden können. Das GPS-Modul ist dagegen über einen Software-UART an den Pins 8 und 9 angebunden der mit 38400 Bit/s noch zuverlässig arbeitet. Die SD-Karte wird über einen SPI-Bus auf den PINs 11-13 angebunden. Da der Kartenleser die einzige über SPI angebundene Komponenten ist, kann die Verbindung von Chip Select (CS) an Pin 10 entfallen und CS des Kartenlesers mit GND verbunden werden. Der Spannungsregler sorgt dafür, dass aus nur zwei AA-Akkus (max. 2,4 V) eine stabile Versorgung mit 3,3 V werden.

Fertig ist er:

Bleibt noch eines – die Software. Eine rudimentäre Version existiert bereits, loggen mit 1Hz auf die SD-Karte sowie die GPS-Maus Funktion sind damit bereits realisiert.

Update 12/2014

Inzwischen war der GPS Logger bereits öfter im Einsatz, so dass ein erstes Fazit gezogen werden kann. Die Vorteile sind klar:

  • Praktisch unbegrenzte Log-Kapazität
  • Schnelle Übertragung der Logs über den SD-Kartenlesers des PC
  • Jederzeit spontane Verbindung mit dem Smartphone über Bluetooth möglich, um den schon vorhandenen GPS-Fix auch mit Smartphone-Apps zu nutzen. Dazu verwende ich die Android App Bluetooth GPS

Bislang sind mir folgende Nachteile aufgefallen:

  • Relativ hoher Stromverbrauch. Eine Akkuladung hält in der Praxis zwei Tage (je ca. 8 Stunden Aktivität). Da das Gerät keinen Schutz vor Tiefentladung hat, lade ich die Akkus danach aus Sicherheitsgründen wieder auf.
  • Probleme mit dem GPS Chip in Verbindung mit hohen Log-Frequenzen. Details dazu im folgenden Abschnitt.

Ungereimtheiten im GPS Log

Der Chip kann wahlweise in Intervallen von 0,1 Sekunden bis 1 Sekunden Messpunkte erzeugen. Im Betrieb mit 10 Messpunken pro Sekunde kam es wiederholt zu einem “Festhängen” der Position obwohl einen gleichmässige Bewegung vorlag. Nach einigen Sekunden bis Minuten holte das GPS dann wieder bis zur tatsächlichen Position auf. Im Betrieb mit 1 Messpunkt pro Sekunden konnte ich bislang keine solchen Auffälligkeiten feststellen. Dort war die Genauigkeit der erzeugten Logs vergleichbar mit meinem alten QStarz-Logger. Ich habe bezüglich dieses Problems den Hersteller Adafruit kontaktiert und Beispielprotokolle übermittelt. Dort war man allerdings ebenso überfragt, stellte mir jedoch kostenfrei ein Ersatzmodul zur Verfügung, um einen technischen Defekt auszuschliessen. Leider brachte der zweite GPS Chip keine Verbesserung. Die Korrespondenz ist öffentlich verfügbar.

Arduino Sketch

Wen Details interssieren, für den habe ich meinen Arduino Sketch zum Download bei GitHub bereitgestellt.

Fazit

Der GPS Logger erfüllt weitgehend meine Erwartungen. Für mich persönlich einziges Manko sind für mich die Ungereimtheiten im Zusammenhang mit dem GPS Chip. Bei einem Neubau würde ich ein anderes GPS Modul ausprobieren.