Jeff Geerling documents his creation of a GPS-synchronized rack-mounted clock using Raspberry Pi Pico hardware, achieving sub-second accuracy for homelab timekeeping applications.
Homelab enthusiasts seeking precise time synchronization now have a compact rack-mounted solution using Raspberry Pi Pico hardware. Jeff Geerling's recently documented GPS clock project delivers stratum-0 time accuracy directly to server racks through satellite synchronization. This implementation prioritizes precision over convenience, refusing to display time until achieving verified GPS lock.

The core hardware configuration uses accessible components: A Raspberry Pi Pico 2 handles processing, paired with Adafruit's 0.56" 4-Digit 7-Segment Display with I2C backpack for time visualization. Satellite timing comes from Waveshare's L76K GNSS Module, chosen for its compatibility with MicroPython ecosystems. Power stability during brief outages is maintained by a CR1220 lithium coin cell acting as real-time clock (RTC) backup.
Assembly requires careful component integration within a 3D-printed 1U rack faceplate. The design files are available on Printables, featuring precise cutouts for the display and SMA antenna connector. Physical assembly involves securing the display with optional M2 screws, routing the GPS antenna cable over the RTC battery, and connecting the Pico to the GNSS module via GPIO headers.

Software implementation uses MicroPython with three critical libraries: smittytone's HT16K33 library for display control, inmcm's micropyGPS for satellite data parsing, and a custom main.py script that handles timing logic. The firmware exhibits clear status indicators through display behavior: Initial ---- shows no lock, blinking colons confirm active 3D GPS fix, and solid colons indicate temporary signal loss.
Performance metrics reveal real-world operation characteristics. Initial satellite acquisition requires 15-30 seconds for first-time cold starts due to GPS almanac loading. Subsequent hot starts after brief power interruptions recover timing locks in 3-5 seconds. Positioning demands remain strict, requiring antenna placement near windows or outdoors via quality cabling for reliable pulse-per-second (PPS) synchronization.

Current limitations include unavailable PPS signal output despite the GNSS module's internal precision timing pulse. Geerling notes traces exist on the Waveshare HAT for potential hardware modification, with plans to integrate secondary SMA connectivity in future revisions. This would enable external NTP server synchronization using the same atomic-clock-grade timing reference.
For homelab operators, this project solves multiple timing challenges: It provides visual time verification at the rack, establishes a foundation for stratum-0 time references, and demonstrates practical MicroPython implementation for embedded timekeeping. All design files and code are available through Geerling's GitHub repository, enabling immediate replication by hardware enthusiasts.
Geerling acknowledges the apparent extravagance of a GPS clock for basic time display but emphasizes the project's value in exploring precision horology and creating infrastructure for future time-synchronized homelab applications. The build exemplifies how accessible hardware can achieve enterprise-grade timing accuracy when paired with satellite signals.

Comments
Please log in or register to join the discussion