Sudden temperature drop


I got my Spark and I am having difficulty setting up a proper regulation. I use the fridge for fermenting beers but also breads, which must be kept at 19 degC overnight. the regulation is based on the fridge temperature only, so the set-up is quite basic.
As you can see on the graph (orange curve), the regulation is more or less ok for a while, then the temperature drops without obvious reason, at around 18h, midnight and this morning around10h. What I don’t get for the 2 last hours is that the cool pin state is 0 and the heat in on, but the temperature keeps dropping. The 2nd and 3rd pictures are snapshots of the PID settings. I also added the fridge settings.
Do you have an idea what can cause this malfunction?
Also, do you think I can regulate the temperature with s smaller bandwidth (currently between 17-20 (-2/+1 degC)?

Thank you for your help!


Your sensor is reporting -1 degC. Is your fridge actually that cold, or is the measured value incorrect?

Could you please run the following diagnostics?

  • brewblox-ctl log
  • brewblox-ctl particle -c eeprom

Very likely. Air temp always has more variance than beer temp, but normally a 0.5-1 degC range is achievable.

You seem to be heating and cooling at the same time, or at least quickly after each other.

Do you still have the mutex limits generated by the wizard? Are the pin assignments correct in the cool and heat actuator?

If you share the log, it will include these settings for us to check.

Thank you guys for your quick reply.
I have a horeca fridge and I managed to get it down to -18, during a test :wink:
@Elco, I am sure the pins are properly assigned, and the mutex is currently 0

I have attached the log and the eprom file. I hope they make sense because something went wrong when I was playing with the commands, now the box is “waiting for datastore” :frowning:
If not I can reinstall everything and make a new test.

eeprom.bin (128 KB)
log.txt (109.1 KB)

brewblox-ctl down
unplug spark
plug spark back in
brewblox-ctl up

If you get a connection to the spark again, export blocks from the web interface. On the spark service page, top right menu (3 dots).

Here is the export:
brewblox-blocks-spark-one.json (8.5 KB)

I see no problem with the settings in your blocks.

The heater locks the mutex for 20m after it turns off. The cooler for 45m. This is set in their constraints.
I would increase these values so you never get active heating after active cooling.

Also check that you don’t have the heater and cooler swapped. It looks like your temperature drops when you are heating.

Hi Elco,

I double checked the curves and the pins seem to properly be connected. The fridge temp starts decreasing (orange) when the cool pin is on (blue) and increases again when the heat picks up (red). I have never managed to get the regulation within +/- 1degC. My fridge has a fan on both the cooling and the heating circuits, so it reacts extremely fast. I will continue playing with settings,

If you’re not using a compressor for your cooling, you’ll indeed end up with significantly different settings. PWM period and mutex lockout can be decreased drastically.

The heater turns on almost directly after the cooler.
This is wrong, the mutex should prevent that. I checked your json file again.

Your constraints have the extra hold time set to zero on both the heater and the cooler.
Our wizards set the values to 45m for the cooler and 20m for the heater. Did you change them?

Please try setting these values back to our defaults. You don’t want to actively heat and actively cool directly after each other. You want to cool, then let it rise naturally. That is why you want the compressor to block the heater from turning on for 45m when it has run.