DIY Frsky GPS mit Arduino

kl_Haribo

ergebener Benutzer
#21
Habe zwischendrin das teil kaputt gespielt gehabt. nu läuft aber wieder alles. 10Hz und 115200 Baud sind wirklich nicht gut, sollte man unbedingt vermeiden, auch wenn das GPS so als standard eingestellt ist.

Mein GPS führt nun TX und RX einmal zum arduino für den Sensor, und zusätzlich habe ich das GPS auch mit dem Flightcontroller verbunden. Beide empfangen die Signale vom GPS. Ergo kann man auch das GPS via Flightcontroller auf die richtige Baudrate einstellen, und das Sensorboard mitlauschen lassen.
Somit kann man auch verhindern, dass man mehrere GPS-Module mitführen muss :)

Laut Sketch funktioniert altitude nicht mit Taranis: case 0x10: // Altitude, before "." works on FLD-02, Taranis no

bei distance und speed habe ich ne vermutung, aber ich bin leider nicht so schlau im Code lesen...
 

MarenB

Runter kommen sie immer!
#22
Sagt mal, könnte man dieses Projekt nicht mit dem OpenXsensor mixen? Nicht, dass ich unbedingt ein super Vario bräuchte, aber WENN schon eh ein Arduino mitfliegen muss, dann kann der meinetwegen gerne auch noch Zellspannungen und die barometrische Höhe oder den Airspeed messen.
Nicht, dass dem sonst langweilig wird ;)

Leider bin ich nicht fit genug, was die Programmierung in Arduino oder C angeht und das alles von Null an in Bascom neu zu schreiben, das ist dann doch etwas übertrieben...
 

kl_Haribo

ergebener Benutzer
#24
Momentan habe ich den direct Frsky multiwii-hack drauf. nun wird mit auch speed, höhe, dist etc. angezeigt.
Leider ist er mir gestern beim 2. Flug runter gefallen(ist nichts passiert), Aber ich schiebe das erstmal auf ein schwaches BEC...
 

Rangarid

Erfahrener Benutzer
#27
So, hab mal das Frsky DIY GPS geupdated. In der letzten Version funktionierte die Höhe, Geschwindigkeit und Kurs nicht richtig. Position und Anzahl Sats war aber korrekt. Nun sollte alles stimmen.

Folgende Daten werden genutzt:
- Lat/Lon
- T2 für Anzahl Satelliten
- GAlt für GPS Höhe
- Hdg für Kurs
- Spd für Geschwindigkeit

Damit ist schonmal die korrekte voraussetzung für den open360tracker gegeben.
 
Zuletzt bearbeitet:

Rangarid

Erfahrener Benutzer
#28
Habe den aktuellen Code mal auf Github gepackt:
https://github.com/SamuelBrucksch/diy-frsky-gps

Neu in der aktuellen Version:
Der Fix Type wird aus dem GPGGA Satz ausgelesen. Folgende Fix Typen sind möglich:
0 - kein fix
1 - GPS fix
2 - DGPS fix

Das ganze wird zusammen über Temp2 übertragen in folgendem Format:
Sats: 7
Fix Type: 3
Temp2 = Sats * 10 + Fix Type = 7*10 + 3 = 73

In der Taranis kann man also so an die Werte kommen (z.B. mit einem LUA Script):
Sats = Temp2 / 10
Fix = Temp2 % 10
 

Rangarid

Erfahrener Benutzer
#29
SPort wurde implementiert. Nun kann man in der config.h zwischen X und D Serie auswählen. Code kompiliert fehlerfrei, kann aber erst heute Abend testen.

SPORT hat selben funktionsumfang wie D-Serie. Einfach selbe Sensoren auswählen in OpenTX.

Ich weiß allerdings noch nicht, mit welcher Frequenz die SPORT Bibliothek GPS Daten sendet, kann also sein, dass das auch nur mit 1Hz gesendet wird. Das überprüf ich dann heut abend.
 
Zuletzt bearbeitet:

MarenB

Runter kommen sie immer!
#32
Hi Rangarid,

kannst du vielleicht aus dem Kopf sagen, ob das Vorhandensein mehrerer GPS-Datensätze Probleme verursachen kann?

Das GPS meines FY31AP spuckt der Reihe nach folgendes aus:

$GPGGA,095708.400,5132.zzzz,N,00713.zzzz,E,1,5,2.06,64.8,M,47.5,M,,*61
$GPGSA,A,3,10,09,28,07,20,,,,,,,,2.29,2.06,0.99*08
$GPRMC,095708.400,A,5132.zzzz,N,00713.zzzz,E,0.24,147.40,060415,,,A*68
$GPVTG,147.40,T,,M,0.24,N,0.45,K,A*3C

und dann geht's wieder mit GPGGA los.

Mit dem Emulator am Uno hat's prima funktioniert, jetzt mit dem echten GPS am Pro Mini will es nicht. Die LED leuchtet dauerhaft und an der Taranis kommt nichts an.

Achso, Baudrate und Pin-Belegung hab ich natürlich schon gecheckt :)

Danke!

VG
Maren
 

Rangarid

Erfahrener Benutzer
#33
Sollte normalerweise keine Probleme verursachen...Solang RMC und GGA dabei ist.

Dauerhaftes leuchten heißt übrigens FIX ist vorhanden.
 
Zuletzt bearbeitet:

MarenB

Runter kommen sie immer!
#34
Ich glaube, ich habe einen entscheidenden Hinweis:

sobald ich manuell aus Hterm heraus sende und dem GPGGA-Sazu diesen hier voranstelle:

*** NMEA 06.04.2015 16:12:12 = UTC: 141212.758 ***

dann geht es. Das GPS (ein Locosys mit MTK-Chipsatz) sendet den NMEA-Satz nämlich gar nicht.... :/
 

MarenB

Runter kommen sie immer!
#36
Lässt sich das nicht irgendwie anpassen? ich hab jetzt alles probiert, sieht nicht so aus, als ließe sich diese NMEA-Botschaft aktivieren.
Das hier scheint alles zu sein:



Edit: nee, das war's doch nicht...siehe nächster Post :)
 
Zuletzt bearbeitet:

MarenB

Runter kommen sie immer!
#37
Also, der Satz ***NMEA...*** aus dem Emulator hilft nicht. Der wird im Ausgabefenster zwar angezeigt, aber nicht wirklich gesendet.

Das GPS sendet das hier:
$GPGGA,095708.400,5132.zzzz,N,00713.zzzz,E,1,5,2.0,6,64.8,M,47.5,M,,*61 - und das wird nicht erkannt.
Der Emulator dagegen liefert
$GPGGA,161656.788,5000.0380,N,02000.0000,W,1,09,0.9,300,M,0,M,,*75 - und das frisst er.

Kann das an dem doppelten CR+LF liegen???
Oder an der Frequenz? Die 10Hz vom GPS sollten ihn auf der HW-UART doch nicht überfordern?!

Werde die Tage mal weiter testen, so lange bis ich weiß, wie ich die echten Daten modifizieren muss, dass es geht.
 
Zuletzt bearbeitet:

Rangarid

Erfahrener Benutzer
#38
Puh, also 10Hz sind schon echt viel. Hatte mal mit einem andern GPS das Problem, dass die Daten nicht als Stream, sondern als ganzer Block reinkamen. Das Problem dabei war, dass der Block länger als der Puffer vom HW Serial war. Und dann das ganze bei 10Hz, da kann es passieren, dass der Puffer überläuft.

Du könntest mal versuchen, den Puffer zu erhöhen:
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino\

Da gibt es die HardwareSerial.cpp in der die Buffergröße steht:
#define SERIAL_BUFFER_SIZE 64
Da mal auf 128 erhöhen könnte das Problem schon lösen. Aber ka wie sich das auf den rest auswirkt...
 

MarenB

Runter kommen sie immer!
#39
Ich muss mal herausfinden, was der AP braucht und evtl. überflüssige Sätze abschalten, vielleicht hilft das ja.

Andererseits, wenn ich mir einen einzigen echten GPGGA Satz nehme und ihn einfach in einer Schleife mit 1Hz sende, geht's ja auch nicht.
Nehme ich einen vom Emulator, blinkt die LED sofort beim ersten mal.

Btw, das war übrigens nur die Power-Led, die dauerhaft leuchtete ;)
 

Rangarid

Erfahrener Benutzer
#40
Stell das ganze mal auf 5Hz. Das ist sowohl für AP als auch Tracking locker ausreichend. Der MFD Tracker z.B. hat bei Audio nur 3-4Hz übertragen. Und der geht echt gut.

Vielleicht kannst du auch mal parallel noch mit nem andern GPS testen?
 
RCLogger

FPV1

Banggood

Banggood

Oben