UltraChip's Raspberry Pi-Powered Clock Doubles as a Stratum-1 NTP Server for the Local Network

Built from a Raspberry Pi with GPS receiver and 16x2 LCD display, this high-accuracy clock serves the current time to NTP-capable devices.

Pseudonymous programmer "UltraChip" has built a stratum-1 timeserver out of a Raspberry Pi single-board computer and a GPS receiver — adding a two-line LCD display to turn it into a desk clock, too.

"My struggles with getting an accurate clock for the Pytheas Project led me down a rabbit hole learning about NTP servers and about timekeeping/clock synchronization in general," UltraChip explains. "Even though I already came up with a solution for Pytheas I kept reading up on things and one thing led to another and, well, now I have a ridiculously accurate GPS-backed NTP server for my house."

The Network Time Protocol (NTP) for clock synchronization centers around strata: Stratum 0 is made up of extremely high-precision clock sources, including GPS satellites and atomic clocks, and act as the core source of time data; stratum 1 systems pull time data from the first stratum and act as primary servers in the NTP network, accurate to a few microseconds; stratum 2 is made up of systems synchronized to stratum 1; and the system continues from there all the way down to stratum 15.

A system with a GPS receiver, then, can be a stratum 1 time server — and that's what UltraChip has built, using a Raspberry Pi single-board computer.

Working from a guide written by Greg Ledet last year, UltraChip worked to make the project their own. "Some notable features: [It] has a 16x2 LCD display so that in addition to being a timeserver it can also just be an actual clock," they explain. "Backlight automatically turns off at night so that the bright blue light doesn't annoy me. It automatically turns back on in the morning."

"The display also tracks the precision of the clock (meaning, how far off the time is from the actual GPS standard). I'm happy to say that most of the time it's only off by a few milliseconds! The display also has icons to conveniently show Wi-Fi connection and GPS Lock status."

More details are available in UltraChip's Reddit thread, with the configuration files and Python code to run the 16x2 LCD display published to GitHub under the GNU General Public License 3.0.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Related articles
Sponsored articles
Related articles