The Digitrax DS54 Stationary Decoder

Using and Programming

 

The DS54

The Digitrax DS54 Stationary Decoder, is a 8 input 4 output decoder. This combined with it powerful programming capacity and LocoNet feedback, make it one of, if not the most versatile decoder on the market. At the same time it is easy to use as a typical turnout controller. Some of it's features are the 2 separate and individually programmable inputs, and it's 4 separate and programmable outputs. Each input can be programmed for Trigger and Tasks, as well as broadcasting LocoNet messages to the system. There is also a local panel 9 pin connector with 8 different colored wires and white. These prove an input source for push buttons or toggle switches to control the DS54 from local panels around the layout. The White wire provides a handy ON voltage source for these inputs. These same inputs are used for control from block detectors and other sources, such as positive turnout positioning. The 4 independent outputs are also programmable for different pulse rates for push pull twin coil switch machines, are bi-polar with or without a +common reference point, and can be programmed for static, or steady state output for stall motor type switch machines such as Tortoise or Switch masters. As well as blink states for such uses as grade crossing flashers, etc. There is also a handy connection for use with the input for positive turnout positioning here.

As supplied Digitrax makes using the DS54 as easy as possible. Without the need for any programming at all, or the very least as required. If you are using twin coil type switch machines such as Atlas or Peco, all you have to do is hook up the DS54 and go. If you are using stall motor types, then you only need to program the outputs to steady state [Static], then hook up and go. You now have a typical stationary decoder to control turnouts from either local panel, throttles, computer, etc. And if you connect the LocoNet cable, each input will broadcast a general sensor message that this input has triggered.


Other Uses
Besides just controlling turnouts, the DS54 can be used for multiple things, some have not even been dreamed of yet. Some of which include, block detection with LocoNet feedback. Turntable indexing, signaling systems. Run/Stop, emergency around the layout. General animation control. Automatic turnout positioning via detector input. Broadcasting Loconet messages. Local and Cascade route control. And just about anything else you might be able to dream up. And all this controlled from either local panel, throttles, computer, LocoNet messages.

But to do these neat things, you need to have a little understanding of how the DS54 works, how to hook it up and interface with it, and of course how to program it. So this is where will will go next. I have already done a page on the DS54's CV's and their usable values and what they mean. So you may want to either want to make a hard copy of this page, or open it with another window so you will have it for easy reference. The DS54 CV Values and charts.


How to Program the DS54
I will start here in case you want to use the DS54 with stall motor switch machines or other uses not covered by the default settings. It is easy to program the DS54, the first thing you need to do is to enable the program jumper on the PCB. Next is to connect the track inputs on the PCB to your programmer output. This programmer can be any broadcast mode or service mode programmer. Such as the system programmer, or an off-line programmer such as the PR1.

You will also need to make a feedback adapter. If you are using a broadcast programmer that is not current limited connect the yellow and black output wires together, and use a 10 ohm 2 watt resistor in series connected to one of the programmer output leads. If you are using a current limited service mode programmer, like that of the Chief or PR1 then you only need to connect the Yellow wire to one of the programmers outputs. Do not connect the black wire, only the single yellow output wire and no resistor is required.  You should now be able to program and read CV values back on the programmer. At this time nothing else should be connected to the DS54. You should now be able to program any of the programmable CV's on the DS54 you like.

NOTE: When done programming, remember to dis-able the program jumper.



Testing the DS54
Before you do anything with the DS54, you might want to take the time to test the DS54. Here is a very simple circuit that will show the output results of the DS54. Only components required are two LED's and a 1K 1/2 watt resistor. Remember as supplied the defaults of the DS54 will cover a large majority of installs. So all you need to do is connect the DS54 track inputs to your rails or booster output. Connect the simple tester to one of the outputs, and touch the local panel input White wire to one of the local panel input wires for the selected output. Each time the White wire is touched to an input wire, you should see the state of the output change via the LED's.

If you are testing a DS54 as received. the factory defaults on the outputs are set to a 0.125 second pulse. Look closely, each time the output toggles you will see one LED or the other blink. If you are testing after programming the output CV's, then pending what you programmed to, the LED's should show the resulting change in output. A longer pulse will show on the LED's. If you programmed to a blink rate, this should show on the LED's also as one LED lighting, then the other, just like a crossing flasher. If programmed to Static for Stall motor output, then one LED will be light steady, when the input is triggered, then the other LED will be light.


Connecting the DS54
There are some basics and some variables here pending on how and what you want to do with the DS54. The basics are the track inputs must be connected to a boosters output. This is where the DS54 gets it's commands from, and some power. This connection can be made at the track in the local area. Note: If block detection is used the DS54 current draw will trip the detector. It can be made at the booster, or a separate bus run for the DS54/s. Or better yet a separate booster just for the DS54's. This has the advantage of, if a short happens to trip out a track booster, caused by a improperly thrown turnout, the DS54 will still have power to correct the condition.

Next you need to connect the output to what ever it is you want to control, turnout switch motor, etc. Digitrax supplies these cables, they are typical Telco headset cables. Each has 4 conductors, Red, Yellow, Black, Green. The Red conductor is simply another source for the Switch input of that output. The Green conductor is the +common, this will connect to the common connector of your Twin coil [push pull] type switch machines. The Yellow conductor is called the Thrown, and the Black is called the Closed. If you use static output for Stall motors, you will only use the Yellow and Black, do not connect the Green, and make sure it is isolated and out of the way.

The AUX power input, the large Red and Black leads from the DS54. With twin coil type switch machines, and if you want more speed from your Stall motor types. You will want to connect an 12-16 vac power source here. This will increase the current available from the DS54 to throw the twin coil types. And the voltage can be selected to give the speed you want from your stall motors.

NOTE: It has been noted by some users that the AUX inputs must be properly phased to the AUX power supply, this simply means that the Red and Black leads should be connected to the same AUX power supply leads with all DS54s.

At this point if all went well and according to plan, you should have a working DS54. That can be controlled from a throttle and/or computer. If you would also like to have the DS54 broadcast messages in to the LocoNet, just connect the LocoNet cable. If all is well at this point, you can also, if the DS54 inputs are still programmed to defaults, check the local panel inputs out. Just take either of the two inputs for any output, [Switch or Aux] and with the White local panel wire, momentarily touch it, the output should toggle positions each time it is touched.


Interfacing to the DS54
If you checked the local panel inputs as above, and everything is working as planned, then it is time to interface the DS54 to the world outside the LocoNet. Starting with the most basic of interfacing, this is just using a push button on a local panel or panels to control the output via the AUX input. Using the White wire on the DS54 local panel input, we can connect a simple push button to one of the DS54 AUX local panel inputs. Programmed at default, this will cause the output to toggle states every time the push button is pushed. Just like when we touched the white wire to one of the inputs. Still using the DS54 factory defaults, we can now push a button on a local panel, use the throttle, or a computer to control the turnout, not bad at all.

Now we may want to have other inputs besides just a local panel control, after all we have 8 inputs right. How about a block detector, no problem. With the Digitrax BD1 block detector this is real easy. After all the BD1 was designed to control a DS54.  The BD1 is a high sensitivity detector, requires a max. resistance of 15 kilo ohms to operate to an ON status. The thin Red wire will go to the desired input on the DS54 local panel input connector. The thin Black wire will go to the DS54 heavy Black wire of the AUX power input, this is actually the DS54 - common. This is also the same connector on the DS54 marked sensor common. The heavy short lead marked BLOCK will go to the track of the block to be detected, and the other heavy un-marked lead will go to the output of the booster.

Or maybe you would like to interface another or existing block detector to the DS54. This can be done in multiple ways, but I like the idea of using opto-isolators for this. Here are a couple ideas for DS54 Interfacing.

If you are using stall motor type switch machines here is a simple way to have directional LED indicators for turnout direction. Note that the two LED's can be replaced with a single bi-pin bi-color LED if you would like. There is no need for current limiting resistors, the stall motor it's self will limit the current to the LED's just fine. The LED's will drop the voltage slightly to the stall motors, so you may have to increase the AUX input voltage and/or add the optional pull up resistors from the Black wire to the Green, and Yellow to the Green. Values can be from 1.5k 1/2 watt to lower limit of 470 ohms at 1 watt. Remember lower resistance increases current and speed.

Once we start looking at these different ways to interface the DS54, then we need to start thing about how we are going to program the DS54 to do what we want it to do. So if you did not print out, or open in another window the link to DS54 CV Values, now is a good time to do it.


Programming the DS54
Now we can take a look at the more complex features and abilities of the DS54. But before we do this, it is best if we understand a little of how the DS54 works, and the best way to look at the DS54 for programming purposes.

There is a way to program the address of the DS54's outputs, that does not even require a programmer, and can be done with the DS54 already hooked up to the layout. This is done by pressing and holding the address program button for at least 1 second. Now using a Digitrax throttle or computer and software, send a command to control a output address [turnout number] of your choice. Now the DS54 will be programmed to match what ever output address you selected. The DS54 output address range is from 1 to 2048.

NOTE: for output addressing over 252, the DS54 may require a power cycle for the addressing to properly take place. If it does not, simply leave the power off longer to allow the DS54 to completely power down.

Some like to program the module address or group number while on the programmer. The groups are from 1 to 512, this translates to 512 time 4 output addresses per group equals 2048 output addresses. The DS54 uses CV01 just like a mobile decoders does for short addressing. With the DS54 short addressing is from group 1 to group 63, or outputs 1 to 252 or simply 63 times 4 equals 252. For group addressing higher then 63, the DS54 goes into long addressing mode and requires the programming of [LSB] CV01 and [MSB] CV09 to get a total 512 group addresses in 9 bits. 
CV01 is a 6bit address, thus the max value would be 63 [0x3f] LSB and CV09 is a 3bit address, thus the max value would be 07 [0x07]MSB

The formula for programming short and long addressing for the DS54 is as follows:

CV09 = Quotient [group# divided by 64]
CV01 = Remainder

Examples: 
Programming for group address 25 would be as follows:
25 / 64  = 00 Quotient
64 x 00 = 00, then 25 - 00 = 25 Remainder
Thus programming CV01 = 25 [0x19] and CV09 = 00 will result in a module or group address of 25, and responding output addresses of 97, 98, 99, 100.

Programming for group address 356 would be as follows:
356 / 64 = 05 Quotient
64 x 05 = 320, then 356 - 320 = 36 Remainder
Thus programming CV01 = 36 [0x24] and CV09 = 05 will result in a module or group address of 356, and responding output addresses of 1421, 1422, 1423, 1424.

NOTE: There is an exception to the above formula with the DS54, group address 512 is programmed as CV01 = 00 and CV09 = 00. This will result module or group address of 512, responding output addresses of 2045, 2045, 2047, 2048

If all the above is to much for you, try downloading the DS54 Address Calculator, this is an Excel file that will not only calculate the output addressing for you, but will also map the DS54 inputs and output to WinLok's Sensor and Solenoid devices, in the form of SER(x,y) and SWI(x).

Download the DS54 Address Calculator

Next are the DS54 outputs. We need to know what type of output is required for the application. The DS54 cell output CV's are A=CV03, B=CV04, C=CV05, and D=CV06. The default for each of these output CV's are '00', this will equal a 0.125 second pulse, retriggerable. This default was selected as a safety feature. If the DS54 is connected to a typical twin coil switch machine, this 0.125 sec pulse will assure that the coils would not burnout, as they could possibly if say a static pulse were selected as the default. The selectable values for the outputs are pulses from 0.125 to 12.00 seconds, both retriggerable and non-retriggerable, blink rates from 0.125 to 8 seconds, as well as static [steady state]. Retriggerable means that the DS54 will except another command before the last one is completed. Static means the output will hold what ever state till commanded to change state. This is the output to use for stall motor types like the Tortoise or Switch masters.

The DS54 inputs are the heart and sole of the DS54's versatility. Each cell output A-B-C-D has two separate and individual inputs, one named Switch and one named Aux. Each can also be programmed separately for different trigger/tasks, messaging, and routing.

Starting with the Trigger/Task, these are direct entry CV inputs, the left digit sets the Trigger and the Right digit sets the Task. The Trigger is just as the name implies, what is required to trigger this input. The task is also as the name implies, once the proper trigger is found, what task should this input provide. First note, a DS54 input is considered ON when the input voltage is over + 6 volts and OFF when under +6 volts, as referenced to the DS54 - common. The input voltage range is from 0 volts to +20 volts max. Again referring to the DS54 CV Values, the possible triggers are, the default Input ON [off to on], Input OFF [on to off], Input On [any change], Input Off [any change]. plus two special triggers that are qualified by the current Output state, these are for uses where the input trigger polarity will depend on the output polarity. This is for such things as index a turntable, or any application where the polarity or direction of travel will need to be taken in to account before a valid trigger is seen by the input. The possible Tasks are the default of Toggle Output [each trigger changes the output], No Output change, Output Thrown [throw turnout], Output Closed [close turnout], Local Route [On trigger setup local route]. Plus two special Tasks, Outputs OFF [Stop motor or turntable], Restore Output [Continue].

If we take a minute or two and look at these Trigger and Task codes, it is pretty easy to see what is happening, and what we might want to use. As example, if we simple leave the default at '00', we are all set for push button control of the Local input. Trigger equals Off to On. So when a push button is connected to a Local input via the White wire, a handy greater then +6 volt ON source, and the Task equals Toggle output. So each time we press the button, the output will change states, from Thrown to Closed, Closed to Thrown. Or if we want to use an input for block detection, then the Trigger and Task will equal '01' The Trigger remains the same, but we have no reason to change an output so the Task equals 1. What if we want to control a turnout automatically with BD1's say from the frog end of a reverse loop exit, or the Y turnout of a Wye. This means we need two BD1's, and one block each for each leg of the frog end of the turnouts. With two BD1's or any detector that is interfaced to the DS54, we also need to use both of the Inputs for the output that is controlling the turnout. We know that the BD1 supplies a voltage greater then +6 volts when detecting, so we again can leave the Trigger at 0 [OFF to ON] we will also have to program the task to match the proper leg of the turnout, thus when the trigger is ON, the task of one input will be 2 [Thrown] the other input task will be 3 [Closed] So the input Trigger and Task will be '02' for one input and '03' for the other. Now when one BD1 detects it will force the turnout Closed, the other when detecting will force the turnout Thrown. Again just take a few minutes, look these over, and they should become pretty clear on how to program the Trigger/Task codes to do what ever you like.

Once a trigger input is met, do you want this input to also broadcast a LocoNet message to the system. This is what the message CV's of the DS54 is for. Possible LocoNet messages are the default of General Sensor [detector is occupied]. No LocoNet message sent [this input requires nothing to be broadcast]. Turnout feedback [let the system know a turnout has changed position]. Cascade Request [tell another DS54 on the LocoNet to change an output state]. System ON/OFF or RUN/STOP [use as remote emergency STOP]. Exact turnout position [Aux input is EXACT turnout feedback]. The Switch input can also be used to broadcast multiple LocoNet messages on a single Trigger. Output State/Sensor Input, Output State, Output State/Turnout Feedback, Output State/Cascade Request.
Messages ON/OFF and RUN/STOP, are special codes. If the input is ON the message will be Power ON, if the input is OFF, the message will be Power OFF. Thus these LocoNet messages can be used for system control buttons or switches, such as Emergency Stop, Stop, Power ON, Power Off, via a DS54.

NOTE: The Task codes that operate on the Local outputs and Message type codes are independent in operation but are executed by the same input trigger.


Routing and Cascade Requests
Again referring to the DS54 CV Values page, this page cover the programming of both Local Routing and Cascade requests. So all I am going to do here is give a little more on the How and Why, along with some of the details of each each. Starting with the Local Route control of the DS54. These seem to give users some problems, but again just stop for a few minutes and look them over, they are not really that hard to understand.  Again like the Trigger/Task CV values, the Local Routing CV values are direct entry, that is the Left Digit has one meaning and the Right has another meaning. The default values are '00' or simply no Local Routing is set up. If you want to use the Local Routing feature of the DS54, then you will have to program the CV values for the local input you want to use. The value of the Left digit will determine what output cells are to be used. The Right digit is used in conjunction with the Left, and will determine which of the cells set to Local Routing of the Left digit are to be CLOSED, all other cells will be Thrown. In other words, use the Left Digit to select which cell output are to be included in the Local Route. Use the Right Digit to set which are CLOSED, and the ones not selected will be Thrown when the Local Route is triggered. Not a hard concept to figure out at all. Just requires a little thought to get it all straight. Always a good idea to write it down on paper to help figure it out.

Cascading is a little different, and also programs a little different. Unlike the Local Routing control, where only the cell outputs of that DS54 can be controlled, cascading is actually a LocoNet message that will tell another DS54 on the LocoNet to control a given output. Cascading actually uses two CV's per each input. One is called the Cascade Control, the other the Cascade Address. The Cascade control CV's only have 3 possible values. The default of '00' or Cascade disabled. Closed and Thrown are the other two. These just simply tell the other DS54 what you want that output to do. The Cascade Address will except address from 00 to 7F, these are the actual cell address that you want the Cascade control to act on. Again a very basic and simple concept, the Control CV tells what we want to do with the DS54 cell, and the Address CV is the address of the cell we want the control to act upon.


Having Problems

With Programming
Review the How to Program the DS54 above. Make sure you have nothing else connected to the DS54. Remember to enable the programming jumper. Did you connect the feedback adapter? Even if you can not read the CV values back on a service mode programmer, check and see if the DS54 actually did program properly. It is very possible that the programmer did in fact properly program the DS54, but for some reason, just can not read the programmed values properly. Also if you are using an Off-line programmer such as the PR1, make sure you have the latest software. PR1 software for Windows or PR1 software for DOS. Generally, if you can program and read the CV values for your mobile decoders, there should be no problem with DS54 either.

After Programming
Did you remember to dis-able the program jumper? If you forget to remove the programming shunt from the programming pins, the DS54 will initialize to the address group of the corresponding switch that is being closed or thrown. Not getting any LocoNet messages or feedback to the system? Did you remember to hook up the LocoNet cable? The DS54 will function just fine without the LocoNet connected. It receives all it's commands from the rails and/or the Local panel inputs. But there is no way it can talk to the system if the LocoNet cable is not connected.

Outputs Not Working Properly
Review the Connecting the DS54 above. Did you program the DS54 outputs to the proper output for the type being used? If you are using Stall motor type, like the Tortoise or Switch master, you need to set the output CV's to equal '20' for Static output. If you are using twin coil types of the lower current draw of the Atlas or newer style Peco's, then the default of '00' should work fine. If you have twin coil types that draw a little more current then these, then try programming the outputs to a slightly longer pulse, such as 0.25 or 0.50 seconds. You do not want to send a pulse any longer then needed, so be careful here. Did you connect the 12-16vac AUX input power. The DS54 is limited in the amount of power it can draw from the rails, you need to add the AUX power. Are any of the large resistors mounted on the DS54 getting hot or starting to smoke, then there is to much current being drawn from the outputs of the DS54. The DS54 is limited to how much current it can supply to the outputs, something like 20-50 mA. continuous, 500 mA. pulse. This will cover the low current twin coils, or the Tortoise and Switch master stall motors. These will only draw around 10-15 mA full stall. If you are using something else, then you need to boost the amount of current the DS54 outputs can supply. This can be done easily with the Digitrax DM1. The DM1 plugs into a DS54 output and supplies up to 1.5 amps of current, 500mA. continuous, 1 amp pulse. Other options are to add pass transistors, or use a low current draw relay to control the switch motor. Or if you are using twin coil switch machines, you can add a CDU Capacitance Discharge Unit. Such a unit can be built and added to the DS54, like this DS54 Capacitor Discharge driver by Jean-Louis Simonet.

Still Having Problems  

Please feel free to 

Email

 me with your questions or problems.


NOTES:

Digitrax has issued an Amendment dated 9/2/98 to the DS54 manual. If your manual/s are prior to this date, and you do not have a copy of this Amendment, you should contact Digitrax and request a copy. This article does reflect all the current changes in the manual as per the Amendment.

The use of the auxiliary power is now recommended by Digtrax for all switch machine type, not just the twin coils which require it, but also for stall motor type. This will avoid power drops from the system when multiple switch machines are set simultaneously. But when two stall motors are connected parallel to a single output, then the pull up resistors in the manual should also be used with the auxiliary power.

The DS54 has two commons the negative common and the positive common. The negative common is the large Black wire of the AUX power input and the terminal marked Sensor Common. This is the reference point for all 8 inputs of the local panel connector. In other words the common point that the greater then +6 volts ON voltage, or less then 6 volts OFF input triggers are measured from. If metered between the negative common and the local panel White wire, you will see a greater then + 6 volts for a handy ON voltage source. Nothing should be connected here other then the AUX 12-16 Vac power source, and detector commons, such as the Black wire of the BD1, or an Opto-Isolator output from an other type detector. The positive common is found on the green wire of each of the 4 outputs. This positive common supplies a current source required for all outputs of the DS54. And is the reference point for output controls the Black and Yellow output wires. The controls Black [Closed] and Yellow [Thrown] are current sink outputs. This forms a bi-polar output with a reference point of the positive common. In other words, when ever one side of the output is set, that control will be pulled low when referenced to the positive common. The other side will be pulled high via internal pull up resistors. This common should never be connected to anything other then the common terminal of a twin coil switch machine, or the external pull up resistors for stall motor machines if required. One other point of connection here is the use of a ON voltage for the DS54 local panel inputs. Care should be used here, this is a current source. The White local panel wire is a handy ON voltage source for the inputs. But it is not a current source. This means it will work fine to supply a required ON voltage. But it's limited current will not work where there is a circuit such as pull down resistors as would be used with some interface applications. If this is the case, then the positive common, which is also a greater then +6 volts ON source can be used. But noting, any current drawn from this common will be removed from the available output current.
 

Top of Page

copyright © 1999 Don Crano