New BrewPi setup running 0.4.3 not heating

New BrewPi Spark that I’m testing (flashed 0.4.3 this morning). I have an RPi 3 with a Spark Photon from BrewPi hacked into a wine cooler to directly control the compressor and a ferm wrap for heating. Cooling mode worked well (brought 100F water in a water bottle down to 65F pretty quickly… ). During manual testing mode with the pre-installed system the heating side worked fine, but now the BrewPi Spark isn’t calling for heat. Any comments on my settings to initiate heating mode? I brew saisons pretty frequently so heating mode is pretty critical.


Beer-to-Fridge proportional gain (Kp)Actuatour output in % = Kp * input error
2

Send to Photon
Beer-to-Fridge integral time constant (Ti)The input error is slowly accumulated in the integrator. A steady state error that is not corrected by Kp, is corrected by the integral. The integral part grows by the proportional part every Ti seconds. If you let it grow to quickly, this can create overshoot. Be careful.
7200

Send to Photon
Beer-to-Fridge derivative time constant (Td)The derivative is the temperature difference per second. The derivative part of PID is -Kp * Td * dT/dt. This can be interpreted as looking Td seconds ahead. For very slow processes (like fermentation), it is recommended to disable the derivative gain by setting it to zero. The limited sensor resolution will make it hard to distinguish bit flips from rises in temperature.
1200

Send to Photon
Maximum difference between fridge and beer set point (= output of PID)The output of this PID is added to the beer set point to automatically set the fridge set point. You can define the maximum difference between the beer temperature setting and fridge temperature setting here.
18

Send to Photon
Beer-to-Fridge Input filter delay timeInput to the PID is filtered. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Beer-to-Fridge Derivative filter delay timeInput to the differential gain is filtered, to prevent bit flips from causing a high derivative. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Cooler proportional gain (Kp)Actuatour output in % = Kp * input error
10

Send to Photon
Cooler integral time constant (Ti)The input error is slowly accumulated in the integrator. A steady state error that is not corrected by Kp, is corrected by the integral. The integral part grows by the proportional part every Ti seconds. If you let it grow to quickly, this can create overshoot. Be careful.
1800

Send to Photon
Cooler derivative time constant (Td)The derivative is the temperature difference per second. The derivative part of PID is -Kp * Td * dT/dt. This can be interpreted as looking Td seconds ahead. For very slow processes (like fermentation), it is recommended to disable the derivative gain by setting it to zero. The limited sensor resolution will make it hard to distinguish bit flips from rises in temperature.
200

Send to Photon
Cooler PWM period (seconds)Each PWM cycle takes this many seconds. A value lower than 4 seconds is not recommended.
1200

Send to Photon
Cooler minimum OFF timeA fridge compressor needs to be OFF for a minimum time to protect it from building up pressure and overheating.
600

Send to Photon
Cooler minimum ON timeA minimum ON time is also recommended, because many short cycles limit the compressor lifespan.
300

Send to Photon
Cooler Input filter delay timeInput to the PID is filtered. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Cooler Derivative filter delay timeInput to the differential gain is filtered, to prevent bit flips from causing a high derivative. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Heater 1 proportional gain (Kp)Actuatour output in % = Kp * input error
10

Send to Photon
Heater 1 integral time constant (Ti)The input error is slowly accumulated in the integrator. A steady state error that is not corrected by Kp, is corrected by the integral. The integral part grows by the proportional part every Ti seconds. If you let it grow to quickly, this can create overshoot. Be careful.
600

Send to Photon
Heater 1 derivative time constant (Td)The derivative is the temperature difference per second. The derivative part of PID is -Kp * Td * dT/dt. This can be interpreted as looking Td seconds ahead. For very slow processes (like fermentation), it is recommended to disable the derivative gain by setting it to zero. The limited sensor resolution will make it hard to distinguish bit flips from rises in temperature.
60

Send to Photon
Heater 1 PWM period (seconds)Each PWM cycle takes this many seconds. A value lower than 4 seconds is not recommended.
4

Send to Photon
Heater 1 Input filter delay timeInput to the PID is filtered. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Heater 1 Derivative filter delay timeInput to the differential gain is filtered, to prevent bit flips from causing a high derivative. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Heater 2 proportional gain (Kp)Actuatour output in % = Kp * input error
10

Send to Photon
Heater 2 integral time constant (Ti)The input error is slowly accumulated in the integrator. A steady state error that is not corrected by Kp, is corrected by the integral. The integral part grows by the proportional part every Ti seconds. If you let it grow to quickly, this can create overshoot. Be careful.
600

Send to Photon
Heater 2 derivative time constant (Td)The derivative is the temperature difference per second. The derivative part of PID is -Kp * Td * dT/dt. This can be interpreted as looking Td seconds ahead. For very slow processes (like fermentation), it is recommended to disable the derivative gain by setting it to zero. The limited sensor resolution will make it hard to distinguish bit flips from rises in temperature.
60

Send to Photon
Heater 2 PWM period (seconds)Each PWM cycle takes this many seconds. A value lower than 4 seconds is not recommended.
4

Send to Photon
Heater 2 Input filter delay timeInput to the PID is filtered. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Heater 2 Derivative filter delay timeInput to the differential gain is filtered, to prevent bit flips from causing a high derivative. This causes a delay, because of the moving average. More delay means more filtering.
Send to Photon
Dead time when switching between actuatorsOnly one can be active at each moment. The dead time is the minimum to wait when switching between one actuator and another. This prevents quickly alternating between heating to cooling.

Probably the dead time between heating and cooling, default is 30 minutes. Adjustable in advanced settings.

Yes, you are correct. I had set the dead time to 2 hours and restarted the script, but it was still waiting for the 2 hours to pass to engage the heater. I let it run overnight with a 12oz bottle of water and it performed well, both heating and cooling as expected per the setpoints. Thanks!