JackenHack

  • About
  • Computers
    • Macintosh
    • iOS
    • Raspberry Pi
    • Linux
  • Electronics
  • Projects
Home » Computers » Linux » Increase Pulse Width 1 PPS signal from GPSDO

Increase Pulse Width 1 PPS signal from GPSDO

January 28, 2016 by Jack Zimmermann 3 Comments

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.
trimble-gpsdoMy 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. pulse-increaserSo 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?

ntp-offsets-timekeeper-1 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

ntp-offsets-timekeeper2
broken-hab-supplies-raspberry-pi-gps-boardI 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.PCB of 1 PPS Pulse Extender

Filed Under: Linux, Raspberry Pi Tagged With: Linux, NTP, PPS, Raspberry Pi, Server

« Python Generators for System Administrators
Raspberry Pi 3 Overclocking »

Comments

  1. John Monsour says

    July 9, 2016 at 07:45 CEST

    Hi, I’m new to your site, thanks for the interesting entries. I am very much an amateur, but interested in precision timing circuitry. Also your comments on noise reduction are very instructive.

    In the pulse extender article you said “I also found a faster version of the main IC. The new IC is faster by a factor of at least x 10.” and there is a nice photo of the board, but what IC are you using?

    Thanks,
    John
    Los Angeles

    Reply
    • Jack Zimmermann says

      July 10, 2016 at 09:21 CEST

      Hi John!
      The IC is a 74HC123.

      Jacken

      Reply
  2. Jeffrey says

    October 27, 2016 at 04:50 CEST

    Hi ,Can i have a schematic of this pulse extender?thanks.
    Jeffrey
    Los Angeles

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Portrait of Jack Zimmermann I'm a Swedish computer old timer hacking away on computers since 1979. I'm a total Apple and Linux gear head. Right now, I'm really into electronics. [Read More]

Recent Posts

  • Atom Editor Platformio Hangs at startup endless restart – fixed
  • Hackintosh AMD Shutdown Problem with Fenvi FV-T919
  • Hackintosh Water Cooling Fan Problem
  • MiSTer FPGA Getting Arcade Cores To Use mra Files
  • Quartus Prime FPGA USB-Blaster Problems On Ubuntu 18.04

Categories

Ads

Copyright Jack Zimmermann © 2003–2021 Login
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Cookie settingsACCEPT
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

Non-necessary

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.

SAVE & ACCEPT