Programming Locos (CVs)
A DCC Enabled loco with a working Decoder
A separate section of track, a siding electrically isolated from the main track, or possibly a rolling road
A motor shield or motor driver with current sense capability
The default EX-CommandStation with a dual output Arduino Motor shield has everything you need, a main track output, a programming track output, and a configuration that handles current sense for programming a loco on output B and current sense for overlimit detection on output A.
While it is possible to use the DCC-EX API to program decoders, the recommended course of action at the moment is to use JMRI DecoderPro for this as it provides a comprehensive yet relatively simple to use interface for all your programming needs.
When launching JMRI DecoderPro, you will see your list of roster entries by default.
To make changes to your decoder settings, select the loco you wish to program, then click the Program button to lauch the programming dialog.
To set basic items such as the decoder address and speed steps, use the options on the “Basic” tab
For options such as acceleration and deceleration, use the “Motor” tab, noting there is also a “Momentum” tab for more control over inertia settings
To adjust speed matching, you can update speed options on either the “Basic Speed Control” or “Speed Table” tabs, depending upon your appetite for pain and frustration
If you have a sound decoder, then adjust the appropriate settings on the “Sound” and “Sound Levels” tabs
When you’re finished editing, you need to write the changes to the decoder. To do so, there are four options:
Write changes on sheet - use this if you’ve only made a few changes on one tab
Write full sheet - use this if you’re not sure if all settings on the tab are already set or not, it will take a little longer to write
Write changes on all sheets - use this if you’ve made changes on multiple tabs
Write all sheets - use this if you want to ensure every setting on every tab is written, noting this will take some time to write
Note that this really is just scratching the surface of the capabilities of DecoderPro, and we highly recommend you read the full documentation on the JMRI website.
Even if you don’t intend to use JMRI to control your layout, it still has the best decoder programming functionality by far.