Build a home lab NTP server synced directly to GPS satellites.
Serve sub-microsecond PTP time to audio, video, or industrial equipment on a local network.
Learn how a GPS pulse-per-second signal disciplines a system clock using chrony.
| benleikin/pitime | 0petru/sentimo | alingalingling/akasha-wechat | |
|---|---|---|---|
| Stars | 17 | 17 | 17 |
| Language | Python | Python | Python |
| Setup difficulty | moderate | moderate | hard |
| Complexity | 3/5 | 3/5 | 4/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires assembling GPS hardware wired to GPIO pins on a Raspberry Pi 4.
PiTime turns a Raspberry Pi into a highly accurate time server that takes its time signal directly from GPS satellites, costing around $90 in total hardware. Most computers and routers get their time from internet time servers, which introduces small delays along the network path. A GPS-disciplined server skips the internet middle step: the GPS module receives time signals from satellites and the Pi distributes that time to other devices on your local network with much higher precision. The GPS module connects to the Pi's GPIO pins (the row of small metal pins on the board). One of those pins receives a pulse-per-second signal, a precise electrical tick that arrives exactly once per second from the satellite timing circuit. Software called chrony reads that pulse and uses it to keep the system clock locked to within a fraction of a microsecond. The README shows measured results from a running instance: typical offset of 100 to 1000 nanoseconds and a standard deviation of about 200 nanoseconds, using a $10-15 module from Amazon. The server can distribute this precise time to other devices on your home or office network in two ways. The first is NTP (Network Time Protocol), the same system all computers already use when syncing time over the internet. The second is PTP (Precision Time Protocol), a more precise protocol used in professional audio, video, and industrial settings that can achieve sub-microsecond accuracy on a local network. There is also an optional NTS (Network Time Security) mode that adds cryptographic authentication when serving time over the internet. A web dashboard built as a single Python file with no external dependencies shows a live sky view of visible satellites, current offset readings, and historical jitter charts. The project includes installation instructions, example configuration files, and an optional script that converts other machines on the network to use the Pi as their time source. The project requires a Raspberry Pi 4 (or similar), a GT-U7 or compatible GPS module, and a 32GB microSD card. Setup instructions are in a separate INSTALL.md file. The project is released under the MIT license.
A DIY GPS based time server for a Raspberry Pi that syncs your local network clock to within microseconds, far more precise than standard internet time sync.
Mainly Python. The stack also includes Python, Raspberry Pi, chrony.
MIT license lets you use, modify, and distribute the project freely as long as you keep the copyright notice.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.