BrewZilla RAPT Programming- Step to Target Temp

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.


Supporting Member
HBT Supporter
Dec 30, 2015
Reaction score
Farmington Hills, MI
I've got a BrewZilla Gen4 and have been brewing with it the last several batches. Really digging it. I do a lot of step mashes, so was instantly thrilled that when setting up a mash profile I could either set it up to just step to a temperature over a fixed amount of time (typical) or start the step timer when I hit the target temperature. I instantly gravitated to "when I hit the target temperature".

However, the drawback I've seen is it literally means "when I hit the target temperature". And with the PID controller base gains, it pretty much never overshoots. Looks beautiful from a control perspective to come up like a square wave, but when the temperature never crosses that line, I get several extra minutes at the mash steps, which leads to an overall longer mash. Maybe in the future, the RAPT programming will have the ability to set a "target +/- 1 degree" or something to start the timer. In the meantime, I figure I need to play with the P, I, D gains to get a bit of overshoot when coming up to that first step.

Have others run into this? Figured out a suggested process or crude adjustment that gets them the overshoot on the first rise to temperature, but doesn't make an oscillating trainwreck after arriving there?

Base PID Gains:

First iteration of tweaked PID gains (tweaked P and I up by 10% each):

I'm thinking back to my college Controls classes, and I'm thinking I want to go back to base, but tweak up the I term more like 20% instead of 10%. Build up a bunch of controller gain while it's sitting a long way away from the target, that it ends up overshooting before being able to correct itself. But trying to tinker with as few batches as possible to hone it in. I guess I could aslo get there by turning off PID, since it would just heat until it hit the target.
Well, answering my own question after multiple experiments (heating just water so far). I fiddled with the PID gains, dropping the Derivative gain progressively and then finally setting it to 0. I still couldn't get any overshoot, so as a result, when I set up my mash profile to start counting when target temperature is reached, it spent lots of extra minutes sitting just under the target temp.

I finally decided to try it with the PID turned off. There's another setting where you set the heating hysteresis, and I set that to as small as possible (0.1 degrees). And voila, I got the below performance. Very small overshoot (2 degrees at first bump, then settles fairly quickly), but it tripped the trigger.

I guess in theory I could try to tune the PID gains to eliminate any overshoot and ripple, and instead go open loop, where I predict how long it will take to rise to temperature and then factor that in to my step time. But I think I like the PID off and set the step to start counting when it hits target temp.

PID Turned Off
In my RAPT stepped profiles, I set alert message at 2°C below target.

During mash, I'm using the RAPT probe thermometer.
Once mash is finished I power off the RAPT thermometer, so control goes back to the internal sensor. Just taking the probe out not a good idea, it then just gives room temp readings.

With diff 8°C; PID off; hysterises 2°C
Once grain in, the probe (grain bed temp) takes ages longer to reach next step target, than the built in sensor, which oscillates between target, and target +8°C, for 5min- 20min, depending on recirculation rate, before the probe reaches target -2°C.

By the time bed temp gets to target -2°C, its been close for maybe 5min, so starting timer then, seems better than waiting for the actual step temp.

First step: Strike temperature. Gives alert , and goes to next step (mash in temp) when target (strike) temp reached.
Rest of steps: go to next step when I press button. And give an alert when 2°C below step target. I then start a manual timer.
Using a manual timer, means I can store just a few basic profiles, then adjust step times dependant on recipe.

A big advantage, over straight manual operation, is you're not having to spend ages dialling in the same temperatures time after time.

eg. Basic mash profile "Beta-amylase 63":

1) Strike 69°C
2) Beta-amylase rest 63°C
3) Alpha-amylase rest 71°C
4) Mash out 77°C
5) Boil (105°C)
6) 0°C (with alert at 25°C)
If I don't need a 71°C rest, I just press button again to skip it.
Including last step, 0°C target, avoids any risk of overheat when later draining; cleaning or at next use. 0°C persists after power off-on.
The alert at 25°C lets me know when the immersion chiller is nearly done.

eg "Beta-glucan 45" - step mash profile:

1) Strike 48°C
2) Beta-glucan rest 45°C
3) Beta-amylase rest 63°C
4) Alpha-amylase rest 71°C
5) Mash out 77°C
6) Boil (105°C)
7) 0°C (with alert at 25°C)