The EspressI/O V1 is a controller for espresso machines that includes the following functionality; see the User Manual for an overview video:
- PID to control boiler temperature
- Brew and Steam temperature settings
- Brew Timer Display
- Automatic Brewing Shutoff
- Automatic Pre-Infusion
- Automatic Boiler Shutoff
The EspressI/O controller is designed specifically for the Rancilio Silvia Espresso machine. It can be adapted to work with other espresso machines with similar functionality to the Silvia; the biggest change / challenge will likely be the physical packaging. I designed around the Silvia as this is a very common machine and for good reason. The components and build quality are excellent and the machine is still somewhat affordable. Especially if you can find a used one in good condition as I did. The Silvia is just lacking when it comes to temperature control.
So why design a controller for the Silvia when many already exist? I couldn’t find exactly what I was looking for in functionality in the commercial models, so this gave me a good excuse to start another project! In addition, I didn’t find much in the way of open source espresso controllers so that was another excuse to make my own.
Before designing the EspressI/O controller, I looked at existing controllers. I appreciated that most were fairly plug and play and did not involve extensive modifications. Of the one commercial model I actually tried, I was not impressed with the PID itself. Mainly because it took too long to get up to brewing temperature. Some will argue that’s a non-issue because you should let your machine warm up for 30 – 45min for best results; however, sometimes I forget and I’m in a hurry! PID functionality is more than just the tuning parameters. How adaptive tuning is implemented and how Integral windup are addressed have a big impact on PID control and are not always addressed.
EspressI/O Core Design Goals
- Minimum Physical Changes to Machine
- No Permanent Modifications to allow for conversion back to original design
- PID Controller for Boiler (Brew + Steam Temperatures)
- RTD Sensor to achieve accurate 0.1C or better readings
- Locally Mounted LCD Display (128 x 64 preferred)
- Tactile Control(s) – knobs and / or buttons
- Automatic Pre-Infusion Capability
- Auto Shutoff for Boiler (for those times I forget)
- Aesthetics – Final Install to look semi-professional and not like a pieced together DIY setup
- Isolate User Interface from main line voltage (ie. 120V)
- (Optional) Multiple Mounting Positions
I’m happy to say I met all of the above. One exception is that I did end up drilling two small holes in an internal plate to mount the SSR. So there is one permanent modification. Because it’s inside, not visible and not structural, I think it’s an acceptable compromise that provides a good SSR mounting solution.
There are a few other secondary design goals I have on my radar. See the Development section for more information. For more details on the current controller version, see the Hardware and Software Sections.