Which GPS Raspberry Pi hat for stratum 1 server?

My current Stratum 1 server is a Raspberry Pi connected with a Garmin 18x LVC GPS receiver. This is a general-purpose GPS receiver which I previously used with a normal x86 server. The good thing is that it has a long cable, which makes it possible to mount the antenna outside, but I now want to replace it with a genuine GPS hat on the raspberry.

Has anyone here experience with good GPS hats? PPS accuracy is important obviously. Are there any GPS hats with an RTC backup clock? The Raspberry isn’t shipped with a clock chip and at startup, it defaults to January 1st, 1970, until the GPS clock has synchronized. It would be nice to start with a plausible time, rather than jump some decades each time the device is restarted.

1 Like

I have one GPS Recv. without RTC - didn’t test it yet. It’s a µBlox Neo-6M IIRC.
This one have an µBlox M8 with internal RTC
https://store.uputronics.com/index.php?route=product/product&product_id=81

If you just want to save your current dat / time for bootup, take a look at the Debian package “fake-hwclock”. It saves the current date on shutdown / reboot to a file and setup the clock on startup with it.

Another GPS HAT with RTC:


I just bought one along with a Pi 4 kit from element14, but found it interferes with the official case (lid cannot be closed), so have not booted the assembly up yet.

Thanks for the recommendations.

Saving the previous time at shutdown unfortunately won’t work. It is mostly to prevent losing time when power is lost. I have now had a few occasions where the power was lost to both the Pi and the router. After startup the PPS signal was the first signal available to synchronize causing the chronyd daemon to fix on January 1st 1970, even though the NMEA GPS time and later the connected external NTP servers said otherwise. The daemon refused resynchronization with a message that the step to the correct time was too large, effectively marking the good servers as bad, and the bad internal software clock + PPS as good. :woozy_face:

My first idea was to switch to a model like the Adafruit with the antenna built-in, but when I checked the specs the sensitivity is -165 dBm whereas my current external antenna has a sensitivity of -185 dBm. So I’ll probably have to go with an external antenna version anyway, because where I plan to mount the device, my current GPS is just capable of fixing on enough satellites.

The Adafruit seems in that regard the most promising one as the datasheet mentions a minimum of 7 years RTC function on battery without external power. The Uputronics mentions an optional battery in the data sheet, but a supercap in the product description.

Time to do some more research before making the final decision. Thanks for your input so far!

Or just add an RTC to your Pi.
You can get some boards for around 7$ or 5€ (on amazon.de). They are plug’n’play.

There is no room for an RTC board anymore. I currently already use a serial board on top of the pi to connect the GPS to.

Chrony’s suggestion is:

5.5. What if my computer does not have an RTC or backup battery?

In this case you can still use the -s option to set the system clock to the last modification time of the drift file, which should correspond to the system time when chronyd was previously stopped.

Not sure how often chrony updates the driftfile, but I guess it’s more often than just at (clean) shutdown.

Thanks for the hint. I didn’t know this -s option. It looks like my drift file is updated every hour.

1 Like