Thu 23 Jul 2026 / 10:48 ET
Kernel
Internet 3 min read

Ars editor builds a Raspberry Pi clock because bedside clocks still annoy

Lee Hutchinson’s PiClock project uses a Pi Zero, Adafruit LEDs, HomeKit, systemd and LLM-written code to make a self-setting red bedside clock.

Dana Voss

By Dana Voss / Security Correspondent

Ars editor builds a Raspberry Pi clock because bedside clocks still annoy
img: Ars Technica

Ars Technica senior technology editor Lee Hutchinson has published a Raspberry Pi-based bedside clock project after failing to find a commercial model that met his particular, and frankly reasonable, requirements: red seven-segment digits, automatic time setting, daylight saving time handling, drift correction and no phone app collecting whatever a clock app thinks it deserves.

The result, released as PiClock on GitHub, is a weekend hobby project that grew into a small pile of Linux plumbing, 3D printing, soldering, HomeKit integration and AI-assisted coding. Hutchinson said the repository includes the bill of materials, Python software and printable enclosure files.

Hutchinson chose a Raspberry Pi Zero W and Zero 2 W rather than an Arduino-style board. His reason was not hardware minimalism. It was comfort. A Pi gave him a Debian-based operating system, Wi-Fi, Network Time Protocol support and the usual Linux remote-management tools. The operating system handles time synchronization and daylight saving time changes, while the clock service reads system time.

The display comes from Adafruit: a 1.2-inch, four-digit red seven-segment LED module sold with a backpack board using the HT16K33 controller. Hutchinson said he bought three units and used them through testing, assembly and learning to solder. The display and backpack required soldering, which he said he had not done before.

Linux clock, bedroom deployment pipeline

The software design is more sysadmin than alarm-clock aisle. According to Hutchinson, the clock host stays on the local network, pulls apt updates from a local mirror and gets NTP from a local server. The clock application runs as a systemd service under a dedicated unprivileged account. It can turn the display on and off by schedule, adjust brightness by schedule and accept local command-line control through a Unix socket.

Hutchinson also added Apple HomeKit support using HAP-python. In his setup, the iOS Home app can control the display, with the Adafruit display’s 16 brightness levels mapped onto HomeKit’s 0 to 100 percent slider. Deployment is handled through a LAN-only Gitea server and Gitea Actions, which build a release artifact and push it to the Pi through a restricted local service account.

Hutchinson said he relied heavily on Anthropic’s Claude Code, first with Opus 4.8 and later with the Fable model, to generate much of the Python code, the HomeKit integration, installer, deployment details and documentation. He described the project as small enough for an intern-level coding task, but said he likely would not have finished it without LLM assistance.

The case was its own project

For the enclosure, Hutchinson started from a Creative Commons-licensed 3D-printable case designed for the same Adafruit display. He modified it in Autodesk Fusion, using Fusion’s MCP server to let AI tools control parts of the CAD workflow. He tested a locally run quantized Qwen 3.6-35B model on an Acer Veriton GN100, but said it only partly completed the requested changes. Claude Code and Fable handled most of the model adjustments.

The display created another practical problem: even at its dimmest setting, it was too bright for a dark bedroom. Hutchinson tested neutral density filter material and smoked acrylic, eventually combining one acrylic piece with a strip of 12 percent neutral density filter to reach brightness close to his existing cheap bedside clock.

He said the final enclosure went through at least three major revisions. The case prints without supports, includes a pocket for the acrylic face and uses guide pins and holes between pieces. The front bezel still needs electrical tape or small amounts of superglue to stay attached.

Hutchinson noted that an ESP32 might be a more sensible platform for the Adafruit display because it includes Wi-Fi and I2C support without requiring a full Debian system. His Pi version, though, does what he wanted: a red bedside clock that sets itself, talks to HomeKit and can be updated through CI/CD. The clock industry may recover.

This story draws on original reporting from Ars Technica.

More Internet/

view all ↗