Lab staff needed a way to design multi-step chemical mixing recipes — temperature curves, stirring speed, precise reagent dosing — on a touchscreen, and run them safely, without writing to the machine by hand.
The core technical challenge was live, byte-level two-way communication with real lab hardware — a heater, a stirring motor, dosing syringes, valves — over a serial connection, translating high-level, declarative recipes into low-level, imperative hardware commands in real time, without ever letting the machine enter an unsafe state.
The controller runs on a Raspberry Pi in a lab environment, often without a reliable internet connection, so the whole stack had to work fully offline, stay responsive on limited hardware, and recover automatically after a crash or power cycle — with the interface continuously syncing to the actual state of a running recipe rather than depending on a permanent connection.