Receiving WWVB with HackRF Pro

We advertise 100kHz as the lower edge of the HackRF Pro’s operating frequency range, but this is not a hard limit. While working on the design, I realized that it should work well enough to capture a longwave time signal such as WWVB broadcast at 60 kHz from Colorado, United States.

HackRF Pro Low Frequency Response Plot

WWVB provides a stable frequency reference and time code. If you have a radio-controlled clock in North America, it probably uses the signal from WWVB to maintain correct time. WWVB can also be used to discipline a laboratory frequency standard, eliminating the need for a local atomic clock in many cases.

Why use WWVB?

Almost every electronic device contains some type of oscillator or clock. For example, the HackRF Pro includes a temperature-compensated crystal oscillator (TCXO) that is superior to the crystal oscillator (XO) used in the HackRF One. Having a better internal clock means that the radio frequencies received or transmitted by the device are more accurate. If I receive a radio signal at 1 GHz with the HackRF One, I cannot be certain whether the signal in the air is at exactly 1 GHz. The receive frequency detected by the HackRF One may be off by 10 or 20 kHz. Frequency uncertainty with HackRF Pro is an order of magnitude lower, thanks to the built-in TCXO. I believe that at 1 GHz any inaccuracy is no more than about 1 or 2 kHz, even without any calibration.

I need to use a better clock in my lab to ensure that the oscillators in our products perform as expected. I can use HackRF Pro to measure the frequency error of HackRF One, but how do I know if I can trust HackRF Pro? I would need a more reliable frequency reference such as an atomic clock. A good alternative to an expensive atomic clock would be an oven-controlled crystal oscillator (OCXO) that has been recently calibrated or that is disciplined by a remote atomic clock.

One such remote frequency reference is WWVB which has several orders of magnitude lower frequency uncertainty than TCXO in HackRF Pro. WWVB also provides a digital time code indicating the time of day.

Why not GPSDO?

People like me who need a laboratory frequency standard usually turn to a GPS disciplined oscillator (GPSDO). I can buy an off-the-shelf GPSDO that primes the internal OCXDO with signals received from GPS (or other GNSS) satellites. Such a device would cost a few hundred dollars, much less than the thousands of dollars needed to purchase a small atomic clock.

Before GPSDO became available, some test equipment manufacturers sold WWVB disciplined oscillators, but these products are no longer made. They became unpopular even before WWVB changed its broadcast format with the introduction of phase modulation in 2012, which broke compatibility with commercial oscillators. There is no reason why a new WWVB disciplined oscillator could not be created. In fact, many hobbyists have built their own oscillators or modified older oscillators to make them compatible with the new phase modulation.

An old piece of test equipment with an outdoor loopstick antenna mounted on top

I like the idea of ​​having my own WWVB disciplined oscillator, partly because the GPS receiver requires an active antenna somewhere with a view of the sky whereas the WWVB receiver can be located indoors. I like that the design of a WWVB receiver can be relatively simple and does not need to constantly track multiple moving satellites. I like that WWVB is stable and will not be adversely affected by Kessler syndrome.

I like that the WWVB receiver implementation with the HackRF Pro can be used to directly measure the frequency error of the HackRF Pro, by simply measuring how far off the WWVB appears to be from 60 kHz. I don’t even need to build a perfect WWVB disciplined oscillator to do this. (Theoretically I could do the same thing with GPS, but it would require significantly more complex software.)

Most of all, I think getting WWVB is a fun project!

An active antenna for 60 kHz

The size of radio antennas is generally proportional to wavelength, and at 60 kHz the wavelength is very long, about 5000 meters. A vertically polarized quarter-wave monopole antenna for 60 kHz would be the tallest structure in the world! To avoid such impractical construction, the design of the WWVB transmit antenna is more complex. Although small compared to the wavelength, the broadcast antenna is composed of hundreds of meters of cable and multiple towers.

Aerial photo of four antenna towers under a stormy sky. Cables connect the four towers to a central vertical cable.

WWVB receivers use small loop antennas that detect changes in the magnetic field. Many amateur radio operators have built air core loop antennas one to two meters in diameter for WWVB, while radio-controlled clocks use much smaller ferrite core (“loopstick”) antennas. I thought it would be fun to make a small active loopstick antenna that is compatible with the HackRF Pro.

For my initial experiment, I cobbled together some RF amplifier and filter test PCBs and connected them to a loopstick antenna pulled from an AM radio kit. I used a VNA to tune the antenna to 60 kHz with a parallel capacitor. With two amplifier ICs (which I previously tested for a URTI project) and a low-pass filter, I was barely able to detect a weak signal at 60kHz one afternoon using HackRF Pro. Later that evening the signal was stronger and easily recognizable as WWVB. I live in Ontario, Canada, a thousand miles from WWVB, and I think it’s great that I was able to catch a signal from such a long distance on my first try!

Loopstick antenna, amplifier test PCB, and filter test PCB are connected by SMA cables

Building on this success, I designed the Tevi, an active loopstick antenna named (popularly) for the similarly shaped Tetris block. The TV consists of a tiny PCB that does the amplification and filtering, a hand-wrapped ferrite core and a 3D-printed casing. While my initial experiment required an external power supply, the TV is powered by the HackRF Pro’s built-in bias T.

T-shaped 3D printed antenna prototype with SMA coupler connected to HackRF Pro

Inspired by old designs, I used an instrumentation amplifier for the first stage of the TV. Its purpose is to separate the magnetic field (which is seen by the amplifier as a differential signal) from the electric field (which is seen as a common-mode signal). Instrumentation amplifiers have high common-mode rejection, eliminating most locally generated electric field noise.

Inside T-shaped 3D printed antenna with ferrite rod and PCB visible

My first test with the TV was disappointing. I didn’t detect WWVB at all, but instead picked up waves of broadband noise. After a few days of frustration, I decided to reproduce my original setup and found that the results were just as bad! The reason for this was that I had recently rearranged my lab and placed my PC tower on my desktop closer to the antenna test area. While the TV is designed to reject electric field interference, it is highly sensitive to magnetic interference, something that my PC apparently generates to a great extent. Fortunately, I was able to eliminate this near-field interference by moving the antenna only half a meter away from the PC.

After solving the near-field problem, I found that the TV actually performed quite well. While my original setup was only useful during periods of favorable ionospheric propagation at night, I was able to pick up WWVB at any time of the day with the TV on.

Observing the WWVB signal

A distinctive feature of WWVB is that the very precise carrier frequency of 60 kHz is switched off and back on once per second with varying pulse duration. With most receivers this looks like on-off keying (OOK), but it is actually amplitude-shift keying (ASK) where the “off” period is 17 dB less power than the “on” period. Sometimes when propagation is good, I can barely detect a signal during “off” periods with the TV on.

Spectrogram of WWVB with ASK modulation clearly visible in the spectrometer window

Pulse width modulation (PWM) stores time of day and other status information in 60-second data frames. The falling edge of each pulse occurs at the beginning of each second. There is an extra long “off” period once every ten seconds. This pattern makes it easy to identify the signal when there is a sufficient signal-to-noise ratio to observe the modulation.

Since 2012 there is a second data stream at the phase of each pulse. The last time I experimented with WWVB was before 2012, so I hadn’t seen phase modulation before. The phase modulation is binary phase-shift keying (BPSK) at one bit per second, with the phase transition occurring at a 0.1 second “off” period. Using a derivative phase plot in Spectra I was able to see the phase changing abruptly from one pulse to the next.

In principle, BPSK modulation makes it possible to implement a receiver capable of detecting weaker signals than an ASK receiver, especially when once per hour the BPSK stream carries an extended symbol sequence that lasts up to 6 minutes and includes a fixed 106-bit synchronization word. I think it would be interesting to try to explore this “medium mode” from afar, perhaps even on another continent.

When using WWVB as a frequency reference, digital modulation can be ignored, except that the detector (software in my case) must be designed to tolerate BPSK.

Measuring Doppler Shift with WWVB

Shortly after working in TV, I traveled to British Columbia, so I decided to try to pick up WWVB on my flight across Canada, hoping that I would be able to see the Doppler shift from the motion of the aircraft relative to the transmitter. I found that I was unable to detect the signal with the antenna at my seat on the plane, but I could catch it by placing the TV in a window connected to the HackRF Pro by SMA cable. I captured the signal from WWVB for a full hour while the plane was heading west, starting from a point approximately north of the transmitter.

The windows of a shaded airplane remain closed most of the time. There is a black cable coming out from behind the shed.

I analyzed the hour-long captures and found that the Doppler shift was really obvious when plotting the received WWVB frequency over time. About halfway through the capture, the plane changed direction, and this caused a sudden change in frequency that clearly confirmed that I was indeed seeing the Doppler effect.

Flight path over Saskatchewan and Alberta as seen on the seatback display

For further confirmation, I later downloaded the ADSB flight data and used it to plot the expected Doppler shift. This ties in quite well with the WWVB comments. Apart from a few blips due to interference, the primary discrepancy between the expected and observed Doppler shift was a 15 MHz offset due to the HackRF Pro TCXO being 250 ppb slower. (This was better than the TCXO average. I typically see a frequency error of about 1 ppm.)

Plot of measured versus expected Doppler shift

I had hoped to get even longer captures on the return flight to Ontario, but there was too much interference, perhaps from the avionics or from the jet engine. It was on a small plane, and I was sitting on the front edge of the wing, near the engine.

try it yourself

I have published TV designs for those who want to build their own. The TV is meant to be used with the HackRF Pro, but I’ve also had some limited success with the HackRF One, even though it has significantly worse 60kHz performance than the HackRF Pro.



Leave a Comment