[time-nuts] Advise on building a DIY GPSDO?

Andrew Rodland andrew at cleverdomain.org
Sun Apr 17 00:50:40 EDT 2016


On Sun, Apr 3, 2016 at 6:04 PM, Nicolas Braud-Santoni
<nicolas at braud-santoni.eu> wrote:
> Hi,
>
> I've been slowly becoming a fellow timenut over the last few years,
>   though said nuttery had yet to go beyond adding some wiring to
>   get the PPS signal out of my GPS and into my NTPd.
>
>
> Lately, I have been looking into designing & building a home-brew
>   GPSDO (and my copy of TAoE 3rd ed. came in quite handy), but quite
>   a few questions came up:
>
> - Does it indeed make sense to build a GPSDO using an “ordinary”
>   high-quality oscillator? (as opposed to using a Ru standard)
>
>   It seems that decomissioned rubidium standards are large, rather
>   expensive (hundreds of €), consume lots of power and have
>   uncertain lifetime.

Depending on your definition of large and expensive, I'd say it's not
so bad. I've been able to get X72s and more recently SA.22cs off of
fleabay for between $100 and $150 (about 90 - 130 EUR at present
rates). They're pretty small, steady-state power draw is about 5
watts, and although the lifetime is a question, a good seller should
show you the diagnostic output including power-on hours and various
temperatures and voltages -- the one I trust does!

> - Are there recommendations people can make for not-too-expensive
>   VCOs to use in a GPSDO?
>
> - Are there GPS modules that people here can recommend?
>
>   I have been looking at the uBlox NEO-7 and the GNS TC6000GN-P1
>   GPS modules.  Both retail around 40€, and promise <100ns PPS jitter.
>   I would probably prefer the NEO-7, because uBlox makes more precise
>   PPS jitter claims for GPS, with 30ns RMS and 60ns for 99 percentile.

The uBlox ones are nice. I have one sitting around but I haven't
gotten around to writing a protocol decoder for it yet, so I'm using
an older Trimble Resolution T. If your goal is purely hobby and you
want to save some money, that might be a perfectly good option -- you
can find them for very cheap, and if your main aim is to build an NTP
server then anything better than the Trimble will be lost in the noise
anyway. Like the uBlox ones, the Trimble supports doing
survey-in/stationary mode for the best time stability.

> - While trying to design this on my own is fun and educational, are
>   there existing designs for DIY GPSDOs that I should look at?

I'm not making any great promises of educational value, but I've spent
a bunch of time building GPS-disciplined NTP servers on the Arduino
platform as a purely hobby thing and I do have a bit to share. I've
failed repeatedly to do a decent write-up of my work in blog form, but
I do have code and I'd be happy to answer questions about it.

First: https://github.com/arodland/Due-GPS-NTP-Server . This one is
newer, and it runs on the ARM-based Arduino Due (actually a clone
board called the Taijiuino that allows using the SAM3X's onboard
Ethernet MAC). It works with a Symmetricom rubidium oscillator and
either Trimble or SiRF GPS. It has a timing granularity of 32ns and
the NTP stdev as measured from my desktop is about 5 microseconds. It
also sends out statistics packets every second over UDP that I use to
make graphs, and has a serial CLI for tweaking the settings :)

Second: https://github.com/arodland/Arduino-GPS-NTP-Server . This is
the older version. I don't keep up with it anymore, it only supports
the SiRF GPS driver, it uses an FLL algorithm that I no longer think
is right, and it doesn't discipline an external oscillator, it just
does digital frequency synthesis on the Arduino's own 16MHz clock.
However there's some potentially interesting stuff in there in terms
of managing the timer interrupts, keeping time, and doing all of the
requisite math on an 8-bit chip without burning more cycles than we
have available, as well as hacking the Arduino Ethernet Shield to
support an interrupt-driven mode to allow better timestamping of
incoming packets. It has a timing granularity of 500ns and due to the
iffy performance of the WizNet ethernet adapter the NTP stdev is in
the 10-20 microsecond range (it was worse than that before I figured
out the interrupt trick).

> For reference, my use-case (beyond simply building it) is two-fold:
> - I want an accurate ref. clock for my local NTP setup.
> - I need a frequency reference for QRSS (low-power RF transmissions),
>   and getting a 8MHz reference out of the GPSDO would help a lot  :)

In that case you may want to forget the rubidiums that I mentioned and
go for a VCXO after all; my rubidiums use digital frequency synthesis,
and I understand that makes them unusable for radio work -- unless
you're just using them as a reference to lock some other, cleaner,
oscillator.


More information about the time-nuts mailing list