GPS ubx Daten auslesen

Hallo, ich habe hier einen MKGPS, welcher nur ubx daten wiedergibt. die tinyGPS lib ist aber soweit ich weis für das Protocoll NMEA vorgesehen, habe schon alle codes ausprobiert funktioniert aber nicht, muss wie gesagt daran liegen dass das GPS Modul was ich hier habe nur ubx Daten ausgibt/man abschöpfen kann und die üblichen Codes im Netz für NMEA vorgesehen sind.

Hat jemand eine Idee/Code wie ich die ubx Daten auf dem Seriellen Monitor anzeigen könnte, hab schon lange im Internet gesucht, nichts gefunden.

oder gibt es gar eine Möglichkeit via TX von arduiono an RX von der U-blox, die Ublox so umzuprogrammieren dass es NMEA Daten ausgibt, kann man überhaupt so eine U-Blox programmieren (z.b. mit eine Arduino) ?

Jedenfalls wollte ich die GPS Daten auf dem Terminal angezeigt bekommen, klappt nich weil wie gesagt die U Blox nur "ubx" Format ausgibt, man kann also nur ubx Daten abgreifen.

auf der MKGPS sitzt eine U-blox: LEA-4H-0-000

PS: mit der tinGPS lib spuckt er mir nur 99999999 aus oder ganz komische viele Zeichen . Das GPS Modul blinkt hat also seine Fixes. Aber wie gesagt ist irgendwie nur auf ubx eingstellt.

Hallo,
Nein! Erst ein MonsterTreiber und jetzt ein HubSchrappSchrapp. :*
Erst einmal brauchst Du das große "KopterTool" um überhaupt zu sehen, was geliefert wird.

"Nur mit einer in der NaviCtrl eingesteckter microSD-Karte (max. 2GB/FAT16), können die NMEA Daten genutzt werden"
Wenn ich das allerdings lese, dann wäre es wohl besser den Lea auszulöten und für sich zu betreiben.
Hier steht, wie man das Ding verbiegen kann:
http://www.mikrokopter.de/ucwiki/MKGPS#Konfiguration
Gruß und Spaß dabei
Andreas

Shockwelle:
Hat jemand eine Idee/Code wie ich die ubx Daten auf dem Seriellen Monitor anzeigen könnte, hab schon lange im Internet gesucht, nichts gefunden.

Ich habe exakt EINMAL mit Google gesucht:
http://lmgtfy.com/?q=gps+ubx+data+format
und finde an Position 2 der Trefferliste ein PDF "u-blox 5 NMEA, UBX Protocol Specification - Navilock" mit dem Inhalt "NMEA, UBX Protocol Specification":

Wenn Du entgegen der üblichen Standards anstelle des kompatiblen und austausbaren NMEA-Datenformats lieber ein Herstellerformat auslesen möchtest, das von Arduino-Programmierern mit GPS-Modulen wohl so selten genutzt wird, dass noch niemand eine Library schreiben und dafür zum allgemeinen Download freigeben wollte, dann mußt Du das Datenformat eben selbst implementieren.

So what?

Übrigens: Laut Datenblatt http://www.produktinfo.conrad.com/datenblaetter/975000-999999/989777-da-01-en-GPS_Receiver_16Kanal_CR4_USB.pdf unterstützen die LEA-4H GPS-Module das firmeneigene UBX-Format genau so wie NMEA. Wenn es für Dich einfacher ist: Konfiguriere das Modul auf NMEA um, wenn Du eine fertige Arduino-Library wie TinyGPS mit dem Modul verwenden möchtest!

Hallo,
ich glaube das hackt ganz wo anders: Sein MKGPS liefert nämlich nicht so ohne weiteres NMEA. Der LEA auf der Platine
kann das aber ohne weiteres.

Sein MKGPS hat bestimmt eine serielle Schnittstelle, nun sucht er erst einmal einen Weg um diese auszulesen und auf
dem seriellen Monitor darzustellen. Das glaube ich möchte er.

Was er dann mit den Rohdaten anstellen möchte, hat er ja noch nicht gesagt. Das UBlox-Protokoll ist einfach ein
binäres, das die GPS-Rohdaten enthält, sowie mehr oder weniger Parameter des Lea.

Wenn er die GPS-Lib´s nutzen möchte, dann muß er den MKGPS anders konfigurieren. Wie das geht steht z.B. hier:
http://www.mikrokopter.de/ucwiki/MKGPS#Konfiguration
Dann kann der auch MNEA.
Gruß und Spaß
Andreas

Vielen Dank für die Antworten. SkobyMobil hat Recht, allerdings habe ich nun das Problem dass ich keine FlightCtrl mehr habe, ohne dass man keine Verbindung mittels MKTool zur MKGPS/U-Center aufbauen kann.

Also habe ich mir gedacht ob ich nicht einfach alleine das MKGPS über USB direk an den PC anschließen könnte, geht das ? wenn ja wo müsste ich den USB Anschluss anbringen, bzw. an welche Connections ? Auf der Platte ist zwar eine Bezeichnung zum anlöten für USB, aber die gleiche arbeit müsste auch die gegenüberliegenden Pins verrichten, wo ich schon einen Anschluss zu GND,5V,Tx,RX habe und auf dem Schaltplan der MKGPS, sind beide Ausgänge, also USB und das gegenüberliegende auch mit der gleichen Bezeichnugsnummer bezeichnet und scheinen auch die selben Ausgänge zu haben.

Also mein Plan wäre: MKGPS direkt über USB an PC, und dann im U-Center auslesen/bearbeiten, würde das gehen ?
Wenn ja, wie müsste ich die 4 Pins an das USB Kabel verbinden, GND und+5V erklären sich ja von selbst, aber so ein USB Kabel hat ja auch noch einen negativen Datenkabel und Positiven Datenkabel, ist so we RX, TX, wen ja was ist was ?

Hallo,
machen und probieren kannst Du alles- wenn´s denn etwas bringt?
Ist ja schön, das das Ding eine USB-Schnittstelle hat, nützt Dir nur nichts.
Diese Einstellungen sind im Flash des Lea gespeichert, wenn Du Glück hast, dann kann U-Center die auslesen.
Und dann? Was willst Du damit machen? U-BloxProtokoll kannst Du nicht, also kannst Du nichts ändern.
Du kannst Dich aber durch das Datenblatt wühlen. Ich weiß nicht wie viele Schnittstellen (UART) der Lea hat, wenn es
zwei sind, dann könnte man sie vielleicht so konfigurieren das sie auf einer UBlox ausgeben- und auf der anderen MNEA.
Diese zweite könntest Du dann mit dem Arduino abgreifen.
Ich glaube, wenn Du das UBloxProtokoll nicht mit dem Arduino "entschlüsselt" bekommst, dann kannst Du das vergessen.
Gruß und Spaß
Andreas

OK, hab das MKGPS über MKUSB angeschlossen, GND, 5V TX und RX an die dafür vorgesehenen Plätze des MKUSB und das ganze funktioniert jetzt. Sehe über das U-Center alle GPS Daten und tatsächlich wie auch in der Beschreibung beschrieben ist das Protocol UBX.

Das beste wäre wenn ich das GPS über das U-Center so konfigurieren könnte, dass es über die gleichen RX/TX Pins das NMEA Protocol ausgibt. Kennt sich da jemand etwas aus, geht das überhaupt ? SkobyMobil hat ja schon angedeutet dass das evtl. nicht gehen dürfte, und man alternativ die Daten von einer anderen UART Schnittsstelle abrgeifen müsse.

Beim U Center sehe ich ein Knopf mit der Bezeichnung: Revert to default recaiver configuration.

Ich werde mal versuchen mehr Infos heraus zu bekommen ob sich da was machen lässt, sodass man es auf NMEA umstellen kann.

EDIT: schau mir grad ein Video über das U-Center an und sehe, dass man dort über View --> Configuration View(Configure Ports) über PRT(Ports) anscheinen die Ausgabe Protokolle ändern kann. In der Tat ist dort bei mir als Ausgabe Protocoll das UBX vermerkt und ich kann aus der Liste es auf NMEA um ändern. Hmm mal sehen ob das klappt, will nur nicht das Ding kpautt machen oder so. bin mal gespannt. (man kann sogar die Hz Rate umstelle aber das Maximmum von 5 Hz lass eich denk ich mal so, je mehr desto besser ?)

UPDATE: wow ich habs geschafft, unten im U-Center steht jetzt dass er das NMEA Protocol verwendet/und er hat jetzt auch Dauerhaft das NMEA Protocol als Standart. Ales was ich gemacht habe war: Revert to default recaiver configuration. und dann hat er es auf das NMEA Protocoll gestellt und auch die Baudrate von 57600 auf 9600 herunter gesetzt, sowieo Hz Rate von 5 Hz auf 1 Hz herunter gesetzt. Werde das gleich mal mit dem Arduino austesten. :slight_smile:

Vielen Dank für eure Hilfe.

Hallo,
auf den Seiten von UBlox findest Du alle Dokumentationen, zum U-Center, Lea, und UBX.
Gruß und Spaß
Andreas
http://www.u-blox.com/de/support-section.html

Ja, es funktioniert! Kann die Daten mit dem Arduino über tinyGPS lin auslesen. Mein erstes Arduino Projekt kann also weiter gehen^^

Musster aber die Hz Rate ändern, Hatte es am Anfang auf 5Hz gesetzt das konnte der Arduino oder die Sketches irgendwie nicht ganz verkraften, es kamen zwar Anzeigen, aber sehr langsam, und oft stoppte das ganze einfach und es kam nichts mehr, ob da an der niedrigen BAUDRATE von 9600 liegen könnte ? müsste ich mal ausprobieren, aber momentan reichen mir die 1 Hz, mit denen es gut funktioniert.

Nö-daran liegts nicht.
Ich betreib das Neo 6M auch nur mit 9600 Baud und 5Hz-das klappt.

Shockwelle:
Musster aber die Hz Rate ändern, Hatte es am Anfang auf 5Hz gesetzt das konnte der Arduino oder die Sketches irgendwie nicht ganz verkraften, es kamen zwar Anzeigen, aber sehr langsam, und oft stoppte das ganze einfach und es kam nichts mehr, ob da an der niedrigen BAUDRATE von 9600 liegen könnte ? müsste ich mal ausprobieren, aber momentan reichen mir die 1 Hz, mit denen es gut funktioniert.

Lasse Dir im Zweifelsfall die von Modul kommenden Rohdaten anzeigen (NMEA ist ja ein ASCII-Format) und schaue nach, was falsch reinkommt.

Bei 5 Hz und gesendeten Standarddaten kann es wohl vorkommen, dass das Modul in Dauerschleife sendet und überhaupt keine Sendepausen mehr auftreten.

Und: Falls Du mit einem Board arbeitest, das nur eine serielle Schnittstelle hat (z.B. "UNO") und dann eine weitere serielle Software per SoftwareSerial emulierst um daran das GPS-Modul anzuschließen: Vergiss SoftwareSerial und nutze lieber die alternative AltSoftSerial-Library!

Ja ich benutze die SoftwareSerial, bin ja ganz ganz neu und neu Einstiger. Habe shcon gelesen dass es nss gibt oder andere versionen,. Habe versucht einen Delay im Loop unetr zu bringen hilft aber auch nicht, scheint irgendwie überlastet, also habe cihe s erstmal so gelöst mit dem 1 Hz, aber danken für den Tipp mit der AltSoftwareSerial, muss ich mal ausprobieren.