Home Blog Download

ThrottleCard Blog

Home / Blog / A General Guide to CV Programming with DCC-EX

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.

September 11, 2025
ThrottleCard Blog

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:

  1. Connect to your DCC-EX command station.
  2. Open the CV Programming tool from the menu.
  3. Choose whether you’re on the Programming Track or the Main Track.
  4. Enter the CV number you’d like to read or write.
  5. If reading (programming track only), the decoder’s stored value will be displayed.
  6. 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

What It Does
Sets the short address of the locomotive (1–127).
Typical Range
3 (default), 1–127

CV2 - Vstart

What It Does
Defines the starting voltage to help slow-speed running.
Typical Range
0–255

CV3 - Acceleration

What It Does
Controls how quickly the loco speeds up (momentum).
Typical Range
0–31

CV4 - Deceleration

What It Does
Controls how gradually the loco slows down.
Typical Range
0–31

CV5 - Vhigh

What It Does
Sets the maximum motor voltage (top speed).
Typical Range
0–255

CV6 - Vmid

What It Does
Sets the mid-speed voltage for a custom speed curve.
Typical Range
0–255

CV7 - Version Number

What It Does
Decoder firmware version (read-only).
Typical Range
Varies

CV8 - Manufacturer ID

What It Does
Identifies the decoder's manufacturer (read-only).
Typical Range
NMRA-assigned

CV17/18 - Extended Address

What It Does
Used together to assign long addresses (128–9999).
Typical Range
Two-byte values

CV29 - Configuration Register

What It Does
Master control: direction, speed steps, addressing mode, etc.
Typical Range
Binary bitmask

💡 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)

Setting
Normal/Reverse Direction
Effect
Sets the default forward direction of the loco.

Bit 1 (Value: 2)

Setting
Speed Steps
Effect
0 = 14 steps, 1 = 28/128 steps.

Bit 2 (Value: 4)

Setting
Analog Conversion
Effect
Allows DC operation if enabled.

Bit 3 (Value: 8)

Setting
RailCom / Bi-Directional Comms
Effect
Enables two-way communication (if supported).

Bit 4 (Value: 16)

Setting
Speed Table Enable
Effect
0 = use CV2, 5, 6; 1 = use custom speed table (CVs 67–94).

Bit 5 (Value: 32)

Setting
Addressing Mode
Effect
0 = short address (CV1), 1 = long address (CV17/18).

Bit 6 (Value: 64)

Setting
Reserved (future use)
Effect
Should remain 0 unless decoder supports it.

Bit 7 (Value: 128)

Setting
Decoder Type
Effect
0 = multi-function decoder, 1 = accessory decoder.

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:

  1. Pick a long address (let’s say 2025).
  2. Calculate CV17 and CV18 using the NMRA formula:
    • CV17 = 192 + (Address ÷ 256)
    • CV18 = Address mod 256
    • For address 2025 → CV17 = 199, CV18 = 233
  3. Write those values to CV17 and CV18.
  4. 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.

Back to Blog

Stay Updated

Join our community of model railroad enthusiasts and get exclusive updates, tips, and early access to new features.