[time-nuts] First success with very simple, very low cost GPSDO

Chris Albertson albertson.chris at gmail.com
Fri Apr 11 05:06:37 UTC 2014

On Thu, Apr 10, 2014 at 6:47 PM, Charles Steinmetz <csteinmetz at yandex.com>wrote:

Here is my assumption:  You are a b=eginner at this precision time hobby
and lack a good reference oscillator so you decide to build this very
simple GPSDO as you first good frequency reference.    This is the intended

> You originally described a system that counts to 5M every second.  Tom and
> others pointed out that you do not need the complete 5M count, all you need
> is the remainder of a modulo count.  The question then is, how much of a
> remainder do you need to be sure that it spans all anticipated errors in
> both the PPS and the oscillator?

Yes this right.  I'm sure that under limited conditions I can get by
looking only at the remainder.  It is harder than was said because the
overflows per second rate is a non-interger but there are till only two
"flavors" of seconds:  Those with N overflows and those with N+1 overflows.

> Tom opined that 8 bits should be sufficient, based on some realistic
> assumptions regarding the anticipated errors in PPS placement and
> oscillator drift.  (Note that a 256 cycles per second error is 51 PPM at 5
> MHz.)  Brent said that he found 8 bits was not sufficient to track his OCXO
> from cold, so he went to 16 bits.  I questioned whether trying to track the
> OCXO from cold was a worthwhile exercise.

No, not from "cold" but the warmed up OCXO with a arbitrary voltage on it's
EFC pin.  (I assume you can not guess the best EFC every time)

> So:  If you can't count on anything, then you need to count every cycle.
>  (But wait -- if you can't count on anything, you can't count on your PPS
> being accurate, either.)  In the real world, you should be able to trust
> that any oscillator that is chosen for a GPSDO will free-run within 1 PPM
> when it is warmed up, and that your PPS will always be within 1 PPM, as
> well.  This determines how large your remainder needs to be.

But how do you let it "free run"  Do you disconnect the EFC pin using a
relay to open the connection to the DAC?  Or do you just output a mid-range
value, whatever voltage that might be.

> I agree with Tom that 8 bits should be plenty (with the caveat pointed out
> by Brent, that 8 bits may not be enough to track the OCXO from cold).  So,
> my suggestion was to wait until you CAN trust that the oscillator error is
> within your error budget before starting to discipline.

In the final developed system I would place a temperature sensor on
directly on the OCXO.

> As far as where to start the DAC, I'd be inclined to determine what EFC
> voltage puts the warmed-up oscillator within 1 PPM and store the
> corresponding DAC word for readout at boot time.  (I'm assuming here that
> any aspiring time nut has or can beg a counter good to 1PPM before building
> the GPSDO.  If not, see below.)  To account for long-term oscillator drift,
> you can update the DAC word in NV memory with the long-term average during
> locked operation.

So you are borrowing a 1PPM counter and using NV memory to avoid counting
overflows and a half dozen lines of code.

Or to say it another way.  If I leave those line of code in place the
Arduino IS a 1ppm counter.  In fact I had an LCD connected to the Arduino
and I diplayed the found every second.  I placed the LCD near m=by HP
counter and the matched.   I thought to myself "this $8 device is as good
as a 10MHz HP counter.

Maybe I leave in the overflow counting at first then once we get to locked
state I switch to looking only at the last 8 bits of the timer.  This
allows the GPSDO to bootstrap itself with not need for other test equipment.

> As far as disciplining the oscillator from cold (which I do not recommend
> for the reasons I discussed previously), you could do the same thing,
> either manually at construction/alignment time, or by counting the full 5M
> immediately at startup and zeroing the oscillator with a fast loop.  (This
> would also apply to the warmed-up DAC count referred to in the paragraph
> next above, if you do not have independent means to ascertain when the OCXO
> is on frequency.  In either case, you could make the "count every cycle"
> mode a manually-invoked calibration subroutine and use the more efficient
> and robust modulo count for normal operation.)

I think this is the conclusion I made above.  The fast lock count every
cycle mode works for any crystal, even a very poor one.  I can use it until
I deter the steady state then switch to a different mode.

I need to figure out how to best use the TIC capacitor voltage too.

> Best regards,
> Charles
> _______________________________________________
> 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.


Chris Albertson
Redondo Beach, California

More information about the Time-nuts_lists.febo.com mailing list