KB902: Scaleable Speed Stabilization (Back EMF) in Digitrax Decoders

This article was last updated on Oct. 25, 2010, 2:45 p.m. | Print Article | Leave Feedback

Speed stabilization is a feature that causes the decoder to run the locomotive at a somewhat constant speed according to the throttle setting.

This means that if you set your throttle to 21% of total speed, the decoder will force the motor in the locomotive to maintain a constant speed at that level no matter what the track gradient or the load on the locomotive. The SD9 is an example of a US prototype that employed a load compensating type of control technology. Many modern European locomotive prototypes use some form of load compensation of the prime-mover in response to speed changes that deviate from the engineer's throttle setting.

DCC uses pulse width modulation to run the motor in the locomotive so the power to the motor is not on all the time. When power is not being applied to the motor, it does not come to a dead stop because the momentum of the armature and fly wheels causes the armature to continue rotating as the loco coasts. This rotation creates a generator effect that actually produces voltage as the unit slows down. The motor also generates voltage when rotating under power. This voltage is called back emf. The decoder can measure this voltage and determine how fast the motor is rotating. It can compare this rate of rotation with the throttle speed setting and determine whether the motor needs to speed up or slow down to match the throttle speed setting. Based on this feedback, a speed stabilized decoder can adjust the motor speed to match the throttle speed and is able to keep it relatively constant.

Most speed stabilized decoders by other DCC manufacturers are set by a single CV to be ON or OFF with nothing in between. These are called back EMF decoders.

Digitrax experimented with speed stabilization for over two years before finally adding it to any of our decoders. We felt that unless speed stabilization was available with at least 128 speed step resolution and could be moderated (made scaleable) in some way that it was not very useful for operation. Our early decoders with the scalable speed stabilization feature implemented this 128 speed step resolution.  FX3 decoders go a step further to implement scalable speed stabilization (back EMF) in 256 step resolution.

There are several advantages to being able to adjust how speed stabilization is applied when a mismatch between the actual motor speed and the set throttle speed occurs. Without these additional settings it is likely that you will encounter what has often been described as the "pushy pusher" problem. It goes like this: The train has one or more head end units and a mid train or rear end helper. The head end locos start up a grade and their speed declines a little since they are pulling the greatest load. The helper unit then encounters this speed drop as resistance preventing it from maintaining its set speed. The helper responds immediately, since it also has speed stabilization ON, and pushes harder resulting in a, not so lovely but totally prototypical, concertina effect and an immediate call the NTSB. Operation in a large train or multi-unit consist, as typical of US prototype practices, can place tough challenges to load compensated locomotives.

To prevent this problem Digitrax uses CV55, 56 & 57 so that the increase in speed will be moderated or scaled to a value that is appropriate. This is called scalable speed stabilization (back EMF).


CV55 controls the static compensation or how much the decoder considers the difference between the current motor and locomotive speed and the target speed set on the throttle when determining the next speed command to send to the motor. This is like the stiffness of a spring. The stiffer the spring, the more compensation you will get. Values can range from 000-255. High values give a more intense reaction and lower values give less intense reactions. The factory default setting for CV55 is a value of 128. CV55 will have no effect on decoder operation until you program CV57 as described below.


CV56 controls the dynamic compensation or how much the decoder considers the historical difference between the current speed and the target speed when determining the next speed command to send to the motor. This setting is like a damper or shock absorber on the spring that helps to restore the spring to its new position. Values can range from 000 to 255. High values cause more rapid adaptation to the target speed and low values cause slower adaptation to the target speed. The factory default value for CV56 is 048. CV56 will have no effect on decoder operation until you program CV57 as described below.  Excessively high values in CV56 will tend to allow a locomotive to "hunt" around a new desired speed when a change of speed is commanded. We recommend that you use the lowest CV value in CV56 that gives the desired performance.


CV57 controls the amount of intensity or speed loss as load is increased, by limiting the amount of change or compensation that the decoder is allowed to implement. This CV57 controls the intensity separately for both regular addresses and consist addresses. The first digit controls the amount of intensity in effect when speed is controlled using the standard decoder 2 or 4 digit address, and the second digit value controls the intensity in effect when the decoder is in an Advanced Consist for speed and direction control. Values of each digit can range from 000 to 015. 0x=Regular Address and y0=Advanced Consist.

Range of CV Settings

A digit value of 000 is speed stabilization OFF, i.e. Maximum speed intensity is experienced since no load compensation is in effect.

A value of 015 is speed stabilization FULL ON and speed intensity will be at its least amount, consistent with the settings for CV55 and CV56.

If the intensity CV value is too high, you may see locos jump from one speed to the next if they encounter an obstacle or problem with track work. If the value is too low, there will be very little speed stabilization effect at all. A higher number/digit makes the intensity or speed fall-off less. Intensity 0 means no compensation is applied. A typical value for many locomotives is a value of CV57=005, but the actual value that is best for a locomotive and train size needs to be determined by the user by observation and experimentation.

Note that this value of 005 for this example means that no speed compensation is used when this decoder is in an Advanced Consist.

CV55, CV56 and 57 can be changed while the locomotive is moving using Operations Mode programming (see related articles below). This conveniently allows the characteristics of the whole train to be optimized as needed.

It is not necessary to employ a large value of CV02 (Start Voltage) to compensate for sluggish motors since, if speed compensation is in effect, the decoder will automatically try to adjust the motor power up to at least the Start Voltage setting, so as to achieve the actual speed commanded. This means that low speed % steps such as e.g. 3% or 4% will give best slow operations when the value programmed into CV02 is 000.

To set up a loco with scalable speed stabilization:

   1. Install the decoder.

   2. Program CV57 (Intensity control) to a starting value of 005. This will turn on speed stabilization.

   3. Put the loco on level track and run it at about 20% of full speed. Using Ops mode programming, change increase the value in CV55 (Static) from the default value of 128 upward until you observe the loco jumping as speed steps increase. Finish this step by now programming CV55 to the value just before the jumping started.

   4. Follow the same procedure with CV56, beginning with the default value of 048 and increasing it until you notice the loco oscillating, faster-slower, faster-slower, as speed is increased. Finish this step by programming CV56 to the value just before the oscillation started.

   5. Follow the same procedure with CV57, beginning with the value 005 as programmed in step 1. Increase the value in this CV until the speed when going up hill is roughly equivalent to the speed on level track. This will yield a best intensity consistent with the locomotive characteristics.

   6. Keep notes about the values you program for these 3 compensation control CVs so that you can use them as a starting point for setting up scalable speed stabilization in similar locomotives.

Note: The quality of the locomotive drive mechanism and track power pickups will have a strong effect on how well speed stabilization will work. In particular, frequent track power interruptions or dropouts will tend to give very poor or jerky speed control. If the headlight is turned on, without an FX effect, the constancy of its brightness can typically be used to diagnose or gauge the quality of the track power picked up at the decoder.

Was this article helpful? Send us feedback!

Questions or Comments on this article? Please visit helpdesk.digitrax.com and submit a ticket. Please reference the KB article number in your ticket.