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.

Reply via email to