Boiled down, the AutoBrewer is a series of relays, switched by an Arduino to control a hoist and some solenoids. The Arduino gets its timing signal from two ITC 308 wifi inkbird temperature controllers. The inkbird smart controls within their app already have everything we need to automate the brew day.
See the operating principles page for an in depth description of how the sensors are set up to control the Arduino.
The AutoBrewer has three parts.
1. The hoist or gantry crane has been a part of my brewery long before the AutoBrewer was a thought. I have always used it for pump free gravity transfers, and for picking up and moving heavy objects like full kettle and fermenters. The hoist is wired to 2 relays so the Arduino can tell it to lift the bag to end the mash.
2. The main base, where the scoops, relays and Arduino are mounted to make additions during the boil. This is the focus of this guide.
3. The glycol chiller. I chill the boil with my DIY window AC glycol chiller, as well as using it for the usual fermentation process. The glycol never gets above around 80 degrees F and takes about 5 minutes to get the wort down below 180. It takes about 60 to 90 minutes to chill to 70.
Since building the first AutoBrewer I have simplified the build process to make it much easier to find materials and build.
Fig 1.1
For the base I used a piece of 4'x4' by 3/4"thick plywood, but any sturdy and flat material that is big enough should work, as long as you can screw things to it. My base ended up being about 30" x 30" after cutting off the excess at the end
Cut out at least a half circle that is the outside diameter of your kettle on one edge. If your mashing out with the hoist, ensure the wood won't be in the way of your lid or the bag when lifted out.
Hopefully you have something already the right height to place the base on, otherwise you will have to put legs on it or otherwise support it over your kettle. I use an old table saw table that's just right for my keggle
The hop scoops are the assembly that holds and drops your hops and other additions. With 8 relays to work with you have some options depending on your end goals. If you are planning to incorporate the hoist to automate your mashout, 3 of your relays are needed for the hoist and the fermcap injector. The 5 remaining relays can be used for your scoops.
If you don't plan to incorporate the hoist, and plan to manually mash out, and manually add fermcap, you can use all 8 relays for hop scoops. There will be options in the programming section and some direction for adding to the program. Full disclosure, I AM NOT an expert with the Arduino.
First, you will need to find scoops (or anything you think will work as the scoop).that will hold enough hops for the largest addition you will need to do. cut the handles off the scoops and sand away the excess material. Measure the length of your scoop and cut a 1"x2" to that length for each and a 2x4 block 4" long for each scoop.
Note the arm the scoop is on needs to be long enough to do 2 jobs. 1. When the scoop falls it needs to be at enough angle for the hops to slid into the kettle. 2. The arm needs to be long enough so that when it's upright and waiting, it's not overhanging the kettle.
attach as shown in (Fig 2.1). depending on the solenoid locks and how your going to mount them you may want to attach the scoop arm a little off center. Mine ended up being about 1/2" off center.
Repeat for all scoops.
If your hinge is getting stuck it may just be rubbing on the wood, notch the wood out so it doesn't touch the moving part of the hinge. (Fig 2.3)
Fig 2.1
Fig 2.2
Fig 2.3
Solenoid position
Mounting the solenoid
I used a 5" piece of your square edge 1x2 to hold the solenoid. Very little holding power is needed to hold the arms in place. (Fig 2.4)
Fig 2.4
Cut a 1x2 board about 5" long for each scoop. My solenoids have a 6-32 threaded hole in the center so I used a 2 1/4" long screw for mounting. Drill a hole 1/2" from one end of the 1x2 for the 6-32 screw. Drill 2 pilot holes on the other end within 1 1/2" inches of the end to screw to the 2x4 base. Attach the solenoid as seen (Fig. 2.5) it is supposed to be able to spin on the screw so that it can release the scoop without getting stuck.
Line everything up and screw everything together for each hop scoop as shown in (Fig 2.4, 2.5 and 2.6)
Test, press the manual release to ensure the scoop falls as intended, and lift to make sure it locks in place.
Fig 2.5
Fig 2.6
The final part of the physical build before we start wiring is the fermcap injector. This is an important piece to prevent boil overs when your not going to be present for the brew day. If your planning to manually complete your mash, you can skip this section and add fermcap yourself.
Fig 3.1
The injector is basically a 1/4" bolt that is spring loaded.
You will need a 3 to 5ml syringe, some scrap plywood, scrap 1"x2", 4" long 1/4" bolt, a springs, and a door lock solenoid.
Any syringe that holds 1ml and your spring can fully compress will work. For example, the small yellow syringes that come with childrens medicine. See (Fig 3.2)
Fig 3.2
Fig 3.3
Fig 3.4
Fig 3.5
Injector cut list
1. 3/4 - plywood 3" wide 12" long
2. 3/4 - plywood 3" wide, see below for length
3. 1x2 - 3" long, 1/4 hole drilled on flat side, 1" high to center
4. 3/4 - plywood three pieces 1" wide 2" long
5. 2"x4" - cut at an angle so that the fermcap will go into the wort when the syringe is pressed (instead of hitting the far side of the kettle) (Fig 3.1)
Putting the pieces together
The length of #2=uncompressed spring + bolt head +total syringe length with the plunger all the way in. See (Fig 3.5).
Screw the 3" wide pieces together so they are even on one end.
Drill 2 pilot holes in the 1x2 and screw down with 2"screws as shown in (Fig 3.2, 3.3, 3.4) the 1/4 hole should be above the 3/4 plywood you just attached.
Insert the 1/4" bolt and spring into the hole, put the syringe in place and attach the two 1" x 2" x 3/4 plywood pieces as shown to hold it.
Test: pull the syringe plunger to 1ml. Ensure the syringe fits in place when pulled to 1ml and when the spring is released make sure it fully presses the plunger. (1ml is for 10 gallons, .5ml for 5 gallons)
Find the center of the 3rd 1" wide 2" long plywood piece. Using a 1/2" drill bit make a counter sink hole so a 1/4" nut will be flush with the face. Then drill 1/4" hole in the center. Attach this to the end of the 1/4" bolt. (Fig 3.6)
Using a miter saw I cut the base at a 45° angle as seen in (Fig 3.5)
Attach your solenoid locking ring. (Fig 3.1)
Using a piece of wood or other material, compress the spring and hold on place, this will make positioning the solenoid much easier. Screw the solenoid locking ring to the wood as shown in (Fig 3.1) and secure your solenoid. I used 1/4 rod couplings as stand offs and 1 1/2" screws, they were the perfect height. Those 2 1/4" 6-32 should also work for this.
Test: pull back the locking ring and ensure it locks into the solenoid securely. When locked is the spring fully compressed? Draw 1ml of fermcap into your syringe (fermcap is thicker than water and therefore harder to push out, the injector should be tested with fermcap) put it in place and test. It's a good idea to actually put 5v on the solenoid to test it, to ensure it's strong enough to release the spring.
To attach to the base I used a 2x4 cut to a 45° angle with a miter saw.
Fig 3.6
Arrange and screw down the injector and your hop scoops around your kettle, ensure all the scoops fit and don't hit each other when falling. See (Fig 1.1)
We are using an Arduino and a 5v 8 relay module. We use 2 inkbird Wi-Fi controllers, these are a perfect fit with their integrated online programming platform.
Other things you will need
Black and red 22 gauge wire
A 20k resistor
2 phone charger blocks
2 22 gauge male end pigtail USB cables
9v power supply with 5.5mm x 2.5mm Jack
Small wire nuts and/or terminal blocks
A strip of at least 10 male to female control wires
Stand offs
Fig 4.1
Using the 8 relay module with the Arduino makes wiring the whole system pretty strait forward and easy. I used some aluminum sheeting and plastic stand offs to mount the Arduino board and relays.
See (Fig 4.2) for all wiring
First use red 22g wire to connect all of the normally open relay terminals together, this will be a constant 5v feed to the relays that will be used for the solenoids. See (Fig 4.1) For me this was 5 relays, 3 through 7. This included 4 trays and the fermcap injector. If you are also controlling a hoist, that wiring will be on 1 and 2, and will be explained in the hoist build page.
Next use the 22g red wire, attach 1 wire from each solenoid to the normally open terminal on the relays. We did them in order to keep it neat with the fermcap being the 3rd relay.
Next, using the black 22g wire attach all of the second solenoid wires to the common on your 5v power supply. Literally wire all the wires together under the same wire nut or connector (Fig 4.3)
To attach the Arduino to the relays you will use that strip of control wires, to keep it neat you do not need to separate them, line them all up and press the whole strip down onto the pins on the relay board. On one end of the strip is the "VCC" pin, take this wire to the "5v" pin on the Arduino. The other end says "GND," take this wire to any GND pin on the Arduino, there are 3. Next simply press the whole rest of the strip, which will be 8 wires, down onto the digital pins from 3 to 10.
Next we will be using one of your USB pigtails, Cut some 22g wire, black and red, about 3 inches long each. Using some small wire nuts attach the positive wire to the red wire and the 20k resistor, do the same for the black wire, the resistor should be connecting the positive and negative. Strip the other end of your black and red 22g wire and attach to the Arduino, red to pin 2, black to one of the 3 GND pins. (Fig 4.4) This is the signal wire from one of the temperature controllers, it will be plugged into a 5v charging block, and plugged into the heating part of the controller.
I attached a permanent power strip so that it would keep everything a little neater, and all the parts can just stay plugged in.
Fig 4.2
Fig 4.3
Your all wired up, time to get to programming!
Arduino programming is very strait forward. Be sure to copy and paste the correct program for your set up.
These programs are written assuming your Arduino and relays are wired exactly as described and pictured above. For example, if your not using the hoist or Fermcap injector it will be assumed relays 1 to 3 are just not used and the program will reflect that.
The programs will be broken into:
Full auto Brewer: assumes you are using the hoist, fermcap injector and 4 addition trays.
Boil control only: assumes you will be mashing out and adding Fermcap (or not if you're brave) manually, and only using the 4 trays.
Directions for adding additional trays will be included at the end.
download the correct Arduino IDE for your computer from https://www.arduino.cc/en/software/
And follow the instructions to select the correct Arduino your using.
First you will see "void setup" at the top. Under void setup Copy and paste-
Void setup, this will be the same weather or not you are using the hoist and or fermcap injector
Full auto Brewer void loop
Boil control only. This void loop will assume your only using the boil additions function of the auto Brewer. You will mash out manually and add fermcap manually. Also this assumes 4 trays.
The next block of code is for additional scoop arms. You will need to edit this code fir each one you add beyond the 4 listed above. The code as written assumes you added a 5th arm on pin 10.
**Important reminder**
The Arduino program happens IN ORDER that it was written and wired, Each time 5v is put on the input pin the Arduino will do whatever the next step in line in the program is.
Be sure you know the order that your trays will drop, they will drop in that order every time. The timing and delays will be covered in the inkbird section below.
The inkbird Wi-Fi devices have 2 kinds of smart programming, they call them "tap-to-run" and "automation" in this section I'll lay out exactly what each sensor does, what's plugged into it and how it interacts with the auto Brewer.
For the auto Brewer we will use both kinds of smart automations, we will create 2 "tap-to-run" and quite a few simple "automations"
For this example we are going to call our sensors
Sensor 1
Sensor 2
Sensor 3 (this is the glycol sensor if you are using it)
Sensor 1 - the relay that controls the heating element is plugged into the heating plug, the glycol pump is plugged into the cooling side.
Sensor 2 - the phone charger is plugged into the heating side, the cooling side is left empty
The first tap-to-run is very simple:
Name: signal Arduino
Control sensor 2 - set temperature to 212
Delay 3 seconds
Control sensor 2 - set temperature to -40
This will be used by the other automations to signal the Arduino.
The second tap-to-run is what kicks off the brew day, you tap this after you have mashed in but BEFORE you plug your heating element into sensor 1.
**EXTREMELY IMPORTANT** after heating your strike water, make sure your heading element is turned off or un plugged before you mash in, otherwise it could turn on and burn your bag. You will plug it back in later.
**IMPORTANT** after you press "start brewing", the first thing that happens is sensor 1 has its heating and cooling difference set to + or - 30 degrees, this ensures the heating element won't come on during the mash, unless you lose a ton of heat. At this point you need to look at sensor 1 CURRENT temperature and manually set the setting temperature to the same value. If done correctly both relays will be off (the red and green lights on the front of the sensor indicating heating or cooling will be off), sensor 1 will not be trying to heat or cool unless there is a 30° swing.
If your NOT using the hoist part of the Auto Brewer you can skip the "start brewing" tap to run. This is basically your mash timer, it tells the Arduino to wait a specified amount of time and then pull out the mash bag and start heating up for the boil. If your doing the whole mash manually, including pulling the bag out, you can simply set sensor 1 to 212°F when your finished mashing out and your auto Brewer will take it from there.
Name: start brewing
Sensor 1 heating difference 30
Sensor 1 cooling difference 30
Send a message
Delay 1 hour (main mash timer, up to 5 hours)
Sensor 3 setting temperature 28°F
Delay 1 second (secondary mash timer, if longer than 5 hours)
Sensor 2 setting temperature 212°F (this signals the Arduino to activate the hoist the lift the mash bag)
Delay 2 seconds
Sensor 2 setting temperature -40
Delay 2 minutes
Sensor 1 setting temperature 212
Automations
In the inkbird smart settings automations are not something that just happens 1 time, they are turned on until they are turned off and they function each time their "if" statement is true. That can actually cause issues here because we only want the 60 minute addition 1 time! So at the end of every automation is a command to turn itself OFF so it doesn't repeat. In order to have an automation turn itself off you must create the automation without the command, name it, then go back into the program and add a line at the bottom telling it to turn off. The following is a list of automations for a 60 minute boil in the order they will activate and what the program looks like for each.
Push fermcap
If:
sensor 1 current temp > 194
Then:
Tap-to-run - signal Arduino
Send a message
Control automation push fermcap disable
60 minute
If
Sensor 1 current temp > 205 (205 is where my system starts to boil, my sensor never gets above 209)
Then
Tap-to-run signal Arduino
Send message
Control automation 60 minute disable
45 minute
If
Sensor 1 current temp > 205
Then
Delay 15 minutes
Tap-to-run signal Arduino
Send message
Control automation 45 minute disable
30 minute
If
Sensor 1 current temp>205
Then
Delay 30 minutes
Tap-to-run signal Arduino
Send message
Control automation 30 minute disable
5 minute
If
Sensor 1 current temp > 205
Then
Delay 55 minutes
Tap-to-run signal Arduino
Send message
Control automation 5 minute disable
60 minute boil
If
Sensor 1 current temp >205
Delay 1 hour
Sensor 1 setting temperature 68°F
Send message
Control automation 60 minute boil disable
You will notice all of the automations that rely on timing in the 1 hour boil, all activate at the same time, and have different delay counters. The 60 minute timer before sensor 1 starts to cool, and all 4 scoop arm solenoids all begin counting down when my system hits 205°F, this value may be different for you, it's whatever temperature you feel is a good enough boil to start you additions.
Also, all automations include "send message" this is basically just a time stamp for you. This way to can see exactly when each thing happens and get a better idea of how your system works.
That's it! Your AutoBrewer is programmed and ready for its first brew day.