C-MAX CMMR-6P-60 WWVB 60kHz Receiver
Back in the day, Heathkit produced "The Most Accurate Clock". It was an HF receiver that tuned to WWV and WWVH on 5, 10 and 15MHz and updated its clock from the decoded time signal.
Currently most people are familiar with "Atomic Clocks" which pick up another NIST time signal, WWVB on 60kHz. Various websites detail how to extract the receiver boards and antennas from consumer equipment to recover these receivers. If you have an old one sitting around that you're willing to sacrifice, or can pick up a used one for less than $10, this may be a way to go.
C-MAX makes the CMMR-6P-60 for receiving the US NIST WWVB time signal. Here is the datasheet.
I got my CMMR-6P-60 from DigiKey for $10.70. They list it as P/N 561-1014-ND. It comes with an attached tuned 60mm loopstick antenna. If you are any distance from Colorado, or are having problems with noise, you might want to purchase the 100mm 60kHz tuned loopstick antenna for an extra $2.00. Its part number is 561-1001-ND. Just unsolder the 60mm loopstick and solder the 100mm loopstick in its place.
Some considerations with using this receiver. It's a receiver. Get it off the work bench away from RF hash and near a window. The antenna is a directional dipole antenna. Turn the loopstick broadside to a direction facing Boulder, Colorado. RF grounding and shielding may be necessary. Currently, mine runs with the CMMR-6P ground attached to the grounded shell on my computer's USB port. Otherwise the TCO output goes high and remains there. The VLF 60kHz signal seems to be best around sunrise and sunset.
The main thing we're interested in at the moment is powering up the board. We'll need to provide some power filtration, tie PON to ground to power up the receiver, get a signal out, and have some sort of indicator we can watch to see if something's happening. The following schematic will allow you to apply basic power and watch a blinking light.
One thing to remember about this signal, it's a slow one, your bit is one second long. Any fast flickering or constant on indicates interference of some sort. The LED should flash once per second. The receiver outputs two signals. TCO is the positive following of the transmitted data and TCON is inverted. We hook the LED to the TCON because it proportionately spends more of its time off which means the receiver can be battery powered (less current drain) while searching for a noise free environment.
Solid heartbeat of 60 per minute means that the next step can be tackled, turning the TCO output into time, or at least a usable data stream. There are a few libraries and Arduino sketches out there for decoding DCF-77. The DCF-77 time signal has some nice amenities and data layout. We aren't so lucky. None of it will work with the WWVB format (see Chapter 2).
The WWVB signal is a continously transmitted 60kHz carrier that drops carrier power to produce the pulses we can decode into 0, 1 and marker data. A 200ms power drop indicates 1, 500ms power drop indicates 0, 800ms drop indicates 10 second marker (6ppm), two 800ms drops in a row indicate start of the next data frame (previous P0 marker plus Pr marker). A visual representation of the pulse train can be found here.