Multi-Funktions-Module für PWM/SBUS/FBUS

  • Hallo,

    für 40 MHz gab es früher ja die gern verwendeten Multischaltmodule mit vorwiegend 16 oder auch 24 Funktionen.

    Im Moment werden Lichtanlagen von Pistenking, Kraftwerk oder Lösungen über Beier Module angeboten.

    Welche anderen Module/Varianten kennt Ihr noch und wie funktioniert deren Bedienung und Konfiguration?

    Eine Möglichkeit wäre der oXs on rp2040. Dieser kann bis zu 16 Servos oder dimmbare Schaltfunktionen als Multischaltfunktionen zur Verfügung stellen. Ich nehme an, dass man für die Schaltfunktionen dann noch (Schalt)Endstufen für die angeschlossenen Verbraucher benötigt.

    Wer hat Erfahrungen damit?

    Eine weitere Möglichkeit ist die Nutzung von Pololu Mini Maestro Modulen mit bis zu 24 Ausgängen.

    Auch hier die Frage wie funktioniert das im Detail? Sicherlich sind auch hier für Schaltanwendungen Endstufen erforderlich.

    Was benötigt man auch noch zusätzlich zu den "Grundmodulen"?

  • Hallo Holger,

    Hallo an alle anderen in dieser Runde,

    Kommen wir erstmal zur ersten Frage: Was ist oXs_RP2040 und was kann es, in Bezug auf FrSky mit Ethos und anderen Herstellern.

    oXs_on_RP2040 entstand aus dem Projekt openXvario und der Weiterentwicklung des openXsensor auf Arduino Basis.

    Es sollte eine Möglichkeit für Flugmodellbauer geschaffen werden um Telemetriewerte auf unterschiedlichsten Sender-Systemen darzustellen.

    Mittlerweile ist es aber auch aufgrund der Funktionsvielfalt auch für uns Funktionsmodellbauer sehr interessant geworden.

    oXs_RP2040 funktioniert mit unterschiedlichem Funktionsumfang auf: FRSKY (SBUS/S.PORT + FBUS) / Graupner HOTT / JETI Ex / JETI EXBUS/ MPX / FLYSKY / Futaba (SBUS2) / Spektrum (SRXL2) /expressLRS / .

    Als Basismodul wird gerne ein Waveshare RP2040-Zero genommen, ich persönlich besitze mehrere Pimoroni Servo2040 und andere Boards basierend auf dem RP2040 Chip.

    Telemetrie finde ich interessant, da mir über 40 Werte auf meiner FrSky X20S oder Pro dargestellt werden. Man kann sich bis zu 12 Spannungswerte, Stromwerte, Druckwerte....... sowie GPS mit Date/Time, Geschwindigkeit und bei Verwendung eines I2C GY-86 Sensors auch die Winkelgrade und deren Geschwindigkeit anzeigen lassen. Diese Werte kann man dann wiederum zur Steuerung bestimmter Funktionen nutzen, wie im echten Fahrzeug auch. Es ist auch ein Plattform-Stabilizer onboard, der alles zu 100% während der Fahrt in Waage hält.

    Der oXs_RP2040 ist sehr vielseitig: Er kann als FBUS/SBUS Decoder benutzt werden um 16xPWM auszugeben und gleichzeitig SBUS_out weiterzuleiten. Desweiteren ist die Funktion Sequencer im oXs_RP2040 verfügbar. Man kann aus einem PWM Kanal des SBUS/FBUS bis zu 16 PWM Funktionen/Sequencen/Expander (500us bis 2500us) für Servos und/oder analoge Werte bis zu Vcc(3.3V) an die jeweiligen Ausgänge legen, und alles ist dazu auch noch dimmbar im An-und Ausschaltprozess.

    Die ganzen Funktionen werden von mir über ein LUA-Script (20 Schalter mit Bezeichnung) vom Sender aus gesteuert.

    Das Grundprogramm wird einfach von der GitHub Seite des Entwicklers Mstrens (Michel Strens) heruntergeladen und per drag and drop auf das RP2040 Board uber USB C kopiert, mehr nicht.

    Die eigentliche Konfiguration findet über ein Terminalprogramm statt, z.B. Arduino 1.8.19 IDE Serial Monitor.

    Alle weiteren Infos findet man hier:

    https://github.com/mstrens/oXs_on_RP2040/tree/test

    Falls es Fragen geben sollte, beantworte ich sie gerne.

    Viele Grüße,

    Torsten

  • Hallo Torsten,

    sehr interessant. Kannst du mal ein Bild von deinem 20 Schalter Script einstellen?

    Hallo Uwe,

    sieht so aus wie dein entwickeltes.

    Schwarzer oder weisser Hintergrund mit verschiedenen Knöpfen mal in silber oder grün, für 6 bis 12 Funktionen auf einer Seite und bis zu 6 Seiten mit bis zu 72 Funktionen.

    Ich hatte es vor ca. 1,5 Jahren von einem Schweizer Modellbauer (glaube ich, kann auch jemand anderes gewesen sein) erhalten und es für meine Zwecke etwas umgeschrieben. Da bei den Beier Modulen mit verschiedenen Zeiten 300ms und 1300ms gearbeitet wurde.

    Angefangen hatte ich mit dem KingPad 0.4 von Pistenking und dazu ein neues MultifunktionsBoard entwickelt, auf Basis eines Pololu MiniMaestro 24CH. Arbeitet nach dem gleichen Prinzip wie Pistenking, Kraftwerk, Beier, Benedini.....

    Download aus RCG : weisser Hintergrund 12x grüne Buttons:

    https://www.rcgroups.com/forums/showthr…40-board/page99

    Download aus RCG : schwarzer Hintergrund 10x metall Buttons:

    https://www.rcgroups.com/forums/showthr…0-board/page100

    Viele Grüße,

    Torsten

  • Hallo Holger,

    Welche anderen Module/Varianten kennt Ihr noch und wie funktioniert deren Bedienung und Konfiguration?

    Meine RCuniSwitch Schaltmodule arbeiten unter anderem ebenfalls nach dem Prinzip wie Pistenking, Kraftwerk, Beier, Benedini.....

    Über einen RC-Kanal sind bis zu 24 Schaltfunktionen (2A) möglich oder 12 Servos.

    Mehr Infos siehe hier: RE: RCuniSwitch - Konfigurierbare Schaltmodule

    Und hier ein Anwendungsbeispiel: RE: RCuniSwitch - Konfigurierbare Schaltmodule

    Gruß,

    Christian

  • Hallo Torsten,

    das mit dem RP2040 hört sich interessant an. Sehe ich das Richtig, dass der RP2040-Zero nur eine begrenzte Anzahl von Anschlüssen hat und des da zu Überschneidungen von Funktionen kommen kann?

    Interessant wäre Telemetrie über S.PORT für 3-Zellen Akku, Geschwindigkeit, Neigungswinkel und über SBUS einige Schaltfunktionen oder Servoausgänge.

    Könntest du da vielleicht etwas mehr dazu schreiben. Gibt es irgendwo Schaltbilder zu der ganzen Geschichte?

    Grüße Jörg

  • Hallo Torsten,

    das mit dem RP2040 hört sich interessant an. Sehe ich das Richtig, dass der RP2040-Zero nur eine begrenzte Anzahl von Anschlüssen hat und des da zu Überschneidungen von Funktionen kommen kann?

    Interessant wäre Telemetrie über S.PORT für 3-Zellen Akku, Geschwindigkeit, Neigungswinkel und über SBUS einige Schaltfunktionen oder Servoausgänge.

    Könntest du da vielleicht etwas mehr dazu schreiben. Gibt es irgendwo Schaltbilder zu der ganzen Geschichte?

    Grüße Jörg

    Hallo Jörg,

    Aufgrund des Funktionsumfangs und der persönlichen Vorlieben gibt es keine Schaltpläne.

    Ein RP2040-Zero hat 20 + 9 zugängliche GPio Pins für Schalt- und Messaufgaben.

    Man sollte sich überlegen was man an GPio`s braucht und diese dann über das Terminal festlegen.

    Wenn dir FBUS zur Verfügung steht kannst du einen GPio wieder für andere Zwecke verplanen, sonst wäre die Beschaltung wie folgt:

    TLM=S oder F

    PRI=5 =SBUS-in oder FBUS-in

    TLM=4 =S.PORT

    GPS_RX=0 =GPS Beitian BE180 bis 250/450 RX

    GPS_TX=1 = GPS Beitian BE180 bis 250/450 TX

    SDA=2 =GY86 Modul SDA

    SCL=3 =GY86 Modul SCL

    V1=26 =Spannung

    V2=27 =Strom , daraus wird auch noch ein Telemetriewert mit Kapazitätsverbrauch übertragen.

    V3=28 =Temp1 oder was auch immer

    V4=29 =Temp2 oder was auch immer

    Dann bleiben dir noch die GPio6 bis GPio15 für PWM oder Sequencer/Schaltfunktionen.

    Version = 2.11.7

    Function GPIO 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 . . . . . . . . = 255 (TLM = 0, 1, 2, ..., 29)

    GPS Rx . . . . . . . . . = 16 (GPS_RX = 0, 1, 2, ..., 29)

    GPS Tx . . . . . . . . . = 17 (GPS_TX = 0, 1, 2, ..., 29)

    Sbus OUT . . . . . . . . = 4 (SBUS_OUT= 0, 1, 2, ..., 29)

    RPM . . . . . . . . . . = 255 (RPM = 0, 1, 2, ..., 29)

    SDA (I2C sensors) . . . . = 14 (SDA = 2, 6, 10, 14, 18, 22, 26)

    SCL (I2C sensors) . . . . = 15 (SCL = 3, 7, 11, 15, 19, 23, 27)

    PWM Channels 1, 2, 3 ,4 = 255 255 7 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 10 11

    Voltage 1, 2, 3, 4 = 26 27 28 29 (V1 / V4 = 26, 27, 28, 29)

    RGB led . . . . . . . . . = 18 (RGB = 0, 1, 2, ..., 29)

    Logger . . . . . . . . . = 0 (LOG = 0, 1, 2, ..., 29)

    ESC . . . . . . . . . . . = 1 (ESC_PIN= 0, 1, 2, ..., 29) Esc type is HW4 (Hobbywing V4)

    Protocol is Fbus(Frsky)

    CRSF baudrate = 420000

    Logger baudrate = 115200

    PWM is generated at = 50 Hz

    Voltage parameters:

    Scales : 1.000000 , 1.000000 , 40.000000 , 1.000000

    Offsets: 0.000000 , 0.000000 , 66132.000000 , 0.000000

    No temperature sensors are connected on V3 and V4

    RPM multiplier = 1.000000

    Baro sensor is not detected

    Airspeed sensor is not detected

    No Vspeed compensation channel defined; oXs uses default settings

    First analog to digital sensor is detected using ads1115

    Measurement setup: 4 , 5 , 6 , 7

    Gains: 1 , 1 , 1 , 1

    Rates: 5 , 5 , 5 , 5

    Offsets: -66713.007812 , -66713.007812 , -66713.007812 , 0.000000

    Scales: 40.358700 , 40.358700 , 40.358700 , 1.000000

    Averaged on: 10 , 10 , 10 , 10

    Second analog to digital sensor is not detected

    Foreseen GPS type is Ublox (configured by oXs) :GPS is not (yet) detected

    Led color is normal (not inverted)

    Failsafe uses predefined values

    Chan 1...4 = 1500 1500 989 1500

    Chan 5...8 = 1500 1500 1500 1500

    Chan 9...12 = 1500 1500 1500 1500

    Chan 13...16= 1500 1500 1500 1500

    Acc/Gyro is not detected

    Gyro is not configured

    No sequencers are defined


    Weitere Infos zum RP2040-Zero:

    https://www.waveshare.com/wiki/RP2040-Zero

    Weitere Infos zum Pimoroni Servo2040:

    https://shop.pimoroni.com/products/servo…=39800591679571

    Viele Grüße,

    Torsten

  • Hallo an alle in dieser Runde,

    Ich hatte im März 2023 mal eine Anleitung des oXs_on_RP2040 geschrieben, die aber mittlerweile etwas veraltet ist, da neue Funktionen und ein paar Befehle dazu gekommen sind und alles jetzt über VSCode mit CMake kompiliert wird.

    Für den Anfang und zur Berechnung der Spannungsteiler dürfte es aber reichen.

    Viel Spaß beim lesen:

    POST 382:

    https://www.rc-network.de/threads/oxs-on…1929246/page-20

    Bei Fragen helfe ich gerne weiter.

    (Keine Ahnung, wie ich hier etwas hochlade, deshalb die Links)

  • Hallo Torsten,

    ich habe mir gerade einmal speziell die Sequenzer Beschreibung auf GH angesehen.

    So ganz verstehe ich das nicht.

    Wie schalte ich dauerhaft mit einem % Wert vom angegebenen Kanal der ausgewertet wird eine Funktion ein? Reicht dafür nur ein Impuls auf diesen Prozentwert? Für das Ausschalten dann einen anderen festgelegten % Wert als Impuls? Und mit welchen Werten muss die

    Sequenz dann definiert werden?

    Die Schrittweite für den auszuwertenden Geberkanal beträgt 10% im Bereich von -100% bis +100%. Somit können maximal 21 Werte unterschieden werden. Möchte ich jetzt digitale Schaltfunktionen ansteuern, kann ich somit maximal 10 Ausgänge mit einem Geberkanal schalten, da ich immer 2 Werte benötige, um eine Schaltfunktion ein und auch wieder aus zu schalten. Ich hatte gehofft, dass man die kompletten 16 Ausgänge mit einem Geberkanal ansteuern kann.

    Wäre es möglich die Schrittweite auf 6% für den Geberkanal zu ändern, damit man 32 Bereiche auswerten kann?

  • Hallo Holger,

    Es reicht ein kurzer Impuls. Hier ein Beispiel für mein 2x10Button Script.

    6=Kanal6 Servo

    0=Servofunktion 1=Schaltfunktion

    20=Zeitkonstante 20ms

    3=Kanal der auslöst= Kanal3

    -100= default Wert nach der Inbetriebnahme hier -100%

    -100= minimaler Wert des PWM Signals =988us

    100= maximaler Wert des PWM Signals =2012us

    50 P = Wert des Button 6 = 50%PWM Priorisiert

    0= 0x Zeitkonstante zum Auslösen

    -100= Wert nach Auslösen der angefahren wird

    255= Zeitkonstante nach Auslösen der angefahren werden soll 255 bei Servo oder xWert bei analog Spannungswert.

    ...........

    Button 1(100%PWM) von Kanal 3 fährt das Servo Kanal6 von default -100% auf +100%, Button 6 fährt das Servo Kanal6 auf -100%

    Habe einige Scripts für Servo und Schaltfunktionen, mit unterschiedlichen Verzögerungen, falls jemand etwas benötigt.

    Einfach unten das Script incl. SEQ= kopieren und im Terminal einfügen.

    Alle 20 Buttons von +100% über 10% nach -100% zu -10% für PWM output (Servos) oder analog (LED) (auf Funktion geprüft !!!)

    GPio: 6,7,8,

    PWM: 100/50, 90/40, 80/30, 70/20, 60/10, -100/-50, -90/-40, -80/-30, -70/-20, -60/-10

    SEQ=

    [6 0 20 3 -100 -100 100]

    (50 P) {0 -100 255}

    (100 O) {0 100 255}

    [7 0 20 3 -100 -100 100]

    (40 P) {0 -100 10}

    (90 R O) {0 50 3} {10 100 2}

    [8 1 500 3 0 0 100 ]

    (30 P) {0 0 255}

    (80 R) {0 100 255}


    Viele Grüße,

    Torsten

  • Hallo,

    bei den ganzen Coder gestützten Modulen wie Pistenking, Kraftwerk etc. fehlt mir vor allem die Rückmeldung. Ich möchte eigentlich mit einem Blick auf den Sender erkennen können, ob eine Funktion geschaltet ist oder nicht. Die alten Multiswitch Module konnten das und so konnten Schiffsmodellbauer auch 20 oder 40 Funktionen schalten und den Schaltzustand erkennen. Graupner könnte das mit dem Sumd3 Protokoll aber da gibt es praktisch keine Peripherie. Der S-Bus Switch kann das auch, aber nur 8 Funktionen pro Kanal und es gibt probleme mit den niedrigen 2 Bit wegen der geringen Schrittweite.

    Gibt es auch eine Lösung mit Rückmeldung ?

  • Hallo,

    bei den ganzen Coder gestützten Modulen wie Pistenking, Kraftwerk etc. fehlt mir vor allem die Rückmeldung. Ich möchte eigentlich mit einem Blick auf den Sender erkennen können, ob eine Funktion geschaltet ist oder nicht. Die alten Multiswitch Module konnten das und so konnten Schiffsmodellbauer auch 20 oder 40 Funktionen schalten und den Schaltzustand erkennen. Graupner könnte das mit dem Sumd3 Protokoll aber da gibt es praktisch keine Peripherie. Der S-Bus Switch kann das auch, aber nur 8 Funktionen pro Kanal und es gibt probleme mit den niedrigen 2 Bit wegen der geringen Schrittweite.

    Gibt es auch eine Lösung mit Rückmeldung ?

    Ich denke mit Ethos Version 1.5.x dürfte es auch die Möglichkeit zur Rückmeldung bestimmter Funktionen über die Telemetrie geben.

    Dann müsste man im LUA Script nurnoch die Telemetriewerte den Buttons zuweisen.

    Jetzt ist nur eine farbliche Hinterlegung der Buttons für eine ausgelöste Funktion möglich, damit man erkennen kann welcher Button gedrückt/ausgelöst wurde.

    Viele Grüße,

    Torsten

  • Hallo Holger,

    Hier noch die Antwort zu deinen Fragen bezüglich Schrittweite/Werte/Ausgänge/Schrittweite ändern

    Schrittweite: -100%, -90%, -80%,......-10%, 0%, 10%,......90%, 100% , von/bis 988us, 1500us, 2012us

    Werte: =21Werte, wobei der Wert 0%=1500us die Mittelstellung bedeutet und immer gesendet wird.

    Ausgänge: 16 GPio Ausgänge = 16PWM Kanäle, Aufgrund der Programmierung kann z.B. ein PWM Kanal1 nicht auf C1=6 und gleichzeitig im Sequencer benutzt werden, hängt mit dem Aufbau des RP2040 zusammen.

    Schrittweite ändern: Müsste ich mal ausprobieren, wie eng man gehen könnte, da ein gewisser Span zur Abfrage eingearbeitet ist.

    Viele Grüße,

    Torsten

  • Hallo Torsten,

    danke für die Infos.

    Ausgänge: 16 GPio Ausgänge = 16PWM Kanäle, Aufgrund der Programmierung kann z.B. ein PWM Kanal1 nicht auf C1=6 und gleichzeitig im Sequencer benutzt werden, hängt mit dem Aufbau des RP2040 zusammen.

    Das heißt ich könnte nur maximal 15 Ausgänge nutzen, da ein Kanal für die Ansteuerung verloren geht? Auch wenn S-Bus oder F-Bus auf dem Eingangspin konfiguriert ist?

    Eine engere Schrittweite unter 10% sollte eigentlich von der Auswertung machbar sein. Beim S-Bus-Switch ist die kleinste Schrittweite ja wesentlich kleiner und ist auch noch auswertbar. Die 6% sollten eigentlich machbar sein (3% wirklich zulässiger Bereich und 3% "Sicherheitslücke" bis zum nächsten auswertbaren 3% Bereich). Dann hätte man 33 mögliche Werte, einen für Null plus 32 weitere.

  • Hallo Torsten,

    danke für die Infos.

    Das heißt ich könnte nur maximal 15 Ausgänge nutzen, da ein Kanal für die Ansteuerung verloren geht? Auch wenn S-Bus oder F-Bus auf dem Eingangspin konfiguriert ist?

    Eine engere Schrittweite unter 10% sollte eigentlich von der Auswertung machbar sein. Beim S-Bus-Switch ist die kleinste Schrittweite ja wesentlich kleiner und ist auch noch auswertbar. Die 6% sollten eigentlich machbar sein (4% wirklich zulässiger Bereich und 4% "Sicherheitslücke" bis zum nächsten auswertbaren 4% Bereich). Dann hätte man 33 mögliche Werte, einen für Null plus 32 weitere.

    Hallo Holger,

    Der SBUS oder FBUS GPio hat nichts mit den PWM RC Channels/Sequence Channels zu tun. Es bleiben 16 Ausgänge. Mehr würde aufgrund der internen Beschaltung eines RP2040 auch kein Sinn machen.

    In meinem Beispiel oben hatte ich Servos angesteuert, d.h Button1 100% steuert Servo X nach 100%, Button 6 , da er genau unter Button 1 liegt steuert Servo X nach -100%.

    Bei einer Schaltfunktion könnte man Button 1 bis 15 etwas einschalten lassen und mit Button 16 wieder aus, oder wie beschrieben Button1 schaltet ein Button 6 schaltet aus, oder gemischt.

    Das ist bei meinem Pololu MiniMaestro 24Kanal besser gelöst. Ein Button kann eine Funktion/Servo ein- und ausschalten/ Servostellung/ Sequence (Toggle).

    Dazu aber mehr in einem anderen Post, würde hier alles unübersichtlich machen.

    Viele Grüße,

    Torsten

  • Hallo,

    ich hätte ja gerne eine Lösung wie z.B. hier:

    Also 8 - 10 - oder 12 virtuelle Schalter, die als Rast oder Tastschalter ausgeführt werden können und die Schalterstellung simultan über einen Kanal auf ein Modul im Empfänger übertragen.

    Mit einem Blick muss erkennbar sein, ob der Schalter ein oder aus ist.

    Dies war bei den alten Multiswitch Modulen problemlos umsetzbar, wenn auch mit einer kleinen Latenzzeit. Und dies mit bis zu 4 Modulen mit insgesamt 64 Funktionen (Becker)

    Ich kenne (außer dem S-Bus Switch) kein aktuelles Modul, dass dies umsetzt. Und der S-Bus Switch hat nur 8 Kanäle

  • Hallo Uwe,

    Wie bekomme ich hier Bilder oder Daten hochgeladen?

    Dein Screen schaut so aus wie bei mir, und ich habe ein Modul entwickelt was 24 bis 72 analoge-diigitaleFunktionen/PWM/Sequencen....... ausführen kann, und gleichzeitig den Anschluss von digitalen und analogen Aktuatoren zulässt. Wie schon geschrieben auf Pololu MiniMaestro Basis.

    Viele Grüße,

    Torsten

  • Hallo alle zusammen,

    Der Gedanke einer "aktiven Rückmeldung" beschäftigt mich auch schon eine ganze Weile.

    Ich priorisiere dafür einen DIY Sensor in der Telemetrieübertragung, der einen bestimmten digitalen Wert (8 Bit /256 Zustände) für eine ausgelöste Funktion (Ausgang H/L) aller GPio Ports meldet.

    Anhand dieses Zahlen-Wertes in der Rückmeldung könnte man doch im LUA Script dann die Schalterfunktion on/off zuweisen.

    Das Problem entsteht aber bei Anschluss eines Servos. Welche Wert soll dann für den ausgelösten Button übertragen werden, die Servostellung ???

    Ist nu so ein Gedanke von mir, da ich zurzeit für mich keine andere Möglichkeit sehe/kenne.

    Viele Grüße,

    Torsten

  • Wie bekomme ich hier Bilder oder Daten hochgeladen?

    Hallo Torsten,

    am einfachsten unterstützt du das Forum, dann kannst du als VIP Mitglied Bilder direkt ins Forum hochladen. Alternativ z.B. über Picr.de

    Eine Telemetrie halte ich für zu komplex. Einfacher und ausreichend wäre eine simultane Übertragung einer definierten Schalterstellung.

    Also Schalterstellung (real und virtuell) im Sender encodieren, über einen Kanal übertragen und in einem Modul im Empfänger dekodieren. Prinzipiell wie bei den alten Multiswitches.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!