roboGaggia - TL;DR

This project is a hardware-hack of the amazing Gaggia Pro

Although it's an amazing machine, the Gaggia requires a number of manual steps to get you from beans to a hot latte:

  1. You have to periodically pour water into the top of the Gaggia to refill the water reservoir. This can be an inconvenience if your Gaggia is under a kitchen cabinet.
  2. After you've loaded the portafilter with coffee grounds and put a cup under the group head, you have to wait until the brew heater achieves the correct temperature before you can click the 'brew' button.
  3. While brewing, you need to remember the weight of your coffee grounds so you know how much to brew. You need to either weigh your resulting coffee using an external scale or approximate the output by counting the seconds of your extraction.
  4. After brewing, you then have to manually switch the 'steam' button and wait for the heater to achieve the steam temperature.
  5. After steaming, if you want to brew again, you have to go through the process of extracting water to cool off the heater - the heater is always on with the stock Gaggia, so cooling off the heateater takes a while.

The above five steps are rather tedious and time consuming. It would be nice if I could load the Gaggia with fresh ground coffee, push a button, then walk away to attend to other things in my morning routine. When I return, I want my shot done and the machine ready to steam. These modifications do this.

Other things to note about the stock Gaggia Pro:

  1. The thermostats which measure the brew and steam temperatures employ a simplistic 'Schmitt Trigger' control algorithm which means the target temperature can vary quite a bit from shot to shot.
  2. When brewing, the water pump operates at a fixed rate, so there is no 'pre-infusion' period where the portafilter is filled with low-pressure water before the high pressure water is used to extract the espresso shot.

In an attempt to mitigate the above Gaggia short comings, I've implemented the following features:

  1. Integrated scale that fits in the drip tray
  2. Dual PID temperature controllers
  3. PID flow-rate controller that implements Pre-Infusion and a fixed Flow Profile.
  4. Live flow telemetry sent to Adafruit.IO for flow analytics
  5. Auto-Fill water reservoir
  6. Auto-Shutoff
  7. Microcontroller-based automated brew process that eliminates the need for the Brew or Steam buttons.
  8. Cool-down feature to assist in cooling down the heater for alternating between brewing and steaming. This is important for single-boiler machines such as the Gaggia.
  9. Clean feature which automates much of the rather tedious process of backflushing the Gaggia's grouphead with Cafiza cleaner.
  10. All additional electrical features are installed on a separate printed circuit board (PCB) which is attached on the back of the Gaggia. The designs for this PCB are included in this repo with instructions on how to get the board fabricated.

Disclaimer

This project involves modifying a perfectly safe commercial espresso machine. These modifications absolutely make your espresso machine less safe. It involves both water and electricity. Please proceed at your own risk. This is a dangerous modification! If you don't do it right, people will die over a cup of coffee!

These instructions assume you are proficient in handling both DC and AC electrical components and plumbing. If you are not, this is not the project for you at this time, sorry! Learn with other projects and then come back to this one :-)

Also, I know absolutely NOTHING about proper coffee. It's quite possible everything I'm doing here is wrong, so don't yell at me. Anything I do know, I've learned by watching the awesome coffee videos from James Hoffman

Parts List

I will explain in detail how each of these are used. Here is a list of all major components needed for this modification and links to where you can acquire them. The brown parts in the above Robo Gaggia diagram are all 3D printed. I designed them using Fusion 360. Below, I've included links to the resulting STL (stereolythic) files which can be used on any 3D printer.

  1. 12 DC Power Supply and the DC-DC Buck Converter are both combined together to provide 12Vdc and 5Vdc. The 3D STL file for the AC/DC power enclosure body and enclosure lid are included.
  2. High Power Solid State Relay(SSR) (1) You drive this with 12vdc and it's used to turn on and off AC. This is used to switch the 'solenoid valve' on the Gaggia which determines if water goes to the brewhead or the steam wand. I mounted this on the inside of the Gaggia using bolts.
  3. NPN Transistor and 10K resistors (4) We use these to isolate the Microntroller, which is actually turning things on and off at a logic level of 3.3V, from the 12v signal level needed to switch the SSRs.
  4. Low Power Reed Relay This is for switching the water solenoid valve for the water reservoir.
  5. Water Solenoid Valve. This has quick connectors for 1/4" water lines typically used for refridgerators. This particular item has blue lockrings for the quick connects. This valve is installed on the inside of the Gaggia using a harness I designed. Here are the STL files for this Solenoid Valve HarnessSolenoid Valve Hanger. You'll need to print two hangers and you will need to remove the 'water fill' spout that sits inside the rear of the Gaggia. You won't need it anymore!
  6. 1/4" flexible water line and fittings This is important for plumbing up the Gaggia to a nearby water source such as refrigerator.
  7. Particle Argon Microcontroller This is a Wifi-enabled Arduinio-based controller. You program this controller using the Visual Studio Code IDE with the Particle Workbench extension installed. I've included the roboGaggia.ino source file which can be used to program the Argon
  8. Long Quicc Cable (2) and Assorted Quicc Cables (1) SparkFun's Quiic Connectors are used to connect together many of the electronic components on this list. These cables carry the I2C communications bus protocol.
  9. 500g Mini Load Cell and Qwiic Scale Controller The load cell is contained within a 3D-printed Scale Enclosure. STL Files Scale BottomScale TopScale Retainer ClipScale Lid
  10. 20x4 B&W LCD Display This covers the Gaggia's Brew and Steam buttons becuase they are no longer required. STL Files LCD BottomLCD TopLCD Bezel. NOTE: You need to drill a hole in the LCD Bottom for the LCD cable. You'll see what I mean when you try to put it all together.
  11. Arcade Button and I2C Button Controller A single arcade-style button is used for all user interaction now with the Gaggia (well, other than the power switch). You will need to solder the switch from the Arcade button to the I2C button controller. I also bought this button, which is the normal switch that goes with this controller. I tested this button to see which contacts on the controller should be soldered to the Arcade button. Here are the STL Files Arcade Button Enclosure and Arcade Button Lid. In addition, this button enclosure is also where I put the Qwiic Scale Controller. Notice in the picture, the conduit from the scale leads into this enclosure.
  12. K-Type Thermocouple (2) and Thermocouple Controller (2) You will be replacing the Gaggia's stock thermostats with these thermocouples. They are M4 type screws. Robert Kujawa has a fine video on how to swap out these thermostats. Ignore most of the video as it describes how to install a commercially available PID, just uset the video to learn how to access those thermostats. The Argon Microcontroller and software that we will be using will implement both brew and steam PIDs.
  13. AC Dimmer Controller This is used to adjust the power delivered to the water pump in order to affect flow control. The Pressure PID modulates the 'dutyCycle' of the water pump, based on pressure readings, using this dimmer. If this dimmer is 'off', the pump is off.
  14. Thermal Fuse The Gaggia is protected by a thermal fuse. If the termperature inside the Gaggia exceeds 184C, this fuse blows and the Gaggia will stop working. It's good to have an extra one of these :-) This video by Sebastian Dehne will describe the technique you can use to replace a thermal fuse.
  15. Water Level Sensor This is used to measure the water level in the water reservoir. You can print the associated 3D STL file for the Water Sensor Mount, attach the sensor to the mount, and then glue it to the interior of the water reservoir. The software will ensure that the water never goes well below the sensor or above the sensor. In the last few seconds of the Video of RoboGaggia!, I show you where this sensor is placed inside the water reservoir.
  16. Water Pressure Sensor16-bit Analog to Digital Converter, and associated rubber tubingSensor ConnectorConnector Kit, and Y connector The sensor is spliced into the high pressure water line between the water pump and the solenoid valve. For this install, I had to remove the heater and disconnect many wires - so take pictures before you do this! This is used by the software 'Pressure PID' to determine how much power to send to the water pump. This gives us control over the Pressure Profile. I choose to use the 'hose clamps' that need a screwdriver rather than a crimper as these are easier to install in confined spaces. Also, the rubber hose above is reinforced. I tried many other options and they all failed. You must use this exact hose.
  17. RoboGaggia Printed Circuit Board 'Gerber' Design Files can be uploaded to OSH Park and then you can order a PCB to be fabricated and sent to you! It takes about 3 weeks and cost about $60 for three copies. The PCB has NO components. You have to buy them separately. Where the components have to go on the board, however, is labelled well so you can solder with confidence. The 3D STL file for the PCB enclosure are included.

Other modifications and purchases

These are other modifications & purchases I've made to my Gaggia which I've found useful:

  1. Bottomless Portafilter This is useful for observing how espresso is being extracted from your 'puck'
  2. High Quality Portafilter Basket
  3. Water Filter These are designed to be placed inside of your water reservoir.
  4. Silicon Group Head Gasket I found that the original Gaggia gasket would leak on occasion.
  5. Shower Disk for Group Head
  6. Backflush Basket and Cafeza Descaler
  7. Over Pressure Valve The Gaggia comes stock with a 12bar release valve. This means the pressure will attain 12bars inside of the heater before the valve spring will release pressure. This is appropriate if you are using the high-pressure basket that comes with the Gaggia, but if you are using a regular basket, you should dial it down to probably a 9bar spring. This is what I've done.