Greetings nuts,
All this recent NTP discussion has me thinking about a dedicated NTP
server again. The usual solution is to use commodity hardware of some
persuasion (PC, mini-itx or even ARM) running ntpd, but I'm thinking we
can do better. The only reason a full ntpd is needed is for its software
PLLs that measure and compensate for deficiencies in the local
oscillator. But if that local oscillator is replaced by a disciplined
10MHz clock, and a coincident pulse-per-second and NMEA from the GPSDO
fed in, then a reasonably fitted microcontroller should do the trick.
I happen to have a Ethernet-enabled widget I put together for another
project as a kind of drop-in module, built on a PIC18F66J60 which has a
built-in 10mbit Ethernet controller. The problem with it seems to be
relatively poor and unpredictable packet servicing latency. Usually
pings are 1.02ms but with some significant deviation. I imagine a lot of
the deficiencies with this arrangement come from the vendor-supplied IP
stack, which is not latency-optimized, but also the 10mbit link
contributes some "quantization" type problems. Microchip also makes a
100mbit-capable standalone controller, ENC624J600. I'd probably use that
and pair it with any 72MHz ARM microcontroller. The micro would be
clocked by a (multiplied) 10MHz disciplined input and the
pulse-per-second would come in on a "input capture" channel that can
timestamp the pulse relative to a local counter. And since ntp is such a
simple protocol, it should be pretty easy to write a appropriate ntp
server routine that just hands out the time from GPS, including leap
second indications.
Thoughts? Has it been done before, preferably with open source? I'd love
to make it myself but I have to finish the GPSDO first :-)
-- m. tharp
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.