The controller image
Why a golden image turns one prototype into many identical controllers.
A working Opichy controller is not "an application on a Raspberry Pi". It is a repeatable controller appliance, captured as a flashable image.
Golden image vs. identity
Two things are deliberately separated:
- The controller image — OS, drivers, runtime, automation engine, protocol stacks, web interface, local database, services, configuration defaults. Built once, flashed many times.
- Controller identity — generated on first boot, never baked into the image. The first Pi becomes Controller #001, the next #002, and so on, all running identical software.
The key test
The architecture is working when a completely blank Raspberry Pi can be flashed, booted, and become a controller with no manual Linux configuration:
Flash → Boot → Name controller → Connect devices → Automate
rather than:
Flash → SSH → install packages → fix permissions → configure services → …
Local-first
The controller never needs Cloudflare, GitHub or even Internet access to run. Control, logic, device communication and safety-related behaviour stay on the Pi. The cloud adds identity, management, updates, telemetry, remote access and fleet orchestration around it.