thegreatfalcon5
New member
Howdy! as they say.
For some time now, I have been tinkering with my Breville Cafe Roma in search of better brew. Maybe I should disclaim right from the start that I still haven't found it in this machine hehe. Well, after much time and efforts I believe that I was able to get a bit more consistent brew temperatures thus resulting in more consistent shots. I just wanted to write about my journey to either stimulate the modding community - which is rather weak for the CafeRoma - or strongly discourage people who think that a few bits and pieces here will lend them pro-level espresso machine coffee with a, honestly, cheap ass machine.
Welp, here's the beast:
The first thing I had in mind was getting repeatable and preferably precise brew temperatures. The way I go about this is with two TMP36 temperature sensors mounted on the thermoblock. Each going into a separate analog input of the Arduino and then averaged in software. The sensors are mounted using the left over hardware of the old thermoswitches that come stock with the CafeRoma.
If you think the wiring is a mess already, wait until we get to the Arduino enclosure........
Obviously, there are two pressure sensors/gauge right next to the temperature sensors. These bad guys have had holes drilled and tapped into the thermoblock. The analog gauge is often used to mod the Gaggia Classics. Can be had for around 30USD I believe. The pressure sensor is from Amazon. It's a 300PSI sensor with 1/8NPT threads (nightmare) which outputs supposedly 0.5-4.5V depending on the pressure. However, as I found out, this 25CAD sensor likes to free-run above around 80C and outputs a bunch of gibberish voltage. Since in the programming of my Arduino the pump stopped when the sensor saw 9bar+, when the sensor got into crazy mod and stuck at 18bar+, I couldn't get the pump to run at all. This sensor has been bypassed and replaced by a simple potentiometer seen on the front side of the machine, with a big knob (big knobs are koooool).
So as for user inputs there are:
On the two lines, I display the current temp, and the target temp. I have some trouble with the custom characters in these shots but there's a coffee mug that should appear when the current and target temperatures are close. Anyhow, it's pretty nifty to see these parameters change over time...
The second line shows a "progress bar" depending on the position of the pump control knob. And a custom character to reflect the current mode.
Since there is no OPV in this machine, the goal is to target 9bar modulating the pump duty cycle. With the big knob it's rather easy to stay between 8 and 10 bars. The arduino is responsive enough and it's quite pleasant to use.
And here's a shot of the analog pressure gauge as seen when the machine is closed:
And here comes the mess:
Target Temp:
Simply a 10k potentiometer connected to VCC/GND and to an analog input of the Arduino.
Arduino Uno:
Out of the box Arduino Uno. Still many IO available.
Heater Relay:
This is a pretty neat solid state relay. It's about 30CAD? on Amazon. Rated at 480VAC and 40A, it is more than enough for the heater. I was actually going for the 20A relay when I saw that this 40A was 1-2$ cheaper soooooo.... Works like a champ. The back of the relay is bolted with thermal paste to the stainless steel case of the CafeRoma, there's a hole cut into the plastic box to accommodate this. These relays usually need a heatsink to stay happy but sinking it's thermal output into the stainless steel enclosure seems more than enough.
DC PSU GND anc VCC:
This is a small terminal strip to accomodate the many 5V and GND wires coming and going in all directions. The current PSU of the Arduino (plugged in the VccIN) is a 9V wall brick (off shot).
VAC stuff:
Simply a higher VAC rating terminal block for splitting the VAC stuff. There's AC120V coming in from the wall that need to go to both the pump relay and heater relay. Both have a neutral coming back. This could have been done with soldering and shrink but I wanted the flexibility and serviceability of a terminal block. And I had one lying around sooo...
Pump relay:
This is a much cheaper solid state relay. I believe that it is only rated at 120VAC/2A. This is plenty enough for the pump. However, the main drawback of this particular relay is that it only closes when the sinus crosses a 0VAC point. So this gives a rougher resolution of ON/OFF. Anyhow, with the vibratory pump of the CafeRoma, it doesn't make much difference anyway since it's pretty rough the way it operates anyway.
This is my first writeup kind of post so I don't quite know what I should add more or less. I attached my Arduino files so that if anyone's interested exploring this avenue with either a CafeRoma or another machine they'll have a starting point...
Feel free to ask questions and tell me that this heresy shall be punished by fire and stoning lol.
For some time now, I have been tinkering with my Breville Cafe Roma in search of better brew. Maybe I should disclaim right from the start that I still haven't found it in this machine hehe. Well, after much time and efforts I believe that I was able to get a bit more consistent brew temperatures thus resulting in more consistent shots. I just wanted to write about my journey to either stimulate the modding community - which is rather weak for the CafeRoma - or strongly discourage people who think that a few bits and pieces here will lend them pro-level espresso machine coffee with a, honestly, cheap ass machine.
Welp, here's the beast:
The first thing I had in mind was getting repeatable and preferably precise brew temperatures. The way I go about this is with two TMP36 temperature sensors mounted on the thermoblock. Each going into a separate analog input of the Arduino and then averaged in software. The sensors are mounted using the left over hardware of the old thermoswitches that come stock with the CafeRoma.
If you think the wiring is a mess already, wait until we get to the Arduino enclosure........
Obviously, there are two pressure sensors/gauge right next to the temperature sensors. These bad guys have had holes drilled and tapped into the thermoblock. The analog gauge is often used to mod the Gaggia Classics. Can be had for around 30USD I believe. The pressure sensor is from Amazon. It's a 300PSI sensor with 1/8NPT threads (nightmare) which outputs supposedly 0.5-4.5V depending on the pressure. However, as I found out, this 25CAD sensor likes to free-run above around 80C and outputs a bunch of gibberish voltage. Since in the programming of my Arduino the pump stopped when the sensor saw 9bar+, when the sensor got into crazy mod and stuck at 18bar+, I couldn't get the pump to run at all. This sensor has been bypassed and replaced by a simple potentiometer seen on the front side of the machine, with a big knob (big knobs are koooool).
So as for user inputs there are:
- The main knob/valve switching between steam and brew modes
- The pump duty cycle control knob
- The temperature target knob
On the two lines, I display the current temp, and the target temp. I have some trouble with the custom characters in these shots but there's a coffee mug that should appear when the current and target temperatures are close. Anyhow, it's pretty nifty to see these parameters change over time...
The second line shows a "progress bar" depending on the position of the pump control knob. And a custom character to reflect the current mode.
Since there is no OPV in this machine, the goal is to target 9bar modulating the pump duty cycle. With the big knob it's rather easy to stay between 8 and 10 bars. The arduino is responsive enough and it's quite pleasant to use.
And here's a shot of the analog pressure gauge as seen when the machine is closed:
And here comes the mess:
Target Temp:
Simply a 10k potentiometer connected to VCC/GND and to an analog input of the Arduino.
Arduino Uno:
Out of the box Arduino Uno. Still many IO available.
Heater Relay:
This is a pretty neat solid state relay. It's about 30CAD? on Amazon. Rated at 480VAC and 40A, it is more than enough for the heater. I was actually going for the 20A relay when I saw that this 40A was 1-2$ cheaper soooooo.... Works like a champ. The back of the relay is bolted with thermal paste to the stainless steel case of the CafeRoma, there's a hole cut into the plastic box to accommodate this. These relays usually need a heatsink to stay happy but sinking it's thermal output into the stainless steel enclosure seems more than enough.
DC PSU GND anc VCC:
This is a small terminal strip to accomodate the many 5V and GND wires coming and going in all directions. The current PSU of the Arduino (plugged in the VccIN) is a 9V wall brick (off shot).
VAC stuff:
Simply a higher VAC rating terminal block for splitting the VAC stuff. There's AC120V coming in from the wall that need to go to both the pump relay and heater relay. Both have a neutral coming back. This could have been done with soldering and shrink but I wanted the flexibility and serviceability of a terminal block. And I had one lying around sooo...
Pump relay:
This is a much cheaper solid state relay. I believe that it is only rated at 120VAC/2A. This is plenty enough for the pump. However, the main drawback of this particular relay is that it only closes when the sinus crosses a 0VAC point. So this gives a rougher resolution of ON/OFF. Anyhow, with the vibratory pump of the CafeRoma, it doesn't make much difference anyway since it's pretty rough the way it operates anyway.
This is my first writeup kind of post so I don't quite know what I should add more or less. I attached my Arduino files so that if anyone's interested exploring this avenue with either a CafeRoma or another machine they'll have a starting point...
Feel free to ask questions and tell me that this heresy shall be punished by fire and stoning lol.