Was working perfectly, then randomly started cycling refrigerator very quickly [Arduino]

Hi all,

I am running the following setup:

  • Chest freezer
  • No heater – I took it out after realizing it was oversized and causing huge temp swings
  • Probe inside the beer (5 gallon fermentor bucket with no thermowell)
  • Probe inside the freezer, just dangling about halfway down
  • Probe outside the freezer for room temp.
  • Two 5 gallon buckets, one filled with water, one filled with the beer (with the probe inside the beer)
  • A small USB desk fan that runs all the time
  • Arduino
  • Beer constant mode at 70F

After successfully running several water buckets, I started running a beer batch. After a couple of days, randomly it started heating which caused a huge temp. swing. I pulled the heater, recognizing that ambient temp is sufficient for heating.

Problem:
Instead of smoothly activating the freezer, it cycles the freezer on and off ~5 times in the cooling period, rather than just one long “on” cycle. It appears to be reaching the freezer set point too quickly, or the set point is too high. See attached photo. I would prefer the freezer to stop cycling as much as it is.

Attempt at troubleshooting:
Decreased all filtering delays to shortest possible setting. Seems to have no effect.

I suspect it has something to do with the PID settings, but I am hesitant to screw around with them as I don’t want to mess up this beer. I was hoping someone could take a look and maybe provide a better educated response.

See below for my control algorithm:

The fridge temperature is not regulated with PID on Arduino, it just cools on and off, with some overshoot detection.
In the Arduino version, only the fridge setpoint is set with PID.
You cannot configure the minimum cooling and minimum idle time, these are hard coded.

What you can do is set the idle range, so it doesn’t cool if within x degrees of the setpoint.

Or you can upgrade to the Spark, where you can configure:

  • Fridge PID settings
  • Fridge cycle time (period)
  • Fridge minimum cooling time and minimum idle time