Simple BIAB mash with BrewPI Spark

Wednesday is the day, where I hope to do my first experimantal mash with a BrewPI Spark.

I have been brewing quite a lot with a simple themostat setup, but I have no experience with the BrewPI software, PID controllers or PWM actuators, and I am quite a bit confused by all sorts of things related. But I am leaving out all of those questions, hoping to get input on anything in my configuration which doesn’t make sense or could be improved.

I will be be mashing around 9kg of grains in a 50L BIAB mashtun with a recirculating pump, and I will only be using the brewpi spark for controlling the mash temp.

I have updated the web interface and the spark a few days ago, the BrewPI Spark is running 0.4.1, can’t find a version number in the web interface.
I have connected the spark to a one-wire temperature prope and a relay with a lamp attached (for simulation), and it is blinking with a nice pulse whenever the temperature gets to low.
The script appears to be running, and I am able to change the target temp on the spark from the Maintenance panel/Advanced Settings in the web interface.

I have it set up in fridge constant mode, with a Chamber Temp input and a Chamber Heater output (not really sure if this is the way to go when mashing).

Main screen

Mode Fridge Const.
Beer --.- --.-°C
Fridge 22.9 22.0°C (all wrong)
Heating for 16m51 (all wrong too)

Fermenting: My First BrewPi Run (unable to change this, trying to do so yields the error: Could not receive reply from script.)

Graph: A ‘Sep 15-Dec 15’ graph, which doesn’t really make any sense.

Temperature mode footer: Fridge constant 25.0C (changes here do not end up on the spark)

Device Configuration

Device 1

  • Assigned to: Chamber 1
  • Assigned to: Chamber device
  • Hardware/Device type: Temp Sensor
  • Function: Chamber Temp

Device 3

  • Assigned to: Chamber 1
  • Assigned to: Chamber device
  • Hardware type: Digital Pin
  • Device type: PWM Actuator
  • Pin type: not inverted
  • Controller Pin: Output1(A6)
  • Function: Chamber Heater

Advanced Settings

  • Mode: Fridge Constant

  • Fridge Temperature Setting: 65

  • Beer-to-Fridge proportional gain (Kp): 0.5

  • Beer-to-Fridge integral time constant (Ti): 180

  • Beer-to-Fridge derivative time constant (Td): 60

  • Maximum difference between fridge and beer set point (= output of PID): 5

  • Beer-to-Fridge Input filter delay time: 18 seconds

  • Beer-to-Fridge Derivative filter delay time: 39 seconds

  • Heater 1 proportional gain (Kp): 10 seconds

  • Heater 1 integral time constant (Ti): 600

  • Heater 1 derivative time constant (Td): 60

  • Heater 1 PWM period (seconds): 4

  • Heater 1 Input filter delay time: 18 seconds

  • Heater 1 Derivative filter delay time: 159 seconds

  • Dead time when switching between actuators: 0

Any feedback appreciated.
/Thanks …

When doing BIAB, you will be running in fridge constant mode. The beer to fridge settings don’t matter.

If you cannot start a new brew, there might be a permissions issue.
I would run to make sure your web UI and script are up to date. It will also run for you, but you can run in manually as well. It is in /home/brewpi/utils

Your device settings look fine. Your heater 1 settings look fine too.
I don’t have a clue why your web interface is showing something wrong on the LCD. If you just updated the script, maybe there is still an old version active.
Kill it with sudo python --kill and let cron restart the script.

Thank’s Elco, booting the raspberry fixed it.

I was planing to get a brewpi for mashing as well. Could you please share your experiences in the biab setup with us. Thanks a lot, fuxe

I did a post after the mash here: Using BrewPi 0.4 for mashing

I have still only used it once, so I am by no means an expert.

The setup I used was a 55L pot with a 2.4kW electrical heating element, and a 9kW gas heater for speeding things up, while ramping up temperature.
I did constant recirculation with a chugger pump, with a temperature sensor attached in a tee at the pump, controlling the temperature of the mash.
The electrical heating element, the sensor at the pump and another sensor submerged into the grain bed, was connected to a BrewPI Spark v1.
I used an insulating sleeping wrapped pad around the pot, while mashing.

Here’s the setup while doing an initial “dry run” (obviously not dry in the true sence of the word):

This is all prototyping for my final setup, which will be using the BIAC which can be seen in the back of the bottom right photo, with a more elegant controller/wiring :relaxed:

Brewing wise, I ramped 36L of water to a target temp of 70° celcius, using gas and electricity.
I then added 4.7Kg of malt, and set the target to 66.5°. After 25 minutes I increased the target to 67,5°, as the brewpi showed that I was running a bit lower than expected. I didn’t sparge and chilled the wort after the boil, ending up with 19.5L in the bucket.
Preboil gravity and OG was a bit higher than expected, efficiency was somewhere between 70-75%.

I used the BrewPI during the mash only, as at the time I didn’t know how to control the intensity of the boil with the BrewPI. I now know that this can be done using sockettest.php.

Controlling the mash through the web interface was a sub-optimal experience, but still worked out pretty ok.
This will of course change, once the new web interface is made.

Here’s a graph of the ramp-up and mash:

And here is a picture of the final prototype for my controller :sunglasses:

The heat sinks are on the back, and the final unit will be all metal (and sealed off).

The actual BrewPI will be on the wall, connected to the controller via the expansion board, in the upper left corner of the controller.


I have found the bug that makes it think it is cooling with no cooler installed. Will be fixed in next release. That should make the control a lot better.

Thanks for the re-post and comprehensive reply. Seems it is possible to control the mash tun suffitiently. I have just started to study the capability of the brewpi but I’m still a bit confused and find contradictive informations in the different forums.
Is it possible to control the temp. of a HLT and a pump at the same time with one and the same controller ? Or is this only planned for the “future” ?

Controlling HLT temperature can be done with the BrewPi Spark. For pumps we now only support manual toggling. In the future, we will have more options to control pumps but not yet.

Hi Elco, thanks for the info. Again learnt an important point. So it is possible to control 2 separate temperature control loops with one brewpi, basically 2 sensors controlling 2 Heating element ( HLT + mash tun). At the same time I can manually switch on/off my pumps. Thats what I need. Cheers fuxe