oXs-on-RP2040

kalle123

User
der ist immer sehr schnell !
Jetzt, nicht immer!! ;)

Schau dir mal den post von mir an


Ich hatte im Oktober mit meinen Spielereien angefangen (eigentlich schon im April, aber das war nur paltformio und RP2040), aber in RCN herrschte Totenstille.
Darum der obige post, hab dann einfach mal issues in github aufgemacht und dann tat sich plötzlich was.
Ich hatte auch von 'Expertenseite' gehört, das Projekt ist 'sowieso nix', mstrens macht jetzt beim MiLo Projekt.
Und das wäre m.E. ziemlich Schade gewesen. Hier hab ich alles, was ich brauche. Dazu klein in den Baumassen.

Und auf den großen Schub an Hardware zu ELRS PWM aus Fernost glaub ich nicht so recht.
Was ist denn da außer Matek? Kommt da noch was?

Jetzt werde ich mich mal weiter mit RPM befassen (Parametrierung!)

Gruß - KH
 
das ist halt alles nur Hobby. Mal hat man mehr, mal weniger Bock drauf....
Geht mir mit meinem SBUS-Switch genau so.

Das wäre auch noch eine Option ihn zu überreden Schaltfunktionen, wie beim SBUS-Switch, einzubauen. Dürfte kein grosses Ding sein
 

kalle123

User
Das wäre auch noch eine Option ihn zu überreden Schaltfunktionen, wie beim SBUS-Switch, einzubauen. Dürfte kein grosses Ding sein
Aber was macht man damit? Hab deinen thread gesehen


Funktionsmodellbau o.ä. ... ?

mstrens hatte ja im 'alten' oXs schon

20 - Sequencer (ON/OFF) for some digital outputs (E.g. for a light controller) drin.

Musst da nur ein paar Mitstreiter haben, die sich melden. ;-)

Für mich ist oXs_on_RP2040 'nur' eine Möglichkeit, mit nem 'winz' ELRS rx und nem kleinen MC per ELRS ein Flugmodell + Telemetrie zu steuern.

Jetzt ist erst mal RPM dran, hab etwas in den scr gestöbert.

Da findet sich dann das hier an verschiedenen Stellen

-To change RPM multiplicator, enter e.g. RPM_MULT=0.5 to divide RPM by 2

// Note: ELRS has no field to transmit RPM; so RPM is sent in "attitude" frame as pitch, roll and yaw.

// Those fiels can have a max value of about 16000 and some digits are considered as decimals and lost by openTx.

// Therefore RPM value (hetz) is transmitted 3 times (once in Hetz, once in 10 X Hetz and once in 100 X Hetz)

// So the user can decide which value best fit his need

// One RPM (Hz) can be measured

// Take care to limit the voltage to the range 0-3V; so if you use capacitor coupling, add diodes and resistor to limit the voltage

// All pulsed are counted (no debouncing); so use a hardware low pass filter (resistor/capitor) to avoid dummy pulses reading


// - one RPM measurement; a scaling (SCALE4) can be used to take care e.g. of number of blades (optional)

Also u.a. RPM auch in roll und yaw!

Naja, Doku für 'Normalsterbliche' war noch nie die Stärke von Michel :D

Gruß KH
 
Aber was macht man damit?
Was halt im ersten Satz steht: "Mit dem SBUS-Switch können 8 Schaltausgänge über SBUS angesteuert werden." Und das über nur einen Kanal!
es können beliebig viele SBUS-Switche an einen Empfänger angeschlossen werden. (Limit sind die max möglichen Mischer in openTX).
Optional sind 2 Ausgänge dimmbar. (für Fernlicht/Abblendlicht oder Rücklicht/Bremslicht).

zum Sequenzer:
braucht der openTX-User nicht wirklich, da alles im Sender realisierbar.
 

kalle123

User
Bin weiterhin bezüglich RPM 'am Schwimmen' ;)

Also das RPM Signal kommt NUR auf Pitch, nicht auf Roll und Yaw.
Die vom mstrens empfohlenen 100 Hz zu Testzwecken sind wohl auch nicht so günstig, wie es jetzt heißt.
Gut, er hat die Kommentierung im code geändert und die mögliche Abtastrate nach config.h verschoben.

Main ist revidiert.

Hier mal mein Einwand und die Antwort von mstrens ...


Bin jetzt dabei 1000 Hz vorzugeben (sind bei einem üblichen 14 pol BL. Motor 8571 U/min)
Nur es sollte doch möglich sein, diese Vorgabe als 1000 Hz am Sender darzustellen?!

Und bevor das nicht zu sehen ist, macht es m.E. wenig Sinn, die Anzeige von Hz auf rpm zu wechseln ....

Da ich selbst recht wenig Ahnung von der Senderprogrammierung (FrSky X10 express, EdgeTX 2.7.1) und noch weniger von den 'Innereien' von Mikrocontrollern hab, kann ja vielleicht mal jemand mit mehr Ahnung drüber schauen und nen Rat geben.

Denke schon, das RPM für einen user nutzbar und auch einfach zu handeln sein sollte.

Gruß KH
 
da habe ich auch nur "0".
Wieso soll denn nicht 100Hz oder weniger funktionieren?
Mit einem FrSky Empfänger konnte ich 50Hz auswerten (einfach einen Servoport an "RPM" angeklemmt)
Einen 1000Hz Generator müsste ich mir erst bauen
 

kalle123

User
Er hat mir ja so geantwortet.

Es funktioniert ja mit 100Hz, ist aber bei 100, 200, 300 .... 1000Hz ziemlich ungenau.

The radio displays with 100, 200,300 .... 1000Hz those values
1.00Hz, 2.10Hz, 3.21Hz,4.31Hz,5.42Hz,6.52Hz,7.63Hz.8.74Hz,9.84Hz,10.95Hz.

The max value that can be put by oXs in this field is about 32000 (it is a int16 and only positive values have sense for RPM).
I expect that some digits are lost or put as decimal in openTx/edge.
Currently RPM was measured 10 times per second (interval is 100000usec = 0.1 sec)
At 100Hz it means that oXs can only count about 10 pulses (so value could easily become 9, 10 or 11).
For such a low frequency, it should make sense to increase the counting interval to e.g. 1 sec.

This was a parameter in rpm.cpp but I just moved it to _config.h (seems easier for a user)
When the number of pulses/second increases (e.g. 1000hz) an interval of 0.1sec makes sense.
Getting 10.95 for 1000hz is probably the result of your ratio 282. I presume a lower ratio could give you a value around 10.00
Getting 1000 on the display instead of 10.00 has to be solved on handset (perhaps calculated field)

und das letzte da, mit der Anpassung des Wertes im Sender durch Kalkulation seh ich nicht. Ich seh da keine Funktion Wert * 100...

Gruß KH.
 

kalle123

User
Vielleicht muss ich mich bei der Hertz Anzeige auch einfach damit zufrieden geben, wenn 50Hz als 0.50, 100Hz als 1.00, 1000 Hz als 10.00 und 3000Hz als 30.00 angezeigt werden. Baue nachher vielleicht nochmal auf ....
 
warum stellst Du nicht auf RPM? Dann hast Du doch Teiler und Multiplikator in EdgeTX
Was passiert wenn Du mit "Scale" im Sensor spielst?
 
also, der schickt in den Feldern irgendwas anderes oder edgeTX interpretiert die Werte falsch. Damit ist auf jeden Fall nichts anzufangen.
Mit einem FrSky Empfänger tut es auf jeden Fall
 

kalle123

User
Bin gestern Abend nicht mehr dazu gekommen, da weiter zu machen. Am Wochenende werde ich noch mal schauen.

Aber zuerst Hz, danach erst rpm!

cu KH
 

kalle123

User
So hab mal was rum experimentiert.

Gebe 100Hz vor und drehe dann die ratio auf 28. Anzeige 0.10Hz. Interpretiere da jetzt mal als 100.

screen-2022-12-02-113001.jpg

Hab daraufhin mal Reihen gefahren.

1. Zeile mal zum Verständnis:

Gebe 100 Hz vor bei ratio =28 zeigt im Sender 0.10Hz an.
Bei nem BL Motor 7pol. entspricht das 857 U/min.

Der Fehler bei steigt mit höherer Frequenz an und kippt dann bei ~5000Hz.

Also 5000Hz ist vielleicht etwas zu viel, setze die ratio =26 und fahre mal runter.

Sieht nicht so schlecht aus ....

screen-2022-12-02-113554.jpg


Bildschirmfoto_2022-12-02_14-19-54.png
 

kalle123

User
Jetzt weiter, man soll ja rpm Werte sehen ;)

Also schalte ich im Sender um von Hz auf RPM.

Unit: Hz >> RPM
Precision: bleibt
Ratio wird zu Blades/Poles
Offset zu Multiplier

Oben in der Tabelle hab ich unten eine Gegenüberstellung gemacht RPM >> Hz.

Hier mal das Ergebnis mit 583Hz

screen-2022-12-02-144728.jpg

und 1167Hz

screen-2022-12-02-144703.jpg


Also zufrieden bin ich nicht. Blades/Poles 2237??

Und Anzeige 100,89 U/min ...

Ich werde da hier parallel in github rein setzen und mstrens um seine Meinung bitten.
Denke, das ging beim 'alten' oXs besser, wobei ich selber RPM nie im Modell eingesetzt habe. Alternativ mach ich vielleicht noch Versuche mit nem Unisense-E um zu schauen, wie das unter FrSky bzw. MPX (mit Konverter MPX > FrSky) unter EdgeTX ausschaut.

Gruß KH
 

kalle123

User
ich nehme an, edgeTX rechnet das in Grad um. Bei mir haben die Werte so garnicht gepasst
Also soooo schlecht sieht das mit den Hertz Werten doch nicht aus. Aber RPM ist nicht so 'toll' :(

Blades/Poles 2237 ----- WTF?

Schaff dir mal so ein Teil an, hier die Übersetzung aus nem holländischen Blog. Hab mir das Ding vor Jahren für ein Paar US$ aus China kommen lassen. Brauch das max. 2 ... 3 mal im Jahr, aber dann Gold wert.


Wichtig, denn Masseanschluss nach rüsten.

Gruß KH
 
Zuletzt bearbeitet:
"Pole" ist der Teiler. Erstmal Pole und Multiplier auf 1 stellen. Wie gesagt mit FrSky Empfänger funktioniert das. Nur die Vergewaltätigung der Grad-Anzeige scheitert.
Hast Du einen Logic-Analyser? Dann kannst Du schauel welche Daten er liefert. Vielleicht die Anfrage an das ELRS Team. Die müssen nur die Felder für die Telemetrie erweitern. Da fehlt noch einiges.....
 

kalle123

User
Hab nen Saleae clone hier, aber das schenke ich mir erst mal.

Multiplier IST Offset. Das einzige 'Schräubchen', wo man dran drehen konnte und kann ist halt Blades/Poles und das habe ich ausgiebig gemacht.

Aber ich hab was anderes unternommen. Reinhardt hat ja an andere Stelle ....


Ist aber noch etwas 'beta' ;)

Hab den Versuch hier noch auf dem Werktisch stehen mit Taranis X9D OTX 2.2.4.

Hab mal umgebaut auf X10 Express EdgeTX 2.71 mit MPX HFMG3 und Unisense-E.

Sieht wild aus, aber ich sag mal, was da zu sehen ist. Von oben rechts nach unten links.

X9D (alter Versuch), HFMG3 mit MPX Konverter und X10, Stromversorgung RX Seite, drunter dann Unisense-E, ESC, RX, BL-Motor und ein Servo und dann der Funktionsgenerator.

20221202_173943.jpg

Hier die Einstellung Unisense-E

Unbenannt.JPG

und hier das Ergebnis

20221202_173931.jpg

20221202_174010.jpg20221202_174139.jpg
20221202_174109.jpg

Das ist die Telemetrieeinstellung im Sender

screen-2022-12-02-180053.jpg

Also im Unisense 1x die Magnete angegeben, das ist alles!


Ich stoppe das hier jetzt mal an der Stelle und werde mich an mstrens wenden. Kann er da was machen oder ist das im CSRF Protokoll fix? Hab getestet, was ich glaubte, testen zu können und so ist das m.E. unbefriedigend!

Gruß KH
 
mal schauen was er dazu sagt. Sonst funktioniert halt RPM mir CRSF nicht. Vielleicht erweitern die ja mal ihr Protokoll.
Da ich nur ein Projekt im Sinn habe, bei dem ich Drehzahlen auswerten will und dort FrSky Empfänger verwendet werden sollen, kann ich persönlich gut damit leben. Besser als die Sensoren von FrSky. Die messen erst ab 1000 U/min
 
Ansicht hell / dunkel umschalten
Oben Unten