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.
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:
-
General CV Programming Guide — For locomotive decoder CV programming
-
ThrottleCard User Manual — Full documentation for using ThrottleCard
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:
- Place the accessory decoder on the programming track (remove all locomotives)
- Open CV Programming from the menu
- Select “Programming Track” mode
- Read CVs:
- Enter CV number (e.g., 1)
- Tap “Read CV”
- Current value displays
- Write CVs:
- Enter CV number and desired value
- Tap “Write CV”
- Confirmation shows success
- 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:
- Open DecoderPro
- Select your accessory decoder type
- Use Service Mode Programmer
- 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:
- Leave your accessory decoder installed on the layout
- Open CV Programming from the menu
- Select “Program on Main” mode
- Enter the linear address of your accessory in the “Locomotive Address” field
- Example: Decoder 10, subaddress 0 = linear address 37
- 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
CV33–36 - Output Delays
CV40 - Master Pulse Duration
CV41–44 - Output Mode
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
CV2–5 - Pulse Times
CV9 - Output Control
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:
- Determine the desired decoder address (e.g., 10)
- Calculate CV1 = address - 1 = 9
- Set CV9 = 0 (for addresses 1–64)
- Program using ThrottleCard:
- Open CV Programming
- Select “Programming Track”
- Write CV1 = 9
- (Optional) Write CV9 = 0 if not already default
- Power cycle the decoder (disconnect and reconnect)
- 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:
- Identify the CV for pulse duration (e.g., CV2 for output 1 on NCE Switch-It)
- Current value: 100 (1 second) — too long!
- Reduce to: 20 (200ms)
- 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
- 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:
- Identify the servo output (e.g., output 1)
- Find the throw position CV (e.g., CV33)
- Find the close position CV (e.g., CV34)
- Program using ThrottleCard:
- Open CV Programming → Programming Track
- Write CV33 = 205 (close position)
- Write CV34 = 410 (throw position)
- 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):
- Swap the wires on the decoder output (easiest, no programming)
- Use CV bits to invert the output (if decoder supports it — check manual)
- 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
CV2-5 - Output Timing/Pulse
CV7 - Version
CV8 - Manufacturer ID
CV9 - Extended Addressing
CV29 - Configuration Bits
CV33+ - Output Modes/Servo
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
- Always document your CV values — keep a spreadsheet or notebook with decoder addresses and settings
- Program one decoder at a time on the programming track to avoid confusion
- Start conservative with pulse durations — easier to increase than fix a burned-out motor
- Test immediately after each change to verify the setting works
- Use PoM for fine-tuning — quickly dial in the perfect pulse duration while watching the turnout
- Save your configurations — take notes before making changes so you can revert if needed
- 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.