NTP Server Extreme accuracy for under $200 Using SI5351C

When you make your own NTP server, you probably spend a lot of time trying to get it as accurate and stable as possible. To get good results, you need to connect your server to a good time reference, like an atomic clock, GPS or a GPSDO to get the PPS (Pulse Per Second) to sync your server with the reference clock. In both Linux and BSD, there is kernel support to slave the very inaccurate CPU clock crystal to the PPS signal, continually adjusting the frequency, because the crystals of computers continuously drift due to temperature and barometric pressure differences. So most of the work is to get a crappy crystal to behave. What if you just jumped over that step, so the CPU clock gets synchronized with the same lab reference that the PPS signal uses, using a SI5351C Clock Generator? Read on to see a simple way of doing it and get an extremely accurate NTP server for under $200. ...

April 12, 2017

Raspberry Pi Stratum-1 NTP Server Statistics

After becoming a full-fledged time-nut (I’m compiling a new Linux kernel on my second NTP server as we speak), I have started to use the statistics that I usually install on a server just to keep a check on it. Sure, when installing something like MRTG, it’s great to see if something is clogging the system, but mostly, it’s unused. But when working with an NTP server a lot of factors start to make a difference. The temperature of the processor (the whole computer actually, mostly due to crystal drift), the load of the CPU’s, etc. ...

April 12, 2016

Increase Pulse Width 1 PPS signal from GPSDO

Update: You can download the Eagle PCB files for the PPS Pulse Width Extender here. The PCB is made to fit the Hammond 1455C802BK enclosure. I have two Stratum-1 NTP servers using Raspberry Pi 2’s as servers. But the two setups are entirely different. My primary NTP Stratum-1 server is available at ntp.jacken.se, but it is also in the .se pool of ntp.org. It’s a Raspberry Pi 2 I use a Raspberry Pi 3 that I have connected a U-Blox Neo-7 GPS receiver. But I’m not using the 1 PPS signal coming out of the U-Blox. I have a Trimble GPSDO that I bought from eBay. The unit has two 10 MHz lab reference outputs and one 1 PPS output. But after measuring the signal coming out from the GPSDO, I realized that the timing speed for the seconds “Tick” was only 10 µsec which is way to fast for the Raspberry Pi to pick up as an interrupt on one of the GPIO pins. So I built a pulse extender, making the pulse around 250 milliseconds instead. And now the Raspberry Pi picks up the pulse without problems. Some GPSDO units can set the pulse width by programming the unit via a serial port, but I can’t find that feature on this unit (which is poorly documented and was OEM made for some other manufacturer), so I had to do it with hardware. So how does it look when crunching the numbers on it? ...

January 28, 2016

Raspberry Pi NTP Server LCD Status Display

The last couple of weeks I’ve been busy building a Raspberry Pi 2 Raspberry Pi 3 connected to my Trimble GPSDO using the 1 PPS output. The Trimble unit synchronizes with the atomic clocks onboard the GPS satellites, and the precision is fantastic! I bought the GPSDO to get a 10 MHz lab reference for my measure equipment, but after reading an article about Time-Nuts, people obsessed with measuring time as accurately as possible, and one of my friends showed me pictures of their new Stratum-1 NTP server rack he helped design, I was hooked. ...

January 12, 2016