[time-nuts] RasberryPi, timing and GPS receivers

Michael Tharp gxti at partiallystapled.com
Tue Oct 16 19:01:38 EDT 2012

On 10/16/2012 06:28 PM, shaun at impsec.net wrote:
> I'm a junior time-nut at best but it looks to me like jitter from the
> USB Ethernet is acceptably low, based on ntpq -p anyway:

It's a minor problem at worst. There are many worse conflating factors 
and NTP adjusts very slowly anyway to deal with receiving time over the 
internet. Supporting a more precise protocol like PTP, or even better 
CERN's White Rabbit extensions to it, is another matter and at that 
point you're using all custom hardware including switches. Not good for 
the bank account.

That said, I have considered a project almost identical to what
George is describing -- a very simple Linux-powered board that consumes 
negligible power and whose sole purpose in life is to run a NTP server 
from GPS. My focus was on doing it from scratch as a single PCB (except 
the GPS module, for now), but it seems the choices for easily sourceable 
Linux-capable microprocessors that are in 1mm BGA, let alone non-BGA, 
can be counted on one hand. AM1707 was the chip that I would use for the 
"off the shelf microprocessor" approach.

It may actually be more effective -- and cool -- to use a FPGA and 
implement a microprocessor inside that instead! I have booted linux on a 
ORPSoC soft processor, but that was on a $300 dev board. Scaling it down 
to a cheap single-board computer would be challenging but not 
unthinkable. That particular SoC requires quite a lot of FPGA resources 
so something else would be required to avoid needing a $30 FPGA.

But my current plans, not fully baked nor on any sort of schedule, 
involve neither linux nor a conventional ntpd. I'm designing a low-cost 
GPSDO around an ARM microcontroller that keeps its own time and is 
capable of acting as a "dumb" NTP server -- it would respond to requests 
from clients but would not receive time from other nodes. The loop would 
be stabilized solely by GPS although the loop algorithms will probably 
be adopted from NTPns because they are quite similar to what the GPSDO 
itself needs to do. I was originally planning to only support an 
ovenized oscillator as the LO, but it would also be possible to use a 
tunable TXCO or perhaps a small OCXO that could reside on the board and 
not take up much space or power. Connect 3 of these to the network and 
you've got a great stratum 1 pool.

Right now I have a prototype GPSDO working although the loop algorithm 
is amateurish. I've been putting off working on it for a few weeks now, 
I need to sit down and study NTPns so I can implement a similar 
algorithm. The current one would be good enough for NTP but does not yet 
track time of day. The network components are not in the prototype, but 
I have written some sample code into another project that does have 
ethernet and it seems to work, so putting the two pieces together should 
result in a great NTP server.

Oh dear, now I've written quite a lot and probably raised some eyebrows. 
Better quit while I'm behind.

Happy ticking,
-- m. tharp

More information about the time-nuts mailing list