Build a Stratum 1 PTP Grandmaster on a Budget

Build a Stratum 1 PTP Grandmaster on a Budget

A budget build turns a Raspberry Pi CM4 and a $15 GPS module into a Stratum 1 PTP grandmaster, achieving nanosecond-level time sync for under $103 in new parts. The post covers hardware selection, wiring, software setup with SatPulse, ptp4l, and chrony, and debugging issues like the BCM54210PE SYNC_OUT pin bug and RTC configuration. It also compares against a commercial TimeHAT solution, highlighting trade-offs in oscillator quality and holdover accuracy.

A nanosecond is the time it takes light to travel about 30 centimeters (roughly 1 foot). After this build, the clocks on my homelab nodes were off from GPS truth by the time it takes light to travel across a room.
  1. hackingonempty

    >The key hardware fact: The CM4 uses the BCM54210PE Ethernet PHY which has full IEEE 1588v2 hardware timestamping support. This is what makes sub-microsecond PTP possible on the CM4. The BCM54210PE timestamps packets right at the wire inside the PHY, before the packet touches the kernel network stack. This eliminates the jitter that comes from kernel scheduling and interrupt handling.

    Very cool feature I wasn't aware of because I'm not a true Chime Head.

  2. Neywiny

    I saw guides for how to do it with the pi5, but I couldn't get it to lock to the pps reliably and chrony said I had way more jitter on pps and nmea than there should've been. Might try following this one minus the difference in pps

  3. KaiserPro

    I will preface this with I am very supportive of time nerdery. I am thrilled that this person is build and documenting that build.

    I will now commence shitposting, so please look away now.

    Booo use a pendulum like a real time lord: https://gentsofleicester.com/project/alanb/

    Obviously you really want a tank/vacuum master clock, but they are expensive and big. this GPO Type 46 however is small and more importantly gives off a pleasingly happy ticking noise. (tickety-a-tock, tickety-a-tock, then every 15 seconds a Clonk as the magnets fire)

More from this day

2026-08-13