My son told me that they would make a clock in woodwork at school. The same clock that all students had done for years. When I talked to my colleague at work, he laughed when he heard that they still made the same watch that when he went to school.
Since I’m a geek … let’s do something fun. I told him that we are building a modern watch instead. We do a binary clock! He thought it sounded exciting and the teacher accepted ways of thinking. Let’s start create a binary watch.
We decided early on that the clock would be based around the Arduino and we found a suitable module: Sparkfun Pro Micro with ATmega32U4. Small, inexpensive and powerful enough.
The Pro Micro has enough I/O pins to manage a LED matrix, RTC module and some input switches. The module doesn’t have a Real Time Clock onboard so we needed to add one to manage power lost.
An overview of the watch:
The first challenge to build a binary watch is to create a good LED matrix. I did a lot of testings with LED matrix from the pin outputs. The problem was that I did not get rid of a small flicker in LED. Even if I adjusted sleep time between changing value of the output it was almost impossible to get a flicker free display.
My first testing with LED matrix
So I started to gave up… but finally find a real cool device NeoPixel. A RGB LED Matrix with 1-wire interface.. Exactly was I was looking for :-).
NeoPixel RGB from Adafruit
So the first prototype was developed with Arduino Pro Micro, RTC, three buttons and NeoPixel LED matrix.
It was ok… but hey.. no internet connection and no possibility to control the watch from an app (a must have ;-)). At least if I should call it an Internet of Things Binary watch…
So back to researching… trying to find a good and not too expensive WLAN module that works good with Arduino (drivers).
After a couple of hours researching I found CC3000 device that provides all functionality that I needed. The CC3000 can not act as an AP (access point), but I don’t need it for this project.. It can still act as a socket server which is good enough.
So the final device wireframe for the internet connected watch:
We don’t need the RTC anymore because we will sync time with an Time Server on Internet (And trust our internet connection ;-)). You can easily add back the RTC if you want because it will communicate with I2C so Arduino board will anyway have enough i/o pins.
More details on wiring and complete sample code in next article.