Multiswitch 8 und Pro 12+2 Kompatiebel mit Robbe Futaba

  • Multiswitch 8 und Pro 12+2 Kompatibel mit Robbe Futaba


    Hier stelle ich meine Multiswitche für meine Robbe Futaba Funke F14 vor
    Die Multiswitche sind kompatibel zu den originalen F1513 (Schalter im Sender F1511) und 8370 (Schalter im Sender 8101) Modulen
    In den Multiswitchen arbeitet ein Arduino Pro Mini mehr Infos siehe Schaltpläne.
    Multiswitch_8_sch.png
    Meine ersten Prototypen habe ich auf Loch Raster Patienten aufgebaut .
    Platine_5_MSwitch_8.jpg
    Da mir das aber Zuviel gefriemel war, habe ich habe Ich mit "Eagle" ein Platinenlayout erstellt.
    Multiswitch_8_brd.png
    Bestellt habe ich die Platinen in Fernost bei https://jlcpcb.com. 2$ für 5 Stück !!!
    Per Express Versand hat man die nach ca. 10 Werktagen in den Händen.
    Multiswitch_8_brd_front_finish.jpg
    Die Gehäuse habe ich mit Fusion 360 entworfen und auf dem 3D-Drucker ausgedruckt.
    Multiswitch_8_3d.png
    Multiswitch_8_finish.jpg


    Die Projekte habe ich auf Github geladen
    https://github.com/Ziege-One/Multiswitch_8
    https://github.com/Ziege-One/Multiswitch_Prop_12_2 noch offline


    Habe auch noch YouTube Videos zu Thema gemacht


    Projekt RC Multiswitch (1) Theorie Beschreibung des Verfahrens

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Projekt RC Multiswitch (2) Schaltplan, Platine und Software

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Projekt RC Multiswitch (3) Multiswitch_Prop_12_2

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Die Software könnte man auch auf andere Decoder umprogrammieren !!!


    Mit freundlichen Grüßen
    Der RC-Modellbauer (Ziege-One)

  • Das ist ja super!

    Gruß Michael

    Werft:
    Hafenboot Silke
    Pegasus III
    Rennjacht Magnum mit Z-Antrieb


    Hafen:
    Hafenschlepper Odin
    Kajütkreuzer Paloma
    Binnenmotorjacht Commodore
    Sportboot Scimitar Speed 2x
    Portofino
    Portofino Eigenbau mit 3 Jet´s
    Rennboot Express von Gundert
    Schlachtschiff Missouri
    Rennjacht Magnum


    Auf dem Speicher:
    Broom 44 von Krick
    Krabbenkutter Sirius von Krick
    Vermessungsschiff Norderney
    Rennyacht Riva 2000

  • Moin Frank,
    dein Link zum Platinenätzer stimmt nicht.
    Sollte doch sicher "https://jlcpcb.com/" heißen :)
    p.s. Schönes Projekt :2:

    Gruß Achim


    HoTT Mx12 - Mx20 - Mc20 - Radiomaster TX16S

    Georg Breusing (Werftaufenthalt), Cap San Diego, Southampton Tug (gepimpt),

    Feuerwehrschiff, Goliath (jeweils 2mot. 160cm Schaffer-Rumpf),

    Aeronaut Victoria, Aeronaut Princess, Aeronaut ANNA 3, Robbe St.Germain,

    Micro Magic, Colin Archer Pipi, Seawind,

    ein paar Flieger.
    http://www.mfsv-bs.de/

  • Wenn ich mir den Sketch so anschaue, könnte man den auch Problemlos an CP-Module anpassen.

    Ja
    Die Auswertung ist ja nur in der Software realisiert.
    Man müsste nur die Impulslängen ermitteln und in der Software anpassen.
    Ich glaube bei den CP-Modulen liegt der Sync Impuls innerhalb der Range von 1ms bis 2ms. (Futaba < 1ms).
    Sollte also kein Problem sein.


    Mit freundlichem Gruß
    Ziege-One

  • Das Protokoll ist im Video erklärt.
    Oder im Code erkennbar. :juhu:

    Scherzkeks,


    Sync = (< 1ms). Ich dachte, das könnte etwas genauer sein. Würde ich entsprechendes über Graupner Nautik Module schreiben, würde man mich wohl fünf-teilen. Und das im Video bei 5:00 gesagt wird, das 2G4 Systeme nicht unter 1ms gehen können, ist bestimmt nicht ernst gemeint.


    Bitte verstehe meine Kritik NICHT als Gemecker. Es ist immer schön, wenn sich jemand die Mühe macht und etwas bastelt und öffentlich macht. Aber einige Aussagen sind wirklich so wische waschi und vermitteln einigen Anwendern völlig falsches Wissen.

  • Scherzkeks,
    Sync = (< 1ms). Ich dachte, das könnte etwas genauer sein. Würde ich entsprechendes über Graupner Nautik Module schreiben, würde man mich wohl fünf-teilen. Und das im Video bei 5:00 gesagt wird, das 2G4 Systeme nicht unter 1ms gehen können, ist bestimmt nicht ernst gemeint.


    Bitte verstehe meine Kritik NICHT als Gemecker. Es ist immer schön, wenn sich jemand die Mühe macht und etwas bastelt und öffentlich macht. Aber einige Aussagen sind wirklich so wische waschi und vermitteln einigen Anwendern völlig falsches Wissen.

    Hi
    Sync = (< 1ms) waren glaub ich 0.984ms hatte das Mal über eine Auswertesoftware ermittelt. Das Jeti system gibt explizit 1 bis 2 ms aus, das muss in den Einstellungen eingestellt werden. Wie das bei anderen Systemen ist kann ich nicht sagen. Das hätte ich auf das Jeti beziehen sollen.
    MfG
    Ziege-One

  • N'Abend zusammen,


    gerne greife ich das Thema Multiswitch an der Stelle auch nochmal auf. :nick: Bin ja ein großer Fan von Frank (aka @Ziege-One :fr2: ) und folge seinem Kanal auf YT.


    Nachdem leider irgendwas mit meinem "diskreten Multiswitch" in meiner umgebauten FM6014 nicht funktioniert hat :kratz: hab ich mich kurzerhand entschlossen, ebenfalls einen 8-fach Decoder (über zwei Kanäle) mit einem Arduino Nano zu basteln.


    Das coding ist sicherlich nicht perfekt :dno: erfüllt allerdings seinen Zweck :nick: (und der Zweck heiligt doch die Mittel, oder? :D ) Das stelle ich gerne unten zur Verfügung. Die Eingänge sind Pin 2 & 3, die Ausgänge Pin 4 bis 11. Saft ziehe ich direkt über den Empfänger (VIN und GRD). Der Strom für den Schaltkreis kommt vom 5V Pin und einem weiteren GRD.


    Ich habe den Arduino allerdings (noch?) nicht auf die Platine gepackt, weil ich ein wenig flexibler sein will, was den Einbau angeht. Auch will ich die Sonderfunktionen, die man damit steuern kann, dann über einen oder mehrere weitere Arduinos oder integrierte Schaltkreise laufen lassen und nicht unbedingt direkt über die Anschlüsse (was theoretisch möglich sein sollte :kratz: ).


    Hoffentlich erkennt man was auf den Bildern. :sh:
    IMG_1415.JPGIMG_1416.JPGUntitled Sketch_Steckplatine.jpg


    Grüße :wink:

    Leichtmatrose an Neckar, Kocher & Jagst


    In Planung:
    A1414 Glücksburg (Typ 701 C)


    Im Trockendock:
    U.S.S. Iowa (BB-61) 1:200 [Semi-Scale] "the big stick"


    In der Werft:
    U.S.S. New York (LPD-21) 1:200 [Semi-Scale] "never forget"
    robbe "Schütze"

  • int S1 = 2;
    int F1 = 4;
    int F2 = 5;
    int F3 = 6;
    int F4 = 7;
    int PWM1;
    int F12StateOld = 0;
    int F12StateNew = 0;
    int F34StateOld = 0;
    int F34StateNew = 0;


    int S2 = 3;
    int F5 = 8;
    int F6 = 9;
    int F7 = 10;
    int F8 = 11;
    int PWM2;
    int F56StateOld = 0;
    int F56StateNew = 0;
    int F78StateOld = 0;
    int F78StateNew = 0;


    int dt = 200;


    void setup() {
    // put your setup code here, to run once:
    pinMode(S1,INPUT);
    pinMode(F1,OUTPUT);
    pinMode(F2,OUTPUT);
    pinMode(F3,OUTPUT);
    pinMode(F4,OUTPUT);
    pinMode(S2,INPUT);
    pinMode(F5,OUTPUT);
    pinMode(F6,OUTPUT);
    pinMode(F7,OUTPUT);
    pinMode(F8,OUTPUT);
    Serial.begin(9600);
    }


    void loop()
    {
    // put your main code here, to run repeatedly:
    PWM1 = pulseIn(S1,HIGH);//lese den Input
    if(PWM1 >= 1800)
    {
    F12StateNew = 1;//setzte den neuen Status auf 1, wenn Knopf gedrückt wird
    }
    if(F12StateOld == 0 && F12StateNew == 1)//Wenn vorher nichts war und Schalter gedrückt wird
    {
    digitalWrite(F1,HIGH);
    delay(dt);
    F12StateOld = 1;//setzt den alten Schalterzustand auf 1
    F12StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F12StateOld == 1 && F12StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F2,HIGH);
    delay(dt);
    F12StateOld = 2;//setzt den alten Schalterzustand auf 2, da nicht mehr gedrückt wird
    F12StateNew = 3;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F12StateOld == 2 && F12StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F1,LOW);
    delay(dt);
    F12StateOld = 3;//setzt den alten Schalterzustand auf 3, da nicht mehr gedrückt wird
    F12StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F12StateOld == 3 && F12StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F2,LOW);
    delay(dt);
    F12StateOld = 0;//setzt den alten Schalterzustand auf 0, da nicht mehr gedrückt wird
    F12StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    PWM1 = pulseIn(S1,HIGH);//lese den Input
    if(PWM1 <= 1200)
    {
    F34StateNew = 1;//setzte den neuen Status auf 1, wenn Knopf gedrückt wird
    }
    if(F34StateOld == 0 && F34StateNew == 1)//Wenn vorher nichts war und Schalter gedrückt wird
    {
    digitalWrite(F3,HIGH);
    delay(dt);
    F34StateOld = 1;//setzt den alten Schalterzustand auf 1
    F34StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F34StateOld == 1 && F34StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F4,HIGH);
    delay(dt);
    F34StateOld = 2;//setzt den alten Schalterzustand auf 2, da nicht mehr gedrückt wird
    F34StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F34StateOld == 2 && F34StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F3,LOW);
    delay(dt);
    F34StateOld = 3;//setzt den alten Schalterzustand auf 3, da nicht mehr gedrückt wird
    F34StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F34StateOld == 3 && F34StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F4,LOW);
    delay(dt);
    F34StateOld = 0;//setzt den alten Schalterzustand auf 0, da nicht mehr gedrückt wird
    F34StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }


    PWM2 = pulseIn(S2,HIGH);//lese den Input
    if(PWM2 >= 1800)
    {
    F56StateNew = 1;//setzte den neuen Status auf 1, wenn Knopf gedrückt wird
    }
    if(F56StateOld == 0 && F56StateNew == 1)//Wenn vorher nichts war und Schalter gedrückt wird
    {
    digitalWrite(F5,HIGH);
    delay(dt);
    F56StateOld = 1;//setzt den alten Schalterzustand auf 1
    F56StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F56StateOld == 1 && F56StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F6,HIGH);
    delay(dt);
    F56StateOld = 2;//setzt den alten Schalterzustand auf 2, da nicht mehr gedrückt wird
    F56StateNew = 3;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F56StateOld == 2 && F56StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F5,LOW);
    delay(dt);
    F56StateOld = 3;//setzt den alten Schalterzustand auf 3, da nicht mehr gedrückt wird
    F56StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F56StateOld == 3 && F56StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F6,LOW);
    delay(dt);
    F56StateOld = 0;//setzt den alten Schalterzustand auf 0, da nicht mehr gedrückt wird
    F56StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    PWM2 = pulseIn(S2,HIGH);//lese den Input
    if(PWM2 <= 1200)
    {
    F78StateNew = 1;//setzte den neuen Status auf 1, wenn Knopf gedrückt wird
    }
    if(F78StateOld == 0 && F78StateNew == 1)//Wenn vorher nichts war und Schalter gedrückt wird
    {
    digitalWrite(F7,HIGH);
    delay(dt);
    F78StateOld = 1;//setzt den alten Schalterzustand auf 1
    F78StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F78StateOld == 1 && F78StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F8,HIGH);
    delay(dt);
    F78StateOld = 2;//setzt den alten Schalterzustand auf 2, da nicht mehr gedrückt wird
    F78StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F78StateOld == 2 && F78StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F7,LOW);
    delay(dt);
    F78StateOld = 3;//setzt den alten Schalterzustand auf 3, da nicht mehr gedrückt wird
    F78StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    if(F78StateOld == 3 && F78StateNew == 1)//Wenn vorher an war und Schalter nochmal gedrückt wird
    {
    digitalWrite(F8,LOW);
    delay(dt);
    F78StateOld = 0;//setzt den alten Schalterzustand auf 0, da nicht mehr gedrückt wird
    F78StateNew = 0;//setzt den neuen Schalterzustand auf 0, da nicht mehr gedrückt wird
    }
    }

    Leichtmatrose an Neckar, Kocher & Jagst


    In Planung:
    A1414 Glücksburg (Typ 701 C)


    Im Trockendock:
    U.S.S. Iowa (BB-61) 1:200 [Semi-Scale] "the big stick"


    In der Werft:
    U.S.S. New York (LPD-21) 1:200 [Semi-Scale] "never forget"
    robbe "Schütze"

  • Moin Mike,

    Saft ziehe ich direkt über den Empfänger (VIN und GRD).

    wie hoch ist den die Empfänger-Spannung? VIN sollte mindestens 7V betragen. Ich weiß das es auch mit weniger funktionieren kann, aber ob das dauerhaft stabil läuft?
    Ich könnte mir vorstellen, das ein Servo unter Last mal ein bisschen mehr Strom zieht und dann die Spannung unter die Schwelle des Arduinos einbricht.


    Zitat

    Der Strom für den Schaltkreis kommt vom 5V Pin und einem weiteren GRD.

    Wäre es nicht besser die Transistoren als Open-Kollektor zu verschalten? Dann könntest du auch Verbraucher mit anderen Spannungen als 5V schalten und gleichzeitig den 5V Regler auf dem Arduino Board entlasten. Die LEDs mit Vorwiderstand kannst du direkt an die Ausgänge gegen GND hängen, so daß die Einschaltkontrolle auch weiterhin ohne Verbraucher funktioniert.

  • Hallo Reiner,


    dank dir für die Rückmeldung. :2:


    wie hoch ist den die Empfänger-Spannung?

    du, das habe ich mich auch schon gefragt, nur noch gar nicht gemessen. :kratz:

    Ich könnte mir vorstellen, das ein Servo unter Last mal ein bisschen mehr Strom zieht und dann die Spannung unter die Schwelle des Arduinos einbricht.

    genau sowas hab ich mir auch schon gedacht , :id: daher will ich auch zum Bleistift Servos nicht unbedingt dran hängen. :no2: Hab mir das ganze eher als "Verteiler" gedacht, um weitere "Erweiterungsmodule" anzusteuern. Sprich wenn da ein Signal an dem Ausgang ankommt (also "HIGH"), dann mach dies oder das. Dann wäre ich flexibler in den Anwendungen, die ich nutzen könnte. Ich hab mir das so vorgestellt, dass ich dann weitere Bausteine mit speziellen Aufgaben dranhängen kann (Lichtsteuerung, Soundmodule, Sonderfunktionen, etc.).

    Wäre es nicht besser die Transistoren als Open-Kollektor zu verschalten? Dann könntest du auch Verbraucher mit anderen Spannungen als 5V schalten und gleichzeitig den 5V Regler auf dem Arduino Board entlasten.

    ob du es glaubst oder nicht, das hatte ich am Anfang auch vor. Einen Klemmkontakt oder Stecker anlöten und dann einen Akkupack mit 7,2 Volt anschließen. Bin allerdings davon weg, weil ich selbst nicht genau weiß, was ich noch alles anschließen will. :bhi: Eventuell sind dann 7,2V doch zu viel. ;) Daher "nur" die Spannung vom Arduino.


    Die LEDs mit Vorwiderstand kannst du direkt an die Ausgänge gegen GND hängen, so daß die Einschaltkontrolle auch weiterhin ohne Verbraucher funktioniert.

    Sieht man wahrscheinlich auf dem einen Bild schlecht, die LED für die Kontrolle, ob ein Ausgang gerade aktiv ist, hängen tatsächlich an GRD. Also gehen auch ohne, dass etwas an dem Ausgang angeschlossen ist. :nick: genau so wollte ich es, falls was nicht funktioniert, ich ausschließen kann, dass es am Ausgangssignal liegt.


    Grüße

    Leichtmatrose an Neckar, Kocher & Jagst


    In Planung:
    A1414 Glücksburg (Typ 701 C)


    Im Trockendock:
    U.S.S. Iowa (BB-61) 1:200 [Semi-Scale] "the big stick"


    In der Werft:
    U.S.S. New York (LPD-21) 1:200 [Semi-Scale] "never forget"
    robbe "Schütze"

  • Moin Mike

    du, das habe ich mich auch schon gefragt, nur noch gar nicht gemessen. :kratz: genau sowas hab ich mir auch schon gedacht , :id: daher will ich auch zum Bleistift Servos nicht unbedingt dran hängen. :no2:

    Vielleicht haben wir uns hier missverstanden, ich meinte die Servos am Empfänger. Diese bekommen ja auch die (normalerweise) 5-6V, welche der Arduino bekommt. Oder laufen sie bei dir über ein BEC?
    Dann ist es wahrscheinlich kein Problem, ansonsten wäre vielleicht ein BEC mit 7,4V Ausgang für den Arduino empfehlenswert, oder auch mit 5V Ausgang und dann statt an VIN direkt an den 5V Pin gehen.

    Zitat

    ob du es glaubst oder nicht, das hatte ich am Anfang auch vor. Einen Klemmkontakt oder Stecker anlöten und dann einen Akkupack mit 7,2 Volt anschließen. Bin allerdings davon weg, weil ich selbst nicht genau weiß, was ich noch alles anschließen will. [Blockierte Grafik: https://www.rc-modellbau-schiffe.de/wbb2/wcf/images/smilies/smiley94.gif] Eventuell sind dann 7,2V doch zu viel. [Blockierte Grafik: https://www.rc-modellbau-schiffe.de/wbb2/wcf/images/smilies/wink.png] Daher "nur" die Spannung vom Arduino.

    Mit einer Open-Kollektor Schaltung könnte man "mischen", d.h. einige Verbraucher mit 5V, andere mit 7,2V betreiben. Ist aber natürlich deine Entscheidung; ich bin gerne flexibel, und mache es damit manchmal aber auch komplizierter. :D

    Zitat

    Sieht man wahrscheinlich auf dem einen Bild schlecht, die LED für die Kontrolle, ob ein Ausgang gerade aktiv ist, hängen tatsächlich an GRD.

    Hatte ich gesehen, aber sie werden auch über den Transistor geschaltet. Ich meinte im Falle einer Open-Kollektor Schaltung die LED direkt an den Ausgang des Arduinos zu hängen, so daß sie auch dann immer den Zustand anzeigen, ohne von der Spannungsversorgung der Verbraucher abhängig zu sein.
    Wenn du die Kollektorschaltung/Emitterfolger so lässt, dann würde ich das aber auch nicht mehr ändern.

    Zitat

    Also gehen auch ohne, dass etwas an dem Ausgang angeschlossen ist. [Blockierte Grafik: https://www.rc-modellbau-schiffe.de/wbb2/wcf/images/smilies/smiley84.gif] genau so wollte ich es, falls was nicht funktioniert, ich ausschließen kann, dass es am Ausgangssignal liegt.

    Gut gedacht. [Blockierte Grafik: https://www.rc-modellbau-schiffe.de/wbb2/wcf/images/smilies/thumbup.png]


    Ich bin auch ein Freund von LED Zustandsanzeigen, macht die Fehlersuche (wenn nötig) viel einfacher.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!