[time-nuts] Re: Current-day GPS timing receivers

Attila Kinali attila at kinali.ch
Sun Feb 20 01:02:41 UTC 2022


On Fri, 18 Feb 2022 19:48:21 -0500
Bob kb8tq <kb8tq at n1k.org> wrote:

I would not be so negative about doing your own GPSDO.
While it is not something the unintiated can just simply conjure
out of thin air, it isn't difficult either...

> By far, the most likely thing to buy as part of your GPSDO design project is
> an atomic clock. Not an Rb mind you , but a properly working Cs or something 
> more exotic. ( like a maser ). The bill for them is way past (>10X)  the price of the
> GPSDO. 

Depends on what you are looking for. If you trust your GPS receiver to
do the right thing, than you only have to measure out to a day or so.
And for that, a decent Rb is good enough. Maybe get two or three for
a three/four cornered hat.

Sure, if I'd be thinking about selling a GPSDO as a commercial product,
then I'd have to measure it against a H-maser /and/ a Cs beam standard.
But for a hobbyist? A stable Rb vapor cell standard is good enough.
 

> On a GPSDO, there are no books. There are no magazine articles. The folks who 
> design GPSDO’s don’t talk about what’s inside. It’s not so much the individuals, 
> it’s how the companies operate. IP matters and it matters a lot. Practical stuff gets
> buried as a result. You are off on a “invent it from scratch” expedition (more or less).

While the companies who build GPSDO mostly keep quiet about what they are
doing, the scientific community doesn't. There are plenty of publications
that deal with the inner working of GPSDO. But you will have to piece it
together on your own, as there is no step-by-step guide available.

If you start with a commercial receiver module, like most hobbyist would,
then a GPSDO becomes a control theoretical problem. I.e., how to design
the control loop to get most out of the stability of the local oscillator,
while using the noisy signal of GPS receiver as a long term reference.
Early GPSDO and what most of the hobby GPSDO that I mentioned do, is a
simple PI or PID loop. If you are a little bit more fancy, you can do a
PII²D loop that compensates for the drift of the local oscillator.
A bit more fancy would be using some adaptive control system, like
the often misunderstood Kalman filter and compensate for the environmental
effects on the local oscillator.

So far, none of this that make a good GPSDO is any secret. It is even well
documented and there are plenty of textbook that explain how to do it.
But, it's not the stuff one ever sees unless one specializes into control
systems (or has a keen interest in them). Another difficulty is that one
needs to model the behaviour of an OCXO. Especially one needs to do
system identification on it and find the proper model to then build the
adaptive control loop on it. Again, the data needed for this is easily
available, but it is not something one casually stumbles upon unless
one specifically goes looking. And it's this combination of two areas
of specialized knowledge that make it difficult for the casual engineer
in a company to build a GPSDO that performs well.

But then, this is time-nuts. Not only do we have plenty of people who
know these things and can point someone interested to the right literature,
the average time-nuts are also the people who spend an exorbitant time in
reading up on all the intricate details of this and that (it's a hobby after
all!) and will be ableo to gather all the knowledge one needs to do it correctly.

So, my advice to anyone who wants to build a GPSDO is the following:

There are 3 key areas that are difficult in a GPSDO design:
1) The receiver and the measurement of the PPS pulse
2) The oscillator and controlling its freequency
3) The control loop binding the above together

For the receiver, I recommend using an available GNSS receiver module.
Don't go the route of running your own (unless you have lots of time).
Measuring the PPS pulse relative to the local oscillator is a bit
tricky, but not too difficult. You only need better than 0.5ns resolution,
which can be done easily in various ways. The most instructive would probably
be to build your own time-to-amplitude converter. Bruce Griffiths published
a nice design years ago that works well. The PICTIC-2 has another one that
gives decent results. And then there is Nick Sayer's super simple one.
(Challenge for those who are so inclined: Come up with a way to do what
Bruce's design does, but only using a single, low voltage power supply.
Yes, it is possible and quite easy once you see it. Hint: Use modern opamps
instead of discrete transistors)

The oscillator is, for our needs, usually an OCXO. Most people use it's EFC
to control the frequency. Which in turn requires something around 20-24bit
of DAC resolution. While not difficult, it's not easy either. The easiest
way to achieve this is to use a 16-20bit DAC and use a 2nd-4th order sigma-
delta modulator to get the remaining bits. I would not go higher than 4th
order unless you are confident in your skills in designing the modulator
correctly. I also recommend using either a DAC with a load data word pin
to have the correct timing or use a CMOS switch to achieve the same.
If you don't use a CMOS switch, make sure you use a DAC with low glitch power.
Alternatively, it's possible to fix the output of the OCXO (bind the EFC
to GND) and use DDS to control the frequency going into the system. There
are multiple ways to do that, starting fromt he obvious way to use the DDS
to generate the frequency, over the FE-405 like PLL based offset generator,
to a full fledged multi-stage direct offset generator like Rick Karlquist did.
Advantage of the latter approach is that you can use any frequency source,
even those that cannot be tuned, like an Rb standard.

For the control loop, I would start with a simple PI loop, extend it to a
PII², then start adding a model that predicts the oscillators drift and
environmental parameters. Start with an as simple model as you can think
of (e.g. linear temperature dependence) and refine from there. Hint: do
not add too many model paramters. The more you have, the harder they get
to estimate. And with that, the chances that the control loop becomes 
unstable increase. Also verify after each change that the control loop
is still stable under varying conditions.

And that's about what you need to know about how to design a GPSDO.
Sounds easy, doesn't it? ;-)

			Attila Kinali
-- 
Science is made up of so many things that appear obvious 
after they are explained. -- Pardot Kynes




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