Easy And Affordable Track Timing System

About the project

An affordable and automatic system letting athletes time themselves or their peers quickly and easily.

Project info

Difficulty: Moderate

Platforms: AdafruitArduinoSparkFun

Estimated time: 5 days

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

Machine Screw, M2 Machine Screw, M2 x 10
9V Battery Clip 9V Battery Clip x 1
9V battery (generic) 9V battery (generic) x 1
5 mm LED: Red 5 mm LED: Red x 2
Rocker Switch, Non Illuminated Rocker Switch, Non Illuminated x 2
Tactile Switch, Top Actuated Tactile Switch, Top Actuated x 3
Texas Instruments General Purpose Dual Op-Amp Texas Instruments General Purpose Dual Op-Amp x 1
Speaker: 3W, 4 ohms Speaker: 3W, 4 ohms x 1
1.3" OLED Screen 1.3" OLED Screen x 1
TFmini-s LIDAR Sensor TFmini-s LIDAR Sensor x 1
SparkFun Transceiver Breakout - nRF24L01+ (RP-SMA) SparkFun Transceiver Breakout - nRF24L01+ (RP-SMA) x 2
Arduino Nano R3 Arduino Nano R3 x 1
Arduino UNO Arduino UNO x 1

View all

Software apps and online services

Arduino IDE Arduino IDE

Hand tools and fabrication machines

Hot glue gun (generic) Hot glue gun (generic) x 1
Soldering iron (generic) Soldering iron (generic) x 1
3D Printer (generic) 3D Printer (generic) x 1
Screwdriver Screwdriver x 1



Hello everyone! Because of my upcoming track and field season at school, I decided to build a timing system to measure my time and others' time when running. The idea with the track timing system is simple. There are two modules: one sitting at the start of the track, and one at the end. With a user-selected delay, the start module plays a start tone and starts a stopwatch. When an athlete crosses the finish line, a light beam is crossed, and the finish module sends a signal to the start module to stop the timer. The athlete’s time is then displayed on the screen, thus acting as an automatic stopwatch. It’s great for timing by yourself, or timing an entire team.


Watch this video if you want to see exactly how the track timer works. If you're not too interested in how I built it, skip to the last few minutes to see me using it on the track!

The System Itself

The start module is the control center of the system. It has a small OLED screen and three buttons for a simple menu system. The display allows you to select which mode you want to use, along with other settings that are useful. I'll go over these soon. There is a power switch on the right side, along with a battery cover and speaker grill on the bottom of the device. On the far side, there is also the antenna and a USB port, allowing easy software updates without having to disassemble the entire device. The USB port also allows you to connect the track timer to a computer and write times directly to the computer.

The finish module is even simpler. It too has a power button on the side along with a USB port, an antenna on the back, and a battery cover on the bottom. The top has two LEDs, the red one indicating power, and the green one indicating that the system is ready. However, if you move your attention over to the far side of the module, you’ll notice a camera-like sensor. Now this isn’t actually a camera; instead it’s a LIDAR sensor, which stands for Light Detection and Ranging. Like the name suggests, this sensor detects the range of an object by using light. It’s the same technology that some self-driving cars use!

The LIDAR Sensor

This sensor is actually incredible, as not only can it detect when someone crosses it, but it can detect how far away the person is from the sensor. This is helpful, as it allows the system to differ between people in different lanes. For example, if I was running in lane one and my friend was running in lane two, I wouldn't want him to run by the sensor in lane two and accidentally stop the timer. The system would then print his time instead of mine, which I don't want. So, by telling the system that I am in lane one, the timer can ignore people farther than about half a meter, and only stop if I cross the line.

That’s how detection works on my system!

Timing Modes

Before I go over the parts and other “nerdy” stuff, I’m going to explain the menu on the system. Let’s go back to the start module. On the home screen, there are four options: sprint, lap, counter, and settings. Sprint is for timing a singular person, as it stops the timer once the light beam is crossed. Lap mode is similar, however instead of stopping when the beam is crossed, it stops after the fourth cross, giving you the average for all of your laps along with individual lap times and the entire time put together. Counter mode is made for running in groups. It shows the current time, the time of the last person who crossed the finish module, the lane that is being measured, and the number of runners that have crossed the finish module.

Now, for both sprint and lap mode, there are two options before going into the selected mode. The first is automatic mode, which plays a ready tone, then a set tone, and finally a start tone. The tones have a randomized delay, making it good for practicing starts. The other option is manual mode, which plays a tone when the OK button is pressed. Counter mode only has manual mode, as it is meant for a coach or other person to hold and operate.

Back to the menu system. The final option here is settings. There are three settings that you can customize. The first one, distance, allows you to choose which lane you want to detect. The second option allows you to enable or disable the speaker on the start module. This is useful for coaches who want to call start by themselves, or athletes who want to be quieter. The third and final option calibrates the sensor to the ambient light, along with ignoring any background objects that may be present when calibration begins.


The parts for this project come out to around ninety dollars, about half of that being for the LIDAR module which is just under forty dollars. However, for a system like this, ninety dollars is miles cheaper than other systems. Here’s the part list. To power the system, I used an Arduino NANO and an Arduino UNO, however two Arduino NANOs will work just fine. To play the start tone, I used a four ohm, three watt speaker, along with an LM386 amplifier to increase the volume of the tones. For the display, I of course opted for a 1.3 inch OLED screen. To send and receive data, I used two nRF24L01 modules with antenna, as they have incredible range and very low latency. To measure when someone crosses the finish line, I used the TFmini-s LIDAR sensor that I found off of Amazon. The reason I used this sensor was because of its twelve meter range, meaning it can cover an entire track. It’s also very reliable, and I have yet to encounter any problems with it. Everything is powered by two nine-volt batteries, one in each module. And besides a few pushbuttons, toggle switches, LEDs, and 3D printed parts, that's it!


YouTube - www.youtube.com/c/CollinWentzien

Instagram - @collin.wentzien

Schematics, diagrams and documents

Finish Module Schematic

Start Module Schematic

CAD, enclosures and custom parts

Finish Module Top

Go to download

Finish Module Base

Go to download

Start Module Base

Go to download

Start Module Top

Go to download

Battery Holder for Finish Line Module

Slightly different than the battery holder for the start module due to a CAD error on my part.

Go to download

Battery Holder for Start Line Module

Slightly different than the battery holder for the finish module due to a CAD error on my part.

Go to download


Finish Module

Start Module


Leave your feedback...