One of [Bob's] most treasured possessions is a Heathkit alarm clock he put together as a kid. Over the years he’s noticed a few problems with his clock. There isn’t a battery backup, so it resets when the power goes out. Setting the time and alarm is also a forward only affair – so stepping the clock back an hour for daylight savings time means holding down the buttons while the clock scrolls through 23 hours. [Bob] decided to modify his clock with a few modern parts. While the easiest method may have been to gut the clock, that wouldn’t preserve all those classic Heathkit parts. What [Bob] did in essence is to add a PIC32 co-processor to the system.
Like many clocks in the 70’s and 80’s, the Heathkit alarm clock was based upon the National Semiconductor MM5316 Digital Alarm Clock chip. The MM5316 operates at 8 – 22 volts, so it couldn’t directly interface with the 3.3V (5V tolerant) PIC32 I/O pins. On PIC’s the input side, [Bob] used a couple of analog multiplexer chips. The PIC can scan the individual elements of the clock’s display. On the PIC’s output side, he used a couple of analog switches to control the ‘Fast’, ‘Slow’, and ‘Display Alarm/Time’ buttons.
The PIC can now read and change the clock’s time and alarm. By pressing all three buttons together, it can reset to a known state of Midnight. The only thing missing was a real time data source. [Bob] added a GPS to the system to accomplish this. The GPS receives the current GMT time from satellites and sends that data to the PIC. The PIC then offsets this by a timezone value stored in NVRAM. Alarm time is also stored in NVRAM.
At power up the PIC first sets the clock’s alarm. Then it waits for the GPS to sync. Once it has GPS time, the PIC sets the clock. The PIC also resets the clock time every night at midnight. The MM5316 is still in control of keeping time hour to hour. This is a great hack, and a really nice way of adding functionality to a classic clock with a beautiful VFD display.