YOU CAN BUILD A WALL CLOCK THAT FOLLOWS YOUR NETWORK'S PRECISION TIME AND SHOWS IT TO NINE DECIMAL PLACES

A wall clock that follows the Precision Time Protocol on your network and shows nine decimal places of the second, so you can watch precise time sync happen.

by Oliver Ettlin

FULL CAD BOM FIRMWARE DOCS

DisplaysOpen-hardware

Built withRaspberry Pi

difficulty
●●●●○
time
a weekend-plus
license
MIT
repo
repo ACTIVE111 stars
1
Jump to section

COMPAREE VERDICT

This is a weekend project for someone who already has PTP on their home network, or wants an excuse to set it up, and wants to see what precise synchronisation looks like in practice. The software side is easy — a C++ app with a one-command installer and a web settings page — but the real gate is the network: the clock needs a PTP grandmaster to follow, either a dedicated time server or a PTP-enabled switch. For the honest measurements you also want a Pi 5 (or CM4/CM5), whose network chip timestamps PTP packets in hardware; on a Pi 3 or 4 it falls back to software timestamps with sub-millisecond accuracy. The build is not pretending to be a laboratory instrument — only the tenths digit on the display is real; the faster digits are animated to show the clock ticking, and the clock is only as good as the reference you point it at. If you already have the network infrastructure or were planning to build a PTP grandmaster anyway, this is a clean demonstration of what PTP can do. If you were hoping to build precision timekeeping from scratch without prerequisites, this is not that project.

GOOD TO KNOW

  • —MIT licence, no restrictions on commercial use.
  • —Repository contains a single C++ application, a one-command installer, a systemd service, Docker images and a short hardware list.
  • —No CAD files — the display is a commercial LED matrix panel mounted to the wall.
  • —Requires a PTP grandmaster on your network (a time server or PTP-enabled switch); the README does not recommend specific models.
  • —The clock is only as accurate as the PTP reference it syncs to — it does not generate its own timekeeping.
  • —The built-in web interface shows offset, path delay and grandmaster data; the optional GNSS build adds a time-error measurement against GPS, checked with ppstest and a multimeter.

Parts to buy

5 items

From our check of the build. Exact quantities and part numbers are in the creator’s BOM.

  • Raspberry Pi 5Find
  • Two 64x32 RGB LED matrix panels (HUB75)Find
  • Adafruit RGB Matrix HATFind
  • PTP grandmaster on your networkFind
  • Regulated 5V power supply sized for the panelsFind

BUILDS OF THE WEEK

Five open-source builds worth your weekend, every week.

Checked like this one: what’s really in the repo, what it costs, how hard it is. One email, unsubscribe anytime.

Can I build this?

Printnothing required
BuyRaspberry Pi 5 (Pi 3/4 work but only with software timestamps), two 64x32 RGB LED matrix panels (HUB75), Adafruit RGB Matrix HAT, a PTP grandmaster on your network (time server or PTP-enabled switch), regulated 5V power supply sized for the panels
Toolssoldering iron for HAT assembly, oscilloscope if you want to verify PPS output, basic Linux command line access
Skillsintermediate — comfortable with Raspberry Pi setup, systemd service configuration, and reading datasheets to confirm your switch supports hardware timestamping
Timea weekend if the switch is already on hand and working, longer if you are setting up PTP infrastructure from scratch
Cost$$ — Jeff Geerling put the clock hardware (Pi, Adafruit HAT, two panels, 5 V 4 A supply, microSD) at around 120-150 dollars. A PTP grandmaster on your network is extra if you do not already have one.
SafetyNone beyond ordinary electronics care. The display runs on regulated 5V and the Pi is low voltage throughout.

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

Videos

I built a new clock, and now I'm not sure what time it is

Jeff Geerling's rebuild of Oliver Ettlin's clock on a Raspberry Pi 4: the parts, assembly, matrix software, a 3D-printed bracket to join the panels, and a timing bug he had to chase down.

More builds like this

All projects

Gallery

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 1.Confirm a PTP grandmaster is broadcasting on your network (The README does not recommend specific gear: you need a PTP grandmaster on the network, and a Pi 5 or CM4/CM5 if you want hardware timestamping.)
  2. 2.Order the LED matrix panel and Adafruit HAT (The hardware list is in the README: two 64x32 HUB75 panels chained into a 128x32 display, driven by the Adafruit RGB Matrix HAT.)
  3. 3.Install Raspberry Pi OS and clone the repository (Follow the setup instructions to configure the systemd service and PTP daemon.)
  4. 4.Wire the HAT to the panel and test the display output (The HAT needs some soldering (pin header, connectors). Test the panels with the rpi-rgb-led-matrix demo before running the clock code.)

Resources

Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.

KNOWN ISSUES

  • No grandmaster, no clock: the Pi only displays time that a PTP grandmaster on your network sends. It must broadcast to the standard PTP multicast address, and a one-step-only master can trip up the setup, as Jeff Geerling's debugging notes show. Check that PTP traffic reaches the Pi before blaming the display.
  • Underspeccing the power supply: use a dedicated 5 V 4 A supply into the HAT's power jack; voltage drop when the panels light up causes flickering.
  • Reading the nanosecond digits as real: only the tenths digit is real, and the faster digits are animated because true values change too fast for any display. The clock is also only as good as the PTP grandmaster it follows.
  • Trusting the display alone — the clock shows whatever your grandmaster says. If you want independent confirmation, add the optional GNSS receiver and use the time-error chart against GPS.
  • Picking a Pi without hardware timestamping — the display works on Pi 3/4/5, but only the Pi 5 (and CM4/CM5) timestamp PTP packets in hardware.

Do I need an oscilloscope to build this?

No. The web interface shows offset, path delay and grandmaster data. If you want independent proof, the optional GNSS receiver lets the clock measure your grandmaster against GPS time.

What PTP reference should I sync to?

Something on your local network has to act as PTP grandmaster: a GPS-disciplined time server, a PTP-capable switch, or the project's own GNSS mode, where a GNSS HAT on a Pi lets the clock become the grandmaster once you explicitly enable master mode. The clock will only be as good as whatever reference you give it.

Can I use a cheaper switch without hardware timestamping?

Yes, as long as something on the network acts as PTP grandmaster. Hardware timestamping happens on the Pi (Pi 5 or CM4/CM5); without it, accuracy is sub-millisecond — fine for a wall clock, but a visualisation rather than a reference.

How much does a PTP-capable switch cost?

The project does not name switches or prices. What you need is a grandmaster sending PTP on your network; a PTP-aware switch helps keep the timing clean, but the README recommends no specific model, so check the datasheet for IEEE 1588 support before you buy.

Community builds

No community builds yet — be the first, we feature the best ones.

Discussion1

FROM THE COMPAREE TEAM

The clock is only as honest as the grandmaster it follows — the optional GNSS mode exists to check that against GPS. If you have built this or something like it, what are you using as your PTP grandmaster?

CompareeTEAM1mo agoedited

Practical notes from our verification: the project is by Oliver Ettlin, who showed it live at his 39C3 talk 'Excuse me, what precise time is It?'; Jeff Geerling's video documents his own rebuild of it. The software is a single C++ binary with a one-command installer, and there is also a Docker version that needs no LED hardware at all. There is no separate BOM file, just a short hardware list: a Raspberry Pi, an Adafruit RGB Matrix HAT and two 32x64 HUB75 panels. The real requirement is a PTP-capable network — a grandmaster or a PTP-enabled switch. Hardware timestamping happens on the Pi's own network chip, which only the Pi 5 and CM4/CM5 have; other Pis fall back to software timestamps. The README is upfront that only the tenths digit is real and the faster digits are synthesized, because the true values change too fast for any display, and the clock is only as good as the grandmaster it follows — which is why the optional GNSS mode exists to measure that grandmaster against GPS. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.

Oliver Ettlin

Oliver Ettlin built this clock to make PTP synchronisation visible and showed it live at his 39C3 talk 'Excuse me, what precise time is it?', then kept developing it on GitHub with Docker and GNSS measurement modes. Jeff Geerling rebuilt it and documented the process in a video and blog post.

GitHub

Star the project on GitHub

DISCLAIMER

  • Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
  • Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
  • Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.