Beer

Old Range Hood Turned Into a Brewery Exhaust Hood

Since I brew in my basement, it’s pretty important to exhaust the vapor from the wort outside the house.  When it’s any temperature that isn’t between 50 and 65 degrees, opening a window isn’t the greatest way.

A friend was remodeling his kitchen and gave me a sink base cabinet (which will make it’s way down into the brewery) and his old range hood.  the range hood was one that recirculates the air (as opposed to exhausting it), so it’s actually kinda useless.  But with some modifications, it can exhaust the air.

One note about this is that safety is paramount.  Sharp metal edges can cut like a broken glass carboy.

Start

Start.  Note the idiotic ribs that block air on the left and right side.

Electronics removed

Electronics removed

Part of one of the ribs removed.

Part of one of the ribs removed.

All ribs removed and

All ribs removed and ready for the fan to be re-mounted.

Hole for fan cut, fan installed.  Ignore the wiring on this, it isn't checked.

Hole for fan cut, fan installed. Ignore the wiring on this, it isn’t checked.

After this, I went to pull my truck back into the garage and noticed a bunch of coolant under my truck and trailing into the garage.  The water pump blew.

The view from down here sucked.

The view from down here sucked.

Water pump mischief managed!

Water pump mischief managed!

Cheers!

Brettanomyces Saison using 50 West Dregs

A few months ago, I bought a pair of bottles of 50 West’s first (I think) bottle release, Brett is my Copilot.  I was fermenting a saison at the time, and pulled a gallon aside and pitched the bottle dregs in it.  Looks like this happened on April 8, because Twitter says I posted the pic below on April 9th at 7:47 AM… which was probably after I arrived at work the following morning.

The initial recipe is below:

Recipe Details

Batch Size Boil Time IBU SRM Est. OG Est. FG ABV
4.5 gal 90 min 31.2 IBUs 8.0 SRM 1.058 1.004 7.1 %
Actuals 1.051 1.01 5.4 %

Style Details

Name Cat. OG Range FG Range IBU SRM Carb ABV
Saison 16 C 1.048 - 1.065 1.002 - 1.012 20 - 35 5 - 14 2.3 - 2.9 5 - 7 %

Fermentables

Name Amount %
Pale Ale Malt 2-Row (Briess) 8.5 lbs 79.07
Wheat Malt, Pale (Weyermann) 12 oz 6.98
Caramunich Malt 8 oz 4.65
Sugar, Table (Sucrose) 1 lbs 9.3

Hops

Name Amount Time Use Form Alpha %
Tettnang 0.75 oz 60 min Boil Pellet 4.5
Tettnang 1 oz 15 min Boil Pellet 4.5
Amarillo 0.5 oz 15 min Boil Pellet 9.2

Miscs

Name Amount Time Use Type
Irish Moss 0.25 tsp 15 min Boil Fining

Yeast

Name Lab Attenuation Temperature
French Saison (3711) Wyeast Labs 80% 65°F - 77°F

Mash

Step Temperature Time
Mash In 148°F 75 min

I essentially let it ferment out (it was about a 4 gallon batch after a little disaster).  I then racked a gallon to another carboy and swirled the dregs from the bottle and pitched it into the carboy.

It’s been a while (six weeks?) and I tried some.

Dat clarity!

Dat clarity!

It has some tartness and a lot more mouthfeel.  It’s getting bottled today and the yeast/brett mix will be saved for another.

Cheers!

Raspberry Pi Fermentation Temp Controller III: Server APIs

This is the optional part of the Raspberry Pi Fermentation Controller, but it’s the part that I used to roll into the Brewery IoT page.

There are three PHP scripts that run on the server:

  1. Index.php – collects data
  2. getRows.php – lists data from the database
  3. getLast.php – gets the last temperature entered in the database

There are also two prerequisites:

  1. A pre-shared .pem key on the server.  This should match the one on the Raspberry Pi.
  2. A MySQL table (I’ve called it FermChamber, but if you know SQL, you can change it) with two columns: TimeStamp (datetime) and Temp (float).

With that out of the way…

Index.php – Data Collection

The data collection script is below.  It expects post form data with a JSON formatted file.  If you’ve followed the first post in this series, you’re good.

Note that you will need to change the code to use your correct server, username, password, and database.

getRows.php – List of Data (for the bar graph)

This script gets the temperatures in the database for the line chart.

getLast.php – Get Last Temperature Reading

This is just a simple script to get the last temperature in the database. This is for display on the dial gauge.

One of the next parts in this will be the code to display on the page.

Cheers!

Raspberry Pi Fermentation Controller II: Power

I started on building a Raspberry Pi based fermentation controller.  This is a device that turns my chest freezer on and off based on the temperature of the freezer and what the Raspberry Pi thinks (which is essentially what I programmed it to do).

This is one of those posts that gets a disclaimer: BE CAREFUL IF YOU DO SOMETHING LIKE THIS.  You can get killed by touching the wrong thing here, and it will hurt then entire time you’re dying.  People will not be able to see your bones as you flash from electrocution. Marv wouldn’t have lived. I’m not an expert or licensed or even qualified to do this (and since I’m doing this, does that make me a Redneck)? Your mileage may vary, of course.

There are really only two major parts to this, a solid-state relay (SSR) and an outlet.  I removed the little tab connecting the two hot-sides of the outlet together to allow for one to be on always and the other to be on just when the SSR says it should be.  This is all wired to a plug (I used an old computer cord that was conveniently colored on the inside.  A diagram of the connections is below.

Wiring diagram. Not to scale.

Wiring diagram. Not to scale. Don’t trust the numbers on the SSR – they’re from memory.

Some notes:

  • This should not be hard-wired into the electrical system.  It is probably code to have things like this be easily able to be disconnected, and the plug allows for that.  Also, intelligence dictates that things like this should be able to be unplugged should some failure happen down the line (and since electricity is involved, those failures can be spectacular and bright… and deadly).
  • One could make the case for needing a fuse in this.  I don’t think it needs one.  However, this is protected by both a circuit breaker (as is everything in the house) and a GFCI (because the plug it will use is near a sink).  I’m truthfully not concerned, but I don’t know if I’m right to be unconcerned.
  • Solid state relays should ALWAYS have heat sinks, and thermal grease between the sink and the SSR.
  • SSRs are rated.  It needs to be able to handle at least enough current as the freezer, although I recommend double. My freezer claims 2.5 amps, my SSR is 40 amps. Should be safe.
  • Test everything using a safe tester and test method.  For outlets, the $5 3-prong tester like I use is adequate and safe – much much safer than a multimeter.  Truthfully, every homeowner should have one of these (and when my house was built, I used this little tester on every single outlet).
  • Everything should be in a box, in case something happens.  Said box should be waterproof as much as reasonably possible.

Pictures are below.

The only problem I ran into was that the $3 Chinese solid-state relay is bad.  The switched outlet is on regardless of the input (although I’m still testing things, so not 100% sure if I’m right, but I’m ordering like 3 more… after all, they’re like $3 and out of the last two I purchased, one is probably bad).  I’ve tested (with the unit unplugged) across the SSR terminals and did not find a short, and across the two hot sides of the receptacle and did not find a short.  But in the case of the SSR, it may not display a short to my tester because it is a much lower voltage than the outlet.

EDIT

The relay was probably fine.  It appears that there is a minimum current required to turn on/off the SSR, and the 1/4 watt tester was not enough of a load.  I replaced the relay (with one of the FIVE I bought), and plugged the freezer into it, despite the new one showing the same signs as the old one.  The freezer did not turn on when I powered-on the Raspberry Pi (I had turned it off to plug it into the box’s unswitched outlet).  I made a quick administrative code edit, and it worked.

Cheers!

Removing that $%@! Chlorine

I live in an area with great water for pale beers, and great water in general… except for the chlorine.

My previous way to prepare beer was to use a 1/2″ hose from my refrigerator dispenser to a fermenting bucket.  Then, I had to carry the buckets to the basement brewery to use.  Last time, I did this the night before, which was good from the standpoint that the filter in the fridge is crap and had my wife’s ultra-sensitive palate complaining of the chlorine flavor.  Sitting overnight allows the chlorine to leave the water.

Not one to want to carry heavy buckets of water around (especially since I’ve recently been diagnosed with a major back injury) and wanting to brew again, I decided to fix that problem once and for all.  Enter the whole-house water filter.

Before

Before

90%

90%

Done!

Done!

After running water through the plumbing for several minutes and bleeding the air out of a few other faucets, I handed my wife a glass of tap water and asked her to drink.  She looks at me, smiles, and says “nothing”.

Cheers!

Raspberry Pi Fermentation Temp Controller I: cron jobs 1 and 2

This is the first of a handful of posts about getting my fermentation temperature controller up and running.  As I indicated before, there are three python scripts on the Raspberry Pi that make this all work.

For those that don’t know, the Raspberry Pi is a small computer that is about the footprint of a credit card.  It isn’t very powerful, but you don’t need power to do this temperature control.  One thing you DO need for this is called GPIO, or General Purpose Input/Output.  These can be used as switches in code.  There are many ways to use these, but the easiest (in my opinion) is using Python.

2015-05-30 10.19.23

Raspberry Pi connected to a breadboard.

My current setup is with the Raspberry Pi connected to a breadboard, which is a device that allows solder-free connections (solder is somewhat permanent and soldering parts to a PCB is a lot of work).  In the image above, the ribbon cable connects to all the GPIO pins on the Raspberry Pi, and specific pins are being used to connect to a temperature sensor and to a light emitting diode (LED).

The two parts of code are to check the temperature and determine if the temperature has gone too low (the Emergency Stop Script), and the other is to send the temperature to a server (the API Send Script).

Emergency Stop Script

This is the check script.  It checks the temperature and shuts off the GPIO output if the temperature is at or below 32.  Two things to note on this, one is that if this temperature sensor is just in the chamber, the beer will probably be a degree or two warmer (unless it stays at 32 for a while).  The other thing to note is that if you are making eisbock, you should probably change or disable this script.

The script above should be set in the cron manager (crontab -e) to run every minute:

*/1 * * * * sudo python /home/pi/source/pyTemp/pyECheck.py > /home/pi/source/pyTemp/pyECheck.log

The code above has it run every minute (the */1).  The path to the script on my Raspberry Pi is /home/pi/source/pyTemp/pyECheck.py, and the output log file is /home/pi/source/pyTemp/pyECheck.log.  Note the use of sudo on this script – or “superuser do”.  This runs the script as a fully privileged user, which is required to use the GPIO pins.

API Send Script

This is the script to send the data to a server.  There are a few things that need to be changed.  One is that you need to generate an encryption key that will be used on the Raspberry Pi and the web server to encrypt and decrypt the data.  This is almost overkill, but it ensures that it cannot be screwed with. The other thing that needs to be changed is the server address.  These are both at the top of the file.

This script should not be run every minute (that’s what we’d call overkill).  I use every 10 minutes, although it could be less often.

*/10 * * * * sudo python /home/pi/source/pyTemp/pyTemp.py > /home/pi/source/pyTemp/pyTemp.log

The next part of this will be either the actual Raspberry Pi connections or the PHP server backend.  But either way, likely both are coming within the next few weeks although regular programming may be interrupted by a brew day report.

Cheers!

Hops and Fermentation Controllers

I spent most of the week in Atlantic City. The running injury ruined the potential run on the boardwalk (when you’re a runner, you do these things and look forward to them).  The beer is nothing particularly special (although I may have under-rated Tun Tavern’s Irish Red), but I paid for very little of what I drank.  And the conference I was part of organizing went very well.

Dry Hopped Bud Light Update

2015-05-24 15.28.38

Shitty beer on the left, shitty beer with hops on the right.

2015-05-23 17.02.35

I’ve made it through seven of these.  Cascade, Zythos, Green Bullet, Amarillo, Columbus, Mosaic, and Galaxy.  I’m sticking to 3-4 per day, and I’m using the unhopped Bud Light to reset my palate.  I’ve noticed that Amarillo, Columbus, Mosaic, and Galaxy were all much more flavorful.  It may be just mis-measurement in hopping, though.

I’ve been thinking of doing something like this for malt.  The flavor of hops is pretty important in some styles (like IPAs), but will traditionally take a back seat to malt in other styles (like damn near every other style, to widely varying degrees).

Homegrown Hops Update

I got a text from my wife on the day I was to leave Atlantic City noting that one of our kids noticed that the hops seemed taller.  They indeed grew over the week.

2015-05-21 19.32.10

Columbus

2015-05-21 19.32.19

Cascade

2015-05-21 19.32.32

Tettanang

2015-05-21 19.32.53

Centennial

Fermentation Controller Update

I worked a lot on the fermentation controller.  The Brewery IoT page now shows real temperatures (it’s my basement’s temperature, but it’s real).  I’ll post more about this sometime, but the short version is that it is 100% Raspberry Pi based.  There are three scripts that run in cron (scheduled tasks in Linux) – a script that sends the data to my offsite webserver (the one that is serving this page), a script that checks the temperature and turns the solid-state relay on and off, and a third ’emergency stop’ script that ensures that the freezer doesn’t fall to 32 or below (which would be disabled if I ever decided to brew an eisbock).


I’m itching to brew another beer.  I’m considering another IPA (shocker there!), and then almost immediately brewing a Marzen style to prepare for September.  Late in the year, I have been thinking about a maple bock to brew.  I still haven’t made any improvements to the setup except some hose clamps.

Cheers!

Dry Hopped Bud Light!

I know some local bloggers did a “hop class” where it looked like they dry hopped Bud Light.  Since I couldn’t go, I filed the idea in my mind somewhere.  At one point while drinking at the LHBS, I brought up the idea, where we immediately started making fun of Bud Light.  I later Googled it and found a very descriptive post from Bertus Brewery and decided to do the experiment myself.

The short of it is to add 2-4 pellets of hops to Bud Light, let it sit for 3 days, cold crash the hops, and then enjoy.

I had in my inventory on the day before I started typing this some Amarillo, Cascade, Northern Brewer, and Tettanang (good thing Paradise didn’t have those!).  I dropped by Paradise and bought an armload more…

In the list (in case the glare is in the way) with the notes from the pack:

  • 7C’s – floral and citrus aroma
  • Mosaic – an artistic assortment of enticing aromas
  • Simcoe – unique and piney
  • Equinox – Aroma – citrus, tropical fruit, floral and herbal characteristics………
  • Horizon – floral and spicy
  • UK Fuggle – Aroma – pleasant and hoppy (ahem…  Let’s not use “hoppy” to describe hops! All hops are “hoppy”!!!)
  • Columbus – Pungent
  • Galena – Aroma – citrus
  • Zythos – no notes (it’s a mystery!)
  • NZ Green Bullet – Subtle spicyness
  • El Dorado – nothing on the pack, but from Midwest Supplies – bright tropical fruit flavors and aromas of pear, watermelon, and stone fruit
  • Soriache Ace – Unique tones of lemon and dill
  • Australian Galaxy – Citrus and passionfruit

And the ones I already have:

  • Amarillo – Floral, tropical, and citrus (lemon, orange and grapefruit) characteristics
  • Cascade – Medium intense floral, citrus and grapefruit tones
  • Northern Brewer – Medium intensity, pine and mint characteristics
  • Tettanang – Noble aroma that is pleasant and spicy

I’m looking forward to this!

2015-05-13 18.54.39

That’s a lot of bottled water!

2015-05-13 19.11.41

Staging a fake proposal in front of everyone? So #UpForWhatever is #UpForBeingADoucheBag???

2015-05-13 19.34.55

Seven bottles of water, 17 bottles of hop water.

Cheers!

BBBC Farm Report #2

Cheers!

BBBC Farm Report

The Hops…

So I figure I’m going to make a lager at the end of summer when those Tettanang hops are ready.

The Brewery

I was reading up in Mastering Homebrew and noticed that the Wortsplosion was probably caused, in part by using vinyl tube instead of silicone tube… I think.  I need to check, and probably still need to see about either getting some hose clamps or just replacing the fittings with something more heat resistant.

I’ve been at work on a fermentation chamber controller.

Test setup with an RFduino and a TC74 temperature sensor.

Test setup with an RFduino and a TC74 temperature sensor.

After a little false start with a sensor that absolutely will not work with 3.3v, I found a sensor that does work and I think I have a solution in mind.  The RFduino might be a better way than an ESP-8266, but we’ll see.  I still have the option to use this sensor and the Raspberry Pi.  Also on that thought, I updated the Brewery IoT page.  Even more so, the behind-the-scenes stuff works, too – with encryption, even.

Brewing

Tomorrow (by the time this posts) is Brew Day.  It’s also the day between the Little King’s Mile and the Flying Pig Half Marathon.  I am going to be resting, since I already figure that a lingering injury may make my half a very painful experience and if there’s a snowball’s chance in Hell that I might be miraculously healed I want to be at my best.  I might see about brewing the following weekend.  I hope everyone taking part in Brew Day has a wonderful time.

In related thoughts, I just (before typing this) drank an amber ale that I think had too much caramel malt in it.  I also saw something recently (I don’t recall where) that indicated an over-reliance on caramel malts in general, so I think my next brew – probably another IPA – will have no caramel malt.

Another thing I want to do is to dry hop Bud Light to try some hops by themselves.   I know for sure I’d want Amarillo, Chinook, Columbus, Centennial, Cascade, Mosaic, Equinox, Fuggle, Liberty, Northern Brewer, Simcoe, Williamette, and Green Bullet (list subject to change).  Bud Light has so little flavor that the hops shine through really well ;-).

Cheers!