[time-nuts] looking for low-power system for gps ntp timekeeping

Dennis Ferguson dennis.c.ferguson at gmail.com
Sun Jun 30 20:43:40 UTC 2013


On 30 Jun, 2013, at 08:50 , David J Taylor <david-taylor at blueyonder.co.uk> wrote:
> From: Attila Kinali
> []
> Oh.. and if you want to go the linux way and use a Raspberry Pi.. just dont!
> Use a Beaglebone black instead. It uses less power and is easier to deal with.
> Not to mention that you dont have all those USB related problems.
> []
> Attila Kinali
> ===========================================
> 
> I've built three Raspberry Pi stratum-1 NTP servers:
> 
> http://www.satsignal.eu/ntp/Raspberry-Pi-NTP.html
> 
> one of which has both a Wi-Fi dongle and a DVB TV receiver stick attached, and on none of these have I seen any USB problems.  I'm using a 5.25 V 2A power supply from ModMyPi.com.  You can view the timekeeping accuracy here:
> 
> http://www.satsignal.eu/mrtg/performance_ntp.php

You aren't necessarily showing the part where the Raspberry Pi is a bit
weak, though.  How well do clients which receive their time via the
USB ethernet interface do?

The Beaglebone Black has about three advantages going for it in this
application:

- The ARM CPU is about twice as fast as the Raspberry Pi's for about
  the same power consumption (I'm not sure this is a particular advantage
  for NTP, however, so I won't count it).

- The Ethernet MAC core is built into the SOIC, and tightly coupled to it,
  so packet traffic doesn't have to sit waiting for the USB scheduler to
  get around to doing something with it.

- The Ethernet MAC core also provides fairly good, complete IEEE1588
  support.  This is not of direct use to NTP but does provide a way to
  calibrate the software timestamps which NTP produces and consumes to
  better match when the packets arrive from and are transmitted by the actual
  hardware.  I.e. you can measure the typical difference between hardware
  and software inbound timestamps (measuring interrupt latency), and hardware
  and software outbound timestamps (measuring the processing time spent in the
  outbound network stack) for PTP UDP packets, and then use these results
  to improve the symmetry of software timestamps for NTP UDP packets.  There
  is no way I know of to measure this without the IEEE 1588 support (and the
  outbound number in particular is often big enough to deserve correction).

- The TI SOIC also has a hardware timestamp capture peripheral (look for
  eCap in the documentation) which can capture PPS edge times with
  single-digit-nanosecond accuracy.  That's a couple of orders of magnitude
  better than interrupt sampling and eliminates the jitter of the latter
  measurements.

For a $5-$10 difference in price for the board I think these are worth it.
The RPI makes a fine, low-power replacement for Intel hardware for this,
but the Beaglebone Black has the raw material to do significantly better at
this than either of them.  The only problem with the Beaglebone is that it
is not as popular as the Raspberry Pi, so making use of the former is going
to require one to do more work on one's own to take advantage of it.

Dennis Ferguson


More information about the Time-nuts_lists.febo.com mailing list