Thread Tools
Sep 24, 2016, 02:42 AM
Registered User
Thread OP
Build Log

FlySky FS-i6s - conversion to FrSky / opensource firmware


I was looking for a small tx that i can carry around when flying my TinyWhoop i stumbled upon the new FS-i6s.

I am going to convert this to an FrSky compatible TX by adding a CC2500 module (with PA/LNA).
I figured out the complete pinout, wrote drivers for the peripherals from scratch and did a first test with the cc2500 module. The next steps will be to get the FrSky TX code working and writing a small UI.
The UI will be optimized for quadcopters, i do not need all these fancy settings that e.g. OpenTx offer.

My project can be found here:

There are some tutorials how i got the single parts working. A complete howto will be written once i finished the frsky code and have a basic UI.

Sign up now
to remove ads between posts
Sep 24, 2016, 02:49 AM
Registered User
do not know whats to say . big thanks

Soon to see a FSi6 telemetry with F82
Sep 24, 2016, 03:05 AM
What is landing :O
This is absolutely insane ! You should have a look at You might find useful stuff there.

Thanks a lot lot for taking the effort to do something like this.
Sep 24, 2016, 06:09 AM
Registered User
Thread OP
I know deviation and other opensource rc software. For now i will do my custom absolute minimum tx software. I only fly quadcopters and i do not need much settings on the tx.
My code will just have the basic stuff + FrSky telemetry display. All config is done on the fc anyway
It should be very easy to merge my work with deviation and others as i already figured out all the hardware/low-level stuff.
Sep 25, 2016, 02:15 AM
Registered User
Exactly for quadcopters only I would consider a paradigm shift from classic RC boxes, and evaluate something closer to gamepad ergonomics, like MPX SmartSX radio.
Sep 29, 2016, 02:35 PM
Registered User
Thread OP
I made some progress... The master branch has a minimalistic touchscreen based gui.
Most peripherals are working. I started to work on the cc2500/frsky code.

The first feature is finished: Clone a TX
Because i will use this TX as my second tx and i do not want to rebind my models everytime the
first thing i finished is a tx clone feature. You place the openground tx into clone mode and the original Frsky TX in bind mode. My openground code then learns the txid and hoptable from your main tx. -> perfect copy.

Of course there is also a standalone version, the first time you build the source a random txid and a valid frsky hoptable will be generated, stored on your pc and saved to the tx.

I also did some work on a stick calibration ui, its finished as well (the calib values are not used yet).

Next i will probably add frsky tx code.
Oct 01, 2016, 09:17 PM
Registered User
awesome .
Oct 02, 2016, 02:32 PM
Registered User
Thread OP
Good news: The Frsky tx code is working! I can see the stick inputs in the betaflight gui
Note: this is not meant for flying yet! it is just a work in progress...

I also did some more ui improvements. I will make a video the next days.
I am still fighting with a strange bug, the touchscreen reports weird y values when i am close to the center. I have no idea why... But thats just cosmetics, the basic stuff is working.
Oct 02, 2016, 02:38 PM
Registered User
Thread OP
addition: just flew my first tinywhoop round with this tx and my frsky code - works

do not use this for bigger quads yet, it is still missing a lot of failsafe fetaures
Oct 03, 2016, 01:45 PM
Registered User
Thread OP
I made some more progress. You can find a short video update on my blog:
Oct 06, 2016, 08:13 AM
Registered User
good ~
Oct 21, 2016, 02:39 PM
Registered User

Great stuff! !! !!! really.



Oct 22, 2016, 09:46 AM
Registered User
MGeo's Avatar
Hi fishpepper,

Thanks for all the careful work at your website explaining in detail how to work with hardware / software for this project. I've been working through your posts as well as Github.

I am a big fan of your project. My interest has been in open development of bi-directional datalinks. The fact that you have developed a fully open and well documented path on both the ground side and air side has motivated me to follow in your footsteps. I've been busy over the past few months converting over from AVRs to STM32, so the ARM targets fit nicely. I will be bouncing back and forth between Linux Ubuntu 14.04 and Windows 10 laptops through the process. On Win 10 I've been working with Bash on Ubuntu on Windows shell, which appears to work reasonably well for compiling Linux builds via makefiles. It does have some quirks though. Win 10 lets me use native ST tools as an option.

I now have my FS-i6s from Banggood on hand. I'v opened it up, and soldered to test points on the board as you documented here

I have an ST-Link V2 clone (like this and have connected the four wires per the connector diagram on the package of the V2 clone dongle:

violet = SWDIO --> ST Link V2 pin 2
grey = SWCLK --> ST Link V2 pin 6
white = NRST --> ST Link V2 pin 1
blk = GND --> ST Link V2 pin 4

I have some JST-ZH 5 pin pigtails on order from here If they fit I will replace my solder connections with the connector and perhaps a 4 conductor 3.5mm to let me load and debug without opening up the transmitter shell. Panel mount jack from here

Next step will be to follow your instructions to follow Part 2, backing up the original firmware via DFU.

Last edited by MGeo; Oct 22, 2016 at 12:27 PM.
Oct 22, 2016, 12:13 PM
Registered User
MGeo's Avatar

dfu-util success!

Ok, after a few minor mis-steps I am able to use dfu-util to back up my software per

I started by soldering a jumper across R60 pads. I then powered up the transmitter by pressing both power buttons for 5 seconds.

It can be tricky to know you are in dfu mode as the transmitter gives no feedback upon power-up. I had already plugged in my ST-Link clone. The transmitter would not enter into dfu mode until I unplugged NRST from the clone. It must have been messing with the reset line during power up preventing a dfu boot.

With that fixed, I got limited info from running dfu-util with the -l (list) flag. It could see a device but gave an error:

dfu-util: Cannot open DFU device 0483:df11
I realized that I need to use sudo in front of dfu-util to access the device as superuser. With that I was able to list the dfu device, and download and save the firmware per instructions.

Very cool.

Oct 22, 2016, 03:45 PM
Registered User
MGeo's Avatar
Ok after a few goes at it I've been able to build the hello world led blink example from here

My ARM toolchain is in a different location than assumed in the makefile, I had to use TOOLROOT={my_toolchain_path} override at the command line for building and for flashing.

I get a flashing led backlight on my display. Hooray!

FS-i6s hello world blink demo (0 min 4 sec)

[email protected]:~/src/OpenGround$ make TOOLROOT=/usr/local/gcc-arm-none-eabi-4_9-2015q3/bin
[email protected]:~/src/OpenGround$ make flash TOOLROOT=/usr/local/gcc-arm-none-eabi-4_9-2015q3/bin
Last edited by MGeo; Nov 04, 2016 at 04:51 AM.

Quick Reply

Thread Tools