MavLink & Frsky Telemetrie (für APM & MPNG)

#1
Hallo zusammen!

Bin heute darüber gestolpert: http://diydrones.com/profiles/blogs/jdrones-news-jd-ioboard-v1-0
Mich interessieren da weniger irgendwelche blinkenden LED-Streifen, jedoch vielmehr die coole Lösung einen Atmel an den Telemetrie-Port des APM zu hängen und die dort gewonnenen Daten in das Frsky-Telemetrie Protokoll zu wandeln.

Da ich die LED-Sache nicht brauche, dachte ich mir, tut's wohl ein einfacher Arduino Pro Mini auch.
Also schnapp ich mir zuhause meinen Quad mit einem Crius All in One Pro und MegaPirateNG2.7 drauf.
Einen Arduino Nano hab ich eh auch noch irgendwo rumliegen, also schnell mal die Software von hier http://code.google.com/p/arducodes/downloads/list
runtergeladen.
Die Libs müssen ins Arduino Libraries-Verzeichnis kopiert werden.
Dann das jD_IOBoard_FrSkyMAVLink compiliert und auf den Arduino geladen.

Der Pin D5 vom Arduino wird mit der Rx-Leitung des FrskyEmpfängers (in meinem Fall ein D4RII) verbunden. Die FTDI-pins kommen an den S3 Telemetrie-Port am CAIOP.
Die Standard-Geschwindigkeit von 57600 Baud stimmt auf Anhieb.

Meine Turnigy 9x mit Frsky Telemetrie Mod zeigt gleich auf Anhieb diverse Daten des Kopters an.
Leider bekomme ich heute keinen GPS fix in der Wohnung, aber z.B. die Temperatur des Höhenmessers sowie die Höhe funktioniert schon mal, also wird der Rest vermutlich auch funktionieren.

Auf rcgroups.com wird gemunkelt, dass MegaPirateNG das Frsky-Protokoll bald direkt implementiert bekommt.
Ich bin mir auch sicher, daß es für APM auch kein Problem wäre, das direkt ausschliesslich per Software zu lösen.
Bis dahin kann man mit einem billigen Arduino Pro Mini clone um läppische 7 EUR aus der Bucht einige Telemetriedaten aus dem ArduPilot auf diesem Weg abzapfen.

Mit Sprachausgabe auf dem Sender eine durchaus nützliche Funktion...

Gruß aus Wien,
Christian
 

Anhänge

Erhaltene "Gefällt mir": seeers

preepe

Erfahrener Benutzer
#4
das klingt super! wenn ich das jetzt richtig deinem Beitrag entnommen habe, geht dies noch nicht fürs AP2.5??? Hast du mittlerweile mit GPS testen können? Das ist genau das was ich suche :)
 
#5
mein APM 2.5 ist zwar leider noch immer irgendwo in einer Postkutsche unterwegs zu mir, allerdings bin ich mir sicher, daß das ganze auch mit APM2.5 funktioniert, da ja der Konverter auf MavLink basiert.
Ich hab das ganze mittlerweile mit einem Arduino Pro Mini auf meinem Crius All In One Pro mit MegaPirateNG2.7 und GPS am laufen.
Auch GPS funktioniert wunderbar, ich sehe an der 9x die Koordinaten, sowie Geschwindigkeit und Höhe sowohl per GPS als auch die vom Barometer.
Was ich leider vermisse ist die Distanz zur Home-Position, aber das könnte man auch bei Bedarf die 9x machen lassen.

Wie auch immer, ich bin zufrieden; um 7 EUR hab ich Telemetrie aus dem APM über Frsky runter auf mein 9x Display.
Jetzt nur noch ein Voice-Mod in die 9x und schon macht Telemetrie wirklich Spass um wenig Geld!

Gruß aus Wien,
Christian
 

preepe

Erfahrener Benutzer
#8
ich danke dir. LED gedöns brauch ich nicht! Hab einfach mal so ein Pro Mini für 8 Euros bestellt. Programmieren tu ich den über einen übllichen FTDI Adapter oder?
 
#10
Ich bin da im Moment auch am basteln. Leider geht da irgendwas schief.

Ich habe ein FRSKY-Telemtrie-Display dram. Die einzige Anzeige, die ich habe, ist eine Temperatur von 2GradC. Alle Anderen Anzeigen, auch die GPS-Anzeige geht nicht.

Ich habe den PIN D5 direkt mit dem RX-PIN des D4R-II verbunden. Muss da evt. noch ein Sensorhub dazwischen?

Ansonsten habe ich mit dem Oszilooskop geprüft, da gehen wirklich Datenpakete in Richtung D4R-II.

Auch mit einem GPS-Lock kommt nichts an.

Bin etwas ratlos, weiss noch nicht, wie ich weiter suchen kann.

Grüße
Oliver
 
#11
MavLink sendet die wirklich interessanten Daten erst dann, wenn man sie anfordert.
Ich hab mir auch anfangs die Zähne dran ausgebissen, da ich den Frsky-Mavlink-Converter, mein 3DR-Telemetrie und MinimOSD alles am selben Port angeschlossen hatte.
Telemetrie mit Rx und Tx, die anderen Teile nur mit Rx.
Erst wenn ich den Telemetrie-Link aktivierte hatte ich die Daten über den Frsky-Mavlink Converter.

Geholfen hat dann letzten Endes diese Info hier:

http://code.google.com/p/minimosd-extra/wiki/APM

Mit diesen Settings veranlasst man das APM dazu, daß die für den Frsky-Mavlink Converter relevanten Infos automatisch unaufgefordert zyklisch über die Serielle gesendet werden.

Versuch mal und lass uns wissen, obs funzt!

Gruß aus Wien,
Christian
 
#12
Vielen Dank!

GPS geht, Höhe geht, Speed geht.

Hast Du vielleicht noch eine Ahnung, wie man (Batterie) Strom und Spannung auf den FRSKY bekommt?


Grüße
Oliver


PS: hat ein bischen länger gedauert, bei uns schiffts, und das GPS wollte nicht...
 
#13
Gute Frage...

Hab das bisher aufs Unvermögen der aktuellen Open9x Firmware zurückgeführt; hab aber auch irgendwie vage in Erinnerung gelesen zu haben, daß das in der ersten JD-IOBoard version noch nicht drin ist.

folgende Kommentar-Zeilen aus dem Code

Code:
 Frame 1, every 200ms,  payload: accel-x, accel-y, accel-z, Altitude(Vario), Temp1, Temp2, Voltage (multiple), RPM
 Frame 2, every 1000ms, payload: course, lat, lon, speed, altitude (GPS), fuel level
 Frame 3, every 5000ms, payload: date, time
klingen zumindest mal was künftig die Spannung angeht vielversprechend.

Weiter unten im Code sieht man nämlich folgende auskommentierte Zeile:

Code:
//    payloadLen += addPayload(0x06); // battery data, injection not ready

weiter unten dann noch:

Code:
    case 0x06:  // Voltage, first 4 bits are cell number, rest 12 are voltage in 1/500v steps, scale 0-4.2v
      outBuff[payloadLen + 0] = 0x06;
      outBuff[payloadLen + 1] = 0x00;
      outBuff[payloadLen + 2] = 0xff;
      outBuff[payloadLen + 3] = 0x06;
      outBuff[payloadLen + 4] = 0x10;
      outBuff[payloadLen + 5] = 0xff;
      outBuff[payloadLen + 6] = 0x06;
      outBuff[payloadLen + 7] = 0x20;
      outBuff[payloadLen + 8] = 0xff;
      outBuff[payloadLen + 9] = 0x06;
      outBuff[payloadLen + 10] = 0x30;
      outBuff[payloadLen + 11] = 0xff;


Von Strom hab ich leider nirgendwo was entdecken können, am besten wir warten mal ab, was künftige Versionen bringen...
Wie auch immer. Bis jetzt bin ich mal zufrieden mit den Daten die angezeigt werden können.
Einen extra Spannungssensor für frsky kann man sich auch einfach aus 2 Widerständen (Spannungsteiler) basteln oder sogar fertig für ein paar Euros vom Freizeitbeschäftigungskönig besorgen, aber klar. Wenn eh schon alles an Daten im APM vorhanden ist, wäre es naheliegend sämtliche Informationen auch dort abzugreifen.

Gruß aus Wien,
Christian
 

ninuki

Neuer Benutzer
#14
So wie es aussieht wurde das Frsky-Protokoll schon in der MegapirateNG 2.8.2 implementiert hat das schon wer probiert ob das funktioniert.

lg. Jürgen
 
#15
Hi,

ja, ich hatte gehofft, die Anzahl der Sensorik zu minimieren. Auch, um einfach weniger Kabelsalat zu haben. Meine Fernsteuerung fahre ich mit einem externen Telemetriedisplay. Das Display hat einen festen Spannungsteiler eingestellt. Normalerweise benutze ich den ersten analogen Telemetrieport, um mir die Batteriespannung anzuzeigen. Das geht aber mit dem D4R-II nicht, der zeigt die BEC Spannung an. Gleichzeitig mag ich aber den D4R-II, da er schön klein ist.....

Mit einem FLVS-01 gehts auch nicht, das Ding braucht immer einen Sensorhub. Auch ist mit unklar, on ich das einfach so in Reihe schalten kann. In der Dokumentation des JD-IOBoard steht drin, das sowohl D5 als auch D6 für FRSKY genutzt werden. Ich habe mal versucht, den FLVS-01 an den D6 zu hängen, geht aber auch nicht (im Code habe ich auch nichts gefunden, dass da was eingelesen wird).

Lange Rede wenig Sinn, ich bekomme meine Batteriespannung nicht auf mein Telemtriedisplay. Jetzt habe ich einen D8R-XP aus UK geordert, damit bekomme ich mein PPM und beide analoge Telemetrieports. Wird halt größer.

Ansonsten finde ich die APM/MAVLink - FRSKY Lösung sehr interessant. Als Telemetrielösung ist das wesentlich angenehmer als das 3dr Radio mit Laptop.

Grüße aus Franken
Oliver
 
#17
zur Spannungsmessung hab ich von Jani (Entwickler vom JD-IO Board) folgende Antwort bekommen:

"Christian, MAVLink software will have proper voltage information soon but working with original FrSky display has some limitations. and we are doing our own display for this needs. Display will be a bit bigger than FrSky FLD-02. First prototypes are already done and working but we wait until second generation is ready."

Man wird sehen, ob die Spannung dann in Open9x angezeigt werden kann.
Von Strom-Messdaten hat er hier - vorerst mal - nichts erwähnt.

Gruß aus Wien,
Christian
 
#19
einfach den FTDI des Arduino mit dem Telemetrie-Port des APM verbinden. Tx vom Arduino hab ich weglassen, sonst stört das nur unnötig andere Komponenten (Bluetooth bzw. 3DR Radio) am selben Telemetrie-port...
 

preepe

Erfahrener Benutzer
#20
Am Telemetrie Port habe ich schon das 3dr Sendemodul für Telemetrie zum PC. geht das trz.? kenn mich mit der ftdi geschichte noch nicht so gut aus.
 
FPV1

Banggood

Oben Unten