You may have noticed all those blinky lights on the ProtoThrottle and its receivers. Yes, Nathan and I are fans of LEDs on the stuff we build. There is a small coolness factor, but more importantly, for products going out into the wild, beyond our loving care (and our ability to see and touch them), these lights convey important information that helps the user – and us – debug problems when they arise. Below is a guide to what all those lights do and what they mean. To use and enjoy the ProtoThrottle, you certainly aren’t expected to know and remember all the information below. But things do sometimes go wrong, and we wanted to provide a reference guide to help in figuring out what happened. This should also help you understand why one of our first questions, when someone contacts us with a problem, usually involves us asking about those pesky little blinking LEDs…
On the face of the ProtoThrottle you’ll find a single blinking LED top and center. This provides a basic indication of wireless connection status. When there is no wireless receiver in range, the LED will double blink red, indicating that the ProtoThrottle is not receiving data back from a receiver. If you see this red double blinky light, check that the receiver is powered on and that the base address of the receiver is the same as what the ProtoThrottle is expecting (COMM menu, BASE ADDR setting).
When the ProtoThrottle is getting data from its receiver, the LED on the front will blink green indicating basic wireless communication is established. If you don’t like this LED blinking all the time, you can turn off the green state in the PREFS menu using the LED BLNK setting. The red state cannot be disabled, however.
There are two more LEDs on the ProtoThrottle board that can provide a little more information, though these are seldom needed. These are accessed by removing the plastic case, as if you were changing the batteries, and are located above the XBee module at the top. To enable them, you have to move the jumper that sits to the lower right of the XBee module. Put the jumper on the left two pins to enable the LEDs. Store it on the right two pins when not in use – enabling these LEDs will cause increased battery drain so it’s best to disable them when not used. The two LEDs are ASSOC (red) and RSSI (yellow). ASSOC should blink, indicating that the radio module is working. RSSI stands for Received Signal Strength Indicator and lights whenever any radio packet is received by the XBee module, regardless of who it was addressed to or the validity of the data in it. Therefore, it’s of most use when there is a single receiver and single ProtoThrottle near each other and indicates *something* is being received (but not necessarily what).
NCE/Lenz Receiver (MRBW-CABBUS)
The NCE/Lenz receiver has several LEDs on the board. At the top are 5V and 3.3V power LEDs. These indicate that the voltage regulators on board are working and both should be lit green when everything is working. Next to the power LEDs are the ASSOC and RSSI LEDs. These work the same as on the ProtoThrottle and basically indicate functionality of the radio module.
On the left is the PKT LED that lights orange when there is data traffic on the NCE Cab Bus or Lenz XpressNet bus. It may be on solid, or you may notice rapid blinking. Both conditions are fine. If it goes out for an extended period of time, however, that may indicate a problem on the Cab Bus or XpressNet network.
In the lower right are four important status LEDs. The PING light flashes blue whenever the command station polls the receiver. Since both Cab Bus and XpressNet work on a “speak only if spoken to” principle, if the PING light is not lit, then the receiver won’t be able to relay ProtoThrottle commands to the command station (it’s not being spoken to). Possible causes include a bad Cab Bus or XpressNet connection or the wrong cab number being selected on the receiver. While the NCE Power Pro system can address all 64 cab numbers, the Power Cab system can only address cab numbers 3, 4, 5, 8, 9, and 10. If set to any other cab number, it simply won’t work. We’ve also had reports that the Power Cab v1.1 (old firmware) only supports cab number 3, though this has not yet been confirmed.
The XBEE RX light flashes blue whenever a valid ProtoThrottle data packet was received. Similarly, the RESPONSE light flashes blue when ProtoThrottle data has been successfully sent to the command station. You should expect both of these to blink, almost in unison, every second or so, as the ProtoThrottle sends periodic refresh updates, and also each time a control on the ProtoThrottle changes.
The final LED on the receiver is COLLISION. If this light is solid red, it indicates a collision on the Cab Bus or XpressNet network. This means there is another throttle connected using the same cab number. You will need to change that throttle’s address, or the cab number on the receiver. If the COLLISION light is blinking red, this indicates another receiver is within range using the same base address. This is most likely to occur in a public show setting where multiple layouts might be using a receiver. The solution is to change the base address on one of the receivers, but don’t forget to also change the base address in the ProtoThrottle(s) connected to that receiver (COMM menu, BASE ADDR setting).
ESU/JMRI/Digitrax Receiver (ESU-BRIDGE)
This receiver is a bit more complex, and as a result, has more combinations of blinky lights. While the RasPi board (the skinny rectangular one) has an activity LED on it that blinks when it is doing something, the primary focus of this guide is the LEDs contained on XBee board. The green PWR LED indicates that the 3.3V regulator is working correctly. The orange XBEE TX and XBEE RX LEDs indicate when serial data flows to/from the XBee momdule. These should flash every second or so, as the ProtoThrottle sends periodic refresh updates, and also each time a control on the ProtoThrottle changes. The ASSOC and RSSI LEDs work the same as on the ProtoThrottle and basically indicate functionality of the radio module.
LEDs D6, D7, D8, and D9 are where most of the action happens. Properly interpreting the meaning of these lights depends on the state of the receiver, according to the steps below:
Stage 1 – Booting (After power on, for approximately 35 seconds)
In this phase, the RPi is initializating and Linux is booting. Critical things to see:
- RPi ACT light (green) blinks rapidly and randomly – this means the system is booting
- XBee PWR light (green) glows
When the XBee lights D7-D9 (blue) and D6 (red) go out, then we’re on to the Startup phase (stage 2)
Stage 2 – Startup (<1 second)
In this stage, the esu-bridge software is starting to run and is looking for the XBee module. Critical things to see:
- XBee D7-D8 (blue) and D6 (red) will go out
- XBee D9 (blue) lights up brightly – this means that the XBee has been initialized
If D8 (blue) starts blinking rapidly (5 times/sec) or so, then we’re in the Searching phase (Stage 3a, below). If D8 (blue) starts blinking slowly (1 time/sec) or so, then we’re in the Connecting phase (Stage 3b, below). If D8 (blue) and D6 (red) blink together at approximately 1 time/sec, then the WiFi network radio didn’t connect or we didn’t get an IP address.
Stage 3a – Searching (Anywhere from instantaneous to 21 seconds)
In this stage, we have a WiFi network, but have not located the ESU / JMRI / LNWI server yet. If the server is located, the blink rate will slow to 1 time/sec and we’ll go to the Connecting phase (Stage 3b, below). If the server is not found, the blue lights will all go out and we’ll go back to stage 2.
Stage 3b – Connecting
In this stage, we’ve located the server and are connecting to it. There’s a pause between locating the server and connecting to it for rather technical reasons (we have to wait for the LNWI to notice the socket closed). When D8 (blue) goes solid, we’ve connected to the server and we’re on to the Run phase (Stage 4). If the server connection fails, the blue lights will all go out and we’ll go back to stage 2.
Stage 4 – Run
In this phase, D9 (XBee status) and D8 (server status) are both solid. This indicates we can talk both directions from the bridge. Now we can use the other indicators to see what’s going on.
- If RSSI (yellow) comes on, we can see ProtoThrottles or other XBee devices using the ISE PAN (such as the fast clocks).
- If D7 (blue) comes on, that means we’ve received traffic from a ProtoThrottle intended for us. If it goes out, that means we haven’t seen a ProtoThrottle packet in 4 seconds or so.
- If D6 blinks, that means we’ve seen another base on the same address as us.
If something fails here, the system should jump back to Stage 2 and restart the process.
If the RSSI LED is on but D7 never comes on and the PT LED is blinking red, then that almost certainly means there’s a mismatch in the base address between the two (COMM menu, BASE ADDR setting).
If All Else Fails… The RPi is a full linux computer and has a mini-HDMI display port on the side. If you plug that into a monitor or TV before powering it on, you’ll be able to see the console scroll by as it boots. There’s a lot of diagnostic information in there that just can’t be conveyed by some blinky lights.