[Paulie] over on the EEVBlog forums picked up an inexpensive frequency counter on eBay and realized it was just a little bit off. As a result, he decided to build a frequency standard. His build wound up costing him about $3 and he shared the design and the software for it.
The hardware design is very simple: a TCXO (also from eBay), an ATMega8, a pushbutton, and a AA battery with DC to DC converter to power the whole thing. The software does all the work, providing frequencies from 10MHz down to a few hundred hertz (including some common audio test frequencies).
If you haven’t worked with a TCXO before, it is a crystal oscillator that includes a temperature compensation circuit to pull the crystal frequency up or down depending on temperature. Although crystal oscillators are pretty accurate already, adding this temperature compensation improves accuracy over the design temperature dramatically (typically, 10 to 40 times better than a naked crystal oscillator). If you want to learn more about TCXOs, here’s a good write-up.
A TCXO isn’t as good as an OCXO (where the first O stands for Oven). However, OCXOs cost more, are larger, and drain batteries (after all, it is running an oven). You can even hack your own OCXO, but it is going to cost more than $3.
If you want to see the real guts of one TCXO, check out the video.
19 thoughts on “The Three Dollar Frequency Standard”
I use Maxim’s TXCO type DS32kHz (price 7€) in my clock, and sometimes I compare it to another clock which uses GPS timebase. The error is about 4 sec/year, which is approximately 10^-7
Nice! but that’s really a longterm average. it’s interesting, but the question often is whether the oscillator has the same frequency at the height of summer as during the coldest of winter.
I kept track of it for more than a year, and the error increment was linear. I am more interested in two other performances – average error in other samples (i tested only one) and the influence of aging
I generally recommend having a look at your average electronic’s distributor’s stock. In this case, let’s talk about newark/farnell:
So if you’re not in the mood to pick an unknown-quality (yes, there are different quality bins for oscillators, and manufacturers test and sell the worse ones for cheap) oscillator, buying a new one for $3.30 does seem like a viable alternative. Of course, the ebay sourced, step-up powered, and self-assembled TCXO based reference does quite a bit more (and is a fun project), but it surely shouldn’t be considered to play in the same leagues as something put together from new, known-quality parts.
I’d have a bit of criticism, too, regarding the design: Using an ebay step-up DC/DC converter without very solid filtering of the supply voltage will introduce measurable noise in the clock signal, even if the low-pass (average) voltage of the DC/DC converter doesn’t change significantly under load. That’s a common problem with switch-mode power supplies. Now, noise in a frequency reference effectively becomes phase noise, which effectively reduces the accuracy of what the clock-using device sees. Hence, adding in a good analog low-pass in the power supply lines is a must.
Also, this really depends on the oscillator, but typically, these devices are made to drive capacitive loads in the order of 5-50pF, not 100pF + Atmega input pin capacitance. Over-loading the output will also reduce accuracy.
err he’s using it with 100nF, not 100pF, so that’s an additional three orders of magnitude.
That’s the power rail decoupling cap… Not the output load. The output put load is related to the parasitic + input pad capacitance etc
Shit, I was too stupid to properly read his schematic. Yes, these are unconnected. Sorry. Terrible schematic, though.
Found what I consider to be the datasheet of the RTXO230: http://www.raltron.com/products/pdfspecs/tcxo_rtx-230.pdf
yep, 10pF-15pF load. Not 100nF. This will be terribly regulated.
Apologies for diverging from the topic, but I cannot find anyone knowledgable about the topic to ask and you look like you know what your doing.
I’m trying to build a frequency counter, and the modulus prescaler I’m using says it can drive a 2pF output, or higher if you connect a resistor to ground (up to 4mA current output). I’m connecting it to a binary clock (SN54LV1612A) which has a ‘Ci’ of 1.8pF (dunno what that means). Does this fit the bill for connecting the output of the scaler to the input of the counter with a thin trace?
Well, that’s stolen my thunder. https://hackaday.io/project/6872-gps-disciplined-ocxo
I dunno what I’m doing wrong though. My build is going to cost me around a hundred bucks. I was going to sell them on Tindie for $175, but maybe that’s not realistic.
What bumped the price of your build by so much, the GPS unit? Perhaps you could trim cost with a NavSpark, since it has an Arduino-compatible microcontroller on it that you could potentially use for processing. I’m particular to the Glonass/GPS version since it can’t hurt to have access to two satellite networks: http://navspark.mybigcommerce.com/navspark-gl-arduino-compatible-development-board-with-gps-glonass/
Oh, I see. You aren’t replicating an OCXO, you have one in your project and then you’re adding discipline. That’s very nice, but it’s not going to come cheap I guess.
a sub 200$ GPSDO would in fact be pretty impressive. You’re definitely a few orders of magnitude more accurate, if you’re doing that right. I don’t see how your GPS module is outputting an oscillator, though, only a 1pulse-per-second signal. You seem to be using that do discipline your VCOCXO. There’s nothing wrong with that approach, but it means that you can only do adjustments once per second. If your control loop design is good, that’s not a problem, because after a few seconds, the drift will be very small, so that adjustments will be very minimal, and hence, clock frequency variance (aka. long-term phase noise).
How did you model the the control loop you’re building? How does the VCOCXO react? This is a pretty control loop theory centric thing, because you’re playing the competing control loop game. You will need to specify a design goal: Is it stationary accuracy, speed of correction, mitigation of oscillation? Coming from an old-school control loop theory, that’ll determine the amount of P, I and D in your PID controller, assuming that’s the architecture you’re going to chose (hint: it’s not necessarily the best one for a controller where there’s such a big gap between intervals of observation and intervals of opportunity to control).
It’s a work-in-progress. I haven’t actually completed the prototype build yet. The boards are at OSHPark being done right now. What I’ve done is breadboarded some of the components to test the subsystems and written the firmware in advance.
I have done PID before for my reflow oven controller(s), but at the moment the firmware doesn’t actually do PID. Instead, I have kind of an if/else tree that attempts to use small adjustments when the error is small and large adjustments when it’s not. It’s ad-hoc, but I’m hopeful that it’ll work out. We’ll see in a week(ish). If it’s too fiddly, then I’ll break out the PID.
In fact, it’s not 1 PPS, because 1 count either way at 10 MHz (I’m designing for 20 because it’s what I want, but I realize others will want 10) is only 100 ppb. I want to be inside of 20 ppb, so I need to keep a rolling window of 10 samples. I will claim a “lock” whenever the error is inside of 4 counts out of 200,000,000 or 2 counts out of 100,000,000.
The analog feedback section is a variation on a Connor Winfield application note. The only change I’m making is swapping out the AD5061 DAC because I need it to run on 3.3v and 16 bits of resolution is enough (instead of 18).
Al, were you nkt reading HaD last year?
It seems to me if you’re interested in an oven controlled crystal oscillator build that it’d be hard to improve on this kit: http://www.qrp-labs.com/ocxokit.html In fact I have been thinking about submitting this for the last week or two, I just never got around to it (working on my own projects). It’s inexpensive, cleverly designed, and has detailed build instructions.
The Si5351 phase noise leaves something to be desired, even when externally referenced. Plus this Si5351 article doesn’t really get into the subject of proper low noise power supply and interconnect/layout (the devil lives there). If you are going to do this properly, at least GPS discipline a high quality VCOCXO (e.g. a 10MHZ Isotemp module), and use a fully linear isolated supply with telecommunications-grade low noise linear regulators. If you need a variable frequent output, then use an Si571 (not the Si570, and not the Si5351). Use the high speed A-grade Si571 with LVDSoutput, divide the output to further reduce noise. Yes the Si5351 is cheap and can get son tiny breakout boards with them along with sample Arduino code. But in this case you get what you pay for.
the Ebay counter (picture) are pic or avr based, to me it’s not a professional measurement at start, it doesn’t have an tcxo / ocxo etc … based clk reference.
Mod this, and resolution will be better at start … for calibration i use an gps based clock source. around 15$.
You have precise hz counter for 35$ with 2.5 pmm clk .. ???
The project is good, cheaper solutions are sometimes good too.
Or, for similar price, you can source a DCXO with less than 1ppm. I think most consumer radios are all moving to DCXOs, they are smaller, take up less power and can be just as precise as a basic TCXO, but not near a monster oven controlled part.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)