Projekt OPEN-GPS oder Selfmade GPS Navigator


Letztes Update: 15.06.2010

Aktueller Projektstand:
Aus Zeitmangel vorübergehend stillgelegt. Sobald das Wetter wieder schlechter wird gehts weiter.


08/2009 KrasserMann (km AT krasser-mann.com)


Sämmtliche bestandteile dieses Projekts, soweit nicht anders gekennzeichnet, sind mein geistiges Eigentum
die Schaltung darf zum Persönlichen Gebrauch von jedermann nachgebaut und angepasst werden.
Das gleiche gilt für den Software Quellcode!

Eine GEWERBLICHE Nutzung ist untersagt!



Ich stelle auf dieser Webseite alle zum Nachbau benötigten Informationen zur Verfügung
gebe aber weder eine Funktionsgarantie, noch übernehme ich irgendeine Haftung für durch
eventuelle Fehlfunktionen verursachte Schäden.



Beschreibung:

Ziel dieses Projektes ist es eine "relativ" einfache und Preiswerte Handheld GPS
Navigationsplatform zu entwickeln die vollständig OpenSource ist.

Zukünftig soll jeder Nutzer sein Gerät selbst um Funktionen die er gerne hätte erweitern können.


Aktueller Stand:

Es gibt ein Platinenlayout das funktionsfähig ist, schön ist anders aber es funktioniert.
Das GPS Gerät verfügt über eine USB Schnittstelle und eine Ladeschaltung für einen LI-Ionen Akku.
Dank eines Bootloaders ist ein Update der Firmware nun ohne zusätzliches Programmiergerät über USB möglich.
Das Gerät startet, empfängt die Sattelitendaten, zeigt eigene Position, Geschwindigkeit, Kurs, Datum und Uhrzeit
und ermöglicht die Pfeilnavigation zu einprogrammierten, von SD-Karte ladbaren, und manuell eingegebenen Wegpunkten.
Darüber hinaus kann das Gerät als Tracklogger verwendet werden da es die GPS Daten in einer Komma getrennten
Datei auf der SD Karte abspeichert. Diese kann dann einfach in Excel / GoogleEarth (gpsbabel) etc. importiert werden.
Die GLCD Beleuchtung aktiviert sich automatisch bei Betätigung einer Taste und schaltet sich nach einer einstellbaren Zeit wieder aus.

Der USB Port wird von Windows als Serielle Schnittstelle erkannt und über diesen werden im normalbetrieb die
GPS Datensätze GPGGA & GPVTG ausgegeben. So kann der Empfänger auch als USB GPS Maus verwendet werden.

Über ein Konfigurationsmenü können folgende Systemparameter verändert werden:

  • Backlight Timer (OFF/10-90sec/ON)
  • Koordinaten Format (DD MM.MMM / DD MM.SS.S / DD.DDDD / UTM)
  • Tracklog Format (OFF/CSV/KML)
  • Timezone (UTM +-12)
  • Debug Modus (ON/OFF)

Derzeit unterstützt das Gerät nur WGS84 im dd mm,mmm' Format für Koordinatenund nur CSV fü Tracks.

In Entwicklung sind weitere Features:

  • UTM Format
  • DD MM'SS" Format
  • DD.DDDD Format
  • KML Track Format
  • Wegpunkte auf SD-Karte Abspeichern (als GPX)
  • Wegpunkte von SD-Karte Laden (als GPX)
  • Datentransfer zum PC via USB (Wegbunkte / Tracks)
  • Wegpunkt Projektion
  • Tempowarner für Autofahrer



Irgendwann bekommt das Ding vielleicht auch ein Gehäuse ;)




Historie in Bildern

  • Tests-I
  • Tests-II
  • Tests-III
  • Prototyp1
  • Hardware ohne LI-Ion Lader
  • Hardware mit LI-Ion Lader




    Schaltplan:
    Stand 03.08.2009

    Schaltplan als PDF Datei

    PlatinenLayout:
    Stand 03.08.2009

    Top Layout als PDF Datei
    Bottom Layout als PDF Datei

    Top Bestückung als PDF Datei
    Bottom Bestückung als PDF Datei

    Alles zusammen incl. Eagle Daten als ZipDatei


    Bauteile Stückliste

      AnzahlBauteilWertQuelle / Best. NrVervendung
      10SMD Tantal-Elko 08051ufReichelt SMD TAN 1,0/35C1-C9,C17
      2SMD Kondensator 080522pfReichelt NPO-G0805 22PC10,C11
      1SMD Kondensator 18120,1ufReichelt SMD-1812 100NC12
      2SMD Kondensator 08050,1ufReichelt X7R-G805C13,C14
      2SMD Tantal Elko 35V10ufConrad Best.-Nr. 481483 SMD TTK 10/20C15,C16
      1SMD Widerstand 08054k7Reichelt SMD-805 4,70KR1
      3SMD Widerstand 080547Reichelt SMD-805 47 OhmR2-R4
      1SMD Widerstand 08051k0Reichelt SMD-805 1,00KR5
      1SMD Widerstand 080510k0Reichelt SMD-805 10,00KR6
      1SMD Widerstand 08053k3Reichelt SMD-805 3,3KR7
      1SMD Widerstand 0805330Reichelt SMD-805 330 OhmR8
      1SMD TransistorNPNReichelt FMMT 625 TAT1
      1SMD P-Kanal MosfetIRLML 6402www.paktek.de o. EbayT2
      1SMD Induktivität0,68uHReichelt L-0805F 0,68 uL1
      1SMD Quarz11,0592MhzReichelt 11,0592-HC49-SMDQ1
      1MicrocontrollerAtmega 128 L Tqfp64Reichelt ATMEGA 128L8 TQIC1
      1Usb InterfaceFT 232RL SSOP28Reichelt FT 232 RLIC2
      1LowDrop Spannungsregler 3,3VIRU 1206-33 CY SOT223Conrad Best.-Nr. 163310-U0IC3
      1Litium Lade ICLTC 4054-4.2 TSOT23Segor Best.-Nr. LTC 4054 ES5-4.2IC4
      1GPS-ReceiverNAVILOCK-NL-501ETTLwww.sander-electronic.de
      1Grafik DisplayEA DOGM128W-6 Reichelt EA DOGM128W-6LCD1
      1Display HG-BeleuchtunfEA LED55X46-A Reichelt EA LED55X46-ALED1
      2LCD BuchsenleisteSPL20Reichelt SPL 20Pin1+2
      1Mini USB BuchseMini USBReichelt USB-BWM SMDUsb1
      1Micro SD SocketMicro SD Socketwww.sparkfun.com/commerceSd1
      1Stiftleiste gewinkelt2*10Reichelt SL 2X10W 2,54ISP
      1LiPo Akku 3,7V 1200mA
      1Led3mm RotReichelt LED 3MM RT
      5TasterTASTER 9308Reichelt TASTER 9308Tas1-5
      5Schiebeschalter2Pol-UMReichelt T219S1



    Bei einigen Bauteilen sind Alternativen möglich:

    Display:

    Aus den DOGM128 Displays können beliebige Farbzusammenstellungen gewählt werden,
    anpassen müsst ihr nur die Hintergrundbeleuchtung.

    Wollt ihr keine Hintergrundbeleuchtung dann entfällt das Beleuchtungsmodul, T1 , R2,R3,R4

    Taster:

    Hier könnt ihr nehmen wass ihr wollt wenn ihr sie richtig anschließt, nur schließer müssen es sein.

    GPS Modul:

    Es muss ein SIRF3 Modul sein das das SIRF Binary Protokoll + NMEA kann, es muss mit 3,3V laufen und
    der Ausgang muss eine TTL kompatible Serielle Schnittstelle sein.

    Quarze:

    Q1 Muss so wie in der Stückliste steht genommen werden
    Q2 ist derzeit noch nicht erforderlich ist für zukünftige Erweiterungen gedacht




    Nachbau:

    Hier einige wichtige Hinweise zum Nachbau des OpenGPS


    1. Die Platine ist nicht einfach zu bestücken, einige Abstände sind sehr klein, die Bohrungen und Pads
    sind ebenfalls mit vorsicht zu genießen, kontrolliert sie unbedingt auf Kurzschlüsse zuwischen den Leiterbahnen

    2. Es befinden sich 22 Stellen auf der Platine die vor dem Bestücken durchkontaktiert werden müssen. Eine ist unter
    der MCU, 3 unter dem Ftdi Chip und 3 unter dem SD Sockel vergesst sie nicht!

    3. Bestückungsreihenfolge:

    Bestückt unbedingt zuerst den SD Karten Sockel, der ist eine "Sau" was die Kontakte angeht. Prüft nach dem Löten unbedingt
    ob die Kontakte auch wirklich kontakt zur Leiterbahn haben (Multimeter)

    Danach bestückt ihr den ATMEGA128 (ACHTUNG: Durchkontaktierung nicht vergessen)

    Nun den FT232RL bestücken.

    Lötet als nächstes C1-C9 und R2-R4 ein, danach die Sockelleisten für das Display (Ja, ist fies eng, Sorry)

    Nun könnt ihr alles weitere Bestücken



    Anschluss Schema:


    4. Programmierung:


    AVR

    ACHTUNG! PIN 1 des ISP Kabels zeigt zum GPS Modul hin!!!

    Ihr benötigt (Für die Quellen) aufgrund der Codemenge die Vollversion von Bascom AVR in mindestes
    der Version: 1.11.9.1 die älteren unterstützen die DOGM 128 Displays nicht.

    Fusebits:

    LOCKBITS (FF)
    • Lockbit 54 - 11: No Restriction
    • Lockbit 32 - 11: No Restriction
    • Lockbit 11 - 11: No memory lock
    FUSEBITS (EF)

    • Fuse 7 - 1 Brown Out Detection Level at VCC=2.7V
    • Fuse 6 - 1 Brown Out Detection disabled
    • Fuse 98DCBA - 101111 Ext Chrytstal/Resonator High Frequency Startup Time 16k CK +4ms CKSEL=1111 SUT=10

    FUSEBITS HIGH (D9)
    • Fuse E - 1 Disable OCD
    • Fuse F - 1 Disable JTAG
    • Fuse G - 0 Enable Serial Downloading
    • Fuse H - 1 osc 1
    • Fuse I - 1 EEPROM is erased
    • Fuse KL - 00 Bootsize 4096 words at $F000
    • Fuse M - 1 Reset Vector os $0000

    FUSEBITS Extended (FF)
    • Fuse P - 1 ATMEGA128 Mode
    • Fuse Q - 1 Watchdogtimer not Programmed


    Nach dem erfolgreichen programmieren der Fuses kann das Programm in den Chip geladen werden.


    FTDI Chip



    Um die Ladefunktion über USB nutzen zu können muss der FTDI noch konfiguriert werden.

    Ihr benötigt dazu das Tool MPROG und den FTDI 2DXX Treiber.
    Diese Tools findet ihr auf der FTDI-Webseite


    Das Vorgehen ist wie folgt:

    • 1.den FTDI 2DXX-Treiber installieren, den VCP-Treiber vorher mit FT-Clean entfernen!
    • 2.MProg-Programm installieren!
    • 3.GPS an USB anschließen!
    • 4.MProg starten! Vorher alle anderen USB-Geräte mit FTDI-Bausteinen vom System entfernen!
    • 5.
      A. Unter Tools, Read and Parse anklicken! Du bist im Edit-Mode
      B. Device Type: FT232R
      C. Den Rest wie im Bild einstellen!


      Wichtig!! Den Haken bei "Pull down IO Pins to Suspend" nicht setzen und Bei Max Bus Power 480 mA, nicht 500 einsetzen!

    • 4.Wichtig! Hier "Speichern unter", sonst kommst du nicht in den Programmier-Mode!
    • 5.Hier nun mit dem Button Programmieren!
    • 6.Nach erfolgreichem Programmieren, den Button Cycle einmal klicken,damit wird der FT232 resettet und er wird vom USB-Anschluss getrennt und wieder verbunden.


    5. Funktionen soweit:



    Nach Anlegen der Betriebsspannung passiert folgendes:


    1. Display Beleuchtung an
    2. Logo Anzeigen
    3. Anzeige "GPS Module Setup"
    4. Anzeige "Selftest Results"
    5. Wenn Selbsttest OK dann zeigt es den "Suche Satelliten" Screen an
    Die Nummer in der Mitte zeigt die schon gefundenen an.

    Wenn das GPS Modul einen gültigen FIX hat erscheint ein Übersichtsbildschirm mit
    Informationen zur aktuellen Position/Geschwindigkeit/Kurs/Datum/Uhrzeit

    Mit den Rechts/Links Tasten könnt ihr ein paar Screens durchschalten.

    (Übersicht / Pfeilnavigation / Kurs / GPGGA Debug / GPVTG DEBUG )

    Im Übersichtsscreen kommt ihr mit der "OK" Taste (Die in der Mitte) in ein Menü für weitere Funktionen

    Im Pfeilnavigations Screen könnt ihr mit Rauf / Runter fest in der Firmware eingebaute Ziel Wegpunkte wählen
    mit OK könnt ihr eine Zielkoordinate manuell eingeben.

    Im Kurs Screen erreicht ihr mit OK wieder das Menü

    Die Debug Screens dienen nur der Wertekontrolle und stellen die RAW Daten des GPS Moduls dar.



    Im Menü könnt ihr derzeit:
    • Ein Ziel manuell eingeben.
    • Einen Wegpunkt aus der Datei WPT.TXT auf der SD Karte laden
    • In das Konfig Menü wechseln
    • Das Tracklog löschen
    • Das Gerät neu booten
    • Das Menü verlassen

    In Zukunft wird hier die Konfiguration der Einheiten, Koordinatensysteme etc zu finden sein.



    Die WPT.TXT


    Ist eine Textdatei auf der SD-Karte die Wegpunkte enthalten kann, ihr format ist folgendes


    Wegpunktname,Lat,Lon


    z.B.

    Bonn,50.732704,7.096311


    Lat & Lon müssen in Dezimalgrad angegeben sein, der Wegpunktname sollte so Kurz wie möglich sein am
    Ende der Datei muss ein Newline sein.



    6. Nachwort:



    Das ganze Projekt ist hochgradig BETA, die Schaltung soweit getestet funktioniert, und einfache
    Navigation ist möglich. Ich gebe aber keine Gewähr dafür das das immer so ist und unter allen Umständen
    auch funktioniert. Vertraut dem Ding also nicht euer Leben an ;)

    Soft und Hardware werden noch weiterentwickelt, es folgen weitere Funktionen und Koordinatenformate.

    Wer Lust hat dabei zu Helfen die ein oder Andere Coderoutine zu dem Projekt beizusteuern kann
    sich gerne bei mir melden. Eventuell wird es zukünftig eine neue Schaltung mit einem Siemens S65 Display in Farbe geben

    Ich brauche eine Routine die einen Input STRING im UTM Format nach Dezimalgrad wandelt und eben eine
    die Dezimalgrad in einen UTM String umwandelt.


    Software:


    Hier könnt ihr die Firmware herunterladen.






    Probleme:


    Es passiert gar nix:
    • Spannungsversorgung?
    • Fuse Bits
    • Quarzbeschaltung
    Kein GPS Fix
    • Abwarten ggf. andere Postion mit freier Sicht zum Himmel suchen
    • Keine Fehlfunktion der Schaltung
    SD Karte wird nicht erkannt
    • Vermutlich Lötstelle am Sockel nicht OK


    Sollten Probleme oder Bugs auftauchen schreibt mir bitte eine E-Mail mit einer ausführlichen Fehlerbeschreibung!



    FAQ:

    F: Gibt es das Programm auch in C / Assembler etc?
    A: Nein, kann ich leider nicht.

    F: Welchen GPS Empfänger kann ich verwenden?
    A: Siehe Text oben!

    F: Ist die Datei Track.Log direkt Google Earth Kompatibel?
    A: Nein, sie ist Komma getrennt. Sie kann ich Excel importiert werden und ggf. für GE Konvertiert werden.

    F: Womit kann die datei für GE Konvertiert werden?
    A: Das Tool heist "GPSBABEL"

    F: Gibt es das Ding fertig / als Bausatz .........?
    A: Nein!

    F: Kannst du mir diese/jene Änderung am Programm machen?
    A: Nein, für meine Zwecke genügt das. Versuch es selbst, man lernt viel dabei!

    So nun aber viel Spaß beim Nachbau und ausprobieren!