Ардуино горные лыжи хронометраж

Timing system for Alpine skiing based on Arduino. Test on snow

This winter in Moscow go to set a warm record for the entire 140-year history of observations. Today, February 11th, we were happy to do the first training of the season, put slalom course. Of course I expected some troubles from Timing, but everything went pretty smoothly. Failures were ordinal, for example, the photo finish somehow stopped working, because the reflector was turned out by ski pole.

This is the start. The gate, and the “Start” module and the “Control” module are fixed on the pole.

Alexander Mistryukov alpine skiing Arduino timing start

Vladimir Paskonov alpine skiing Arduino timing start Ogasaka Triun SL

It was quite thick snow, so I expected ed false triggering of the photo finish. But everything worked fine. Install finish gate by 4 meters. Honestly, I would like a little more 🙂 Maybe by the next season I’ll upgrade the photo finish, retrofeflective device with a 7-meter distance that appeared on Ali Express.

Photo finish Arduino timing skiing

Time board was located near ski lift.

Arduino timekeeping alpine skiing scoreboard

The batteries did not fail, the training time was two and a half hours. True, it was not cold, minus one and a half centigrade. The radio channel worked reliably (the distance between the modules was approximately 250 meters).

The individual stopwatch worked well, the signals from Start and Finish did not overlap, and the response was reliable. True, the battery suddenly sat down, so I need to figure it out.

Added in December 2020

The first few trainings of the 2020-21 season were successful. Then the Finish module failed. More precisely, the ATMega328P microcontroller on the “industrial” Arduino Nano from RobotDyn has failed.

Left Arduino Nano by RobotDyn, right “classic” Arduino Nano

The controller was completely out of order, burned out, it was not possible to reflash the bootloader to restore operability. I replaced the board, since it is on the connector, it takes five minutes. I decided that I just got poor quality. After a couple of trainings, a similar breakdown happened on the Start block. And then again at the Finish block. The failure did not occur immediately, but after an hour and a half. The block hung, and after jerking on-off it did not turn on.

Such a breakdown is not like a “digital”, when it either works or it doesn’t. It is not clear why such a microcontroller, which is sufficiently reliable for industrial applications, can burn out after a couple of hours of operation. Judging by the Internet, two cases are most likely: a drop in the supply voltage of the board and, conversely, an increase it more than 5.5 V.

There is little information about a failure due to a decrease in voltage, it is not known how critical it is in terms of voltage and time. I think it also depends on the (intensity) of the program. Decreasing the voltage apparently leads to too large an increase in the currents inside the microcontroller. Overvoltage is also possible, since the power supplied to the 5V leg of the Arduino Nano board cannot be called stabilized, since it is provided by a “boost”, which provides for a smooth setting of the voltage by a potentiometer. That is, there is no 5 volt zener diode there.

The power supply of the radio module in the “transmission” mode has fallen under suspicion. When I was fiddling with the radio module, I noted that it requires a rather large current (for how much I don’t know exactly how to determine it at home). I decided that apparently the 3.3 V power supply on the Arduino Nano board from RobotDyn is not doing well and somehow leads to failure. Therefore, I put a separate 5-> 3.3 V power board with a 3.3 V pin on the corresponding leg of the radio module board. The module is as follows:

On the “lowering” board, you need to disconnect the variable resistor by cutting the track, as indicated in the figure on the right. And where 3.3V is written, you need to hang a jumper from a drop of solder (“tin”). The EN leg (hole) does not need to be used.

Thus, the general power supply of the units with the radio module in the transmission mode (“Start” and “Finish”) was organized as follows: a powerful “4-ampere” boost from the battery to the onboard power supply of 5 Volts and from this power supply a 5-> 3.3 V drop for power supply of the radio module.

In addition, with the help of a variable resistor of a powerful boost, I set the on-board voltage to exactly 5 volts. Before that, it was 4.75 volts, because if you set more, then the “Start” and “Finish” blocks stopped working, the program did not start on them. Now I can conclude that the on-board power supply sank to 2.7 V, then the hardware cutoff of the microcontroller triggered (set by “fuses” to “not at all”, 1.8 V, 2.7 V, 4.3 V, by default in Arduino Nano it is set to 2.7 V). The hardware cutoff is designed so that when the voltage drops below the set fuses, the Reset of the microcontroller switch on and the program stops. At the end of the search, I returned the onboard (already separate) voltage to 4.75 V.

The Finish module began to work normally (in the sense, not to burn out in an hour), and the Arduino from RobotDyn on the Start module burned out, “as usual” in an hour and a half. I thought that maybe it “burned” before, put the usual Arduino Nano, which burned in the same way. I assumed that this time microcontroller was burning out from overvoltage, and because of this powerful boost, which, after fighting the voltage drop in the impulse, works “up”. Since there was no longer Arduino left for a qualitative study, I changed everything that came to mind at that time: replaced the boost with a low-power (two-ampere) one, hung a bunch of parallel-connected capacitors on the Arduino board between 5V and GND (electrolyte 220 uF and ceramics 0.1 μF) and programmatically reduced the number of packets “in a row” for transmission from 10 to 5, and also increased the pause when switching from receive to transmit from 1 to 100 ms.

Unfortunately, I cannot say that everything worked right away. Combination: voltage drop – an increase of voltage just burned out Arduino on the “Start” module, which, after calculating the result, switched to the “transmit” mode to send data to the “Scoreboard” block.

In total, 7 microcontrollers burned out, and each time I made changes to the power circuit with the confidence that it would not burn out anymore. The controllers burned exclusively in the field after one and a half to two hours of operation.

As a result, I came to the separation of the power supply of the radio module and the onboard power supply of the Arduino (and everything else). From the battery, a powerful 4-ampere boost produces a voltage of 7 volts, which is reduced by the module from the picture above to 3.3 V and goes to the power leg of the radio module. And another, “ordinary” two-amp boost in parallel takes the voltage from the battery and provides an onboard voltage of 5 volts (more precisely 4.75 V).

Somehow, at a temperature of minus 10 C, it was not enough for two hours of battery operation on the Finish unit. The main consumer on this unit is a powerful photo-finish LED (especially in the new 7-meter module). Two hours later, the radio channel disappeared (a red “light” on the Start block came on, and a red “light” on the control of the battery charge came on on the “Finish” block. I added one more battery to the Finish block. And redesigned the program control, now with a “red light” (the voltage on the battery drops to 3.0 V) the program goes into the “idle” mode (in particular, the radio channel is turned off).

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


Vadim Nikitin DigInfo.ruVadim Nikitin




to top of page

One thought on “Timing system for Alpine skiing based on Arduino. Test on snow”

Leave a Reply

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