Daily Archives: 10/5/2012

Deciphering the Turnigy 9X “trainer” mode…

I’m waiting for new props and the like to arrive for more RC fun, but in the mean time I tried to satisfy some curiousity that I had regarding the “trainer” mode that my Turnigy 9X transmitter has. The idea is that if you have a master flyer (like my friend Mark) and a complete spaz (like yours truly) you can chain two transmitters together with an ordinary 3.5mm stereo cable, and have a sort of “student driver” situation, where the master can transfer control to the novice, but take it back if the situation goes bad.

I wondered what the signal that was being sent back and forth between the radio looks like. Mark had a little pocket digital oscilloscope that he was using to look at it, but because the “trigger” options on the scope were fairly limited, it was hard to see what was going on very clearly. So today at lunch I hauled out my Rigol and decided to have a peek.

The Rigol is a great, capable scope for the $400 new that it costs. What saved us here was that we had a number of trigger options that were not available on Mark’s scope. A brief glance at the scope made me think that the 9 channel transmitter was sending a logic level signal with pulse position modulation. I hypothesized that there had to be a pulse (positive going, by the looks of it) which was long to set synchronization, followed by nine pulses with varying times at 5v, and a low time which appeared to be pretty constant. A bit of tweaking with the triggering showed that the sync pulse was about 6.5ms long. The positive pulses ranged from somewhere around 0.65ms to 1.52 ms, and the low durations where a pretty constant .4ms. Each of the nine channels seemed to be matched out in order.

It would be very simple to hook up an Arduino, Atmel, Propeller, what have you to read these pulses and map them to control inputs. I was thinking that making a small board to read them, and then implement a USB HID device to send them a computer might be a fun thing to do. If your cpu uses a 3.3v level, you might want to use a BJT to invert the signal, and then compensate for the flip in software.

I’ll try to get some screen grabs of the control signal soon, and post them here.