Jan Weigelt

Espresso Temperature Controller

A very delicious control theory demo

Espresso Temperature Controller

While working at university, I modified the control systems chair's espresso machine to be an experimental plant for designing temperature controllers. The modified plant allowed the implementation of custom controller scripts using a web panel. A classical PID-style controller already archieved much better setpoint tracking than the original thermostat.

The scripting systems also allows running automated plant identification. This enabled the design of model based controllers. Model predictive control also archieved very good setpoint tracking with faster settling time than classical PID-style controllers. Modeling of the brewing process turned out to be rather difficult, since it is highly dependant on the coffee used.

I designed a custom controller board to replace the original bang bang style thermostat. It features various solid state relays and optocouplers to interface with the original espresso machine hardware. The circuit samples boiler and brewing assembly temperature using Pt-100 temperature sensors. The controller also samples the output from the original thermostats.

Software

A Raspberry Pi Zero W runs a custom server application. The control interface is web based. It was written using the react.js framework and Material UI. Data is pushed to the UI frontend using web sockets. I used the embeddable Python C API for running custom Python controllers.