Have you ever started a project, run into an issue, started a new project to solve the issue, and completely forgot about the original project? [Andy] went down a rabbit hole of needing a tool to calibrate an MCU oscillator, but not having an accurate way to measure frequency. Most people would just buy a frequency counter and be done with it, but [Andy] decided to build his own.
The Nanocounter is an accurate, open source frequency counter that uses an Android phone as its display. It’s based on a high accuracy temperature compensated crystal oscillator (TCXO) fed into a phase locked loop (PLL) to create a high frequency, accurate reference clock.
This reference clock, along with the signal to be measured, are sent into a Xilinx FPGA which uses a method called equal precision measurement to determine the frequency. A STM32F072 microcontroller uses a SPI interface to get this data out of the FPGA, and controls the whole system. Finally, a cheap HC-06 Bluetooth module facilitates communication with an Android device.
The project achieves the goal of frequency counting, though [Andy] doesn’t remember what project sparked the idea to build it. (Classic yak shaving!) But the result is a great read of a detailed writeup, and you can watch a video of the Nanocounter in action after the break. That’s a win in our book.
The RTL-SDR dongle is a real workhorse for radio hacking. However, the 28.8 MHz oscillator onboard isn’t as stable as you might wish. It is fine for a lot of applications and, considering the price, you shouldn’t complain. However, there are some cases where you need a more stable reference frequency.
[Craig] wanted a stable solution and immediately thought of a TCXO (Temperature Compensated “Xtal” Oscillator). The problem is, finding these at 28.8 MHz is difficult and, if you can find them, they are relatively expensive. He decided to make an alternate oscillator using an easier-to-find 19.2 MHz crystal.
Several of us got Cheerson CX-10 mini quadcopters last year. We even bought some more to hand out as Christmas gifts. If you haven’t seen them, they are diminutive little flyers about the size of an English muffin. Thee’s no denying they are fun to fly around the house, and they do annoy the dogs.
However, like all cute toys, you eventually get bored just buzzing the dogs and cats. [JustforFun Media TK] decided that his needed a facelift, so he converted it into a paper airplane. This isn’t the paper airplane you folded up in school, either. This is a slick-looking jet aircraft.
[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.
A rubidium standard, or rubidium atomic clock, is a high accuracy frequency and time standard, usually accurate to within a few parts in 1011. This is still several orders of magnitude less than some of the more accurate standards – for example the NIST-F1 has an uncertainty of 5×10-16 (It is expected to neither gain nor lose a second in nearly 100 million years) and the more recent NIST-F2 has an uncertainty of 1×10-16 (It is expected to neither gain nor lose a second in nearly 300 million years). But the Rb standard is comparatively inexpensive, compact, and widely used in TV stations, Mobile phone base stations and GPS systems and is considered as a secondary standard.
The obvious way of checking would be to use another source with a higher accuracy, such as a caesium clock and do a phase comparison. Since that was not possible, he decided to use NIST’s time/frequency service, broadcasting on 60 kHz – WWVB. He did this because almost 30 years ago, he had built a receiver for WWVB which had since been running continuously in a corner of his shop, with only a minor adjustment since it was built.
His idea was to count and accumulate the phase ‘slips’ generated by comparing the output of the WWVB receiver with the output of the Rb standard using a digital phase comparator. The accuracy of the standard would be calculated as the derivative of N (number of slips) over time. The circuit is a quadrature mixer: it subtracts the frequency of one input from the other and outputs the difference frequency. The phase information is conveyed in the duty cycle of the pulses coming from the two phase comparators. The pulses are integrated and converted to digital logic level by low-pass filter/Schmitt trigger circuits. The quadrature-phased outputs are connected to the stepper motor driver which converts logic level inputs to bi-directional currents in the motor windings. The logic circuit is bread-boarded and along with the motor driver, housed in a computer hard drive enclosure which already had the power supply available.
If you have an old “Racal-Dana 199x” frequency counter or similar 10 MHz internally referenced gear with a poor tolerance “standard quartz crystal oscillator” or bit better “temperature compensated crystal oscillator” (TCXO) you could upgrade to a high stability timebase “oven controlled crystal oscillator” (OCXO) for under $25. [Gerry Sweeney] shares his design and fabrication instructions for a DIY OCXO circuit he made for his Racal-Dana frequency counter. We have seen [Gerry] perform a similar upgrade to his HP 53151A, however, this circuit is more generic and can be lashed up on a small section of solderable perf board.
Oven controlled oscillators keep the crystal at a stable temperature which in turn improves frequency stability. Depending on where you’re starting, adding an OCXO could improve your frequency tolerance by 1 to 3 orders of magnitude. Sure, this isn’t as good as a rubidium frequency standard build like we have seen in the past, but as [Gerry] states it is nice to have a transportable standalone frequency counter that doesn’t have to be plugged into his rubidium frequency standard.
[Gerry’s] instructions, schematics and datasheets can be used to upgrade any lab gear which depends on a simple 10 MHz reference (crystal or TXCO). He purchased the OCXO off eBay for about $20 — it might be very old, yet we are assured they get more stable with age. Many OCXO’s require 5 V, 12 V or 24 V so your gear needs to accommodate the correct voltage and current load. To calibrate the OCXO you need a temperature stable variable voltage reference that can be adjusted from 1 to 4 volts. The MAX6198A he had on hand fit the bill at 5 ppm/°C temperature coefficient. Also of importance was to keep the voltage reference and trim pot just above the oven for added temperature stability as well as removing any heat transfer through the mounting screw.
You can watch the video and get more details after the break.
Macetech’s ChronoDot is a Real Time Clock module for projects requiring highly accurate time keeping and measurement. The ChronoDot uses the DS3231 chip, which features a TCXO to compensate for variations in temperature which affect normal oscillators, like the ones in most microcontrollers. The DS3231 uses simple I2C commands and registers for storing and retrieving time, but also features a variable output that goes all the way down to 1.000 hz for low power, interrupt style timekeeping applications. With the provided watch battery, the ChronoDot can keep time in idle mode for up to 8 years.
Normally the ChronoDot comes mostly assembled, requiring you to only solder on the watch battery. However, due to a manufacturing mistake, Macetech is selling a version with the header pins on the wrong side they call the ChronoDoh. This module is currently nearly half off the regular price of $14.99, which makes it a great low cost addition to a project. Macetech has sent us a couple of these modules to demonstrate how functional they still are.