Monday 19 August 2013

Building an Automated Fermentation Controller - Why bother?

As a home-brewer I am constantly looking to make the best beer I can, and as a tinkerer I'm always looking for ways I can make that process easier and, at least in my mind, better.  One of the really important steps in brewing is Fermentation, for those of you unfamiliar with brewing, Fermentation is the process by which the sugars in your wort are converted into alcohol by the yeast you pitched.  Yeast are really good at their job, but they can be picky about working conditions and these conditions vary by strain and style of beer you're brewing.  When you first start brewing most new brewers will attempt to find a relatively cool place to ferment their beer, hopefully one that has some constant temperature like in a cold cellar or basement, and while this type of fermentation will often result in a good beer you're rolling the dice and relying on the ambient temperature in your house to decide the fate of your finished product.
People who don't have the luxury of a cold room or a basement with stable temperatures may opt to run a swamp-cooler which involves soaking a t-shirt or rag in water and wrapping your fermenter in the wet garment and placing this whole contraption into a bucket of water and pointing a fan at it.  This drives down the temperature of your fermenting beer through evaporation, you can even throw some ice-packs into the water to keep it chilled and can often get the beer down to an acceptable fermenting temp, although you have very little control over what that temperature will settle on and you can still experience large temperature swings.  

STC-1000 Digital temperature controller
Remember those picky yeast I mentioned earlier?  If you ferment beer outside of the acceptable range of the yeast you pitched you may experience attenuation problems, meaning the yeast don't finish the job of converting the sugars in your wort to alcohol and you can end up with a much sweeter beer than you intended.  Yeast also produce a number of by-products during fermentation, some of these by-products can really change the character of the beer and make it taste nothing like you intended, sometimes in a bad way.  The easiest way to prevent these undesired flavours is to control fermentation temperature more precisely.


To that end I built a chamber out of 2" rigid foam insulation which is attached to a very small mini-fridge which acts as the cooling source.  The first iteration of this build used an STC-1000 temperature controller to switch the fridge on and off whenever the set point of the controller was exceeded by .5 degrees C, and while this enabled me to control the fermentation at a static temperature, it made it difficult to run any kind of stepped fermentation where the temperature could be raised or lowered based on a set schedule.  The other problem with the STC-1000 is that it provided no way to log temperatures, or to be able to manage and modify the fermentation temperature without going into my basement and manually plugging in a new value.
I wanted more visibility and more control into my fermentation than I had with the STC-1000 and thus the CrankBrew idea was born.  While there are a few systems out there already based on the Raspberry Pi I really wanted to do something from scratch so I could build a truly custom system.  I choose a Beaglebone Black as the primary controller, it's similar to a Raspberry Pi but has more I/O pins, a faster processor, and built in storage and you get all that for about $10 more.

Beaglebone Black with test wiring for DS18B20 temp probe
I'll be logging the temperatures from the fridge so I can plot my fermentation schedule over time.  The unit will be controllable through a web-interface I'm going to build, but I also plan on driving a little touchscreen LCD from the unit.  I will be using Crank Storyboard Suite to build the interface.  I have worked at Crank Software for about three years now, and while that makes me biased, I also believe Storyboard provides a really impressive suite of tools for building your UI on an embedded platform.  The temperature information will be logged in a database and sent to the UI using the Storyboard IO API, this info will be used to present a Current Temp readout plus a trend graph of the temperature.  I'll also integrate the ability to pick a fermentation program that will be defined using the web tools so the chamber knows what temp to hold and for how long.

1 comment:

  1. Cool Blog Deric. Now I can read about the stuff I don't understand. HA!

    ReplyDelete