I’m making a digital clock. It’s an analog-style interface but with 132 RGB LEDs at each tick. Software-side, I needed to rewrite the existing DS1307 RTC libraries that communicate with the Arduino’s microcontroller, since they didn’t do data verification for valid times, and they relied on communicating with the module every second, putting a massive strain on the microcontroller. I solved these problems by offloading the timekeeping effort to the microcontroller, giving it a data structure I designed for it to update. The RTC could then be a backup of the time the microcontroller could read from whenever it powers up. Hardware-wise, I designed my own PCB to create a neat and compact space for all the components.
Continue reading Design for the Time: Lessons from Building an RGB Clock