[time-nuts] RasberryPi, timing and GPS receivers
Michael Tharp
gxti at partiallystapled.com
Tue Oct 16 23:01:38 UTC 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