I own a FlySky FS-TH9X RC-transmitter which is the same device as the Turnigy 9X (also sold as Eurgle and Imax). This transmitter has become very popular because it is really cheap (under $60!) compared to all of its features. The best feature is that you can flash a custom firmware making it even better! I recently flashed a custom firmware to my 9X and in this post I’ll document how you can flash yours too!
The first thing you need to do is open up your 9X and solder wires to the main processor’s (AVR ATMega64) in-system programming (ISP) bus. Soldering the wires is pretty simple since the PCB has pads to which you can solder the wires. The v1 model lacks a pad for the sck pin but you can solder the wire to the nearby resistor like I did. The v2 model (most of the transmitters are v2) has a pad for sck as well. I soldered the wires to a pin header which I hot glued to the PCB. I mounted a 9 pin D-sub connector to the rear of the transmitter so I can re-flash it without opening it. With the pin header in between I can disconnect the back panel from the front panel when I disassemble the transmitter.
I also made an adapter which enables me to connect my Bus Pirate to the transmitter and use it as an ISP programmer (you can use some other programmer as well):
Then you need to select which firmware you want to use. There are several from which you can choose. I’m aware of at least five custom firmwares for the 9X, namely open9x, gruvin9x, er9x, radioclone and th9x. Download the .hex format file for the firmware you want to use. For flashing the firmware you’ll want to use avrdude. I chose to flash open9x and the actual flashing operation is done with the following command on linux:
avrdude -c buspirate -p m64 -P /dev/ttyUSB0 -u -U flash:w:open9x-stock-heli-templates-en.hex
When using the bus pirate the actual flashing takes quite a while, you just gotta wait for it to finish.
After that you’re finished!