Close
0%
0%

SuperClock

A DIY desk clock with retro-style dot matrix display

Similar projects worth following
I love unusual LED displays. And I love clocks. So I've combined them in a single project!

Features

  • A retro-style dot matrix display:
    • 17x6 5mm LED matrix
    • Different LED colors for main area, status bar and number separator
    • No flickering, ghosting or uneven brightness
    • High refresh rate of 460Hz
    • 8-bit global brightness and 3-bit per-pixel brightness
    • Global brightness is automatically (and smoothly) adjusted by ambient conditions, just like on your phone!
  • Accurate timekeeping:
    • Temperature-compensated crystal clock (DS3231SN chip)
    • Backup power to keep the clock ticking (CR2032 battery)
    • Displays minute, hour, day, weekday, month, year and even ambient temperature
    • Green status bar tracks seconds (incremented every 4s)
    • Five alarms with melody
  • Intuitive (kinda) user interface with three buttons
  • Cool acrylic glass frame
  • Powered by any USB brick through a Type-B cable
    • Finally, a reason to pick that old printer cable from your drawer!
  • Built around ATmega32 microcontroller, with firmware written in C++
    • Uses every I/O pin on ATmega32, no wasted potential!
  • No AI and no internet connection! (yup, that's a feature nowadays...)
  • Totally open-source!

Downloads and build instructions

You can find the latest project files on the project Github page

  • Introducing stopwatch mode

    Silica Gel08/13/2025 at 21:56 0 comments

    So I've heard about the One Hertz Challenge, and realized: I have a project! It's my clock!

    However, after carefully considering everything, I've realized that there is nothing happening at the rate of one hertz here, despite it being... erm... a clock:

    • The status bar updates every four seconds
    • The RTC chip is queried every 500ms
    • Brightness is updated every 50ms
    • And so on...

    The obvious choice here is, of course, to display seconds somewhere. But the LED matrix is too small to fit them together with hours and minutes! Panic!

    But then I realized there was something I wanted to implement for a long time: stopwatch mode! Stopwatches usually don't count very far, so there is no need to display hours, and fitting minutes and seconds together is not an issue. And the status bar can display fractions of seconds.

    So, now SuperClock can also a be stopwatch! Implementing it posed a tiny challenge: unlike every other timekeeping task, this one required sub-second precision, that was not available from the RTC chip I'm using (DS3231). So, I've had to rely on ATmega32 hardware timer interrupt instead. This makes it somewhat less precise than the usual timekeeping in the long run, but since the stopwatch overflows every 100 minutes, it's not a big deal

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates