2023-04-09 · 2 min read

Twelve Pis in a Warehouse

Build log from deploying a dozen Raspberry Pi punch clocks onto a shop floor, where the failure modes are dust, power, and human beings.

hardware · build-log · raspberry-pi

The brief was simple enough to be suspicious: replace the punch clocks. Twelve locations, touchscreen, talks to Dayforce, do not make people wait in line.

The software was the easy part. It is always the easy part.

What actually broke

Power, mostly. A Raspberry Pi that is unplugged at the wall every night by a well-meaning person will corrupt its SD card eventually. Not immediately — that is what makes it a good bug. It waits until you have declared victory. Read-only root filesystem with a small writable overlay solved this more completely than any amount of "please stop unplugging it" ever did.

Dust. Warehouse air is not office air. Two units in the same corner of the building started thermal throttling within a month, and only those two.

The network. Wi-Fi coverage on a floor full of metal racking is a physics problem wearing an IT costume. Four units went to powerline ethernet and stopped complaining.

Clock drift. A time clock that disagrees with payroll about what time it is generates a category of ticket you do not want to be on the receiving end of. NTP is not optional; it is the entire product.

The thing I would do differently

I built the fleet update path last. I should have built it first.

For the first six weeks, updating meant a keyboard, a monitor on a cart, and twelve walks across a warehouse. The moment I had a real deployment mechanism — a versioned image, a pull on boot, a health endpoint that reported which build was live — the project stopped being stressful and became a thing I barely thought about.

The lesson generalizes past Raspberry Pis: the first thing you build should be the thing that lets you change your mind. Everything else is downstream of how expensive it is to be wrong.

Where they are now

Twelve units, deployed, clocking in a few hundred people a day. One SD card replaced. Zero walks across the warehouse since the update path landed.

The Pis do not know any of this. They boot, they show a keypad, they wait. It is the most patient thing in the building.

All field notes