FlySky FS-T6 Custom Firmware aka: AR-T6

I am in the process of converting my Turnigy 9x to make use of the FrSky JR module. Not wanting to orphan the 5x 6Ch receivers I have been using, I decided to implement my own firmware on an FS-T6 I had laying around. (It uses the same 2.4GHz link / protocol and looks to be 8Ch capable).

This page details the status of my efforts. If you wish to use any of the information from this site, please remember to attribute me!

FS-T6 Schematic
Original Firmware

FS-T6 Schematic
FS-T6 with screen

Getting the LCD Working

The biggest risk from the schematic work was the LCD panel. I had a suspicion that it matched the LCD in the Turnigy 9x, but there are no markings and no pinouts...

Coding up using the datasheet for the ks0713 failed. Undeterred, I hooked up my Logic16 USB logic analyser to the LCD lines and booted the original firmware. Sure enough, the initialization commands that I was expecting were present.

In the end, it turned out I needed to tweak the way in which both CS1 and RD were being used. The result - my extruder mod logo displayed on the FS-T6!

Getting the Keypad Working

A slight update to the schematic (missed a connection to the rotary encoder).

All keypad buttons and the rotary encoder are now coded and working in IRQ mode. This includes the trim controls.

FS-T6 keypad connections
FS-T6 showing the stick, pot and switch positions.

Analogue Input

I have coded up the ADC and DMA controller so that there is no CPU intervention required to sample the analogue inputs.

This should free things up for more important work!

POTs, Sticks and Switches now all implemented.

Looking Good!

PPM Input and Output are now in place. The buzzer is also working with the "Tonal Trim" of the original.

PPM turned out to be a tricky little thing. The limits, center point and end pulse are all different to the stock er9x. I had to use +/- 700us, 1500us and 600us respectively with a 30ms frame length. The end pulse was the critical factor.

It is now controlling servos although there is currently a 1:1 mapping from sticks, all DMA and IRQ driven to avoid jitter.

FS-T6 showing a well featured main screen.
Software architecture diagram.


I2C EEPROM support (DMA + IRQ) implemented. Long press keys, GUI popup messages, GDB debug in Eclipse, Proper calibration screen and a software architecture diagram!

I have put a backup of my original EEPROM here.

Mixer Merged and EEPROM working

The er9x mixer is now integrated. The general setting are also saved (and restored) from EEPROM.

The code is now on GitHub:


Next on the ToDo List

"Just" the Model settings menu now!

I've been putting this one off as the expo, curves and model selector GUI are tricky...