Correct timing is one thing that’s at all times been of curiosity to me. Lately we rely closely on time delivered to us over the Web, by way of radio waves from GPS satellites, or broadcast stations. However I needed a clock that might hold wonderful time with out counting on the surface world—definitely one thing higher than the time offered by the quartz crystal oscillator utilized in your typical digital clock or microcontroller, which might drift by about 1.7 seconds per day, or over 10 minutes in the midst of a 12 months.
In fact, I may purchase an atomic clock—that’s, one with a rubidium oscillator inside, of the type used onboard GPS satellites. (Not the sort that’s marketed as an “atomic clock” however one that really depends on selecting up radio time alerts.) Rubidium clocks present unimaginable accuracy, however value thousands of U.S. dollars. I wanted one thing in between, and salvation was discovered within the type of the oven-controlled crystal oscillator, invariably often known as an OCXO for historical reasons. With one in every of these, I may construct my very own clock for round US $200—and one which’s about 200 occasions as correct as a typical quartz clock.
Temperature adjustments are the most important supply of error in typical crystal oscillators. They trigger the quartz to increase or shrink, which alters its resonance frequency. One resolution is to trace the temperature and compensate for the changes in frequency. However it might be higher to not have the frequency change within the first place, and that is the place the OCXO is available in.
The printed circuit board [center] might be minimize into two items, with the timing-related parts mounted on the decrease part, and the management and show parts mounted on the higher part.James Provost
The OCXO retains the crystal at a continuing temperature. To keep away from the complexity of getting to each warmth and funky a crystal in response to ambient fluctuations, the crystal is stored heated near 80 °C or so, nicely above any environmental temperatures it’s more likely to expertise. Up to now, OCXOs had been energy hungry and ponderous or costly, however in the previous couple of years miniature variations have appeared which can be less expensive and draw means much less energy. The Raltron OCXO I selected for my clock prices $58, operates at 3.3 volts, and attracts 400 milliamperes in steady-state operation.
The OCXO resonates at 10 megahertz. In my clock, this sign is fed right into a 4-bit counter, which outputs a pulse each time it counts from 0000 to 1111 in binary, successfully dividing the 10-MHz sign by 16. This 625-kilohertz (kHz) sign then drives a {hardware} timer in an Arduino Nano microcontroller, which triggers a program interrupt each tenth of a second to replace the clock’s time base. (Full particulars on how the timing chain and software program work can be found in an accompanying submit on IEEE Spectrum’s web site , together with a invoice of supplies and printed circuit board recordsdata.) A rotary controller related on to the Nano helps you to set the time.
The Nano retains monitor of the time, advancing seconds, minutes, and hours, and it additionally drives the show. This show is created utilizing six Adafruit “CharliePlex FeatherWings,” that are 15 by 7 LED matrices with controllable brightness that are available in a wide range of colours. Every one is managed through the addressable I2C serial bus protocol. An issue arises as a result of a CharliePlex is hardwired to have solely one in every of two potential I2C addresses, making it unimaginable to deal with six clock digits individually on a single bus. My resolution was to make use of an I2C multiplexer, which takes incoming I2C knowledge and switches it between six separate buses.
The timing chain begins with the OCXO oscillator and its 10-megahertz sign and ends with the show being up to date as soon as each second. The timing sign synchronizes a {hardware} timer within the Nano microcontroller in order that it triggers an interrupt handler within the Nano’s software program 10 occasions a second. Consequently, you can also make many modifications or add new options through software program adjustments.James Provost
Utilizing a microcontroller—slightly than, say, discrete logic chips—simplified the design and permits for straightforward modification and growth. It’s trivial to tweak the software program to substitute your personal font design for the numbers, for instance, or modify the brightness of the show. Connector blocks for serial interfaces are immediately accessible on the Nano, that means you would use the clock as an timer or set off for another system.
For such a objective you would omit the show totally, lowering the clock’s measurement significantly (though you’ll have to switch the software program to override the startup verification of the show). The clock’s printed circuit board is designed in order that it may be minimize into two items, with the decrease third holding the microcontroller, OCXO, and different supporting electronics. The higher two thirds maintain the show and the rotary encoder. By including 4 headers and working two cables between the items to attach them, you’ll be able to prepare the boards to kind a variety of bodily configurations, supplying you with quite a lot of freedom in designing the shape issue of any enclosure you would possibly select to construct for the clock. Certainly, creating the PCB so this was potential was most likely probably the most difficult a part of the entire course of. However the ensuing {hardware} and software program flexibility of the ultimate design was price it.
The entire system is powered by way of the Nano’s USB-C port. USB-C was wanted to be able to present sufficient present, because the clock, OCXO, and show all collectively want greater than the 500-mA nominal most present of earlier USB ports. A battery backup related to this port is required to stop resets on account of energy loss—utilizing one of many fashionable coin-cell-based real-time backup clocks can be pointless on account of their relative inaccuracy.
And as for that aim of making an correct clock with an amazing bang for the buck, I cross-checked my OCXO’s output in circuit with an HP 53150A frequency counter. The result’s that the clock drifts not more than 0.00864 seconds per day, or lower than 3.15 seconds in a 12 months. In truth, its accuracy might be higher than that, however I’d reached the restrict of what I may measure with my frequency counter! I hope you’ll construct one in every of your personal—it takes only a few hours of soldering, and I feel you’ll agree it might be time nicely spent.