HX Flush Arduino Project

Beginner and pro baristas share tips and tricks for making espresso.
User avatar
ufergus
Posts: 61
Joined: 14 years ago

#1: Post by ufergus »

I have been working on a small project to assist in the HX flush routine of my QuickMill Vetrano. The HX flush routine isn't complicated but I had an Arduino board lying around and an itch to scratch. The project is pretty much a glorified timer with a state machine to move through the flush and brew process.

Features
- Keeps track of idle periods to detect whether an idle cooling flush is needed
- Provides audio feedback during the brew process so you can keep your eyes off the timer
- Collects, stores and dumps time statistics through serial port
- Throttles shots per hour with post brew stabilizing period

Hardware
1 - Arduino Uno R3 w/ Case
1 - Arduino ProtoShield
1 - NO momentary button
1 - Piezo
1 - LCD

Source (The .ino file is the Arduino IDE source)
Google Drive Link
I usually don't comment my code very well so if you have questions just ask.

I have learned a lot from this site and wanted to give something back. Maybe someone will find this useful.
rich

User avatar
ufergus (original poster)
Posts: 61
Joined: 14 years ago

#2: Post by ufergus (original poster) »

Here are a few pictures. I had to make some of them dark so the LCD screen would be readable.







rich

User avatar
ufergus (original poster)
Posts: 61
Joined: 14 years ago

#3: Post by ufergus (original poster) »

I have about four weekends worth of shot data and have begun to plot some idle vs flush times. I am interested if there is reliable way to predict shot temperature based on time and not temperature. The first thing I noticed, it doesn't matter how long the machine has been idle, it doesn't take longer than 27-28s to flush the group to 206F.



Here is a plot looking at flush data with shorter idle times. The logarithmic trend line reaches the 27-28s mark at around the 9-10 minutes, which lines up with the long idle cooling flush recommended in the Vetrano Buyers Guide

rich

jonr
Posts: 610
Joined: 11 years ago

#4: Post by jonr »

I expect that measuring the temperature would reduce the rather high variability.

User avatar
Chert
Posts: 3537
Joined: 16 years ago

#5: Post by Chert »

Thanks for this thread, rich.

It has already helped my to see how someone hardwires (ie solders) an Arduino to use some of the i/o that is not connected to the shield.
LMWDP #198

User avatar
ufergus (original poster)
Posts: 61
Joined: 14 years ago

#6: Post by ufergus (original poster) »

jonr wrote:I expect that measuring the temperature would reduce the rather high variability.
I don't follow what you are saying. I am measuring temperature. I am measuring the time it takes for the group head thermometer to read 206F from idle. I know there is some variability introduced by the guy pushing the button and flipping the group lever. There is also some variability introduced by how the thermometer updates. Sometimes I flush a little long and sometimes I flush a little short trying to predict the next temp update.
rich

User avatar
ufergus (original poster)
Posts: 61
Joined: 14 years ago

#7: Post by ufergus (original poster) »

Chert wrote:Thanks for this thread, rich.

It has already helped my to see how someone hardwires (ie solders) an Arduino to use some of the i/o that is not connected to the shield.
Glad it helped someone :)

Your comment did make me realized I forgot the Arduino ProtoShield form the hardware list above. I'll fix that. I can probably dig up some more Arduino pictures from another project if you have other questions...
rich

pocojoe
Posts: 183
Joined: 12 years ago

#8: Post by pocojoe »

Hi Rich,

Thanks for the posting and the source. Just reading it for the first time.

I am not familiar with your machine; can you describe the temperature sensor you use, and the buffer amp (if any) that was required ahead of the Arduino?

Thanks

Joe
PocoJoe
Safety Third- First Roast, then Grind

jonr
Posts: 610
Joined: 11 years ago

#9: Post by jonr »

ufergus wrote:The project is pretty much a glorified timer .... I don't follow what you are saying. I am measuring temperature.
Is the Arduino measuring temperature(s) and using it as part of the control algorithm? Or is temperature being measured only for development and verification with time as the input variable?
ufergus wrote:Keeps track of idle periods to detect whether an idle cooling flush is needed
Ie, it is using time (not temp measured directly during the control process)?

pocojoe
Posts: 183
Joined: 12 years ago

#10: Post by pocojoe »

Or perhaps you have an external E61 group digital thermometer and you are watching it manually, and recording the time it takes to hit 206? Is that your process?

I understand the other benefits of the Arduiino - timing your shots, perhaps prediciting how long for a given intial temp of the group head it will take for the machine be ready for the optimal "walk-up" shot to occur- but how does the data that you collect help you in other ways (besides scratching that itch we all get when we have to make something??)

Thanks
Joe
PocoJoe
Safety Third- First Roast, then Grind

Post Reply