My setup is 14g SSBrewtech BME chronicle with FTS converted to use BrewPi Spark v2 (0.4.3). I have the config close but not quite where I think it should be. I’d like to get it w/in 1+/-F and ideally .5+/-F. Here is the graph and as you can see, it’s still heating when its above the set point. The cooling coasts 1 degree after the glycol pump stops thus going about 1.5F lower than the set point. Any suggestions?
Control config
"kind": "Control",
"pids": [
{
"kind": "Pid",
"name": "heater1",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"name": "fridgeset",
"value": -5
},
"inputSensor": {
"kind": "TempSensorFallback",
"onBackupSensor": true,
"sensor": {
"kind": "TempSensor",
"name": "beer1",
"sensor": {
"kind": "OneWireTempSensor",
"value": 24.5,
"connected": true,
"address": "28E5EAC107000077",
"calibrationOffset": 0
}
}
},
"inputError": 29.5039,
"Kp": 10,
"Ti": 600,
"Td": 60,
"p": -295.0391,
"i": 0,
"d": 0.7031,
"actuatorIsNegative": false,
"outputActuator": {
"kind": "ActuatorPwm",
"value": 0,
"period": 4,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"waitTime": 1733039
},
"target": {
"kind": "ActuatorPin",
"state": false,
"pin": 16,
"invert": false
}
}
}
},
{
"kind": "Pid",
"name": "heater2",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"name": "beer2set",
"value": null
},
"inputSensor": {
"kind": "TempSensor",
"name": "beer2",
"sensor": {
"kind": "TempSensorDisconnected",
"value": null,
"connected": false
}
},
"inputError": null,
"Kp": 10,
"Ti": 600,
"Td": 60,
"p": 0,
"i": 0,
"d": 0,
"actuatorIsNegative": false,
"outputActuator": {
"kind": "ActuatorPwm",
"value": 0,
"period": 4,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"waitTime": 1732973
},
"target": {
"kind": "ActuatorNop",
"state": false
}
}
}
},
{
"kind": "Pid",
"name": "cooler",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"name": "fridgeset",
"value": -5
},
"inputSensor": {
"kind": "TempSensorFallback",
"onBackupSensor": true,
"sensor": {
"kind": "TempSensor",
"name": "beer1",
"sensor": {
"kind": "OneWireTempSensor",
"value": 24.5,
"connected": true,
"address": "28E5EAC107000077",
"calibrationOffset": 0
}
}
},
"inputError": 29.5039,
"Kp": 10,
"Ti": 1800,
"Td": 200,
"p": -295.0391,
"i": 0,
"d": 2.2656,
"actuatorIsNegative": true,
"outputActuator": {
"kind": "ActuatorPwm",
"value": 100,
"period": 1200,
"minVal": 0,
"maxVal": 100,
"target": {
"kind": "ActuatorMutexDriver",
"mutexGroup": {
"kind": "ActuatorMutexGroup",
"deadTime": 1800000,
"waitTime": 1732897
},
"target": {
"kind": "ActuatorTimeLimited",
"minOnTime": 10,
"minOffTime": 1,
"maxOnTime": 65535,
"state": false,
"target": {
"kind": "ActuatorPin",
"state": false,
"pin": 17,
"invert": false
}
}
}
}
},
{
"kind": "Pid",
"name": "beer2fridge",
"enabled": true,
"setPoint": {
"kind": "SetPointSimple",
"name": "beer1set",
"value": -5
},
"inputSensor": {
"kind": "TempSensor",
"name": "beer1",
"sensor": {
"kind": "OneWireTempSensor",
"value": 24.5,
"connected": true,
"address": "28E5EAC107000077",
"calibrationOffset": 0
}
},
"inputError": 29.5039,
"Kp": 0,
"Ti": 0,
"Td": 0,
"p": 0,
"i": 0,
"d": 0,
"actuatorIsNegative": false,
"outputActuator": {
"kind": "ActuatorSetPoint",
"targetSetPoint": {
"kind": "SetPointSimple",
"name": "fridgeset",
"value": -5
},
"targetSensor": {
"kind": "TempSensor",
"name": "fridge",
"sensor": {
"kind": "TempSensorDisconnected",
"value": null,
"connected": false
}
},
"referenceSetPoint": {
"kind": "SetPointSimple",
"name": "beer1set",
"value": -5
},
"output": 0,
"achieved": null,
"minimum": -10,
"maximum": 10