About five years ago I wanted a digital pace clock for the swim team that coach but all the models were $1k or higher. I also needed 2 per pool and I coached at 2 different pools and $4k was out of the budget. So like any good engineer I decided to design and built 4 clocks based on the large 7-segement led from Sparkfun. This design worked well but the led driver chip I used went DMS and my led driver board took a lot of man hours to manufacture. So I decided to revisit my pace clock design when I noticed that Sparkfun now makes a driver board that mounts on the back of the 7-sement led. This significantly reduce the wiring in my current design and therefore reduce the hours that it takes to assembly the electronics of the pace clock. I thought I would share what I can up with as my new pace clock build... So here we are:
- Cost of the electronics of the clock <$100
- Minimal soldering required
- Use as much commercial parts as possible
- 4 large 6" 7-segment led numbers
- Real time clock (RTC) with battery backup
- 10 Watts (or less) of power (keeps me with a 1A 12V power supply)
- Use jumpers wires to connect the components
- Keep the hardware design simple and do anything hard in software (if needed)
Step 1: Parts
I based this design off a Arduino Uno (clone) board which I supply with 12V of power and then use the board's regulator for 5V to the led driver and the RTC. The RTC is a DS3231 with a battery backup. That way once you set the time and date you don't have to mess with it unless you want to change it. I am using the 6.5" 7-segment led numbers from Sparkfun with there associated driver board. The driver board gets solder to the back of the number. Next we need some jumpers to connect the Uno to the RTC and the 7-segment drivers. Finally the power supply is a switched 1A 12V. Below are the parts that I used:
- Arduino UNO R3 Compatible - Qty 1 - $5.79
- DS3231 RTC (ZS-042) - Qty 1 - $1.39
- 7-Segment Display - 6.5" (Red) - Qty 4 - $14.95 ea
- Large Digit Driver - Qty 4 - $6.95 ea
- 40pcs Dupont Jumper male to female - Qty 1 (buy extra) - $1.34
- 40pcs Dupont Jumper female to female - Qty 1 (buy extra) - $1.34
12V 1A Power Supply - Qty 1 - $3.66
Step 2: Connect the Led Driver Board to the 7-Segment Led
Follow the instructions on Sparkfun's Large Digit Driver Hookup Guide page to mount your 7-Segment Numbers to your Driver Boards. Once you have solder them together go to the Hardware Hookup and connect the Uno to the driver board. Connect a USB cable from the PC to the Uno and load the Single Digit sketch on the Uno. Then plug the 12V power supply and make sure you see all the segments light up. Unhook the USB cable and power supply and hook up the next number and then plug in the 12V power supply and again verify the segments are lit. Rinse and repeat for each segment making sure that all the led segments work.
Step 3: Connect the RTC and the Large Digit Driver Board
Using the DuPont male to female jumpers hook up the RTC to the Uno.
Using the DuPont male to female jumpers hook up the Driver Board to the Uno.
|Large Digit Driver||Arduino|
Attach a Second Digit to the First. Use the 6 jumper wires to attach a second 7-segment display to the first display unit. Make sure that you connect GND of the OUT on the first display to the GND of the IN on the second display, LAT of the OUT on the first display to the LAT of the IN on the second display, and so on for digit 3 and 4. Now connect 12V power to the Arduino and you should see all the numbers counting up. If not troubleshoot all the connections to determine the issue.
Step 4: Load the Sketch
Use the attached sketch and save it to your local Arduino sketch directory. Open it with the Arduino software and compile and load it on the Arduino board. Open the Serial Monitor (Ctrl+Shift+M) and verify that you see "$100 Pace Clock" followed by the date, time and temp (see pics). Your RTC might not have been setup so there may be some bogus date/time information.
Step 5: Update the RTC
In the Serial Monitor you will now need to set the correct time.
- The format is T(sec)(min)(hour)(dayOfWeek)(dayOfMonth)(month)(year)
Example: 02-Feb-09 @ 19:57:11 for the 3rd day of the week -> T1157193020209
So enter your current time in correct format and then press the send button. Now you clock should be displaying the correct time!
Step 6: Making the Colon
There are two ways to make the colon in the clock look correct.
First way is to desolder the 3rd digit colon and move it up to the upper left of the digit and the drill some hole and solder jumper wires over to it. I call this the hard way!
The second way is to flip the 3rd digit upside down. This gives the appearance of the clock colon but now the wires from the 2nd digit to the 3 digit need to be extended and the same for the 3rd to the 4th. I just used extra DuPont male to female jumpers to extend it the needed distance. Remove power while you are adjusting the wiring and reapply when you are done.
Look in the software sketch and update variable flip_3rd_digit to true. Now save the file and upload it to the Arduino.
The electronics of your pace clock is now complete! I will leave the mounting of this electronics up to you and not just because I ran out of budget ;-) but it is dependent on use. I would recommend getting some red Plexiglas to go in front of the display as it hides the electronics and makes it segments look better.
Hope this helps and let me know if you have any questions or suggestions.