SatPulse: server-oriented alternative to gpsd for chrony

James Clark <[email protected]> Sun, 12 Apr 2026 07:08:56 +0200
Newsgroups gmane.comp.time.chrony.user
Message-ID <CANz3_EZD_G+ZJSHwBGghezFvMxnmHvL4QqtyPxhgMvbPry105A@mail.gmail.com>
--000000000000b59ecd064f3c5d16
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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=E2=80=99s 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

[1] https://satpulse.net
[2]
https://satpulse.net/2026/04/11/design-of-satpulse-compared-with-gpsd.html
[3]
https://satpulse.net/2026/04/06/building-an-ntp-server-on-a-raspberry-pi-wi=
th-chrony-or-ntpd-rs.html
[4]
https://satpulse.net/2026/04/01/using-satpulse-for-timing-without-a-phc.htm=
l
[5]
https://satpulse.net/2026/04/01/a-tour-of-the-gps-modules-supported-by-satp=
ulse.html
[6] https://satpulse.net/2026/01/29/improving-gps-configuration.html
[7] https://github.com/jclark/satpulse/releases
[8] https://satpulse.net/setup/satpulse-install.html#install-from-source
[9] https://github.com/jclark/satpulse/issues
[10] https://github.com/jclark/satpulse/discussions/248

--000000000000b59ecd064f3c5d16
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I recently made the first pre-release of SatPulse 0.2, whi=
ch I hope will be of interest to chrony users who are running their own Str=
atum-1 NTP servers.<div>I have been working on SatPulse for several years; =
with this release,=C2=A0 I think it now has a feature set that makes it a v=
iable alternative to gpsd for timing and server-oriented use.<div><br></div=
><div>It has a website [1]. The documentation there is for SatPulse 0.1, wh=
ich was focused on the PTP use case, where the GPS PPS signal is wired to a=
n SDP on a PHC. This works with chrony also and gives a easy way to create =
a combined NTP/PTP server.</div><div><br></div><div>SatPulse 0.2 provides a=
 refclock SOCK implementation that can be driven by serial message timing.=
=C2=A0This is intended to be used in combination with a refclock PPS.</div>=
<div>At this point, the information relating to 0.2 is in the man pages and=
 in a series of blog posts:</div><div><br></div><div>- Design of SatPulse c=
ompared with GPSd [2]</div><div>-=C2=A0Building an NTP server on a Raspberr=
y Pi with chrony or ntpd-rs [3]</div><div>- Using SatPulse for timing witho=
ut a PHC [4]</div><div>-=C2=A0A tour of the GPS modules supported by SatPul=
se 0.2 [5]</div><div>-=C2=A0Improving SatPulse=E2=80=99s support for GPS co=
nfiguration [6]</div><div><br></div><div>I think the single biggest advanta=
ge over GPSd is that it provides deep support for GPS receiver configuratio=
n; this is particularly oriented towards the needs of timing applications.<=
/div><div><br></div><div>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.</div><div>I have tested the G=
PS functionality on a couple of dozen different GPS modules, but the serial=
 timing functionality is very new and has had little testing compared to th=
e PHC-based timing support.</div><div><br></div><div>SatPulse has reached t=
he point where it is ready for some more widespread testing and use. Please=
 open a GitHub issue [9] if you run into any problems.</div><div>I also cre=
ated a GitHub discussion thread [10] where you can ask questions and share =
experiences about the 0.2 pre-release.</div><div><br></div><div>James</div>=
<div><div><br></div><div>[1] <a href=3D"https://satpulse.net">https://satpu=
lse.net</a></div></div><div>[2]=C2=A0<a href=3D"https://satpulse.net/2026/0=
4/11/design-of-satpulse-compared-with-gpsd.html">https://satpulse.net/2026/=
04/11/design-of-satpulse-compared-with-gpsd.html</a></div><div>[3]=C2=A0<a =
href=3D"https://satpulse.net/2026/04/06/building-an-ntp-server-on-a-raspber=
ry-pi-with-chrony-or-ntpd-rs.html">https://satpulse.net/2026/04/06/building=
-an-ntp-server-on-a-raspberry-pi-with-chrony-or-ntpd-rs.html</a></div><div>=
[4]=C2=A0<a href=3D"https://satpulse.net/2026/04/01/using-satpulse-for-timi=
ng-without-a-phc.html">https://satpulse.net/2026/04/01/using-satpulse-for-t=
iming-without-a-phc.html</a></div><div>[5]=C2=A0<a href=3D"https://satpulse=
.net/2026/04/01/a-tour-of-the-gps-modules-supported-by-satpulse.html">https=
://satpulse.net/2026/04/01/a-tour-of-the-gps-modules-supported-by-satpulse.=
html</a></div><div>[6]=C2=A0<a href=3D"https://satpulse.net/2026/01/29/impr=
oving-gps-configuration.html">https://satpulse.net/2026/01/29/improving-gps=
-configuration.html</a></div><div>[7]=C2=A0<a href=3D"https://github.com/jc=
lark/satpulse/releases">https://github.com/jclark/satpulse/releases</a></di=
v><div>[8]=C2=A0<a href=3D"https://satpulse.net/setup/satpulse-install.html=
#install-from-source">https://satpulse.net/setup/satpulse-install.html#inst=
all-from-source</a></div><div>[9]=C2=A0<a href=3D"https://github.com/jclark=
/satpulse/issues">https://github.com/jclark/satpulse/issues</a></div><div>[=
10]=C2=A0<a href=3D"https://github.com/jclark/satpulse/discussions/248">htt=
ps://github.com/jclark/satpulse/discussions/248</a></div></div></div>

--000000000000b59ecd064f3c5d16--

-- 
To unsubscribe email chrony-users-request-kWFZVVI9zxvPqho9SqqRMmD2FQJk+8+b@public.gmane.org 
with "unsubscribe" in the subject.
For help email chrony-users-request-kWFZVVI9zxvPqho9SqqRMmD2FQJk+8+b@public.gmane.org 
with "help" in the subject.
Trouble?  Email [email protected]