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 radio waves from GPS satellites, or broadcast stations. However I needed a clock that may hold glorious time with out counting on the surface world—actually one thing higher than the time offered by the quartz crystal oscillator utilized in your typical digital clock or microcontroller, which may drift by about 1.7 seconds per day, or over 10 minutes in the middle of a yr.
In fact, I may purchase an atomic clock—that’s, one with a rubidium oscillator inside, of the kind used onboard GPS satellites. (Not the type that’s marketed as an “atomic clock” however one that really depends on selecting up radio time indicators.) Rubidium clocks present unimaginable accuracy, however price 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 generally known as an OCXO for historical reasons. With considered one of these, I may construct my very own clock for round US $200—and one which’s about 200 instances as correct as a typical quartz clock.
Temperature adjustments are the largest supply of error in standard crystal oscillators. They trigger the quartz to develop or shrink, which alters its resonance frequency. One resolution is to trace the temperature and compensate for the changes in frequency. However it will 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 lower 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 relentless temperature. To keep away from the complexity of getting to each warmth and funky a crystal in response to ambient fluctuations, the crystal is saved heated near 80 °C or so, nicely above any environmental temperatures it’s prone to expertise. Previously, OCXOs have been energy hungry and hulking or costly, however in the previous couple of years miniature variations have appeared which are less expensive and draw approach 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 put up 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 allows 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 a wide range of colours. Every one is managed by way of the addressable I2C serial bus protocol. An issue arises as a result of a CharliePlex is hardwired to have solely considered one of two potential I2C addresses, making it inconceivable to handle 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 instances a second. Consequently, you can also make many modifications or add new options by way of software program adjustments.James Provost
Utilizing a microcontroller—moderately than, say, discrete logic chips—simplified the design and permits for simple modification and enlargement. It’s trivial to tweak the software program to substitute your individual font design for the numbers, for instance, or modify the brightness of the show. Connector blocks for serial interfaces are immediately out there on the Nano, that means you might use the clock as an timer or set off for another gadget.
For such a goal you might omit the show totally, decreasing the clock’s measurement significantly (though you’ll have to change 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 lower 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 operating two cables between the items to attach them, you may organize the boards to kind a variety of bodily configurations, providing you with numerous freedom in designing the shape issue of any enclosure you may select to construct for the clock. Certainly, creating the PCB so this was potential was in all probability 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 gadget is powered by 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 forestall resets attributable to energy loss—utilizing one of many fashionable coin-cell-based real-time backup clocks can be pointless attributable to their relative inaccuracy.
And as for that objective of making an correct clock with an important 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 yr. The truth is, 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 considered one of your individual—it takes just some hours of soldering, and I believe you’ll agree it will be time nicely spent.