Windows WPF and Arduino 20 gallon eBIAB build

HomeBrewTalk.com - Beer, Wine, Mead, & Cider Brewing Discussion Community.

Help Support Homebrew Talk:


Well-Known Member
Jun 15, 2013
Reaction score
Hey folks,

I've been lurking for a long time now and thought I'd share my build with you guys, since the last time I posted anything it was my meager attempt at created a wooden grain mill. I am open to critique, questions, suggestions, etc

Now you'll say what's so special ... yet another electric Brew in a bag system. The difference, the brewery is controlled by a custom designed Windows Presentation Platform (WPF) app programmed in C# using Microsoft Visual Studio 2017 Community. The windows app talks to the Arduino via Serial communication and is able to control all aspects.

The program handles data storage, the PID algorithm, and all other aspects such as controlling the solid state relays for the pump, fan and heating element.

Without further ado

Now here are the Specs of my brewery for those interested:
- 20 Gallon Concord Stainless Steel Stockpot with holes cut into it with a bi-metal hole saw.
- One weldless ball valve
- Stainless steel thermocouple with a DS18B20 temperature sensor
- 2000W 120V Heating Element
- Several Tri-Clamp ferrules and fittings silver soldered to the pot and lid

Here are a few more shots
The Lid:

The sophisticated Arduino Controller (aka cable salad). A 5V SSR is used to turn on a beige food grade 12V DC pump and a 4x4cm fan heatsink (used to cool the heating element SSR).

Cable goodness

The heating element is controlled by a 25A 220V SSR

Here is a good look at the business end of the pot. Left to right, 2000W heating element with element enclosure attached to the pot with silver soldered 1.5" tri clamp ferrule, a weldless ball valve and a thermocouple with DS18B20. The Thermocouple is also filled with thermal grease.

Inside of my pot with heating element, copper pick-up tube, and thermocouple

The windows program uses a serial communication to send a command to the Arduino. The Arduino acts as the nervous system and relays commands. In its current state, it monitors temperature and uses a PID algorithm to control the solid state relay using a PWM signal from the Arduino. I can also turn the pump and fan/heatsink on and off with the press of a button. Here is a closeup of the program currently being called Brew|Logic

The image below shows the PID in action. It turns the intensity of the element up or down (red line) to keep the blue line on the graph at the set temperature. This was only a test and the PID function still needs to be fine-tuned but worked quite well.

The way it works is quite simple. Based on what I want the Arduino to do I send a command via Serial from the app to the Arduino such as "<1,100>" where 1 stands for the command I want to execute and 100 would be the variable I want to send. Say I want to set my heating element to 50% intensity, I would use the above statement to send "<1,50>" to the Arduino.

On the Arduino side, it waits for a serial command constantly. When it receives it, it parses it out into its two separate values and selects the appropriate command using an Array function such as "Brewcommand(1)" which would correspond to setting the PWM signal for the SSR.

Let me know what you guys think :) all of this has been done using my google-fu and ability successfully combine different program snippets into one big one :). If you guys are interested in how I created it, I'll provide some more information.

Before anyone starts yelling copyright infringement, I am aware that BrunDog is promoting a brewery control program that utilizes Arduinos and likely operates on a similar principle than mine. Although I have been working on this for a while and everything was sourced online from open source sources, I respect other people wanting to make money (I am no different :) ).

Since I believe in open source and sharing information and want to do things the hard way, I'd be glad to pass on my knowledge. I certainly haven't tried BrunDog's software but it looks good; however, I have a clear vision in my mind of what I need and what my brewery should look like (it should be something unique and custom).

If you want to have something ready out of the box check out the BrewController BrunDog is promoting (brucontrol.com). If you instead want the building blocks necessary to create your own computer-controlled brewery let me know. The sky is the limit. Just imagine adding some remote goodness such as a Bluetooth module and a tablet with cool UI :).

Hope you guys like this thread.

Latest posts