Or, “Most Accurate” SB-630: Retro Style Desk Accessory, Updated on a Budget
A while back, I was given an SB-630 Station Console by an old timer acquaintance.
The SB-630 is a nice, but not especially necessary station accessory. Some hams built them just to have the complete SB-line. The console consists of a passive SWR meter, a phone patch, a motorized Digital Clock and the unique feature: a 10-minute Identification Timer. Better versions of the SWR Meter and Phone Patch were sold separately; the clock-timer was unique, so the SB-630 was merely an opportunity to wrap them all up in a single desktop accessory. Since there’s nothing unique about the SWR Meter or the Phone Patch, for my purposes, I shall focus on the clock-timer combination.
My plan was to build a new clock display, keeping some of the old style (albeit 1970’s style, not 60’s), and drive them with an Arduino micro controller. The real-time clock is provided by a Maxim DS1307 (formerly Dallas Semiconductor) 8-pin IC. The chip is tiny, uses very little current when it’s ‘on’, and is backed up (according to the datasheet for 10 years!) by a single CR2032 3-volt lithium battery.
The LCD is from SparkFun, a Red-on-Black, Backlit LCD which fits well.
All Tubes and the Plate-Filament transformer were removed (and saved, for future tube projects). The clock was given to a local collector who prefers to keep his Heathkits original. The functionality replaced – and enhanced – by adding a Real-Time Clock (RTC) chip, a WWVB receiver and Arduino code to interpret the 1950’s era clock signal.
The WWVB receiver reads each ‘pulse’ of the signal and interrupts the Arduino (INT1) to add the ‘tick’ to the buffer. Once the whole signal is received, it can be interpreted as a date and time. The RTC pulses (INT0) each second in order to drive the display clock.
In addition, an LM35 sensor provides the current room temperature.
Original WWVB decode source from http://duinolab.blogspot.com/2009/06/arduino-cmmr-6p-60-almost-accurate.html (Capt Tagon) and all others who’ve improved this code. Website seems abandoned, but the source code is good. My alteration is to remove the timer interrupt (1000 times a second) which operates the 1-second tick and replace it with the square wave output (SQWE) signal from the RTC chip, a Maxim DS1307.
The LCD is 16×2, and the layout needs to accommodate Date, Time, and Day, along with an ID Timer. A room temperature indicator is ‘extra’.
It’s a bit cramped, but I’m able to show everything I wanted to display, and I have plenty of Arduino pins left to trigger the ‘IDENTIFY’ lamps and ‘audio tone’, and a few pins left for future expansion.
The DS1307 has it’s own battery-backup, which retains the time on power-off.
The WWVB Receiver IC is no longer available. A better choice today would be a GPS receiver, which would provide the same (or better) accuracy and is in the same price range now, with some GPS modules selling for as little as US$14.
Finally, the ATMEGA168, LCD, ID Lamp Relay, Temperature Sensor, and the Tie-in with Original Switches.
Source Code contains classes for the DS1307 and the CMMR-6 WWVB receiver.