DIY Frsky GPS mit Arduino

bruchpilot05

Erfahrener Benutzer
Habe gerade noch ein Arduino promini mit dem alten Stand (von wann genau, kann ich nicht sagen) des Projektes aus meine lange nicht mehr geflogenen FPV Flieger probiert. Der zeigt die GPS Daten noch richtig an. Den werde ich mir jetzt gut aufheben.
 
Moin, habe jetzt mal ein GPS-Logger1 von SM-Modellbau ausprobiert. Die Anzeigen sind etwas ruhiger, aber die Koordinaten passen auch hier nicht. Entweder zeigt mir Google-Maps die Koordinaten von meinem Haus nicht richtig an oder aber das hat irgendwas mit de Umrechnerei zu tun. Wie auch immer, damit scheint das Selbstgebaute doch nicht so schlecht zu sein. IMG_20170507_171524.jpg IMG_20170507_171538.jpg IMG_20170507_171554.jpg IMG_20170507_201203.jpg
 
Hallo,

ich habe mir auch einige oXs'e nachgebaut und dabei festgestellt, dass GPS-Module verschiedener Hersteller nicht immer mit der 10 Hz NAV-RATE, wie sie in der "oXs_gps.cpp" vorgegeben ist, klar kommen. Deshalb habe ich - dank einer Fundstelle im Internet - diese Modifikation vorgenommen:

// send config commands to GPS at 9600 bds (default baud rate)
void OXS_GPS::setupGps( ) {
const static uint8_t initGps1[] PROGMEM = {
0xB5,0x62,0x06,0x01,0x08,0x00,0x01,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x13,0xBE, // activate NAV-POSLLH message
0xB5,0x62,0x06,0x01,0x08,0x00,0x01,0x06,0x00,0x01,0x00,0x00,0x00,0x00,0x17,0xDA, // NAV-SOL
0xB5,0x62,0x06,0x01,0x08,0x00,0x01,0x12,0x00,0x01,0x00,0x00,0x00,0x00,0x23,0x2E, // NAV-VELNED

// 0xB5,0x62,0x06,0x08,0x06,0x00,0xE8,0x03,0x01,0x00,0x01,0x00,0x01,0x39, // NAV-RATE for 1 hz
// 0xB5,0x62,0x06,0x08,0x06,0x00,0xF4,0x01,0x01,0x00,0x01,0x00,0x0B,0x77, // set rate to 2Hz
0xB5,0x62,0x06,0x08,0x06,0x00,0x4D,0x01,0x01,0x00,0x01,0x00,0x64,0x8D, // set rate to 3Hz (tested!)
// 0xB5,0x62,0x06,0x08,0x06,0x00,0xFA,0x00,0x01,0x00,0x01,0x00,0x10,0x96, // set rate to 4Hz
// 0xB5,0x62,0x06,0x08,0x06,0x00,0xC8,0x00,0x01,0x00,0x01,0x00,0xDE,0x6A, // set rate to 5Hz (default)
// 0xB5,0x62,0x06,0x08,0x06,0x00,0x64,0x00,0x01,0x00,0x01,0x00,0x7A,0x12, // NAV-RATE for 10 hz

0xB5,0x62,0x06,0x00,0x14,0x00,0x01,0x00,0x00,0x00,0xD0,0x08,0x00,0x00,0x00,0x96, // CFG-PRT : Set port to output only UBX (so deactivate NMEA msg) and set baud = 38400.
0x00,0x00,0x07,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x91,0x84 // rest of CFG_PRT command
} ;
Damit wurden meine GPS-Daten eigentlich immer richtig angezeigt (ob die Positionsangaben exakt stimmen habe ich natürlich nicht überprüft).

Gruß Udo
 

kalle123

Jugend forscht ....
Hallo,

ich habe mir auch einige oXs'e nachgebaut und dabei festgestellt, dass GPS-Module verschiedener Hersteller nicht immer mit der 10 Hz NAV-RATE, wie sie in der "oXs_gps.cpp" vorgegeben ist, klar kommen. Deshalb habe ich - dank einer Fundstelle im Internet - diese Modifikation vorgenommen:



Damit wurden meine GPS-Daten eigentlich immer richtig angezeigt (ob die Positionsangaben exakt stimmen habe ich natürlich nicht überprüft).

Gruß Udo
Das, Udo, was du da gepostet hast, ist aber nicht die aktuelle Version 8.0 von oXs. Da ist "default" 5 Hz drin. Und so war es auch in Version 7.0

... dass GPS-Module verschiedener Hersteller nicht immer mit der 10 Hz NAV-RATE, wie sie in der "oXs_gps.cpp" vorgegeben ist, klar kommen.
Ich weiß nicht, woher du oXs hast, aber diese Aussage ist einfach falsch!

Solltest vielleicht mal nen Blick in oXs_config_description.h werfen. ;)

* Software points of attention
* UBLOX GPS module are normally delivered with a default configuration (generating automatically e.g some NMEA messages at 9600 bauds at a refresh rate of 1 hz).
* oXs assumes that, at start up, GPS is working at 9600 bauds. oXs sent then some commands in order to
* - disable all NMEA messages
* - activates some UBX messages
* - increase frequency of calculation (to 5 Hz instead of 1hz)
* - set up the baud rate to 38400 instead of 9600.
Gruß KH
 

helitron

Erfahrener Benutzer
Nur Nullen als Telemetriewerte

Hallo Leute,

habe mir nun auch dieses Telemetriemodul mit einem Arduino Nano v3 und einem neuen Beitian BN-880 GPS-Modul mit M8N Chipsatz nachgebaut. Satelliten werden 10 - 12 erkannt (mit ublox u-center gecheckt), gesendet werden NMEA Datensätze mit 9600 Baud.

Der Arduino Nano hängt mit D9 am S.Port eines X8R, meine Taranis X9E erkennt 7 Sensoren mit folgenden IDs:

GPS ID 0800
GAlt ID 0820
GSpd ID 0830
Hdg ID 0840
Tmp1 ID 0400
Tmp2 ID 0410
RPM ID 0500

An den Sensoren kommen auch laufend Daten rein (Sternchen blinken heftig). Trotzdem werden leider bei allen Sensoren, außer beim Tmp2 (der konstant den Wert 1 anzeigt), nur Nullen angezeigt.

Kompiliert habe ich den Sketch mit #define FRSKY_X und #define TELEMETRY_HZ 5.

Habe auch schon versucht am D9 des Arduino Nano, also dem S.Port Ausgang, bei angeschlossenem X8R mit 57600 Baud mitzulesen. Es kommen dort auch laufend Daten, leider kann ich keine Start Frames 0x7E darin erkennen. Dann fiel mir ein, dass das Signal ja invertiert ist, das heißt, statt dem 0x7E müssten dann eigentlich 0x81 Werte zu sehen sein, oder täusche ich mich da ? Waren auf jeden Fall auch nicht zu erkennen.

Habt ihr einen Tipp für mich, wo ich am besten weitersuchen soll (Inverter bauen vielleicht ?), wenn ja, auf jeden Fall schon mal besten Dank im voraus.

Edit: eines ist mir jetzt noch aufgefallen, in meinen NMEA Datensätzen kommen keine GPRMC und GPGGA Sätze vor, sondern nur GNRMC und GNGGA. Kann das das Problem sein ?

Nochmal Edit: habe gerade im Quellcode/Sketch die Abfrage der beiden Datensätze gefunden, nachdem explizit auf GPGGA und GPRMC abgefragt wird und die bei mir nicht kommen, kann das natürlich nicht funktionieren. Werde jetzt mal den Code versuchsweise auf GNGGA und GNRMC ändern und kompilieren. Falls es dann funktioniert, möchte ich aber trotzdem sehen, ob ich nicht irgendwie das M8N Modul dazu bringen kann, GPGGA und GPRMC zu senden. Hat dazu vielleicht auch jemand einen Tipp bzw. eine Idee, wieso das Modul überhaupt GNGGA und GNRMC sendet ?

Gruß Erwin
 
Zuletzt bearbeitet:

helitron

Erfahrener Benutzer
Nur Nullen als Telemetriewerte

Das war es tatsächlich, hatte nun sofort die gewünschten Werte in der Taranis (Lat, Lon, usw.). Nur die Werte für Sats und Fix fehlen mir nun noch. Hatte mal ganz vorne im Thread gelesen, dass diese Werte in einem (oder beiden) der Tmp-Werte verpackt sind und mittels Lua auszuwerten sind. Ist das noch immer so ?

Gruß Erwin
 

helitron

Erfahrener Benutzer
Nur Nullen als Telemetriewerte

Nachdem ich es (glaube ich) noch nicht getan habe, möchte ich mich hiermit recht herzlich bei Rangarid für dieses tolle Projekt und für die Zurverfügungstellung des Sketch bedanken :D ! Und ich hoffe es ist ok, wenn ich für mich persönlich ein paar kleine Änderungen im Quellcode durchführe.

Habe, wie schon im vorherigen Beitrag angeführt, für mein Beitian BN-880 GPS-Modul die Datensatzabfrage auf "GNGGA" und "GNRMC" geändert. Solange ich nicht weiß, ob und wie ich dem BN-880 beibringen kann, dass es "GPGGA" und GPRMC" NMEA-Sätze sendet, werde ich es mal so belassen.

Das zweite Problem (für mich :confused:) waren die verpackten Sats und der Fixtype im Sensor "Tmp2". Um sie nicht mit einem Lua-Skript auseinandertrödeln zu müssen, habe ich das Dazurechnen des Fixtype und das *10 im Sketch entfernt, da ich im Gegensatz zu den Sats den Fixtype im Sender nicht benötige. Somit erhalte ich jetzt den reinen Satwert über Tmp2, das ist schon mal super.

Was ich jetzt noch nicht richtig aus dem Quellcode herausfinden konnte, was soll eigentlich über Tmp1 und RPM reinkommen ? Tmp1 konnte ich im Code gar nicht finden (sorry, bin aber auch schon 65 :)) und beim RPM sieht es so aus, als ob auch die Sats übergeben werden sollten. Beide Sensoren (Tmp1, RPM) zeigen bei mir auf der X9E aber konstant Null an.

Gruß Erwin
 

MarenB

Runter kommen sie immer!
Hallo Erwin,

AFAIK sind RPM und Tmp1 Relikte aus der verwendeten Telemetrie-Library und beinhalten keine sinnvollen Informationen.
Mich haben die nie gestört, da ich keine Konflikte in meinen Anwendungen hatte, aber man kann die sicher auch eliminieren.
 

helitron

Erfahrener Benutzer
Hallo Maren,

besten Dank für die Info.

Dachte mir, dass ich eventuell den Fixtype, den ich ja aus Tmp2 eliminiert habe, in Tmp1 oder RPM verfrachte, falls ich die entsprechende Stelle im Code finde. Brauche die Info zwar wie gesagt nicht im Sender, aber rein aus Interesse hätte es mich gereizt :).

Gruß Erwin


Hallo Erwin,

AFAIK sind RPM und Tmp1 Relikte aus der verwendeten Telemetrie-Library und beinhalten keine sinnvollen Informationen.
Mich haben die nie gestört, da ich keine Konflikte in meinen Anwendungen hatte, aber man kann die sicher auch eliminieren.
 

helitron

Erfahrener Benutzer
M8N umkonfigurieren

Hallo zusammen,

es ist schon viele Jahre her, dass ich mit den ublox GPS-Modulen gearbeitet habe und bin mit dem u-center nicht mehr so vertraut. Kann mir vielleicht jemand auf die Sprünge helfen, wie ich mit dem u-center alle NMEA Datensätze außer GGA und RMC abschalten und die Baudrate erhöhen kann (aber so, dass es nichtflüchtig im Flash gespeichert wird) ?

Gruß Erwin
 

devil

Erfahrener Benutzer
Ok,

wobei ich den Fixtyp als nicht so wichtig ansehe, einen 3D Fix hast du in aller regel bei 4-6 Sat´s, das bedeutet aber noch lange nicht das die Pos jetzt genau ist.
Ich lasse mir lieber den DPOD oder HDOP anzeigen, mit diesen Werten kann man sehr gut die Momentane Genauigkeit sehen, ich setzte ab einem DPOD kleiner als 1,7 den Home Point,am liebsten sogar bei 1 oder weniger, das sind dann wirklich sehr genaue Daten.
 

devil

Erfahrener Benutzer
IM U-Center gehst du unter Configuration view.

Dort unter PRT findest du die Baudrate.

Unbenannt.JPG

zum Permanent Speicher gehst du unter CFG

Und markierst die rot eingerahmten Felder so wie zu sehen dann auf send.
Zum Schluss gehe ich noch mal auf Action und dann Save.

Unbenannt.JPG

Edit:

zu NMEA Datensätze außer GGA und RMC kann ich dir nichts sagen, hab ich noch nie gebraucht, warum ist das für dich wichtig ?
 

helitron

Erfahrener Benutzer
Hallo Mario,

da stimme ich dir zu 100% zu, wollte/will letztendlich auch dann diese beiden Werte übertragen. Nur für den Test, ob ich auch über Tmp1 und RPM einen Wert rüberbringe, wollte ich den Fixtype verwenden. Benötigen tu ich ihn in Wirklichkeit auch nicht.

Gruß Erwin


Ok,

wobei ich den Fixtyp als nicht so wichtig ansehe, einen 3D Fix hast du in aller regel bei 4-6 Sat´s, das bedeutet aber noch lange nicht das die Pos jetzt genau ist.
Ich lasse mir lieber den DPOD oder HDOP anzeigen, mit diesen Werten kann man sehr gut die Momentane Genauigkeit sehen, ich setzte ab einem DPOD kleiner als 1,7 den Home Point,am liebsten sogar bei 1 oder weniger, das sind dann wirklich sehr genaue Daten.
 
RCLogger

FPV1

Banggood

Banggood

Oben