GPS Referenced Stable Signal Source
Here
is a simple 24MHz GPS-referenced test oscillator built around a low
cost GPS module. It's useful for calibrating frequency counters and
other test equipment around my workbench. An internal backup battery,
charger and battery monitor makes it portable, and ensures it keeps
going even when the primary power fails.

Introduction
For
many years, I’ve needed a good frequency reference. Initially, I needed
a method to check the frequency I was using while operating my amateur
radio transceiver. Later on, I used them regularly for calibrating my
frequency counters and other pieces of test equipment.
The
most commonly used frequency references in the past have been based on
crystal oscillators. A widely used early example was the 100kHz
calibration oscillators found in many older amateur radio transceivers.
These would produce a raster of signals across the HF band at 100kHz
intervals to allow a receiver or transceiver dial to be calibrated to
within about 1kHz at frequencies up to 30MHz. Later developments led to
higher frequency reference crystal oscillators at 1MHz, 5MHz and 10MHz.
Changes
in temperatures are the primary source of error in crystal oscillators.
Where improved accuracy is required, temperature compensated crystal
oscillators can be used. Even better stability can be achieved by
selecting a high stability crystal and placing the crystal oscillator
inside an “oven”. This is a compact box surrounding the oscillator
which is heated to a controlled temperature typically around 75C. By
placing this oven inside another similar oven, it is possible to
further improve stability.
Many years ago, long before the
arrival of GPS and colour-burst, one enthusiast even went so far as to
buried his high stability crystal oscillator and its oven in his
garden. He believed that this would further reduce the change in
ambient temperature affecting the crystal’s long term stability. He
claimed he could even measure the tiny frequency jumps as the crystal
gradually aged which occurred, he said, as microscopically tiny
fragments of the quartz crystal were lost from its edges over time due
to the crystal’s mechanical vibration at the oscillator frequency. It’s
fair to say he was very devoted to the topic.

Table 1 : Frequency references and their typical stability
Other
frequency reference methods over the years have included calibration
against high power stable transmitters such as WWV in Colorado, USA or
Rugby, in the UK. Later, it became common to use the colour-burst
crystal oscillator inside a PAL analog television. This crystal
oscillator was accurately phase-referenced via the television broadcast
back to a studio-based rubidium or cesium frequency reference. More
recently, second-hand rubidium reference oscillators from legacy
cellular systems have also become widely available at reasonable cost
used as frequency references by both hobbyists and test labs.
GPS-based Frequency References
These
days, almost all telecommunications systems use the GPS satellite
navigation system as a frequency and time reference. GPS signals are
ultra-stable to permit the location of the GPS receivers on the ground
to be accurately determined. Like many others, the swiftly reducing
cost of GPS receiver modules encouraged me to explore this approach. I
developed a design using an ATmega328 and a compact temperature
controlled crystal oscillator which was referenced back to a
GPS-derived clock source. It worked well, but it was not easy to
duplicate so I never bothered to document it here.
Recent
improvements in low cost GPS modules has made the construction of an
accurate frequency reference even easier, and cheaper. I purchased one
of these modules recently from one of many Chinese sources. The
frequency reference was so simple, I had it all built and running in an
hour or so. It’s been so useful, I’ll describe this simple GPS
frequency reference here.
GPS Modules and Outputs
Low
cost GPS receiver modules have been available for a number of years.
Most of these produce a 1PPS (pulse per second) output. Depending on
the module, these pulses can be extremely accurate. With care, these
pulses can be used to create and maintain an accurate frequency
reference.
One method uses the incoming 1PPS signal to
measure the frequency of a crystal oscillator. Any error in the
measured frequency can be used to adjust the frequency of this
oscillator and minimize the error. Over time, such oscillators can be
very accurate.
Such an approach required the construction of
a separate oscillator. Beginning in 2014, low cost GPS modules began to
appear using chip sets which could output a more extensive range of RF
clock signals. These are generated from an internal numerically
controlled oscillator (NCO) referenced to incoming GPS timing.
Specifically,
modules with “u-Blox” brand “series 5” chipsets could produce digital
output clocks with frequencies of up to 1kHz. Subsequent u-Blox “series
6T” and, more importantly, “series 7” chips could produce 0.25Hz-10MHz
clock outputs. Theoretically, these output signals can be generated
with GPS-based precision.

Figure
1 : This is how the GPS module looks - Very much the same as almost
any GPS receiver module. The specifications reveal its ability to
do the job - The use of the u-Blox series 7 chipset
Some very detailed tests by Russian hobbyists found
that the internal NCO used to generate these output clock signals could
only produce useful low jitter GPS-referenced clocks at certain clock
speeds (i.e. output frequencies). Specifically, only outputs generated
at 24.0, 16.0, 12.0, 8.0, 6.0, 4.0, 3.0 and 2.0 MHz could provide
anything like a suitable signal. You will note that the three highest
frequencies are actually outside the u-Blox specification but they
still work successfully.
Unfortunately, the most widely used
reference frequency of 10.0MHz is not in this set. As we’ll see, this
is not really a problem for most of us.
In order to get this output from the GPS module, the u-Blox module’s “Timepulse”
feature must be correctly configured with the vendor’s software. Once
that’s done, the system usefully outputs an accurate, stable (well, for
me) output reference with relatively low jitter.
As soon as
I read a couple of the many references on the web about this, I
purchased a cheap u-Blox series 7 module from one of my usual Chinese
vendors (Thanks, Banggood!). When I finally got hold of it on one of my
trips out of the Middle East where I live (You can read more
details on that topic here, some background
about the postal services in this part of the world), I promptly made
the required minor modification to it (See below), mounted the GPS
module onto a spare scrap of prototyping board, added an output buffer
and battery backup power supply, and packaged in in a printed PLA box
to make a lightweight GPS referenced frequency test source running at
24 MHz.
Technical Description
The schematic of my system is shown in Figure 2.
Figure 2 : Schematic of the GPS-based signal source (See text for details of the various modules)
It’s
clearly quite simple. The entire assembly is either powered from the
USB serial port (during programming) or via the charger and battery.
The 24MHz CMOS-level signal generated by the GPS module is buffered via
IC1 (74HC14) to provide both a DC-coupled logic level output and an
AC-coupled output.
The assembly is normally connected to a
small external 5V charger from an old cellular phone. This charges the
1400mAh single cell 4.2V Li-Ion battery via a Chinese-sourced TP4056
charger module (Figure 3) at currents of up to 1A. When the battery is
charged, the TP4056 changes to “float charge” mode to maintain the
battery’s charge. LEDs on this module indicate on the charger status,
showing red while charging and blue when charge is complete.

Figure 3 : The TP4056 Li-Ion charger module is easy to use and comes complete with "charging" (red) and "charge-complete" (blue) LEDs mounted on the PCB (Just visible at the top corner)
The
battery powers the GPS module and buffer. When the charger is
disconnected or the primary power fails, the GPS frequency reference
reverts automatically to the internal battery. The frequency reference
can therefore be used independently of primary power.

While not shown in this schematic, a further module was added across the battery to monitor its operation and status. This Li-Ion single cell battery monitor is described elsewhere
on this website. It allows continuous monitoring of the cell capacity
and voltage, and provides an immediate alerting when recharging is
required.
Initial programming of the GPS
module’s “timepulse” feature is handled via J1, the GPS module’s serial
interface. This port is connected to a PC or laptop via an RS232 TTL
serial to USB interface cable assembly.

Figure 4 : Typical USB-serial cable assembly
The
PC or laptop runs the u-Blox utility software to initially configure
the module correctly. After this has been done, a one-off task, the
port is unlikely to be used again unless a change in output frequency
is required.
Note: When connecting the external RS232 TTL
serial to USB interface module to the GPS reference, connect the +5V
and ground lines first. Then connect the RxD and TxD lines. This
ensures the GPS module is not exposed to 5V-level voltages on the TxD
and RxD port pins while still powered from the 3.8V battery, prior to
power being applied to the device from the PC or laptop. It’s almost
certain that internal protection on the GPS module prevents any damage
due to this possibility, but I try to be careful.
Construction
The first step is to add a jumper wire to the GPS module (See diagram below) because the manufactu
rer
does not provide the “Timepulse” output on the module. However, the
signal is present on the module on the “PPS” LED via a 1k resistor.
Then the module can be mounted on the prototyping board and connected to the buffer, serial connector and power supply.
I
used a high capacity single cell Li-Ion battery which was obtained from
a disassembled compact laptop multi-cell Li-Ion battery. This cell was
placed in the base of a 3D-printed PLA enclosure and the various
modules were mounted on top using hot-glue. Crude, but effective. The
GPS module, buffer and other components were mounted on a prototyping
board which was similarly mounted on the battery.

The assembly was placed inside a 3D-printed enclosure.


Figure
5 : The 3D-printed enclosure consisted of a printed cover and lower
box. The holes on the right-hand side are for the two output signals
which appear on two pairs of 0.1" header pins mounted on the
prototyping board. The hole on the left is for the serial port. The
hole on the back panel is for the TP4056 USB charging socket.
A
simple front panel label (Figure 5) was printed, covered with clear
plastic film and mounted on the 3D-printed enclosure panel. The label
on the right is for the front facing edge of the enclosure. It fits in
a printed cutout on that surface.
Figure 5 : Front panel label for the GPS referenced test oscillator
Programming
All of the details can be found here and/or here and/or here. Little point in my repeating all of that excellent material. Information on the GPS module itself can be found here. Finally, the uBlox configuration software utility can be downloaded from here.
Accuracy of this GPR-based Frequency Reference
The
GPS module used in this design and the output arrangement is clearly
not going to produce a signal with the stability and accuracy of a GPS
disciplined oscillator (GPSDO). A GPSDO uses GPS signals to accurately
control the frequency of a crystal or rubidium oscillator.
The
GPS signal can reach stability limits of as great as 1 part in 10^13
when averaged for 10,000 seconds or more. The problem is that the
GPS signal is (relatively) noisy for short periods, so the accuracy of
that signal can be as poor as 1 part in 10^7 over a one second
period. That’s where the "controlled oscillator " part comes in. Its
output is controlled by the long term averaged GPS signal
(hence “disciplined”) and, of course, that output must clean and free
from jitter. This brief description of a GSPDO is hardly one that fits
the oscillators built into these new low cost GPS modules, and I am not
attempting to do long term averaging of the GPS signal in this design.
It’s not difficult or expensive to build your own GPSDO, but it is (a
little) more expensive and time-consuming than the design described
here.
So, how accurate is this signal source described here?
The u-Blox 7 GPS receiver specification gives the time pulse accuracy
as 30 nanoseconds RMS. This suggests an accuracy of 30 parts in 10^12.
But, as we’ve noted, that’s unlikely given the properties of the GPS
signal. At best, perhaps 1 part in 10^9 might be a reasonable figure,
bearing in mind it may be degraded periodically to as little as 1 part
in 10^7 as noted earlier but, in use, the output would likely be the
result of some operator averaging over, probably at least a few minutes
i.e say 100 seconds minimum.
Also, the module generates the
“timepulse” output using on an internal 48MHz NCO. The phase of the
output signal is internally adjusted to achieve the required average
number of clock pulses to reach the programmed timepulse output. If an
integer division ratio is chosen for the output (e.g. 2 or 3 or 4 i.e.
24MHz, 16MHz or 12MHz outputs) then phase adjustment jitter is
minimized and accuracy improved. This appears to be the case.
So
my estimate as to its accuracy (in the absence of suitable measurement
tools) is something like 1 x 10-8 or about 1Hz at 100MHz. In other
words, good enough for me.
Results
This
has proven to be a simple and effective frequency reference. While
24MHz is not a commonly used frequency for such applications, it is
proven to be perfectly suitable for use around here given my limited
range of test equipment.
Downloads:
GPS frequency signal source 3D-printed case: The STL-format file is available here
Front panel artwork is available here
Want to go back to the main page? Click
here to
return directly.