Raspberry Pi Stratum 1 NTP Server with GPS, PPS, and Chrony
This guide explains how to turn a fresh Raspberry Pi OS installation into a Raspberry Pi stratum 1 NTP server using GPS, PPS, and Chrony. It also covers PTP hardware timestamping and Telegraf monitoring; pair it with GPS fix monitoring in Grafana to make receiver lock status visible before it becomes a timing incident.
1. Overview
In this project you’ll build a stratum‑1 NTP server using:
- Raspberry Pi 5 as the host.
- A GPS module (via the serial UART port) for an absolute time reference.
- A PPS (Pulse Per Second) signal from the same GPS for sub-microsecond timing accuracy.
- The PTP hardware timestamping on the Ethernet interface for improved precision on PTP packets.
- Chrony for NTP time synchronization.
- gpsd to interface with your GPS receiver.
- Telegraf for monitoring various metrics (including Chrony statistics) sent to an InfluxDB backend.
2. Prerequisites and Required Hardware
Before you begin, ensure you have the following: