MiscJunk logo


This page provides information and photos to aid in the construction of the Pinewood Derby Timer (PDT). The focus for this page is on the PDT hardware and circuits. Refer to the Software page for details on how to configure/load the Arduino sketch (software) and interface to software running on a PC.

The following subjects are covered:

Parts List

The tables below list the components required to build each part of the PDT. Refer to the schematics for the layout of each circuit. The ID of each component in the tables below corresponds to the designator shown on the schematics. Note that the quantity needed for some components is dependent on the number of lanes of your track.

NOTICE:   Most of components listed below can be purchased directly from this site - visit the SHOP page for more information.

Timer Components

The following components are needed to build the core PDT circuit.

IDItemDescriptionPart #Quantity
U1MicrocontrollerArduino UnoUno1 [x]
-PDT shield PCBShield PCB to aid with wiringmiscjunk.org1 [o]
LED1Power lightRed LED (3mm)Adafruit 7771
LED2Status lightRGB LED (5mm, common anode)Adafruit 1591
R7, R8Current limiting resistors (CLR)330 OHM resistor (axial, 1/4W, 5%)Digi-Key 330QBK-ND2
R9Display dimmerBreadboard trim potentiometer (10K)Adafruit 3561 [o]
S1, S2Reset buttonsTactile button switch (6mm)Adafruit 3672
-HeadersBreak-away 0.1" male headers (36 pin)Adafruit 3922
JP1-8HeadersBreak-away 0.1" male headers (36 pin)Adafruit 3921 [o]
S3Start gate switchLever (snap) switch (SPDT)Digi-Key 480-2990-ND1
-I2C splitter PCBPCB to aid with wiring displaysmiscjunk.org1 [o]

Key: o=optional component, x=NOT available in SHOP

Lane Components

The following components are needed to build the detection circuits needed to register when the cars cross the finish line and optionally display each car's place order and race time.

IDItemDescriptionPart #Quantity
LED3LightLED (5mm, white/clear)Digi-Key VAOL-5GWY4-ND1 / lane
RxLight CLR100 OHM resistor (axial, 1/4W, 5%)Digi-Key 100QBK-ND1 / lane
T1DetectorPhototransistor (NPN, 5MM)Digi-Key BPW96C-ND1 / lane
DISxPlace / time display0.56" 4-digit 7-segment display (I2C, RED)Adafruit 8781 / lane [o]

Key: o=optional component, x=NOT available in SHOP, x=lane # (1-6)

Remote Start Components

The following components are needed to build the optional remote start gate release circuit that allows the start gate to be release via computer (software) control.

IDItemDescriptionPart #Quantity
DiodeDiode (1A)Radio Shack 276-11021 [x]
RelaySignal relay (5V, 2A)Jameco 1399771 [x]
TransistorTransistor (2N2222, NPN)Jameco 382361 [x]
CLR1 KOHM resistor (axial, 1/4W, 5%)Radio Shack 271-13211 [x]
SolenoidSolenoid (24VDC)Jameco 19191911 [x]
SwitchMomentary switch (mini, SPST, NO)Radio Shack 275-15471 [x]

Key: o=optional component, x=NOT available in SHOP


Finish Line Bridge

The finish line 'bridge' (or 'arch') holds a light (LED) directly over each lane which shines light on a corresponding detector (phototransistor) mounted on (or under) the track. As cars pass between the lights and detectors the PDT registers the elapsed time for each lane. Optionally the bridge can also contain a digital display over each lane to show the place order and elapsed time of the cars as they finish the race.

The design of the finish line bridge will be heavily dependent on your particular track and can range from the strictly utilitarian to the artfully designed. A sample of PDT designs is shown below and you can visit the Timer Builds page for more examples.

Finish line example Finish line example Finish line example

Here are a few things to consider when designing your finish line bridge:

Timer circuit: The timer's 'brain', an Arduino Uno microcontroller with the PDT circuit, must also be housed in the finish line enclosure or be placed in a nearby control box.

Cable connections: Wiring connections to the PDT are the following:

Bridge height: For maximum reliability the distance between the lights (in the bridge) and the detectors (on or below the track) should typically be set between 5 and 9 inches (13 and 23 cm). Your track's construction and your derby's ruleset (maximum car height, for example) will also be factors to consider.

typical LED holder

Light / detector mounting: Care should be taken that each lane's light and detector are exactly in line with one another. The design for this will be heavily dependent on your track and bridge design but LED holders (as shown to the right) could be helpful. The holders can be found at Amazon or any general electronics store.


Circuit Construction

Although optional the shield PCB simplifies the construction of a PDT by providing mounting and wiring points for the various components. It has the standard Arduino shield format that allows it to be stacked directly on top of the Arduino microcontroller board. Most of the instructions below refer to the use of the shield PCB - if this is not the case for your build simply refer to the schematic for the appropriate Arduino Uno pin number for each connection.

Soldering: Basic soldering is required to attached all components, headers and wires to the PDT shield PCB. If you are new to soldering here are a few suggestions:

Shield Headers

The headers used to mount the shield to the Arduino microcontroller board are standard break-away 0.1" male header strips. The strips can be cut to length using a utility knife or wire cutters. Two sets of 8 pin headers are needed for the top and two sets of 6 pin headers are needed for the bottom. The two left-most header holes on the top of the PCB board (highlighted red in the picture below) are not utilized for the Uno and do not require headers.

Shield headers locations

The headers should be mounted so that the black plastic 'body' is on the bottom of the PCB board (in between the PCB board and Arduino when the shield is mounted) as shown below on the left. Note that the headers are only soldered to the PDT shield PCB and simply slide into the Arduino's female headers as shown below on the right (partially mounted on an Arduino):

PCB header mount Shield partially mounted on Arduino
Component polarity! All of the LEDs (status, power and lane lights) and phototransistors (lane detectors) have a polarity. This means that one lead of the component is the positive, the other lead is the negative and the component must be connected to the circuit in the correct direction (or orientation). Resistors do not have a polarity and can be attached without regard to direction.

The sections below describe how to identify the correct component leads for the components available from this site. If you source your components elsewhere please double check the associated data sheets to verify you are using the correct polarity.

Power and Status LEDs

The white/clear status LED (5mm RGB) has four (4) leads and should be orientated so that the flat spot (on the base of the LED) is facing to the right. The red power LED (3mm) has two (2) leads and should also be oriented so that the flat spot (on the base of the LED) is facing to the right. The LEDs can be soldered directly to the shield PCB or attached via wire if they will be mounted on the outside of the bridge or project box.

The corresponding current limiting resistors (CLRs) for the LEDs are mounted in the resistor spots labeled 'Power' and 'Status'. The CLRs in the base component package available from this site are sized to the specifications of the status and power LEDs. If you source your components elsewhere please refer to the note below regarding calculating the CLR values.

Current limiting resistor (CLR) value calculation: Anytime a LED is used a current limiting resistor must be placed in series to protect it from over current (and burning out). The value of the CLR has to be calculated based on the specific LED used. Here is a good overview of that calculation. Note for the calculation the supply voltage is 5V.

Reset Switches

The two reset switch positions are designed to utilize small 6mm tactile button switches. If an enclosure is used the wire leads from any momentary switch can be soldered to the PCB in place of the tactile switches. The Arduino reset switch resets the microcontroller board (a complete 'reboot') and isn't normally used. The PDT switch has two uses and should be accessible for normal use. Its main use is to reset the status of the timer. Its secondary use is to enter the hardware test mode during startup and to step through each stage of the test mode. Refer to the Software page for information about the hardware test mode.

Start Gate Bus

Start gate switch on BestTrack track

This 4 pin bus (2x2) is for connecting the PDT to the start gate circuit(s). A small 2x2 male or female header can be utilized or wire leads can be soldered to the PCB that go to another connector or the start gate itself.

The start gate circuit utilizes the normally closed (NC) terminal of a simple snap switch. The switch should be mounted so that the closed start gate (pre-race) engages the switch (opening the connection) and releases the switch (closing the connection) when the start gate is opened (at race start). A switch mounted on a BestTrack track is shown to the right.

The pins in this bus are:

GS - Gate switch connection.
Gnd - Ground for the gate switch connection and the optional solenoid start circuit.
V - 5V power for the trip side of the optional solenoid start circuit - cannot be used to operate the solenoid!
Sol - Solenoid signal from the PDT for the optional solenoid start circuit.

A diagram of the start gate switch connection is shown below (click to enlarge):

Start gate switch circuit

Lane Busses

The six 3 pin busses (1x3) are for connecting the PDT to the lane light and detector circuit(s). A small 1x3 male or female header can be utilized or wire leads can be soldered to the PCB that go to another connector or the lanes themselves. The pins in each bus are:

Sig - Signal from the lane detector (phototransitor).
Gnd - Ground for the lane light (LED) and detector (phototransitor).
V - 5V power for the lane light (LED).

A diagram of a lane light/detector circuit for lane 1 is shown below (click to enlarge). Note that the CLR for each lane's light (LED) goes on the PCB in the spots indicated. This circuit would be repeated for each lane of the timer:

Lane light/detector circuit

Place / Time Displays

The optional displays are mounted in the finish line bridge over each lane to display the place order and elapsed time of each car as it finishes the race. Normally only one display per lane is supported but if your track has four or less lanes the PDT sketch can be modified to drive two displays per lane - this allows a display on each side of the finish line bridge for each lane.

Front of place/time display Rear of place/time display

The Adafruit 0.56" 7-segment display and backpack are shown in the picture above. When mounting (soldering) the display onto the backpack make sure it is correctly oriented so that the display's decimal points are at the bottom of the backpack (near the lettering) - see the picture above.

NOTE:   With a little extra work the Adafruit 1.2" displays can also be utilized with the PDT. Please refer to this page for more information.

Display Addressing

When there is more than one lane each display needs its own address so that the PDT can communicate the correct information to each display. Changing an address is done utilizing a set of three jumpers on the display's circuit board - see the yellow square in the above picture. Using the table below determine the jumpers that need to be set for each display and use a blob of solder to connect the jumper's pads.

PDT Lane #PDT Lane #I2C Address #Jumpers
11 F0---
22 F1x--
33 F2-x-
44 F3xx-
51 B4--x
62 B5x-x
-3 B6-xx
-4 B7xxx

Key: - = open, x = shorted; F = front, B = back

Note: Use the first lane column for the normal display configuration (up to 6 lanes), use the second column for the two displays per lane option (front & back, up to 4 lanes). The default address of the Adafruit display is 0 so nothing needs to be done for the lane 1 display.

Display Dimmer Potentiometer

The display dimmer position on the shield PCB can utilize any (small) 3 terminal potentiometer. The resistance value is not important since it is being utilized as a voltage divider. Linear taper would be preferred to audio taper but either would work.

Display Bus

This 4 pin bus (1x4) is for connecting the PDT to the optional displays. A small 1x4 male or female header can be utilized or wire leads can be soldered to the PCB that go to another connector or the displays themselves. The pins in this bus are:

V - 5V power for the displays. Please refer to the section below regarding the possible need for an external power supply (depending on the number of displays).
Gnd - Ground for the displays.
SCL - Clock signal for the displays.
SDA - Data signal for the displays.

A diagram of the optional display circuit is shown below (click to enlarge).

Place / time display circuit

I2C Splitter Board

I2C splitter board

The I2C splitter board is an optional PCB that aids in wiring the displays in parallel. It can be utilized with the optional pre-made jumper wires or by soldering wires directly to the board. Note that the left side of the PCB has two spots for the connection to the PDT - utilize the spot that matches the revision number of the shield PCB you are using.


Power Requirements

There are two ways to power the PDT/Arduino:

The first option, using the USB connection, should only be used for very simple setups - no displays or only 1 lane with a display.

The second option, an external power supply, is the recommended setup. But even with an external power supply the power requirements of the displays and the capability of the on-board 5V regulator of the Arduino should be taken into consideration when utilizing three or more displays. To maximize the output and reliability of the on-board regulator use a power supply with an output voltage as near to 7V as possible (but don't go below 7V).

Reducing the maximum brightness of the displays can also be used to limit the power draw of the circuit. The table below summarizes the power draw of one display for various brightness levels. Note this is for the worst case scenario with all LED segments lit. Refer to the PDT manual for instructions on how to set the maximum brightness of the displays.

BrightnessCurrent (mA)

Adafruit #878 0.56" 7-segment display

PDTs with 5-6 lanes and displays will need to power the displays with a separate power supply and regulator (always maintain a common ground with the PDT/Arduino circuit).


Start Gate Solenoid

The optional solenoid (and supporting circuit) allow the start gate to be opened remotely (usually via software).

Start gate solenoid Start gate circuit

Last updated: 5 March 2017