Correct timing is one thing that’s at all times been of curiosity to me. As of late we rely closely on time delivered to us over the Web, by means of radio waves from GPS satellites, or broadcast stations. However I needed a clock that will preserve 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 might drift by about 1.7 seconds per day, or over 10 minutes in the midst of a yr.
In fact, I might 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 truly depends on choosing up radio time alerts.) Rubidium clocks present unbelievable accuracy, however value 1000’s 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 called an OCXO for historic causes. With one among these, I might construct my very own clock for round US $200—and one which’s about 200 occasions as correct as a typical quartz clock.
Temperature modifications are the most important supply of error in typical crystal oscillators. They trigger the quartz to broaden or shrink, which alters its resonance frequency. One resolution is to trace the temperature and compensate for the modifications in frequency. However it could 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] will 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 stored heated near 80 °C or so, properly above any environmental temperatures it’s more likely to expertise. Up to now, OCXOs have been energy hungry and hulking or costly, however in the previous few 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 linked on to the Nano enables you to set the time.
The Nano retains observe 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. Each 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 one among two potential I2C addresses, making it not possible 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 occasions a second. Consequently, you may make many modifications or add new options by way of software program modifications.James Provost
Utilizing a microcontroller—somewhat than, say, discrete logic chips—simplified the design and permits for straightforward modification and enlargement. 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 out there on the Nano, that means you might use the clock as an timer or set off for another system.
For such a function you might omit the show solely, decreasing the clock’s dimension 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 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 working two cables between the items to attach them, you may prepare the boards to type a variety of bodily configurations, supplying you with loads 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 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 system is powered by means of the Nano’s USB-C port. USB-C was wanted so as 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 linked to this port is required to stop resets on account of energy loss—utilizing one of many common coin-cell-based real-time backup clocks could be pointless on account of 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. In truth, its accuracy might be higher than that, however I’d reached the restrict of what I might measure with my frequency counter! I hope you’ll construct one among your personal—it takes just some hours of soldering, and I believe you’ll agree it could be time properly spent.