A General Guide to CV Programming with DCC-EX
Learn the basics of CV programming with DCC-EX and how ThrottleCard makes it simple to read, write, and customize your decoder’s settings.
If you’re diving into Digital Command Control (DCC), you’ll quickly come across the term Configuration Variables (CVs). These are the settings stored inside a decoder that define how your locomotive behaves — from its address to how quickly it accelerates.
With the latest update, ThrottleCard now supports basic CV programming directly through DCC-EX, making it easier than ever to tune your locomotives.
What Are CVs?
Configuration Variables (CVs) are standardized by the NMRA so decoders from different manufacturers can be programmed consistently. Each CV is essentially a memory location inside your decoder that controls a specific parameter.
Some of the most common CVs include:
-
CV1 – Primary Address
Sets the short address (1–127) of the locomotive:contentReference[oaicite:0]{index=0}. -
CV2 – Vstart
Defines the voltage level at speed step 1, helping slow-speed performance:contentReference[oaicite:1]{index=1}. -
CV3 – Acceleration Rate
Determines how gradually the locomotive accelerates:contentReference[oaicite:2]{index=2}. -
CV4 – Deceleration Rate
Sets the braking momentum:contentReference[oaicite:3]{index=3}. -
CV5 – Vhigh
Controls the maximum motor voltage at top speed:contentReference[oaicite:4]{index=4}. -
CV6 – Vmid
Defines the mid-speed voltage, allowing for custom speed curves:contentReference[oaicite:5]{index=5}. -
CV7 & CV8 – Version & Manufacturer ID
CV7 stores the version number; CV8 contains the NMRA-assigned manufacturer ID and is read-only:contentReference[oaicite:6]{index=6}.
These CVs are just the beginning — modern decoders may have hundreds of additional CVs for lights, sounds, and special effects.
Programming Modes in DCC-EX
DCC-EX supports two main programming modes, both of which ThrottleCard now makes accessible in a friendly UI:
-
Programming Track (Service Mode):
- Used for reading and writing CVs safely.
- Essential for setting a new address on a loco before it runs on the main line.
-
Programming on the Main (PoM):
- Lets you write CVs to a specific address while the locomotive is on the layout.
- Useful for fine-tuning performance without removing the loco.
- Reading is not supported on the main — only writing.
Using ThrottleCard’s CV Programming UI
ThrottleCard’s new CV programming screen simplifies the process:
- Connect to your DCC-EX command station.
- Open the CV Programming tool from the menu.
- Choose whether you’re on the Programming Track or the Main Track.
- Enter the CV number you’d like to read or write.
- If reading (programming track only), the decoder’s stored value will be displayed.
- If writing, input the new value and tap Write.
For example:
- To assign a new short address, write a value (1–127) to CV1.
- To make your locomotive accelerate more smoothly, increase CV3.
- To adjust top speed, modify CV5.
Top 10 CVs Every Hobbyist Should Know
CV # | Name | What It Does | Typical Range |
---|---|---|---|
CV1 | Primary Address | Sets the short address of the locomotive (1–127). | 3 (default), 1–127 |
CV2 | Vstart | Defines the starting voltage to help slow-speed running. | 0–255 |
CV3 | Acceleration | Controls how quickly the loco speeds up (momentum). | 0–31 |
CV4 | Deceleration | Controls how gradually the loco slows down. | 0–31 |
CV5 | Vhigh | Sets the maximum motor voltage (top speed). | 0–255 |
CV6 | Vmid | Sets the mid-speed voltage for a custom speed curve. | 0–255 |
CV7 | Version Number | Decoder firmware version (read-only). | Varies |
CV8 | Manufacturer ID | Identifies the decoder's manufacturer (read-only). | NMRA-assigned |
CV17/18 | Extended Address | Used together to assign long addresses (128–9999). | Two-byte values |
CV29 | Configuration Register | Master control: direction, speed steps, addressing mode, etc. | Binary bitmask |
CV1 - Primary Address
CV2 - Vstart
CV3 - Acceleration
CV4 - Deceleration
CV5 - Vhigh
CV6 - Vmid
CV7 - Version Number
CV8 - Manufacturer ID
CV17/18 - Extended Address
CV29 - Configuration Register
💡 Pro Tip: If you’re just getting started, begin with CV1 (address), CV3/4 (momentum), and CV29 (configuration). These alone can make a huge difference in how your locomotive runs.
Understanding CV29: The Master Configuration Variable
CV29 is sometimes called the master switch of DCC decoders. It’s a bitmask value, which means each bit in the number turns on or off a different feature. Instead of controlling one thing, CV29 controls many settings at once.
Here’s what the bits usually mean (may vary by decoder):
Bit | Value | Setting | Effect |
---|---|---|---|
0 | 1 | Normal/Reverse Direction | Sets the default forward direction of the loco. |
1 | 2 | Speed Steps | 0 = 14 steps, 1 = 28/128 steps. |
2 | 4 | Analog Conversion | Allows DC operation if enabled. |
3 | 8 | RailCom / Bi-Directional Comms | Enables two-way communication (if supported). |
4 | 16 | Speed Table Enable | 0 = use CV2, 5, 6; 1 = use custom speed table (CVs 67–94). |
5 | 32 | Addressing Mode | 0 = short address (CV1), 1 = long address (CV17/18). |
6 | 64 | Reserved (future use) | Should remain 0 unless decoder supports it. |
7 | 128 | Decoder Type | 0 = multi-function decoder, 1 = accessory decoder. |
Bit 0 (Value: 1)
Bit 1 (Value: 2)
Bit 2 (Value: 4)
Bit 3 (Value: 8)
Bit 4 (Value: 16)
Bit 5 (Value: 32)
Bit 6 (Value: 64)
Bit 7 (Value: 128)
Example
If CV29 = 6 (binary 00000110
):
- Bit 1 = 1 → loco uses 28/128 speed steps.
- Bit 2 = 1 → loco can also run on DC.
- All other bits = 0 → short addressing, default direction, no speed table, no RailCom.
Example: Setting a Long Address with CV17, CV18, and CV29
Most decoders let you assign either a short address (1–127, stored in CV1) or a long address (128–9999, stored across CV17 and CV18).
To enable a long address, you also have to flip the right bit in CV29.
Here’s how it works manually:
- Pick a long address (let’s say 2025).
- Calculate CV17 and CV18 using the NMRA formula:
- CV17 = 192 + (Address ÷ 256)
- CV18 = Address mod 256
- For address 2025 → CV17 = 199, CV18 = 233
- Write those values to CV17 and CV18.
- Enable long addressing in CV29 by turning on Bit 5 (add 32 to the CV29 value).
After that, your locomotive will respond to address 2025 instead of the default short address.
How ThrottleCard Makes This Easy
Manually calculating CV17/18 and bit-flipping CV29 can be intimidating. That’s why ThrottleCard’s CV Programming UI does it all for you:
- Enter the long address you want (e.g. 2025).
- ThrottleCard automatically calculates CV17/18.
- ThrottleCard updates CV29 with the correct bit set.
- One tap, and your loco is ready to run with its new long address.
No math. No binary. Just results.
💡 ThrottleCard Tip: You can only use the Programming Track to set addresses.
Why This Matters for Hobbyists
Before, CV programming often required clunky menus or a computer. With ThrottleCard and DCC-EX, you can now program addresses and tweak performance right from your phone or tablet. This lowers the barrier for newcomers and makes fine-tuning faster for experienced hobbyists.
🚂 Ready to start programming your locomotives? Try the new CV Programming feature in ThrottleCard and take full control of your decoder’s performance.
Download ThrottleCard on the App Store
ThrottleCard is built by hobbyists, for hobbyists. With CV programming support, it’s now easier than ever to customize your locomotives to run exactly the way you want.