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.
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
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.