Re: SatPulse: server-oriented alternative to gpsd for chrony

James Clark <[email protected]> Tue, 14 Apr 2026 04:25:07 +0200
Newsgroups gmane.comp.time.chrony.user
Message-ID <CANz3_EbO69FKRf98s3tp2kVp0fOUDBZLajGgxyqRS25cV7RthA@mail.gmail.com>
--0000000000006d6db7064f624f3f
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Mon, Apr 13, 2026 at 10:54=E2=80=AFAM Miroslav Lichvar <mlichvar@redhat.=
com>
wrote:

> A feature I'm missing in gpsd is the PPS sawtooth correction
> (TIM-TP). I see some instances in the satpulse source code, but is
> that information currently only collected or actually applied to the
> PHC adjustments?
>

Yes, it is.  It is not hugely noticeable with an F9T (because the sawtooth
amplitude is small), but it does make a significant difference with an M8T.

Embarassingly, I had the sign wrong for a while. When I fixed that, it made
quite a noticeable difference to the M8T:

https://github.com/jclark/satpulse/discussions/163#discussioncomment-156561=
48

If you want to see the difference it makes, you can turn it off by adding
this to satpulse.toml:

 [sync]
 tracking.ignoreSawroothCorrection =3D true

This is also useful if you are talking to a GPSDO like the BG7TBL CM55
which gives you serial connection to an M8T, but gives you a disciplined
PPS.

Apart from u-blox, I have implemented support for sawtooth correction for a
couple of exotic Chinese GNSS timing modules (though I haven't yet verified
that it actually improves timing performance for these).

I have sometimes wondered whether it would be possible to extend the
refclock SOCK interface so that something like satpulse could provide
sawtooth corrections when chrony is reading the PPS, especially with PHC
extpps. Concretely, it would be an addiional kind of message giving the
amount of the correction as a float and the true time of the pulse (e.g.
UTC in ms) to which it applied.

James

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

<div dir=3D"ltr"><div dir=3D"ltr">On Mon, Apr 13, 2026 at 10:54=E2=80=AFAM =
Miroslav Lichvar &lt;<a href=3D"mailto:[email protected]">mlichvar@redhat=
.com</a>&gt; wrote:</div><div class=3D"gmail_quote gmail_quote_container"><=
blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l=
eft:1px solid rgb(204,204,204);padding-left:1ex">A feature I&#39;m missing =
in gpsd is the PPS sawtooth correction<br>
(TIM-TP). I see some instances in the satpulse source code, but is<br>
that information currently only collected or actually applied to the<br>
PHC adjustments?<br></blockquote><div><br></div><div>Yes, it is.=C2=A0 It i=
s not hugely noticeable with an F9T (because the sawtooth amplitude is smal=
l), but it does make a significant difference with an M8T.</div><div><br></=
div><div>Embarassingly, I had the sign wrong for a while. When I fixed that=
, it made quite a noticeable difference to the M8T:</div><div><br></div><di=
v><a href=3D"https://github.com/jclark/satpulse/discussions/163#discussionc=
omment-15656148">https://github.com/jclark/satpulse/discussions/163#discuss=
ioncomment-15656148</a></div><div><br></div><div>If you want to see the dif=
ference it makes, you can turn=C2=A0it off by adding this to satpulse.toml:=
</div><div><br></div><div>=C2=A0[sync]</div><div>=C2=A0tracking.ignoreSawro=
othCorrection =3D true</div><div><br></div><div>This is also useful if you=
=C2=A0are talking to a GPSDO like the BG7TBL CM55 which gives you=C2=A0seri=
al connection to an M8T, but gives you a disciplined PPS.</div><div><br></d=
iv><div>Apart from u-blox, I have implemented support for sawtooth correcti=
on for a couple of exotic Chinese GNSS timing modules (though I haven&#39;t=
 yet verified that it actually improves timing performance for these).</div=
><div><br></div><div>I have sometimes wondered whether it would be possible=
 to extend the refclock SOCK interface so that something like satpulse coul=
d provide sawtooth corrections when chrony is reading the PPS, especially w=
ith PHC extpps. Concretely, it would be an addiional kind of message giving=
 the amount of the correction as a float and the true time of the pulse (e.=
g. UTC in ms) to which it applied.</div><div><br></div><div>James</div><div=
><br></div><div><br></div><div><br></div></div></div>

--0000000000006d6db7064f624f3f--

-- 
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]