Do It Yourself

This page is a collection of hardware and software with pointers to further reading.
==DCC++==
DCC++ (github) is an open-source hardware and software system for the operation of DCC-equipped model railroads. The system consists of a DCC++ Base Station and DCC++ Controller.
== DCC++ EX ==
DCC++ EX picks up where DCC++ seems to have left off. This is a DCC compliant system based around Arduino micro-controllers and peripherals. It is a group project to create an open source NMRA DCC solution.
==General Digital Command Control Projects==
There are a number of projects you can build on Rob Paisley's website Model Railroad & Misc. Electronics.
He also has plans for a MiniDCC System and a number of other circuits.
For those interested in making an ammeter for DCC, here is his circuit schematic:
 DCCAmmeter
Circuits4Tracks has plans for an Occupancy Detector. They also offer a number of other products, in assembled or kit form.
Japanese DCC DIY project is DCC Alliance of Electronics Works(DCCEA Japan). This project members are providing some DCC decoder kits and occupancy S88 decoder, also arduino based command stations. These hardware is open source and freely you can customize it.
===What is the Difference Between the Raspberry PI and Arduino?===
You are going to come across references to the Arduino and the Raspberry Pi when looking at DCC and Model Railroad projects and automation. So what exactly makes the Raspberry Pi different from an Arduino based project?
:;Raspberry Pi
::The Raspberry Pi is a complete computer. More powerful than the legendary Commodore 64, but at a lot less cost. It can function as a stand alone computer, or you can use it to run JMRI, as well as other tasks. It was developed for the purpose of teaching programming and supports a number of languages. A number of accessories (hats) are available for specific tasks and to expand the computer beyond its basic configuration.
:;Arduino
::The Arduino is a microcontroller. It is not a computer. It is designed to run software to do a specific task, such as controlling a garage door opener or a microwave oven. In fact, it is very similar to a DCC decoder. It can be used to control turnouts, signals, read RFID tags, and a number of layout automation and DCC/LCC tasks. It has a dedicated IDE which you can download for free to aid in programming it. As with the RPi, it also has a number of "shields" that add functions and input/output capabilities such as relay boards, etc.
Both products have a large presence on the Internet. Don't know how to program? Many people publish programs you can download and use, or customize for your purpose.
== Raspberry Pi and JMRI ==
A Raspberry PI can be configured to run JMRI, and thanks to its WiFi, connect WiFi throttles to the layout as well.
Steve Todd has created an image you can load onto an SD card, which is used to boot the RPi and launch JMRI automatically. There is no need for a keyboard or display, any additional configuration is done via the network connection.
All you need is a Raspberry Pi Model 3, an 8GB MicroSD card, and a few extra bits, like a power supply and a case to put it all in. Go to his website and read the instructions, download the image, and go from there.
Website: JMRI RaspberryPi as Access Point
== Command stations ==
=== MiniBOX ===
DIY LocoNet(R) Command Station for use with Walk-around throttles like UT1/UT4 and FRED.
* Run up to 8 locos at the same time.
* Handles address range 1 - 9999.
* Programming capability.
* Extendable with any LocoNet(R) compatible booster.
Several units built and in operation.
More info, see the Minibox page.
=== OpenDCC ===
DIY Command Station for use with PC programs.
* emulates Uhlenbrock Intellibox (R), Lenz (R) and HSI88.
* uses either RS232 or USB
* Runs up to 64 or more locos at the same time, smart queue handling.
* Handles address range 1 - 10276.
* Support of turnout feedback.
* Programming capability.
* Support of S88.
=== USB2DCC ===
The goal of the USB to DCC project is to create a DCC booster that is interfaced with a PC through USB. A prototype of the hardware has already been designed in built; however, this is in the very early stages of developement.
This device has three functions: Loconet-Interface, DCC command station, DCC loco programmer. 
Please see the [USB2DCC SourceForge] page for further details.
=== zDCC ===
Free and simple wireless DCC stand-alone system. 
* Support 99 Locomotive Addresses
* Support 28 Speed steps (step)
* Light Control (F0);
* Control of auxiliary functions F1, F2, F3, F4;
* Command range of approximately 100 m;
* Support of up to 3 wireless commands;
* Complete CV reading and writing;
* "Running" programming of CVs;
* Locomotive brake;
* 12 A of power;
* Short circuit protection.
* Upcoming features supported:
* Support 999 Locomotive Addresses;
* PC interface;
* Exchange command.
Please see the zDCC Home Page for details.
Next version zDCCXp, works in progress.
=== Desktop Station ===
Arduino UNO based DCC and marklin command station system.The firmware and schematics are open source. supports 128, 28, 14 step, 1 to 9999 address, 28 functions and also Marklin Motorola 1 and 2. Powerful free windows front end software is also available for pc control.
* DSairLite - Raspberry Pi PicoW based command station. Source code is provided in product page. 
* DSshield - arduino shield type command station. S88N interface.
Please check Desktop Station Homepage for details. also check Desktop Station wiki
====Desktop Station - DSairLite====
/
Website
Leaflet(PDF)
* Raspberry Pi PicoW based Open source command station
* Equipped Wi-Fi access point and web server
* No requirement to install any mobile app
* Supports DCC, Analog PWM
== Boosters ==
NOTE: A poorly designed or constructed booster can put waveforms on the track which could possibly damage decoders. This is not a project for those inexperienced in electronics. 
=== TSL Boosters ===
The TSL railroad has four power boosters using low saturation resistance Hexfets. The first one was prototyped 01/13/98. For details and build instructions, please see the Booster page.
Schematics are available for you to build your own booster.
== Decoders ==
* OpenDCC decoders for dmx, servo, light effects, turnouts, signals, roundabaouts 
* Professor Mark Csele's DCC Projects page includes a decoder circuit 
* Sameer's DCC Page has info on buidling an accessory decoder 
* Nucky releases very cheap and coin size DIY decoder. N scale size. 
* Nagoden releases Arduino based Sound DCC decoders, MP3 sound decoder and smile decoder R6n. Source code is absolutely open source. N scale size. 
* CircleMT40 releases PIC based N scale DCC decoders supporting RailCom.
* RP2040-Decoder DIY DCC Locomotive Decoder which aims to be cost effective based on a RP2040 Microcontroller.
*SmileSound DCC Decoder DCC Sound Locomotive Decoder based on a RP2040 Microcontroller. User can write Sound Programming like ESU's LokProgrammer. Up to 10 channels simultaneously. This decoder aims alternative of LokSound. 
===Build Your Own Decoder tester===
This is the schematic for a simple Decoder Tester. You can purchase commercial devices which are more sophisticated, but for simple decoders, this will do the trick.
The bi-directional LED package is for the motor.
====Also see====
DIY system by PACO http://usuaris.tinet.cat/fmco/home_en.htm
== Suppliers ==
DCC Interface
== Notes ==
A RaspberryPi costs less today than a Commodore C64's manufacturing cost 40 years ago. A C64 was estimated to cost US$35 to manufacture during the 1980s. Which is more than US$80 today. (The IEEE got it wrong when they estimated $55.)
== NMRAx Clinics ==
=== Arduinos & Raspberry PIs, Oh My! ===
== GatewayX Presentations ==
=== The Very first Introduction To Arduino ===
=== Martyn Jenkins - Raspberry Pi and Engine Driver ===
=== Clinic: John Bate - A gentle introduction to Arduino programming ===
Category:Electronics
Category:DCC