ExpressLRS

glipski

User
Wäre es möglich, im GPS packet den Wert Entfernung zu übertragen anstatt z.B. den Wert Heading? Ich weiß, dass Heading für FPV genutzt wird, als reiner Flächenflieger fehlt mir irgendwie Entfernung.
 

mha1

User
Entfernung kannst Du mit einem calculated sensor darstellen. EdgeTX rechnet genauso gut wie es das GPS intern macht. Bezugspunkt ist die Position des ersten GPS Fix. Funktioniert bei mir ohne Probleme. Beispiel:

Name "GPdi" ist frei erfunden. Wenn Du 2D Entfernung haben willst, dann Alt sensor freilassen, ansonsten für 3D Entfernung (Schrägentfernung) Deinen Baro altitude Sensor einfügen. Wenn Du die Entfernung auch loggen wilst, nicht vergessen etwas runter scrollen und Logs anschalten.

1713626848279.png


Schaut dann so aus:

1713627741768.png
 
Zuletzt bearbeitet:

glipski

User
Entfernung kannst Du mit einem calculated sensor darstellen. EdgeTX rechnet genauso gut wie es das GPS intern macht. Bezugspunkt ist die Position des ersten GPS Fix. Funktioniert bei mir ohne Probleme. Beispiel:

Name "GPdi" ist frei erfunden. Wenn Du 2D Entfernung haben willst, dann Alt sensor freilassen, ansonsten für 3D Entfernung (Schrägentfernung) Deinen Baro altitude Sensor einfügen. Wenn Du die Entfernung auch loggen wilst, nicht vergessen etwas runter scrollen und Logs anschalten.

Anhang anzeigen 12683336

Schaut dann so aus:

Anhang anzeigen 12683350
Danke, wieder was gelernt :cool:
 

kalle123

User
Das sind aktuell genau vier Pakete, von denen eines nur die VSpd transportiert und von einem anderen Paket, das Vario Paket abgelöst wurde.

Wenn ich dich recht verstehe, also diese hier

CRSF_FRAMETYPE_GPS = 0x02,
CRSF_FRAMETYPE_VARIO = 0x07,
CRSF_FRAMETYPE_BATTERY_SENSOR = 0x08,
CRSF_FRAMETYPE_BARO_ALTITUDE = 0x09,

aus https://github.com/ExpressLRS/ExpressLRS/blob/master/src/lib/CrsfProtocol/crsf_protocol.h

Gruß KH
 

kalle123

User
Das sind aktuell genau vier Pakete, von denen eines nur die VSpd transportiert und von einem anderen Paket, das Vario Paket abgelöst wurde.

Dann noch hier zu. Wann wurde (bei welcher ELRS Version) die Änderung gemacht, wenn du das wissen solltest?

Ich hample ja noch immer mit den fehlenden Baro Werte in Ardupilot rum.

Gruß KH
 

mha1

User
Wenn ich dich recht verstehe, also diese hier

Genau die.

Ich bin nicht gut in Geschichte, aber wir können Source Code und die Historie dazu anschauen. Vor ca. 2 Jahren wurde native baro implementiert.


Das war die Implementierung mit der ELRS Empfänger selbst zu Telemetriesensoren mutierten. Zu Beginn mit externem Drucksensor, später in z.B. RM ER6 und ER8 Empfängern mit direkt verbauten Drucksensoren. Es wurde von Anfang an die ID9 (Baro altitude und Vspd) versendet. ELRS hat nie die ID7 verwendet. Als die native Baro Implementierung in ELRS gemacht wurde gab es die ID9 schon. Es wäre ungeschickt gewesen die ID7, die ja nur Vspd kannte, zu nutzen. Probiere es aus. mit einem ER8(G)V wirst Du ALT und Vspd bekommen.

Wenn Du allerdings einem ELRS Empfänger über die serielle (CRSF) Schnittstelle ein ID7 Paket schickst, wird er das unangesehen weiterrouten. Ältere FCs haben das wahrscheinlich für die schon länger existierenden TBS Crossfire Sender getan. Die sind älter als der Zeitpunkt an dem TBS das CRSF Protokoll um ID9 erweitert hat. Einige der FC Firmwaren haben aber munter weiter ID7 verwendet, genauso einige Sender Firmware Hersteller. Auch Ethos konnte mit ID9 nichts anfangen. Hat Bertrand mit der 1.5.irgendwas geändert. Centerum censo, dass Probleme an der Quelle gelöst werden müssen und nicht irgendwo in der Verarbeitungskette geradegebogen werden, zumal in diesem Fall es ELRS nur schlecht machen könnte. Vspd aus der Telemetrie fischen und zu integrieren würde zu grausamen Altitudedriften führen.

Du suchst immer noch in der falschen Ecke. Es sind die Leute, die FC Firmware machen, die keine ID9 versenden und die Leute die alte Firmware auf ihren Sendern haben oder Sender mit Firmwaren betreiben, die ID9 nicht verstehen. iNav und offensichtlich auch AP versenden schlicht die ID9 nicht, sondern immer noch die alte ID7. iNav hat sogar geschrieben, dass sie ID9 wieder rausgenommen haben, um mit altem Zeug (sie meinen Sender) rückwärtskompatibel zu sein.

ELRS kann da nichts machen. ID7 wird nur durchgeroutet. Um ID7 zu übersetzen und daraus ID9 zu machen, müsste ELRS einen Wert für ALT selbst aus der Vspd errechen. Ist ziemlich unsinnig und wird auch nicht passieren. Du bist wenn Du mit AP zugange bist an der Quelle Deines Problems. Wenn iNav und AP ID9 schicken und die Sender ID9 dekodieren können (EdgeTX kann das, Ethos mittlerweile auch) ist das Problem weg.
 

kalle123

User
Ab ELRS V2.5.0 sind die baro-Sensoren Alt und VSpd korrekt im CRSF drin
Franz, schön für ... ELRS. Bei INAV hab ich ja, nachdem was ich hier gehört habe, Hoffnung, das beide Baro Werte in näherer Zukunft auftauchen. Nur bei AP wurde mir das hier vor 2 Tagen von einem Entwickler dort gesagt

Ich denke, das ist ein spezieller ELRS-Frame, der nicht in der CRSF-Spezifikation enthalten ist – deshalb ist er nicht implementiert. Es wäre ziemlich einfach, aber ziemlich weit unten auf meiner Liste der zu erledigenden Dinge.

und hinzu kommt, das hier hatte ich unter AP anfangs des Jahres

Screenshot_2024-04-20_20-24-31.jpg


und ein paar Tage später waren die beiden Baro Werte weg, dafür dann erschienen ROLL, PITCH und YAW.

Screenshot_2024-04-20_20-25-45.jpg


NUR, ich weiß nicht, was da zwischen den beiden screenshots von mir geändert wurde. Hab ich meine ELRS Teile mit neuer FW versorgt? Könnte das deine Ursache sein.

DAS SOLL KEINE VERDÄCHTIGUNG GEGEN ELRS SEIN! Hab deswegen ja schon einen auf den Deckel bekommen. ;)

Oh. sehe gerade, auf #1406 steht schon eine Antwort, die schaue ich mir jetzt erstmal in Ruhe an.

Grüße und nen schönen Abend noch - KH
 

mha1

User
Du hast AP mit einer neuen FW Version versehen, oder?

Roll, Pitch und Yaw sind in einem eigenen Paket, das für uns wenig Relevanz hat. Damit teilen die FCs die Lagewinkel der x-, y- und z-Achse der Plattform mit. Z.B für eine künstlichen Horizont im OSD. Das Versende des Pakets ID30 (glaube ich) hat AP wohl in dem Zeitraum aufgenommen.
 

Meier111

User
Wenn ein neues Paket mit z.B. Drehzahl und Temperatur definiert wird, kann ich das ohne Schwierigkeiten direkt umsetzen.
Ich wollte für mein neues Projekt (kleiner Benziner) unbedingt Drehzahl und Temperatur haben.
Mit oXs_on_RP2040 ging das nicht. (Sonst ist oXs_on_RP2040 sehr gut.)
Also was mit Hilfe von "CapnBry" gebastelt. https://github.com/CapnBry/CRServoF/

Innerhalb des Programms wird bisschen geschummelt.
Der STM32 misst mir die Drehzahl und Temperatur, diese Werte werden in dem CRSF Protokoll an die Stelle von "Curr" und "Capa" verschickt.
RxBt​
=​
Volt1​
Curr​
=​
Tmpr​
Capa​
=​
RPM​
Bat%​
=​
Volt2​

Und im Sender wird das empfangene umdeklariert.
schummel1.png


Sieht dann so aus:
ETRS_telemtr1.jpg


Diese Methode ist zwar etwas umständlich, aber für verspielte (wie mich) eine schöne Denkaufgabe.
Wie ich schon mal geschrieben habe, bin weder Programmierer noch Informatiker.
Hab mich im Prinzip nur an dem frei verfügbaren Source-Code (CapnBry) bedient.

Der X8R ist hier nur zum Größenvergleich drauf:
myELRS_PWM_dekoder_vs_X8R.jpg

8 * PWM, 1 * Schaltkanal (Zündbox ein/aus), und die vier Telemetrie-Eingänge (2 * Spannung, 1 * RPM, 1 * Temperatur).
RX ist ein RP3 von Radiomaster.
 

mha1

User
Super Projekt. Verallgemeinern kann man das so aber nicht. Sender und Empfänger der Daten müssen halt beide wissen wie das zu interpretieren ist. Ist leider keine mehrheitstaugliche Lösung. Schwer jedem zu erklären, der eine braucht unbedingt Capa und will dafür Alt opfern, Du verstehst was ich meine. Und mehr Sensoren werden es dadurch auch nicht.
 
Zuletzt bearbeitet:
Wer das testen möchte - Feedback willkommen - der kann sich die 3.4rc1 basierte Firmware wie gewohnt mit dem ExpressLRS Configurator selbst bauen. Reiter GIT COMMIT auswählen und git commit hash ab51197bd34fce317e1de67cd2e92ca443536627 mit copy/paste eingeben. Den Rest an Daten wie sonst auch eintippen. Fliegen wie immer erst nach sehr ausgiebigem Testen und Vertrauensaufbau.

.... hab ich gemacht als bisher stiller Mitleser und hier mein Feedback.
Absoluter Respekt und ein grosses Lob für diese Leistungen des ganzen Teams, läuft:

Radiomaster TX Pocket, ER8GV RX mit dem fertigen Kabel aus dem RX-Lieferumfang
und das SM-Modellbau Unisens-E im Hott-ESC-Mode.

:)

Gruss Dietmar

P.S. Am Pocketsender ist ein zweites HF-Modul eingesetzt.


ExpressLRS Unisense Hott Mode klein.jpg
 

mha1

User
.... hab ich gemacht als bisher stiller Mitleser und hier mein Feedback.
Absoluter Respekt und ein grosses Lob für diese Leistungen des ganzen Teams, läuft:

Radiomaster TX Pocket, ER8GV RX mit dem fertigen Kabel aus dem RX-Lieferumfang
und das SM-Modellbau Unisens-E im Hott-ESC-Mode.

:)

Gruss Dietmar

P.S. Am Pocketsender ist ein zweites HF-Modul eingesetzt.

Vielen Dank für das Feedback. Aber Vorsicht: ich habe das hier schon geschrieben. Für den 3.4-rc2 musste ich nach einem Review den Pin nochmal ändern. Wenn Du also 3.4-rc2 und spätere Versionen flasht, musst Du das Kabel ändern. Verdrahtet wird final mit TX, also das anderen mitgelieferte Kabel nehmen (das 4-polige) und GND/VCC/TX mit einer Servobuchse GND/VCC/Signal verbinden.

Sorry, aber TX zu nutzen war Projektwunsch
 

kalle123

User
@mha1

Ich will mich noch mal kurz melden. Habe mir das, was du zu meiner 'Sache' hier gesagt hast, durch den Kopf gehen lassen. Und ich weiß, ich nerve damit wohl etwas. Sorry! Aber ich hab hier auf meiner Seite ne ganze Masse probiert, um dahinter zu kommen, warum der Sender hier die beiden Baro Werte angezeigt hat, obwohl DAS ja eigentlich nicht passieren sollte/konnte.

Div. alte FW Versionen AP geflashed. Jetzt gerade bin ich beim ELRS TX Modul und beim RX Empfänger auf die 3.0.0 zurück. Hilft alles nix. Es ist zum Mäusemelken!

Dazu kommen noch die Punkte, dass ich mich recht wohl bei AP fühle, ich aber meine Schweissgut Nuris NICHT ohne Baro Werte akustisch auf dem Sender fliegen werde und die FCs alle! relevanten Telemetriedaten produzieren incl. Baro.

Aber mal eine Frage an dich, auf die ich bisher keine Antwort gefunden habe. Könnte man z.B. einen Matek PWM Empfänger mit Vario an einen FC über RX/TX anschliessen oder ist das eine reine serielle Schnittstelle zum upload von Firmware?

Dank dir und Gruß - KH
 

mha1

User
Könnte man z.B. einen Matek PWM Empfänger mit Vario an einen FC über RX/TX anschliessen oder ist das eine reine serielle Schnittstelle zum upload von Firmware?

Welchen Matek PWM Empfänger meinst Du? Den Matek ELRS 2.4G PWM Vario RX? Den kannst Du ziemlich sicher nicht an eine FC anschließen. Der Matek PWM mit Vario ist aus dem Matek PWM Converter mit Vario und einem separaten ELRS Empfänger zusammengebastelt. Der ELRS Empfänger sitzt Huckepack auf dem Converterboard und ist mit dem Converterboard über die CRSF Schnittstelle verbunden. Die CRSF Schnittstelle ist deshalb nicht weiter verfügbar. Aus Sicht des ELRS Empfängers ist da schon eine FC (das Converterboard) angeschlossen. Wenn auf dem Converterboard noch eine serielle Schnittstelle ist, dann sicher nur zum Flashen des Converterboards.

Die Radiomaster ER6 und ER8 Varioempfänger haben das alles auf einer Platine, die CRSF Schnittstelle mit der man den Empfänger an eine FC anbinden kann ist herausgeführt. So einen müsstest Du an eine FC anschließen können. Damit bekommst Du Vspd und ALT, aber nur wenn die FC selbst kein Baropakete (ID7 in diesem Fall) schickt. Der ELRS Empfänger priorisiert externe Barodaten vor den internen. Sobald Du ihne extern mit ID7 oder ID9 fütterst, werden die internen Barodaten nicht verwendet. Um das zu umgehen gibt es zwei Möglichkeiten. Entweder Du schaffst es die FC dazu zu bewegen selbst keine Barodaten zu schicken (vielleicht per Konfiguration - ob das möglich ist musst Du selbst rausfinden) oder Du änderst den ELRS Barocode so, dass die Priorisierung der externen Daten entfällt.

Kannst Du Dich auf das verlassen was ich sage? Eher nicht, da ich werde die Matek Empfänger, noch AP oder iNav im Detail kenne.
 
Aber ich hab hier auf meiner Seite ne ganze Masse probiert, um dahinter zu kommen, warum der Sender hier die beiden Baro Werte angezeigt hat, obwohl DAS ja eigentlich nicht passieren sollte/konnte.
Hattest du da vielleicht yaapu laufen? Dann bekommst du die Baro Werte in der Telemetrie.

Mit ELRS 3.4 lassen sich Sbus und HoTT (noch) nicht gleichzeitig nutzen, oder? (Die Idee wäre dann, AP über das HoTT-Telemetrie Protokoll anzubinden)
 

kalle123

User
Die CRSF Schnittstelle ist deshalb nicht weiter verfügbar. Aus Sicht des ELRS Empfängers ist da schon eine FC (das Converterboard) angeschlossen.
Klare Aussage! Dank dir.
Die Radiomaster ER6 und ER8 Varioempfänger
Und das ist also ein sehr ungewisses Terrain ...

OK, no chance!

Aber was mich am meisten bei der Sache piesackt, ich hab 1x 'Alt' und 'VSpd' als ausgedruckten screenshot von der Sendertelemetrie. Wenn ich das ja nur mal flüchtig so aus dem Augenwinkel gesehen hätte :eek:

Gruß KH
 

kalle123

User
Hattest du da vielleicht yaapu laufen? Dann bekommst du die Baro Werte in der Telemetrie.
yaapu ist da so eine Sache. Von Alex hab ich auf meine Anfrage dazu folgende Antwort erhalten

yaapu does not use sensors but rather injects fake sensors into edgetx/opentx, what you see is expected beahviour.

Du hast die Baro Werte dann nicht wie reale Werte auf dem Sender, sodass du 'Alt' bzw. 'VSpd' z.B. auf einen Schalter legen kannst und einen Audioausgabe generieren kannst. So interpretiere ich zumindest seine Aussage ....

Meine mich zu erinnern, dass war zu den Anfängen von yaapu mal etwas anders.

cu KH
 
Zuletzt bearbeitet:
Ardupilot mit ExpressLRS sendet überhaupt kein VSpd. Weder mit ID7 noch mit ID9. Die einzige Möglichkeit ist derzeit die Verwendung des Yaapu-Script und einschalten der Passthrough Telemetrie. Dann ist VSpd verfügbar, das Yaapu-Script muss dafür halt laufen, damit die Passthrough Telemetrie "entpackt" wird.

Bei Ardupilot mit FrSky Empfänger bzw. S.Port sieht es etwas anders aus. VSpd kommt dort mit SERIALx_PROTOCOL = 4, weil ich die Umsetzung damals angestoßen hatte, weil halt nicht jeder das Yaapu-Script nutzen wollte. Man kann aber auch mit SERIALx_PROTOCOL = 10 die Passthrough Telemetrie mit dem Yaapu-Script nutzen, VSpd ist dann auch verfügbar.
 
Ansicht hell / dunkel umschalten
Oben Unten