BrewPi fermentation controller build

brewpi assembly

After homebrewing for so many years, I knew fermentation temperature control was something that ought to be added to my capabilities.  I’ve made controllers from the STC-1000 box but the BrewPi was attractive for the detailed control offered and logging abilities, and it seemed like a neat challenge.

I ordered the parts from BrewPi in Europe but decided to omit the pretty enclosures offered by the creator, Elco, as I wanted to get everything in one box to the extent possible.   The supplies from BrewPi included two nice solid state relays, LCD display, temperature sensors, and parts to solder up the Arduino shield (an easy soldering job).  I ordered the Raspberry Pi and a WiFi dongle for it, plus the Arduino, separately from Adafruit.

I decided to power the Pi and Arduino through this pluggable brand USB powered hub, which also connects the devices for data.  This worked well in my first tests show below, where I got the temperature sensors working to control the SSRs though the BrewPi software.

brewpi testing

I ordered this box to use as an enclosure, which is a little larger than necessary but not massively so.  It held everything (including the power supply for the USB hub, fused IEC power inlet and switch,  and AC outlet for heating/cooling) with some room to work, and is nominally waterproof (NEMA) but that is not something I plan to put to the test, especially after I made holes for the sensors, display, etc.

brewpi assembly

The temperature sensors are on a neat three wire digital bus.  I used old mint tins to house the distribution boards as you can see in the below photo, showing lines for the fridge and beer temperature sensors.  The right carboy has a thermowell to get the beer temperature sensor into the mass of the beer. There is no heater connected, as I didn’t think it would be particularly necessary and I didn’t want to compromise the seal on the refrigerator to pass the AC power cord.  There is a separate room temperature sensor outside the fridge simply to log room temperature.

chilling wort

Below is the data showing the fermentation of this English Bitter style ale.  There is a lot of information there, but I find it clearly presented.  The orange line for refrigerator setpoint jumps around at the beginning as the PID algorithm works to find the right temperature to reach the target beer temperature, which I started at 66F but then reduced to 64F shortly thereafter.   You can see the fridge temp converge with beer temp near the end as fermentation slowed and stopped making significant heat. The beer temperature was rock solid the whole time within +/- 0.1F.  The beer tastes great and I’m very happy with the BrewPi.

special bitter brewpi

WiFi Beerbug Initial Review

beerbug initial trial

Not long ago I received my third hardware example of the BeerBug, namely the current WiFi model.   Previously I had tested two previous incarnations that connected to the world using Bluetooth (see my blog posts tagged beerbug).  After seeing some good looking data from the new models, I took advantage of a reasonably priced upgrade process offered to Kickstarter backers to get the latest version.

Initial impressions were pretty good.  It has more LEDs than the earlier model to provide more information (though these could be documented better), and an integrated LiPo battery that so far has provided outstanding battery life compared to the older Bluetooth prototypes.  This BeerBug uses the Electric Imp platform to connect to a remote server using your home WiFi network, and from there data is accessible by smartphone apps and a web interface.  The hardware gets configured for home wifi by something they call blinkup where your smartphone flashes a coded signal onto a receiver on top of the device.  It is nice being able to see the data from anywhere you have internet connection, especially compared to the older version which required a windows device in bluetooth range.

I’d made a simple PVC holder to allow the “torpedo” weight to hang in sanitizing solution or water without occupying a fermentor, and used this to check the performance of the device.  Here the optional temperature sensor dangles alongside.

beerbug test rig

The software is not fully developed yet, though I thought it was in better shape that the earlier versions I had spent many hours trying to get working, exchanging dozens of emails with the ParasitX crew.  This time I was stymied trying to get the Android app to tare (i.e., calibrated to 1.000 specific gravity in water), receiving a message saying “did not receive a response from the imp servers.”  I thought I had a network firewall issue which led me down a fruitless path of trying to reconfigure my router and DSL modem.  Eventually I installed the iOS app and got the thing tared.  Even later I found that there is the ability to tare from the web interface, though this option was difficult to see.

I haven’t tested it in brewing yet, but here are some results from testing in water as I have done before, to check for drift, accuracy, precision, etc.   The very first run, below, had pretty quick drift up to about 1.005 in the first day or two but after that was steady with small variations of about +/- 0.002  specific gravity units.

beerbug initial trial

On around August 28 I tared it to re-zero at 1.000.  Instead of a vertical line in the chart as might be expected, there is at least one intermediate data point going down to after the completion of the tare, which is strange (see below chart).  I wonder if this is some sort of smoothing algorithm.  After having looked at some of the raw data from the bluetooth devices, I don’t miss seeing it, though the scientist in me is a bit put off  seeing a data point (as opposed to an interpolated line) where there should be none.

beerbug wifi longer test

Anyway, once I got the device set up initially it seemed to be working quite well overall with better consistency and usability than the bluetooth prototypes.  Supposedly the WiFi will connect from inside a refrigerator.  I look forward to using it with a beer.

Reverse Osmosis Water for Brewing

Sorry for the long absence.  Here’s two quick observations about using reverse osmosis water for brewing.

First, I have found that it makes it easier to hit pH targets in the mash with just calcium salt addition (calcium chloride and/or calcium sulfate depending on hopping level) compared to my filtered municipal water, which has some alkalinity.   I used to salt that out the alkalinity with phosphoric acid, but in several batches with RO water I have not needed any acid addition to reach a mash pH of around 5.3.

Second, (this is a little tenuous on small sample size), it seems like yeast nutrient might be more helpful with RO water compared to filtered tap water.  Not a big surprise, but notable anyway – I’m sure the yeast like their trace elements.  Earlier this summer I brewed a saison with RO water (and added calcium salt) and the Wyeast 3724 (DuPont) strain and it was very poorly attenuated despite high temperature.  Granted, this is strain notorious for such behavior, but a Kölsch I made earlier had similar fermentation difficulties.  I wound up supplementing the saison with a packet of US-04 dry yeast which made the beer acceptably dry, with still good phenolic characteristics from the saison yeast.  Most recently I brewed a hoppy wheat beer and for the first time added yeast nutrient to the late boil.    US-04 yeast brought it from 1.055 to 1.004 in eight days.  Sometime in the future I’ll try the Kölsch and saison yeasts again with nutrient in the RO water and see how they do.

Keg Line Cleaner

keg line cleaner


Based on some ideas on, I made this simple keg line cleaner using a hand-pumped garden sprayer and a couple of fittings from CHI company, which was the only place I found selling both a pin lock liquid out post and a barb adapter for it.

keg line cleaner

It’s a lot more convenient to use this than to deal with pumping cleaner through using a a spare keg.

Calcium phosphate precipitation in brewing water

I’ve been pre-treating my water with crushed campden tablet, phosphoric acid, and calcium salt (chloride, sulfate, or a mixture).  I’ve seen very small amounts of while solid in the hot liquor tank (HLT) and didn’t really think much of it, sort of assuming it was undissolved material from the tablets.  But after seeing this comment by AJ deLange I wonder if it might be precipitated hydroxyapatite or another calcium phosphate.

If this really is happening in the HLT before I mash in, my impression is that it’s not a big problem.  I don’t believe the precipitation will do anything drastic to the pH, and in any event I can adjust the amount of acid added to correct for this.  I don’t care about the phosphate going missing as the mash will have plenty anyway.  I’m a little more concerned about losing calcium.

Here’s some crude chemistry to figure calcium loss in precipitation with phosphate. For guesstimation purposes, the molecular weights of phosphoric acid, CaCl2, and CaSO4 are the same, and with one of the relevant ion in each compound we can compare the ions directly by weight of their parent compounds.  Conservatively I guess I am using 10 mL of 10% phosphoric acid to treat my water, and probably less in reality.  With a density of about 1.9 g/mL, this means roughly two grams of phosphoric acid.  There are several calcium phosphates but the worst (in terms of taking out calcium) would be the apatite minerals Ca10(PO4)6(OH,F,Cl)2, requiring around two calcium ions per phosphate.  So one would need to add about four grams of the calcium salt to match the two grams of phosphoric acid.  Although I haven’t kept the best records, for the most part I have been adding more calcium than this: depending on the salt, one teaspoon of gypsum or calcium chloride weighs around three and a half grams or more.

This also doesn’t account for the moderate calcium in my municipal water (average 38 ppm according to the utility company).  So using the worst-case assumptions, I believe the calcium will be in excess for me, so the calcium salt additions will still have some effect even if a bunch drops out of solution (and in the case of gypsum, I want the sulfate as well, which stays).

This chemistry was touched on somewhat in Ye Olde HBD (such as here) and might be mentioned in the new brewing water book (which I need to finish).

DMS condensation myth

Yeah, Science

Some people think dimethyl sulfide (DMS) will condense on a kettle lid and undesirably fall back into the boiling wort, so they do full open boils.  After doing over a hundred batches with the lid covering 80% or more of top of the kettle, I just looked up the boiling point of DMS to find it to be 99°F.  I think my kettle lid is at least 180°F during boil – there’s no way is DMS condensing.  Use science and stop wasting energy.

Yeah, Science

Brettanomyces IPA

Inspired by the Mad Fermentationist Brett IPA and after a discussion with the brewer from Chocolate City, who suggested the Apollo hops, I made my second India Pale Ale using the Brettanomyces Trois yeast from Wyeast (Wyeast 5526).

After pouring the first pint, I am happy enough with it to share it here.  It’s tart and complex with pungent citrus and tropical fruit from the hops blending with the Brett character.

Recipe Details

Batch Size Boil Time IBU SRM Est. OG Est. FG ABV
10.5 gal 60 min 62.6 IBUs 3.7 SRM 1.061 SG 1.017 SG 5.8 %

Style Details

Name Cat. OG Range FG Range IBU SRM Carb ABV
Specialty Beer 23 A 1.03 - 1.11 1.006 - 1.024 5 - 70 5 - 50 1.8 - 3 2.5 - 12 %


Name Amount %
Pilsner (2 Row) 19 lbs 73.08
Wheat Malt, Ger 6 lbs 23.08
Cara-Pils/Dextrine 1 lbs 3.85


Name Amount Time Use Form Alpha %
Citra 2 oz 60 min First Wort Pellet 12
Apollo 2 oz 5 min Boil Pellet 17
Citra 2 oz 5 min Boil Pellet 12
Apollo 2 oz 2 min Boil Pellet 17
Citra 2 oz 0 min Boil Pellet 12
Apollo 4 oz 4 days Dry Hop Pellet 17
Citra 2 oz 4 days Dry Hop Pellet 12


Name Lab Attenuation Temperature
Brettanomyces Bruxellensis Trois (WLP644) White Labs 70% 65°F - 72°F


primary temperature rose as high as 80F early on
kegged to secondary after two weeks in primary
dry hopped in secondary beginning Sept. 18, 2013

Original recipe called for the following hopping schedule:
5 ml HopShot (Extract) @ 60 min.
1.50 oz. Centennial (Pellet, 8.50% AA) @ 60 min.
2.00 oz. Centennial Pellet (Pellet, 8.50% AA) @ 0 min.
1.00 oz. Citra (Whole, 10.00% AA) @ 0 min.
1.00 oz. Chinook (Whole, 13.00% AA) @ Hop-Back
1.00 oz. Citra (Whole, 10.00% AA) @ Hop-Back
2.50 oz. Citra (Whole, 10.00% AA) @ Dry Hop
1.50 oz. Centennial (Pellet, 8.50% AA) @ Dry Hop
1.00 oz. Chinook (Whole, 13.00% AA) @ Dry Hop

Another BeerBug trial

summer porter beerbug

I forgot to deploy the BeerBug in my last batch until the primary fermentation was a couple of days in.  After making sure it was level and relatively well behaved (see the last post on this) I was eager to try the BeerBug but as it isn’t part of my routine now it didn’t occur to me until after fermentation was well underway.

Anyway here’s the data I collected, starting around 1.025 gravity and quickly going to terminal gravity:

summer porter beerbug

If you click to see the chart in full size you can see that the oscillations are not on the same pattern as the temperature fluctuations (which are from normal diurnal heating and the air conditioner cycling on).  Strange stuff.  There isn’t much if any drift, just oscillations of about 0.006 gravity points in amplitude.  Measuring with a conventional hydrometer found the terminal gravity at 1.011.

Kegerator Draft Tower Cooler to Avoid Initial Foam

installed 2

I’m not alone in noting that, especially in summer, the first recent pour of homebrew tends to be foamy at first.  Part of the problem is that the beer in the draft tower cools down so that the CO2 in it becomes less soluble and tends to come out immediately. Today I set up a fan to blow cool air into the draft tower to try keep the beer in the draft tower cooler.

I used a fan from a dead old Mac Mini and a 5V power supply from a Ye Olde Palm Treo, soldering a 2.1mm barrel plug and socket to make it dis-connectable.

soldered fan and power supply

The fan is rated for 12V and the power supply is 5.2V.  I tried a higher voltage power supply and it did blow a lot more air, but subjectively the fan blew hard enough on the lower voltage supply, and it was definitely quieter.

I was able to run the power cord out through the drain port at the bottom of the fridge as seen here.


Here’s another shot of the installed fan with both kegs in the fridge.

installed 2

I used safety wire hold it in place.

Additional BeerBug Testing and Review: More Stable, Less Drift

BeerBug level tare test

Since my last review of the BeerBug hydrometer I’ve had a chance to do some more testing.  At first the data was pretty poor.  I sent those results to the BeerBug folks who thought it might be because the device wasn’t level.  It seems pretty sensitive to this, as it couldn’t have been more than few degrees off.

I got a stick-on bubble level like this one, re-tared, and left it for a couple of days in some santizer solution (approximately SG 1.00 and with the taring should read 1.000 regardless).  The results were much better than I’d seen before:

BeerBug level tare test

There is still a little drift that seems to be temperature related.  The indicated specific gravity varied from about 0.999 to 1.007.  Probably because I tared at a time when the temperature was relatively low, the drift is mostly at the upper end.  It would be better to tare at the average fermentation temperature.

As usual, I have a batch of beer just coming out of primary so it will be a while before I can test it under actual conditions, but I think if it the device is kept level it will work well enough to ascertain the end of primary fermentation.