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

hanswerner1

Erfahrener Benutzer
Ich habe die Version s-c-l-v-rc-opentx2.1 von Clooney Script auf der Taranis mit FW 2.1.3 hab auch alle Sensoren per Hand angelegt wie in der FAQ, klappt auch soweit. Aber ich bekomme den Flugmodus nicht angezeigt. scheint als wenn auf Fuel nichts ankommt.
 

hanswerner1

Erfahrener Benutzer
Hab das Problem gefunden, bei Fuel muss bei den Sensoren die SubID eine 6 eingetragen werden. Im Wiki auf der Cloneey Seite steht aber ein 8. Jetzt wird der Flugmodus angezeigt.
 
Hallo Clooney

Wie kann ich testen, warum bei mir nichts angezeigt wird. Ich hatte gestern die OTX 2.1.3 drauf und deine letzte Version. Es wurde nichts angezeigt. Die Höhe hat sich gelegentlich mal geändert.
Ich habe jetzt wieder die OTX 2.0.17 aufgespielt und die letzte Telemetrie Version vor 2.1 (branch "s-c-l-v-rc").
Heading und die Compass Anzeige funktionieren anders nichts!!!
Ich habe das Widerstandsnetzwerk für einen 3S Lipo eingebaut und abgeglichen.
In der 2.1 er Version hatte ich auch die einzelnen Spannungen, jetzt habe ich gar keine Spannungsanzeige.


Taranis X9D +
FW 2.0.17 non-eu
X8R non-eu
FrSky S-Bus to CPPM Adapter
APM 2.6 AC 3.2.1 (modifiziert, die UART0 Signale sind als Stifte herausgeführt, nur Tx abgegriffen)
APM Power Modul für Spannung- und Strommessung
Teensy 3.2

Hast du einen Tip für mich?
Habe ich in der Haupt INO etwas falsches freigeschaltet (Addons)?
 

Clooney

Neuer Benutzer
Hab das Problem gefunden, bei Fuel muss bei den Sensoren die SubID eine 6 eingetragen werden. Im Wiki auf der Cloneey Seite steht aber ein 8. Jetzt wird der Flugmodus angezeigt.
Hallo,
die ID 6 ist falsch. Ich habe die ID händisch geändert, nach automatischem suchen wird dann die ID 8 wieder hinzugefügt.
Also laut meiner Fernsteuerung ist Fuel (für den Flightmode) SubID 8 mit ID 0600
SubID 6 sind die Sensoren AccX, AccY, AccZ

Im -next branch gibt es noch einen Fuel Sensor, der hat aber die SubID 9 und wird für was ganz anderes verwendet.
 

Clooney

Neuer Benutzer
Hallo Clooney

Wie kann ich testen, warum bei mir nichts angezeigt wird. Ich hatte gestern die OTX 2.1.3 drauf und deine letzte Version. Es wurde nichts angezeigt. Die Höhe hat sich gelegentlich mal geändert.
Hast Du die Sensoren passend konfiguriert?
Automatisches suchen findet zwar die Sensoren, aber die Einstellungen passen unter umständen nicht.
Wenn das telem1 script garnichts anzeigt, mach mal versuchsweise die Mixer Scripte raus (Offset.lua & cellinfo.lua).
Danach die Taranis mal aus und wieder einschalten.

Ich habe jetzt wieder die OTX 2.0.17 aufgespielt und die letzte Telemetrie Version vor 2.1 (branch "s-c-l-v-rc").
Heading und die Compass Anzeige funktionieren anders nichts!!!
Heading wird nur übertragen wenn Du einen 3D Fix.


Ich habe das Widerstandsnetzwerk für einen 3S Lipo eingebaut und abgeglichen.
In der 2.1 er Version hatte ich auch die einzelnen Spannungen, jetzt habe ich gar keine Spannungsanzeige.
Hast du einen Tip für mich?
Habe ich in der Haupt INO etwas falsches freigeschaltet (Addons)?
für die OpenTX 2.0.x Version:
Zeile 92 & 93 aktivieren
PHP:
#define USE_SINGLE_CELL_MONITOR
#define USE_AP_VOLTAGE_BATTERY_FROM_SINGLE_CELL_MONITOR // use this only with enabled USE_SINGLE_CELL_MONITOR
und die Zeile 96 anpassen
PHP:
#define MAXCELLS 6
 
Hast Du die Sensoren passend konfiguriert?
Automatisches suchen findet zwar die Sensoren, aber die Einstellungen passen unter umständen nicht.
Wenn das telem1 script garnichts anzeigt, mach mal versuchsweise die Mixer Scripte raus (Offset.lua & cellinfo.lua).
Danach die Taranis mal aus und wieder einschalten.
Ich hatte alle Sensoren mit den Screenshots in der WIKI verglichen und die Berechneten ergänzt. Erst kam kurz das Tele1bild und dann war das Display leer. Werde beim nächsten Versuch die Scripte mal raus machen.
Die Flugmodes und diverse andere Meldungen wurden angesagt. Spannung Strom usw. war bereits in der Sensorliste ständig auf null. Wie kann ich prüfen, was vom APM im Teensy ankommt?

Jetzt zur 2.0.17er Version: bekomme ich da keine Einzelzellenanzeige, das hat mir bei der 2.1er Version gefallen, dass die einzeln verfügbar sind. Wie komme ich an das Telemetriebild, wo ganz rechts die einzelnen Spannungen sind, oder auf welchen Variablen liegen die.

Achso die Zeilen 92,93 und 96 hatte ich so bzW. angepasst.

Ich habe noch einen Nitrohelikopter, wo ich die alten Wolke Programme so abgeändert hatte, das ich eine echte Drehzahlmessung via Hallsensor hatte. RPM ist tatsächlich Rotordrehzahl.
Wenn ich auf die neue 2.1er Version wechsle, muss ich das dort auch wieder einpflegen.

Die APM 2.n AC Version wird bei 3.2.1 stehen bleiben. Alle neuen Version laufen nur noch auf PX4 oder Ähnlichem.
 
Zuletzt bearbeitet:

Clooney

Neuer Benutzer
Wie kann ich prüfen, was vom APM im Teensy ankommt?
Teensy am Rechner anschließen, die DEBUG_APM_ Einträge aktivieren, auf deinen Teensy hochladen und per Seriellem Monitor prüfen, was ausgespuckt wird.
Tipp: Am besten einzeln aktivieren und überprüfen.

Jetzt zur 2.0.17er Version: bekomme ich da keine Einzelzellenanzeige, das hat mir bei der 2.1er Version gefallen, dass die einzeln verfügbar sind. Wie komme ich an das Telemetriebild, wo ganz rechts die einzelnen Spannungen sind, oder auf welchen Variablen liegen die.
Meinst Du das: https://raw.githubusercontent.com/wolkstein/MavLink_FrSkySPort/s-c-l-v-rc/CellsScreen.jpg
Das weiß ich leider nicht, war aber nicht aus dem Script, das kommt von der Taranis selbst.

Ich habe noch einen Nitrohelikopter, wo ich die alten Wolke Programme so abgeändert hatte, das ich eine echte Drehzahlmessung via Hallsensor hatte. RPM ist tatsächlich Rotordrehzahl.
Wenn ich auf die neue 2.1er Version wechsle, muss ich das dort auch wieder einpflegen.
Kopp, musst Du selbst einpflegen.
 
Erstmal Danke für die Antwort.

Werde dann mal Debuggen.

Ja das Bild meinte ich.

Für meinen Heli brauch ich nur ein paar Zeilen im Hauptprogramm, müßte dann aber die "RPM" als RPM nutzen. Quasi als währe ein original Hardware Sensor dran. Habe nur bedenken, wenn RPM eine andere Bedeutung bekommt.
-------------------------------------------------------------------
Wegen der Einzelzellenanzeige bin ich wieder auf die 2.1.3 gewechselt.
Ich habe vorab alle Sensoren im Companion angelegt. Empfänger eingeschaltet. Model übertragen, Sender auf Normalbetrieb und tada alle Sensoren vorhanden. Werde mich jetz mal dieser Version widmen und testen warum so einiges nicht geht.


Happy Halloween
 
Zuletzt bearbeitet:
Hallo und schönen Sonntag.


Es geht was.
Mußte in der MavLink_FrSkySPort.ino noch die AC Version anpassen, jetzt siehts ganz gut aus.
Beim APM ist für Multicopter bei AC 3.2.1 das Ende erreicht, kein Speicher mehr.

Werde aber noch weiter testen, mein power modul gibt noch keinen Strom raus. Wird aber auch im MissionPlanner als "0" angezeigt, vielleicht ist das Ding ja kaputt.

Als nächstes steht dann meine RPM = Rotordrehzahl Ergänzung an. Kann man im Teensy auch einen "neuen" Sensor deklarieren und diesen dann mit eigenen Werten beschreiben, oder läßt das FrSky Protokoll das nicht zu?
 
Hier mein Code für eine echte RPM Messung es gibt ja auch noch traditional Helikopter Flieger.

// For Teensy 3.1/3.2
// read RPM with negativ output of hall sensor and pullup resistor (to plus) on input 3 ==> interrupt (1)

// read RPM and calculate average every five readings.
const int numreadings = 5;
int readings[numreadings];
unsigned long average = 0;
int count = 0;
unsigned long total;

volatile int rpmcount = 0;
unsigned long rpma = 0;
unsigned long lastmillis = 0;

void setup(){
Serial.begin(9600);
pinMode(3, INPUT);
attachInterrupt(3, rpm_pin, FALLING);
}

void loop(){
if (millis() - lastmillis >= 1000){ //Update every one second, this will be equal to reading frecuency (Hz).
detachInterrupt(3); //Disable interrupt 1 when calculating
total = 0;
readings[count] = rpmcount * 60;
/* Convert frecuency to RPM, note: this works for one interruption per full rotation.
For two interrups per full rotation use rpmcount * 30.
*/
for (int x=0; x<=4; x++){
total = total + readings[x];
}
average = total / numreadings;
rpma = average;
rpmcount = 0; // Restart the RPM counter
count++;
if(count >= numreadings){
count=0;
}

if (millis() > 11000){ // wait for RPMs average to get stable
}

lastmillis = millis(); // Update lastmillis
attachInterrupt(3, rpm_pin, FALLING); //enable interrupt
}
Serial.print("RPM: ");
Serial.println(rpma);
}

void rpm_pin(){ // this code will be executed every time the interrupt 1 (pin3) gets low.
rpmcount++;
}
Ich muss das dann mal in das aktuelle Programm einpflegen.
 

hanswerner1

Erfahrener Benutzer
Also laut meiner Fernsteuerung ist Fuel (für den Flightmode) SubID 8 mit ID 0600
SubID 6 sind die Sensoren AccX, AccY, AccZ

Im -next branch gibt es noch einen Fuel Sensor, der hat aber die SubID 9 und wird für was ganz anderes verwendet.

Ich habs gerade nochmal getestet. Wenn ich SubID 8 einstelle, kommen keine Daten. Bei 6 kommen Daten.
Bei AccX, AccY, AccZ hab ich auch 6. Hab die Sensoren dann nochmal neu suchen lassen, bei Fuel wird die SubId 6 gefunden. Die Sub ID kommt doch von Teensy oder ? Hab da noch die Version von Wolke drauf. Da hat sich aber doch nichts geändert denke ich.

Hier mal meine Sensordaten:
sensor.JPG
 

Clooney

Neuer Benutzer
MavLink &amp; Frsky Telemetrie (für APM &amp; MPNG)

Ok, da liegt der Fuchs begraben.
Jo, könnte beim ganz alt Code noch so sein.
Habe ich nie mit openTX 2.1.x getestet.
Und doch es hat sich recht viel getan im Code. Komplett überarbeitet und eine neue Library wird verwendet.
 
Hach ja .... wann sieht FrSky es eindlich ein ???

In keinem Multirotor-Projekt wird jemals "S.PORT telemetry" direkt benutzt.

Einfach mal MAVLINK in die FrSky Empfänger implementieren, dann hört dieser CANCER mal auf.

Als PIX user ist das hier:


http://copter.ardupilot.com/wiki/common-frsky-telemetry/

auch keine Lösung ... minimOSD und 433MHz-Telemetry laufen nicht so gerne an einer Serial
 
Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten