Schlagwort: modellbau

  • 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.


  • Wie ich Nintendo-Spielzeug gekauft habe, um Drohnen zu bauen

    Wie ich Nintendo-Spielzeug gekauft habe, um Drohnen zu bauen

    Quest #053 · Drohnen · +250 XP

    Wie ich Nintendo-Spielzeug gekauft habe, um Drohnen zu bauen

    Es war irgendwann zwischen 2010 und 2012, das genaue Datum hat sich in meinem Kopf nicht eingebrannt. Was sich eingebrannt hat: Der Kassenzettel von einem MediaMarkt, auf dem stand „Nintendo Wii Nunchuck“ und „Wii Motion Plus“, zweimal jeweils. Die Verkäuferin hat gefragt, ob die für meine Kinder seien. Ich habe nicht gelogen, ich habe nur gelächelt. Wir haben keine Kinder. Aber ich habe an dem Abend zwei Wii-Controller mit einem Schraubenzieher zerlegt und das Innere unter eine Lupe gehalten.


    ▌ DROHNEN-BAU FÜR ANFÄNGER — DIE NICHT EMPFOHLENE METHODE

    Heute kauft man eine Drohne. Man geht zu einem der einschlägigen Anbieter, klickt drei Mal, am übernächsten Tag steht ein Karton vor der Tür, man drückt einen Knopf und das Ding fliegt. Es macht Fotos, Videos, Hindernisvermeidung, automatische Rückkehr, Geofencing, Live-Wetter-Korrektur. Es kostet Geld, aber das Geld kostet weniger als der Verstand, der nötig wäre, das Ding selber zu bauen.

    2010 war das anders.

    2010 gab es Drohnen, aber sie waren professionell, militärisch oder universitär. DJI gab es als Firma, aber die Phantom — die kleine weiße Standard-Drohne, die später jeder im Park rumfliegen ließ — die kam erst 2013. Wer 2010 eine Drohne wollte, der hatte zwei Möglichkeiten: viel Geld ausgeben für etwas Industrielles, oder selber bauen.

    Selber bauen war keine triviale Übung. Man brauchte Sensoren — also kleine Bauteile, die einer Maschine sagen, in welche Richtung sie gerade kippt, wie schnell sie sich dreht, wie sie zur Schwerkraft steht. Solche Sensoren heißen MEMS-Gyros und Beschleunigungssensoren. 2010 waren die nicht in jedem Bastelladen zu haben. Sie waren teuer. Sie waren spärlich dokumentiert. Sie kamen aus industriellen Anwendungen, wo sie in größeren Stückzahlen in Autos und Smartphones gewandert sind.

    Und in eine andere Sache. Eine Sache, die niemand auf dem Schirm hatte, außer einer kleinen Hand voll Bastler weltweit, von denen ich einer war.

    Nintendo hatte die Sensoren auch. In den Wii-Controllern. Da drin saßen InvenSense-Gyros und ST-Beschleunigungssensoren, die in der Industrie das Drei- bis Vierfache gekostet hätten. Im Wii-Nunchuck hat sie Nintendo subventioniert mitverbaut, damit der Mario beim Tennisschlag korrekt reagiert.

    Ich brauchte den Mario nicht. Ich brauchte die Sensoren.

    ▌ Die Bauteilliste

    • Zwei Wii-Nunchucks — wegen der Gyros darin. Einer als Backup, weil ich beim ersten Zerlegen zu früh in die Platine gepiekst hatte.
    • Zwei Wii-Motion-Plus-Aufsätze — wegen zusätzlicher Sensorachsen, die das Nunchuck nicht hatte.
    • Ein Bosch-Beschleunigungssensor (BMA180, falls jemand mitschreibt). War in irgendeinem Industrie-Sample-Programm zu kriegen, ich weiß nicht mehr genau wie.
    • Ein Atmel-Mikrocontroller auf einer eigenen Platine. Nichts Großes, ein 8-Bit-Atmel mit ein paar Kilobyte Speicher.
    • Vier Brushless-Motoren mit Reglern aus dem Modellbau-Versand.
    • Ein Rahmen aus Aluminium, den ich auf einer Werkstatt-Fräse selber zugeschnitten habe.
    • Ein Empfänger für die normale Modellbau-Funke. Damals noch 35 MHz, später 2,4 Gigahertz.
    • Eine sehr große Tüte Geduld.

    Die Sache mit der Tüte Geduld stand nicht auf der ersten Bauteilliste, aber ich habe sie irgendwo zwischen Versuch 4 und Versuch 11 dazugeschrieben.

    ▌ Der PID-Regler

    Eine Drohne fliegt nicht von selber. Eine Drohne fällt von selber. Damit eine Drohne fliegt, braucht sie einen Regler — etwas, das die Sensoren ausliest, vergleicht, was der Pilot will mit dem, was der Quadrokopter gerade tut, und dann hundertmal pro Sekunde an den vier Motoren herumdreht, damit das Ding gerade bleibt.

    Dieses Etwas heißt PID-Regler. P wie Proportional, I wie Integral, D wie Differenzial. Die Mathematik dahinter ist nicht furchtbar schwer, aber sie ist auch nicht trivial, und vor allem: Sie muss in einem 8-Bit-Atmel laufen, der ungefähr so viel Rechenleistung hat wie ein gut gefüttertes Toaster-Display.

    Es gab zwei Möglichkeiten, an einen PID-Regler zu kommen.

    Erstens: Im Internet einen runterladen. Hat nicht funktioniert, weil es 2010 noch keine fertigen Open-Source-Flugcontroller gab. Es gab MultiWii, das war ein Anfang. Es gab Paparazzi UAV, das war für Forschung. Aber für meinen spezifischen Wii-Sensor-Mix mit Bosch-Ergänzung und 8-Bit-Atmel — da war nichts. Internet war damals außerdem noch eine Tasse, die man halb voll mit Wissen gestellt hat. Wer drei Quellen über das gleiche Thema fand, hatte einen guten Tag.

    Zweitens: Selber schreiben. In C. Auf den Atmel flashen. Anschließen. Anschalten. Hoffen.

    Ich habe Möglichkeit zwei genommen. Nicht aus Tapferkeit, sondern aus Mangel an Möglichkeit eins. Manchmal entstehen die schönsten Pioniertaten aus dem ganz banalen Umstand, dass die einfache Lösung einfach nicht da war.

    ▌ Die ersten elf Versuche

    Versuch 1 ging nicht. Versuch 2 ging in eine Wand. Versuch 3 ging in die Decke, was eigentlich Fortschritt war, weil Decken höher sind als Wände. Versuch 4 hat angefangen wie ein Erfolg und endete als kleine Aluminium-Pyramide auf dem Werkstattboden. Versuch 5 bis 8 waren Variationen über das Thema „Drohne fliegt drei Sekunden in eine Richtung, die in keinem Sender-Knüppel-Befehl vorgesehen war“.

    Versuch 9 hat geschwebt. Drei Sekunden. Auf einer Stelle. Das Ding schwebt einfach da, mit dem Atmel im Bauch und den Wii-Sensoren als Augen, und ich stehe daneben mit dem Sender in der Hand, halb pissed weil’s nur drei Sekunden waren, halb völlig fertig weil Wii-Sensoren halten ein selbstgebautes Quadrokopter-Modell in der Luft.

    Drei Sekunden. Dann kippte es weg.

    Versuch 10 hat fünf Sekunden geschwebt. Versuch 11 hat geschwebt, bis ich es selber abgeschaltet habe.

    Da DAAA. Hehehe.

    Ich gebe zu, das ist kein wissenschaftlich fundierter Kommentar zur Aerodynamik. Aber es war der einzige Kommentar, der mir in dem Moment einfiel. Ich hatte aus zwei Nintendo-Controllern, einem Bosch-Sensor, einem Atmel-Chip und einem Stück selbstgeschnittenem Aluminium etwas gebaut, das fliegt. Bevor DJI ein Wort war.

    ▌ Was Julia dazu sagt (sinngemäß)

    Julia ist in dieser Phase oft an der Werkstatt vorbeigegangen, hat reingeschaut, hat den Kopf geschüttelt und ist weiter in die Küche. Manchmal hat sie Kaffee gebracht. Manchmal hat sie mich an irgendwas erinnert, das ich versprochen hatte. Manchmal hat sie nichts gesagt und ist einfach weiter.

    Als das Ding zum ersten Mal frei geschwebt hat, habe ich sie gerufen. Sie kam, schaute, sah die Drohne in der Luft, sah meinen Gesichtsausdruck, und sagte einen Satz, der so trocken war, dass man ihn hätte einrahmen können: „Das ist also der Grund für die Wii-Controller.“

    Ich habe genickt. Mehr brauchte es nicht. Sie hat keine weiteren Fragen gestellt.


    ⟁ HUD-DIAGNOSTIK

    ┌─────────────────────────────────────────────────┐
    │  BAUTEIL-HERKUNFT..................: NINTENDO   │
    │  BAUTEIL-EIGENTLICHER-ZWECK........: TENNIS-WII │
    │  ATMEL-RECHENLEISTUNG..............: TOASTER    │
    │  PID-REGLER........................: HANDARBEIT │
    │  VERSUCHE BIS ZUM ERSTEN SCHWEBEN..: 9          │
    │  SCHWEBE-DAUER VERSUCH 9...........: 3 sek      │
    │  SCHWEBE-DAUER VERSUCH 11..........: stabil     │
    │  DJI-ZUM-ZEITPUNKT.................: NICHT EXIS │
    │  ANZAHL ZERSTÖRTE NUNCHUCKS........: 1          │
    │  ANZAHL ZERSTÖRTE WÄNDE............: 1          │
    │  ANZAHL ZERSTÖRTE DECKEN...........: 0,5        │
    │  EHEFRAU-AUGENBRAUE-LEVEL..........: GEHOBEN    │
    │                                                 │
    │  >> ERGEBNIS: PIONIERTAT <<                     │
    │  >> KAUFEMPFEHLUNG: NEIN, ZEUGS GIBT'S JETZT <<│
    └─────────────────────────────────────────────────┘

    Die Drohne aus den Wii-Controllern fliegt heute nicht mehr. Sie steht im Regal, neben den Schiffsmodellen, mit einem leichten Staub-Mantel und einem Atmel-Bauch, der vermutlich noch funktioniert, wenn man ihn anschließt. Ich habe sie nie weggeworfen, obwohl ich später bessere Drohnen gebaut habe und noch später einfach welche gekauft habe.

    Sie ist wie das erste Schiff, das ich gebaut habe — sie ist nicht beeindruckend, sie ist nicht das Beste was ich je gemacht habe, aber sie ist die Erste. Und das Erste hat einen Wert, der nicht in Stundenlohn umrechenbar ist.

    Wenn jemand fragt, woher ich Drohnen kann: aus Nintendo-Spielzeug. Klingt blöd. Stimmt aber.


    ✎ Was Lars eigentlich meinte

    Lars hat in der Tat zwei Wii-Controller gekauft und nie damit gespielt. Er hat sie noch am gleichen Abend zerlegt. Ich war kurz traurig, weil ich kurz gedacht hatte, wir machen Wii-Abend.

    Was er nicht erzählt: Versuch 4 hat einen Kratzer im Werkstatt-Boden hinterlassen, den man heute noch sieht. Versuch 6 hat ein Loch in der Werkstatttür gemacht, klein, aber durchgehend. Versuch 8 ist mir vor die Füße geflogen, als ich grade zur Tür rein wollte. Ich habe in der Werkstatt seitdem ein Helm-Konzept.

    Das Ding fliegt aber. Hat er gut gemacht. Auch wenn er beim Erzählen die kaputten Sachen vergisst.