DIY Frsky GPS mit Arduino

Rangarid

Erfahrener Benutzer
#1
Da ja grad die DIY Arduino XXX2Frsky Projekte aus dem Boden sprießen möchte ich kurz meinen GPS2Frsky Converter vorstellen.

Im Moment funktioniert das ganze nur mit D-Serie Empfängern (aber auch mit X-Serie Sendern). X-Serie Empfänger werden hinzugefügt, wenn ich mal einen habe.

Jetzt könnte man denken, warum macht der das, das Frsky GPS v2 kostet doch nur 30€. Ja das stimmt, preislich spart man nicht so viel. Dafür hat man den Vorteil, dass man GPS-Typen nutzen kann, die man mag. Die meisten setzen ja auf Ublox was Genauigkeit betrifft.

Desweiteren gibt das Frsky GPS die Daten nur mit 1Hz Messrate aus. Da ich das GPS mit meinem Tracker-Projekt nutzen möchte gebe ich bei mir die Daten mit 5Hz aus.

In meinem Aufbau benutze ich einen Arduino Pro Mini und ein Mediatek 3339 (PA6C) mit der 38400baud Firmware auf 5hz (siehe Link).

Das GPS wird mit V+, GND, TX an den Arduino über die serielle Schnittstelle angeschlossen.

Der Arduino gibt dann über GND, V+, D9 die Telemetriedaten an den Empfänger. Der D9 Pin kann bei bedarf noch getauscht werden, lag bei mir nur günstig, da ich bei meinem Pro Mini V+ und GND Anschlüsse direkt daneben hab.

Ein teil des Codes hab ich von Johannes seinem Naza2Frsky Projekt übernommen (hauptsächlich den Teil der die Frsky Daten generiert).

Code gibt es hier: https://github.com/SamuelBrucksch/diy-frsky-gps
 
Zuletzt bearbeitet:

KaiK

Erfahrener Benutzer
#2
Hallo Rangarid,

einmal auch Themenrichtig hier angefragt (siehe auch Post im Tracker-Projekt): Siehst du eine Möglichkeit, die Daten des FAS-100 Stromsensors "durchzuschleifen" bzw. alternativ zu Interpretieren und selbst in die Datenpakete mit einzupacken? (Übertragen werden m.E. 2-3 Datenwerte (vFAS, Strom und m.E. auch verbrauchte Energie [also Strom kummiliert/integriert).

VG
Kai
 

Rangarid

Erfahrener Benutzer
#3
Sollte machbar sein. Da ich aber keinen FAS-100 habe kann ich das nicht testen. Ich seh also auch nicht welche Daten wo rauskommen.
 

KaiK

Erfahrener Benutzer
#5
Ich habe mal mitgeschnitten, was der mir sendet (ist bereits invertiert, sollte also das tatsächliche "Nutzsignal" sein).
Kennst du sicher schon. (hier finden wir ggf. auch noch kreativen Input: https://github.com/jdrones/jD-IOBoard/tree/master/jD_IOBoard_MAVLink)

Code:
00 5E 5E 3A 06 00 5E 5E 3B 04 00 5E 5E 28 00 00 5E 5E 3A 06 00 5E 5E 3B 
04 00 5E 5E 28 00 00 5E 5E 3A 06 00 5E 5E 3B 04 00 5E 5E 28 00 00 5E 5E 
3A 06 00 5E 5E 3B 04 00 5E 5E 28 00 00 5E 5E 3A 06 00 5E 5E 3B 04 00 5E 
5E 28 00 00 5E 5E 3A 06 00 5E 5E 3B 04 00 5E 5E 28 00 00 5E 5E 3A 06 00 
5E 5E 3B 04 00 5E 5E 28 00 00 5E 5E 3A 06 00 5E 5E 3B 04 00 5E 5E 28 00 
00 5E 5E 3A 06 00 5E 5E 3B 04 00 5E 5E 28 00 00 5E 5E 3A 06 00 5E 5E 3B 
04 00 5E 5E 28 00 00 5E 5E 3A 06 00 5E 5E 3B 04 00 5E 5E 28 00 00 5E 5E 
3A 06 00 5E 5E 3B 04 00 5E 5E 28 00 00 5E 5E 3A 06 00 5E 5E 3B 04 00 5E
bzw. etwas anders formatiert:

Code:
5E 3A 06 00 5E
5E 3B 04 00 5E
5E 28 00 00 5E

5E 3A 06 00 5E
5E 3B 04 00 5E
5E 28 00 00 5E

5E 3A 06 00 5E
5E 3B 04 00 5E
5E 28 00 00 5E

5E 3A 06 00 5E
5E 3B 04 00 5E
5E 28 00 00 5E

5E 3A 06 00 5E
5E 3B 04 00 5E 
5E 28 00 00 5E

5E 3A 06 00 5E
5E 3B 04 00 5E
5E 28 00 00 5E

5E 3A 06 00 5E
5E 3B 04 00 5E
5E 28 00 00 5E
Anbei auch 2 PDFs von FrSky. In einem sind auch die drei Datenpakete 3A, 3B und 28 beschrieben.

Ich sehe 2 Optionen:
- Datenpaket erkennen und "stumpf durchleiten"
- Datenpaket erkennen, interpretieren, neu verpacken und raussenden

Hilft dir das weiter?

VG
Kai
 

Anhänge

Zuletzt bearbeitet:

KaiK

Erfahrener Benutzer
#7
Das wäre klasse.
Der gibt wie alle FrSky Komponenten ein invertiertes 9600baud Serial aus.
Könnte man ja mit nem Softserial (weil invertierbar) lesen und dann mit in en Ausgangsdatenstrom einfliessen lassen...
 

KaiK

Erfahrener Benutzer
#8
Hast du dir das schonmal angesehen?
Bzw. kannst du deinen aktuellen Sourcen Stand zur Verfügung stellen? Dann schaue ich mir das mal an...
 

KaiK

Erfahrener Benutzer
#9
Kleines Update von hier: So sieht mein Aufbau aus
- u-blox Neo 6M (NMEA Mode, 5Hz, 57600baud)
- Arduino Pro Micro Huckepack

Ich habe drei "Servo"-Kabel vorgesehen
- 5V/GND für die Stromversorgung (irgendwo am Empfänger abzwacken)
- Telemetrie-Serial zum Frsky Empfänger
- "Empfangen" (zum Weiterleiten) des FAS100 Signals (oder irgendeines anderen Hub-Signals)

Der Pro Micro hat netterweise einen virtual USB serial onboard, sodass ich den Hardware-Serial fest mit dem GPS verkabeln kann und immernoch per USB Sketche aufspielen kann...
 

Anhänge

Zuletzt bearbeitet:

Rangarid

Erfahrener Benutzer
#10
Hast du dir das schonmal angesehen?
Bzw. kannst du deinen aktuellen Sourcen Stand zur Verfügung stellen? Dann schaue ich mir das mal an...
Da gibt es nicht viel anzusehen. Die Implementierung ist relativ simpel. Meine Prioritäten liegen aber momentan beim 360° Tracker Projekt und dass das GPS so funktioniert wie es soll. Wenn das geschafft ist kuck ich mir das andere mal an ;)
 

KaiK

Erfahrener Benutzer
#11
Weiterleitung der Signale des FAS-100 Sensors implementiert

Ich habe mich heute mal dran gegeben und die Weiterleitung der drei Signale das FAS implementiert (siehe Anhang).

Zusätzlich habe ich den Code auf mein Pro Micro ("Leonardo" Board) umgebaut (Serial1 und nicht Serial).
Was ich noch einbauen müsste, wäre ggf. ein Rücksetzen auf 0 nach einigen Sekunden, wenn er vom FAS kein Signal mehr bekommt (derzeit sendet er immer das letzte gültige Signal).

Viele Grüße
Kai
 

Anhänge

kl_Haribo

ergebener Benutzer
#13
huhu!

bei mir kamen unrichtige werte raus,153kmh und irgendwo am äquator...

aufgrund einer Nachfrage: habe ein MTK3329 mit 5V und das Arduino hat auch 5V Empfänger ist der D4R-II oder gibts da Probleme wegen des Pegels?
 

Rangarid

Erfahrener Benutzer
#16
0° heißt du hast keinen Fix. Kann sein, dass die andern Werte dann auch etwas rumspinnen. T1 oder T2 sollte die Anzahl der Satelliten runterfunken...Schau mal was da drin steht.
 

kl_Haribo

ergebener Benutzer
#17
joa, ich kann immer nur testen, wenn das Kind mal grad pennt, scheint heute nicht so recht zu klappen.... Ich berichte, wenn ich mal die Zeit dafür finden konnte :/
 

kl_Haribo

ergebener Benutzer
#18
Oki, habe schonmal einen Fehler gefunden. auf dem Arduino war der Pin mit GND beschriftet, aber irgendwie ist da kein Ground. wenn ich da das GPS anschließe, dann leuchtet es nicht. Wusste nur leider nicht, dass es leuchten muss ;)
Bekomme hier nur leider keinen Fix, daher werd ichs morgen versuchen... mit richtigem Ground ;)
 

kl_Haribo

ergebener Benutzer
#19
Nach langem Hin und Her habe ich es nun auch endlich hinbekommen.
Komme mit Windows wohl nicht mehr richtig zurecht, habe ewig gebraucht, das GPS dort anzuschliessen(Hatte es die ganze Zeit mit komischer Software probiert...) Jedenfalls habe ich rausgefunden, dass das GPS auf default mit 115200 Baud mit mir spricht, also habe ich es auch im Sketch eingestellt. Siehe da, es läuft. Die Sats werden in der Taranis mit "T2" angezeigt. "GAlt" hat mir teilweise falsche Werte angezeigt, "speed" konnte ich auf dem Balkon nicht testen... ;)
 

Rangarid

Erfahrener Benutzer
#20
Ja mit den Werten stimmt teilweise noch was nicht, hab ich auch schon festgestellt. Schau ich mir demnächst nochmal an. Aber die Position stimmt immerhin, das ist schonmal das wichtigste ;)
 
RCLogger

FPV1

Banggood

Banggood

Oben