If you have been following my adventures, specifically with the Etherkit OpenBeacon, you will know that I was investigating a method of triggering WSPR transmissions without leaving it attached to a computer.  My requirements were that it be Arduino based, since I am learning about that as well, and have a very stable time source as necessitated by WSPR.

The available options for stable time sources in the Arduino time library include NTP, RTC, and GPS sources, I decided to go a different direction!

While investigating time sources I ran across the WWVBClock Project on Github and thought WWVB would make an interesting time source for this project.  The first step was to find a receiver, which are far less common from online shops than I expected, but I was able to find one at my local Wal-Mart in the form of a self setting alarm clock for the reasonable cost of $10.

WWVBTrigger ClockWWVBTrigger Clock

As soon as I got home I opened it up to ensure that the module was not integrated into the main PCB as that would be of little use and to my delight it was a separate unit as shown below. It is the module on the left hand side of the larger PCB and the antenna is located at the top.  A pair of cutters and one minute later, I had a WWVB receiver module.

WWVBTrigger Clock InsideWWVBTrigger Clock Inside

Locating a datasheet for the module proved a little challenging, but I was able to locate the datasheet for IC used on the module, which is located here.

WWVBTrigger ModuleWWVBTrigger Module

Having all of the necessary information, it was time to start playing.  I breadboarded all of the components as show in the schematic and started hacking apart the code from the WWVB Clock Project.

WWVBTrigger SchematicWWVBTrigger Schematic
WWVBTrigger BreadboardWWVBTrigger Breadboard

My initial plan was to use the WWVB receiver and the Arduino time library to set the internal clock with hopes that it would keep accurate time when a WWVB signal wasn’t available.  This proved to be a lost cause as it was 4 seconds behind after 90 minutes without a WWVB signal, far beyond the 2 seconds of accuracy required by WSPR.

The second, and current implementation, only transmits when a WWVB signal is available to guarantee accurate timing.  The code by default will transmit at 4 minute intervals, but this value is configurable by manipulating the triggerInterval variable.  During normal operations the code displays, via the serial port, each time an output signal is sent, enabling you to not only track transmissions, but also the availability of the WWVB signal in your area.

WWVBTrigger OutputWWVBTrigger Output

Here are the spots as reported on WSPR for the last 24 hours all of which have been triggered by this project.

WSPR SpotsWSPR Spots

This project has been a lot of fun and works quite well!  A WWVB signal is consistently available here in Central Arkansas, in the Central time zone, from about 7PM through the 10AM, honestly much more than I expected.  The code for the project is available on Github, so feel free to use it and experiment!


Robert Garcia, K5DTE, is a regular contributor to AmateurRadio.com and writes from Arkansas, USA. Contact him at [email protected].

2 Responses to “WWVBTrigger”

Leave a Comment

Subscribe FREE to AmateurRadio.com's
Amateur Radio Newsletter
News, Opinion, Giveaways & More!

Join over 7,000 subscribers!
We never share your e-mail address.

Also available via RSS feed, Twitter, and Facebook.

Subscribe FREE to AmateurRadio.com's
Amateur Radio Newsletter

We never share your e-mail address.

Do you like to write?
Interesting project to share?
Helpful tips and ideas for other hams?

Submit an article and we will review it for publication on AmateurRadio.com!

Have a ham radio product or service?
Consider advertising on our site.

Are you a reporter covering ham radio?
Find ham radio experts for your story.

How to Set Up a Ham Radio Blog
Get started in less than 15 minutes!

  • Matt W1MST, Managing Editor

Sign up for our free
Amateur Radio Newsletter

Enter your e-mail address: