DCC Project 
Last Update: 

This page will be used to document the progress that I am making on my home brew wireless DCC system. After looking at what is available on the market as far as wireless systems, I decided to design my own. Some may think that I am crazy but I like doing this sort of thing. My profession is embedded system programming so this is right up my alley.  The goal is to produce a wireless throttle that can be built for about $100. For the project I will  use off the shelf assemblies that will make the job a little easier. For instance the wireless portion will be an off the shelf module that is already FCC certified. The display and micro will be a low cost commercially available board. I will have to develop the PC board to mount all of the components.

The command station will also have to be designed but I am going to take a short cut here. I have an old low cost MRC command station that I am going to modify for my purpose. Basically I will be removing the micro from this and substituting my own micro. Really all that I will be using from the command station will be the analog circuitry that provides the voltage levels needed at the track. My micro will be generating the digital wave form that will feed this circuitry. The micro will also have to interface to a wireless module to receive the transmissions from all of the wireless throttles. This circuitry has already been built and the code developed to control locomotive speed/direction and also commands for activating the auxiliary function such as sounds and headlights.

The image below is the prototype circuit board for the wireless throttles. The upper third of the board will provide all of the connections to the off the shelf micro and LCD display board. The wireless module will sit down in the lower left portion of the board. It is a surface mount device so it will mount on all of those horizontal pads. In the lower right is a 14 pin device that will provide the interface to the keypad. Just above that are the mounting pads for the keypad connector. In the center we have a couple more connectors that can be used to update the code in the micro. At the bottom of the board are the connectors for the batteries, an LED and the on/off switch. The throttle will be powered by 2 AA standard or rechargeable batteries.

This next image is the microcontroller board that I am using. This board is an off the shelf assembly that includes a micro, LCD and the joystick control. This board will be slightly modified by removing 4 resistors on the back side and adding two jumper wires. This is necessary to bypass the RS232 driver on the micro board. The RF module that I will be using expects CMOS levels rather than RS232. I could have added an RS232 driver to the RF module but that adds more cost and would eat up more power. The other thing that must be done to the micro board is to solder header pins into all of those holes so that it can be mounted on the PCB shown above. I have also removed the coin cell battery from the micro board battery holder. The micro will be powered from 2 AA batteries that feed power to the PCB assembly above. The cost of this micro board is about $20.

Here is the back side of the Butterfly board. As you can see it is setup to be self contained with it's own battery. It also has a clip on it so that you can wear it as a name badge! The clip is easily removed since it is stuck on with double stick tape. The micro is the black object in the center of the board. Above it is a flash chip that can be used to store extra information. The white object on the right is a piezo speaker that could be used for audio. The demo software for the board plays tunes. On the left is the coin cell holder with the battery removed.

This next shot is the built up throttle all packaged in a hand held case. The LCD provides the current status. In this case the throttle is set for forwards at speed step 6. The LCD can also be used to select the locomotive number to control and also add new locomotives to the system. Locomotives can be addressed using 4 digit numbers using the keypad. To the right of the LCD is a mini joystick control. This is also part of the off the shelf micro board. The joystick can be used to select various features such as locomotive selection and etc. The keypad is used to control speed and to activate auxiliary functions when in the run mode. Speed up and down are handled by the A and B keys respectively. The C key is used to change directions and the D key is used to stop. The number keys activate headlights and sounds based upon function number of the decoder. By the way I will not be designing my own decoders! Some of the unfinished items on the throttle is to find a better knob for the joystick control. I also need to come up with some key labels to make the throttle easy for anyone to use. So far I have built up two throttles with a third one in progress.

This next shot is what I have come up with for the keypad labels. The column of keys on the right side provide for locomotive control. The first two keys are speed up and down. The next toggles the direction and the lower key can be used to stop the locomotive. I have added some icons to the number keys to try and illustrate the sound options. These are based upon the decoder used in the Blackstone K27. I haven't decided whether I should add a rotary speed control at this point.

I finally solved my problem with a knob for the mini joystick. I found a pack of 4 push button switches at Rad Shack. These are the type that you might see on the door jamb of an older car. The plastic knob is perfect for a little joystick knob. The switch is easily disassembled by cutting the back end which is plastic. The only other mod is cutting the knob so that it is not quite so tall and enlarging the hole to fit over the mini joystick.

I have the system up and running in a limited fashion. My test subjects have been a Blackstone K27 with a full sound system and two Sunset Ks with Lenz decoders. At the moment I have the throttles hard coded to the locomotive address to be controlled. What I plan to do is to allow selection of the locomotives from the throttles. The command station will store a list of all locomotives in the system which can be sent via wireless to each of the throttles. The user can then pick the desired locomotive from this list assuming that it is not in use by another throttle. This should be easily done by using the joystick control to scroll up/down through the list. The throttle will also be able to add new locomotives to the system. The locomotive number will be entered into the throttle and then sent via wireless to the command station. The locomotive number will then be retained by the command station for later use. I also need to work on consist control at some point so that I can double head the Ks.

At this time I don't plan on providing any decoder programming through this system. I use one of the windows based decoder programmers which makes it much easier than trying to do it through a command station.

So far this has been a fun project for me. I have learned quite a bit about the details of DCC and have been able to generate the necessary signals on the rails. I am able to fully control all of the features on my sound equipped K27. I just need to work on the software a little more to allow locomotive selection and the ability to do consisting.

Home Page