Tired of having to clear ant set a standard stopwatch every time I wanted to rest during my daily training, I decided it was time to build a custom one. Yeah it would have been easier to download an android app, but, you have to unlock the screen every time and, what's more important, where's the fun in that?
The objective is clear, measure rest intervals, which are tipically 30, 60 or 90 seconds. A graphic progress of the period would be nice to see as well. Having this in mind, I started drawing some drafts.
The one I liked the most is the last one, inspired by the shape of a human eye. Time to think about the electronics!
12 leds need to be controlled, as well as a double 7-digit display, a buzzer and a push button. One cheap way to go here is to use an AT-Tiny85 AVR microcontroller, which has 4 usable digital IO's. Two of them are used to drive the shift registers, one for the buzzer, and the last one for the push button. I added a 2-pin connector in parallel with the push-button, which can be used for an external trigger (to reset the clock).
The PCB was created using the toner-transfer method, using a hacked laminator.
The component side of the PCB has been painted black, and mounted with a battery holder. Here is the result.
Note that the ATTiny has been mounted on a socket, so that it can be easily extracted and reprogrammed. The current firmware blinks the led on the bottom every second, and the other leds are turned on every 5 seconds.
Thus, the leds represent fractions of a minute, and the display the number of minutes elapsed since the last reset. Needless to say that the button resets the stopwatch.
Adding an RTC to the design would allow the use of this device to show the time as well, maybe for the next revision.
Here it is a video of the clock in action. As required, it beeps at 30, 60 and 90 seconds, and then it keeps counting quietly.