New Setup for Glycol Tank + Pump

@chixxi; yéah, I looked into those beer line coolers but they seem impossible to find in The Netherlands…
SS Brewtech told me they were coming with a glycol cooling setup soon… I haven’t gotten my freezer to work but looking at Elco’s initial tests, that doesn’t seem like my plan will work…

Actually the one on the right is from a company in the netherlands, the company is “Gamko” (http://www.gamko.com/).

yeah, been trying to source one… would it be something like this? http://link.marktplaats.nl/m1038257913

Yes exactly. There are some good offers on that page if you look for bierkoeler. Like these:
http://www.marktplaats.nl/a/witgoed-en-apparatuur/koelkasten-en-ijskasten/m1036824572-bierkoeler-gamko.html?c=8c285449651fa109c354bbabe740c1b&previousPage=lr
http://www.marktplaats.nl/a/witgoed-en-apparatuur/thuistaps/m1035515936-bierkoeler.html?c=8c285449651fa109c354bbabe740c1b&previousPage=lr

Ask if they got an integrated pump, but often they don’t know. Most of the “wet coolers” do. “Wet” meaning the energy is transported by cold water. If you see a motor they are usually with water, the motor is for moving the water by stirring it and pumping it on the same time. The pump usually circles the water through a line to cool the pipes from the cooler up to the taps. Such a line with multiple beer lines and two cooling lines are often called python.

Edit:

I went ahead and took some pictures of the cooler so you can understand how they work. Here is one of my coolers, I use one cooler per conical, but with pumps you could also cool mutliple fermenters with one coolers by using the beer lines:

This is how it looks from the inside. On the right you see the ventilation, below that is the compressor. On the left is the tank/reservoir and the motor which stirs the water and is a pump at the same time:

Here you can see the motor, the transparent/white hose is the output of the pump, yellow is back. You can also see the water tank with the cooler from the compressor (copper) and the submerged beer cooling lines (stainless):

The power of the cooler:

Some tipps:

  • Submerge the hose which brings the water back from the cooler, this way it will no go empty and overflow the tank
  • If ever a fan breaks down, get the cheap ones from china and not the same ones from the originals supplier which also come from china but cost about 1000%
  • The tank has an upper limit and an overflow protection. If you put to much water it will come out on the bottom of the cooler.
  • When you start the cooler the first time, have some spare water ready, the tank level will go down since the conical is beeing filled.
  • Once in a while you need to add some water

can you let me know the type of the chiller you have? like a product number?

YEh, @Elco - My recommendation would be to try and ceiling mount a chiller and not waste your time trying to utilise the freezer. Get the chiller up high in that space not utilised.

I already went ahead and made a custom shelve to close off the upper part of the fridge from the rest.

Basically, I created a freezer compartment.

First tests today or tommorrow

I don’t have all my parts for my new panel but I didn’t want to wait any longer. This is what a 5 minute BrewPi Setup looks like :wink:

It is only switching few watts, so no problem with the heat of the SSR. The BrewPi is currently controlling 110 liters of lager in one of the 150 liter conicals in “Beer Constant” mode at 4 degrees celsius with only the beer sensor on version 4.3.0 (Beer-to-fridge KP = 0, Td = 0, Ti = 0). I will post results after the weekend.

Did a new test. Was not pumping yet, just cooling the 8L of water. The new setup completely froze the water in 3 hours. Oops! Hope the pump is okay, it is inside the ice.

But the fridge has plenty of power.

So, I just got a Cornelius Maxi 110 in… this has a beer line and a seperate water ine wit integrated pump. I’m going to use this to cool my 2 fermenters…

but while I was playing with this, I had a bit of a “brainfart”… . why would I not get another one and use this as a Wort Cooler? would that not be far more effective then a CFC or plate cooler?

Why get a separate one? I just quickly cool down below 80 Celsius with a spiral and then transfer to the conical. The rest is down by the flow through cooler.The one on the left is a Cornelius CR50.

The setup was running during this weekend, but BrewPi is struggling quite a bit. And it doesn’t seem to get bether:

Last cycle zoomed in:

As I already wrote I am running in “Beer Constant Mode” with only the fridge sensor on version 4.3.0 and Beer-to-fridge KP = 0, Td = 0, Ti = 0.

Current Settings / Info:

{
  "kind": "Control",
  "pids": [
    {
      "kind": "Pid",
      "name": "heater1",
      "enabled": true,
      "setPoint": {
        "kind": "SetPointSimple",
        "name": "fridgeset",
        "value": 4
      },
      "inputSensor": {
        "kind": "TempSensorFallback",
        "onBackupSensor": true,
        "sensor": {
          "kind": "TempSensor",
          "name": "beer1",
          "sensor": {
            "kind": "OneWireTempSensor",
            "value": 5.75,
            "connected": true,
            "address": "288EE8A00600007B",
            "calibrationOffset": 0
          }
        }
      },
      "inputError": 1.7539,
      "Kp": 10,
      "Ti": 600,
      "Td": 60,
      "p": -17.5391,
      "i": 0,
      "d": 0.1953,
      "actuatorIsNegative": false,
      "outputActuator": {
        "kind": "ActuatorPwm",
        "value": 0,
        "period": 4,
        "minVal": 0,
        "maxVal": 100,
        "target": {
          "kind": "ActuatorMutexDriver",
          "mutexGroup": {
            "kind": "ActuatorMutexGroup",
            "deadTime": 1800000,
            "waitTime": 1799869
          },
          "target": {
            "kind": "ActuatorNop",
            "state": 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": 1799806
          },
          "target": {
            "kind": "ActuatorNop",
            "state": false
          }
        }
      }
    },
    {
      "kind": "Pid",
      "name": "cooler",
      "enabled": true,
      "setPoint": {
        "kind": "SetPointSimple",
        "name": "fridgeset",
        "value": 4
      },
      "inputSensor": {
        "kind": "TempSensorFallback",
        "onBackupSensor": true,
        "sensor": {
          "kind": "TempSensor",
          "name": "beer1",
          "sensor": {
            "kind": "OneWireTempSensor",
            "value": 5.75,
            "connected": true,
            "address": "288EE8A00600007B",
            "calibrationOffset": 0
          }
        }
      },
      "inputError": 1.7539,
      "Kp": 10,
      "Ti": 1800,
      "Td": 200,
      "p": -17.5391,
      "i": -69.8672,
      "d": 0.5859,
      "actuatorIsNegative": true,
      "outputActuator": {
        "kind": "ActuatorPwm",
        "value": 86.8203,
        "period": 1200,
        "minVal": 0,
        "maxVal": 100,
        "target": {
          "kind": "ActuatorMutexDriver",
          "mutexGroup": {
            "kind": "ActuatorMutexGroup",
            "deadTime": 1800000,
            "waitTime": 1799731
          },
          "target": {
            "kind": "ActuatorTimeLimited",
            "minOnTime": 120,
            "minOffTime": 180,
            "maxOnTime": 65535,
            "state": true,
            "target": {
              "kind": "ActuatorPin",
              "state": true,
              "pin": 17,
              "invert": false
            }
          }
        }
      }
    },
    {
      "kind": "Pid",
      "name": "beer2fridge",
      "enabled": true,
      "setPoint": {
        "kind": "SetPointSimple",
        "name": "beer1set",
        "value": 4
      },
      "inputSensor": {
        "kind": "TempSensor",
        "name": "beer1",
        "sensor": {
          "kind": "OneWireTempSensor",
          "value": 5.75,
          "connected": true,
          "address": "288EE8A00600007B",
          "calibrationOffset": 0
        }
      },
      "inputError": 1.7539,
      "Kp": 0,
      "Ti": 0,
      "Td": 0,
      "p": 0,
      "i": 0,
      "d": 0,
      "actuatorIsNegative": false,
      "outputActuator": {
        "kind": "ActuatorSetPoint",
        "targetSetPoint": {
          "kind": "SetPointSimple",
          "name": "fridgeset",
          "value": 4
        },
        "targetSensor": {
          "kind": "TempSensor",
          "name": "fridge",
          "sensor": {
            "kind": "TempSensorDisconnected",
            "value": null,
            "connected": false
          }
        },
        "referenceSetPoint": {
          "kind": "SetPointSimple",
          "name": "beer1set",
          "value": 4
        },
        "output": 0,
        "achieved": null,
        "minimum": -10,
        "maximum": 10
      }
    }
  ]
}

Any advice on how to stabilize this?

Is it correct to install the current 0.4.3 from the master branch?

I think the problem here is that your cooler Kp is much too low, causing the integrator to step in, and causing overshoot, because it is slow to respond.

With Kp at 10, when the beer is 1 degree to high, the pump is only running at 10%. I think 50 or even 100 would be a more reasonable value.
I would also increase Ti to 7200 at least. You want the integrator to increase very slowly, slower than normal fluctuations in temperature.

You could optionally run with a smaller period than 1200 for the pump. Maybe go with 5 minutes instead of 20. Also adjust your minimum ON and OFF time. (I hope I assume correctly that you are using a pump).

Thanks for the information Elco. I think I am starting to understand the influence of the different settings.

I increased Cooling Kp to 90, meaning the cooling pwm will be at 90% on if the offset is one degree celsius. I think I will even go to 100 since the cooling system is quite slow and git a lot of lag. If this is set for example to 200, would this mean that the the cooling PWM is already at 100% at 0.5 degrees celsius?

I also increased the cooling Ti to 10800. If I got this right this integrator winded up due to system reacting very slowly, which cause the BrewPi to cool further even though the beer temp is below setpoint. If I got this correctly this makes the integrator beeing calculated over the last 3 hours, it should therefore wind up less. I might even need to go further up.

I am using the Gamko cooler I described above, it has a built in pump, but BrewPi is controlling the complete cooler including the compressor, not only the pump. I set the cooling pwm period to 600, minimum on time to 120. I don’t think going further down would make sense since the system is very slow anyways.

I will post in a few days how this influenced the regulation.

It would be much nicer if you could control the pump separately, so the cooler can keep your glycol cold and pump cold glycol when needed.

Your calculations are correct.

The integrator winded up, because your proportional settings were not doing the trick so it needed to compensate with the integrator. The integrator will not wind up if your cooler is already maximally on, even though it is slow…

@Elco , i would agree with Elco.

I’m currently experiemnting with a Maxi 110 from Cornelius.
there is a small reservoir, with an integrated tap line pump, and a spiral inside. I connected the fermenters spiral’s pump to the spiral of the tap line cooler, and only ran the pump when needed. i tried using the tap pump, but i ended up disabling it and let the reservoir freeze up.
this worked really well and I can even cold crash beers now.
I am trading this one in for a Maxi 310, since it has a higher cooler capacity and 2 sp-irals, since i have 2 fermenters…

The BrewPi is doing what it is supposed to do again. Temperature regulation as precise as the thermometer allows:


The cooler is running about 3-4 times per hour for about 5-10 minutes.

What advantages do you expect by only controlling the pump? The liquid is cooled so fast with these coolers I don’t know if it really makes sense to keep the glycol temperature down.

I would see and advantage… I have 1 TAp Cooler with double spiral… so I can run 2 of these fermenters on a single tap cooler…

True. But no advantage in my use case.