time-nuts@lists.febo.com

Discussion of precise time and frequency measurement

View all threads

Re: Clock display on Linux systems?

JS
John Sloan
Tue, Dec 7, 2021 1:58 PM

I have four home-built clocks, each using a Raspberry Pi, all with slightly different designs, all running gpsd and ntpd (so all are NTP servers on my home network). Three are GPS disciplined; one is WWVB disciplined. Two of the GPS clocks use the modem-control lines on a serial port for the 1PPS signal, one uses the simulated modem-control signals on a USB-connected GPS dongle. One of the GPS clocks has a cesium chip-scale atomic clock - specifically, a Jackson Labs Technologies dev board with a Microsemi CSAC - for holdover (there’s no kill like overkill).

All four clocks use an Adafruit “Pi Plate” LCD board with a two-line display to display the date and time.

https://www.adafruit.com/product/1115

The display format could have been anything I chose, but I implemented one that looks like this (using a 24-hour time so no AM/PM).

Tue 2021-Dec-07
06:33:49 MST

They all run the same trivial Python script that I wrote to read the system clock (which is disciplined to NTP, and hence to GPS or WWVB time) and drive the display. The script runs five times a second. Efficiency is not really an issue since this is running on a quad-core processor. An entire core could be dedicated to just updating the display. I leave that to the Linux scheduler. This approach combines the accuracy of GPS-disciplined time with support for time zones and Daylight Saving Time adjustments in the system clock.

The time on the LCD is as accurate as I need it to be, since it’s just a human-read display. The NTP time provided by each clock is at least competitive with getting the time from NTP servers across the internet. I have another Raspberry Pi that uses ntpq to query all of my clocks, along with two commercial NTP servers on my network, plus two external servers, and compares them. Based on its own measurements, it typically chooses the atomic clock as the best reference.

There is undoubtedly a lot of room for improvement in all of this, especially in my WWVB clock.

Here is a link of all of my blog articles on clock- and time-related stuff.

https://coverclock.blogspot.com/search/label/Horology

Some of those articles will include links to my GitHub repositories for those projects.

Here is an album of photographs of all of my NTP servers, both home-brew and commercial.

https://flic.kr/s/aHsmgrizkL

:John

--
J. L. Sloan            Digital Aggregates Corporation
+1.303.489.5178        3440 Youngfield Street
mailto:jsloan@diag.com  #209
http://www.diag.com    Wheat Ridge CO 80033 USA

I have four home-built clocks, each using a Raspberry Pi, all with slightly different designs, all running gpsd and ntpd (so all are NTP servers on my home network). Three are GPS disciplined; one is WWVB disciplined. Two of the GPS clocks use the modem-control lines on a serial port for the 1PPS signal, one uses the simulated modem-control signals on a USB-connected GPS dongle. One of the GPS clocks has a cesium chip-scale atomic clock - specifically, a Jackson Labs Technologies dev board with a Microsemi CSAC - for holdover (there’s no kill like overkill). All four clocks use an Adafruit “Pi Plate” LCD board with a two-line display to display the date and time. https://www.adafruit.com/product/1115 The display format could have been anything I chose, but I implemented one that looks like this (using a 24-hour time so no AM/PM). Tue 2021-Dec-07 06:33:49 MST They all run the same trivial Python script that I wrote to read the system clock (which is disciplined to NTP, and hence to GPS or WWVB time) and drive the display. The script runs five times a second. Efficiency is not really an issue since this is running on a quad-core processor. An entire core could be dedicated to just updating the display. I leave that to the Linux scheduler. This approach combines the accuracy of GPS-disciplined time with support for time zones and Daylight Saving Time adjustments in the system clock. The time on the LCD is as accurate as I need it to be, since it’s just a human-read display. The NTP time provided by each clock is at least competitive with getting the time from NTP servers across the internet. I have another Raspberry Pi that uses ntpq to query all of my clocks, along with two commercial NTP servers on my network, plus two external servers, and compares them. Based on its own measurements, it typically chooses the atomic clock as the best reference. There is undoubtedly a lot of room for improvement in all of this, especially in my WWVB clock. Here is a link of all of my blog articles on clock- and time-related stuff. https://coverclock.blogspot.com/search/label/Horology Some of those articles will include links to my GitHub repositories for those projects. Here is an album of photographs of all of my NTP servers, both home-brew and commercial. https://flic.kr/s/aHsmgrizkL :John -- J. L. Sloan Digital Aggregates Corporation +1.303.489.5178 3440 Youngfield Street mailto:jsloan@diag.com #209 http://www.diag.com Wheat Ridge CO 80033 USA
AS
Adam Space
Thu, Dec 16, 2021 9:06 PM

Cool set-up :) Where are all of these clocks in the ntpq picture though?
I'm surprised that stratum 1 devices have such large offsets from each
other... A solid PPS set-up should easily give sub 1ms accuracy, but it
looks like these all disagree by a few, if not dozens of, ms. I assume this
is due to asymmetric network paths in NTP? Even so, I would've expected the
offsets to be lower. And what's up with the 80ms offset from time-c-wwv?

On Tue, Dec 7, 2021 at 8:59 AM John Sloan jsloan@diag.com wrote:

I have four home-built clocks, each using a Raspberry Pi, all with
slightly different designs, all running gpsd and ntpd (so all are NTP
servers on my home network). Three are GPS disciplined; one is WWVB
disciplined. Two of the GPS clocks use the modem-control lines on a serial
port for the 1PPS signal, one uses the simulated modem-control signals on a
USB-connected GPS dongle. One of the GPS clocks has a cesium chip-scale
atomic clock - specifically, a Jackson Labs Technologies dev board with a
Microsemi CSAC - for holdover (there’s no kill like overkill).

All four clocks use an Adafruit “Pi Plate” LCD board with a two-line
display to display the date and time.

https://www.adafruit.com/product/1115

The display format could have been anything I chose, but I implemented one
that looks like this (using a 24-hour time so no AM/PM).

Tue 2021-Dec-07
06:33:49 MST

They all run the same trivial Python script that I wrote to read the
system clock (which is disciplined to NTP, and hence to GPS or WWVB time)
and drive the display. The script runs five times a second. Efficiency is
not really an issue since this is running on a quad-core processor. An
entire core could be dedicated to just updating the display. I leave that
to the Linux scheduler. This approach combines the accuracy of
GPS-disciplined time with support for time zones and Daylight Saving Time
adjustments in the system clock.

The time on the LCD is as accurate as I need it to be, since it’s just a
human-read display. The NTP time provided by each clock is at least
competitive with getting the time from NTP servers across the internet. I
have another Raspberry Pi that uses ntpq to query all of my clocks, along
with two commercial NTP servers on my network, plus two external servers,
and compares them. Based on its own measurements, it typically chooses the
atomic clock as the best reference.

There is undoubtedly a lot of room for improvement in all of this,
especially in my WWVB clock.

Here is a link of all of my blog articles on clock- and time-related stuff.

https://coverclock.blogspot.com/search/label/Horology

Some of those articles will include links to my GitHub repositories for
those projects.

Here is an album of photographs of all of my NTP servers, both home-brew
and commercial.

https://flic.kr/s/aHsmgrizkL

:John

--
J. L. Sloan            Digital Aggregates Corporation
+1.303.489.5178        3440 Youngfield Street
mailto:jsloan@diag.com  #209
http://www.diag.com    Wheat Ridge CO 80033 USA


time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send
an email to time-nuts-leave@lists.febo.com
To unsubscribe, go to and follow the instructions there.

Cool set-up :) Where are all of these clocks in the ntpq picture though? I'm surprised that stratum 1 devices have such large offsets from each other... A solid PPS set-up should easily give sub 1ms accuracy, but it looks like these all disagree by a few, if not dozens of, ms. I assume this is due to asymmetric network paths in NTP? Even so, I would've expected the offsets to be lower. And what's up with the 80ms offset from time-c-wwv? On Tue, Dec 7, 2021 at 8:59 AM John Sloan <jsloan@diag.com> wrote: > I have four home-built clocks, each using a Raspberry Pi, all with > slightly different designs, all running gpsd and ntpd (so all are NTP > servers on my home network). Three are GPS disciplined; one is WWVB > disciplined. Two of the GPS clocks use the modem-control lines on a serial > port for the 1PPS signal, one uses the simulated modem-control signals on a > USB-connected GPS dongle. One of the GPS clocks has a cesium chip-scale > atomic clock - specifically, a Jackson Labs Technologies dev board with a > Microsemi CSAC - for holdover (there’s no kill like overkill). > > All four clocks use an Adafruit “Pi Plate” LCD board with a two-line > display to display the date and time. > > https://www.adafruit.com/product/1115 > > The display format could have been anything I chose, but I implemented one > that looks like this (using a 24-hour time so no AM/PM). > > Tue 2021-Dec-07 > 06:33:49 MST > > They all run the same trivial Python script that I wrote to read the > system clock (which is disciplined to NTP, and hence to GPS or WWVB time) > and drive the display. The script runs five times a second. Efficiency is > not really an issue since this is running on a quad-core processor. An > entire core could be dedicated to just updating the display. I leave that > to the Linux scheduler. This approach combines the accuracy of > GPS-disciplined time with support for time zones and Daylight Saving Time > adjustments in the system clock. > > The time on the LCD is as accurate as I need it to be, since it’s just a > human-read display. The NTP time provided by each clock is at least > competitive with getting the time from NTP servers across the internet. I > have another Raspberry Pi that uses ntpq to query all of my clocks, along > with two commercial NTP servers on my network, plus two external servers, > and compares them. Based on its own measurements, it typically chooses the > atomic clock as the best reference. > > There is undoubtedly a lot of room for improvement in all of this, > especially in my WWVB clock. > > Here is a link of all of my blog articles on clock- and time-related stuff. > > https://coverclock.blogspot.com/search/label/Horology > > Some of those articles will include links to my GitHub repositories for > those projects. > > Here is an album of photographs of all of my NTP servers, both home-brew > and commercial. > > https://flic.kr/s/aHsmgrizkL > > :John > > -- > J. L. Sloan Digital Aggregates Corporation > +1.303.489.5178 3440 Youngfield Street > mailto:jsloan@diag.com #209 > http://www.diag.com Wheat Ridge CO 80033 USA > > _______________________________________________ > time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send > an email to time-nuts-leave@lists.febo.com > To unsubscribe, go to and follow the instructions there.