Neu-Vorstellung: SequencerX , 16 analoge oder PWM Ausgänge , 40 Funktionen, individuell steuerbar über einen SBUS RC Kanal mit dem oXs Pad

  • Teil: 1

    SequencerX

    ein Multifunktionsmodul auf Basis des oXs_RP2040

    Der SequencerX ist ein individuell programmierbares Multifunktionsmodul auf Basis des oXs_RP2040, das die Funktionen eines Switch- und eines Prop-Moduls in einem Baustein vereint und dabei noch eine reale aktive Rückmeldung auf einen FrSky Sender ermöglicht.

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

    Dazu stehen auf einem oXs_RP2040 Board bis zu 16 Ausgänge mit 40 Funktionen zur freien Verfügung, die über ein virtuelles oXs Pad mit 36 Buttons (3 Seiten mit jew.12 Tasten) individuell gesteuert werden können, ohne merklichen Zeitversatz, und das alles nur über einen einzigen SBUS RC Kanal.
    Das Highlight dieses mulifunktionalen Moduls ist die aktive Rückmeldung der 16 verfügbaren Anschlüsse eines Boards über den Telemetriekanal, d.h. man erhält ein aktives und optisches Feedback, ob der Anschluss ordnungsgemäß geschaltet und positioniert wurde oder nicht.


    Dazu werden die 16 GPio Ausgänge von zwei Telemetriesensoren abgefragt und jeweils als 24bit Wert zum Sender übertragen.


    Bildschirmfoto 2024-03-01 um 18.47.05.png

    Wichtig: Bei der Einrichtung der DIY5143, DIY5144 und DIY5145, DIY5146 Telemetriesensoren im Sender-Telemetrie-Sensor-Menue den Bereich bitte auf Minimum und Maximum setzen, Verhältnis 100%, Offset 0.

    Für jeden Button ist die Rückmeldung mit Kanal, Wert und Farbe getrennt einstellbar. Über ein Konfigurationsfile ist auch die Bearbeitung mit einem PC und ein Laden vorgefertigter Konfigurationen möglich. So muss nicht alles am Sender einprogrammiert werden.

    Die Einsatzmöglichkeiten dieses Bausteins sind sehr vielfältig, jeder Ausgang kann individuell entweder eine über das oXs Pad regelbare Spannung von 0V bis 3.3V oder ein PWM Signal (min.-125% bis max.125%) ausgeben.
    Das Einsatzgebiet dürfte vorrangig der Funktionsmodellbau mit all seinen Belangen sein.
    Von der Steuerung der gesammten Beleuchtung über z.B. ULN2803 Treiber inkl. Blinkfunktion sowie der Ansteuerung der Getriebe-,Differerenzial- Servos, ESC`s oder anderer Komponenten die ein PWM oder analog Signal benötigen, ist alles mit diesem Baustein möglich.
    Interessant ist auch die Dimmer-Funktion jedes Ausgangs im Ein- und Ausschaltprozess der individuell zeitgesteuert werden kann.
    Zurzeit können zwei Boards gleichzeitig von einem FrSky Sender gesteuert werden.
    Somit stehen dem Benutzer max. 32 Ausgänge mit 80 Funktionen zur freien Verfügung, die über eine Touchpad Oberfläche mit bis zu 72 virtuellen Buttons betrieben werden können.

    Die Firmware für den RP2040 ist einfach mit einem Terminalprogramm über ein USB Kabel auf den Chip zu laden.

    Eine spezielle Programmiersoftware ist nicht erforderlich.


    Merkmale: SequencerX Multifunktionsmodul on oXs_RP2040

    -- Steuerung über einen frei wählbaren SBUS RC Kanal (1-16)
    -- bis zu 16 GPio Ausgänge frei belegbar mit analog (0V-3.3V) oder PWM (988us-2012us)Signal
    -- FBUS / SBUS zu PWM Decoder ( FBUS mit Telemetrieunterstützung der bis zu 40 Sensoren)
    -- 2 Kanal Gyro zur Steuerung mit zwei Servos zur Lageregelung der X und Y Achse
    -- SBUS_in und SBUS_out zum weiteren Betrieb aller 16 Kanäle
    -- Betrieb von 2 Boards gleichzeitig (32 GPio/Ausgänge) ohne "Sensor Conflict" oder "Sensor Lost"


    Belegung des PWM Kanals im Sender:

    PWM-Werte für das Script oder Sender-Funktion mit 5% Skalierung:


    Button Seite 1:
    obere Button Reihe:
    Button 1: 100% = 1024.0
    Button 2: 95% = 972.8
    Button 3: 90% = 921.6
    Button 4: 85% = 870.4
    Button 5: 80% = 819.2
    Button 6: 75% = 768.0
    untere Button Reihe:
    Button 7: -15% = -153.6
    Button 8: -20% = -204.8
    Button 9: -25% = -256.0
    Button 10: -30% = -307.2
    Button 11: -35% = -358.4
    Button 12: -40% = -409.6

    Button Seite 2:
    obere Button Reihe:
    Button 13: 70% = 716.8
    Button 14: 65% = 665.6
    Button 15: 60% = 614.4
    Button 16: 55% = 563.2
    Button 17: 50% = 512.0
    Button 18: 45% = 460.8
    untere Button Reihe:
    Button 19: -45% = -460.8
    Button 20: -50% = -512.0
    Button 21: -55% = -563.2
    Button 22: -60% = -614.4
    Button 23: -65% = -665.6
    Button 24: -70% = -716.8

    Button Seite 3:
    obere Button Reihe:
    Button 25: 40% = 409.6
    Button 26: 35% = 358.4
    Button 27: 30% = 307.2
    Button 28: 25% = 256.0
    Button 29: 20% = 204.8
    Button 30: 15% = 153.6
    untere Button Reihe:
    Button 31: -75% = -768.0
    Button 32: -80% = -819.2
    Button 33: -85% = -870.4
    Button 34: -90% = -921.6
    Button 35: -95% = -972.8
    Button 36:-100% =-1024.0

    Es folgt Teil: 2

  • Teil: 2

    SequencerX

    Funktionsumfang:

    Unterstützte FrSky Protokolle (Stand März 2024)

    FBUS, S.PORT, SBUS

    Für Telemetriedaten können angeschlossen werden:

    -bis zu 4 analoge Spannungen (mit Skalierung und Offset) ohne externen ADC

    -bis zu 8 zusätzliche analoge Spannungen (benötigt bis zu 2 ADS1115) (optional)

    Das ermöglicht den Anschluss von Spannungs-/Strom-/Druck-/Temperatursensoren

    -GPS-Daten (Längengrad, Breitengrad, Geschwindigkeit, Höhe, ...) (optional)

    -Pitch und Roll Werte bei Anschluss eines MPU6050 ACC/Gyro Sensor (optional)

    -RPM in U/min (max.3.3V Impuls) (optional)

    -bei Anschuss von FBUS/SBUS (Frsky): Ausgabe von bis zu 16 PWM-RC-Kanälen (SBUS-Decoder) und/oder SBUS_OUT (1-16CH).

    -DIVERSITY Betrieb, kann durch Anschluss von 2 Empfängern gewährleistet werden.(Redundanz-Betrieb)

    -FAILSAFE Funktion: PWM- und SBUS-Signale werden von den zuletzt empfangenen RC-Kanälen ausgegeben.

    -SequencerX Funktion auf bis zu 16 Ausgängen mit 40 Funktionen gesteuert über 36 Buttons vom oXs Pad.


    Hardware:

    Dieses Projekt erfordert ein Board mit einem RP2040-Prozessor:

    Waveshare RP2040-ZERO,(max.5,5V Betriebsspannung, max.3.3V an den GPio Pins)

    LxB: 23,5x18mm

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

    Waveshare RP2040-PLUS,(max.5,5V Betriebsspannung, max.3.3V an den GPio Pins)

    LxB: 51x21mm

    Infos: https://www.waveshare.com/wiki/RP2040-Plus

    Pimoroni Servo2040, (max.5,5/11V Betriebsspannung, max. 3.3V an den GPio Pins)

    LxB: 62x42mm

    Infos: https://shop.pimoroni.com/products/servo-2040

    Eine der größeren Alternativen ist das Pimoroni Servo2040 Board,

    bei dem fast alle Anschlüsse bereits verlötet und anschlussbereit sind, (bis zu 16-PWM-Kanäle, GPS, I2C0 für Sensoren, ADC,.......)
    Interresant für Funktions-Modellbauer, die neben Spannungen, Temperatur, Verbrauch auch Hydraulik-Drücke messen möchten, und den RP2040 auch als SBUS Decoder benutzen. Die RGB-LED befindet sich auf GPio 18 und nicht auf GPio16 wie beim ZERO.
    ( Bei kleinen Änderungen, erstelle ich gerne einen Build nach den eigenen Bedürfnissen)


    Hier die neueste Board-Entwicklung von Uwe mit integriertem FrSky Empfänger, 8 Schaltfunktionen mit Treibern, 8 Servofunktionen (voll Proportional, Hydraulik oder Schaltservo) und Telemetrie für Bordspannung und Strom...
    Alles auf 50x35mm. Alles für unter 40 Euro.


    IMG_6840-1.jpg


    Vor jedem Projekt-Beginn sollte man sich die Spezifikationen und Belegungen der einzelnen Boards sehr genau anschauen, um Fehlfunktionen zu vermeiden!


    Eine der kleinsten Alternative ist das Waveshare RP2040-Zero Board,
    für das auch die Software zu 100% geschrieben wurde und es bedarf keinerlei Änderungen im oXs.uf2 Build ab Ver.2.11.40


    Installation:

    Der Bootmodus wird bei gedrückter BOOT-Taste und Anschluss an USB erreicht, sowie bei gleichzeitig betätigter RESET und BOOT, und dem Lösen der RESET Taste, damit die BOOT Taste alleine betätigt wird. Die oXs.uf2 Datei auf den Rechner kopieren und danach
    einfach in die Oberfläche des RP2040 einfügen,fertig. Drag and Drop Verfahren.


    Software:

    Zur Bearbeitung bzw. Anzeige der Bedienoberfläche von oXs_RP2040 empfehle ich das Terminal-Fenster der Arduino IDE 1.8.19,

    Eine genaue Anleitung zur Installation der Software und Einrichtung der RP2040 Treiber befindet sich im Link auf der linken Seite unter Arduino IDE Series

    RP2040-Zero - Waveshare Wiki
    www.waveshare.com

    Anschlusseinstellung: 115200baud/8/N/1 Sowohl NL als auch CR im Terminal Monitor der IDE aktivieren.

    Nach Anschluss an den USB-Port und Eingabe von "Enter" erscheint die Bedien- und Analyseoberfläche des oXs_RP2040:

    processing cmd

    Version = 2.11.40_V1_5143+5144
    Function GPIO Change entering XXX=yyy (yyy=255 to disable)
    Primary channels input = 21 (PRI = 5, 9, 21, 25)
    Secondary channels input = 255 (SEC = 1, 13, 17, 29)
    Telemetry . . . . . . . . = 255 (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) . . . . = 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)
    RGB led . . . . . . . . . = 16 (RGB = 0, 1, 2, ..., 29)
    Logger . . . . . . . . . = 255 (LOG = 0, 1, 2, ..., 29)
    ESC . . . . . . . . . . . = 255 (ESC_PIN= 0, 1, 2, ..., 29)
    Locator CS . . . . . . . = 255 (SPI_CS = 0, 1, 2, ..., 29)
    SCK . . . . . . . = 255 (SPI_SCK= 10, 14, 26)
    MOSI . . . . . . = 255 (SPI_MOSI=11, 15, 27)
    MISO . . . . . . = 255 (SPI_MISO=8, 12, 24, 28)
    Esc type is not defined

    Protocol is Fbus(Frsky)
    CRSF baudrate = 420000
    Logger baudrate = 115200
    PWM is generated at = 50 Hz
    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 not detected
    Airspeed sensor is not detected
    No Vspeed compensation channel defined; oXs uses default settings
    First analog to digital sensor is not detected
    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 1500 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

    Nun müssen erstmal folgende Befehle für die Inbetriebnahme in der Eingabezeile des Terminal eingegeben werden:

    Bei Verwendung des S.PORT: PROTOCOL=S

    und SBUS: PRI= und / oder SEC=

    Bei Verwendung des FBUS: PROTOCOL=F

    FBUS Anschluss an: PRI=

    Nun kann man noch die 4 ADC für die Messungen aktivieren, falls benötigt: V1=26 , V2=27 , V3=28 , V4=29 Spannung,Strom,Verbrauch,Temperatur,Druck

    bei Verwendung eines Temperatursensors: TEMP=1 (GPio28) bei zwei Temp-Sensoren TEMP=2 (GPio28+GPio29)

    Einigen Boards haben für die RGB-LED eine andere Adresse wie auf dem RP2040Zero (GPio16) LED=16

    Pimoroni Servo2040: LED=18


    Es folgt Teil: 3

  • Teil: 3

    SequencerX

    Die Funktionsweise des oXs_RP2040_Sequencers:

    Kleine Zusammenfassung:

    Ein RP2040 Board mit oXs zu betreiben ist auch für einen "Nichtelektroniker" ganz einfach.
    Die oXs.uf2 per drop and insert (Kopierfunktion) bei gedrückter Boot-Taste und dem Anlegen einer Versorgungsspannung von max. 5.5V auf das Board kopieren.
    Im Terminal (z.B. Arduino IDE 1.8.19 Serial Monitor) mit Enter bestätigen und nun mit ein paar Befehlen das Board (z.B.RP2040-ZERO) für den SBUS einsatzbereit machen.
    Befehle: (für einfachen SBUS-Betrieb ohne Telemetrie)
    PROTOCOL=S (=S.PORT)
    SEC=29 (GPIO29) Anschluss SBUS vom Empfänger(CH1-16)
    SBUS_OUT=28 (GPIO28) falls gewünscht für weitere Boards oder Funktionen
    SAVE (einmal alles speichern und danach einmal Spannungsversorgung OFF/ON)
    Jetzt sollte der oXs_RP2040 bei korrektem Anschluss grün blinken.


    Nun die SEQ= in die Eingabezeile kopieren und mit ENTER Taste bestätigen, danach mit dem Befehl SAVE alles speichern. Einzelne Sequencen / Steps können nicht einzelnd ersetzt werden, es muss immer eine ganze Sequence SEQ= neu geladen werden.
    Bei korrekter SEQ= blinkt das Board noch immer grün, bei fehlerhafter SEQ= stopt die Funktion des RP2040 und die RGB-LED leuchtet dauerhaft rot.
    Desweiteren wird eine Fehlermeldung im Terminal ausgegeben, welche eine genaue Fehlerbeschreibung enthält.
    Bei richtiger Funktion sind nun an den Ausgängen GPio0 bis 15 entweder analoge Spannungen (0 bis 3.3V) oder ein RC-PWM-Signal für Servos,ESCs.... vorhanden, und kann über ein Touchpad LUA mit virtuellen Tasten vom Sender aus gesteuert werden.
    Es besteht die Möglichkeit jedes einzelne oXs_RP2040 Board mit einem RC-Kanal des SBUS (RC_CH1-16) zu steuern und mit bis zu 16 Funktionen zu belegen.
    D.h. RC-Kanal-8 steuert 16 Funktionen des oXs_RP2040-Board1 und wird über den SBUS_OUT zum nächsten oXs_RP2040-Board2 verbunden,welches unabhängig über den RC-Kanal-9 die nächsten 16 Funktionen steuern kann.usw....

    Die Sequence:
    Es können bis zu 16 Sequencer (GPio0-15) mit bis zu 256 Sequencen ausgeführt und gespeichert werden. Jeder Sequencer besteht mindestens aus 2 Sequencen (ON/OFF). Sequencer (GPio0-15) können nicht doppelt belegt werden.

    SEQ=
    [0 1 20 8 0 0 100]
    (-15 O) {50 0 1}
    (0 P) {0 127 0}
    (100 O) {100 100 1}
    [1 1 20 8 0 -100 100]
    (-20 P) {50 -100 1}
    (0 P) {0 127 0}
    (95 O) {50 100 1}


    Aufbau/Programmierung einer Sequence:

    Bei einer Korrektur eines Steps / Sequence muss immer eine ganze Sequence SEQ= geladen werden !!!

    SEQ= --Eine Squence biginnt immer mit dem Befehl SEQ= und endet mit der letzten Klammer ...100 1} des letzten Steps.

    [0 1 20 8 0 0 100]

    [0 --Ausgang/GPio (0) für die Ansteuerung der Funktion.
    1 --Beschaltung des Ausgangs: 1 für analoge Spannungen von 0V bis 3.3V um z.B. eine Treiberstufe ULN2803 anzusteuern, 0 für PWM um Servos ,ESC... anzusteuern
    20 --Zeitkonstante: 20ms, wählbar von 3ms bis 100.000ms
    8 --RC-Ansteuerkanal vom SBUS hier: RC-Kanal 8, RC -Kanal 1-16 möglich
    0 --Defaultwert des Ausgangs für die angeschlossene Aktoren bei Reboot oder Neustart,hier: 0% bei analog =0V, bei PWM=1500us Mittelstellung
    -100 --Minimal-Wert des Ausgangs für die angeschlossenen Aktoren, hier: -100%=988us min.-125% bei PWM, oder 0% bei analogem Ausgang für 0V.
    100] --Maximal-Wert des Ausgangs für die angeschlossenen Aktoren, hier: 100%=2012us max. 125% bei PWM, oder 100% bei analogem Ausgang für 3.3V


    (-15 O) {50 0 1}
    (0 P) {0 127 0}
    (100 O) {100 100 1}

    (-15 O) --Wertigkeit (-15%) für das Auslösen einer Funktion, P, O, U, R als Zusatz P=Priorisiert vor O= , U kann nicht durch P unterbrochen werden, R=Wiederholung.
    {50 0 1} -- Multiplikator (50) für die Zeitkonstante (3ms bis 100.000ms)= 50x20=1000ms = Anfahrtszeit, Ansteuerpunkt in % (0),0 bis 100 bei analog, -125 bis 125 bei PWM, Muliplikator (1) für die Zeitkonstante (3ms bis 100.000ms)= 1x20=20ms Abfahrtszeit bis zur nächsten Funktion

    (0 P) --Wertigkeit (0%) für das Auslösen einer Funktion, P, O, U, R als Zusatz P=Priorisiert vor O , U kann nicht durch P unterbrochen werden, R=Wiederholung.
    {0 127 0} -- Multiplikator (0) für die Zeitkonstante (3ms bis 100.000ms)= 0x20=0ms = Anfahrtszeit, Ansteuerpunkt in %,0 bis 100 bei analog, -125 bis 125 bei PWM, 127=Dummywert für den Haltepunkt, Muliplikator (0) für die Zeitkonstante (3ms bis 100.000ms)= 0x20=0ms Abfahrtszeit bis zur nächsten Funktion

    (100 O) --Wertigkeit (100%) für das Auslösen einer Funktion, P, O, U, R als Zusatz P=Priorisiert vor O= , U kann nicht durch P unterbrochen werden, R=Wiederholung.
    {100 100 1} -- Multiplikator (100) für die Zeitkonstante (3ms bis 100.000ms)= 100x20=2000ms = Anfahrtszeit, Ansteuerpunkt in % (100),0 bis 100 bei analog, -125 bis 125 bei PWM, Muliplikator (1) für die Zeitkonstante (3ms bis 100.000ms)= 1x20=20ms Abfahrtszeit bis zur nächsten Funktion.

    ---Wichtig---
    Die kleinste Wertigkeit in % wird immer zuerst, vor der höheren Wertigkeit in den Steps der Sequence aufgeführt!!!
    (-90)
    (-10)
    (10)
    (90)


    Funktionsbeschreibung: Button1 fährt Ausgang GPio0 stufenweise auf analog Wert 100% (3.3V), Button7 fährt Ausgang GPio0 stufenweise auf analog Wert 0% (0V)

    SEQ= Der Befehl zum Ausführen einer Sequence beginnt immer mit SEQ= und SAVE zum Speichern
    [0 1 20 8 0 0 100] Ausgang GPio0 / 1 für analog, 0 für PWM / Zeitkonstante 20ms (3ms bis 100.000ms)/ RC Steuer-Kanal(8) vom SBUS / Defaultstellung bei jedem Neustart (0%)/ Minimum Stellung bei Betrieb: 0% bei analog, -100% (-125%) bei PWM / Maximum Stellung bei Betrieb: 0% bei analog, 100% (125%) bei PWM
    (-15 O) {50 0 1} Ausführender Button (B7) bei bestimmten % Wert (-15%) / Funktion: Multiplikator 50 für Zeitkonstante 20ms (1000ms/1sec) um auf die Stellung 0% zu wechseln, Verbleib dort Multiplikator 1 für Zeitkonstante 20ms (1x20ms).
    (0 P) {0 127 0} Platzhalter/Dummywert für Stepwise-Betrieb Priorisiert: bei 0% verbleibt die letzte angefahrene Stellung im Speicher mit sofortiger Wirkung Multiplikator 0.
    (100 O) {100 100 1} Ausführender Button (B1) bei bestimmten % Wert (100%)/ Funktion: Multiplikator (100x20ms) schaltet innerhalb dieser Zeit auf Stellung 100% (3.3V) und verbleibt dort mindestens mit Multiplikator (1x20ms).


    Funktionsbeschreibung: Button2 fährt Ausgang GPio1 stufenweise auf PWM Wert 100% (2012us), Button8 fährt Ausgang GPio1 stufenweise auf PWM Wert 0% (988us)

    [1 0 20 8 0 -100 100] Ausgang GPio0 / 1 für analog, 0 für PWM / Zeitkonstante 20ms (3ms bis 100.000ms)/ RC Steuer-Kanal(8) vom SBUS / Defaultstellung bei jedem Neustart (0%)/ Minimum Stellung bei Betrieb: 0% bei analog, -100% (-125%) bei PWM / Maximum Stellung bei Betrieb: 0% bei analog, 100% (125%) bei PWM
    (-20 O) {50 -100 1} Ausführender Button (B8) bei bestimmten % Wert (-20%) / Funktion: Multiplikator 50 für Zeitkonstante 20ms (1000ms/1sec) um auf die Stellung -100% (988us) zu wechseln, Verbleib mindestens dort Multiplikator 1 für Zeitkonstante 20ms (1x20ms).
    (0 P) {0 127 0} Platzhalter/Dummywert 127 für Stepwise-Betrieb Priorisiert: Bei 0% verbleibt die letzte angefahrene Stellung im Speicher mit sofortiger Wirkung, Multiplikator 0 und kann mit sofortiger Wikung Multiplikator 0 abgerufen werden.
    (95 O) {50 100 1} Ausführender Button (B2) bei bestimmten % Wert (95%)/ Funktion: Multiplikator (50x20ms) schaltet innerhalb dieser Zeit auf Stellung 100% (2012us) und verbleibt dort mindestens mit Multiplikator (1x20ms).


    Beispiele: (fertige Sequencen für GPio0 bis 15 siehe Anhänge: einfach kopieren und in die Eingabezeile einfügen mit SAVE speichern)

    GPio14/15 analog Ausgang ON/OFF
    [14 1 20 8 0 0 100]
    (-85 P) {0 0 1}
    (30 O) {0 100 1}
    [15 1 20 8 0 0 100]
    (-90 P) {0 0 1}
    (25 O) {0 100 1}

    GPio14/15 Servo von default 0% nach 100% und bei Betätigung wieder zurück nach 0%
    [14 0 20 8 0 0 100]
    (-85 P) {25 0 1}
    (30 O) {25 100 1}
    [15 0 20 8 0 0 100]
    (-90 P) {25 0 1}
    (25 O) {25 100 1}

    GPio14/15 Servo1 von default 0% nach -100%, Servo2 nach 100%
    [14 0 20 8 0 -100 100]
    (-85 P) {25 0 1}
    (30 O) {25 -100 1}
    [15 0 20 8 0 -100 100]
    (-90 P) {25 0 1}
    (25 O) {25 100 1}

    GPio14/15 Servo1/2 von default 0% nach 100% mit Wechsel zu -100%
    [14 0 20 8 0 -100 100]
    (-85 P) {25 -100 1}
    (30 O) {25 100 1}
    [15 0 20 8 0 -100 100]
    (-90 P) {25 -100 1}
    (25 O) {25 100 1}

    GPio14/15 Servo1/2 von default 0% Stepwise nach 100% oder-100%
    [14 0 20 8 0 -100 100]
    (-85 O) {25 -100 1}
    (0 P) {0 127 1}
    (30 O) {25 100 1}
    [15 0 20 8 0 -100 100]
    (-90 O) {25 -100 1}
    (0 P) {0 127 1}
    (25 O) {25 100 1}

    Platzhalter Stepwise
    (0 P) {0 127 0} ohne Verzögerung
    (0 P) {1 127 1} mit Verzögerung
    -----------------------------


    -------WICHTIG---------

    Vor Erstinbetriebnahme ab Ver.2.11.35 folgende Befehle ausführen und mit SAVE speichern.
    SPI_CS=255
    Enter
    SPI_SCK=255
    Enter
    SPI_MOSI=255
    Enter
    SPI_MISO=255
    Enter
    SAVE


    Informationen zu den Anhängen:

    Wichtig: Bei der Einrichtung der DIY5143, DIY5144 und DIY5145, DIY5146 Telemetriesensoren im Sender-Telemetrie-Sensor-Menue den Bereich bitte auf Minimum und Maximum setzen, Verhältnis 100%, Offset 0.

    In dem Ordner.zip befinden sich neben einer kleinen Anleitung alle oXs.uf2 builds für den Solo-Betrieb V1 (16 Ausgänge) oder für den Twin-Betrieb V2 (32 Ausgänge),

    sowie eine .txt Datei mit fertigen SEQ= Scripten zum kopieren und sofort loslegen, und eine Modellconfig.txt Dateien für den FrSky

    Sender (Ordner Scripts/oXsPad36T und oXsPad36T2 config) um ein leichteres und schnelleres Installieren zu ermöglichen.


    Wir (Uwe und meine Wenigkeit) wünschen viel Erfolg bei der Installation und viel Spaß beim Ausprobieren der Funktionen.

    Viele Grüße,

    Torsten

  • Teil 4

    Lua Script zur einfachen Bedienung mit integrierter Rückmeldung:

    auch für das RP2040 Projekt gibt es ein passendes virtuelles Pad. Um alle Funktionen abbilden zu können, hat es drei Seiten mit jeweils 12 Tasten

    wie üblich kann jede Taste oben und unten individuell beschriftet werden. Die gedrückte Taste wird farblich markiert so lange sie gedrückt wird. Die Farbe der gedrückten Taste ist wählbar.
    Neu ist eine einstellbare Rückmeldung für jede Taste:

    für jede Taste kann der Sequenzer, der angezeigt werden soll, der Wert, ein Operator und die Tastenfarbe eingestellt werden. Damit lassen sich auch Bereiche (>0%) anzeigen.

    Da das über 200 Einstellmöglichkeiten sind, gibt es die Möglichkeit, ein Konfigurationsfile zu laden:

    Diese Konfigurationsfiles lassen sich auch am PC bearbeiten und von anderen Modellen übertragen.
    Das Script ist fertig, die Anleitung dauert noch etwas....

    oX2Pad_36Tasten.zip. oXsPad_36Tasten_Zweitpad.zip

    Wenn ein oXs Baustein genutzt wird (das wird ja in den meisten Fällen reichen..) müssen die Dateien aus dem Ordner oXsPad_36Tasten installiert werden. Dazu die Ordner im Unterordner "scripts" ohne Änderungen und mit genau gleichem Namen in den Ordner "scripts" auf dem Sender kopieren. Der Ordner scripts muss evt. noch erstellt werden. Wenn die Ordnernamen geändert werden, wird das Konfigurationsfile nicht gefunden.
    Wenn zwei Bausteine RP2040 genutzt werden sollen, müssen andere Scripte benutzt werden, es wird eine andere Source und auch ein anderes Tastenscript benötigt (wegen der Konfigurationsdatei). Dann müssen die anderen Ordner zusätzlich in den "scripts" Ordner kopiert werden.

    Viele Grüße Uwe

    22642153hl.jpg

    5 Mal editiert, zuletzt von ujessen (2. März 2024 um 20:11)

  • Hardware:

    fertige Platinendesigns zunächst für den RP2040Zero gibt es natürlich auch:

    Auf der rechten Seite die kleinste Version. Enthalten sind alle 16 Ausgänge. Es kann ein 8fach Treiber 2803 verbaut werden (unten). Alternativ kann die Platine gekürzt und dann 16 Servoausgänge verbaut werden (Mitte). So ist z.B. auch ein 16fach S-Bus Decoder zu realisieren. Zusätzlich implementiert ist die Telemetrie der Bordspannung (2s und 3s) und des Stromverbrauchs sowie der verbrauchten Kapazität. Auf der linken Seite eine Version mit integriertem Mini-Empfänger.
    Falls mehr Telemetrie erwünscht ist (Hydraulikdruck, Temperatur, Lagesensor, GPS), ist ein etwas größeres Prozessorboard sinnvoll, das Platinendesign dafür ist auch fertig aber noch nicht produziert.
    Alle Platinendesigns sind als Gerber-Files bei uns (natürlich kostenlos...) erhältlich.

  • Hallo Uwe und Torsten.

    Mir schlakern schon die ohren vom vielen lesen. Aber für mich als Laie und kein

    englich.

    Muß morgen mal weiter lesen (jetzt zu spät)

    Euere Arbeit müßte doch belohnt werden wo andere für kleinigkeiten viel geld

    verlangen. :res:res:res

    Danke für die arbeit für die funktionsmodeler. werde mich noch mal melden

    gruß guido :well

  • Kurzanleitung:

    Dauer der kompletten Einrichtung des oXs_RP2040 (Waveshare RP2040 Zero) mit SequencerX ca. 15 Minuten !!!

    Es gibt hier jetzt auch mal die Kurzversion der Installation des oXs.uf2 Builds inklusive des Sequencer Scriptes mit allen Befehlen und Hinweisen, die man zur Ersteinrichtung braucht.
    -- Arduino IDE 1.8.19 inclusive Treiber für Pico RP2040 installieren und den Seriellen Monitor öffnen.
    -- Ordner aus dem Anhang auf den PC kopieren und entpacken.
    -- Das RP2040 Board mit Spannung (max.5,5V) versorgen und bei gedrückter Reset und Boot Taste, die Reset Taste loslassen damit der interne RP2040 Ordner erscheint.
    -- Ordner oXsV1+V2+Seq öffnen. Den Inhalt des Ordners V1_5143+5144 (oXs.uf2) auf den RP2040 per Drag and Drop kopieren. Nun ist die Firmware des oXs_RP2040 geladen und das Board führt eigenständig einen Reboot durch. Jetzt kann man im Seriellen Monitor Terminal die Config des oXs_RP2040 erkennen.
    -- Nun werden die ersten Befehle in diese Firmware über die Eingabezeile im Terminal eingegeben:
    Bei S.PORT und SBUS Betrieb: (RP2040 Zero)
    PROTOCOL=S , SEC=29 TLM=28 , SAVE
    Bei FBUS Betrieb: (Pimoroni Servo2040)
    PROTOCOL=F , PRI=21, SAVE
    -- Jetzt wird die Verkabelung vom Empfänger zum Board (RP2040 Zero) hergestellt. Dazu vom Empänger SBUS mit GPio29 und S.PORT mit GPio28 verbinden.
    -- Zum jetzigen Zeitpunkt kann man entweder die Servos oder die ULN2803 Treiber samt LED an den GPio0 bis GPio15 installieren / verbinden.
    -- Nun öffnen wir die Text Datei: SequencerV1+V2.txt und kopieren ein ganzes Sequencer Script (entweder für analog oder PWM) ab SEQ= bis zum letzten } in die Eingabezeile des Terminal Programms.
    (Es sind mehrere Scripts, für analog Spannung und für PWM Betrieb vorhanden) Nach erfolgreichem Kopieren mit SAVE alles speichern.
    Der oXs_RP2040 mit SequencerX ist nun Betriebsbereit !!!

    Wichtig: Bei der Einrichtung der DIY5143, DIY5144 und DIY5145, DIY5146 Telemetriesensoren im Sender-Telemetrie-Sensor-Menue den Bereich bitte auf Minimum und Maximum setzen, Verhältnis 100%, Offset 0.

    Viel Spaß und Erfolg wünscht,

    Torsten

  • Hallo Uwe, hallo Thorsten,


    auch von meiner Seite den allergrößten Respekt, dass Ihr dass so professionell, für jeden verfügbar und dann auch noch kostenlos ausarbeitet und zur Verfügung stellt.

    Ganz herzlichen Dank für Eure Leistung.:top:top:top

    Ich bin sehr interssiert an einer Platinenversion. Wie komme ich an die Daten?


    Viele Grüße


    Dirk

  • Hallo Thorsten und Uwe,

    Auf dem ersten Blick klingt auch die Kurzfassung von der Anleitung noch sehr kompliziert. Ich werde das trotzdem mal ausprobieren. Bis jetzt hatte ich mich nur mit einem Arduino Erfahrung sammeln können, als ich damit eine Ampelschaltung und die Preistafel für eine Tankstelle gebaut hatte.

    Hallo Steffen,

    Man muss nur etwas kopieren und ein paar Befehle absetzen, mehr nicht.

    Ich bin sehr zuversichtlich, das das jeder schaffen wird. :-))

    Das ist ja erstmal nur die oXs.uf2 Software und das Seq= Script für den RP2040.

    Uwe wird ja noch das Lua Widget mit 36 Buttons veröffentlichen, dann ist alles komplett.

    Bei Fragen helfe ich immer gerne weiter, ob hier im Forum, oder per PN, oder ...., alles kein Problem.

    Viele Grüße,

    Torsten

  • Hallo,

    Danke für die Arbeit. Werde das alles mal antesten.

    Aktuell wird ja der ganze Bildschirm belegt. Ist auch eine halbe Portion mit "nur" 6 Tasten geplant?

    Hab etwas Mühe das auf meiner X20 korrekt zu installieren. Wenn ich die Pfadstruktur aus dem ZIP abbilde, sehe ich die Skripte nicht, Wenn ich die "srcipt" struktur kopiere läuft das Script soweit. Aber wo muss der /bitmap ordner hin?

    Gruß

    Onki

  • Hallo,

    der Inhalt des Ordners "/bitmaps" muss in den Ordner "/bitmaps" auf dem Sender. Das gleiche gilt für den Inhalt des ordners "/scripts"
    Bei einigen FrSky Sendern muss dann noch der Speicherplatz festgelegt werden (SD-Karte oder Nand Speicher). Die X20 hat allerdings nur die SD Karte
    Ein kleineres Widget ist nicht in Planung.

  • Hallo,

    Torsten und Uwe gebührt großer Dank für Ihre Leistung bei diesem Projekt.

    Ich habe auch schon 2 RP2040zero Boards im "Doppelpack" mit 2 Scriptinstanzen im Testbetrieb. Alles funktioniert bestens und somit können 32 Schalt- oder Servofunktionen in jeglicher Anzahl der Mischung der Funktionen auf nur 2 Fernsteuerkanälen realisiert werden. Und das ganze über S-Bus/S.Port oder F-Bus. Man belegt sich keine weiteren Ausgänge am Empfänger und es bleiben dadurch alle weiteren PWM- Ausgänge am Empfänger frei nutzbar. Eine weitere Möglichkeit ist auch die, den oXs als S-Bus zu PWM-Decoder zu betreiben. Das auch in Mischung von normalen Servoausgängen und Funktionsausgängen. Bisher nutze ich ein Bord mit 16 Schaltfunktionen mit zwei nachgeschalteten ULN2803A und ein Board mit 16 Servos (als Funktionsausgänge und nicht S-Bus zu PWM).

    Weiterhin kann der oXs natürlich auch für weitere Telemetriesensoren im Selbstbau genutzt werden.

    Durch die universelle Sequenzer- und Telemetrie/Rückmeldekonfiguration lassen sich viele "Aufgaben" und Rückmeldeanzeigen realisieren. Man kann komplette Lichtanlagen für Fahrzeuge und Schiffe komfortabel erstellen und jede Menge zusätzliche Servos (oder auch Regler) für Zusatzfunktionen betreiben mit umfangreichen Möglichkeiten der Helligkeitssteuerung von Lichtausgängen mit unterschiedlichsten Blink/Blitzfunktionen, Ablaufsteuerungen sowie End- Zwischenpunkten für Servos, einschließlich unterschiedlicher Laufgeschwindigkeiten. Es gibt wahnsinnig viele Möglichkeiten.

  • Hallo,

    Kleine Info:

    Bei Verwendung des FrSky FBUS Protokolls am Empfänger, braucht man nur eine einzige Kabelverbindung bzw. Steckplatz für bis zu 32 Funktionen.

    Der FBUS kann auf allen RP2040 Boards verwendet werden, die die Anschlüsse für PRI= GPio 5, 9, 21, 25 zur freien Verfügung haben.

    z.B. Pimoroni Servo2040,

    Link: https://botland.de/servotreiber/2…9894021439.html

    oder Pico Mini RP2040

    Link: https://de.aliexpress.com/item/100500609…ayAdapt=glo2deu

    Wenn nur die Möglichkeit von S.PORT und SBUS besteht sind es gerade mal 2 Verbindungen / Steckplätze am Empfänger, wobei nur von der zweiten Verbindung die Signalader benötigt wird. z.B. bei Verwendung des RP2040 Zero

    Viele Grüße,

    Torsten

  • Hallo,

    Hier eine Aufnahme von zwei Boards im Verbund mit 32 Funktionen. Der TD-R10 Empfänger ist mit beiden Boards über FBUS mit einem Y-Kabel verbunden.

    Der FBUS RC Kanal 8 steuert das Pico Mini RP2040 (oben) mit 16 Ausgängen an denen sich 2x ULN2803 Treiber mit 16 xLED befinden.

    Weiterhin steuert der FBUS RC Kanal 9 das zweite Board (Servo2040) mit 16 Ausgängen an denen sich auch 2x ULN2803 Treiber mit 16x LED befinden.

    Viele Grüße,

    Torsten

  • :moin::moin: Ihr Beiden,


    wirklich Wahnsinn, was Ihr hier auf die Beine stellt.
    Leider ist, für einen Laien, wie mich, das Meiste geschriebene und erklärte NICHT verständlich.
    ABER, dass was man so daraus liest, ist schon super.

    Ich bin mal gespannt, wer diese(n) Baustein als erstes "benötigt"
    Dabei fallen ja jemandem jede Menge Ideen ein, die man verwirklichen kann/könnte

    Weiter so, ichb bleibe gespannt dabei.

    Vielen Dank Euch beiden, für die Arbeit und Mühe, die ihr hier kostenlos anbietet.

    Lieben Gruß und einen schönen Sonntag


    Markus

    Geht nicht, gibt`s nicht

    Gruß Markus



  • Hallo,

    und für Besitzer der Frsky Tandem XE gibt es in Kürze noch ein zusätzliches Gimmick.
    Die XE hat ja ein zweites kleineres Display über dem Hauptdisplay ohne Touch Funktion. Dies ist natürlich prädestiniert für eine Symbolanzeige.
    Und voila, die gibt es jetzt in Verbindung mit dem RP2040:



    abgebildet ist hier eine kleine Lichtanlage mit den wichtigsten Funktionen. Abhängigkeiten sind programmiert, Fahrlicht geht nicht ohne Standlicht etc. Über die Rückmeldung wird auch das obere Display geschaltet. Aktuell gibt es 20 Piktogramme, für jedes kann der Rückmeldekanal, Rückmeldewert und auch die Symbolposition gewählt werden. 16 Symbolpositionen sind möglich, eigene Symbole können natürlich erstellt werden, dafür gibt es Zusatz1 und Zusatz2.
    Eine "Basistelemetrie" (Bordspannung, Strom, Empfangsstärke) werden bedarfsweise auch angezeigt, die Farbe der Batterie wechselt dabei von grün über orange nach rot.

    Für die abgebildete Lichtanlage müssten nur 1 Sequenzerfile auf den RP2040 und 2 Konfigurationsfiles in den Sender geladen werden. Es kann aber natürlich auch alles einzeln programmiert werden.

    Das Script ist fertig, ich muss nur noch etwas testen und einige Piktogramme erstellen dann wird es auch veröffentlicht.
    Die Quellen für Spannung, Strom, RSSI etc. sind natürlich frei wählbar, ein Betrieb ohne die RP2040 Rückmeldung ist allerdings nicht vorgesehen.

Jetzt mitmachen!

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