Hardware automation · side project turned tool
PXE imaging station for payment hardware
A network-boot provisioning rig that turns hand-imaging payment hardware into a plug-in-and-walk-away process, with custom USB-HID devices standing in for human hands.
PXE / TFTP / DHCP · Linux · Python · Custom USB-HID firmware · Shell
Probe a stage — hover or Tab.
Problem
Payment and kiosk hardware arrives from the vendor generic. Before it can touch a store, each unit needs an OS image, device-specific configuration, and validation — historically a technician with a USB stick, a checklist, and an afternoon.
Manual imaging doesn't scale to fleet refreshes, and every human step is a chance for a unit to reach a site subtly wrong.
Constraints
- Target devices are sealed appliances: no spare ports for automation, sometimes no keyboard at all.
- The rig has to be operable by non-engineers — success and failure must be legible at a glance.
- Images change; the station has to pick the right one from the device's own identity, not an operator's memory.
Architecture
A bench-top station runs the full network-boot chain — DHCP, TFTP, PXE — so a factory-fresh device plugged into the bench boots straight into an imaging environment with no human input. Image selection keys off hardware identity broadcast during boot.
Where devices expect a human at a keyboard, custom USB-HID devices emulate one: purpose-built firmware plays back exact input sequences, turning 'press F12, choose network boot, confirm' into part of the automated chain.
A validation pass runs after imaging and reports pass/fail per unit, so what leaves the bench is known-good, not assumed-good.
Outcome
- Provisioning a unit went from a technician-hours task to plug in, wait, unplug.
- Every imaged unit passes an identical validation gate before deployment.