I’ve had some organization issues in the homebrewery, so I decided to use some Christmas money to fix.
The shelves are wire shelves from Target. I only used four of the five shelves. The bottom two shelves are tall enough for a keg or carboy, and the uppers are good for bottles and other glassware. The bottom shelf is off the floor enough that I can sweep under it and get a mop under it if necessary.
I do have future plans to move more stuff around – I want the keezer closer to the stairs (currently it is as far from the stairs as possible), and I want to eventually change the sink to a double-tub sink.
I have issues. Efficiency issues. The first step to fixing a problem is admitting you have a problem. The second step is finding out who/where to blame the problem on!
This is the first in a series, although I do not know how long the series will be (until I fix the problem).
The most likely problem based on the sheer number of times I’ve done Internet research on this problem and had conversations with other homebrewers is the crush. I’ve never wanted to accept this as the problem because my LHBS uses the same mill (that may have changed now that they’ve moved to being an actual brewery and don’t want to spend two hours milling grain). However, I did my due diligence and
accused asked them…
@HamBrew807 we sit right about 74-75%
— Paradise Brewing (@paradisebrews) August 12, 2016
The Twitter conversation goes on longer, but the end result is to check everything. So I did…
I compared the three at two temperatures and two of them (the dial and the Javelin that I normally use) at a third. In ice water, the floating thermometer and the dial agreed at 34ºF while the Javelin read 35ºF when the battery was kept out of the ice water (while it is waterproof, I think it is better to keep the battery out of the water). In tap temperature water, they all read 73ºF. In near-boiling water (with the stove turned off), the dial said 194ºF and the Javelin said 195ºF (I didn’t try the floating thermometer). I feel fairly confident that the Javelin, which I use the most, is close enough.
My tap water (not distilled!) is at 0.999 SG after correcting for temperature, so we’ll go with 1.000. That’s a single-point calibration, which assumes that the hydrometer correctly measures throughout it’s range… which is a lofty assumption.
The second point was 15g sugar + 150g water, which by calculation should be 9.1º Plato, I got 10.2º Plato. HOWEVER, my scale is only accurate to 1g, so the range is 14.5g – 15.4g sugar + 149.5g – 150.4g water. This means that the calculated error could be anywhere from 8.8º Plato to 9.3º Plato. So I’m reading about 1.1º Plato high there.
I did a third point as well. 30g sugar (29.5g – 30.4g) +150g (149.5g – 150.4g) water. Should be 16.7º Plato in the range of 16.3º Plato to 17º Plato. I got 15.8º Plato, 1.1º Plato low. 16.5º Plato is 1.068, 15.8º Plato is 1.065. While this sounds like a lot, it isn’t, and I’ve been having problems on the order of 10 points (e.g. wanting 1.052 for 75% efficiency pre-boil and getting 1.043).
All this stuff seems so screwy (I tried the third point test twice) that I’m not considering this to be a done deal. But I’m buying a few more hydrometers!
I admit that I haven’t been as nice to this meter as I should – I dropped it in wort and rinsed it off, and I’m pretty sure it isn’t waterproof. But this thing is currently unusable. I checked it using distilled water (pH of 7.0), my tap water (pH of 8.1) and tap water with cream of tartar dissolved in it – which creates a buffer at a pH of 3.6.
I believe this meter worked correctly once. However, it no longer does. If I calibrate it at 7.0 (distilled water), the 3.6 pH buffer solution from cream of tartar is about 4.6 – 5.7 (that’s a huge range!) and it sets my tap water around 9.2 (it’s alkaline, but it’s not THAT alkaline!).
I’m going to replace this, but for now I’m going to rely on calculations using John Palmer’s spreadsheet.
I’m going to reread How To Brew (just the section about mash tuns) to make sure I didn’t screw up the mash tun somehow (I probably didn’t, but you never know). I’m going to redo the hydrometer test with at least two more hydrometers that I’m going to get this week (this is one of those things that we should have extras of anyway). I’m going to replace my pH meter (I kinda implied that already). I also may get a water sample to Ward Labs to see what my water is actually like coming out of the pipe.
So last week this happened:
I spent an evening scrubbing – the kegs were reasonably clean inside, but the outside was a bit of a mess. PBW and an Ocello scrubbing pad were the tools of choice there. I then proceeded to learn a few things, some of these will make it to a poster in my basement:
- The black-handled keg has a different diptube
- 3 pins = liquid
- 2 pins = gas
- The Pin Lock Socket is worth the exorbitant price tag
- Keg lube is pretty important. It may not be totally required, but protect your O-rings!
- Corny Keg in Cincinnati gets a five star review. The prices are inexpensive compared to a lot of what I’ve seen out there.
- Before putting a beer in one of these, it’s probably best to test these babies!
I did a fairly simple test – water! After cleaning everything, I put about a gallon of water in each of the kegs, sealed, and pressurized to about 12PSI. I wasn’t really trying to make carbonated water (else I would have let it go for several more days), but just wanted to make sure the kegs held pressure. I did not leave the kegs hooked to gas during this. I checked each of three or four evenings to ensure the kegs had enough pressure to dispense the water. After the three or four evenings, I rewashed everything. They’re ready for the Vienna Lager, which is not ready yet.
A few months ago, I thought I’d fly sparge in my Mash Tun. I had built a sprinkler to help in this. I’ve since decided to batch sparge, since fly sparging is more difficult and is cumbersome to do with my setup. So for a while I left the sprinkler in place and didn’t use it. I noticed after my last brew day that I lost 2°F during the hour-long saccharification rest. I decided to get the sprinkler out of the way and removed it, which left a big hole in the lid. So I decided to add some extra insulation to see if I can ensure that there is less than 1°F of temperature loss.
So after nearly a day, I checked on it. It seems to have stuck – I couldn’t easily pull it off, although I don’t know how well it’ll hold during an hour-long mash… we’ll see next weekend.
If my last post didn’t indicate that I LOATHE bottling, I’m not sure what I could have said to get that point across.
While bottling has the cost part down (a 6-pack of bottles costs around $10 and comes with free craft beer), it has a number of disadvantages:
- Bottles are breakable
- Bottles take up a ton of room
- Capping 30-50 bottles at a time is no fun
- There’s no reliable, easy way to store clean bottles
The last point may be what has aggravated my wife. Despite the basement being “mine”, she is not at all happy with the several 6-packs of bottles in the middle of the floor. They’re in the middle courtesy of a crack in my foundation that leaks after extreme rains. Which has so far been twice, the second time left several 6-packs of empty bottles in a puddle. So they’ve been moved out for now. Into the middle of the floor.
The Plan – “Begin With The End In Mind”
My ultimate goal is a three tap keezer. One tap will (occasionally?) be a stout faucet. 95% of my beer is consumed by me, so I can have an IPA, a stout, and something else on tap. And nothing says that I can’t bottle the remains of a keg if it gets low, although the bottle guns I see look like a pain to use.
After looking at this guy’s nice keezer build on Reddit, my wife feels that it must be black and I must build a similarly nice looking collar. However, she feels mine should have a red pinstripe on it because it would make it look good with University of Cincinnati Bearcat decor. It’s really cool of her to say that since her degree is from Southwest Florida College, mine are from UC and University of South Florida.
After looking at my budget, my first few kegs will be with picnic faucets. I have more budget numbers, but they’re boring. I have more plans, but that’s boring too. The overall plan is something like:
- Paint Keezer Black, fix temperature sensor issue, and run it (for now) with the Raspberry Pi
- Begin using (seriously, I LOATHE BOTTLING ENTIRELY!)
- Build collar (may be done before #2, depending on many things)
- Add nice faucets
There’s a few other things I want to do. I’d love to have some way to know how much beer is left in a keg. One way I can do this is using a flow meter (such as in this article on Adafruit’s website). I don’t like the idea of a flow meter. Adafruit’s has a 1/2″ inlet and outlet, and the beer lines are smaller, so the geeky engineer in me questions the accuracy, and the homebrewer in me questions what happens to the beer in this thing. Then I thought about using weight sensors that I saw on Sparkfun’s website. As I was typing this, I found a post on HBT that even points to Sparkfun’s tutorial on their kegerator. While my implementation might deviate from this, it will be with inspiration from Sparkfun… although the first thing I thought of was this.
The Mystery Cylinder
I have a 5 lb beverage cylinder that I evidently purchased for another use in May of 2000. Yes, fifteen years ago. The gas shouldn’t go bad, but there was no label on the cylinder ever. I thought I’d call the place that I purchased the cylinder from (because it was either “air” or “CO2”, IIRC), but it appeared they went out of business many years ago (they may not have, but earlier I thought they did). I looked into things and found that as long as your tank was filled by a legitimate business (and this was), the ONLY valve on top of the tank should be a CGA 320… Okay, it could be Methyl Flouride, but I’d be shocked if I got that from a Fire Suppression Store and that it’d have a green collar on it, normally flammable stuff is red (but I could be wrong, I didn’t look into this).
I know of no other tests, but since I’m 99% sure this is CO2, I’m going to go with it.
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.
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.
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:
- Index.php – collects data
- getRows.php – lists data from the database
- getLast.php – gets the last temperature entered in the database
There are also two prerequisites:
- A pre-shared .pem key on the server. This should match the one on the Raspberry Pi.
- 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.
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.
- 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.
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.
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.
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.
I had some free time over the weekend and was able to work on the brew kettle. As of Saturday afternoon, I was boiling water and if it wasn’t for having a few things to do I would have probably ran over to my LHBS and got a few pounds of malt and hops.
The things I did dangerously was that I used all green wire (the standard AC convention is red or black for hot, white for neutral, and green for ground). Also, I have no enclosure around all that power. I also do not have a way to disconnect this from power (other than a breaker, which is currently switched off since I’m not brewing anything).
While I was at it, I replaced my valve with a non-leaking valve (my previous valve was actually for a compression fitting, so it leaked). There is a remaining issue – I have to replace the fitting on the thermocouple because right now I have a compression nut (which leaves a place for bacteria to sit and harvest).
My cousin was selling a small freezer that would be perfect for us and would replace my current chest freezer with a small upright (and replace a non-energy-star freezer with one that is). Initially I was thinking KEGERATOR!, but after a night’s sleep I thought it might be better to do some fermentation temperature control. That means eventually I will make a schwarzbier, possibly a kolsch, and probably a bock beer early next year.