DCC decoder programming · user speed table
Speed Table Designer
Pick a locomotive type, shape the curve by dragging the points or typing values, then copy the CV list to program your decoder.
Start from a locomotive type
Each example is a starting curve for a typical ready-to-run model. Use “Fit to my model” below to match your own loco.
Example
Curve
Drag up or down anywhere on the chart to set the nearest step. With the chart focused, use the arrow keys.
Fit to my model
Run the loco at full power with a straight-line table and time it over a measured distance. The top step is then scaled so it reaches the prototype’s top speed.
CV values
Edit any value from 0 to 255. Scale speed is estimated from your full-power speed.
All values rise
| Step | CV | Value | Power | ≈ smph |
|---|
Test run on a virtual controller
Drive a loco with your speed table and the CV3/CV4 momentum from the programming sheet. Edits to the curve take effect straight away.
Turn the dial or use the slider. Yellow marks the speed the throttle is set for.
Automatic tests
Measured speed changes
The simulation treats speed as proportional to motor power, using your full-power speed from “Fit to my model”, and NMRA momentum timing (CV3 or CV4 × 0.896 seconds from stop to full). Real motors need some power before they move, so confirm the result on the layout.
CV29 configuration
Bit 4 switches the decoder over to your speed table. Tick the options your loco uses.
Bit 4 is off, so the decoder will ignore CV67–CV94 and use CV2, CV5 and CV6 instead.
Programming sheet
Write CV67 to CV94 first and CV29 last, so the loco never runs on a half-written table.
How the 28-point table drives the motor
The example along the bottom follows the step you have selected.
1 · Throttle
Speed step
The controller sends a step from 1 to 28. In 128-step mode the decoder interpolates between the 28 table points.
2 · Lookup
Speed table
Step n reads CV(66 + n). Each CV holds 0 to 255.
3 · Trim
Direction trim
Where supported, CV66 (forward) and CV95 (reverse) scale the result by value ÷ 128. Leave at 0 or 128 for no change.
× 128/128
4 · Output
Motor power
The value becomes the PWM duty cycle: 255 is full track voltage to the motor.
Turn the table on
Add 16 to CV29 (bit 4). While the table is active most decoders ignore CV2 Vstart, CV5 Vhigh and CV6 Vmid. Some Digitrax decoders also need CV25 set to 16. Check your decoder manual.
Keep every value rising
Each CV should be higher than the one before. A dip makes the loco slow down as you open the throttle, and equal values give dead steps where nothing happens.
Choose the step-1 value
Raise CV67 until the loco just creeps at step 1. Motors with more friction need a higher start. Then set CV94 for the top speed you want.
Speed-match a pair
For double-heading, time both locos at a few steps (say 7, 14 and 28) and adjust the faster loco’s values down until the times agree.
Programming track or main
Write values on the programming track, or on the main (ops mode) with the loco addressed. JMRI DecoderPro can load all 28 points at once from its Speed Table pane.
Momentum sets the feel
CV3 and CV4 add inertia. Heavy freight wants long momentum; a shunter wants a little so it stops where you need it. Units vary between decoder makes.
© 2026 West Hill Wagon Works (WHWW Ltd). All rights reserved.