There's also some talk about it on RC Groups. It's not quite finished yet and so far it's in Polish but translating shouldn't be too hard given the source code in C++.
Now what this means is that we have almost limitless possibilities with the radio! Now you can easily add all the features on the 9X you can imagine (and the Atmega64 can handle). Here are some ideas that'd that pop into my mind:
Replace the PPM module with a tranceiver (like xbee) and have telemetry displayed on the TX display. I.e. like ArduStation but rather on your transmitter and with more functionalities!
A simple UI for controlling the AP could be made. Tuning the PID loops, for one, might become so much easier when the PID coeffs were bound to some analog pots.
Add very complex mixes.
Add more functionalities to the UI and fix the problems that were in the original F/W.
Have some truly high end features (available previously only on some $$$ TXs) on the 60$ 9X.
Get rid of having to use the allocated switches for AUX channels: use any switches on the TX.
Have anything on the TX you could program.
Get my drift? The 9X suddenly became one of the best radios on the market, IMO.
I do realize that binding a project such as ArduStation with such hardware as the 9X is very unrealistic but still the mere idea of it is pretty exciting.
A sneak peak of the firmware (it's still in Polish):
An example of a more complex mix not previously available on the 9X:
Not sure if this is related but I think you can use the HobbyKing 6 and 8 channel receivers with the Turnigy if you use the right module. I just finished a sketch the uses the satellite receivers for these directly with Arduino, completely bypassing the encode/decode of the servo signals. The satellites can capture bind GUIDs, can be bound easily, and output a serial stream of channel data in 8 16 bit words with a checksum on the end. My sketch is pretty crude but uses about 12% of the mcu to read the radio and control 4 servos at 50hz, there is no latency at all.
Marc, that sounds very interesting. Can you explain a bit more what's going on here? (Sorry for the noob question) By "satellite", what do you mean?
In this demo, are you capturing serial out from the Rx with Arduino, and then letting the Arduino drive the servos? If so, exactly how do you capture that serial? Does the Rx actually output TTL-level serial at some known baud rate?
Hey Chris, I hardly think you're a noob :). I'll explain better:
The satellite receiver is from one of these receiver/satellite sets. They work with the 4 and 6 channel radios here. The receiver with this transmitter (rebadged Turnigy) uses the same satellite receiver.
The satellite plugs into the main receiver, in the main receiver is another identical satellite receiver soldered to a decoding board which the servos connect to. The sketch I did replaces the decoding board with an arduino allowing the user to control the servos without the need for a mux, though I do like the fail-safe nature of the mux.
The satellite receivers output a TTL serial signal (23 microseconds pw) of 9, 16 bit words (servo pw in microseconds), would work out to 42kbps if they were 8 bit words. The rough ardiuno sketch I attached uses one interrupt and a timer to bind with the transmitter (stores the GUID in eeprom) and decode this stream into the 8 channel servo position values (in microseconds), and outputs them to servos using the ardiuno servo library.
I used the arduino servo and timer libraries,and am just learning Arduino, so I'm sure the efficiency could be greatly improved with better code.
Since the receiver only takes up one pin, it would be possible to have as many receivers as you need with the ability to switch between them if one loses a signal. And they are cheap. I've been using these receivers for a year now and haven't had a problem.
ReSt and a few others over on rcgroups reversed engineered this radio and receiver in this thread. I've contributed PocketPC programmer for the radio, and there are other PalmPilot and PocketPC programmers contributed by others in the thread as well.
Got it! Functionally, I guess that does something like what we do with our PWM-to-PPM encoder board (but with a lot less fuss), or what people used to do with that wire to the PPM pin in old 72Mhz radios. Basically, it's a way of getting all the channels on one pin, in a way that the Arduino can read without a lot of overhead.
ArduPilotMega has such a PPM encoder built in. The advantage being that it can work with any Rx, of course...
This is a much neater hack for those using the Turnigy gear. If you guys can open source it from end-to-end, the sky's the limit!