I’ve been working with the series 1 Xbee for several years in order to control large scale model trains. For those not familiar with this device, the Xbee 1 is an integrated package that communicates on the 802.15.4 IEEE wireless network. This is the base level network, only the MAC layer, no mesh or other high level network layers. I have the device configured in ‘API’ mode, which means it accepts standard format messages with a header and checksum and passes those out to the network. It’s actually very simple- all of the nodes are on the network and any node (via a 16 bit address) can talk to any other node. So this means I can do anything with this from controlling trains to controlling turnouts or animations or sending back telemetry from the locomotives, etc, etc.
Well, it turns out that the 802.15.4 protocol is rapidly becoming one of the standards used in IoT, Internet of Things. From what I have read, it has about 65% or so of the wireless IoT market share. So I’ve been working on ways to control large scale trains with this in mind. I’ve had quite a bit of success with this and now one of the outputs of my control widget board can generate DCC messages to directly drive DCC decoders (up to 3Amps for now, I have a 5amp version I’m working on).
This is an open-ended algorithm, it can generate the proper DCC bit stream from any input of hex bytes. This lets me keep the network traffic down as the widget generates all the timing for the DCC signal. I only have to pass the basic commands over the network which keeps everything nice and small and fast.
Anyhow, here is the latest incarnation of the DCC 802.15.4 Widget driving a QSI decoder. This one is installed in an Ariso Dash9. Unlike previous designs this one has only one connection- the DCC output from the widget. This is fed to a ‘DCC amplifier’ that then drives the QSI DCC decoder. A 14.8v 5000mah battery provides the power.
This was an interesting install for a couple of reasons. First, the decoder is ‘plug and play’, I disconnected the track pickups and plugged the decoder into the socket- everything just works, no rewire of the motor blocks or LEDs! Very cool. The outputs of the DCC amplifier then drive the decoder directly, no motor controllers or relays or anything.
The second reason was the software. I’m not sure about the vintage of the QSI firmware but it was not happy with the extended DCC packet format for the throttle messages. So I branched the software and made a version that only sends the base DCC packets. I put the QSI into ’28’ step mode and all was good. I wasn’t particularly pleased by this but what can you do eh? I still need to do some CV tweaking for the momentum and braking but it’s working well.
At some point I will be trying out the new WOW large scale decoder and the Economi 400 to see how they react to the extended packets. I’ve played with the Econami 100 and 200 decoders so I assume the 400 will behave in a similar way. Nevertheless, I’m thinking I will need to re-work my firmware to include both the extended and the base level DCC packet generation. That is the official standard according to the DCC docs so I should support it.
Above is the basic circuit. On the left is the DCC driver, then next assembly is the 14v to 5v stepdown power supply which can deliver 2.5 amps of 5v (for servos, etc) to the IoT Widget. In the middle with the Xbee is (obviously) the Control Widget. On the right is speaker #2, I’ll be routing most of the horn and bell sounds to this one with the big sub in the engine compartment handling all of the prime mover sounds.
A picture of the main speaker driver. This is a tangbang full range speaker with passive radiator. Really nice bass from this unit. Here is link to it: tang-bang-speaker
Here is a shot of the ‘terminal’ (Hand held controller) I’ve developed for interacting with the IoT 802.15.4 network. This one is a back-lit alpha numeric display which works great- I can see it out on the layout as it gets dark at night.
Above is a new design I’m trying out- This is a full color graphic touch screen that has tons of features. It incorporates a usb programmer port, a speaker and a built in lipo charger circuit. I just can squeeze it into the same case as the alpha display so we shall see how it goes. Work in progress.
This is the widget driving an Econami 200. Since it’s only 2 amps, I will probably be using this in a critter or railcar of some type. Right now all I have it hooked to in this video is the speaker.
Here is a video of the widget controlling the QSI. I think all the firmware changes are in so I’ll be buttoning up the unit and taking it out to the layout soon for some real world testing. I may go ahead and run the servo lines out just so I don’t have to open it back up when I put servos on the couplers.