Skip navigation



Shiny keggles...

Posted by Ben_B Dec 11, 2012

In spite of what you might have read on Hackaday, the keg kettles (typically called keggles in the homebrewing world) have not been chromed.  Instead, that lovely shine was acheived nothing more than elbow grease and some quality time with a angle grinder.


I will take almost no credit for this work.  I did a final pass with a buffing wheel and some hand polishing, but the brunt of the labor was done by the friendly marketing guy responsible for this project.  I pointed him to a pretty good write-up of the keg polishing process and promptly left town for a week and a half.  It was definitely not my intent to slyly coearce him into polishing the kegs for me, but it definitely worked out quite nicely.  You can find the instructions here.  I won't comment on how many hours he spent working on it, but I can share the before and after pics that he sent out.



The shiny kettles don't really make any better beer, but they're definitely pretty!  The other interesting thing about the keggles is the soldered fittings that I have spread throughout each of them. has some really good how-to discussions about soldering stainless, but there are really 3 important things that I'd like to point out.


First, use good flux.  I had no trouble getting plumbing solder to flow (just make sure that it's the lead-free stuff that's suitable for drinking water).  I picked up a propane torch kit and the solder up at Home Depot or Lowes, but the fancier flux really makes a huge difference.


Second key is to make sure that you prep the surfaces properly.  You have to make sure that they're degreased, and scuffed up with a fine grit sand paper.  That goes for the keg wall as well as the fitting that you're planning on soldering in.  If you screw this up, you're likely to not get a good junction.  As long as you get both parts hot enough, you should get the solder to wet the surfaces properly.  If you don't get a good seal, it's not a big deal to get it hot again and try to make the solder run.  If it still doesn't flow, it isn't tough to heat it up, pop the fitting out with a hammer, re-prep the surfaces and start it again.


I think the biggest thing though was the use of a dimpling tool.  There's a really good discussion in the soldering thread that I liked earlier, but I'll keep you from needing to search through all of the pages.  I follow this parts list and these instructions to put together a tool that pulls the fitting through a slightly undersized hole.  It makes a really nice mechanical fit between the keg and the coupling and also gives a nice valley for the solder to flow into.


For most of the ports, I used normal stainless 1/2" NTP threaded couplings.  On some of the ports that I knew would only have something screwed in from one side (like the thermometer ports) I used half couplings because they were a little shorter and a little cheaper.  If you use these half couplings though, remember to put them in the right way.  The tapered fittings will only let you screw in something from one side.  I learned that lesson the hard way.  For the water heater elements, I used a 1" nut on the HLT and a 1" welding spud on the boil kettle.  The spud was pretty cool, but because it was on the outside of a curved vessel, I had a little more trouble getting the solder to flow than I had hoped.  I ended up with a little leak and decided to use a little JBWeld on it anyway.


Add some valves, add a sight glass and an old fashioned analog thermometer on the boil kettle, add a heat exchanger and add some various other fittings here and there and you've got my setup replicated.  Simple as 1,2,3,4,5,6... In the next two pictures you can see the built-in immersion chiller in my boil kettle and the port and silicone tubing that I use to create good whirlpool action while the beer is cooling.


immersion chiller.JPG

IC connect.JPG

In the bottom of the kettle, I have one of these guys soldered to my copper pickup tube:


There's a lot of stuff going on with the electric heating element, the pickup tube, the wort chiller and the screen all in the bottom of the pot.


I've gotten a lot of questions recently about scorching.  The short answer is that I get basically none, definitely no more than I got on the bottom of the pot when I was using a propane element.  It's definitely a little harder to clean off the element than it is the bottom of a pot, but a good soak in warm OxyClean does wonders.


Brewery Control Code

Posted by Ben_B Oct 31, 2012

I've been working on a post about the keg kettles and all of the bits and pieces that went into them, but I'm still lacking some photos.  However, I've had some commenters requesting the code and even offering to take a look at debugging the UI, so I'll put the keggle post on hold for another week or two and talk about the code for a minute.



In spite of what this code may look like, I am in fact a professional LabVIEW programmer.  I'm a card-carrying CLD (although it's about time for a re-cert) and I'm helping write the new embedded developer exam (see? credentials!).  I spend a lot of time during my daily work life writing clean, well-documented, architecturally sound code.  I feel like that gives me some leeway in my hobby life to write functional code that's "good enough."  To any future customers of my consulting services or future employers, please don't judge my body of work based on this system. 

**End of Disclaimer"


There are three main parts to the code architecture.  The low level stuff is taken care of in the FPGA which is being used mainly for IO and for the digital temp probe communication protocol (1-wire DS18B20 temp sensors).  Control loops, the embedded UI touch-screen interface and the data publication are being handled in the real-time code.  The touch-panel PC in the project is just being used for an interactive demo about the brewing process, but I've written some apps as well that I'm using for various things.  I haven't yet done much to tie the touch-panel UI into the RT system, but I plan on adding alarms and such to the code for that.


So here's a high-level view of the control code.  The light blue square blocks represent the computing hardware, the dark blue boxes represent compiled executables / FPGA code, the white blocks represent functional chunks of code, and the green blocks represent connected hardware.  The lines in the diagram represent physical connections of various types.  For a much more in-depth look at the physical connections in the system, check out the more complete drawing of the system.


brewery software.jpg


Touch-PC UI


Since I've already posted my touch-panel app, I'll not go into much detail about it here.  However, I will say that the app in the project that I've attached is a pretty cool intro to brewing.  It goes through the brewing states and shows what's happening at every step.  You can also click on the "more information" button and bring up a more in-depth explanation of what's happening.  The code for this was set up by one of the guys who helped me on the project, and it's super-modular.  If I wanted to replace the dummy data with real data coming from my brewery, it would be a quick drop-in of a shared variable, and I'd be up and running with a high-level view of the brewing system.  In the future, I may merge the two UIs.


touch panel demo.jpg


LabVIEW RT Application


There's a decent amount going on in the RT code.  Fundamentally though, there are 3 loops.  The highest priority loop reads temperature information, the potentiometer values and the switch switch positions from the Reach LCD and then writes out data to the relays (both the low-power relays on the RIO mezzanine board and the high-power solid-state relays controlling the heating elements).  The RT code is responsible for taking the raw data from the FPGA and converting that into engineering values.  With that data, the control loops are really simple.


The hot-liquor tank has closed loop temperature control via an on-off algorithm.  I can get into details of it if anyone is interested, but temp control using an immersed heating element doesn't really require PID control, and I get less than 1-degree F overshoot with an on-off method.  If the temp is too low, turn on the element.  Otherwise turn it off.  Simple as that.


The second priority loop takes the data from the temperature sensors and buffers it into 102-element arrays that represent 1 and 6 hour periods.  Why 102, you ask?  Well, the graph object on the Reach LCD looked best with 102 elements in it.  That made the size work out well, so that's what we stuck with.  I know that there are probably cleaner and more effective methods of doing all of this data construction and array manipulation, but this worked and doesn't hose processors anywhere by trying to update or read one giant shared variable.


The lowest priority loop handles the interface with the Reach LCD.  All of the API are VISA serial calls, and it's actually a pretty well-packaged and well-documented interface. One of the other guys on the project did basically all of the coding for this part.  Maybe I can talk him into doing a write up of the process at some point in time. 


As an alternative to the Reach LCD, I used this one in the previous generation of my brewery.  The biggest complaints were that it didn't have a backlight, and the contrast was very temperature / light dependent.  It was cheap and it worked though!


**SHAMELESS PLEA FOR ASSISTANCE** I currently have a bug somewhere in the UI code.  It doesn't occur very frequently (maybe 5 times over the past 3 months of having the machine running), and I can't figure out exactly what is causing it.  It appears to be independent of what LCD screen you're going to or coming from.  I do know that it has something to do with going from one "screen" to another.  Any debugging thoughts would be appreciated.  It hasn't been very high priority to fix because it just takes a "quick" reboot of the system to clear the error.  So I lose maybe 40 seconds worth of data, but that's not a real problem.  Regardless, it's bugging me, and I've looked at it long enough that another few sets of eyes would be useful.


FPGA Application


Aside from the 1-wire protocol stuff that I linked above for the temp sensors, everything in the FPGA is pretty specific for the daughter board that we had our colleagues on the MultiSim team design specifically for this application.  It's pretty basic IO calls to the hardware.  The one strange thing is the loop that I'm using to do the volume measurements. 


To take the measurements, I'm using a digital pressure sensor.  I have a tube that runs to the bottom of the HLT that I have connected to an aquarium pump.  The pump supplies a stream of bubbles that does an amazingly good job of stirring the kettle.  However, it also provides me the ability to measure the volume. There's a pretty good explanation of the process on the brewtroller website.  The pressure in that tube is equal to the force supplied by the column of water above the air inlet.  If it didn't have air continually being pumped through it, that pressure and that volume of air would be dependent on temperature; however since I'm pumping air through it, the measurement becomes completely temperature independent since the density of water doesn't change significantly with temperature until it freezes.  The problem is that the pump causes a bubble ever few hundred milliseconds.  That creates a ripple in the pressure reading that needs to be filtered out.  I pulled those two analog channels out, dropped a low-pass filter and made the cut-off frequency incredibly low.  It seems to work pretty well, but I haven't actually calibrated it yet.


I guess the other interesting thing to talk about is the PWM.  When I went into this, I was thinking like I do in my normal work life where I control IGBTs and generate nice, smooth AC power.  I had forgotten that most solid-state relays (even the $6 ones that get shipped on a slow-boat from Hong Kong) have built in zero-crossing detection.  That means that they only switch the AC power to the heating elements when the AC power is at 0V, an event that occurs at almost exactly 120Hz.  That said, even if you had some very high-speed PWM, it wouldn't switch any more frequently than 120Hz.  So, I set up a 1Hz PWM.  It has an integer input of 0-100 (which should probably be 0-120, but the 100 scale makes more sense for percentage...and it works well enough) to define the "on" time of the PWM pulse.  For more background on using PWM to control power, take a look at the wikipedia article on it.


Controller Hardware


We had our colleagues in Toronto design a custom daughter board for the single-board RIO specifically for this application.  It's a 6-layer board and probably not something you would want to whip up yourself.  However, if you'd like to replicate a similar system with cRIO hardware, there are definitely options. 


The digital temp sensors should probably be handled by an NI-9402 (I think I discussed that in the temp sensor article linked above).  You can replicate the generic DIO with an NI-9403 or something higher powered like an NI-9472 or NI-9474.  The relay module on the daughter board is functionally equivalent (but not software equivalent) to the NI-9481 module.  You could do analog input with a number of things like an NI-9201, NI-9205 or an NI-9215.  Depending on the number of modules and channels that you need, the control system could easily run on a cRIO-9075 (functionally equivalent to the sbRIOs) or a cRIO-9074 (previous generation but 8-slots).  I know that's not very definitive, but a brewing system is so customizable that there's almost no way to spec out something until you know what IO you're looking for.  However, at a bare minimum, you could get by with the following:


  • NI cRIO-9075 - Integrated 400MHz Real-Time Controller and LX25 FPGA
  • NI-9472 - 8 Ch 24V (up to) Digital Output (for driving SSRs and other higher current DOs)
  • one of the following temp feedback modules
    • NI-9402 - 4 Ch LVTTL High-Speed Digital I/O module for digital thermometers
    • NI-9211 - 4 Ch Thermocouple Input Module
  • other potentially nice modules to have
    • NI-9402 - 32 Ch 5V TTL Bidirectional Digital IO Module (generic DIO)
    • NI-9201 - 8 Ch AI Module
    • NI-9481 - 4 Ch 250VAC / 30VDC 2A Relay Module


Sensors (currently in use and planned for the future)


The current list is pretty simple.


I'd like to add the following stuff as well.  I some of both sensors sitting on my desk, and I mean, you can't have too much data right?

  • Flow sensor from Futurlec
    • only rated to 80C, so they're only good for pre-boil kettle
    • could be used to balance in-flow and out-flow of mash tun maybe?
  • Current sensors (ACS754) from Allegro
    • rated to 50A with a 40mV/A feedback
    • going to add one to each heater circuit and maybe one to the main power


So that's the system!  If you're interested, take a look at the code.  I'd be happy for any feedback that you might have; however, I'll warn you.  If you come up with something that I just have to change that's functionally equivalent but better programming practices, I'm going to point you to the disclaimer at the top of the post!


Touch PC brewing app

Posted by Ben_B Sep 24, 2012

When the demo was on the NI Week Expo Floor, the 12.1" touch panel PC (TPC-2512) had some really obvious uses.  While it was sitting there, we had an app running that would walk through the brewing process and give background info.  People could interact with it, clicking for more information and other fun stuff like that.  However, once I got it home, I was struggling a little to come up with a good use for it. 


My first thought was that I needed a USB TV tuner, but apparently that needed WAY more horsepower than the TPC has.  So much for my college football watching brewery pipedream.


So what things do I need over and over again during my brew day?

  • a flexible timer
  • various brewing calculators
  • recipes


I think that I'm most excited about the recipe integration.  I really like the "recipator" inteface for storing and editing my recipes.  It's simple, straightforward and allows me to save things as an HTLM file, but here's what typically happens.  I work on a recipe at home and email it to myself when I'm done-ish.  I typically go to the homebrew store over lunch, so I'll tinker with the recipe one last time and then print it out at work.  The printed recipe goes into my ingredients bag at the homebrew store, and then I pull it back out when I start to brew.  I typically make notes on the printout, but by the end of the brewing session it's wet and messy.  I almost never get my notes back into my recipe database.


My new brewing app saves me from all of this pain.  I can still email the recipe to myself, but instead of printing it I can just look at it on my phone.  Then when it comes time to brew, I open up the recipe, make changes where I need to and then hit "Save" at the end of the day. 


TPC app.png

The buttons are all big enough that I can use them easily on the touch PC.  Between this and an old version of Winamp, I'm pretty happy with the software on the TPC.  Since the brewery is bridged to my home wireless network, I have access to both my recipe folder and my music folder.


It would be nice though to tie it to the sbRIO so that I can do some higher-level monitoring and alarms.  Also, I'm thinking about adding in a boil timer functionality where you queue up alarms for it to remind you for various additions.  This is not a bad first stab though.


I've attached the original VIs, a built executable (you just need to have the LabVIEW 2012 run-time engine installed) and an example recipe.


I also got the second batch through the new brewery.  This one was a big 35lbs grain bill.  With an added 2lbs of brown sugar to pull the original gravity up to 1.086.  So it'll be super-hoppy, super-dark and high gravity (projected at 9.2% ).  We made the same beer last year, and it turned out great.  I oaked it with some burbon soaked oak chips that really added to the mouth-feel.  I'm excited to get it back on tap for Thanksgiving.


2012-09-20 22.07.36.jpg


Probably the biggest single improvement in my brewery over the last versions has been the electronics box.  One of the guys in our events department designed and cut out all of the parts for it, making sure that everything would fit and be laid out well.  He was pretty spot-on if you ask me.



Iso Right.jpg

The front panel has the following UI elements:


Since it was built initially as a marketing demo, there's a nice NI logo milled into the window, and the cutout is set up so you get a good view of the single-board RIO hardware.  The front panel pops open, and you can get a good view of the sbRIO, the wireless router and the back of the LCD.




The RIO mezzanine board is attached behind the sbRIO, and you can see the edge of it in the shot above.  I'll go more into the details of that board in a later post, and I think the the guys who designed it are going to do some sort of a write up or case study about the design as well.  Regardless, you can see a shot below of the board by itself sitting on my desk.


RMC board.jpg

I took the IO list from my previous brewery, and then I combined that list with the IO list from the brewtroller (Atmel-based open-source brewing board) as well as a few other people's home-built brewery controllers.  Here's the list that I came up with:


The next layer of the electronics box gets a little less clean and neat.  On the bottom layer, it's mainly power supplies, solid-state relays and the back sides of the panel mount connectors.  Here's the list of the external connections.

  • Left Side
    • main power in
    • 2 ethernet ports
    • wifi antenna - technically not being used now I guess
    • 120VAC 15A outlet (switched only by the contactor and the e-stop)
  • Bottom
    • 2 240VAC 25A outlets - for HLT and boil kettle heating elements
    • 4 switched 120VAC outlets - pump 1, pump 2, stir, aux
  • Right Side


For completeness, let me link to the other side of the weathertight connectors in the 2-pin and 3-pin flavors.


The next pictures will show the nice, clean 3-D model of the inside and then the actual inside of the box.  There's an extra 24V power supply in the real box, but everything else is the exact same.


Front Open.jpg




Well, it may not be immediately obvious from the previous pictures how this is all wired up, so I figured that I'd be nice and post the layout of the system as I drew it up in Visio.  The image is actually really big, but if you want to see it better, you can click on it to enlarge it, right click on it and save it.  Then you can zoom in a little better and see all of the wiring details.

Home Brew Automation Parts and System Diagram - new brewery.jpg


In addition to the typical disclaimers about not trying this sort of thing if you don't know what you're doing, it's very important to say this diagram doesn't show the 50A spa panel that's also on my brewery frame but between my electronics box and the wall outlet.  The spa panel not only acts as a secondary circuit breaker, but it also contains a GFCI which is very important in the safety of a system like this.  Contrary to popular belief, water and electricity do play together...quite well sometimes, and it can be very dangerous when they do.  Don't forget to make sure that everything is grounded properly and to use something like a GFCI to protect yourself and the people who brew with you.

End of disclaimer


Digital Temp Sensor - DS18B20

Posted by Ben_B Sep 14, 2012

When we were designing the daughter board for the single-board RIO, we started with the basic IO elements that I had in the first rendition of my brewery.  I also did some research on other platforms for homebrewing control, and I came up with an aggregated list of IO.  I'll devote an entire post to that discussion at some point in time, but I wanted to write a little in the mean time about the decision we made on the temperature sensors.


My original brewery design used T-type thermocouples and an NI-9211 thermocouple module.  I happened to have some T-type thermocouple probes lying around that I had scavenged from the recycle bin, but it turned out that they were the best choice for brewing since their temperature range matches up well with the brewing temperatures, and they therefore have the highest resolution in the normal brewery operating range.  To install the thermocouples in the brewery, I used a 1/2" to 3/8" bushing, some JB Weld and some silicone caulk to make a nice permanent mount that would screw into my system.  Here are a couple of shots of the thermocouple probes.  In the second and third ones you can see the JB weld and silicone caulk that held the probe in place.

photo 2.JPG

photo 3.JPG

photo 4.JPG


However, when we started building our IO board from scratch, we quickly realized that the thermocouples represented the largest amount of risk on our IO list.  The temperature measurement requires amplification and DC offset as well as cold junction temperature compensation.  The decision instead was made to go with a DS18B20 sensor from Maxim Integrated (formerly Dallas Semiconductor).  This happens to also be the same sensor that's used by the Brewtroller project (a brewing-specific shield / set of shields for the Arduino).  I was able to order pre-made temperature probes with the DS18B20 potted in a stainless thermowell from, so that made everything come together pretty easily.  They even sell compression fittings that are bored out to work nicely with the thermowells.  So the installed probe looks a lot cleaner.



The exploded view shows how this all comes together.


So the real question is why go with a digital temp sensor.  As I said before the initial reason was that it made our daughter board development easier, but in reality it actually represents a better sensor.  Instead of having a very small analog voltage as our temperature measurement, the DS18B20 provides the temperature information in the form of a 16-bit digital measurement.  It's much less susceptible to noise, and doesn't require any special connectors or stiff wires to be run all over my brewery.  Instead I have a 3-wire cable that goes from my electronics box to each of the temp probes; ground, 5V power and the digital signal pin.  The only thing left was to figure out how to communicate with the sensors, and the sbRIO's FPGA was an obvious choice for implementing the 1-wire protocol.


After a little digging, I found some examples of 1-wire protocol on, but sadly the examples weren't quite complete for what I needed.  However, with the IPNet examples as a starting point, I was able to do some tinkering and put together a pretty nice interface to the sensors.  I've recently posted that on the NI Community as well.


1-Wire Interface for cRIO and sbRIO - DS18B20 or DS18S20


So there you go...DS18B20 and DS18S20 digital temp sensors on sbRIO or cRIO.


Brewery Overview

Posted by Ben_B Sep 6, 2012

Before I start talking about the details of mysystem, let me give an overview of everything that's going on. 


From a high-level, it's a 2-tier, 2-pump brewery with 2 converted kegs kettles (keggles) and a cube cooler.  For more background on brewing systems, there are tons of great resources on the internet, but my favorite is  Their beer brewing wiki has a lot of great information, and I've spent MANY hours cruising around their forums.  I also really like the "Brewing 101" description at the bottom of the Austin Beerworks brewing page here.


In the picture below, the left keggle is called the hot liquor tank (HLT), the cooler is called the mash tun and the keggle on the right is called the boil kettle.  I use food-grade, high-temp pumps that have magnetically coupled impellers to move the liquids from vessel to vessel.  Both of the keggles have 240V 5500W hot water heater elements in them for heating.  I have temperature probes in each of the three vessels as well as in the tubing near the pumps, so that gives me most, if not all, of the relevant temperature information.


So here are some of the key features to my brewing system:

  • 2-tier, 2-pump all-electric brewery (switched over recently from propane)
  • fully self-contained
    • one water hookup
    • one electrical plug - 50A 240VAC circuit
  • sbRIO controlled electronics box
    • touch LCD for GUI
    • potentiometer knobs for setting HLT temp and boil kettle PWM
    • switches for 240V elements (on - off - controlled)
    • LEDs for 120V and 240V circuits
    • splash proof or weather rated connectors on everything
    • built-in wireless router that's bridged to my home network
  • water filter on input (blue tube on the lower left of the stand)
  • electric hot liquor tank (eHLT)
    • closed loop temp control (on / off, no PID)
    • hookups for immersion coil to make an electric HERMS system
    • aquarium air pump to stir HLT to prevent stratification
    • pressure sensor on air line to measure volume in HLT
    • soldered 1/2" thread stainless fittings
  • cube cooler mash tun
    • copper pipe manifold in bottom
    • simple sparge arm
  • electric boil kettle
    • PWM-controlled heating element
    • sight glass
    • analog and digital thermometers
    • built-in immersion chiller
    • re-circulation connections for doing 5 and 10 gallon batches
    • soldered 1/2" thread stainless fittings
  • manual valves on everything, but possible future expansion to soleniod valves
  • quick disconnects on all pump connections
  • e-stop and GFCI / 50A breaker spa box for protection
  • 12.1" touch panel PC for brewing app
    • timer
    • recipe management
    • brewing calculations (specific gravity temp adjustment and alcohol calculation)
    • alarms


My brewery gets me through the boiling and cooling stages of the beer brewing process.  I have a temperature-controlled fridge in my garage for fermentation, a nice under-the-stairs closet for aging, and a kegerator in the garage for serving.  I'm not sure where I'll start in the next posts, but I'll go through some of the important parts of the brewery in detail.  If there's something you'd like to see me expand upon or if there's something you'd like me to write about first, leave a comment.



** Background on the generic steps in the brewing process **


In the event that you're new to brewing, I'll back up for a quick overview of the brewing process.

  1. Mash (in this step enzymes in the malted grain to turn starch into sugar)
    1. heat water in the hot liquor tank to appropriate temperature (165-175F)
    2. mix hot water with crushed grains in mash tun at roughly 1.25qts per pound of grain
    3. rest for 1-2 hours while maintaining temperature
  2. Sparge (this rinses rinses the sugar out of the grains and fills up the boil kettle)
    1. heat water in the hot liquor tank to roughly 170F
    2. pump 170F water into the top of the mash tun and pump the the steeped water out of the bottm
    3. continue the process until desired boil volume is reached
    4. the liquid is now called "wort"
  3. Boil (sterilize the beer and add hops for bitterness, flavor and aroma)
    1. 60-90 min rolling boil
    2. hops boiled for 45-90 min add to the bitterness of the beer
    3. hops boiled for 10-30 min contribute flavor
    4. hops boiled for less than 10 minutes add to the aroma of the beer
  4. Cooling
    1. quickly drop the temperature to stop the hop utilization process
    2. cool the beer to <90F so that it will be ready to accept the yeast
  5. Fermentation
    1. add yeast to the cooled wort
    2. yeast turn sugar into alcohol and produce CO2
    3. this process takes 1-2 weeks and can benefit from a temperature controlled environment
  6. Packaging
    1. wait 2 weeks to 9 months for fermentation and aging stages to finish
    2. either bottle or keg, carbonate and serve

Well, it doesn't really have a name, so I can't formally introduce you; however, I took it through its first brewing session after having been completely rebuilt for NI Week 2012.  My system looked like this about 3 months ago:



Now, mind you...this was a significant improvement over the previous generations of the brewery.  At some point in time, I'll collect all of my pictures from over the past few years and put together a nice visual history. 


You can't really tell how rusty the frame is in this picture, but it was essentially scrap square tubing that was left over after a fence project at my parent's house.  The metal sat in a pile in the driveway, usually covered with leaves and such, for about 4 years before I decided that I'd use it to make a frame.  So when I say that it was rusty, I mean that it was really really rusty...but it was functional.  After some discussion back and forth, it was decided that I would need to start over from scratch with new steel to make the frame presentable for NI Week.


After about 2 months work of work that included a lot of help from the NI Events Dept as well as some ELP Engineers, here's what the brewery currently looks like:




You'll notice a nicely powder-coated frame, new wheels on all 4 corners (two of which are fixed and the other two of which are 2-way locking casters), polished kegs (the same ones as before just shinier), a touch-panel PC, and a fancy new electronics box with a touch LCD and much nicer LEDs, knobs and connectors.  I'm not going to say that the system will make any better beer than it did before, but it's definitely prettier!


One thing that I will point out is that getting to rebuild everything from scratch did give me the opportunity to revisit some of the design decisions that I had made along the way.  I resized the frame to be a little more compact than the first version.  I changed over all of the heating to electric (I guess it was that way in the first picture as well, but I made that change literally the week before I turned it over to get rebuilt).  The user interface is probably the biggest change though.




A major complaint about the old system was that the LCD was hard to read.  The contrast always needed adjusting, and it wasn't back lit.  The new touch LCD from Reach is a HUGE upgrade.  I replaced most of my switches with soft buttons on the UI, and I'm able to show a lot more data than I could on the 24x8 character LCD.  I have four different pages that you can switch between.  They show the system state (temps and switch states...basically all of the brewery's IO), a button screen where you can control relays for pumps, and two graph screens that show 1 hour and 6 hour temperature trends.


The first brewing session went really well.  I didn't have any major mishaps.  There's a bug in my UI code somewhere that occasionally will cause it to hang.  It has happened twice in the past 10 days of tinkering with it, and I'm not sure exactly how to reproduce it.  It'll require a little more debugging, but the easy fix is to just reboot the controller which I had to do about half-way through brewing.


All said and done, it took me about 4.5 hours to brew the 11-ish gallons of beer that are currently in my fermentation fridge bubbling away.  So that makes it official.  The Wobbly Boot Brewery is back in action, and I'm really happy with how it turned out.


In subsequent posts, I'll give an overview of the hardware and software and then go into each of the important systems in detail.  As I'm going through it all, please let me know what you think.




History...part 2...

Posted by Ben_B Aug 24, 2012

In my first post, I started into my history as a homebrewer.  I'm not going to go into all of the silly details, but I'll catch us up to current time so that we're all on the same page for me to start a discussion of my brewery.  After this post, I promise I'll get into the technical details.

At the end of the last post, my buddy and I had just made our first batch of beer, but "we" had also melted a hole in the bottom of my aluminum pot in the process.  I say "we" because it was his responsibility to watch the pot while it heated up.  Turns out that I should have remembered from our welding class that the only indication of melting that you seen in aluminum is when the surface tension changes and it becomes liquid.  Yah, the first thing he noticed was the liquid aluminum disappearing and leaving a big hole in the bottom of the pot.  We both should have known better, but what can you say...


The next upgrade was a cheap stainless pot from Bass Pro (because technically I didn't have a functional pot anymore), but I went a step further and put in a weldless fitting so that we could drain the pot respectably.  We borrowed an immersion chiller from my buddy's roommate, and we brewed partial mash batches for a few months until we decided that we were ready for the next step.


I had a cooler that was about the right size for a mash tun to do 5 gallon batches, so the only thing left for going to all-grain brewing was to make a manifold and a sparge arm.  I made a quick trip to Home Depot for some copper pipe and some elbows, and my buddy and I put together a nice rectangular pick-up that I actually still use today.  I've changed coolers twice, but it still fits quite nicely and gets the job done.


My buddy and I brewed a lot in Atlanta.  I quickly realized that bottling sucked, so I upgraded to a keg system.  Other than that, our process didn't change much over the next couple of years.  We got a little more efficient and a little quicker, so we decided we could do two batches at a time.  We'd do 5 gallons of a light ale as a partial mash recipe at the same time we did 5 gallons of a more interesting beer.  Overall it doubled our output, but it only added about an hour on to our ~6 hour brewing day.


I graduated, moved to Austin, bought a house (one of my wife's conditions was that the house have a closet that we could dedicate to my "brewing s**t") and continued to brew.  The next big change was that I realized that I could step up to 10 gallon batches with almost no difference in my process.  It took about an hour longer, but doubled my beer output.  I picked up a scrapped keg, and away I went for 10 gallon batches.


I was especially proud of the pickup tube.  It drains down to just a few ounces of water left in the bottom.  Sweet, right?


The next formative change was that I got a second keg and started my process of moving to electric heating.  The first attempts were crude.  It involved a 120V hot water heating element with a half of an extension cord attached to it.  I plugged it in to heat up, and I manually unplugged it when I hit my target temperature.


I brewed like this in a fully manual, 3-vessel style for a little while, but there were two distinct problems with all of it.  The first was that it required a lot of attention, specifically that I had to constantly watch temperatures, plug or unplug stuff and fiddle with the propane gas knob.  The bigger problem was that since I didn't have a fancy tiered structure or any pumps, I had to lift 13 gallons of hot-ish liquid onto my burner.  I usually had friends to help me brew, but occasionally I brewed by myself.  This posed a problem.  About the same time, my wife and I found out that we would be expecting an addition to our family, and I realized that if I wanted to keep my hobbies I would need to optimize them. 


Transporting fluids from location A to location B?  That sounds like a job for an industrial controller and some pumps.


Optimizing a repetitive task, specifically in maintaing a setpoint of some sort?  That sounds like a job for a control system.


I had previously designed a PIC-based solution for a meat smoker and a refrigerator controller.  It was a dual-purpose design that either heated or cooled based on different sensors as defined by a jumper.  The "UI" was a potentiometer and a 14x2 character LCD.  It works, and it actually still controls my smoker; however when I started thinking about using 2 or 3 of them in parallel to put together a brewing system and then potentially tying it into an arduino for higher-level control, that all got complicated quickly.  If only there were a cleaner way, maybe something using commercial off the shelf control hardware and a powerful high-level programming language.


I was talking at work one day about how much nicer it would be if I could use a CompactRIO LabVIEW for my brew system, and one of my heroes in life suggested that he knew some people who knew some people who had access to scrapped hardware.  It was stuff that failed manufacturing test or was created as an R&D prototype, but it worked nonetheless and would be perfect for my purposes.  My friend hooked me up, and hence was born the Compact BreweRIO.


In this project and blog I'll talk about the design decisions that have gone into my brewing system.  I'll show pics, videos and code from the current system as well as some pictures of the birth of the system.  Hang around, ask questions, get involved.  I post all of this so that maybe someone can learn from my stupid mistakes, or even better, learn from the occasional good decision.


So, let's start at the beginning...


I like beer, I like to tinker, and I like to cook.  I've dabbled with a closed-loop smoker (see photo below of my ceramic smoker and PIC-based control system), but somewhere along the lines it was inevitable that I would get into homebrewing.


I wouldn't say that I am currently or ever have been a beer snob.  I like beer, and I'm an equal-opportunity consumer depending on the situation.  However, I do appreciate really good beer, especially Belgian and dark beers.  I'm pretty sure that's what got me into brewing.


It was my third year in Mechanical Engineering Grad School at Georgia Tech, and a friend of mine who I had met through a Rice University alumni gathering invited me over to brew with him.  I knew nothing about the process, but he offered me a couple of six-packs of the belgian-style beer we were brewing if I helped out.  I was really into Belgian beers at the time, but I was on a grad-student's budget, so the prospect of good beer for free was very intriguing.  When he sweetened the pot by mentioning that you drink what you brew while you brew, then I was definitely in.  He had brewed a couple of batches, so we were relatively smooth in our process...and by "we were" I actually mean "he was."  The only thing I was in charge of was adding sweet orange peel to the boil while he went to the restroom, and I screwed that up by adding 1oz instead of 1tsp...turns out those units make a difference.


Even though I messed up the one thing I was supposed to do, I was totally obsessed.  The next week I ordered my kit, I got a buddy in my engineering program (Matt) excited about brewing, and we went to town.  We had a lot of time on our hands, an amazing machine shop at our disposal but not a lot of money to play with.  In the true DIY spirit of homebrewing, we set out to brew on a shoestring budget, making or repurposing most of our stuff as we went along.


We started out the process brewing on a Camp Chef propane burner and a "turkey fryer" kit.  It turns out that I know a guy who knows a guy who knows everyone in the outdoor industry, so I got an amazing hook-up from one of the really important people at Camp Chef.  That poor pot didn't last long though.  It also turns out that when the brewing guides say "pre-heat your aluminum pot to make sure that there's a good layer of oxidization," they don't mean "preheat it over a 50k BTU burner."  Our first independent brew day ended up with our using a borrowed bot because we melted a hole in the bottom of our original one.


Regardless, the beer turned out pretty well, and I was hooked on the process.  Well, I should say that we were hooked because over the next couple of years we brewed a lot of beer.