Schlagwort: futaba

  • Wie ich eine Futaba mit Spektrum-Empfängern verheiratet habe

    Wie ich eine Futaba mit Spektrum-Empfängern verheiratet habe

    Quest #059 · Werkstatt · +250 XP

    Wie ich eine Futaba mit Spektrum-Empfängern verheiratet habe

    Es war Januar 2013. Vor dem Fenster Schnee, im Werkstattfenster Eisblumen, auf dem Werktisch ein Arduino Pro Mini in der Größe einer Briefmarke, daneben eine Spektrum DX4e, die ich gerade mit einem kleinen Schraubenzieher zerlegt hatte. In der Hand hielt ich das HF-Modul des Senders — ein kleines Stück Platine mit einem Antennenstrang und drei Lötpunkten. Daneben stand eine Futaba FX30, mein guter alter Sender, in der Hand seit Jahren, mit allen Speicherplätzen für meine Modelle und einem Pultgehäuse, an das ich mich gewöhnt hatte. Die Futaba hatte alles, nur kein Spektrum-Funkmodul. Und ich hatte zwei Modelle, die nur Spektrum sprachen.


    ▌ FUNKSTANDARDS IM MODELLBAU — EIN KURZER ÜBERBLICK

    Wer Modellbau betreibt, kennt das Problem nicht. Wer Modellbau betreibt und sich für mehr als eine Marke entscheidet, kennt es. Funksysteme im Modellbau sind nicht standardisiert. Es gibt Spektrum (DSM2, DSMX), es gibt Futaba (S-FHSS, FASST, FASSTest), es gibt Graupner (HoTT), es gibt JR (DMSS), es gibt Multiplex (M-LINK). Jeder Sender funkt anders. Jeder Empfänger hört anders. Wer einen Spektrum-Empfänger im Modell hat, braucht einen Spektrum-Sender. Ende.

    Es sei denn, man bastelt.

    Das Problem in meinem konkreten Fall: Ich hatte zwei Modelle, in die ich Spektrum-Empfänger eingebaut hatte, weil sie damals klein und günstig waren. Mein Hauptsender war aber eine Futaba FX30 — eine ordentliche Pultanlage, in die ich mich seit Jahren eingearbeitet hatte. Mit Speicherplätzen für die Schiffe, für die Helis, für Kollektiv- und Pitch-Kurven, mit Mischern, mit allen Eigenheiten, die man sich über die Jahre einrichtet, ohne dass man nochmal von vorne anfangen will.

    Eine zweite Anlage kaufen — eine Spektrum DX18 oder so — kostet 800 Euro. Ich hatte die 800 Euro nicht. Was ich hatte: einen Lötkolben, einen Arduino Pro Mini für vier Euro, eine zerlegte Spektrum DX4e für 30 Euro, und zu viel Zeit an einem Januarsonntag.

    ▌ Die naheliegende Idee

    Naheliegend wäre gewesen: im Internet schauen, wie das andere gelöst haben. Hätte ich gemacht. Hat aber nichts gebracht. 2013 gab es zu dem Thema vielleicht drei Forenbeiträge, alle auf Englisch, alle abgebrochen mitten in der Diskussion mit dem Vermerk, dass man da ja auch einfach eine Spektrum kaufen könnte. Wenn das alle so machen würden, gäbe es keine Lötkolben mehr.

    Was es gab: ein paar englische Hinweise, dass das Spektrum-HF-Modul aus einer DX4e mit drei Leitungen kommunizieren würde. Stromversorgung, Masse, Datenleitung. Über die Datenleitung kommt ein serielles Signal, das die Knüppelbewegungen kodiert. Wenn man dieses Signal richtig erzeugt, sendet das HF-Modul wie eine vollwertige Spektrum.

    Was nirgends stand: wie genau dieses serielle Signal aussieht. Das Protokoll war nicht offen dokumentiert. Spektrum hat es nicht veröffentlicht. Die Fachzeitschriften wussten es nicht. Wenn man es haben wollte, musste man es selber herausfinden.

    ▌ Reverse Engineering ohne Internet

    Reverse Engineering klingt nach NSA und Hollywood. Im Werkstatt-Alltag ist es: Oszilloskop an die Datenleitung, Sender einschalten, Signal aufnehmen, Signal anschauen, hinschreiben, was man sieht.

    Ich hatte ein billiges Oszilloskop. Eines von der Sorte, mit der man genug sieht, aber nicht alles. Genug, um zu erkennen: Da kommt alle 22 Millisekunden ein Datenpaket. Das Paket hat eine bestimmte Länge. Da drin sind 16 Bit pro Kanal. Insgesamt sieben Kanäle. Plus ein Header, plus eine Prüfsumme. Plus Pause.

    Was sich nicht so einfach erkennen ließ: Wie genau die 16 Bit pro Kanal kodiert sind. Welche Bit-Reihenfolge. Welche Auflösung. Wo der Nullpunkt ist. Und vor allem: was der Header bedeutet, der vor jedem Paket kam. Der Header sah jedes Mal anders aus, wenn ich das Funkmodul ein- und wieder ausschaltete. Das hat mich Tage gekostet.

    Bis ich verstanden habe, dass der Header die Bind-Information enthält — die ID des Senders, die der Empfänger sich beim ersten Kontakt merkt, damit er später nur noch auf diesen einen Sender hört. Pro Sender ist das eine andere ID. Ich musste den Sender nachbauen, ohne die Original-ID zu haben. Die Lösung war: das HF-Modul aus der DX4e behalten, das hatte seine ID schon, der Empfänger wird es wiedererkennen.

    Ich habe das HF-Modul also nicht ersetzt. Ich habe es nur angesprochen. Mit dem Arduino. In dem Format, das es kannte. Aus den Knüppelbewegungen meiner Futaba FX30.

    ▌ Der Code

    Der Arduino-Code für die Übersetzung wurde am Ende ungefähr zweihundert Zeilen lang. In C, mit ein paar Inline-Assembler-Tricks für die Zeitsteuerung, weil ein 8-Bit-Atmel bei der nötigen Präzision sonst nicht hinkommt. Die Pakete müssen alle 22 Millisekunden raus, mit einer Toleranz von wenigen Mikrosekunden, sonst kennt das HF-Modul den Sender nicht wieder.

    Es gab keine Bibliothek dafür. Man musste die seriellen Routinen selber schreiben. Man musste das Timing selber verwalten. Man musste die Knüppelwerte aus der Futaba über deren PPM-Ausgang einlesen, in das Spektrum-Format umrechnen, in eine Prüfsumme einrechnen, in ein Paket gießen, das Paket rausschicken. Hundertmal pro Sekunde, ohne Zittern, ohne Aussetzer.

    Klingt machbar. War’s auch. Hat nur eine Weile gedauert.

    ▌ Der erste Test

    Drei Wochen nach dem Anfang stand der Aufbau auf meinem Werktisch: Die Futaba FX30 mit ihrem PPM-Ausgang über ein Kabel an einen Arduino Pro Mini, der Arduino mit drei Leitungen an das ehemalige HF-Modul der DX4e, das Modul mit einer Antenne, die ich an die Werkstattlampe geklebt hatte, weil ich keine bessere Halterung hatte. Dem Modell habe ich dann den Strom angeschaltet — eines der Modelle mit Spektrum-Empfänger, ein kleines Trainerflugzeug, das keinen Schaden nehmen würde, wenn was schiefginge.

    Der Empfänger im Flugzeug hat kurz mit der LED geblinkt, dann grün geleuchtet. Verbunden. Ich habe einen Knüppel an der Futaba bewegt. Das Ruder im Flugzeug hat sich bewegt. In die richtige Richtung. Mit der richtigen Geschwindigkeit. Mit der richtigen Auflösung.

    Da DAAA. Hehehe.

    Ich gebe zu, das ist mein Standard-Triumph-Geräusch. Es ist nicht originell. Es ist auch nicht besonders erwachsen. Aber es ist das, was rauskommt, wenn drei Wochen Reverse Engineering plötzlich zu einer Servo-Bewegung führen, die richtig ist.

    ▌ Die Dokumentation

    Das war 2013. Ich hatte damals einen Blogger-Blog, auf den ich gelegentlich Sachen geschrieben habe, die ich gemacht hatte. Ich habe an dem Abend einen langen Eintrag verfasst, mit Schaltplan, mit Pin-Belegung, mit dem kompletten Arduino-Code, mit Anmerkungen, was zu beachten ist. Der Blogeintrag ist heute noch online. Wer ihn findet, findet auch die Erinnerung an einen Lars-Erik, der genau dieselbe Schreibe schon damals hatte, die er heute hat — nur halt für ein anderes Thema. Mit einem Sorry da für nach jedem Fehler, mit einem Hust bei jedem eigenen Größenwahn, mit einem Smiley, der einen Bindestrich enthält.

    Was ich an dem Eintrag heute mag: Er ist nicht angeber-ig. Er erklärt, was geht, was nicht geht, was zu beachten ist. Er ist hilfsbereit zu denen, die später mal das Gleiche probieren wollen. Er ist 2013-Lars-Erik, geschrieben für 2013-Modellflug-Bastler, in einer Sprache, die das Internet damals noch nicht überall in Marketing-Phrasen aufgelöst hatte.

    Wer 2024 oder 2025 dieselbe Anleitung schreiben würde, hätte vermutlich SEO-optimierte Headlines, eingebettete Werbeblöcke und einen Newsletter-Signup. 2013 hatte man Moin Moin als Begrüßung und Sorry da für als Selbstkommentar. Beides hat seinen Charme. Eines davon altert besser.


    ⟁ HUD-DIAGNOSTIK

    ┌─────────────────────────────────────────────────┐
    │  ARDUINO-PREIS.....................: 4 EUR      │
    │  SPEKTRUM-DX4E-PREIS...............: 30 EUR     │
    │  ALTERNATIVE-NEU-KAUFEN............: 800 EUR    │
    │  EINGESPART........................: 766 EUR    │
    │  REVERSE-ENGINEERING-DAUER.........: 3 WOCHEN   │
    │  DOKUMENTATION-IM-NETZ.............: 0 SEITEN   │
    │  OSZILLOSKOP-VERFÜGBAR.............: BILLIG     │
    │  PROTOKOLL-OFFEN-DOKUMENTIERT......: NEIN       │
    │  ARDUINO-CODE-ZEILEN...............: ~200       │
    │  TIMING-PRÄZISION..................: µSEKUNDEN  │
    │  ERSTER-TEST-ERFOLG................: SOFORT     │
    │  EHEFRAU-ERKLÄRUNGS-VERSUCHE.......: 2          │
    │  EHEFRAU-VERSTÄNDNIS...............: TEILWEISE  │
    │                                                 │
    │  >> ERGEBNIS: FUTABA SPRICHT SPEKTRUM <<        │
    │  >> KAUFEMPFEHLUNG: HEUTE EINFACH SPEKTRUM <<   │
    └─────────────────────────────────────────────────┘

    Die Futaba FX30 funktioniert heute noch. Sie hat das Eigenbau-Modul nicht mehr — irgendwann habe ich die zwei Modelle mit Spektrum-Empfängern verkauft, und das Modul lag dann nur noch im Werkstattregal rum. Aber die Futaba selbst, mit ihrer Pultform und ihren Speicherplätzen, fliegt heute noch ein paar von meinen Modellen, weil sie mir treu geblieben ist und ich ihr.

    Was bleibt von dem ganzen Projekt, ist eine kleine Erinnerung daran, dass man Sachen lösen kann, die niemand sonst gelöst hat, wenn man sich ein bisschen Mühe gibt und Werkzeug hat. Ein Lötkolben, ein Oszilloskop, ein Arduino, drei Wochen Zeit. Mehr braucht es nicht.

    Heute würde man das Problem anders lösen. Heute kauft man eine FrSky-Anlage, die alles spricht, oder man flasht eine Open-Source-Firmware auf einen vorhandenen Sender. Reverse Engineering ist seltener geworden, weil mehr offen ist als früher. Das ist ein Fortschritt. Aber es nimmt einem auch ein Stück Werkstatt-Magie, wenn man es nicht mehr nötig hat, das Protokoll selber zu finden.


    ✎ Was Lars eigentlich meinte

    Drei Wochen lang ist Lars an den meisten Abenden direkt nach dem Essen in die Werkstatt verschwunden. Ich habe das mitbekommen, ich habe nicht gefragt. Ich habe nach drei Wochen einmal gefragt: „Was machst du da eigentlich?“ Er hat versucht, es mir zu erklären. Es ist um Funkprotokolle gegangen. Um Pakete und Header und Bit-Reihenfolge. Ich habe ein Drittel verstanden.

    Ich habe ein zweites Mal gefragt: „Was machst du wirklich da?“ Da hat er gesagt: „Ich versuche, dass meine alte Funke meine Modelle wiederfindet.“ Das habe ich verstanden. Das war auch eine schöne Antwort, weil sie wahr war.

    Was er nicht erzählt: An dem Abend, als der erste Test geklappt hat, ist er hochgekommen, hat sich neben mich auf das Sofa gesetzt, hat nichts gesagt, und hat eine halbe Stunde lang den Fernseher angeschaut, ohne wirklich hinzusehen. Ich wusste, dass irgendwas geklappt hat. Er strahlt halt nach innen. Mehr Reaktion gab’s nicht. Mehr braucht’s auch nicht.