10" Mini Rack NTP Clock w/ Raspberry Pi 4

Table of Contents
Ever since I built my GPS disciplined NTP server, I wanted a way of displaying the time in my office. Ideally, in my mini rack. Rack mounted NTP clocks have been around forever. However, all of the commercial ones I could buy were designed for a full-sized rack and expensive (seriously expensive, if you have to ask you can’t afford it territory).
Requirements #
- It must be accurate - I’d like the seconds to tick over with 10’s of milliseconds of GPS time.
- It must fit a standard 10" Mini Rack
- It must be cheap - I didn’t want to spend hundreds of pounds like the commercial offerings
- Must be easy to print - I like to avoid supports if at all possible to cut down on wasted plastic.
Bill of Materials #
I ended up building the clock with the following hardware:
- Raspberry Pi 4B - I had a few lying around after decommissioning my Pi Kubernetes cluster a few years ago
- MAX7219 8x8 Dot Matrix LED Module Four in One Dot Matrix Display - Fits the brief for cheap (around £5.50 per module) and fits easily within the space constraints of the 10" rack. It communicates with the Pi via the SPI bus.
- Custom 3D Printed Mount
Hardware #
I designed and 3D printed a mount in OnShape to perfectly fit the MAX7219 module that I purchased from Amazon. The OnShape file can be found here and the STL files can be found here.
The STL file is designed to be printed face down, without supports.


There is a retaining clip that slides on once the LED module is inserted to lock it in place. The STL has holes designed for heat-set threaded inserts, which makes the screws and internal threads that retain the Pi to the frame much harder to strip. Here’s what it looks like fully assembled.

Software #
The Pi runs Chrony, which is configured to sync its time from the two GPS disciplined NTP servers in my home. There is a Python script that updates the display on the edge of the second. The script can be found here
Want to build your own? #
I recommend following the instructions on the Printables page
Next Steps #
- I’ve already created a version that uses an ESP32, a much more cost effective replacement for the Raspberry Pi. I just need to write it up and share the config
