Flysky Hacking

ElectronicsTechnical

Using the Flysky FS-i6X Transmitter and FS-iA6B Receiver Connection With Custom Data

This post describes, how we "hijacked" the Flysky transmitter-receiver link with Arduinos to transport our exo data to the skid. If you don't know what an Exoskid is, see here.

Caution: Don't follow this guide mindlessly! We take no responibility for you breaking your gear. You do this at your own risk (and fun)!

Setting up the FS-i6X Transmitter

Goal: Getting all 16 channels and a bunch of extras from OpenTX onto the FS-i6X.

In principle, you can use your vanilla FS-i6X link, by passing a PPM signal to the trainer port on the back. One just has to be careful, because the FS-i6X usually uses slightly different timings to the standard of the Arduino PPMEncoder library. Check out this thread for details.

The Flysky i6X can be connected to the computer's USB port through the "Trainer" socket. Below you find a picture of the pinout of this Mini-DIN-4 port.

There seems to be some dispute about this pinout on the internets. Except for the "PPM Out" we have used all of these pins and can confirm their function. You can buy a USB connector cable to connect to the trainer port. But you can also rig this temporarily by cautiously wedging in some jumper cables. Then you need an old USB cable to strip apart and connect accordingly to the above pinout (search for USB cable colors to figure out which goes where).

Once you have the connection, follow the guide of Openi6X to install the new firmware. After installation, the buttons are a bit confusing at first. Below is a guide of how to navigate the screens:

Fiddle around with it, until you get your receiver bind (Page 2 at the bottom -> "Receiver" [bnd]). Once that is done, you can get data onto the transmitter via the "PPM in" pin. These channels are available in the mixer as "Tr1-16". You don't need to enable student mode to use the channels, but I suppose one can, to get the first 4 channels as well. We used the first channels to always have the transmitter pilot in the game.

Connecting to the iA6B Receiver

You can keep on using the PWM outputs of the receiver. You can also use the horizontal iBus output on the top right of the receiver, which is a serial output of all the signals.

You can use the FlySkyIBus library to decode the signal, if you are using an Arduino on the receiver side as well. There is some triple trouble involved, if you use a SAMD-based Arduino like the Nano 33 IoT that we used (so beware the dragons and just don't do it)!

And there you go! Low latency, 16 channel, long-range remote control. It looks all so easy and clean, now that I've written it all up. But it took us a LONG time to piece together all the information and getting it to work. And it would have taken ages longer without the incredible coolness of all the linked sources, so big creds to them!

Airplane wiring and firmware

WIP

Some more stuff you need: Here is the wiring diagram of the airplane.

TODO: CAD Daten von Laptop sichern und hier einbinden. Schaltplan Flieger fotografieren und hier ablegen. Kalibration und Datenfluss beim Exoskid erklären (Exoskelett kalibration liefert normierte Daten, Exoskid kalibration versucht Fliegerdetails egal zu machen, sodass normierte Daten funktionieren).