I recently made the first pre-release of SatPulse 0.2, which I hope will be of interest to chrony users who are running their own Stratum-1 NTP servers.
I have been working on SatPulse for several years; with this release, I think it now has a feature set that makes it a viable alternative to gpsd for timing and server-oriented use.
It has a website [1]. The documentation there is for SatPulse 0.1, which was focused on the PTP use case, where the GPS PPS signal is wired to an SDP on a PHC. This works with chrony also and gives a easy way to create a combined NTP/PTP server.
SatPulse 0.2 provides a refclock SOCK implementation that can be driven by serial message timing. This is intended to be used in combination with a refclock PPS.
At this point, the information relating to 0.2 is in the man pages and in a series of blog posts:
- Design of SatPulse compared with GPSd [2]
- Building an NTP server on a Raspberry Pi with chrony or ntpd-rs [3]
- Using SatPulse for timing without a PHC [4]
- A tour of the GPS modules supported by SatPulse 0.2 [5]
- Improving SatPulse’s support for GPS configuration [6]
I think the single biggest advantage over GPSd is that it provides deep support for GPS receiver configuration; this is particularly oriented towards the needs of timing applications.
The pre-release can be downloaded from GitHub [7]. There are .deb and .rpm packages available. You can alternatively build it from the source [8], which is written in Go.
I have tested the GPS functionality on a couple of dozen different GPS modules, but the serial timing functionality is very new and has had little testing compared to the PHC-based timing support.
SatPulse has reached the point where it is ready for some more widespread testing and use. Please open a GitHub issue [9] if you run into any problems.
I also created a GitHub discussion thread [10] where you can ask questions and share experiences about the 0.2 pre-release.
James