Turnigy 9XR-Pro Notes

These are just a few notes and comments created along the way.  I hope they will help others.  If you have any comments or additional information, please let me know and I will update here.

NOTE: I don’t use Windows. It is supposed to be possible to update these transmitters using Linux, but I’m suggesting that the lack of information makes it virtually impossible within a reasonable time period.

The Plan

This started early May 2016 with a Turnigy 9XR-Pro transmitter that I wanted to update to have extra 3-position switches by following a Youtube tutorial.  I’ve had the transmitter since they first came out and it has had a serious aileron-stick bug since new.  So if it could be updated, it may become usable.

Although the alternative firmwares are great projects, as with most open source projects, you have to spend a lot of time sorting the few bits of useful information from mountains of incomplete or out-dated information.  There are few if any pages providing basic descriptions and getting started guides; even fewer mention doing this with Linux.

A good source of information OpenRC Forums – but be prepared to spend many hours reading, and I noticed some of the more technical questions go unanswered.

3-position switches

Turnigy 9XR-Pro switchThis 2-part Youtube tutorial (dated Jun-2015) describes swapping three 2-position switches for 3-position switches.  Part 2 from about 5:40 in describes the firmware upgrade required to fully enable the new switches; which is where the complications begin.  It suggests using ER9XSky or Tanker9XPro (tanker9xrpro_rom.bin).

Swapping out the switches is not difficult but takes an hour or two to do properly; to a good standard of workmanship.  if you are not skilled with a small electronics-type soldering iron and small hand tools, get some assistance.  Your model plane or multi-rotor is trusting you to do a good job.

Holding rudder+aileron trims “in” and turning the transmitter on shows “Boot Loader V1.3Ready” and the image bin files on the SD Card.  In theory, you choose a file and it is installed.

Using this method I installed ersky9x for 9XR-PRO because it was the only one listed at er9x.com that mentioned the 9XR-Pro. This worked, but the hardware setup option is disabled. Going back to the original version (ERSKY9X.BIN still on the SD card) didn’t work; it reports “not a valid firmware”. It seems that to download tankER9XPro, you have to register and login to RC Tanks Australia forum – I didn’t bother.  I did have another 9XR-Pro transmitter available and the bin file on that worked to get the first transmitter back to near factory setting.

Installing OpenTX Companion

This is what I did on Kubuntu 14.04.  It may work for you or be helpful as a starting point.

Dfu-util is the program that communicates with the Taranis transmitter.  It’s not part of Companion, but can be installed with “sudo apt-get install dfu-util”.  Companion needs to know where it is; usually in /usr/bin.

Download OpenTX Companion from ????. I used companion21_2.1.8_i386.deb.  Double click or run to install.

Note: There is a config file at : /home/????/.config/OpenTX/Companion 2.1.conf

On first run a message appears stating that “Firmware opentx-taranisplus-en does not seem to have ever been downloaded” and “Release 2.1.8 (2016-04-14) is available”, “Do you want to download it now?”.  Selecting “YES” allows you to download the file, but there is not suggestion as to where to put it.  Each time you restart Companion9x after changing the radio selected, it asks to download another file.  These are the .bin (binary) firmware files that go into the transmitter.  I saved these files (taranis, 9xr-pro and 9x) to “/home/????/.config/OpenTX/” just to keep them together and out of the way. It may be a good idea to cerate a folder under your home folder for all these files.

Note: The .bin files can be copied to the SD card in the transmitter and installed using the boot loader function (holding rud+ail trims and switching on.

Note: enable “show hidden files” to see “/home/????/.config/OpenTX/”.

Depending on the transmitter selected, different boot loader systems are used:

  • 9x : avrdude (usbasp programmer ?)
  • 9xr-pro : sam-ba
  • taranis : dfu-util

Select the 9xr-pro transmitter and the communications uses SAM-BA. This requires the location of SAM-BA and a “Port“, which defaults to “\USBserial\COM23” (port left overs from windows possibly).

Atmel (Microchip) SMA-BA is available here; but you have to fill in a form then receive an email with a link to the file (about 20MB, dated March-2016).

Plugging the 9xr-pro USB into the computer then switching on displays “USB” in the center of the LCD.  I think this should work with SAM-BA.  The Linux command line “ls /dev” lists several new entries: /dev/serial and /dev/ttyACM0.

I copied the extracted SAM-BA to “/usr/bin/sam-ba_cdc_linux/sam-ba” and changed ownership to root:root.

Changing the communications settings to “/usr/bin/sam-ba_cdc_linux/sam-ba” and “/dev/ttyACM0” almost works. It seems to have a problem with the port; not found.  So I added my user to the “dialout” group.  Now we get as far as:

-E- Board at91sam3s8-9xr not found

-E- Supported boards : at91sam4n8-xpro at91sam7a3-ek at91sama5d3x-ek at91sam4cp16-mb at91sam4s-xpld at91sam4c8-ek at91sam4sd32-ek at91sam9260-ek at91sam4e8-ek at91sam7xc512-ek at91sam3s4-ek at91samv71-xplained at91sam7x256-ek at91sam3u4-ek at91cap9-stk at91sam7se512-ek at91sam3a2_on_sam3x2-ek at91sam9rl64-ek at91sam7s161-ek at91sam3a4_on_sam3x4-ek at91sam3x8-ek at91sam9cn11-ek at91sam9263-ek at91sam7l64-ek at91sam4cm4-db {saml22_xplained_pro[not factory programmed]} at91sam9m10-ekes at91sam7s256-ek at91sam4s8-ek at91sam4cm32-db {sam4l-ek[not factory programmed]} at91sam3s2-ek at91same70-xplained at91sam9n11-ek at91sam9x35-ek at91sam3n1-ek at91sam3u2-ek at91sam9xe256-ek at91sam3a8_on_sam3x8-ek at91sam7se32-ek at91sam7xc128-ek at91sam9g15-ek rf231usb-rd at91sam4c16-ek at91sam7x512-ek at91sam7s32-ek at91sam9g35-ek at91sam7s321-ek at91sam9g45-ekes at91sam9g10-ek at91sama5d3x-xplained at91cap9-dk_mem18 at91sam9261-ek at91sam4n16-xpro at91sam4c4-ek {samda1_xplained_pro[not factory programmed]} at91sam3n4-ek {samd21_xplained_pro[not factory programmed]} at91sama5d4x-ek at91sam7l128-ek at91sam7s512-ek {samc21_xplained_pro[not factory programmed]} at91sam9cn12-ek {saml21_xplained_pro[not factory programmed]} at91sam9xe512-ek at91sam3s8-ek at91sam4s16-ek at91cap9-dk_mem33 at91sam3x4-ek at91sam4e16-ek at91sam9n12-ek at91sam7x128-ek at91sama5d4x-xplained at91sam3n2-ek at91sam4s4-ek at91sam9m10-g45-ek at91sam7s64-ek at91sama5d3x-cmp at91sam7xc256-ek at91sam9x25-ek at91sam3n00-ek at91sam4cm16-db at91sam4cm8-db at91sam7se256-ek at91sam4c32-ek {samd20_xplained_pro[not factory programmed]} at91sam7s128-ek at91sam3x2-ek at91sam3s16-ek at91sam9g25-ek at91sam3s1-ek at91sam9xe128-ek at91sam3n0-ek at91sam4s2-ek at91sam3u1-ek at91sam7s16-ek at91sam9g20-ek at91sam3sd8-ek

The CPU on the 9xr-pro board is labeled :  ATSAM3S8C AU


Other References

How to flash a 9XR-Pro with OpenTX – Here.

Some Common Terms

Turnigy 9X: The earlier transmitter. Good but fewer features. Uses a slower 8-bit ATMEGA micro-controller. Can run the er9x firmware.

Turnigy 9XR-Pro: A major hardware update on the Turnigy 9X. Uses a 32-bit ARM processor and has more features.

er9x: A firmware for the Turnigy 9X transmitter.

ersky9xr: A port of er9x to the 9XR-Pro transmitter

eepe: ??. A editor/simulator. Runs on PC MAC and Linux.

eepskye: A desktop for flashing and managing sky9x firmware.

openTX: Another firmware for the transmitter. Most hardware supported. Many features. Probably a better choice now than er9x etc. Not sure if it supports the extra 3-position switches; possibly not in a nice way.

OpenTX Companion: A fork of eePe. Aims to provide one tool that works with ALL firmwares. Probably the best choice for use with openTX.



The short version: If you really want to upgrade the firmware, it’s easier to use Windows, OpenTX and Companion.

A while back I used command line tools to load hex files to the old Turnigy 9X and later installed Companion9X on my Linux laptop.  It all just worked with the old Turnigy 9X transmitter.  But not now.  On Linux I’ve installed eepe, eepskye and the latest OpenTX Companion.  There seems to be no useful information regarding getting these working with Linux.  Part of the problem seems to be the variety of boot-loaders; SAM-BA etc.

To get this working under Linux may require more effort and time than can be justified.

I may have a old-school way of looking at this, so my opinion probably doesn’t really matter.  The new one-stop program or app has replaced a couple of logical steps and put all the features under one heading.  Great if it works, but totally broken when any part of it fails.  I suspect it also means that in a few years it won’t work and there will be more transmitters being junked.

This is far more difficult and time consuming that it should be. Typical of many open source projects, basic introductory information is missing and a lot of what is available is out of date or not commented.  Some simple descriptions, a bit of history and comments would make a huge difference and probably attract more supporters and donations.

So for now, the 9XR-Pro is running the latest (May-2016) OpenTX, but I will continue using the old 9X, still running an early version of er9x.

Leave a comment