Home Blog Download

ThrottleCard Blog

Home / Blog / Complete Guide to Accessory Decoder CV Programming with DCC-EX

Complete Guide to Accessory Decoder CV Programming with DCC-EX

Master CV programming for DCC accessory decoders — learn essential CVs, programming methods, and how to use ThrottleCard to configure turnout decoders, signals, and more.

November 1, 2025
ThrottleCard Blog

While locomotive CV programming gets most of the attention, accessory decoder CVs are just as important — and often more critical to get right. A misconfigured pulse duration can burn out a turnout motor, while proper servo endpoints ensure smooth, reliable operation.

With ThrottleCard’s CV Programming feature, you can now program accessory decoders just as easily as locomotives, whether on the programming track or on your main layout. Let’s explore how accessory decoder CVs work and how to configure them properly.

Related Guides:


What Are Accessory Decoder CVs?

Just like locomotive decoders, accessory decoders have Configuration Variables (CVs) that control their behavior. However, accessory decoder CVs are quite different from locomotive CVs and focus on:

  • Addressing – Which decoder address to respond to
  • Timing – How long outputs stay active
  • Output characteristics – Pulse vs. continuous, servo endpoints, LED brightness
  • Behavior modes – Special functions like delays or sequences

Each manufacturer implements CVs differently, but there are common patterns across most accessory decoders.


Essential CVs for Accessory Decoders

CV1 & CV9 – Base Address Configuration

These two CVs work together to set the base decoder address:

  • CV1 – Primary address (0–63 for basic decoders, 0–255 for extended)
  • CV9 – Extended address bits (when supported)

Formula: Base Address = (CV9 × 64) + CV1 + 1

For most basic 4-output decoders:

  • CV9 = 0
  • CV1 = 0–63 (representing decoder addresses 1–64)

Example: To set decoder address 10:

  • CV1 = 9 (because CV1 = address - 1)
  • CV9 = 0

Important: After changing CV1/CV9, you must power cycle the decoder for the new address to take effect.

CV7 & CV8 – Version and Manufacturer

  • CV7 – Decoder version number (read-only)
  • CV8 – Manufacturer ID (read-only, NMRA-assigned)

Common Manufacturer IDs:

  • 129 = Digitrax
  • 151 = ESU
  • 11 = NCE
  • 113 = Team Digital

Use these to identify your decoder and look up the correct manual.

CV29 – Configuration Register (If Present)

Some accessory decoders use CV29 similarly to locomotive decoders:

  • Bit 0 – Normal/Reverse direction (for signals, crossing gates, etc.)
  • Bit 6 – Addressing mode (0 = accessory addressing, 1 = multi-function addressing)

Most stationary decoders keep CV29 at its default value.

Output-Specific CVs

Many modern accessory decoders have CVs that control each output individually. These vary by manufacturer but commonly include:

Timing CVs (varies by decoder):

  • Output duration – How long the output stays active (100ms to several seconds)
  • Pulse width – For controlling solenoid coils (prevents overheating)
  • Startup delay – Delays between sequential outputs

Output Mode CVs:

  • Pulsed vs. Continuous – Whether output turns off automatically
  • Servo endpoints – For servo-based turnout motors (similar to CV values for servo positions)
  • LED brightness – For decoders controlling signals or lights

Example (Digitrax DS64):

  • CV33–36: Timing for outputs 1–4
  • CV40: Global pulse duration
  • CV41–44: Output mode (steady vs. pulse)

Example (NCE Switch-It):

  • CV1: Base decoder address
  • CV2–5: Pulse duration for each output
  • CV9: Extended addressing

Programming Methods

Service Mode Programming (Programming Track)

Best practice: Program accessory decoders on the programming track for reading and writing CVs.

Using ThrottleCard:

  1. Place the accessory decoder on the programming track (remove all locomotives)
  2. Open CV Programming from the menu
  3. Select “Programming Track” mode
  4. Read CVs:
    • Enter CV number (e.g., 1)
    • Tap “Read CV”
    • Current value displays
  5. Write CVs:
    • Enter CV number and desired value
    • Tap “Write CV”
    • Confirmation shows success
  6. Power cycle the decoder if you changed addressing

Using DCC-EX command line:

<W CV VALUE>    # Write a CV
<R CV>          # Read a CV

Example: <W 1 9> sets CV1 to 9 (decoder address 10)

Using JMRI:

  1. Open DecoderPro
  2. Select your accessory decoder type
  3. Use Service Mode Programmer
  4. Write CV1 and CV9 for addressing

Limitation: Some accessory decoders don’t support read-back on the programming track. Check your decoder manual.

Programming on the Main (PoM)

You can also program accessory decoders while they’re installed on the layout using PoM (write-only).

Using ThrottleCard:

  1. Leave your accessory decoder installed on the layout
  2. Open CV Programming from the menu
  3. Select “Program on Main” mode
  4. Enter the linear address of your accessory in the “Locomotive Address” field
    • Example: Decoder 10, subaddress 0 = linear address 37
  5. Write CVs:
    • Enter CV number and value
    • Tap “Write CV”
    • Changes take effect immediately

Using DCC-EX command line:

<w CAB CV VALUE>

Where CAB is the linear address of the accessory.

Example: To change the pulse duration (CV2) on the decoder at linear address 19:

<w 19 2 50>

Important: You cannot read CVs using PoM — only write. Always keep notes on what values you’ve programmed.


Common Accessory Decoder CVs by Manufacturer

Digitrax DS64 (Quad Stationary Decoder)

CV Purpose Range Notes
CV1 Base address 0–63 Address = CV1 + 1
CV33–36 Delay for outputs 1–4 0–255 Delay in 0.1s increments
CV40 Master pulse duration 0–255 0–2.55 seconds
CV41–44 Output mode 0 or 1 0 = pulse, 1 = steady

CV1 - Base Address

Range
0–63
Notes
Address = CV1 + 1

CV33–36 - Output Delays

Range
0–255
Notes
Delay in 0.1s increments

CV40 - Master Pulse Duration

Range
0–255
Notes
0–2.55 seconds

CV41–44 - Output Mode

Range
0 or 1
Notes
0 = pulse, 1 = steady

NCE Switch-It (4-Output Decoder)

CV Purpose Range Notes
CV1 Base address 0–63 Address = CV1 + 1
CV2–5 Pulse time for outputs 1–4 1–255 10ms–2.55s per step
CV9 Output control Bit-mapped Different modes

CV1 - Base Address

Range
0–63
Notes
Address = CV1 + 1

CV2–5 - Pulse Times

Range
1–255
Notes
10ms–2.55s per step

CV9 - Output Control

Range
Bit-mapped
Notes
Different modes

Team Digital SRC16 (16-Output Servo Controller)

  • CV1 – Base address
  • CV33+ – Servo travel endpoints (similar to thrown/closed positions)
  • CV49+ – Servo speed settings

ESU SwitchPilot (Accessory Decoder)

  • CV1 – Base address
  • CV3–6 – Pulse duration per output
  • CV48 – Global configuration bits

Practical CV Programming Scenarios

Scenario 1: Setting Up a New Decoder

Goal: Configure a new decoder to respond to decoder address 10.

Steps:

  1. Determine the desired decoder address (e.g., 10)
  2. Calculate CV1 = address - 1 = 9
  3. Set CV9 = 0 (for addresses 1–64)
  4. Program using ThrottleCard:
    • Open CV Programming
    • Select “Programming Track”
    • Write CV1 = 9
    • (Optional) Write CV9 = 0 if not already default
  5. Power cycle the decoder (disconnect and reconnect)
  6. Test by sending a throw command to one of the decoder’s outputs

Scenario 2: Adjusting Pulse Duration

Problem: Your turnout motor is buzzing because the pulse is too long.

Solution:

  1. Identify the CV for pulse duration (e.g., CV2 for output 1 on NCE Switch-It)
  2. Current value: 100 (1 second) — too long!
  3. Reduce to: 20 (200ms)
  4. Program using ThrottleCard (PoM):
    • Open CV Programming
    • Select “Program on Main”
    • Enter linear address (e.g., 19 for decoder 5, subaddress 2)
    • Write CV2 = 20
  5. Test the turnout — should throw cleanly without buzzing

💡 Pro Tip: Start with a shorter pulse duration (like 15-20) and increase if needed. Too long can overheat motors; too short may not fully throw.

Scenario 3: Configuring Servo Endpoints

Goal: Set proper throw and close positions for a servo turnout motor.

For Team Digital SRC16:

  1. Identify the servo output (e.g., output 1)
  2. Find the throw position CV (e.g., CV33)
  3. Find the close position CV (e.g., CV34)
  4. Program using ThrottleCard:
    • Open CV Programming → Programming Track
    • Write CV33 = 205 (close position)
    • Write CV34 = 410 (throw position)
  5. Test and adjust — servos typically use values 102-490

Typical servo values:

  • Center: ~307
  • Range: 102-490 (full travel)
  • Standard: 205-409 (1ms-2ms pulses)

Scenario 4: Reversing Output Behavior

Problem: Your turnout throws when you want it closed and vice versa.

Solutions (in order of preference):

  1. Swap the wires on the decoder output (easiest, no programming)
  2. Use CV bits to invert the output (if decoder supports it — check manual)
  3. Use ThrottleCard’s invert setting to swap thrown/closed commands at the app level (no CV changes needed)

Why CV Programming Matters for Accessories

Unlike locomotives where you mostly set an address and forget it, accessory decoder CVs often need adjustment for:

Preventing Motor Burnout

Solenoid-type turnout motors (like Peco, Atlas, Kato) can overheat if energized too long. Typical pulse durations:

  • Peco/Atlas: 150-300ms (15-30 in CV)
  • Kato Unitrack: 200-400ms (20-40 in CV)
  • Tortoise (slow-motion): Continuous power OK

Avoiding Buzzing

A buzzing turnout means the coil is still energized. Reduce the pulse duration until the buzz stops but the points still throw reliably.

Smooth Servo Movement

Servo endpoints must match your physical turnout:

  • Too much travel can bind the mechanism
  • Too little travel won’t fully throw the points
  • Speed settings control how fast the servo moves

Custom Behaviors

Advanced decoders support:

  • Delays between outputs (useful for routes)
  • Automatic reversals (for crossing gates)
  • Sequencing (for complex animations)

ThrottleCard and Accessory CV Programming

ThrottleCard’s CV Programming feature works seamlessly for accessory decoders!

Programming Track Mode

Perfect for initial setup:

  • ✅ Read current CV values
  • ✅ Write new addressing (CV1/CV9)
  • ✅ Configure pulse durations
  • ✅ Set servo endpoints
  • ✅ Verify manufacturer and version

Program on Main (PoM)

Ideal for fine-tuning:

  • ✅ Adjust pulse durations without removing decoder
  • ✅ Tweak servo positions while watching movement
  • ✅ Test changes immediately on the layout
  • ✅ No interruption to other operations

Remember: When using PoM, enter the linear address (1-2044) in the “Locomotive Address” field. See our Turnout Addressing Guide for help calculating linear addresses.


Quick Reference: Essential Accessory Decoder CVs

CV Purpose Typical Range Notes
CV1 Base decoder address 0–63 (or 0–255) Address = CV1 + 1 when CV9 = 0
CV2-5 Output timing/pulse 1–255 Often 10ms per step
CV7 Version Read-only Firmware version
CV8 Manufacturer ID Read-only NMRA-assigned number
CV9 Extended addressing 0–7 Extends address range beyond 64
CV29 Configuration bits Varies Not all accessory decoders use this
CV33+ Output modes/servo Varies by mfr Manufacturer-specific features

CV1 - Base Decoder Address

Typical Range
0–63 (or 0–255)
Notes
Address = CV1 + 1 when CV9 = 0

CV2-5 - Output Timing/Pulse

Typical Range
1–255
Notes
Often 10ms per step

CV7 - Version

Typical Range
Read-only
Notes
Firmware version

CV8 - Manufacturer ID

Typical Range
Read-only
Notes
NMRA-assigned number

CV9 - Extended Addressing

Typical Range
0–7
Notes
Extends address range beyond 64

CV29 - Configuration Bits

Typical Range
Varies
Notes
Not all accessory decoders use this

CV33+ - Output Modes/Servo

Typical Range
Varies by manufacturer
Notes
Manufacturer-specific features

Common Troubleshooting Tips

Problem: Can’t Read CVs on Programming Track

Possible Causes:

  • Decoder doesn’t support read-back (check manual)
  • Poor connection to programming track
  • Multiple decoders on track (remove all but one)
  • Incorrect programming track polarity

Solution: Use the write method instead, or test with PoM on the main layout.

Problem: Decoder Doesn’t Respond After Address Change

Cause: Most decoders require a power cycle after address changes.

Solution: Disconnect and reconnect power to the decoder, or restart your command station.

Problem: Turnout Throws But Won’t Close (or Vice Versa)

Possible Causes:

  • Pulse duration too short
  • Motor binding mechanically
  • Wiring issue

Solution: Increase pulse duration by 5-10 units and test. If still failing, check mechanical alignment.

Problem: Can’t Program on Main

Possible Causes:

  • Using read instead of write (PoM is write-only)
  • Wrong linear address
  • Decoder requires programming track for that CV

Solution: Verify linear address calculation, try on programming track instead.


Best Practices for Accessory CV Programming

  1. Always document your CV values — keep a spreadsheet or notebook with decoder addresses and settings
  2. Program one decoder at a time on the programming track to avoid confusion
  3. Start conservative with pulse durations — easier to increase than fix a burned-out motor
  4. Test immediately after each change to verify the setting works
  5. Use PoM for fine-tuning — quickly dial in the perfect pulse duration while watching the turnout
  6. Save your configurations — take notes before making changes so you can revert if needed
  7. Power cycle after addressing — most decoders need this for address changes to take effect

Get Started with ThrottleCard CV Programming

Ready to configure your accessory decoders? ThrottleCard makes it simple:

Programming Track Mode — Read and write CVs safely for initial setup
Program on Main — Fine-tune settings without removing decoders
Works with all DCC-EX compatible decoders — no special software needed
Immediate testing — switch between programming and operation instantly
Clear interface — no cryptic command syntax to remember

Download ThrottleCard on the App Store


ThrottleCard brings professional CV programming capabilities to your mobile device. Whether you’re setting up a new layout or fine-tuning existing decoders, we’ve made accessory programming as straightforward as it should be.

Back to Blog

Stay Updated

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