My Experience Building a BrewPi

One of the first upgrades that’s suggested to new brewers is temperature control. Keeping the temperature regulated keeps the yeast happy preventing off flavors, ramping up at the end helps them finish fermentation, and controlling the temp can allow for finer tuning of esters, phenols, and other yeast aromatics.

For a fermentation chamber, most brewers seem to go with either a chest freezer or a fridge. Usually it’s an old or used one from craigslist or a friend or a retired fridge from the kitchen. To regulate the temperature, the simplest thing to do is buy a pre-wired controller such as the Inkbird ITC-308, which provides basic cooling control and you can add a cheap heat pad if you need heating as well. If you want to be able to program the controller to adjust temperature on a time schedule, Inkbird sells the programmable ITC-310T. I’ve not used either of these products specifically, but before Inkbird offered these pre-wired I wired up quite a few STC-1000‘s which is the DIY version of the 308, and the STC-1000+, which is the DIY hacked predecessor of the 310, and I can say that they work great. These options are the simple plug-and-play or DIY solutions, but they don’t include logging or the ability to monitor fermentation remotely. For these arguably unnecessary luxuries, something with a little more processing power, complexity, and cost is required.


Fancy Pants Temperature Control

Enter the BrewPi. Powered by a Raspberry Pi, BrewPi offers historical temperature data logging, remote access over the internet, and PID temperature control for more precise control and adjustment. The fact the DIY version is based on a Raspberry Pi and an Arduino makes it a very attractive option for the nerdy hardcore DIY homebrewer. Add to it that FuzzeWuzze has a great tutorial over on HBT for building one for under $100, and it seems even more attractive.

I didn’t have a Raspberry Pi or an Arduino already and had zero experience with either, and it wasn’t as simple as soldering it all together and executing a series of terminal commands. If it was, I’d wholeheartedly recommend this project to just about anyone. If you already have a spare Pi and a spare Arduino and you are familar with both, then forge ahead, you’ll easily navigate the bumps along the way to getting it working if you’re the type of tinkerer that already has these parts on hand. As it is, I would recommend the average homebrew “geek” proceed with caution, as a BrewPi can be frustrating to get running. The good news is that once it’s running, it’s awesome.

If you’re like myself and quite stubborn and the $175+ price point of the pre-built BrewPi Spark is too much to stomach, here is my experience building a Brew Pi and some of the pitfalls I encountered. This is not a how-to, as FuzzeWuzze’s how-to is probably as good as it can be. These are just some common problems you might run into if you build a BrewPi as of the date of this post.



The first pitfall was that I followed FuzzeWuzze’s guide on HBT. I didn’t realize that he had moved a large portion of the tutorial to a wiki, which is linked at the top of the HBT thread. The instructions in the wiki include using Debian Wheezy instead of the newer Debian Jesse, and setting BrewPi up to be in Legacy mode. I had to start over from scratch with installation after getting Jesse and BrewPi installed. Not that big of a deal because Raspberry Pi’s NOOBS allows for easy installation, and installing BrewPi is a simple apt-get. I couldn’t easily find which NOOBS version is the latest Wheezy version, so if you are going this route, it’s NOOBS 1.4.1, or at least that’s what I used.

Chinese Arduino Clone
Arduino Brand Arduino

The second pitfall I had was that I bought a Chinese Arduino clone and not an official Arduino. I have my BrewPi working great now, but there are some extra steps that you’re likely to need to take to get a knock-off Arduino working that you probably wouldn’t have to do with an official Arduino. The first is that writing the BrewPi hex file cannot be done from the BrewPi web page in the browser. You’ll need to use a Windows PC and a program called XLoader to push the hex file to the arduino for the first time. After that, once you have your Arduino and temperature probes and relays hooked up, you’ll need to use the instructions here to do an EEPROM reset if those devices won’t save from detected devices to become installed devices. I had to do both the basic teminal command and I also tried the method of installing “screen” and sending an ‘E’. I did both of those a couple times, I don’t know which one actually worked, so you may want to try them both if your detected devices won’t become installed devices.

Finally, FuzzeWuzze’s instructions don’t cover how to mount any of the components or an enclosure, which is just left up to the builder’s creativity. This is fine, and honestly expected for a DIY sort of project like this, but these things do add to the cost. I think I still ended up shy of $100 since the price of my Raspberry Pi and Arduino were cheaper than what he lists.

Many of these things sound trival now, but it took hours of googling to solve several of the problems I was having and then quite a bit of time to execute the fixes as well. I suspect that spending $20 more on an official Arduino would’ve been worth the money to have it work as soon as it was put together.

BrewPi reporting for duty

Overall, this is probably a project I would do again, just because I’m cheap and stubborn. Also, now that I’m on the second beer fermenting with my BrewPi, the coolness of being able to log in from anywhere and check on the fermentation progress is awesome. It’s also really neat because you can look at the heating and cooling cycles and you can gain some insight into when fermentation started and how vigorously the beer is fermenting. There are also numerous hacks and add-ons in the HBT thread such as integrating a webcam to watch fermentation or adding an LCD screen to the outside for at-a-glance temperature monitoring. You can also publish the BrewPi page publicly, but without controls so others can monitor ferments if you desire. I’d post the link to mine here, but last time I shared it with a group of people my Raspberry Pi couldn’t keep up with the volume of requests and was effectively DDOS’d even though it was only 5-10 simultaneous users. A Raspberry Pi model B+ just isn’t meant to handle that sort of load.

If you look at the graph above, you can see where fermentation started around the 11:00 mark because the beer temp (green line) starts to slightly rise above the beer setting (red line). Then you can see at the bottom the blue dashes begin representing cooling cycles. Also, you can’t see it in that graph, but once the temp gets to the setpoint, it typically varies by less than .5 degree F. This is actually beyond the accuracy of the temperature probes themselves, but it’s pretty cool that it can maintain such accurate temps without short cycling the compressor.

Have you built a BrewPi? How did it go for you? Let me know in the comments.



6 thoughts on “My Experience Building a BrewPi

  1. Great write up!

    I do agree there could be some further documentation done to the whole Arduino side to make things a bit easier. I am fairly positive you do not need to go through the whole Xloader stuff if you preload your Arduino with a blank sketch using the standard Arduino IDE you can get off Arduino’s site.

    That said there is work being done by some people on HBT to remove the Arduino completely from the process for those that want. This in theory allows a $5 RPI Zero to replace a $45 RPI B+ and $10 Arduino, further reducing the costs to that approaching a InkBird or STC1000.

  2. I actually was setting mine up last night into this morning, I actually did not have to preload a sketch, I went straight to Xloader and it worked flawlessly. I wish I would have seen your post rather than spending HOURS googling and finding information on different sources.

    do we know why we are actually using the arduino anyways? I’ve had a ghetto version of BrewPi I had written myself in a few hours running right off of a raspberry pi with nothing external, aside from the relay board.

    • I think mainly the arduino was (and probably still is) more stable than the rPi, so even if the rPi crashed or rebooted, the profile would still run on the arduino as long as it had power. I think now the rPi has been stabilized to a point it could be used standalone, and I know FuzzeWuzze is working on something like that, and there are a few other solutions doing the same thing. I’m interested to see where those sorts of projects go.

Leave a Reply