oXs-on-RP2040

doloebig

User
es gibt mittlerweile eine Version 1.1.9
Es sind viele Fehler behoben.
Ich habe heute meine flugfähigen Sensor zusammen gebaut
Akkuspannung über Spannungsteiler
Strom über Hallsensor ACS713/30
2 Temperaturen NTC 100k mit 100k pulldown
GPS BN220
Drehzahl über ein Hobbywing Phasensensor

Version = 1.1.9
Function Pin Change entering XXX=yyy (yyy=255 to disable)
Primary channels input = 255 (PRI = 5, 9, 21, 25)
Secondary channels input = 255 (SEC = 1, 13, 17, 29)
Telemetry . . . . . . . . = 7 (TLM = 0, 1, 2, ..., 29)
GPS Rx . . . . . . . . . = 3 (GPS_RX = 0, 1, 2, ..., 29)
GPS Tx . . . . . . . . . = 2 (GPS_TX = 0, 1, 2, ..., 29)
Sbus OUT . . . . . . . . = 255 (SBUS_OUT= 0, 1, 2, ..., 29)
RPM . . . . . . . . . . = 6 (RPM = 0, 1, 2, ..., 29)
SDA (I2C sensors) . . . . = 255 (SDA = 2, 6, 10, 14, 18, 22, 26)
SCL (I2C sensors) . . . . = 255 (SCL = 3, 7, 11, 15, 19, 23, 27)
PWM Channels 1, 2, 3 ,4 = 255 255 255 255 (C1 / C16= 0, 1, 2, ..., 15)
PWM Channels 5, 6, 7 ,8 = 255 255 255 255
PWM Channels 9,10,11,12 = 255 255 255 255
PWM Channels 13,14,15,16 = 255 255 255 255
Voltage 1, 2, 3, 4 = 26 27 28 29 (V1 / V4 = 26, 27, 28, 29)

Protocol is Sport (Frsky)
CRSF baudrate = 420000
Voltage parameters:
Scales : 5.700000 , 10.000000 , 0.100000 , 0.100000
Offsets: 0.000000 , 5000.000000 , 0.000000 , 0.000000
Temperature sensors are connected on V3 and V4
RPM multiplier = 1.000000
Baro sensor is not detected
Acc/Gyro is not detected
First analog to digital sensor is not detected
Second analog to digital sensor is not detected
Foreseen GPS type is Ublox :GPS is detected but has not (yet) a fix
Failsafe type is HOLD

Config parameters are OK

jetzt warte ich auf Flugwetter, mal sehen wie die 1. Logs aussehen

sehr lohnenswertes Projekt; vielen dank an Mstrens

Doro
 
Wo hast Du die her? Wenn ich von der Github-Seite per Code-Button oder aus dem Unterverzeichnis uf2 hole, habe ich jeweils die oben genannte V 1.0.3. Selbst compiliert?

Version = 1.0.3 Function Pin Change entering XXX=yyy (yyy=255 to disable) Primary channels input = 5 (PRI = 5, 9, 21, 25) Secondary channels input = 255 (SEC = 1, 13, 17, 29) Telemetry . . . . . . . . = 29 (TLM = 0, 1, 2, ..., 29) GPS Rx . . . . . . . . . = 255 (GPS_RX = 0, 1, 2, ..., 29) GPS Tx . . . . . . . . . = 255 (GPS_TX = 0, 1, 2, ..., 29) Sbus OUT . . . . . . . . = 255 (SBUS_OUT= 0, 1, 2, ..., 29) RPM . . . . . . . . . . = 255 (RPM = 0, 1, 2, ..., 29) SDA (I2C sensors) . . . . = 6 (SDA = 2, 6, 10, 14, 18, 22, 26) SCL (I2C sensors) . . . . = 7 (SCL = 3, 7, 11, 15, 19, 23, 27) PWM Channels 1, 2, 3 ,4 = 255 255 255 255 (C1 / C16= 0, 1, 2, ..., 15) PWM Channels 5, 6, 7 ,8 = 255 255 255 255 PWM Channels 9,10,11,12 = 255 255 255 255 PWM Channels 13,14,15,16 = 255 255 255 255 Voltage 1, 2, 3, 4 = 255 255 255 255 (V1 / V4 = 26, 27, 28, 29) Protocol is Sport (Frsky) CRSF baudrate = 420000 Voltage parameters: Scales : 1.000000 , 1.000000 , 1.000000 , 1.000000 Offsets: 0.000000 , 0.000000 , 0.000000 , 0.000000 No temperature sensors are connected on V3 and V4 RPM multiplier = 1.000000 Baro sensor is detected using SPL06
 

doloebig

User
Hallo Volker
unter "test"
1676755298887.png



die Versionen haben sich in den letzten Tage überschlagen. Da war nicht leicht zu folgen.
Mit der 1.1.9 hatte Torsten getestet und keine Fehler gefunden

Grüsse
Doro
 

doloebig

User
Solltet vielleicht dazu sagen, unter welchen Protokollen getestet wurde. Zu allermeist wohl SPORT, aber wie sieht es mit HOTT, Jeti, ELRS und MPX aus? Das Torsten fleissig HOTT testet ok. Ich hab bei ELRS und MPX noch etwas offen und Jeti??

Gruß KH
Ja, sorry. Ich hatte nur den SPort beobachtet, mir ging das teilweise zu wild zu. Martin ist für mich zu schnell ;)

Doro
 

kalle123

User
@doro

Macht doch nix ;-)

Nur die meisten schauen halt nur auf die Sachen, die den jeweiligen interessieren. Mal schauen, ob jemand mit die I-Bus Sache durch checked, wenn es denn mal kommen sollte ...

Reine Telemetrie wie bei SPort ist ja eigentlich nicht so kritisch, aber ELRS, wo du die PWMs noch über den RP2040 hast, das ist schon ne ganz andere Hausnummer!

LG - KH
 
Ein kleines Wochen-Fazit zum oXs_RP2040, oder der längste Issue Post auf GitHub.
Ab der oXs_RP2040 Pre-Version 1.1.7 gab es Probleme mit dem neuen ADS1115 Feature.
Es ist halt eine komplett neue Umgebung für oXs auf einem RP2040, und alle wünschen sich die bekannten Features, und noch mehr, vom älteren openXsensor. Erinnert mich an eine "EIERLEGENDEWOLLMILCHSAU"
Ich denke, den Teil hat Michel bis hierhin sehr gut hinbekommen und es dürfte in Zukunft wieder etwas ruhiger, bei der Veröffentlichung von Test-Versionen zugehen.
Ich habe versucht, mit ausführlichen Tests aller implementierten Funktionen des S.PORT und HOTT Protokolls, meine Erkenntnisse weiterzugeben, und Michel hat die meisten Programmfehler beheben können. Es sind aber noch immer welche vorhanden!!!
Es ist ja nicht nur der oXs Anteil, welcher die meiste Zeit mit Testen verschlingt, auch PlatformIO hat mir und Michel einigemale Probleme bereitet, welche aber erst nach mehrmaligen Kompilieren (10-20mal) aufgetreten sind. Warum auch immer?
Ich für meinen Teil bin mit der jetzigen Ausbaustufe des oXs zufrieden, und werde weiter das S.PORT und HOTT Protokoll testen.
Bei Gebrauch der TEST-Version 1.1.10 mit angeschlossenem ADS1115 ist "Vorsicht" mit den Einstellungen ADS_RATE (max.5mS) und ADS_AVERAGING (max.10-20) in der config.h bei max.8 Messmöglichkeiten geboten. Eine erhöhte Einstellung der genannten Parameter führt zu "Sensor Lost".
Ich verwende den oXs_RP2040 im S.PORT Protokoll als SBUS-Decoder und -Expander 16CH mit mittlerweile 29 Telemetrie-Sensoren, die alleine vom oXs geliefert werden, plus die 8 Sensoren vom Empfänger. Die FrSky X20S mit ETHOS 1.4.7 ist aber auch einfach auf oXs einzurichten.
Viele Grüße an alle,
Torsten
 

doloebig

User
Danke Torsten für deine Tests und die Erklärung zum Stand der Dinge.

Ich kann sagen das, für meine Auslegung, die 1.1.10 ohne Fehler ist. Meine Auslegung hab ich oben beschrieben. Protokoll ist SPort.
Als nächstes werde ich noch einen für Frsky Protololl aber mit einem 100A Stromsensor bauen. Weiterhin ein paar nur mit GPS Sensor als Erweitung für 2 Flieger die Unisens haben. Ich hoffe das Michel das IBus Protokoll noch einbaut.
So schaut das ganze aus:
1676803852559.png


Grüsse und schönen Sonntag
Doro
 

kalle123

User
@doro

Gefällt mir!

Ich hab da ein paar Fragen/Anmerkungen.

Zum ACS713. Du hast den Chip hinten auf der Lochraster drauf. Der RP2040 will ja keine 5V und hat eine Messrange von 0.5 ... 4.5V, du versorgst den mit 5V, setzt aber noch einen Spannungsteiler zwischen ACS713 und RP2040?!

Ich setze den ACS gerne nach vorne um die Leistungskabellänge kurz zu halten wie hier in dem Bild.

Bildschirmfoto_2023-02-19_14-19-59.png

Auf den 4 adrigen Flachbandkabel sind dann 5V, GND, Lipo Spannung und Stromsignal vom ACS.

Du nimmst wohl ganz gerne die Zwischenblocks wie bei den NTC's. Heißkleber oder Epoxy? Nehme solche Dinger wie hier auf Demoboards, darum sind da die Lötungen nicht gesichert.

Bildschirmfoto_2023-02-19_14-20-56.png

Bildschirmfoto_2023-02-19_14-21-27.png

Überlege auch schon, mich an so kleinen Zwischenplatine zum RP2040, wie du sie verwendest, zu versuchen.

Aber dann mit ELRS, ein paar Servokanalanschlüssen, Vario (SPL06) mit drauf, GPS Anschluss und Eingang Lipo Spannung und Strom und 2 Empfängern. Platine dann von JLBPCB. Hab mir vor 2 Wochen eine Heißluftstation geholt und die ersten Versuche (SPL06 auf 10.5 x11.5 shield) waren sehr ermutigend. Und ich denke, man kann das auf der Baugröße eines RP2040 unterbringen. Leider sehe ich im Bereich ELRS ausser dem Bisschen, was Matek da hat, nix mit oXs_on_RP2040 vergleichbar.

Grüße - KH ;-)
 

doloebig

User
@doro

Gefällt mir!

Ich hab da ein paar Fragen/Anmerkungen.

Zum ACS713. Du hast den Chip hinten auf der Lochraster drauf. Der RP2040 will ja keine 5V und hat eine Messrange von 0.5 ... 4.5V, du versorgst den mit 5V, setzt aber noch einen Spannungsteiler zwischen ACS713 und RP2040?!
der Sensor ist für einen Graupner Amateur vorgesehen, der Antrieb nimmt mit rappelvoller Batterie 17-18A auf, das geht dann bei 133mV ohne Spannungsteiler. Aber klar, sauber ist das nicht.
Ich hatte eine Platine mit einem ACS712 gehabt. Da hab das IC getauscht.
Du nimmst wohl ganz gerne die Zwischenblocks wie bei den NTC's. Heißkleber oder Epoxy? Nehme solche Dinger wie hier auf Demoboards, darum sind da die Lötungen nicht gesichert.
Naja, gerne.... ich hatte gerade nix anderes.... ;) in den Fall ist es Heisskleber, der geht mit Alkohol wenigstens wieder ab.
Überlege auch schon, mich an so kleinen Zwischenplatine zum RP2040, wie du sie verwendest, zu versuchen.
ja, das sind die Pulldowns für die NTCs und der Spannungteiler für Spannung drauf weiterhin 5V- und Masse-verteiler. Ich mag das SMD Gefummel nicht (mehr); seh ich auch nicht mehr ;)
 

Oxymoron

User
…aber wie sieht es mit HOTT, Jeti, ELRS und MPX aus?
Den alten OpenXsensor auf Arduino Basis hatte ich bereits in unterschiedlichsten Konfigurationen gebastelt - nun werde ich es mal mit dem Waveshare RP2040-Zero auf Raspberry Pi Basis probieren und mit meiner Jeti testen. Bin aufs Resultat gespannt…
 

onki

User
Hallo,

hab die aktuelle Testversion nochmal mit Jeti (REX7) getestet (MS6511, V1 und GPS).
Tut alles wie es soll nur halt ohne Strommessung, weil offenbar nur V1 unterstützt wird.
Ist etwas blöd, weil ich eigentlich immer die APM 2.5 Sensoren nutze um Spannung und Strom zu haben.

Ist der Offset-Wert der Rohwert oder wird der nach der Berechnung abgezogen?

Gruß
Onki
 
Zuletzt bearbeitet:

kalle123

User
Den alten OpenXsensor auf Arduino Basis hatte ich bereits in unterschiedlichsten Konfigurationen gebastelt - nun werde ich es mal mit dem Waveshare RP2040-Zero auf Raspberry Pi Basis probieren und mit meiner Jeti testen. Bin aufs Resultat gespannt…

Testen in der jetzigen Phase ist wichtig. Ich kümmere mich etwas um ELRS (Interesse) und MPX (hatte ja selbst MPX in den Raum geworfen ;)). Naja, von den z.Z. 43 issues stammen 'unbescheidene' :o 17 von mir und glaube, wir konnten da schon Einiges klären. Nur, das Hauptinteresse liegt wohl bei SPORT und die Tests dort macht dankenswerterweise Torsten. Bei RCG hat mir bei ELRS der Kollege aus Portugal geholfen, der 1 .. 2 mal Fehler bestätigen konnte und bei MPX war Pierre ab und zu hilfreich. Es ist einfacher, wenn Dritte eine Beobachtung bestätigen könne und du gehst damit in github rein.

Also meine Bitte, wenn du was findest, mach nen issue in github auf. Du bist da in direktem Kontakt mit dem Entwickler und das ist einfach ne tolle Möglichkeit, das Projekt weiter zu bringen. Muss ja nicht direkt so ein Riesending werden wie der ADS issue von Torsten :D

cu KH
 
Zuletzt bearbeitet:
Hallo,

hab die aktuelle Testversion nochmal mit Jeti (REX7) getestet (MS6511, V1 und GPS).
Tut alles wie es soll nur halt ohne Strommessung, weil offenbar nur V1 unterstützt wird.
Ist etwas blöd, weil ich eigentlich immer die APM 2.5 Sensoren nutze um Spannung und Strom zu haben.

Ist der Offset-Wert der Rohwert oder wird der nach der Berechnung abgezogen?

Gruß
Onki
Hallo Onki,
So wie ich das Script interpretiere wird OFFSET nach der mVolt Summenberechnung abgezogen und muss mit Scale noch multipliziert werden.
Ich habe immer den Spannungswert am GPio mit DMM gemessen, mit angezeigtem Wert gegengerechnet, bei Scale=1 den OFFSET eingetragen, am Telemetrie-Display und DMM abgelesen und verglichen. Diesen Vorgang mache ich immer mit zwei oder mehr festen Spannungswerten, um die gemessene Genauigkeit und angezeigte Werte zu erhöhen.
Script:
//fields[cntInit + MVOLT].value = ( ((float) sumVoltage[cntInit]) / (( float) SUM_COUNT_MAX_VOLTAGE) * mVoltPerStep[cntInit]) - offset[cntInit];
Gruß,
Torsten
 

kalle123

User
Ich hatte eine Platine mit einem ACS712 gehabt. Da hab das IC getauscht.
Doro, die fertigen Platinen nehm ich bisher auch (wie im Bild zwischen 2 MPX Steckern), bisschen verkleinert und dann mit dem 713er drauf. Passt wunderbar.

Bildschirmfoto_2023-02-19_18-19-29.png

Naja, gerne.... ich hatte gerade nix anderes.... ;) in den Fall ist es Heisskleber, der geht mit Alkohol wenigstens wieder ab.

Ich bevorzuge da Waschbenzin statt Spiritus ....

Ich mag das SMD Gefummel nicht (mehr); seh ich auch nicht mehr ;)

Bei mir ging das Herbst 21 mit Katarakt los. Beidseitig und dann unter Corona Zuständen. Und dabei wurde ich im Nahbereich auf 30 cm fix eingestellt. Konnte im Nahbereich vorher immer gut arbeiten. Hab jetzt ne Brille für 15 cm bei kleine Sachen. Aber wenn es noch feiner wird, halt Uhrmacherlupe. Aber mit der Heissluftkiste macht SMD erst richtig Spass. Hier mal zum Vergleich MS5611, BMP280, SPL06 und daneben der DIY SPL06. Hatte richtig Bammel, wie die SPL06 (2.0x2.5mm) aus China kamen.

Bildschirmfoto_2023-02-19_18-18-47.png

Grüße KH
 

doloebig

User
So wie ich das Script interpretiere wird OFFSET nach der mVolt Summenberechnung abgezogen und muss mit Scale noch multipliziert werden.
Ich habe immer den Spannungswert am GPio mit DMM gemessen, mit angezeigtem Wert gegengerechnet, bei Scale=1 den OFFSET eingetragen, am Telemetrie-Display und DMM abgelesen und verglichen. Diesen Vorgang mache ich immer mit zwei oder mehr festen Spannungswerten, um die gemessene Genauigkeit und angezeigte Werte zu erhöhen.
bei mir war es so das Änderungen am Scaler auch der Offset nachjustiert werden muss. Ich hab 0.5V Offset die setzt ich im Sender; das war einfacher

Doro
 

kalle123

User
Hi Onki.


Versuch das mal in meinen Worten. Du hast einen Bereich, den du messen/darstellen willst.

Als Beispiel mal Lipo Spannung 3S. In welchen Grenzen wird der Bereich da sein? Ich sag jetzt mal von 10.5V bis 12.6V.

Ich hab da eine kleine Spannungsquelle mit nem 10 Gang Poti und häng da ein DVM mit rein. Ich geb 10.5V vor und schreib mir auf, was im Sender angezeigt wir. Dann nochmal mit 12.6V. Dann ein Blatt kariertes Papier und auf der X-Achse die Vorgabewerte 10.5V und 12.6V eintragen und auf der Y-Achse die am Sender abgelesen Werte. Hier mal als 'maling' ;)

Kriegst dann vielleicht so was die rote Linie. Willst aber die blaue haben! Soll ja auch am Sender auch 10.5V und 12.6V angezeigt werden. Also OFFSET in dem Fall + nach oben. Die rote Linie steigt aber stärker an als die blaue SOLL Linie, also SCALE etwas - runter. Wenn du maßstäblich arbeitest, kannst du die Korrekturwerte OFFSET und SCALE direkt aus so einer Skizze ablesen ....

Bildschirmfoto_2023-02-19_21-28-10.jpg

Gruß - KH
 
Ansicht hell / dunkel umschalten
Oben Unten