My boring Blog

Mauro Frigerio blog

Curling stopwatch DIY

20-08-2017 3 min read Article

This is my second version of the curling training stopwatch. The major improvements in comparison to the older version are: better power management, stable software and new control function.

The new system has two photocells, where the master of the system is the stop one. The start photocell is a slave, like the other module. There are two ways to show the information from the system: first one with a smartphone connected via Bluetooth to the Stop photocell. The second one is a dedicated slave module (like the Start photocell) where the communication between modules is made with a nRF24l01 (I use the version with pa+lna). In my redesign I only updated the software of my old display module but I didn’t do any other change because I chose to develop a better Android app to show the information.

Communication between photocells

The first version of my code used the TMRh20 RF24 library for Arduino. That was OK but the communication between more than 2 elements is more complicated. So I decided to use on top of this library another library to simplify the read and write between elements. The second library is the RF24G, it manages and simplifies the communication between up to 6 nodes. Now you don’t need to open/close the pipes before writing/reading.

Power management

Version one of the hardware was powered by a 9V battery. It was compact and with the right voltage for a 5V board. The disadvantage of this kind of battery is that it doesn’t have big capacity. To power the modules I opted for 6 x AA batteries in a case with a 9V battery connector. This allows me to use cheap but with more capacity batteries. Thanks to a design without lithium battery, I don’t have to add a safety circuit to control the battery voltage.

To save some more energy from the Arduino it is possible to switch the power of the optic barrier (12V power supply with a DC/DC converter).

I decided to use the Arduino Mini Pro instead of the 5V Arduino Nano, because the TTL voltage is 3.3V and the clock is only 8MHz.

Hardware (pro module)

  • 1 x Arduino Mini Pro 3.3V (not the 5V version)
  • 1 x LD1117V33 voltage regulator
  • 1 x TMR 1-0512 DC/DC converter 5V to 12V
    1elp x optic barrier
  • 1 x nRF24l01+
  • 1 x HC-06 Bluetooth module (only for the Stop parts)
  • 1 x 4N35 optocoupler
  • Various Resistor and capacitor, check the schema. PCB

Change Bluetooth name of the HC-06

It is possible to change the Bluetooth visible name and connection PIN of the HC-06 module. According to the datasheet you need some few AT commands and it is personalized. This is the code to change name and PIN, use the same Serial speed for the module and for the PC connection (default is 9600).

Android app

I am not a software engineer and I need some help, because Android Studio is for me too complicated. Like the old version the Android app is written with App Inventor and then published on the Play store from Google.

Open points

  1. The optics barrier that I use is quite expensive (compared to the rest of the circuit). It would be nice to have an other solution, cheap but stable (no adjustments needed from the user). Do you have any suggestions?
  2. Sleep mode are not yet implemented in the code for Arduino
  3. A new Andoid app with new functions, like statistics for player training. Is someone willing to do this?