[time-nuts] I've designed a GPSDO, but how "good" is it?

Attila Kinali attila at kinali.ch
Sun Aug 16 17:27:43 EDT 2015

On Sun, 16 Aug 2015 11:47:23 -0700
Nick Sayer via time-nuts <time-nuts at febo.com> wrote:

> I’ve designed and make and sell a GPSDO on Tindie 
> (https://hackaday.io/ project/6872-gps-disciplined-tcxo). It’s brand new - 
> I’ve sold a handful of them so far. So as to make this post not *entirely* 
> self-serving, what I would like is some further guidance on how I can better 
> characterize its performance.
> The GPS reference is a 1 pps signal (It’s the Adafruit Ultimate GPS module - 
> a PA6H). The manufacturer claims an accuracy of ±10 ns, but that's accuracy 
> relative to the true start of the GPS second. They don’t make any claim for 
> stability.

And under the assumption that you have a high gain antenna high up on a roof
with negligible multipath. As reference, have a look at [1], that's a
LEA6-T against a Rb vapor cell, with a antenna on the building roof.
And of course, the LEA6-T in position hold mode.

Said Jackson once reportet that he got a PPS jitter of 1us by placing
a patch antenna in a window. He got something much lower (sorry, don't
remember the number) after averaging the position for a week.

Given that you have only a position gps receiver, and not a timing module.
Which on top of it is optimized for small size with an integrated antenna,
i'd say that those 10ns are overly optimistic.

> The oscillator itself (Connor Winfield DOT050V 10 MHz) has a short-term 
> (though they don’t say how short that term is) stability of 1 ppb. The 
> absolute accuracy of it is (I assume) irrelevant, because it’s a VCTCXO and 
> the control voltage is steered by GPS feedback.

Having a look at the datasheet, i'd say that 1e-9 at 1s.
Which sounds reasonable as a manufacturer spec (i.e. as the maximum
expected instability at 1s)

> The feedback loop takes samples over a 100 second period. That gives me
> an error sample with a granularity of 1 ppb.

I guess you are running the timer at 10MHz then?

>  I keep a rolling sample window
> of 10 samples to get an error count over 1000 seconds. I've kept track of 
> both of these values for extended periods (days) as well as logging the DAC 
> value (the number that's proportional to the control voltage). The 1000 
> second sample window error averages zero, and it almost never exceeds ±7 
> (every once in a while if I physically move it, it will show a momentary 
> error glitch, but that shows up in the short term feedback sampling too). 
> The 100 second samples are almost all 0 or ±1, with an occasional ±2 showing > up. As I said before, if I bonk the oscillator, it may briefly show a ±6 or 
> so for one sample.

This sounds that your somewhere the resolution is too low. 
>From what you have written above, i'd say that the TIC resolution is at
least borderline, if not too low. For the DAC: You have a 16bit DAC, with
Vref at 3.3V and a tuning range of >+/-10ppm between 0.3 and 3.0V.. that
makes a step size of >0.373ppb per LSB. With the manufacturer spec of the
VCTCXO of <1ppb at 1s I would say your DAC resolution is too low as well.

The +/-6 excursions are most likely from shock to the oscillator.
See [2] for details on that.

> If I pit two of them against each other on a scope and take a time lapse
> video (http://www.youtube.com/watch?v=9HkeCI90i44), you can see that they
> stay mostly locked with occasional periods of drift. I sort of assume that
> that represents periods where the two GPS receivers disagree as they decide
> differently how to select among the available satellites.

What is the time period of that video?

If I counted correctly, you have a maximum offset of 350ns. For GPSDOs
that are close to each other, that's a quite considerable shift of phase.
Are you sure your software implements a phase locked loop and not a
frequency locked loop? Or is your antenna position extremely bad?

> I've been saying out loud that the oscillator is ±1 ppb from GPS over the
> 1000 second window. I know of Allan variance, but I don't have anything else
> handy I can use for comparison. I also can't really afford to send one off
> for testing to a proper lab. 

With not having any other reference, you can use the EFC voltage
and its relation to frequency as a guestimator for the ADEV. But
be aware that the EFC is not 100% linear and the instability of your
voltage reference etc pp affects this value as well. There was some
discussion about this technique a couple of years ago (IIRC 2008)
on this mailinglist. But i cannot find at the moment... it had some
weird name too... Maybe someone with a better long term memory can
chip in on that.

> In looking at 
> http://tf.nist.gov/general/pdf/2297.pdf, it suggests that my results are 
> relatively poor compared to what a GPSDO can achieve (more like 10^-12 
> rather than 10^-9), but I assume that they’re able to use a higher frequency 
> GPS reference than just 1 PPS (and they’re a lot pricier).

Uhmm.. these GPSDOs are in an other league than yours.

You have a position GPS receiver with an antenna, not only in a poor
position (ie not on the roof), but surrounded by electronics that highly
interfere with it. When you talk about time-nuts quality standards, then
the CFLs in your lab are a major source of error if you do not properly
shield everything. The antennas that you see in Figure 6 are a 
Spectracom Ant-32, Trimble Zephyr and the last one looks like a Meinberg.
The first and the second are most likely conical spiral antennas while
the Zephyr is a planar spiral antenna, not unlike the Pinwheel antenna
from Novatel.

These timing/calibration grade GPSDOs use OCXOs or even DOCXOs as local
oscillators, with a much lower tuning range than your TCXO can hope to
have. Devices like the Trimble Thunderbolt use this OCXO as the reference
oscillator for the receiver as well, and thus achieve a quite high phase
offset measurement resolution without the need of an expensive TIC.

They also always work in position hold mode, where the position is first
averaged for a day or two, and then used as constant in the equations,
such that only time is left as unknown, which results in a lower uncertainty.

> What else can I do to try and characterize the performance? If mine is
> performing far more poorly than the same price ($175) can buy elsewhere,
> then what am I doing wrong?

Oh.. many things! :-D

If you really want to go down the time-nutty road, you will have to invest
a bit into this. First, get yourself one of the rubidium frequency standards
and also one of trimble/nortel/... GPSDOs. You will need a proper reference
for measurements. Probably the easiest way to do these measurements is
by using DMTD. Use one of your TXCOs as mixing frequency generator and
mix down both your reference clock and your GPSDOs clock into something
in the audio range (probably 1-5kHz would be a good choice). Feed this
into a good soundcard and measure the phase difference between both
signals. Have a look at [3] for how to do that overall (yes, the focus
there is on phase noise, but ADEV is just a different calculation
as the last step)

Then, get a timing GPS modul. The LEA6-T's are not that expensive,
if you buy 30-50 at a time (i am not allowed to give you a number,
but it's a nice fraction of the single piece price you get on the
u-blox homepage, contact u-blox for that). 

Next is, choose a proper OCXO as your refernce. The cheapest that you
can buy new i know about is the Connor Winfield DOCxxxV which you can
get at digikey for 30 to 70 USD (depeding on stability). Next up are the
Abracon AOCY1 series, which you can get for about 90USD and up.
(all in single pieces).

Then you need to measure the phase offset of the PPS as precisely
as possible. I would either use time-to-voltage converter like
the PICTIC-II [4] or an excited oscillator plus ADC like the system
Panek proposed [5] (there were a couple of small discussions on this,
look especially for commments by Bruce Griffiths).

As for the DAC, i'd either use two 16bit DACs with external refernece
(more stable) coupled with an R-2R network, where you use one DAC
to set the range, fix it, and use only the other to change the EFC value.

Alternatively, you can use something like [6], for which Ulrich Bangert
got quite good results.

Oh.. and get rid of the LTC2050. The AD5061 already has an output buffer.
You don't need an additional device that adds noise. If you have the
need for an opamp, use a low noise one instead of a low drift one.
For a GPSDO you care about stability at most in the hours region, maybe
a day, if your local oscillator is very good. Everything beyond that
will be caught by the feedback loop anyways.

You will also need to take more care in your electronics design.
Your current schematics have lots of points that will degrade your
stability. First and foremost, split all analog parts from the digital
parts. Provide a properly stabilized, low noise supply to the analog
parts, that is independent of the digital voltage supply.

And last but not least, have a look at various GPSDO designs.
There are many other, but i think James Millers [7] and Brooks Sheras [8]
designs are classics.


			Attila Kinali

[1] "GPS-based Timing - Considerations with u-blox 6 GPS receivers"

[2] "Quarth Crystal Resonator and Oscillator Tutorial", by Jon Vig
there are many versions, you can find a collection of them on

[3] http://attila.kinali.ch/phase_noise_measurement/

[4] "Simple PICTIC 250ps time interval counter", by Richard H McCorkle, 2013

[5] "Time-Interval Measurement Based on SAW Filter Excitation", by Petr Panek, 2007

[6] "DC-accurate, 32bit DAC achieves 32-bit resolution", by Stephen Woodward, 2008

[7] "10MHz Simple GPSDO", by James Miller, 2007

[8] "A GPS based Frequency Standard", by Brooks Shera, 1998

I must not become metastable. 
Metastability is the mind-killer.
Metastability is the little-death that brings total obliteration.
I will face my metastability. 
I will permit it to pass over me and through me. 
And when it has gone past I will turn the inner eye to see its path. 
Where the metastability has gone there will be nothing. Only I will remain.

More information about the time-nuts mailing list