Boil Detection

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

segallis

Well-Known Member
Joined
May 2, 2011
Messages
92
Reaction score
7
Location
melbounre
I'm trying to add a "boil detector" to my homebrewed electric controller. The reason for this detector is so the controller can precisely drive the heater to maintain a desired boil level - e.g. slow rolling boil vs vigorous boil. Temperature is useless for this type of detection (it's pretty bad for even detecting a boil at all - especially since wort isn't pure water).

I'm looking at two methods to start with:
1) A piezo detector that senses vibration in the kettle. Ideally I want the sensor beneath the kettle, but clipping the sensor to the lip or handle is acceptable. Possibly using frequency from the sensor in addition to amplitude to discern level of activity.
2) An ultrasonic ranging circuit (i.e. pulse and echo). The idea being that the more violent the boil the larger the variance in ranging measurements. (e.g a violent boil should have a variance of more than 30 us).

I'm about to do some testing with both these approaches over the next few days.

Other possibilities are:
3) IR LED & PIR, or even image processing from a camera looking at the surface. (My controller is a Raspberry Pi Zero W so the camera port is already there and would also add the cool feature of being able to look in on my kettle remotely)
4) A magnet and hall effect sensor. The magnet would have the freedom to float & bob at the surface near the edge - the sensor would be on the outside measuring motion (amplitude and frequency).

Anyone solve this problem already, or have any insights/ideas ?

Thanks,
-Greg
 
I'm skeptical differentiating between non-boiling and boiling states using airflow measurements would be reliable.
I'd have more faith in temperature plus vibration pattern recognition.

And right now I'm wondering if Die Beerery had already come up with a boil detection method, but I gather he's moved on from HBT...

Cheers!
 
Detecting boil vigor in real time isn't really necessary. Just run your system at a fixed power during the boil. You can test different volumes vs. power using water to get a pretty good idea of what will happen with wort. Power required will vary some with the air temp, and if outside, wind velocity.

Auber makes controllers called EZBoils (DSPRxxx) that allow you to set a temp below boiling and then run at full power until the trigger temp, and then automatically back off to a preset constant power for the boil. You could program your system to work the same way. Trying to get PID control mode to work during boil is more trouble than it's worth.

Brew on :mug:
 
Last edited:
Maybe you can use electric power added versus temperature rise. For example if temperature is more than 95C, is not rising anymore but you are still adding power (measure ampere) to the heating element then it must be boiling.
 
what about something like this...but bare bones?

https://www.amazon.com/Protmex-Anem...ocphy=9030206&hvtargid=pla-414479774317&psc=1
couold detect how much steam is rising couldn't it?
LOL, 1st, if I wanted to sped that kind of money, I would just be paying someone else to brew me great beer.
2nd, air velocity would be unreliable at measuring boil intensity in a kettle... outside... on different days- wind or no wind

A piezo element is about 24 cents, an ultrasonic ranger is may be $3.
 
LOL, 1st, if I wanted to sped that kind of money, I would just be paying someone else to brew me great beer.
2nd, air velocity would be unreliable at measuring boil intensity in a kettle... outside... on different days- wind or no wind

A piezo element is about 24 cents, an ultrasonic ranger is may be $3.


lol, just trying to keep the creative juices flowing! :mug:
 
lid with 3" vent, measure the boil off digitally....
Temperature of steam doesn't change with intensity (neither does temp of liquid). Trying to measure boil off is not practical. The goal is to have real-time status of boil intensity over a couple of second interval. The reason, is to control the heater to maintain a specific level of boil ACTIVITY. The sensor needs to be real-time, low-latency in order to prevent up and downs all over the place so that boil intensity is also not all over the place.
 
Interesting! I'm not sure a camera will work... it will fog in a jiffy, unless you superheat it above the steam temp. I do think an audio sensor would best qualify the vigorosity (word?) of the boil.
The idea is a camera well above (maybe 3 ft), and at an angle to the kettle (maybe 1 to 2 ft off center). BTW, I'm using this approach for my ultrasonic sensor so it is not in the plume of steam.
 
Detecting boil vigor in real time isn't really necessary. Just run your system at a fixed power during the boil. You can test different volumes vs. power using water to get a pretty good idea of what will happen with wort. Power required will vary some with the air temp, and if outside, wind velocity.

Auber makes controllers called EZBoils (DSPRxxx) that allow you to set a temp below boiling and then run at full power until the trigger temp, and then automatically back off to a preset constant power for the boil. You could program your system to work the same way. Trying to get PID control mode to work during boil is more trouble than it's worth.

Brew on :mug:
Nah, that is ok, but not precise at all. Power to the heater doesn't relate to boil intensity due to variations like boil volume, sugars in the wort, ambient temperature, ambient wind, how far into the boil, etc. I understand that that is a typical work flow - my goal is to add a level of control an automation that is not achievable with the crude set power level approaches.

I had considered entering ambient wind and temp to compensate like you mention. I can even measure ambient temp with the Rasp Pi internal temp sensor. Unfortunately, even that does little to get accurate enough control over the heater to maintain low vs vigorous boil.

Once boil level data is provided to the controller, then WAY MORE control and precision is possible.

BTW, I will be posting some data that seems to indicate that boil level is easily measurable with a piezo pickup.


-G
 
Last edited:
Thanks for the ideas and critique! I am skeptical that any method involving power in vs temp, or any other measure of delta energy can provide the resolution and response needed for maintaining the precise level of boil - i.e. simmer, low boil, vigorous boil. If someone has any empirical data to support these approaches , I would be eager to see it.

Thus far, actual vibration data is showing much promise. I intend to test the ultrasonic approach as well. I also need to replicate my vibration test using my actual 20 gal kettle and base with 7 to 18 gallons of liquid- as well as trying base mount, sandwiched beneath the kettle, clipped to rip, clipped to handle. (My preliminary tests were with a small pot on my cooktop).

-G
 
I use an electronic voltage controller, first for the mash at 66 deg c then to control the boil, works really well, keep it simple..............
 
I use an electronic voltage controller, first for the mash at 66 deg c then to control the boil, works really well, keep it simple..............
Yup, I get keeping things simple. But controlling power can't achieve what I'm trying to achieve, which is controlling the actual boil level activity. Power, voltage, heater output can't account for boil volume difference, OG difference and ambient conditions - i.e. wind and outside temp which are the major factors for me (97 degrees to 40 dgress, 0 to 20 knots). Besides the controller already has the smarts to do the controlling.
:)

-G
 
The short answer: IT WORKS (see the middle of this post for measured results).

The long answer:
After taking some data and analyzing it several different ways, I have some conclusions as well as a working solution to the problem of boil-level detection. I captured 5 seconds of data at 40 Ksps (i.e 200k samples) for various stages in the heating, boiling, cooling cycle.

When I first looked at the data there was nothing in the raw sample amplitude that would allow differentiation of simmer, low-boil, medium-boil-vigorous-boil. So then took an FFT to look at the frequency response. The first thing I noticed was that the samples were all riding on top of a higher amplitude 60 Hz noise. Makes sense why amplitude is useless. But I could also see slight differences in the frequency response as a function of boil activity.

A few beers later and I got an idea. I looked at the time variation of the frequency response. BINGO!

The piezo element has a resonant sweet spot around 4kHz to 6 kHz, so that is the band I focused on. Then I looked at the variance of the signal power in that frequency range over the 5 second capture. Here are the results:

capture 03 variance = 0.434670 80F
capture 04 variance = 0.475949 110F
capture 05 variance = 0.515063 177F
capture 06 variance = 2.107850 starting to simmer
capture 07 variance = 1.726557 slight simmer
capture 08 variance = 3.727064 low boil
capture 09 variance = 4.518040 medium boil
capture 10 variance = 12.606447 fast boil
capture 11 variance = 15.200178 very fast boil
capture 12 variance = 11.427568 very fast boil
capture 13 variance = 31.578480 turned heat off / very fast boil
capture 14 variance = 1.323192 210F / stopped boiling
capture 15 variance = 0.688691 186F
capture 16 variance = 0.586030 162F

I can clearly discern between simmer, low-boil-medium-boil and vigorous-boil based on this data.

I also have a simple scheme that eliminates the need for calibration - which would likely depend on kettle volume, wort density, type of kettle, and a particular day's setup.

For the techies that are interested: I also experimented with ultrasonic ranging. IMO opinion this is not practical. The sensors have too wide a field of view and are subject to lots of sample variance even under ideal conditions. It did get me thinking about another possibility though. Using a narrow focused laser/LED, with a simple photo-transistor or PID detector to measure the reflection. I suspect that variation in intensity, time delay and frequency would yield usable data. But the piezo is MUCH easier to attach and no alignment necessary.

(FYI, the time-sliced FFT is attached)

-Greg

P.S. More technical info: you can't reliably use an ESP8266 , ESP32, Arduino, etc for these type of measurements since you can't get EVENLY spaced data captures. Calling the ADC read routine in C or Python will not give you a known sample rate so frequency info is lost. On the other hand, a PC soundcard, or external ADC (SAP or delta-Sigma running off a decent clock) will get you usable samples for frequency analysis.
 

Attachments

  • Screenshot from 2021-02-02 00-38-56.png
    Screenshot from 2021-02-02 00-38-56.png
    214.4 KB · Views: 21
Last edited:
Segallis - I boil for 1 hour. In that hour I weigh out hops, make a cup of coffee, maybe make a couple of phone calls, start washing up, and once every 10 minutes check the boil, and tweak the voltage controller as necessary.. You are obviously very knowledgeable, and so know that mains voltage in the UK is not always 240.0 volts, it varies from 228 to 244 or so. Likewise frequency varies from approx 49 to 51. If we can land a small spacecraft on an asteroid we can control boil level of our wort. But at what cost, in time, effort, and monetary terms.
 
I buy some commercial beers eg Oakham Citra, Dark Star APA, for a change, and to make sure mine are equal or better. My local microbrewery is Pot Belly, their Pigs do Fly is superb. In general, I think USA home brewers are more into equipment than us yokels in UK...Brewing a SMASH with Pacific Jade hops as we speak / type..............
 
not forgetting my costs are 25p a pint, cheapest decent bottled beer I can buy is £1.50 per 500 ml
 
Time and effort in developing a solution is part of the fun and challenge for me. Like brewing beer from scratch instead of buying it. Monetarily, the piezo cost about a dime, so controlling boil level vs setting a fixed power level is basically no cost. The benefits can include no boilovers, lower power consumption, optimized hop isomerization, auto notification of boil start, auto timing of actual boil, etc
 
Interesting thought exercise..

Immediate thought was boiloff/time = reduced mass(or weight) which could be measured and would occur at different vectors depending on boil.
This thought was quickly discarded because of need to control boil and probably (on a homebrew level) could not be measured accurately quickly enough(especially because it would vary by air humidity(weather), and elevation(not as variable))..

I'm not sure piezo(inside the boil kettle, exposed to mass humidity) will work as well as you want. I would be interested in your findings though.

What I have found is I had to manually tune my system over time.. one I got there, I could set my element to fire at 100% until my wort hit 205, kick back to 50% til I hit 208(initial boil with lid on, steamslayer clone running), then 17% when it hits 210 through the end of the boil. This gives me a nice rolling boil all the way through. I still have the system let me know when I hit 200, and watch it closely through to boil.

I'm sure my system varies by wort gravity and other factors. Not sure that anything other than AI/machine learning is going to beat my current system for me though(I would love to be proved wrong).
 
I think sound might work = detected through a phone app == but I skim off the brown sludge pre-boil anyway "so the Ayes have it". UK joke.
 
I've got a pair of these. They work quite well.
View attachment 717878
My goal is automate the boil process for power and time efficiency, optimal hop isomerization, avoiding boil overs, and mostly, freeing me up from watching a pot boil. I thought about a web cam, but that still requires me observing a 90 minute process. The boil detector will probably save me and hour to an hour and a half of my time and needing to adjust heating power, besides giving me a more accurate time when the boil actually starts. People often show up on brew day and I'd rather be inside drinking beer with them :) (or at least being productive cleaning equipment and fermenters). After 35 years of brewing, I'm all about streamlining the process.
 
Interesting thought exercise..

Immediate thought was boiloff/time = reduced mass(or weight) which could be measured and would occur at different vectors depending on boil.
This thought was quickly discarded because of need to control boil and probably (on a homebrew level) could not be measured accurately quickly enough(especially because it would vary by air humidity(weather), and elevation(not as variable))..

I'm not sure piezo(inside the boil kettle, exposed to mass humidity) will work as well as you want. I would be interested in your findings though.

What I have found is I had to manually tune my system over time.. one I got there, I could set my element to fire at 100% until my wort hit 205, kick back to 50% til I hit 208(initial boil with lid on, steamslayer clone running), then 17% when it hits 210 through the end of the boil. This gives me a nice rolling boil all the way through. I still have the system let me know when I hit 200, and watch it closely through to boil.

I'm sure my system varies by wort gravity and other factors. Not sure that anything other than AI/machine learning is going to beat my current system for me though(I would love to be proved wrong).
The piezo was clipped on the handle of the pot with a binder clip. The results were very good., and easily allow for discerning varying intensity of boil. I plan to repeat with my actual 20 gal kettle as well is as seeing if I get similarly reliable results by having the sensor in/on the base, rather than clipped to the handle. My goal is the have the Raspberry Pi make all the power measurements you mention automatically - esp since my wort volumes, additives and OG can vary significantly.
 

Latest posts

Back
Top