I had been wondering about how the Airwire system actually works, as I’d like to build my own devices, and be able to program decoders with a computer instead of the throttle. I finally dug into it, and here’s what I have learned. It may be of some interest.
The Airwire devices use the Anaren A1101R09x RF modules, which consist of a TI CC1101 RF modem packaged with supporting hardware (crystal, antenna (or port), etc.). The CC1101 is a popular device, and is quite versatile. There are a lot of configuration options, and the modem can do things like addressing packets, error correction, etc. My first step was to figure out how it’s configured. On the RF spectrum, I could see that the modulation is 2-FSK, but there are a lot of other variables.
I figured the easiest way to see the configuration settings would be to dump the data transmitted from the microcontroller in the throttle to the modem at power up. I did this by tapping the 4 lines that make up the SPI bus between the two parts by soldering wires to the appropriate pins on the RF module.
What I discovered from the configuration data is that it’s bypassing most of the fancy stuff and putting the modem into asynchronous mode. This means that an auxiliary input line is able to just drive the FSK output of the modem directly in realtime. No buffering, framing, etc. Next step was to tap this line and see what’s actually going to the modem. It turns out it’s plain old DCC.
Looking at a capture of the RF data, I can confirm that it’s transmitting DCC as and FSK signal, where the higher frequency is V+ and the lower is V-.
These CC110x modules are dirt cheap. Theoretically, to get DCC (as a logic-level signal) from an Airwire throttle, all you’d need to do is have a microcontroller to throw it into async mode and then listen to the output. I’ll keep you all posted on my progress.