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?
Image updated with results from the Raspberry Pi 3
As you can see, most of the values stay in the ±1 µs, but there are values, mostly scattered below 0 that shows up.
Here’s a comparison to my second Raspberry Pi 2 Stratum-1 server, this one using a U-Blox Neo-8Q
I changed over from a Raspberry Pi B+ to a Raspberry Pi (as you can see in the diagram above) and I’m using a board from HAB Supplies. My board came with a broken off led light for power and a dead transistor for driving the pulse LED, but the GPS works. I contacted their support but got no reply. So I’ll do the repairs myself when I get the LEDs. I get these weird spikes now and then but haven’t been able to trace it down yet. But I’m working on it. The battery holder is great because I can take the noisy 5V output from the Raspberry Pi and use a low noise 3.3V DC regulator. Need to remove the jumper and solder the + and – to the battery holder, and I’m up and running. I can feed a much cleaner DC signal into the U-Blox GPS unit. Does it make any difference? Haven’t a clue. But I will know in a couple of days when I get the data.
1PPS square wave extender
I powered the extender unit with a switching DC power supply at first, but could directly see that I would get an improvement using a DC to DC regulator instead. And the numbers got better. But I decided to try making a PCB with SMD components, making the path for the signal as short as possible. I also found a faster version of the main IC. The new IC is faster by a factor of at least x 10. I also added an extremely low-noise DC to DC converter ADP151 3.3V on the PCB. We’re talking 9 µVRMS noise level. I’ve also added over-volt protection on the output to protect the Raspberry Pi if something should go wrong. I’ll put up a post on the performance with the new device.