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

EspressI/O - Espresso Controller

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.