Hi HN! I wanted to share the story of µWWVB, a watch stand that I built that automatically sets the time on my atomic wristwatch.<p>Because I can't receive the regular atomic watch radio signal where I live, I built a device that determines the current time by using GPS and then emulates the WWVB protocol to set my atomic watch.<p>In the process of building this, I learned a lot about time, clocks, radio, and WWVB, and so I thought I'd share what I had learned.
While currently I have no use for this, I definitely appreciate the research and effort that went in to solve a localized problem, and sharing the results. Epitomizes hacker culture to me. Thanks for sharing :)
The WWVB protocol has been interesting me for the past few months. I have been thinking about doing the opposite: building my own WWVB receiving station.<p>There are modules which can automatically receive the WWVB radio signal and output the high/low pulses (which still need to be translated from PWM to ones and zeros).<p><a href="https://www.amazon.com/60kHz-atomic-clock-radio-module/dp/B01KH3VEGS" rel="nofollow">https://www.amazon.com/60kHz-atomic-clock-radio-module/dp/B0...</a><p>----------<p>If I were to make a recommendation: you're hiding a bit of magic here:<p>> I designed the board using the EAGLE PCB design software and milled the board from a single-sided FR-1 circuit board blank on an Othermill v2:<p>You haven't said the kinds of endmills you're using (flat square mills? Or did you use a V-tip?). If so, where did you source the V-Tips from? The software side probably had a few extra steps as well (IIRC, its usually Eagle -> Eagle CAM Plugin export -> CAM software -> GCode -> Mill)<p>So expanding on what you did here would be most helpful... to me at least :-)<p>> It’s challenging to design good antennas for such long wavelengths<p>FYI: the loopstick / Small Loop antenna operates on the magnetic-portion of the wave instead of the electric-portion of the wave. Instead of making a very large wire (which "receives" the voltage as the wave passes), the small loop antenna is basically an inductor that generates a current as the magnetic wave passes over it.<p>That's how it gets so small, since the electric wave is 5000-meters long, its a bit difficult to make.
That's the computer hacker solution. The RF hacker solution would be to build something that receives WWVB and retransmits its own signal on the same frequency without interfering with itself. The wavelength is long enough that you could pull this off. This has the advantage that you're not degrading the accuracy of the time signal.
Could someone provide quick background on WWVB, or at least say if the Wikipedia page is accurate? I clicked the link to the NIST page,[0] which helped a little but was written for someone already familiar with it - it's both too detailed and leaves fundamental questions unanswered; for example:<p>* Is WWVB the norm for consumer clocks that synchronize to an outside source? If I see a clock with that feature, should I assume it uses WWVB? Is it one of several options?<p>* Why not use GPS? Because of poor signal indoors?<p>* How far does this signal from Colorado propagate?<p>[0] <a href="https://www.nist.gov/pml/time-and-frequency-division/radio-stations/wwvb" rel="nofollow">https://www.nist.gov/pml/time-and-frequency-division/radio-s...</a>
Part of the linked page describing the WWVB transmission station which I enjoyed:<p>"A computer is used to automatically tune the antennas during icy and/or windy conditions. This automatic tuning provides a dynamic match between the transmitter and the antenna system. The computer looks for a phase difference between voltage and current at the transmitter. If one is detected, an error signal is sent to a 3-phase motor in the helix house that rotates the rotor inside the variometer. This retunes the antenna and restores the match between the antenna and transmitter."<p>Cool technology :)
Could you attack WWVB receivers by overriding the transmitted signal and change their time?<p>edit: Not something I'd want to do obviously, just seems like a rather insecure technology.
Very nice, I was originally thinking "Gee with NMEA signals they won't be able to do better than 1/2 second accuracy." and then realized its a wristwatch, you don't generally care about milliseconds and the watch can lose or gain a half second in a day anyway! So in fact it is engineered quite well for the requirement.<p>I also liked the antenna solution. Very nice piece of work.
That's a cool project.<p>Something I'd find irresistible is messing with the protocol to find the limits of your watch receiver. I mean sure the spec is 500 ms pulse for a one and 200 ms for a zero, and we can safely assume anything from 499 to 501 ms is close enough, but I wonder how far those limits can be pushed. Is the crossover from understanding 1/0 the arithmetic mean or geometric mean or some arbitrary limits or does the firmware crash or go into easter egg mode or ...<p>Another fun game to play is the AT44A is much weaker than the 8-bit home computers from the 80s that could synthesize live audio in real time up to a couple KHz. A somewhat more advanced chip in the 2010s could numerically synthesize live 60 KHz signals, which might be fun instead of altering hardware PWM. Then you could play with amplitude and keying signals. Its well trodden ground that square wave modulation of a morse code signal is extremely wide bandwidth. A fancy raised cosine would be very smooth. Perhaps you'd get better SNR at the receiver with less keyclicks, so you could reduce power, or it would be more reliable per watt transmitted. Or it might not matter. But live realtime synthesis would none the less be entertaining alternative to modifying PWM registers on the fly. A cleaner yet simple modulation method might be let the PWM fly free and use a digital pot with a I2C interface to smoothly AM modulate the output, probably only cost one chip and might provide some performance gain. Most digital pots are just FET with some buffers and drivers, they seem to be spec'd to 44 KHz sometimes 192 KHz so I assume 60 KHz would be no big deal.<p>Another funny thing about ferrites and reciprocity is how interesting their output is when they saturate, and how low the power level is when they saturate. That's why very little ham radio work has been done with ferrites as transmitting antennas, compared to the more conventional yet still rather obscure air core magnetic loop antennas. Ferrites are cool, strange chemical magic. Anyway a simple air core coil made resonant-ish might work better as an antenna than you'd think, maybe better than the ferrite. You get best performance with the correct ferrite core material for the frequency band selected. Probably the gutted radio clock you used, used the correct core material, or maybe it used the cheapest one that mostly worked (although not in your dorm room as you mentioned). Trying to use Amidon core material 17 would be quite futile at 60 khz, a bar of amidon material #3 would probably work at 60 KHz assuming you could find it. Manufacturing your own optimized antenna large enough core to handle some power and with the proper ferrite core material would be an interesting 3rd experiment.<p>Daydreaming about ways to continue iterating on a design is fun.