[time-nuts] I've designed a GPSDO, but how "good" is it?
nsayer at kfu.com
Sun Aug 16 19:54:08 EDT 2015
> On Aug 16, 2015, at 2:27 PM, Attila Kinali <attila at kinali.ch> wrote:
> 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
> 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 , 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.
Not so much. I have one of these: https://www.adafruit.com/products/960, and the board comes standard with a U.FL jack that you can use with a pigtail to connect whatever you like.
> 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?
Yes. When I began, I started with a 20 MHz design, but discovered (thankfully before I got too deep) that the ATMel controllers won’t clock that fast at 3.3 volts.
>> 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.
Yeah, I figured that. I try and avoid doing that as much as possible. :) Since the goal is a lab standard, I think it’s ok to assume it’s not going to move.
> See  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?
The firmware is at: https://github.com/nsayer/GPS-disciplined-OXCO
I’d be hard pressed to see how it’s anything other than an FLL. There’s no phase comparator. I’m counting how many system clock cycles happen between PPS rising edges. That’s it.
> Or is your antenna position extremely bad?
It’s hard for me to characterize your expectations, however when I made those videos only one of the units had the benefit of the external antenna, as I only (at the moment) have one. And even if I had more than one, it doesn’t sound anything like as good an antenna as you outlined above.
>> 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.
And that’s fine. I’m not pretending to be more than I am, or at least I’m trying hard not to.
I aimed for 1 ppb. The questions I have largely are centered around whether I actually got there or not, and whether what I came up with is worth what it costs.
> 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  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).
I actually started out with one of those in the design, but it’s short term stability is 1 ppb - no better or worse than the part I’m using. So I ditched the extra high-current power supply hassles and went with the TCXO instead.
> 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  or an excited oscillator plus ADC like the system
> Panek proposed  (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 , 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.
I wonder why Connor Winfield included one in their application note.
> 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  and Brooks Sheras 
> designs are classics.
> Attila Kinali
>  "GPS-based Timing - Considerations with u-blox 6 GPS receivers"
>  "Quarth Crystal Resonator and Oscillator Tutorial", by Jon Vig
> there are many versions, you can find a collection of them on
>  http://attila.kinali.ch/phase_noise_measurement/
>  "Simple PICTIC 250ps time interval counter", by Richard H McCorkle, 2013
>  "Time-Interval Measurement Based on SAW Filter Excitation", by Petr Panek, 2007
>  "DC-accurate, 32bit DAC achieves 32-bit resolution", by Stephen Woodward, 2008
>  "10MHz Simple GPSDO", by James Miller, 2007
>  "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.
> time-nuts mailing list -- time-nuts at febo.com
> To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> and follow the instructions there.
More information about the time-nuts