2017 (Glycol) Tank, Pump, Chiller, and Heater setup


This is a follow-up topic to New Setup for Glycol Tank + Pump and New Glycol A/C setup - New to BrewPI too to ask about 2017 / new API status, since it’s been a year and a bunch of cool updates later than the earlier thread.

I’ve got a system right now with some super-basic controls that looks like this, which handles my desert shed’s extreme temperature swings:

Basically, I’ve a heated and cooled exchanger hooked up to the fermenter with small closed-loop recirculating pump putting distilled water through the fermenter-side of the BrewTech FTSs, but with my own little Arduino controller handling the OneWire temp probes and relays. The chiller is a hacked up freezer, and the heater is 100W coil, both submerged in distilled water.

I’d love to swap to a BrewPi Spark3 to get the nice analytics and make the install look professional instead of … what it looks like now. :smiley:

It’s pretty easy to see how to set up a control algorithm to trigger the heater or trigger the chiller, but I also need to control the recirc pump. Electrically, I can just make the pump run whenever the heater or cooler are commanded to activate, and could thus use this setup with the BrewPi, but that’s not going to be the most efficient. Right now I have the recirc pump only run when the water temp gets close to what I want the beer temp to be. So the general algorithm I’m using is something like this when flattened:

if (waterTemp is diverging from targetTemp)
 enable the heater or chiller as appropriate

if (beerTemp is diverging from waterTemp)
  enable the pump

So the question is, I suppose: Is the control loop configurable enough these days to handle something approximating this, or would I need to go electrical here?



Hmm your setup is a bit different from mine. I have a heating pad on the fermenter.
This makes the hole thing a bit simpler:

  • The glycol is kept cool and the pump runs when cooling is needed
  • The heating pad runs when heating is needed.

Even in your case, I think you’ll want a slightly different algorithm.
During your brewing process, you’ll be either heating or cooling. Rarely you need both.

So I would keep, for example, the water 5 or 10 degrees above or below the beer temp. Then run the pump to manage temp.

This is not possible with the current BrewPi software yet, but I can think of ways to implement it.

I doubt however that a single bath to do both is the best approach. I’d say that a separate source of hot and cold water would be easier to work with.


Thanks, Elco. I’m going to pick up a heating pad and try that technique out on the next round through. Actively heating and cooling the water has worked really well given the environment I’m dealing with here, so I think it’s a worthwhile setup in general, but I think getting all of the bells and whistles of BrewPi going is worth the investment in a heating pad, too.

I really appreciate your response!


Hey Elco, first let me start by saying how much I love BrewPi. I’m a homebrewer and a geek so it really is the best of both worlds.

Until now I have only used my BrewPi (RaspberryPi non docker w/ spark 3) to monitor temps and SG (with Tilt) and graph it over primary. But now I have built a glycol setup and want to use the spark to control the pump. Here is a quick overview of my setup. I have the pump, glycol reservoir and radiator w/ fans at the bottom of a chest freezer. The lines with glycol come out and go into a SSBrewtech 14G conical. I have been trying to get my head around all the different setting you have to tweak to get a glycol system to work right and I just can’t figure it out. Also, I just updated BrewPi and Spark to 0.5.9.

Really, all I want is for the pump to turn on as soon as it hits the set point and turn off one degree below. Any help would be greatly appreciated.


This may belong in a different post / forum but it seemed like a good start. What I am looking for information wise is parts, wiring schematic / drawing of how to have the RPI + brewpi to “override” if you will, a AC unit to change the temperature of the cooling temp till the cooling liquid is cold enough it drops the temperature of the fermenter chamber to a set temp. then turns off and doesn’t turn back on again until the temperature change X’ degrees variable. I have a RPI, some resistors, and arduino and a Brewpi spark 3.
Main struggle is how to wire/splice the cables. Software wise I wonder if the new software will integrate that stuff or what but any suggestions or input for bread crumbs of things to check out would be greatly appreciated.


New software will let the Spark handle switching all the things.
So you would just control the AC and the glycol pump with an SSR connected to the Spark.


Set up no fridge sensor, only a beer sensor.
Set up a cooler actuator to control your glycol pump and adjust the PWM settings to a period of 10 minutes (600) and a minimum ON time of 10 seconds.
Set Kp very low, try 5. That would mean one degree too low would be 5/100 * 600 = 30 seconds per 10 minutes glycol flow.

Set Td to zero and Ti to 7200.


Ok for clarification - cause it sounds simpler than what I was thinking. The SSR will turn the AC Unit on, and I have to manually “set” the AC cool temp 1x time. When the temperature of the fermenter needs to be adjusted the unit will turn on from the SSR, the unit will continue to cool the “Antifreeze” like liquid until the fermenter temperature has been adjusted to the new “set” temperature. The pump that pushes the liquid around the fermenter will be activated from another SSR and they work in conjunction with each other based on the temperature probe (RTD, DS18B20, etc.) in the fermenter? Here are some of the ideas I was pulling from & again wanted to verify the thought process or logic was correct based on the brewpi capabilities.

Very similar to what I currently have: