Using the Soekris computers for timestamping

Poul-Henning Kamp
Revision 2002-11-30


Søren Kristensen from Soekris has produced an excellent series of small singleboard computers. These computers are primarily designed for use in embedded networking applications, but due to the general purpose nature of the design and the components chosen, they also make excellent NTP servers, if you feed them right.

The CPU used is the "Elan520" microcontroller from AMD. I don't particularly trust AMDs webmasters to hold their contents static, but at least for now, you can find more about it here.

The data on this page was obtained using a setup which was designed to eliminate all sources of errors and only measure the ability of the Elan CPU to timestamp an external signal.

The Setup

The timestamping is done using the internal general purpose counters which get their input from the system clock crystal input. Normally this is connected to a 33.3 MHz quartz crystal, but to eliminate the temperature dependency of the clock, a 33.33333... MHz signal derived using a ICS 521 PLL chip, which again gets its input from a SRS PRS10 Rubidium frequency standard.

The PPS input signal is delivered by a Motorola UT+ Oncore GPS receiver, which delivers a 1Hz signal with 38nsec stddev and a +/- 55nsec short term jitter. To further eliminate clock drift from the setup, the PPS signal is also used to slave the rubidium unit.

Since the 16 bit counters runs at a quarter of the system clock rate, the period is 120 nanoseconds (4/33.333MHz), and with a plus/minus one count precision we should be able to timestamp to around a quarter of a microsecond.


This first plot shows 2% of the total 512519 timestamps in this dataset. Apart from a low frequency of outliers, the data seems to fit nicely with our expected plus/minus 120nsec.

In order to determine if there are any systematic or periodic phenomena, we need to statistically analyze the timestamps. This plot shows the modified allan variance. While this is not exactly the kind of analysis it is designed for, it does show a convincingly straight line which is indicative of nothing but random jitter impacting the signal.

A classical 65536 point FFT over the timestamps does not reveal any strong signals, but it does show a few spikes with short periods but pretty irrelevant amplitudes.

Finally, a histogram and accumulative histogram starts to show some interesting detail. If we cut off 1% of the samples in the high and low ends, the remaining 98% of the samples are inside a band 260 nanoseconds wide ([-118..142]) which is in excellent agreement with our expectations.

It is pretty obvious that there is significant structure in the histogram but this will not have any practical impact if the input signal is carefully designed.


I have earlier complained that no good and cheap hardware were available which could timestamp a PPS signal reliably and precisely but now the Soekris computer has proven that it does indeed deliver just that: With a pricetag of approx USD220 (single unit including enclosure) this is the best hardware you can find for a stratum 1 NTP server.


John Hay originally suggested the method for using two syntonous counters for timestamping.

Valid HTML 3.2!