[time-nuts] Designing an embedded precision GPS time server
leo at leobodnar.com
Sun Oct 29 06:29:30 EDT 2017
> From: Nick Sayer <nsayer at kfu.com>
> I believe I’m going to start with one of my GPS module breakouts and an E70 XPlained development board. From a hardware perspective, I expect that to be reasonably close to what the final hardware will be (the one thing I would guess would change would be perhaps swapping out the PHY chip for one that’s capable of doing PHY level timestamping, if that’s necessary and possible).
Note that PTP/IEEE1588 compliant hardware and NTP use different points in the packet as reference timestamps. Timestamping transmitted packets in hardware is useless for NTP. I suspect you know that already.
> But my plan at the moment is to first try to get something that even answers the phone, see how terrible it is, and then see what has to be done to make it truly worthy.
You will find it trivial to get basic functionality working and reasonably challenging to get it to work reliably under heavy load and edge cases. "Heavy load" is not an abstract scenario since even on a lightly loaded network there is a probability of several clients requesting time simultaneously and network switch stacking NTP packets back to back.
If you are making an open source thing you might want to use Laureline NTP http://partiallystapled.com/pages/laureline-gps-ntp-server.html as a starting point or as a performance yardstick. I have never seen one so can't comment on how well it works but if done properly it should be reasonably solid and agile. I think the guy who designed it also sells them commercially but from what I can see the design is also available for others to use.
More information about the time-nuts