24 Clock

The Project

An alarm clock for a friend’s 24th birthday, based on the clock that appears going to and coming from commercials on Fox’s TV series 24.

Design Constraints

  • Similarity to the show – The tones that the clock generated as well as the colour of the digits themselves had to be as close to the show as possible.
  • Budget – This was out of our own pockets, so we wanted to keep a lid on costs.
  • Timeline – There was perhaps one month of turnaround time, including getting the boards back.
  • Accuracy – A clock that isn’t accurate is no good as a clock.

My Role

On this project, I did everything from concept, to determining which frequencies to use for the tones the clock generated (those who have seen the show know what I’m talking about), to hardware design, to programming, to construction.

Lessons Learned

  • Accuracy of clock sources – A ceramic resonator is nowhere near accurate enough a timebase for a clock. A crystal oscillator is better, but not great. A DS32KHZ TCXO is ideal, but if your layout is bad enough even it won’t help you, as a retrofit proved.
  • Importance of backups – Thanks to several hard drive incidents in the year leading up to this project, I had started taking backups somewhat regularly. Unfortunately I suffered a major hard drive failure the day after I sent this board off for manufacture. Of the five or six files that weren’t in my last backup, two of them were the schematic and layout for this project. I sync projects to a source control server and have two automatic backup systems in place now.
  • Follow-through – Because of aforementioned issues with getting adequate performance from the clock, I shelved it to work on other projects (including school). As a result, over five years later, this one still isn’t done.
  • Designing for expandability – My original plan for the clock was to not include the sound generator in the first version, and add it in an add-on board later. Unfortunately, I had planned to add that via the ICSP header, which would have made debugging the code to work with the sound generator tricky, had I ever actually got that far. I would have been much better off to add some spare I/Os to the board on their own connector to use for whatever I needed down the road.