How does it work?

This page continues the story about RIMS / HERMS and is divided in the following paragraphs:

Every individual phase, along with the coordination of these phases, is being taken care of by the brew program. So any description of an event here is fully automated by this brewing program.


The current brewing setup is fairly complex. It is something different than the two small pans that I used in the early days. The brewing setup consists of a number of major components (if you wish to read more details about every component, have a look at the brewing setup):

In order to get a better understanding how the brewing setup does its work, the following illustration may be helpful:

This brewing setup is a so-called HERMS system.

The picture shows most of the brewing setup. The Hot Liquid Tun (HLT) is shown on the left side, The Mash/Lauter Tun (MLT) is shown in the middle and the boil kettle is shown on the right. The pump and the CFC are not really visible (behind the copper pipes and the green hose in the lower compartment).


There are some specific words, used in the illustration. These words are:

The start of the brewing process

I start by rinsing all the pipes. Then I close all valves, except for V8. This valve has a special function, that of pump by-pass. You can use it to regulate the net flow through your system (I have measured values between 3 and 12 litres per minute). Next I check all the pipes (connected with quick-connect couplings). I fill the HLT with fresh water, then the brewing program takes over and lights the burner until the HLT temperature is at the predefined value. The heating of the water in the HLT can also be controlled with a time-switch function built in the brewing program. You set a time and a date and at that time, the brewing program switches on the heater. So if you are ready for some brewing early in the morning, the water is already at strike temperature! Then, V2 and V4 are opened and the pump is activated. The desired amount of water is pumped from the HLT into the MLT. During this, valve V1 is opened, so that I already have a flow from the MLT through the pump, through V4, through the heat-exchanger (in the HLT) and back again to the MLT. After reaching the desired volume in the MLT, valve V2 is closed (the pump remains on all the time). The next thing to do is to add the milled grain to the water in the MLT. During a mash-rest, the water in the HLT can already be pre-heated to the next required mash-temperature. To prevent that the MLT is heated as well, the pump is switched off during pre-heating.

The Mashing Phase

The mash water is circulated continuously (MLT -> V1 -> pump -> V4 -> HLT heat exchanger -> MLT). By increasing the HLT temperature, the program can also increase the MLT temperature. Experience shows that the initial HLT temperature should be about 1-2 °C higher than the MLT temperature. So if I want 52 °C in the MLT, I set the initial HLT temperature to 53-54 °C.

The Sparging phase

After mashing is complete, valve V7 is opened and a part of the wort is pumped into the boil kettle. The program stops pumping when the desired volume is achieved. Then valve V7 is closed again and V2 is opened. The water level in the MLT will increase again, because fresh water from the HLT is added to the MLT. If the desired volume is added, valve V2 is closed again. The program recirculates this for 12-15 minutes through the mash. Then valve V7 is opened again and some of the wort is pumped into the boil kettle. The program repeats this 4-5 times (adjustable within the program). So if 50 L of sparging water needs to be added, the program adds 5 times 10 L (or 4 times 12.5 litres). During the entire sparging phase, the program controls the HLT temperature and keeps it close to 78 °C. After sparging, all wort has been collected in the boil kettle and the pump can be switched off. All valves are closed again, the burner under the boil-kettle is activated and the program makes sure that the wort in the boil-kettle starts to boil as soon as possible. I want to start boiling just after I finished sparging. I add the hops and boil for 90-120 minutes. Meanwhile I clean the MLT.

Chilling phase

When boiling is finished I let the wort rest for 5 minutes, Then I connect the counter flow chiller to the water tap and open V3 and V6. The pump is switched on and it pumps the hot wort through the counter flow chiller into the fermentation bin. The counter flow chiller is extremely efficient: it is able to cool 80 L of wort from 100 °C down to 20 °C in approx. 20 minutes. The cooling water that comes out is boiling hot (ideal to clean things with). If all wort is pumped through, the pump is switched off. Then cleaning can start. I pump the remaining hot water from the HLT through all the pipes and the counter flow chiller.

And? How does it work?

Great! I initially encountered some problems, such as a leaky pump and unreliable thermometers. But having a pump makes a big difference. Temperature is much better to control. And you don't have to walk around with heavy pans anymore. No more waiting for an hour to cool things down. I managed to save several hours compared to the setup without pump and counter flow chiller. Another advantage is the flexibility of the computer program. I wrote the program in such a way that all process parameters are adjustable, such as the number of sparging batches, or the P, I and D values of the PID controller. Parameter values are saved automatically in the Windows Registry, so that when you restart the program, these parameters are set to the latest value. And if I require functionality that can not be realised with changing parameters, I write an update of the brew program. In this way, a number of updates have been realised!

This is a graph that is reconstructed from a log-file. It shows the various temperatures during a brewing session. The brewing program writes, every 5 seconds, all relevant data into a log-file. Explanation of the graph:

One of the striking things in this graph are the sine-waves / ripples in the HLT temperature (yellow line). It is an indication that the PID controller has not been set properly! The second graph (below) shows another response, but then from a properly set PID controller. The HLT temperature is, in this case, the fat blue line. The ripples in the previous graph are almost completely gone. The temperature is controlled to within 0.05 °Celsius. You can barely see 5 little peaks in the graph (at the right end of the graph). These are the moments that sparging water from the HLT is transferred to the MLT. But the PID controller reacts very well to this disturbance.

More recently I wrote a Python script to decode the logfile, created by the brewing program. I run the script in Thonny, which gives the following output:

The logfile can contain multiple sessions. I chose here session 001, because that was the actual brewday session: from 06:09 to 14:59. The python script also displays a number of interesting facts, such as the average time to raise the temperature by 1 °C: 84.1, 81.5 and 86.0 seconds per °C. In state 16 "Chill and Pump to Fermentation Bin" the wort is cooled and pumped into the fermentation bin with an average flowrate of 3.2 liters per minute. Furthermore, the actual starting time and duration of the main brewing phases are given. Next, graphs are shown of emperatures, volumes and states.

Legend: TsetM = Reference temperature for the MLT, Tmlt = actual temperature inside the MLT. TsetH = Reference temperature for the HLT, Thlt = actual temperature inside the HLT. Tboil = Actual temperature inside the boil-kettle, Tcfc = actual temperature at the output of the counterflowchiller. Gma_hlt = PID-controller output for the HLT, Gma_boil = PID-controller output for the boil-kettle

Legend: Vmlt = actual volume inside the MLT, Vhlt = actual volume inside the HLT, Vboil = actual volume inside the boil-kettle.

Legend: sp_idx = sparge-index, runs from 0 to maximum number of batch sparges, ms_idx = mash-index, runs from 0 to maximum number of temperature steps, std = actual state of state transition diagram.

Back to Top