Trying to squeeze some new life out of the tried-and-true clock paradigm can be a frustrating design challenge. Likewise, creating a clock from the absolute minimal number of parts (e.g., no more than 6 components) can lead to some sleepless nights. Finally, trying to shoehorn everything into an itty-bitty space (roughly 2-x3-inches) and making it a portable, battery-powered clock can make even a seasoned project builder scream "Uncle!" Getting everything to work like, err, clockwork, priceless.
The Dot • Watch is a new spin on the classic microcontroller clock project. It's small, portable, low cost, and sports a unique timekeeping function. If this method of timekeeping interests you, you can purchase a more "refined" watch with a similar time display function from Tokyo Flash.
Driven by an Arduino microcontroller clone, called Freeduino, Dot • Watch forces you to do some fast number cypherin' to tell the current time. Rather than displaying numbers on a screen, Dot • Watch uses an 8x8 LED matrix to depict the current time. In this context four columns of "dots" are used for displaying time in a 24-hour format. For example:
- Columns 1 & 3 are used for hours.
- Column 1 represents 5 hour increments
- Column 3 uses 1 hour increments
- Columns 6 & 7 are used for the minutes.
- Column 6 shows minutes in 10-minute increments
- Column 7 flashes the minutes in 2-minute increments
So how do you drive a 24-pin 8x8 LED matrix with just one Freeduino? Very carefully; seriously, there are more than enough I/O pins on the Freeduino for handling this unorthodox time display. On the next page, the point-to-point wiring schedule for Dot • Watch.
|Freeduino Pin||LED Matrix Pin|
|D13||20 + 21*|
|D14 (A0)||17 + 18*|
|D16 (A2)||4 + 5*|
|D17 (A3)||7 + 8*|
|* LED pins are connected to resistor network, then routed to Freeduino.|
Note that four sets of the LED matrix pins are connected together. This dual pin setup creates an orange "dot" color (e.g., green + red). Also, pins 2, 10, 14, and 24 on the matrix are not used in this project.
There are eight pins from the 8x8 LED matrix that must be routed to the eight internal resistors of the resistor network:
- 20 + 21 [One of four dual pin setups; see above.]
- 17 + 18
- 7 + 8
- 4 + 5
One component that is strangely missing in Dot • Watch is a switch for setting the time. As a design constraint, I felt that no switch was necessary. Rather, all you have to do is plug the battery into Dot • Watch at exactly 12 noon (your local time). Dot • Watch will begin operation and the time will increment.
Expect about 23 hours worth of juice from the battery cited in this project (go ahead and modify our sketchbook code for more optimal battery usage; for example, less LED flashing). Batteries with a higher rated capacity might be able to squeeze more time out of Dot • Watch. In a testing scenario, I had two batteries: one installed in Dot • Watch the other one resting comfortably in a battery recharging device. Then when the Dot • Watch finally gave out, I waited until 12 noon, swapped the batteries, and continued timekeeping.
Alternatively, you can press the Freeduino reset button each day at precisely 12 noon and restart Dot • Watch. This will reset the sketchbook's original timekeeping accuracy.
Otherwise, Dot • Watch is clock that might have even impressed John Cameron Swayze . . . it takes a bashing and keeps on flashing. [With apologies to TIMEX Corporation.]
Turn the page for a parts list and steps.
TIME: 9 HOURS
(1) PC board (RadioShack #276-149; $1.99)
(1) Freeduino Really Bare Bones Board Kit .25 Amp (Wulfden Shoppe #RBBBK; $12)
(1) LED 8x8 matrix (SparkFun Electronics #COM-00681; $4.95) [Please note: this is not the same LED used in this project. It is a replacement product with similar specs.]
(1) 180-ohm resistor network (Mouser #652-4116R-1LF-180; $0.58)
(1) JST connector (SparkFun Electronics #PRT-08613; $0.95)
(1) 3.7V LiPo battery (SparkFun Electronics #PRT-00339; $11.95)
1. Assemble the Freeduino Really Bare Bones Board kit. Do not add the "pilot light" LED and the voltage regulator circuit to the Freeduino (e.g., pin D13). Also, forgo adding header pins to any of the Freeduino PCB holes that correspond to the digital and analog I/O pins that will be used in this project (see above wiring schedule).
2. Download our sketchbook code. Upload this code onto your completed Freeduino.
3. Push the 8x8 LED matrix into the PC board. This is a very difficult insertion. Carefully splay the two rows of LED pins apart and push all pins into place. You can hold the LED matrix on the board by bending the dual pin setups together on the underside of the board.
4. Solder short lengths of wire to all of the LED matrix pins that are used in this project.
5. Connect the resistor network to the select matrix pins.
6. Using the above wiring schedule, wire each of the matrix pin wires to their respective Freeduino pin PCB hole. Connect the matrix pins from the resistor network to their respective Freeduino pin PCB holes.
7. Run a short black wire and a short red wire from the JST connector (see the LiPo battery's connector for proper orientation) to pins 1 (GND) and 2 (+5V), respectively, on the Freeduino.
Check all of your wiring, then recheck your wiring, again. Plug the LiPo battery into the JST connector and check for proper lighting of the LED matrix. If you don't see the matrix flashing the startup time (e.g., 1200 hours), immediately disconnect the battery and recheck your wiring. Be patient, however, it takes a couple of seconds for the Dot • Watch to start flashing the startup time.
Once the wiring checks out, wait until 12 noon (local time) and plug the battery into the Dot • Watch circuit. Clock watching is now fun, again.
Nice toy...but no useful innovation. Why do we need to complicate the clock now?
a great project i would want to work on anyday. it might be clearly outdone by regular clocks, but it's still awsome!!!
Can't say much about it.
Anyone know how to power this from the wall? It'd be MUCH more practical.