Revolution Radio Control
Under construction/modification by Eric Timberlake (talk)
Precision RC, aka Crest 'Revolution'
Formed as an offshoot of Aristocraft as they created their own RC control solution.
Precision RC 16 Chestnut St. Ste 201E Emerson, NJ 07630 USA
What is it?
Revolution is based on a 2.4GHz "Zigbee Network" to create a network infrastructure similar to WiFi with the throttle at one end and various decoders at the other end. This allows the formation of a zigbee mesh network and the support of consists with multiple locomotives, for instance.
Let's explain this a little further - what do we mean when we say "formation of a zigbee mesh"?
The "pairing concept"
All modern over the air networking and point to point networks involves cryptography. You use complex cryptography encoded data every minute of every day without even being aware of it. To use these encryption tools, you need to establish "keys". You create these keys when you "pair" or "link" a device to another node on the network.
We will use this "pairing" concept later in the instructions to start the file transfer process.. Here are some examples to help illustrate the concept in ways that you likely use every day. Note that ALL of these work within the 2.4GHz radio frequency broadcast spectrum.
WiFi
WiFi should be familiar to many. You configure the controlling device, your WiFi AP or wireless router, with an SSID (network name) and a password. Or a "key", if you will. To join the network, at the end node, we select the SSD and provide the "key", or password, and you become linked to that network that allows TCP/IP protocol traffic to flow over it. This is essentially what the internet is built on, TCP/IP connections. Anyway, the point here is, you "link" a node of some sort to a "controller" of some sort.
Bluetooth
Bluetooth should also be familiar - You tell your bluetooth end node to advertise itself (like a link button!) to be open to linking. Then you initiate a search on the controlling device, your phone, for instance, to initiate the link bonding and key generation. Now we have a secure encoded point to point link between the phone (controller) and the bluetooth device, usually speakers or headphones.
Zigbee
Zigbee is extremely similar, but is the one most people haven't heard about, because it's more low key utilitarian in scope. If you have a smart electrical meter on your house it may be part of a large Zigbee mesh network, for instance. In our case, the Revolution Throttle is a Zigbee Controller. You use the menu to select "linking", then on the decoder end, you press the "link" button for a short period. This causes the Throttle and decoder to pass cryptographic keys with each other and they are then "linked". Because Zigbee is a mesh network, you can repeat this process with addition decoders.
Tools
Deep within the bowels of the Revoelectronics Downloads page you can download sound files, throttle firmware and the Windows program(s) to move these files around using the USB Device Programmer.. You need to create an account on the Revolution website to access the downloadable files and/or any documentation. In case it's not obvious, we will explain the use of the files you may download and the USB Device Programmer below.
There is exactly ZERO documentation provided for any of these USB Device Programmer tools that I can find. The goal is to figure out and document just how this all plays together so you don't have to go through what I did..
Observations
Loading the Programmer Interface tool
Running the Windows SW is simple and so far, it works MOST OF THE TIME, with just a few caveats.
So, you insert the USB Programming Adapter into a USB 2.0 Type A port. Then start either the cleverly named "PC Software v1.0" or "PC Software v1.1"
The photo below shows a modern Arm architecture Mac running Windows 11 within Parallels Desktop. This is not required, just a proof of concept that the tools provided will run within a virtual machine as well as a dedicated Windows laptop.
Also visible in the photo is an off the shelf USB-C to USB-A adapter (the little red cable) readily available at Amazon and other suppliers.
Additionally, you can clearly see the blue LED that indicates power to the USB Programming Adapter. The red "activity" LED is on the adjacent corner of the USB Programming Adapter and is clearly visible when lit.
Running "PC Software v1.1"
So, now you should have Windows (real or virtual) running, the USB Programming Adapter inserted into a USB port.. When you insert the USB Programming Adapter there are two LED's of note. A blue LED that indicates power and a red LED that indicates various states of use.
Time to light up the programing SW interface, called "PC Software v1.1".. You can ALSO use the slightly down rev "PC Software v1.0" version if you desire..
After starting up the SW, you should see a screen SIMILAR to the photo below. Note in this photo that the USB Programmer Interface is NOT visible - I took the screen shot before actually inserting the tool. The tool can and sometimes MUST BE inserted while "PC Software v1.1" is running - more on that later!
Using the Tool
Step 1 - Pre-stage the file to the Programming Adapter
After the tool is started, the first step is get that field under the logo to say "Programmer found". Sometimes this works right off the bat if the dongle is pre-inserted, other times it needs to be "hot plugged" while "PC Software v1.1" program is actually running. When inserted the Programming Adapter will light a blue LED in a steady state.
Once you get to the "Programmer found" status, the work flow runs like this:
- Select the device you want to send a file to in the upper left dialog window.
- Select the actual FILE you want to send to the device using the "File Open" button, which will bring up a normal file selection dialog.
- Select the "Load/Program" button.
This will result in a file transfer status being shown - this is important, you are NOT sending the file to your device at this point, you are "pre-loading" the Programming Adapter with the file for further processing. While this pre-load is happening, a red LED located on the opposite corner from the blue LED will light in a steady state.
Sending the staged file from the Programming Adapter to the target
Once the "Load/Program" process is completed, the dialog window will update to say, "Searching Target Device Signal". You should also note that the red LED on the Programming Adapter changes from a steady state to a rapid blinking state! If you do NOT see the LED blinking, something is wrong! (See hints towards end of article..)
Step 2 - Starting the upload (Where we will use a special mode of "linking"
Move to your staged device - you should have it powered up and at a minimum the "link" button attached. In the photo further up the article you will note a speaker, a motor trigger wires and the link button all attached to the decoder so all the features can be easily tested after the upload process is completed.
The link button has DUAL FUNCTIONALITY. A very short press doesn't do anything. A medium length press puts the decoder in standard linking mode. A LONG PRESS (what we want to do in this case) triggers a special upgrade mode and will immediately link with the Programmer Interface and start transferring the staged file embedded in the Programming Adapter. You should be able to see the transfer progress updating in the "PC Software v1.1" window.
The red LED should still be blinking at a fast pace.
At this time, press and HOLD the link button. The decoder LED will first flash quickly, then after a few seconds will slow down - that's the sign you have entered the second "programming mode". Release the button and observe the "PC Software v1.1" window to monitor the transfer process.
When it is completed, it will note "Transfer Successfully Finished".. This is a good sign!
After the process is completed, simply power cycle the decoder and test to your satisfaction.. Repeat as required to get the sound you want loaded into your decoder..
Updating the throttle vs. a decoder
Updating the throttle Firmware is a similar process with just some minor variations.
- First, select "Revolution Transmitter" as the device to upgrade.
- Second, select the FW file you want to upload into the throttle. (3.03 being the most current)
- Third, after the transfer into the Programming Adapter is complete and the red LED starts flashing, power up the throttle, select MENU -> ASSIGN FUNCTIONS ->10. UPDATE FIRMWARE.
- Forth step, like the decoder, the "Are you sure?" dialog needs a LONG PRESS on "Yes" to trigger a transfer.
If something is wrong and you can't see any progress happening, use the MENU and ON/OFF button together to reset the decoder. DO NOT do this "mid transfer"! It may brick your throttle! Only do this if something is amiss and the process never starts at all.
Errors and Caveats
I started this project with a used Throttle and an older decoder found "miss-listed" on Ebay, thus a real steal of a deal. I borrowed the "Programmer Interface" from Warner Swarner.
It turns out that I was fighting several issues that made figuring this out quite difficult..
- The used decoder is broken, it won't accept updates. Fortunately I was loaned a couple of new decoders that work correctly, and that helped establish what works and what doesn't work as well as proving the decoder I got off Ebay is just plain broken.
- The Programming Adapter was partly faulty - the zigbee radio module was not making a firm connection to the USB dongle.. This was HUGE..
It took MANY, many tries to get things working. The intermittent Programming Adapter was the largest hurdle. Ultimately what I found was this:
That disconnected connector you can see is pried apart so I can try seating and re-seating it a few times. This cleared up the "loads, but red LED stays solid" issue that I fought off and on for weeks while I worked my way through the puzzle of how this is SUPPOSED to work..
Other gotcha's
It is not uncommon for the Programmer Interface to just not respond to the "Load/Program" button. The only cure I can relate is to leave the "PC Software v1.1" running and unplug, then re-plugin that Programmer Interface - wait for "Programmer Found" to appear, then start at the beginning by selecting a device, file, then "Load/Program".
Sometimes, the exact opposite is true and you need to quit out of the "PC Software v1.1" and restart it. And sometimes you need to do BOTH actions to get it all happy..
If the red LED does not start blinking at the end of the "Load/Program" step, something is wrong with the Programmer Interface itself, try GENTLY unpluging the zigbee module (it will NOT come completely free due to a soldered ground connection!!) and re-plugging it back onto the USB module a few times.
Flow Chart
A basic flow chart of the process...