• ChronoDot RTC (from Adafruit
Pro Mini ('ATMega328', 3.3V)
• Adafruit NeoPixel Ring
• 5x7 Bi-Color LED Matrix
16x8 LED Matrix Driver Backpack - HT16K33 Breakout -
• Cheep 'RS' Proto-Board
• LOTS of Tiny Solder Connections....
** Short on time?
** Watch the VIDEO! — http://youtube.com/watch?v=LtxX98v_IC8
Time & date shown — "8:25" on the third Tuesday in September.
This is my NeoPixel Clock
with perpetual calendar.
A video (hopefully coming soon!) would show more.
The clockface -
The yellow dots at top just represent the "XII" (12 o'clock
position) on a normal clock
face. To translate 16 pixels to 12 positions, I doubled up the 12, 3, 6, and 9 o'clock
positions with two pixels for each. The blue pixel is hours. The green pixel, minutes. Each pixel position represents a five minute chunk. The minutes pixel flashes up to four times for each minute 'after the five' (i.e. flashes twice for 27 or 42 minutes, flashes four times for 19 or 14 minutes), and remains solid 'on the fives'. You can't see it in the photo, but there is also a seconds indicator. A red dot starts at 12 o'clock
position and quickly 'sweeps' clockwise to the appropriate position each second (think one-way Knight Rider)
. So, at ten seconds after the minute, it sweeps from 12 to 2 o'clock
. At 50 seconds after the minute, it sweeps around the ring
from 12 to 10 o'clock
Inspired by those whiteboard calendars on which you just write in the new dates every month. Sunday is yellow column on left. Saturday is yellow column on right. Weekdays are green. "Today" is always marked with a red dot. I wrote code to use the date from the ChronoDot RTC, figure out which day of the week the current month begins on, how many days are in this month, and display the proper "calendar" for those variables. (I "cheated" just a bit on this, but will improve it later on so that it will run autonomously forever.)
I used the compile time of the sketch to program the RTC, and I hard coded the timezone. I hope to add GPS
connectivity option later, so that it can auto-magically update it's time, date, and timezone from the GPS
. Convenient so I can take it anywhere without ever having to reprogram it.
It's currently being run off of any USB source (5V), but I plan to add LiPo connections & battery charger soon. Also, need to "paint" (Sharpie) the protoboard black, and find a case/frame to mount it. — I used headers for everything, so I can remove/replace/borrow any of the components if I want/need to.
In some far off, future version....
I want to add ability to set alarms in the calendar. On the day, or time, of the alarm it will sound an alert and scroll text across the matrix. However, I'm still working on a 5 pixel tall font which will work with the matrix library I'm using.
Thank you for your time! 8)