Timing system for Alpine skiing based on Arduino. Individual stopwatches

I can remember cases when in the mountains “omega” did not work on the radio channel. For such cases, there is an elegant solution – to carry an individual stopwatch with you, which is triggered by short-range signals at the start and finish. Of course we are talking about training, not competition. In general, hanging an additional “button-like” transmitter from the radio control to the “Start” and “Finish” unuts should not be burdensome. In this article I will share thoughts on this subject 🙂

There is nothing revolutionary about bringing a stopwatch with you on the track. Back in the 1980s, I saw ski poles in the catalog with a stopwatch integrated into the grip and a button on top. Of course, the button is not the case. Arguments about how you can remotely control an electronic stopwatch from a short distance have been conducted in the background for many years. The brightest solution of those that I remember was proposed in 1985 by Nikolai Gridin from the Acoustical Institute, based on a piezo acoustic transmitter and piezo receiver. But it did not come to implementation.

Now for training there is a ready solution from Freelap.

There are even acquaintances who use it on the Moscow hills. They have 10 stopwatches. The cost of this solution is quite high, in particular, one stopwatch cost about 120 euros. Now the manufacturer has replaced it with a bluetooth channel on a smartphone, but the price has remained about the same.

I didn’t consider such a solution for our trainings, because I don’t consider it to be sufficiently democratic. How many have stopwatches in the household, but may not be enough for someone. And it is not harmful to see the results of colleagues on the indicator for a better understanding of what is going on 🙂

But as an additional insurance option to have is not harmful. Moreover, it should not be difficult. Ali-Express has extremely cheap solutions (a set of transmitter and receiver for $0.62). This is 433 MHz. There are those who do not require Arduino. The transmitter can send several different commands on pressing varuious buttons, the receiver distributes them to the outputs. Then you can crack electronic stopwatch and connect to the buttons.

In our case, Arduino is already there, so the ready-made console is not needed. Arduino of the “Start” module can give a signal coded “to your taste” when opening the gate. This signal is interpreted by Arduino, on which an individual stopwatch is assembled. At the finish the same, only other codes. The main thing is to tune a long-range action, it should be around 5-20 meters (not more then 100) so that the stopwatches of different participants do not interfere with each other. All stopwatches are the same. At the start, when everyone is near, the stopwatch will inevitably remember the start time of the previous participants. More precisely, each opening of gate update the start time in the stopwatch. At the finish, when receiving a signal, the time of the nearest start is automatically subtracted. Therefore, interference from other participants should not be. The result will “hang” on the indicator until the receiver catches the next finish signal (which one is following after start signal).

Cheap modules for radio controls somehow did not inspire confidence. Very helpful was review on YouTube channel arduinoLab (thanks!). Here it is (in russian):

Based on what I’ve seen and heard, ordered this configuration:

Timing system for Alpine skiing based on Arduino
1- additional transmitter at the start ($ 1.63), 2- additional transmitter at the finish ($ 1.63), 3- receiver ($ 1.35), 4- charger ($ 0.34), 5- indicator 0.36 “($ 0.58), 6- battery 600 mAh ( $ 1.63), 7- Arduino Nano ($ 2.45)

If everything works out well, I plan to assemle five pieces 🙂

It is necessary to stop a little bit on programming. A feature of these radio modules is the “specific” amplitude modulation of the carrier frequency (ASK – amplitude shift keying). Logical unit corresponds to simply turning on the transmitter, and zero – turning off. The type of Morse code, where zero is the noise of the ether, and with a “1” is the inclusion of a bare carrier. Judging by the fact that the receiver is superheterodyne, the carrier frequency is most likely subtracted from the very close one produced by the receiver’s generator, as a result, a low frequency probably appears (for example, a sound one, like in a Morse telegraph receiver). Probably in the protocols it takes a lot of resources so that the receiver, in the noises of the ether, catches familiar sequences of the result of the appearance of the carrier frequency. In general, communication is too slow for reliable transmission of the Start and Finish pulses in less than one hundredth of a second.

There are three libraries “on the surface”, each of which is based on different protocols. I’ll briefly say that VirtualWare (aka RadioHead) didn’t fit because I wasn’t able to achieve a sufficiently reliable connection on it. The RCSwitch library did not suit due to very slow (although very reliable) data transfer. IArduino_RF433 library came up (thanks a lot to the author!). It was possible to achieve reliable data transmission at a speed of 1000 bits per second (not faster).

Timing system for Alpine skiing based on Arduino
1- indicator, 2- short-range receiver, 3- LED “Low battery” + “Receive data from the Finish”, 4- LED “Receive data from the Start”, 5- Arduino Nano, 6- power switch, 7- charger, 8- 600 mAh battery

When transmitting on the fact of Start or Finish, 10 packets consisting of an identifier (Start or Finish), the sequence number of the packet and the delay between the fact of crossing the start-finish or the start are sending. Packages go away in a row, without software delays, but between packets it still takes about 5 hundredths of a second. That is, 10 packets go half a second. Of the 10 packages reach receiver 4-9. They reach, it means they go through the “checksum”, which, with such a signal pulled out from the noises of the ether, is in itself a miracle. The program in the receiver analyzes the reached packets and based on number of packet and delays between packets “reconstructs” the time of sending the command in the transmitter. Accuracy is good, the result is “hundredth to hundredth”.

Timing system for Alpine skiing based on ArduinoTiming system for Alpine skiing based on Arduino

The box is welded from 2 mm polypropylene (a tray from FixPrice, price $ 0.77).

Here are collected all the notes on the theme “Timing for skiing on Arduino”.


Vadim Nikitin DigInfo.ruVadim Nikitin




to top of page

Leave a Reply

Your email address will not be published. Required fields are marked *