Controlling overshoot

After getting my first fridge build together, I’m testing the accuracy of the BrewPi Spark control with 23l of water with submerged temp sensor. I cannot understand the overshoot problem I am seeing, I have played with Td settings and filter times as mentioned elsewhere in the forum but admittedly, I don’t understand them and am just guessing!

Here is a close up, which shows the beer temp reaching target just before 2200. The beer temp then drops to 0,5deg below target, but the cooler is still turning on and keeping it lower.

The same situation occurs with heating, the heat stays on for over an hour after beer reaches target temp driving the temp to 1.5deg over.

Any advice on how the settings should be in order to best control this would be gladly accepted! I also get the BrewPi screen toggling to this approx every 10 seconds, I have used a 2A PSU so am struggling to find an answer.


There are 3 things you can do to limit the overshoot caused by integrator windup:

  • Set the maximum difference between beer and fridge setpoint to 5 degrees.Your setup does not seem to be able to create a bigger difference anyway. But as long as the setpoint is clipped to this maximum, the integrator will be disabled.
  • For the beer to reach the fridge temperature seems to take 2-3 hours. The integrator should correct steady state errors, like the heat generated by fermentation. This is a much slower process, so you can set the integrator to say 5 hours (18000).
  • Use ramps instead of sudden steps.This will also give your yeast more time to adapt.

For example, I am doing a slow rise from 18 to 22 over 3 days on my current IPA fermentation:

So use ramps instead of steps and you won’t have any overshoot.

I must say though that I thought the integrator was disabled when the fridge setting was not reaching the fridge setpoint, so I will have another look at that. Does not seem to be the case on your setup.