BrewPi: Raspberry Pi and Arduino Powered Fermentation Chamber
For the homebrew hardware nerds out there who also homebrew beer: "BrewPi is an open source fermentation controller that runs on an Arduino (for now) and a Raspberry Pi. It can control your beer temperature with 0.1 degree precision, log temperature data in nice graphs and is fully configurable from a web interface."
Source code. The article has lots of photos and screenshots. The project involves rewiring the compressor's electrical connection through a PID controller, and includes both a fancy OLED display on the fridge and support for logging statistics and control over the web. If you've ever had the joy of gradually crash-cooling a lager (not too fast, not too slow), the software includes settings to effect gradual temperatures changes in the fermenting wort. Certainly fancier than a Johnson controller and a probe attached to a fermenter with a strip of insulating tape.
I'd be interested in multiple control points... I've started to do pressurized fermentation once the gravity of the beer of approaches the final gravity. This carbonates the beer without a secondary fermentation, and reduces risk of introducing oxygen and contamination into the beer. If the system could electronically monitor specific gravity then seal the airlock, but blow off any excess over 10psi... would be awesome!
is what technology is for.
You reckon you can do temperature control in an uncontrolled environment with a handful of transistors? Keep in mind the external temperature is uncontrolled. The yeast itself generates heat within the ferment at varying (and often unpredictable) rates.
The simplest approach you can reasonable consider for the level of control they're looking for in their environment would be a PID controller, which if memory serves me correctly will have more than a handful of transistors in it. You're going to need a pretty decent PID to handle temperature profiling, which their solution
They're using cheap, off-the-shelf parts to solve their problem, which in turn allow them to put extra features in there like web control, and it's now much easier for anyone to do the same thing. The parts may not have existed in 1964, but you need to keep in mind The Doors aren't the only good thing to happen since then.
Why does it have to be a Raspberry? Why do you have to control it in C? Is it because people don't teach or know how to do it the old school way anymore?
Do you want to explain how to make a tunable PID loop out of transistors? Yes it can be done, but the commercial loop controllers I used 30 years ago certainly had their foibles. And there is a hell of a lot of useful fundamental old school control theory that can be learned in doing it the way they have. Proper manual loop tuning is just as much an education as building a circuit out of individual parts.
I am Slashdot. Are you Slashdot as well?
Can this ferment viili or filmj:olk?
Glad you're gone.
Look, you can do it the easy way or the hard way. When tech is cheap, why not do it the easy way? And when you've got the extra power, why not go for some bells and whistles?
And did you read the goddamn article? The guy wants to glance at his brewer and make sure it's still doing what it should. Should he make it beep morse just because he can?! Seriously, what kind of idiot would build something like this without a display?
According to the comments here: http://hackaday.com/2012/10/01/brewpi-is-a-raspberry-pi-in-charge-of-beer-fermentation/
>The Pi is a bit too unstable to be trusted with direct control over the fermentation. The slave controller runs all the control algorithms, the Pi is for interfacing and data logging.
Is it because people don't teach or know how to do it the old school way anymore?
Got it on the first guess. Hell, I'd be surprised if 2% of /. readers can even read resistor color codes.
Of course, that being said, it's probably less work to calibrate a computer controlled sensor and cooler than to achieve the same precision with thermistors.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
Why does it have to be a Raspberry? Why do you have to control it in C? Is it because people don't teach or know how to do it the old school way anymore? Is the effect somehow less if you DONT have a fancy OLED display?
Why? Because these methods are objectively better than the old way. And I say this as someone reasonably experienced in the old school way.
The controller is far more sophisticated than a simple PID loop, even if you ignore the ability to log the temperature history, store profiles, query the status remotely, etc.
The OLED display isn't necessary, but it's actually a helpful, useful feature to be able to display the status of the system clearly and unambiguously.
And good luck implementing this "the old school way" in the same period of time as someone using these tools could do it.
It doesn't have to be a Raspberry Pi or Arduino with a spiffy display, but there's no glory in doing things the hard way. There's educational value in it, and in knowing the basics, but a system that works doesn't benefit from having been hard to build.
I guess if you consider the problems you would have calibrating an analog version, along with the display interface, the digital stuff has become more practical than the old analog stuff we grew up with. Did you forget all those trimpots we always had to design in because we never knew the exact parameters of our parts?
Those old analog panel meters are now quite expensive. As well as being fragile, and never were much better than 2% accurate. The cheapest 3 1/2 digit display you get today blows them out of the water.
Personally, I enjoyed this article - as I build a lot of heat transfer controllers - and I find it very interesting what others are doing.... Not to say I would do it the same way, but others often find some way around a situation that has stymied me in the past.
I am very interested in when people start controlling compressor speed via variable-speed three-phase drives. Some washing machines already use these pancake-like motors to completely eliminate the transmission, controlling the motor speed and direction directly from a microcontroller so as to seamlessly shift the motor function between agitate and spin. I have been waiting with baited breath for a refrigeration compressor made in that manner so I can optimize the refrigeration process for whatever heat transfer I can get into the evaporator coil and out of the condenser coil. The only control point I now have is either flat all-or-nothing from the compressor and limited control of the thermal expansion valve. With finer control of heat exchanger temperatures, I can control not only air temp but also the humidity.
Articles like this constitute a design snippet to show a usable part of a larger system.
"Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]
That sounds a bit fishy. A Raspberry Pi can't keep up with switching a fridge on and off to keep temperature in a range? That beggars belief. I have an Apple II bit-banging a 1-Wire temperature sensor and clock and toggling a relay on and off for the same purpose. If a 1-MHz 6502 can run a fermentation fridge, I'd think a Raspberry Pi would be more than up to the task. I'm pretty sure there's a 1-Wire USB interface available that would let the RPi use the same sensor I'm using, with less overhead.
20 January 2017: the End of an Error.
You can definitely make great cider that way (I've done it!). Instead of Champagne yeast, try Cote Des Blanc or an English ale yeast to get a bit of extra complexity (Champagne yeast is really neutral... an estery yeast really helps in a cider), and bump the gravity up to around 1.070-80 (maybe even 1.100 if you want to make an Applewine instead). You have to let it ferment for around 3 months (and rack it at least once! Sulfites are your friend), but the end result is pretty great with not much more effort than "try to forget that it exists for a while".
Starting off that way, I've gotten into making a lot of Cysers (think mead, but with apple cider instead of water diluting the honey)... super simple brewing process compared to beer, but the whole "it really does only start tasting great at 12-18 months after you made it" part is so painful (well, it's certainly good well before then, but once you've tasted a wine you've let properly age you realize how much you were missing... ignorance, unfortunately, proves yet again to be bliss). I'm on my third year so I have a reasonable stock built up, but boy was it hard at first...
HAL 7000, fewer features than the HAL 9000, but just as homicidal!
This seems like overkill. If you just want a web interface, there is an Arduino library that will allow you to establish a SLIP connection over USB to connect to the Arduino via a webbrowser, no ethernet shield required: SerialIP. It does take up a bit of memory, though, which leads to the next suggestion...
How did you max out the program memory on your Arduino? Why on earth would you use 16 bits (0.001953125 dC precision) to store temperatures, when your thermometer only has +/-0.5 dC resolution? Does it really matter that you turn on your refrigerator compressor at the exact nanosecond it needs to come on?
"I assumed blithely that there were no elves out there in the darkness"
Elco here. The raspberry pi is easily fast enough, but it would crash on me sometimes. Just hang and require a reboot. A microcontroller just doesn't crash.
The Arduino does the temperature control (as that's what microcontrollers are good for) and the Pi is there to add a nice display and web server (as that's what a mini SBC is good for), seems like using the right tools for the right jobs to me. If you don't want a fancy display you could just use the Arduino part and skip the Pi.
For my Keezer build I looked into a Johnson controller, but decided to go with one of the cheaper and better Chinese eBay temp controllers for 25$.
http://www.homebrewtalk.com/f51/ebay-aquarium-temp-controller-build-163849/
Dirt cheap and reliable. I was looking all over for an arduino build like this though, because I would love to log the temps.
Made my first lager with the cheap Keezer, a little GE that can hold 4 Corny Kegs, and am in homebrew heaven. Make a Homer Love/Drool noise if you know what I mean, my homebrew brothers and sisters!
http://www.homebrewtalk.com/f51/ge-7-cf-fcm7suww-keezer-conversion-192208/
I bottled exactly once and ran straight to kegging. Washing bottles is purist, sure, but egads does it suck. And having an 80lb CO2 tank connected to what will be a standing desk that dispenses 4 different beers? Goddamn I love the art and science of homebrew.
And by the way, InBev? Fuck you. Same thing to all the prohibition era, rice beer holdovers from when it wasn't legal to brew at home. Damn old ladies and their axes...
Dude do you know how many transistors you can fit in your hand nowadays?
The Arduino does the temperature control (as that's what microcontrollers are good for) and the Pi is there to add a nice display and web server (as that's what a mini SBC is good for), seems like using the right tools for the right jobs to me. If you don't want a fancy display you could just use the Arduino part and skip the Pi.
In that vein, it's worth noting that an entire RPi sells for less(sometimes about the same, depending on distributor) than the most common W5100-based Arduino ethernet shields, while being markedly more powerful and having convenient features like USB host support and some I/O pins of its own. This probably helps explain some of the recent popularity of 'Arduino+RPi' projects where the RPi is, perhaps, a bit on the overkill side from a purely technical perspective...
BEER is good. BEER should be studied in school. BEER should be required for graduation. BEER should be in the home. BEER should be promoted for the betterment of society. BEER is good for everyone of all ages.
Imagine a beowulf cluster of these.
-