GPS Module

Verschiedene GPS Module habe ich im Einsatz:

GPS Modul ST32F

Die Firma Perthold Engineering bietet recht günstige GPS Module an. Diese habe eine Update Rate von bis zu 20Hz. Da das ST22 gerade nicht lieferbar war, habe ich mich für das grössere ST32F (privat). entschieden. Es hat Flash und einen Venus V6 Chipsatz. Der Spannungsversorgungsbereich ist von 3.2V - 6V. Der Logikpegel liegt bei 3.3V bzw. RS232. Datenblatt und Infos gibt es bei Sparkfun (privat). Mit der GPS Viewer Software kann man das Ding konfigurieren (privat). Die Protokoll Kommandos sind im "Binary Command Set" (privat) beschrieben. Aufpassen sollte man bei Firmware Updates. Das hat mir schon ein Modul zerschossen.

Datenblatt ST32F
ChipsatzSkytraq Venus 634
Empfindlichkeit-161dBm
Cold/Warm/Hot Startzeit29/28/1sec
Versorgungsspannung3.2V - 6V
Stromaufnahme65mA
UART Pegel3.3V
Link Perthold Engineering

Weiterführende Links gibt's hier:

GPS Modul MediaTek MT3329

Bei DIYDrones gibt es das MediaTek MT3329 Modul auf einer Adapter Platine. Die einzelnen Module ('PA6E') gibt es bei Trenz Elektronic recht günstig. Hersteller der Module ist die Firma GlobalTop. Der MediaTek Chipsatz ist sehr empfindlich und funktioniert gut.

Das Datenblatt gibt es z.B. hier (privat).

Die Beschreibung der PMTK Kommandos gibt es z.B. hier (privat).

Aus dem Schaltplan ergibt sich folgende Anschlussreihenfolge:

Anschlüsse MT3329 Adapter
1NC
2GND
3TX
4RX
55V
6GND

Das Modul hat keine Backup Batterie. Diese lässt sich wie hier beschrieben nachrüsten. Alternativ könnte man sicher auch einen Goldcap über eine Schottkydiode (z.B. BAS70) an 3.3V anschliessen. Bei Gelegenheit werde ich das mal ausprobieren.

Zum Testen der Parameter kann man das MiniGPSTool (privat) verwenden. Das klappt auch auf Linux mit Wine. Die dazu notwendigen Einstellungen sind beim CN-06 beschrieben. Laut Handbuch gibt es eigentlich auch die Möglichkeit mit im "Setup" Dialog Einstellungen vorzunehmen. Bei meinem Versuch war dies aber nur mit der alten MiniGPS_Tool Version 1.4 möglich, auch damit konnte ich aber nicht permanent etwas speichern.

Für das ändern der permanenten Einstellungen bleibt also nur das Flashen der gesamten Firmware. Hierfür habe ich im Netz die folgnden Stellen gefunden:

Der letzte Link enthält ein Zip File mit dem Flashtool v1.0.0 und der Firmware 'AXN1.51_2776_3329_384.1151100.5_v19.bin' sowie dem passenden Loader 'MTK_AllInOne_DA_MT3329_v4.02.bin'. Das Flashen klappt leider nicht mit Wine (?). Auch konnte ich mit diesen Firmware keine Werte dauerhaft ändern. Die Default Werte sind hier bei 38400Baud 5Hz.

Datenblatt MT3329
ChipsatzMediaTek
Empfindlichkeit-165dBm
Cold/Warm/Hot Startzeit35/34/1sec
Versorgungsspannung5V
Stromaufnahme48mA
UART Pegel5V
Modul diydrones.com
Platine diydrones.com

.

Crius GPS CN-06 V2.0 mit ublox NEO6M

Das Crius CN06 Module V2.0 basiert auf dem NEO 6M Chipsatz von ublox. Das Modul enthält eine Bufferbatterie. Dadurch sollten die Satelliten Daten ein paar Tage gespeichert bleiben und man spart sich den aufwendigen "Kalt"-Start. Ausserdem ist ein externes eeprom vorhanden sodass die Konfigurationseinstellungen auch nach einem Neustart erhalten bleiben. Das erspart einem den Hack, der die Konfiguration bei jedem Start auf das NEO-6 hochlädt. Oder das selber dran basteln eines externen SPI flashs.

Datenblatt CN-06 V2.0
Chipsatzublox NEO6M
Empfindlichkeit-162dBm
Cold/Warm/Hot Startzeit27/27/1sec
Versorgungsspannung3.3V..5V
Stromaufnahme65mA
UART Pegel3.3V
JST 1.25 4Pin ebay sammylam
Link rctimer.com

Konfiguration

Zur Konfiguration verbindet man das Modul über ein Serial USB Adapter (z.B. FTDI Pro) mit dem Rechner. Bei diesem Adapter kann man 3.3V und die Verbindungen vin Tx/Rx mit Rx/Tx per Schalter richtig einstellen.

Die ublox Software U-Center< kann auch unter Linux verwendet werden. Entweder man verwendet VMware oder man startet das Programm einfach mit Wine. Für Wine muss man das COM device noch auf eine Unix TTY mappen:

ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1

In u-center stellt man COM1 und Autobaud ein. Alternativ die "richtige" Baudraute. Default ist 9600. Für die einzelnen Einstellungen öffnet man "Configure View", wählt den gewünschten Parameter und klickt anschliessend auf "Send":

  • prt(ports) - uart1 115200 baud
  • rate(rates) - 200msec 1 cyc

Verwendet man das binäre UBX Protokoll kann man stattdesen diese Einstellungen vornehmen:

  • nmea - rechte maus "disable child messages"
  • ubx-cfg-nav - pedestrian
  • ubx-cfg-nav2 - pedestrian
  • ubx-cfg-nav5 - predestrian
  • ubx-cfg-prt - uart1 38400
  • ubx-cfg-rate - 200msec 1cyc
  • ubx-cfg-sbas - disable
  • ubx-nav - posllh,sol,status,svinfo,velned grau->schwarz

Zum endgültigen Speichern im 'battery buffered ram' (BBR) und eeprom wählt man:

  • ubx-cfg-cfg(config) - save current BBR + EEPROM

Ist bei der Konfiguration alles richtig gelaufen, kann man mit einem Terminal Programm, wie z.B. cutecom, nochmal kontrollieren, ob auf der seriellen Schnittstelle auch nach einem Aus/Einschalten die MNEA Daten ankommen.

Weiterführende Links gibt's hier:

Empfangsempfindlichkeit

Die Empfindlichkeit der Empfänger wird in dBm angegeben. Das ist ein logarithmisches Verhältnis zweier Leistungspegel. Der Bezugspegel ist hier mWatt. Je negativer der Wert desto empfindlicher. -165dBm entspricht z.B. 3*10-20 Watt. WLAN Empfänger haben typisch nur rund -95dBm.