Starting Out
These entries will serve as the log\notebook for a project to construct a custom word clock in a way that’s technically fun and compelling. Which is to say, I’ll overcomplicate some aspects if it gives me the opportunity to do something interesting that I might otherwise avoid due to cost or complexity.
Requirements for Finished Product
- Should function as a reasonable clock:
- Keeps time as well as a consumer clock radio.
- Timekeeping persists across power disconnect.
- Doesn’t require internet access\GPS to do the above.
- Basic interaction should be possible via on-device buttons.
- Runs on wall power.
- We should generate a new, custom layout for the front panel rather than grab somebody else’s, because…
- It should support some custom messages, e.g. “Happy Birthday (owner’s name)”, “Merry Christmas (owner’s name)”, etc.
- Which implies knowing date as well as time.
- It’s likely going to run in a child’s bedroom, so it should be visible in daylight but not so obtrusive at night that it’s disruptive to sleep. Adaptive brightness?
- Letters should have variable colors, i.e. RGB LED’s or similar.
- Support for automation\debug\complex commands via serial comms.
Implementation Choices
- I’d like to have the option to write firmware in C++.
- We won’t use a Raspberry Pi, Arduino, or similar just because I want to do lower-level microcontroller dev.
- We’ll use an ARM microcontroller, since I’m interested in some experience on the platform.
- The idea of manually arranging the words seems like needless toil. I’m going to try writing a util to auto-generate the layout.
Constraints
- I don’t have CNC tools in my home shop, and as of this writing, COVID is still decently serious. I’m assuming I’ll need to use remote, on-demand fab for truly complex parts like PCB’s and routed letters on a front panel.