Treacle Porter @brewpi update

 

Just a quick update

my control settings are now

{
  "kind": "Control",
  "pids": [
    {
      "kind": "Pid",
      "name": "heater1",
      "enabled": true,
      "setPoint": {
        "kind": "SetPointSimple",
        "name": "fridgeset",
        "value": 17.9453
      },
      "inputSensor": {
        "kind": "TempSensorFallback",
        "onBackupSensor": false,
        "sensor": {
          "kind": "TempSensor",
          "name": "fridge",
          "sensor": {
            "kind": "OneWireTempSensor",
            "value": 17.75,
            "connected": true,
            "address": "285C83B504000046",
            "calibrationOffset": 0
          }
        }
      },
      "inputError": -0.1953,
      "Kp": 10,
      "Ti": 600,
      "Td": 60,
      "p": 1.9531,
      "i": 0.0547,
      "d": -0.1172,
      "actuatorIsNegative": false,
      "outputActuator": {
        "kind": "ActuatorPwm",
        "value": 1.8906,
        "period": 4,
        "minVal": 0,
        "maxVal": 100,
        "target": {
          "kind": "ActuatorMutexDriver",
          "mutexGroup": {
            "kind": "ActuatorMutexGroup",
            "deadTime": 1800000,
            "waitTime": 1797431
          },
          "target": {
            "kind": "ActuatorPin",
            "state": false,
            "pin": 10,
            "invert": false
          }
        }
      }
    },
    {
      "kind": "Pid",
      "name": "heater2",
      "enabled": true,
      "setPoint": {
        "kind": "SetPointSimple",
        "name": "beer2set",
        "value": null
      },
      "inputSensor": {
        "kind": "TempSensor",
        "name": "beer2",
        "sensor": {
          "kind": "OneWireTempSensor",
          "value": 14.375,
          "connected": true,
          "address": "28AA4C830400008A",
          "calibrationOffset": 0
        }
      },
      "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": 1797429
          },
          "target": {
            "kind": "ActuatorNop",
            "state": false
          }
        }
      }
    },
    {
      "kind": "Pid",
      "name": "cooler",
      "enabled": true,
      "setPoint": {
        "kind": "SetPointSimple",
        "name": "fridgeset",
        "value": 17.9453
      },
      "inputSensor": {
        "kind": "TempSensorFallback",
        "onBackupSensor": false,
        "sensor": {
          "kind": "TempSensor",
          "name": "fridge",
          "sensor": {
            "kind": "OneWireTempSensor",
            "value": 17.75,
            "connected": true,
            "address": "285C83B504000046",
            "calibrationOffset": 0
          }
        }
      },
      "inputError": -0.1953,
      "Kp": 10,
      "Ti": 1800,
      "Td": 200,
      "p": 1.9531,
      "i": -0.0078,
      "d": -0.4688,
      "actuatorIsNegative": true,
      "outputActuator": {
        "kind": "ActuatorPwm",
        "value": 0,
        "period": 1200,
        "minVal": 0,
        "maxVal": 100,
        "target": {
          "kind": "ActuatorMutexDriver",
          "mutexGroup": {
            "kind": "ActuatorMutexGroup",
            "deadTime": 1800000,
            "waitTime": 1797426
          },
          "target": {
            "kind": "ActuatorTimeLimited",
            "minOnTime": 120,
            "minOffTime": 180,
            "maxOnTime": 65535,
            "state": false,
            "target": {
              "kind": "ActuatorPin",
              "state": false,
              "pin": 11,
              "invert": false
            }
          }
        }
      }
    },
    {
      "kind": "Pid",
      "name": "beer2fridge",
      "enabled": true,
      "setPoint": {
        "kind": "SetPointSimple",
        "name": "beer1set",
        "value": 20
      },
      "inputSensor": {
        "kind": "TempSensor",
        "name": "beer1",
        "sensor": {
          "kind": "OneWireTempSensor",
          "value": 19.9375,
          "connected": true,
          "address": "28E95857040000CA",
          "calibrationOffset": 0
        }
      },
      "inputError": -0.0391,
      "Kp": 8,
      "Ti": 10200,
      "Td": 600,
      "p": 0.3125,
      "i": -2.5547,
      "d": 0.1875,
      "actuatorIsNegative": false,
      "outputActuator": {
        "kind": "ActuatorSetPoint",
        "targetSetPoint": {
          "kind": "SetPointSimple",
          "name": "fridgeset",
          "value": 17.9453
        },
        "targetSensor": {
          "kind": "TempSensor",
          "name": "fridge",
          "sensor": {
            "kind": "OneWireTempSensor",
            "value": 17.75,
            "connected": true,
            "address": "285C83B504000046",
            "calibrationOffset": 0
          }
        },
        "referenceSetPoint": {
          "kind": "SetPointSimple",
          "name": "beer1set",
          "value": 20
        },
        "output": -2.0547,
        "achieved": -2.25,
        "minimum": -5,
        "maximum": 5
      }
    }
  ]
}

Many thanks to Elco for replying to my post, I have already  implemented the changes you suggested and it seems to be behaving much better !
After my rant yesterday and thinking about  PID settings I will do a bit of digging  on the web  to see if a calibration routine could be implemented. ..thats if I can find and understand the relevant maths involved.. 😳
and Yes I will stick with the Brewpi Spark a little longer and I might up-rate the tube heater (currently 45-60W) to a 200W ceramic ES type  heater as used for reptile tanks  but if I do, a trial run to tune the settings before a ferment is underway will be in order.
Smiley

Treacle Porter @Brewpi woes

I had a late start Brewday to do a Treacle Porter might double up for the NCB January event but Maybe not as I don’t intend going..last time the tasting of 22 beers wasn’t that enjoyable..!
Any way back to the BrewDay.

I think the Gremlins have taken up residance !My automation in the BrewShed just didn’t play as nicely as it should, the Raspberry Pi on the Herms System froze / crashed  and so I reset it. but towards the end of the mash noticed the temperature wasn’t rising but was falling !  a quick SSH into the Pi and the time was now -1  hour out even though the time zone was London…a quick manual intervention and set it to mash out temp of 75.5 to lock the sugar profile.. saved the brew…

Whilst I was in maintenance mode back up at the house I thought I might as well update the fermentation Brewpi with the integrated Tilt Hydrometer mods to the latest 0.4.4 version. Everything appeared to go smoothly but as I found out this morning something just isn’t right and I am considering either reverting to an earlier version or going back to my trusty Brewpi Arduino version.

With the technical problems I was having with the Herms  my mind wasn’t focussed on the brewing, so I had over chilled the wort with my flatplate chiller, not a problem just leave it overnight on beer constant set to 21˚C and then work out a profile for the Safale  S-04 yeast in the morning. 21˚C is towards the top end of the recommended temperature range but acceptable, when I looked I was shocked to see the beer was just over 22˚C.. Nearly in Panic mode. I set the photon (the heart of the new Brewpi spark ) back to factory settings and  re assigned all the devices but to no avail it’s still intent on boiling my brew!

I am just about  ready to swap back to the Arduino version of the Brewpi. I am loosing faith in the Spark version of the controller, it just doesn’t do it for me. The old version had a readable display and  you could easily control it using the knob and set its mode with wet hands, finish the clean up of the Brew Shed then go and set the beer profile up once back in the comfort of the lounge. The spark version just is’t as readable and you need a smart device to change the settings, smart devices don’t work very well with wet hands…..in my eyes the move to the spark/particle  lost usability in favour of promised multi chamber support which so far has turned out to be vapourware as Elco has stuggled to maintain the demand from his store and put in Development time… you can’t currently even set the Brewpi to beer/fridge constant using the touch screen, the only saving feature so far has been the HERMS configuration but I’m finding that unwieldy as I use 2 different mash tuns so have to swap between two different beer sensors and have to set two different beer-fridge KP settings and so have to re configure instead of being able to select a different profiles for the mash tuns.

Personally I think Elco has made a mistake and royally f@*ked up ! (yep  I know it’s easy to say with hind sight ..) considering the amount of posts on the forum concerning the arduino  there was room for two products. The arduino version of the BrewPi had a large user base and had attained a mature state and was very usable and stable as a single chamber fermentation controller for the home brewer, then a lot of code refactoring  and object orientation went on to try and go multi-chamber and started the transition to an ARM based device with more resources- the SPARK controller (as it was called then) and it became less stable .. It would have been nice to freeze development of the arduino and still sell it and hire someone to look after the store and any support issues and Elco concentrate on the dev work for the new semi professionally orientated  multi chamber system that the micro and nano brewers were shouting for…

Elco if you read this, sorry .. it has turned into a bit of a rant.. your original idea for the BREWPI was fantastic and I have used it with great success and given me pleasure in the process I do truly hope things get turned around and become successful for you..

as always to finish up  here’s the Treacle Porter recipe