Skip to content

DCC++ EX Starter Kit

This guide is designed for do-it-yourselfers to build their own system. Anyone can do it, however if you don't feel technically inclined or just want to save the time, you can purchase a starter kit that contains:

  • Controller: A Raspberry Pi with SD Card already configured with everything you need including the JMRI software.
  • Command Station: An Arduino with DCC++ software already uploaded and a Motor Controller Shield prepped and installed. This is often abbreviated to just "CS"


Keep in mind that if you just want to run trains and start without the separate Raspberry Pi and JMRI, you can purchase just the Arduino Mega and Motorshield combination and use exWebThrottle.

Suppliers list coming soon

What You Will Need

  • A "main" track aka "operations" track - most people already have this, it's your layout
  • A "programming" track aka "service" track - a short section of track that you will use to program locomotives and other pieces of equipment that use "accessory decoders". This can be an electrically isolated siding if you like and DCC++ EX will allow that to be part of your main track when not programming locos
  • A known-good locomotive equipped with a DCC decoder. You may want this to have sound capability

DCC++ Overview

Equipment List:


  • A compatible Arduino Board
    • Arduino Mega (clones work too)
    • Arduino UNO R3 (clones work too)
    • Arduino Nano (Tinkerers and Engineers)
  • A compatible motor driver shield
    • Arduino Motor Driver Shield Rev 3 (clones work too)
    • Deek-Robot L298 Motor Shield
    • Pololu MC33926 Dual Motor Driver Shield (
    • Other boards listed in the hardware section (Engineers)
  • DC Power Supply (see Power Supplies)
  • USB A to B Cable (aka USB Printer Cable) to connect your Pi or computer to the Arduino
  • A MicroSD Card (for the Raspberry Pi if you choose to use one)
  • Computer to upload software to the Arduino Command Station and optionally operate as a controller *

We recommend:

Elegoo Mega 2560

Deek-Robot Motor Shield

12V 5Amp Power Supply

Raspberry Pi 4B


You may use your own computer instead of the Raspberry Pi. However, the image software below saves you installing software on your computer and does a lot more. See: "My Computer vs. Raspberry Pi"

You can check Amazon, Ebay, AliExpress, Banggood, Adafruit, Sparkfun and others for all the above


* As mentioned above you can also use your existing computer (PC, Mac, Linux) instead of a Pi. You need a computer or Pi to run our exWebThrottle or JMRI and also to connect to the Arduino to run your trains (the exception to this is by using the WiFi Option). A laptop or similar is needed in any case because you are going to need one to download the installer and the Raspebrry Pi image. You will then use it to run the installer to upload the program into the Arduino and copy the Raspberry Pi image you download to the MicroSD Card that goes in the Pi. NOTE: Optionally, you may just use the computer to download and burn the SDCard and then use the Pi to install the firmware onto the Arduino using our Installer. And lastly, you could install a WiFi Shield and use your mobile device as a controller using an app like Engine Driver.


This can be a little confusing, so let explain it a different way:

  1. You will need to build a command station with An Arduino and a Motor Controller and, optionally, an ESP8266 WiFi shield

  2. You will need a computer and a USB cable to download software and then upload it to the Arduino. You may also want to download an SDCard image to use a Raspberry Pi instead of a computer to upload your Command Station software and run a controller.

  3. You will need a controller that sends commands to the CS and controls your trains. That controller can be any one of the following:

    1. Can be a computer capable of running a Chromium based browser to use our exWebThrottle to connect to the CS via a USB cable. This computer does not need to be connected to the internet once you download the exWebThrottle files to your computer.

    2. Can be a computer running JMRI. JMRI connects via the USB cable to the CS and you control your trains with the Throttles built into JMRI. You can also use the WiThrottle server built into JMRI to connect any WiThrottle compatible controller (such as the Engine Driver mobile app) via WiFi to JMRI and control your layout that way.

    3. You can use a Raspberry Pi as a computer and do any of the things mentioned in 1 and 2 above. With Steve Todd's image burned to an SDCard and installed in the Rasperry Pi, JMRI, the WiThrottle Server with networking, and more is installed and running when you boot. You still need a USB cable to connect the Pi to the CS.

    4. If you install an ESP8266 WiFi Shield, you don't need a computer or a Pi if you don't want it once you upload the software to the Arduino. You can connect directly to the CS via any WiThrottle compatible controller such as Engine Driver.

Next Page: Assembly