Arduino SCX Digital USB PC Interface

Connect your SCX Digital slot cars track to the PC over USB, and use the PC as a timer, lap counter, race management, etc. Fully open design, costs only 5 €, or US$ 6.50 to build!

Bill of Materials



Since SCX Digital works with a much higher voltage than Arduino can handle, we need to clamp the voltage to about 5 V using a resistor and a Zener diode. So we need a 5 V-rated Zener diode. The resistor value should be small enough to keep the Zener diode in the breakdown state. These small diodes need about 5 mA to remain in the breakdown state. The SCX track runs at 18 V, so we need to have 18-5=13 Volts on the resistor, which with 5 mA current gives 13/0.005 = 2600 Ohms. So a 2K7 resistor should be OK.

That's it, everything else can be done in software!


The interface can be connected anywhere on the track. The left rail (in the direction of the cars) is ground, the right one is +18V/signal. In order to avoid the signal noise, I recommend to connect it as close to the controller unit as possible. In fact, I have connected mine directly to the Start/Finish track:

Start/Finish track

Unscrew the cover in the middle of the S/F track (5 screws). It is possible to connect the interface to the track, or to the solder pads of the orange connector (which is much easier to solder):

Track connection

Twist the cathode wire of the Zener diode together with the resistor wire and solder them to each other. Solder the anode of the Zener diode to the middle pin of the orange connector, and the remaining wire of the resistor to the second pin from the bottom. For clarity, I have put a sheet of paper under the soldered parts in the above picture.

Cable connection

Now get the two-wire cable, and connect one wire to the middle pin of the orange connector (GND), and the other one to the twisted and joined wire connecting the resistor and the Zener diode cathode. I used black wire as GND and red one as signal.


The opposite end of the cable can be soldered directly to the Arduino. I want to use my Arduino for other purposes as well, so I went for a connector. Mind the polarity, of course.

Arduino Nano

For the signal pin, any Arduino/ATmega digital pin can be used. Since I used the connector, I went for a pin next to the GND pin, which is D2 (PD2 on ATmega).


The firmware is distributed including the source code under the terms of the GNU General Public License, version 2 (only). There are several ways of getting the firmware:

Use It!

The interface is compatible with Ole Seeberg's (SEB) interface, so it can be used with any race management software, which is compatible with the SEB interface. I have my own race management software for Linux called Slotcarman, which I intend to publish soon (send me an e-mail if you want to be an early tester). Then there is PC Lap Counter and others.

Motivation :-)

... or Why Did I Create This:

I have an old SEB serial interface (which uses ATtiny2313 without a crystal and MAX232 level-shifting chip). I wanted to do some modifications to the firmware. Because Ole Seeberg does not sell this version anymore, I thought he could provide me the firmware source code. So I have asked him by e-mail. His reply was this:

Hi Jan
Sorry, I do not share any of my software.
Ole Seeberg

So I went and build my own interface with my own firmware, and I am publishing it for others to use and modify. Mine is fully open source, and costs about US$ 6.50 to build, Ole Seeberg's one is proprietary, and costs about US$ 98, or 73 €. Choose whichever you want :-)