[time-nuts] An embedded NTP server

Michael Tharp gxti at partiallystapled.com
Thu Dec 27 06:41:25 UTC 2012

On 12/26/2012 12:01 PM, Chris Albertson wrote:
> The VXCO quality hardly matters for an NTP server.   As long as it
> does not gain out loose more then 1 uSecond per second.  In other
> words one part per million is fine for NTP.  The goal is not to
> produce a 10MHz GDPDO.  Clients using this server over the Ethernet
> are happy to keep time ti 1 millisecond.
> Most (almost all) NTP servers use a TTL can oscillator.

Indeed, it's just a chip VCXO. Not much of an additional cost, and it 
can be disciplined in hardware. In a PC, the main oscillator is not 
tunable so the kernel has to emulate a tunable clock by tweaking the 
numbers on the way out.

Now that I have the disciplining algorithm implemented I immediately 
discovered a problem -- and it's not my hardware. The receiver I assumed 
was a UT+ is actually a R1121N1145, which doesn't support position hold. 
But even worse, the PPS seems to jump forward by precisely 1ms every 
16-20s and sticks that way. This probably explains the mediocre jitter 
of 0.3-0.6ms in the NTP results I posted on the 25th. With enough 
smoothing I can probably make it work, but in the meantime I will switch 
to using the Trimble receiver which I know works well. My goal with this 
project was always to support as many receivers as possible but the 
100mil pitch header on the Oncore is much more convenient so that's 
where I started.

The good news is that the disciplining algorithm I lifted from my 
previous GPSDO project works quite well, and I have the gritty details 
of measuring the PPS worked out. If I can get the Trimble working 
tomorrow I might have much better results soon, otherwise I'm traveling 
for a few days so it'll have to wait until the new year.

-- m. tharp

More information about the time-nuts mailing list