Electric Brewing // Automating the Mashing Phase – 120 Volts // 1,650 Watts // 13.5 Amps



Up to now – we have been brewing with natural gas or propane, while this works really well, and there are many advantages, like nice strong boils, etc…, there are also some draw backs – as with everything.

Here are some of the benefits of using electric over gas:

  • no carbon-monoxide gas is created, as you are not burning gas, so safer
  • it is much (again) safer to control electricity with un-attended automation over gas
  • save time by pre-heated over night to strike temperature using a smart PID controller – read here: http://byo.com/malt/item/299-brewing-on-autopilot-with-pid-controllers this way, you can get straight to mashing and not waste time heating the water with gas
  • no need to waste time buying and hauling propane no more
  • since you are saving time, you could fit 2 batches in the same day; just fill the water, set your temp goal on the PID and go to do something else…
  • Electric is much more efficient, 100% of the energy transfers into the wort, where as with gas only about 25% (the other 75% is byproduct of heat), which you have to ventilate for.
  • many more…

Voltage Choice ?

You will have with two choices, which you need to think about and consider for your needs and goals.  You can build your system around 120 volts or 240 volts.  Obviously it is easier to use 120 volts, since all electrical outlets by default have that everywhere in the US and only Driers and Oven ranges would have the cabling setup for 240 volts, unless you live in Europe :- ) then you have 220 volts.

A good way to wet your feet is to start with 120 volts and automate the heating for the mashing phase of the brewing.  Since mash out temps. are about 170F Max and everything between at lower ranges, you won’t really have the need to heat beyond that, so you can use lower wattage heating elements.

Drills or Punches ?

You have a choice of either making the holes using drills or hole punches.  There are many videos on youtube on that, so search away for your pot type and size.  We drill a hole and then thread it for smaller holes and for bigger holes, we drill a hole (threading has little value) because the thickness of the material is not sufficient enough to have the proper threads – so you will have to use rubber seals and lock nuts.  If you know how to weld, you don’t need instructions from us :- )


For this project we used a 1,650 watt stainless steel heating element, using 120 volts.  1650 watts / 120 volts = 13.75 Amps.  So when you buy a Relay, make sure it is rated above that, always good to have a nice buffer when it comes to electricity.  Most SSR Relays start in about the 25 Amp range, so you are good to go.

PID – great info from BYO magazine, many different ones exist, don’t buy cheap ones and make sure it supports F if you don’t like C for temp., its best to get familiar with options and specs, so do some research – http://byo.com/malt/item/299-brewing-on-autopilot-with-pid-controllers

We *do really* recommend that you buy the more expensive American made Auber controller, their quality is much better and they are rated for 10Amps without the need for a Relay, if you are going to stay under 1200watts.  Our experience with the cheaper Chinese made PIDs like the MYPIN, etc.. were poor, a lot of wasted time, it breaks easily, just cheap overall construction and I doubt their QA process // but you might have other luck – be warned, you do actually get what you pay for, that’s why people say this :- )

We don’t recommend the MyPIN or any other Brands out of China – seriously, their quality is not that good, on the other hand, there are good ones coming out of Japan, but do your research first.

The FOTEK solid state relays seem to perform well – time will tell if they still work after 5 years.  Make sure the model of your PID will work with a solid state Relay and will support your temperature probe.  Not all PIDs work with solid state, check the specs and ask before ordering.


We Recommend the Auber PID – see the manufacturers web site for different kinds:


we use this one: http://www.auberins.com/index.php?main_page=product_info&products_id=3


Here is what we used (1,650 watts stainless steel), but again – there are many different wattages and even shapes, so do your research – we recommend stainless!!!


This is the heating probe that we used – RTD Pt100 Temperature Sensor Probe Cable 3 Wires 1/2″ NPT 750°F for Temp Control – don’t get a cheap one and think about its placement relative to your needs and batch volume size.  s-l1600-1

Hooking it up ?

Most people will install the PID inside some kind of a Control Panel casing // here you can be as creative as you want, since this is for #homebrew, just try everything safely and properly, take your time and research, if you are not sure.

Many great videos exist on youtube – we recommend, you do some research again // Video will be posted later of final control panel.



Beeruino // An Intelligent beer data logger and controller



Beeruino – is an #arduino based data logger and controller project that I dreamt up after my second pint of #homebrew.  The difference between most people and I, are that I actually write down my ideas and later I look at them clear-headed to see if they still make sense, hence the Beeruino was born.

What is it made of ?

  • Black project box (Radio Shack), donated to me by a fellow brew head
  • Arduino UNO R3
  • Ethernet Sheild (gives Ethernet and SD card capability)
  • Prototyping shield
  • RTC (real-time-clock) using I2C bus (give accurate date/time)
  • dual 10 amp relay module (120 volt x 10 amp = 1200 watts)
  • dual A/C sockets, independent of each other (so different things can be controlled out of each socket)
  • 4×20 LCD screen using the I2C bus (not to be confused with 420, that’s something different)
  • ON/OFF switch
  • Arduino sketch C++ code
  • USB Cable
  • Power Cable to power the A/C sockets

What does this code do currently ?

It reads two dallas-1 wire digital sensors and controls one relay at the moment, but it can control more than one, just hasn’t been setup.  It display relevant information on the 4×20 LCD screen (see video).

Phase #1 – complete all the primary features and not be dependent on the internet – so that it would work even when hooked up to solar panels, off grid.

Phase #2 – add any additional nice to have options, such as a Menu system, and buttons to control targets.

Are we available for hire to build us such devices ?

No, this is a hobby, I don’t care about making money from it, that’s why it was released all open-source.


Version Notes / 1.001 – optimized/consolidated the code a bit, figured out correct setup for the relay in NO setting and not NC, and adjusted the Arduino code to reflect the test (this prevents the relay turning ON when the Arduino is un-plugged, which was not acceptable).  I also added #IoT (internet of things) to the project, fully tested for the example.


code also has been posted to Git – if you want to contribute, you should through Git.





American Brown Ale 10 gallon batch



attempt #1 pic below – Brew date: 3/26/1016


attempt #2 pic below – Brew date: 7/10/2016


10 gallons.

This beer was modeled after the Diamond Knot Brown Ale per the grains/hops posted on their web site, and simulated for ABV/SRM and IBU using app “Wort Pro”.


Videos of the brew are below:

adding flaked oats to mash: – add sweetness and body – read…

start of boil (using hop balls for whole hops so they don’t plug up the pipes):

transfer to fermentor:

adding yeast:

next day fermenting:

Attempt #1 – OG 1.068 // FG 1.010 – final ABV 7.6% – yes a little higher then the 6.0% Diamond Knot..

  • IBU 25.8
  • SRM 13

Attempt #2 – OG 1.066 // FG 1.014 – final ABV 6.83%

  • IBU 28.3
  • SRM 13

Total water used 15.5 gallons for final 10 gallons of beer…

attempt #1 grains:

  • 18 lb Pale Malt 2-row
  • 4.5 lb Munich Malt 10 love
  • 3.0 lb Crystal Malt 10 love – see below for attempt #2 changes
  • 0.20 lb Chocolate Malt
  • 0.20 lb Black Barley
  • 1.0 lb flaked Barley
  • 1/2 lb of brown sugar

attempt #2 grains:

  • 18 lb Pale Malt 2-row
  • 4.5 lb Munich Malt 10 love
  • 1.5 lb Crystal Malt 15 love
  • 1.5 lb Crystal Malt 60 love – we did this to give the beer more caramel flavor and beer body
  • 0.40 lb Chocolate Malt – we double the dark grains to darken the color a bit
  • 0.40 lb Black Barley
  • 1.0 lb flaked Barley
  • 1/2 lb of brown sugar – we didn’t use it this time, the sugar…

hops attempt #1:

  • 2.0 oz Galena with some whole hops from last year’s harvest (Yakima & Cascade) at start of boil, added to the hop boil ball, see video.
  • 2.0 oz Willamette last 15 minute of boil.

hops attempt #2:

  • 2.0 oz of home grown Cascade Hops, 2015 harvest (beginning of boil)
  • 1.0 oz of Cascade pallet + 1.0 oz Willamette pallet (last 15 minutes)

attempt #1 – Wyeast #1056 yeast was used, took 2 weeks to ferment out, this yeast consistently bubbled over the 2 week period…

attempt #2 – British Ale Wyeast #1098 // 2 liter starter // 1.040 gravity – majority of the active fermentation will be over in about 4 days, but let it go out full 2 weeks – because it’s still happening, just slower, also we like to allow extra time for all the floaters in the fermentor to settle.  On that note, per one of our brew nerds – once fermentation is over, trapped dissolved co2 gas slowly escapes the beer, so it will give you a false sense of a fermenation – only way is to measure.

Belgian Stout All Grain Recipe



September 11th, 2016 Brew: ( 10 gallon batch )…

OG 1.080 // Sep 11, 2016

FG 1.012 // Sep 24, 2016

Fermentation took a solid week.  ABV 8.9% // SRM 25

90 Minutes Mash at around 148F, followed by a 45 minutes at 158F, then mash-out at 170F // what we did different this time, used more grain and no Belgian Candi was used.  Also, the 2 lb of Caramel 40L was split into 1 lb 40 and 60 Caramel each.

grain schedule (cost of grain bill was $47 from a brew store

  • Pale 2-row 27.50 lb
  • Torrified Wheat 1 lb
  • Chocolate Malt 350L 1.5 lb
  • Caramel 40 Love 1 lb
  • Caramel 60 Love 1 lb

hops schedule (whole hops cost was free, since we grew our own hops // pellet we buy it by the pound, this way cost averages down by ounce )

  • 1.5 oz of whole hops Cascades, at start of boil
  • 1 oz of pellet hops, Cascades at 30 minutes
  • 1 oz of pellet hops, Cascades at 45 minutes + Irish Moss

yeast (we maintain our own, so this is almost free)

The yeast was the 1214 Belgian Abbey from 2014 brew which was sitting in the fridge all this time; we made a starter, and like a Boss!  2 liter starter, 48 hours.




December, 2014 Brew below:


Mash schedule:

90 minutes at 142F, than raise temps to 158F and hold for an additional 45 minutes, Mash out.

Over Ratio Grains Recipe:

  • 80% pale 2-row
  • 5% torrefied wheat
  • 5% Belgian Chocolate mail
  • 10% Caramel Malt (40L)
  • 1lb of Belgian Dark Sugar Syrup

Hops schedule for a 5 gallon batch:

  • 1 oz at start of boil – Willamette
  • 1 oz at 30 minutes – East Kent
  • 1 oz at end of boil – East Kent

for this recipe however we used Cascade hops for the whole thing, because we have a lot of them from the 2014 Harvest :- ) and also, these were the exact grains that we used, sometimes you have to substitute based on what is available where you live, you can also order exact grains and have them delivered, probably costs more money…

For the 10 gallon batch, we used:

  • 24 pounds of Golden Promise – which is a pale 2-row malt
  • 3 pounds of Crystal Malt, 40 Lov. (40L)
  • 1.5 pounds of British Chocolate Malt (450-500 L)
  • 1.50 pounds torrified wheat malt – it increases head retention and body / version of flaked wheat
  • 1 LB of Dark Brown Candi Sugar
  • 1 LB of Dark Belgian Candy Syrup
  • double the hot schedule for a 10 gallon batch ( see above )

We used 1214 Belgian Abbey yeast on this one!

12/21/2014 Brew OG 1.082


mashing stage with re-circulation:

boil stage:

fermentation stage:


14 - 1 14 - 2

Ferment for 2 ~ 3 weeks at about 70F, read your yeast specs…

Yeast – many different type of Belgian yeasts exists, please do your research…

Achouffe — Wyeast 3522 (Belgian Ardennes) and White Labs WLP550 (Belgian Ale)

Chimay — Wyeast 1214 (Belgian Ale) and White Labs WLP500 (Trappist Ale)

Du Bocq (Corsendonk) — Wyeast 3538 (Leuven Pale Ale)

Duvel Moortgat — Wyeast1388 (Belgian Strong Ale) and White Labs WLP570 (Belgian Golden Ale)

Rochefort — Wyeast 1762 (Belgian Abbey II) and White Labs WLP540 (Belgian Abbey IV)

Orval — White Labs WLP510 (Bastogne Belgain Ale)

Unibroue — Wyeast 3864 (Cana-dian/Belgian)

Westmalle — Wyeast 3787 (Trappist High Gravity) and White Labs WLP530 (Abbey Ale)


Apricot Ale – All Grain Recipe




On 6/4/2016 this year, we have brewed a 10 gallon version from last year, we scaled the grains and hops up by a factor of 2.  Total water used was 15.5 gallons, and to be honest I think we ended up with 11 gallons total beer.  However, this time we use canned Apricots, 5 cans total, they were already soft and super easy to create a puree (see video below) // also cost was much cheaper, 1 can costs $1, so $5 total.  At the brew store, canned Apricots extracts were much more expensive $20 – so that’s something to consider…

Yeast, since we maintain our own yeasts, we use that, saves a lot of money and we have great results, Wyeast 1056 was used.

OG 1.056 // on day 3 we added 5 cans of apricots, this for sure raised the sugar levels, but we haven’t figured out exactly how to measure that, fruit calculators do exist, but I am not sure how accurate that really is..  Fermentation was for 2 weeks, below is a 2 week fermentation plot derived from the logger and their respective fit lines.  You can see a nice spike when the fruit was added to the fermentor (blue lines are internal temps, orange external [outside the fermentor]).


FG 1.008

without factoring in the fruit added on day 3, final ABV 6.3% // which probably is closer to 8% 😉  when you do factor in the fruit.

2015 Brew – 5 Gallon All Grain Recipe – Apricot Ale

This recipe is fairly easy and the finished beer is delicious!  The ABV % will range between 4 % ~ 6 % depending on how much fruit you use and what kind and the efficiency of your brew setup and the attenuation of your yeast.


OG – 1.043 // Brew Date: 6/14/2014

FG – 1.012 // Kegging and Botteling Date: 6/21/2014

We only used 2 LB of Apricots and later 4 ounces of a natural Apricot flavoring – which will most likely push the ABV up a little bit too once it is finished aging.  Normally recipe calls for 1 to 1.5 lbs of apricot fruit per each gallon of beer.


9 lb American 2 row
2 lb Crystal 20L


Set your timer and once a nice steady rolling boil has been achieved, then:

  • add 1 oz Cascade (at start of-boil )
  • add 1/2 Cascade or (1 OZ if you want more Hops) at last 15 minutes of Boil

– The resultant aroma is of medium strength and very distinct. It has a pleasant, flowery and spicy, citrus-like quality with a slight grapefruit characteristic. The hop is good for both flavor and aroma uses. It can also be used for bittering effectively, and can be used to make any ales.


2~3 lb of Canned Fruit Puree – add this to the Primary fermentation at day 3 of the fermentation.  You can also add some apricot flavorings (you can buy those at the brew store), but add this at the kegging or bottling time.

Apricot Extract/Flavoring or making your own Apricot puree (lower cost)…



Do a test before bottling or kegging if you go with the extract: Take a dropper or pipette with mL measurements and blend a measured amount of the extract into a measured sample of beer, this will help you to find the mix ratio you like, and then simply scale up to figure out how much to add for the volume of beer that you have – most people add 4 ounces per 5 Gallon…


Wyeast American 1056 – we always do a starter!


Belgian/French Saison aka Farmhouse Ale Recipe +Fruit – All Grain


saison-ales-1210-lg saison-beer-646

Last Brew Date:

7/28/2015 – on Sunday we are brewing a slightly different variation this year.  80% Pilsner, 10% Vienna, 10% Wheat.  Columbus for bittering and Saaz for Aroma hops // using French Saison Yeast #3711 by Wyeast.  In addition we will use Raspberries during secondary conditioning for a – French Raspberry Saison…  Also we will shoot for at least a Double, so approx. 9% ABV+.  The colour we are looking for is a farmhouse straw!

The two pics below were a test pour out of the Fermentor at 2 weeks, the classic staw Farmhouse Ale colour was spot on.  The beer tasted awesome as well, only will get much better with time.



Raspberries also come through the best in beers for the flavor, taste and their overall profile.  It can turn some beer slightly sour with an unexpected benefit!

OG this time was 1.068…  FG was 7 days later (1 week fermentation), for a final of 1.005 – which would put this beer at a approximate 8.30% // not too shabby!

Now to Age // CHEERS!

Here is how the beer looks like at mashout…


and here is how it looks like after 1 week of fermentation with the raspberries added to the fermentor at day 3.



7/20/2014 – we used 12 pounds of grain (per recipe percentage proportions), and 1/2 lb of Belgian Candi sugar (that’s all we had left)..  OG – 1.049, FG – 1.009

ABV % – 5.25%

Belgian Saison Ale

Historically a Saison is a french style farm beer, brewed in Fall/Winter for the next season – a harvesting/farmer drink.  These days many variations exist, and many good articles too – Google for additional research and ask questions if you are not sure about something.

If you want a traditional Saison don’t add any spices or orange/lemon peels and use traditional German hops like the Noble or something regional from the French area – since this is a traditional French beer.  We also like East Kent (even tho they are from the UK) and Styrian – these add a sweet edge to the beer.

Traditional Sainson’s are bottle conditioned and highly carbonated.  Color can be Golden to Amber, ABV 3 ~ 5%, modern Sainson can be as high as 6.5%+.  Should be moderately hoped to balance out the maltiness for all ABV variations.

Age: 1 ~ 2 months, and up to a year+

60 minute standard mash, some people even do a 90 minute mash

We will post out ( OG , FG ) and final ABV later.

  • 85% lbs domestic Pilsner // we like to use the German Pilsner Malt as substitution.
  • 10% Wheat
  • 5% Euro Caravienne

Hops / Additional ingredients:

Once you achieve a rolling boil, set timer:

  • At start-of-boil add 1.5 oz of Styrian Golding Hops and 1 lb of Light Belgian Candi
  • At 45 minute of boil add some Irish Moss – helps with Chill Haze later – http://byo.com/stories/item/486-conquer-chill-haze
  • At 5 minutes end-of-boil, add 1 oz of Sweet Orange Peel or lemon peels – depends what you want – ( skip peels for a traditional Seison )
  • At 2 minutes end-of-boil, add 1 oz of Noble Hops


Wheast #3711 seems highly recommended by other brewers, Wheast #3724 was reported to be slow and a pain-in-the-ass.  Yeasts by White Labs was recommended, choose a proper yeast for a true Saison beer.

a 10% Belgian Tripple Ale – 5 Gallon All Grain Recipe




Belgian Triple Ale

In case you are wondering if a 10% ABV beer would taste different, this one doesn’t really, and YES! a single glass WILL KICK YOUR ASS!  This is NOT a Coors Light, drink slow and responsibly – or Else!  😉


Most pubs/breweries sell this beer by the glass only, (if they have it at all).

This traditional Tripel recipe has a white, creamy head. The aroma has elements of malt and citrus, which lead to a mildly sweet orange flavor.  Try to substitute grain as close as possible if your store don’t carry exact grain type in recipe.

Age: 4 months minimum, up to 12 months.

60 minute standard mash – our extraction efficiency was at 75%, efficiency on higher gravity beers goes down.

Our OG – 1.092, FG – 1.018

9.71% ABV

  • 17 lbs domestic Pilsner // in last recipe we used German Pilsner Malt as substitution.
  • 8 oz Euro Caravienne
  • 4 oz Euro Aromatic

Hops / Additional ingredients:

Once you achieve a rolling boil, set timer:

  • At start-of-boil add 1.5 oz of Styrian Golding Hops and 1.5 lb of Light Belgian Candi
  • At 45 minute of boil add some Irish Moss
  • At 5 minutes end-of-boil, add 1 oz of Sweet Orange Peel
  • At 2 minutes end-of-boil, add 0.5 oz of Willamette Hops


Make a starter ahead of your brew session, we do ours 1 week ahead by making a whole bunch of extra yeast and then splitting it in half ( half to brew session and the other into storage jars – saves money on buying yeasts and beats washing yeasts after fermentation ).

Wyeast Trappist High Gravity Yeast #3787, also you can try:

Wyeast Belgian Abbeyor or White Labs Belgian Ale yeasts.

Kodiak’s Pumpkin Ale Recipe – All Grain


Kodiak’s Pumpkin Ale:

Don’t know about how you guys prepare your pumpkin // but we do it like this!

bear_pumpkin_2 bear_pumpkin_1

(image source: google image for the below 1 photo)


Above people pour beer inside a pumpkin to give it an additional flavorings, plus it looks cool.  Here is a video on youtube that shows a tapping of a pumpkin with beer already inside… https://www.youtube.com/watch?v=SjNBBCxUYHw

In addition we have done another article about how to prepare pumpkin for brewing if you should grow them in your back yard or you purchased them from a local pumpkin patch: http://kodiakbrewing.com/wordpress/?p=1364


2014 Brew details:

For this brew, we added the pumpkin meat both at mash and boil stages.  We brewed a 7 gallon batch with OG of 1.059 (using the same amount of grain as for a 5 gallon batch) // spot on exactly as last year.  We did the mash for almost 2 hours, (which included some re-circulation time).  The boil was 75 minutes this year, because the pumpkin was frozen, so added 15 minutes in both steps for the ice cube treatment 🙂  We did not use rice hulls to help mash out, we simply raised temperature to about 170 F while re-circulating at the same time, and when the beer is clear – we drain it off.

FG 1.014 ( 1 full week ) // Final ABV 5.91% – or rounded off at 6% // again this was a 7 gallon batch, instead of a 5 gallon.

We used a British Ale #1098 this time // ferments dry and crisp, producing well-balanced beers with a clean and neutral finish, it also has a better lower temperature range, better for basements.

2013 Brew details below:

We brewed a 10 gallon batch on 7/6/2013, we got an OG of 1.064, better than when doing the 5 gallon batch for some reason, using same method and equipment.  For yeast we used 2 packs of Wyeast American Ale (1056) .  We used total of 16.5 gallons of water, and ended up slightly with more than 10 gallons, I say about 11.5 – so no matter how you look at it, we are happy.

FG on the 10 gallon batch was 1.016 – so it ended up as 6.4% ABV.

5 gallon batch ingredient picture below:

Usually brewed for the Holidays and Fall/Winter – breweries brew it ahead of time so that it is ready for brew events, and stores.  This bear likes to drink it all the time and so we brew it all the time, regardless if there are any holidays or not, everyday is a holiday here!

The pumpkin can be added either at mash time, boil time or fermentor time and some people – do it at all 3 stages.  But you have to ask your self if you want a really strong pumpkin beer or a nice hint of pumpkin, so that you can still enjoy the beer.  If you add the pumpkin to mash (some people add rice hulls) and they are used traditionally to prevent a stuck mash.  Rice hulls are the outer covering of rice, and that’s just it, there is no actual rice being added to the brew – that’s one way to do it.

List of ingredients for a 5 gallon recipe.

OG 1.059 +/-
FG 1.020 +/-

(1.059 – 1.020) * 131 = 5.109 approx.

Alcohol by Volume about 5.11%

  • 11 lb of american 2-row
  • 3/4 lb crystal malt 20L
  • 3/4 lb Cara-Pils (Dextrin)
  • 1 ounce mt. hood hops (bittering, add at start of boil)
  • 1 ounce cascade hops (last 2 minutes of boil)
  • 1/2 lb brown sugar (add before returning to heat, before start of boil)
  • 1 teaspoon nutmeg (last 2 minutes of boil)
  • 1 teaspoon cinnamon (last 2 minutes of boil)
  • pump-kin meat (boil for 10 minutes in a sock, we just add it at the last 10-15 minutes of boil)

MASH for 60 Minutes, with a re-mash for an 30-60 additional minutes, longer is better.

BOIL for 60 minutes and add all the ingredients at the right time.

We used a liquid yeast (Wyeast American Ale with direct pitch activator).


Age for 3 months any beer you brew, (some longer) its the best thing to do!  Also before serving we cold-crash our kegs that hold the beer, this helps to clear the beer and gives it a superb taste.

Don’t forget to take the OG gravity reading and record the reading number before the beer goes to fermentation and later after it ferments, take a FG reading.  Both of these are considered SG readings.

Beer Fermentation Beer Data Logger // Beer Analytics

Update: since this blog was written, the Project was transferred to a more professional looking project box and is now called the Beeruino, please search to see that blog – also code has been posted to Git.

parts used:

  1. empty cigar box (smaller plastic project boxes also are ideal, but cigar box was free)
  2. Arduino UNO R3
  3. Arduino UNO R3 compatible ethernet shield + SD card that plugs into the SD slot
  4. two Dallas 1-wire temperature sensors (1 meter long, internal cable length was extended)
  5. 4×20 blue LCD Screen – works over I2C
  6. an RTC (real-time-clock), also works over I2C
  7. miscellaneous: wires, shrink wraps, hot glue, plastic wire ties and some light soldering

If you are one of those people – who is reading this and inside your head you are saying “why the hell should I do any of this shit, I just buy!!” – guess what, you are not a Maker and you will learn nothing from buying things that others have created.  Once you learn, you have full control over your creation and any future ideas/goals, you are not tied to a product that someone else has created.

In this quick blog I wanted to share a quick story about how I converted an empty cigar box into a data logger.  It uses the Arduino Uno and two Dallas 1-wire sensor to capture and record both the internal temperature inside the fermentor and the external temperature (outside the fermentor), so that we have a base to compare against.  You should see a higher temperature inside, because when yeast ferments, that is considered an exothermic process – https://en.wikipedia.org/wiki/Exothermic_process

The primary goal was to create a small, portable system (small size and weight wise) and also for it to be independent, meaning be able to do everything on its own without external dependencies like the internet, or some network, at this stage we don’t want to send live data to the internet or log to a database // but those things can certainly be done and in the future can be nice to have.

To have this system somewhat nice, I have added a 4×20 blue LCD screen – it uses the I2C interface to make the hook up easy.  Also an RTC (real-time-clock) was installed to work on the same I2C bus, this adds date+time.

In addition I have used 4-pin aviation plugs to make the sensors connection modular, so that they can be easily unplugged (cleaning or swapping) without messing with the internal electronics or wires…

Hot glue was used to stick things in place inside the cigar box, along with some limited soldering, and shrink-wrap, and wire ties to keep things organized and properly connected for solid connections.

The programming code is not super complex, and it being shared below:

It assumes that the external temp. sensor is being pulled from index(0) and internal from index(1).  Having the temp sensors assigned to a static index will allow you to switch the aviation plugs and still have them assigned correctly and display from the right sensor without having to worry about which plug which should be.

A quick video and Arduino C++ code below…

The data is recorded on an SD card (inside the ethernet shield) which is plugged-in on top of the Arduino UNO R3.



Version 2.0 // Python temperature logging script Arduino + Raspberry Pi


Above is a temperature probe jig, it captures and logs the temperature from inside of the fermentor.


Plotting the data using a web API:

The plot above was generated using sample data and the service – https://plot.ly ( once you capture the data, you can upload your data_file.dat there and with a few clicks, make the graph ) – until you learn how to manually write the plot code in python.

Plotting the data using python code:

In the python code for the log – if you use this line to capture the data, then you can manually run the python code and it should generate a plot if you installed python right with all the necessary modules – this is considered machine readable the way that time.time is written to the file.  If you use the DATE/TIME instead, then I haven’t figured this out yep, so we use the web API (above) and upload the data and generate the graph like that.

a quick python plot example below:


sample code to generate a plot from the sample data.


Dynamic Temperature Python script…

Version 2.0 // logging of temperature code with appended date.  This version checks to see if the previous recorded sample is the same, if it is, it is skipped and not recorded.  This is useful to have when you are wanting to monitor and record temperatures over a long time, like months or a year and not waste data space on repeating values.

This code can be pretty much used with any temperature sensor, we use it with the Dallas DS18S20.

Let me briefly explain what the code is doing ( from top to bottom ), but I strongly recommend that you take some basic classes on Python, we are still learning it too :- ) that is the only way to take full advantage of it and learn a new skill – Python is a good thing to have on your resume these days too :- )

Special thanks go to “Ofnuts” (the person who helped up with the syntax to get this done from the python help forum)!

  1. we are importing some modules
  2. we are setting up some variables like LOGFILE_FORMAT & TIMESTAMP
  3. def – means defining a function, so we are defining a function called: logTemperature() – it does the logging of the temperature with an appending timestamp to a text file
  4. setup the serial connection from the Arduino over the USB cable
  5. last_temp_reading = – 273 (we are setting up a unrealistic condition for comparison temperature)
  6. the rest of the code checks for a clean string coming from the Arduino and converting it into a float so that an inequality check can be done
  7. a lot of the extra Printing was also done to test, you can take those out if you are not going to be looking at the screen and running the command in the background using nohup.
  8. If you know Python remove and add whatever you need and share with us if you end up doing something cool



Apricot Belgian Blonde 10 Gallon Recipe // All Grain


brew-day: 12/26/2015 // OG – 1.072 // Update on temp. chart of fermentation later along with FG, we are hoping for 8%.  This recipe originally called for 3lb of sugar, we used 1.5lb.  If you want 9%, add that extra sugar.

For yeast using a 2000ml starter, French Saison #3711 prepared 28 hours ahead of time.  The best thing to do with starters if you really want to be exact about it, is to test the wort until it reaches an OG of approx. 1.040.  This will prepare and propagate the yeast for the main fermentation without tiring its self out before the main fight.  The best way to do that is with a refractometer (make sure to buy one with the SG wort scale for brix %).

sugar + yeast = alcohol, Co2 and heat.

Fermentation is an exothermic process. The internal temperature of the fermentor can be as much as 10F above ambient conditions on the outside, just due to yeast activity.


70 minute boil.


  • 24 lbs of American 2-row (use local grain from your state/region if you can, support your local farmers)
  • 1.2 lb aromatic malt
  • 1.5lb cane sugar – [ in Belgian beers sugar is added to lighten the body of the beer without affecting the taste, it will also increase the ABV as it should fully convert.  Warning: Belgian beers are not Budweiser. drink them responsibly and slow… ]


  • 10 minute into the boil (70 mins total), add 2 ounce of Magnum Hops – for Bitter
  • at end of boil, add 2 ounce of Styrian Hops – for Aroma

We always add Irish Moss at 15 minute to end of boil


We used a French Saison #3711 // but there are other choices not limited to: Abbey Ale or Wyeast 3787 (Trappist High Gravity) yeast (we recommend you make a starter atleast 24 hours bore brew day).


Add 2 days into the fermentation the Apricot Puree, 5-6 lbs.  Fruit doesn’t transfer well in boil, otherwise skip if you don’t want the Apricots.

Arduino + Raspberry Pi to measure fermentation temperature

This is the original Version #1 // it will get you going – please see Version #2 for the dynamic sensor processing and more on plotting the data using an API and code.


temperature logging sensor jig above in fermentor…


Above on the left (Raspberry Pi), middle (breadboard), right (Arduino UNO) – this web site runs on the Pi and you are reading this article right now from it :- )

Home Brewing is more than just the act of beer brewing at home to many people // it is a hobby filled with lots of creativity, ideas and passion.  One of our goals was to capture accurate temperature measurements of the fermentation – once you capture the data you can do things with it.

We decided to use a digital 3 wire temperature sensor also referred to as a 1-wire system, because the data is sent over 1 wire, the other two are the volt and ground cable.

We used a DS18S20 Dallas 1-Wire digital thermometer, this sensor is digital and fairly accurate and the program can delivery the data in C or F or whatever you can program for, and it can send the signal over longer distances than an analog thermister.  Also you can have multiple digital readers on the same wire, since each one is identified with a digital ID and you can separate the sensors within the programming code.



Setup the Arduino + Raspberry driver software // Google this and do it on your own…

So in our setup we used an Arduino UNO connected via the USB cable to a Raspberry Pi B, and the Pi also powers the Arduino, get a better 2.0+ Amp power supply for the Pi, ours is 2.5 Amp. You also have to install drivers that allow the two to communicate over the USB cable (serial) connection of the cable.

STEP #1.1

You need to connect the sensor correctly to a 4.7K ohm pull-up resistor, we used a breadboard to help us with the connections, but you can prototype it better.  The breadboard will connect to the Arduino, below a simple way to show the connections of the cables.  The C code is setup to receive the input on pin 2.




Get a program working in C (language) on the Arduino loaded correctly through the IDE, to read the temperature from the sensor – you will have to learn how to do this part and be overall familiar with the basics of how to use the Arduino.    If you never done this before, (go learn that and then come back to do this step), we are sharing the code that we use below, it compiles fine, you might have to install some dependencies, like the OneWire and Time libraries (learn that too).




Use a Python script on the Rasberrpy Pi to read the signal data being sent by the Arduino, see examples of what we actually use right now below.  This script not only reads the data from the Arduino over the (serial USB) cable but also logs the data to a (tab delimited) text file while appending date/time stamp for each point reading, it does this every 5 seconds.  5 seconds could be an overkill for your project, maybe you want it every 30 seconds, it all depends what you are after and the resolution of the data capture that you need.

Version #2 of this code is available – http://kodiakbrewing.com/wordpress/?p=4172 // it ignores a temp sample if it incoming the same as the one just recorded, saving space if you are recording remotely over long time.


Do a test and record some data for a few days or a few weeks in the background using (nohup), you will have to learn Linux as well.  Run the script basically for a few days or weeks and then learn how to graph the data captured in whatever you see fit best way.  Once you have the data in a flat-file, you can transfer it over network and open the data with many different programs to create a temperature/date-time graph.  You can also use Python to create the graphs as well, etc…

We used a free program (Plot2) on a Mac to open the flat text file to read the data and it would actually automatically plot a graph.  Keep in mind that if you record a test sample of say 2 weeks (of stable temperature that don’t vary much), you will see mostly a flat line, but during fermentation you will see a spike of a few days and then a slow decline as the fermentation finishes off – but as tests go for (code and the sensor) – this is a good start.

So think about it, here you learn about the Arduino, and the Raspberry Pi and Linux, and text files to capture the data and C/Python programming languages, and how to graph the data, this is just scratching the surface.   You can take this much further, from displaying the temperature live on an LCD screen, to graphing it live on a LCD screen, to writing more program code and maybe even regulate a heater band over the fermentor to control the fermentation temperate after the yeast finishes its job, to deal with off-flavors for example and many other things, not just temperature.

You also see the min() and max() ranges the yeast temperature was reached during the reaction time of the fermentation to see if you hit the manufacturers recommended temp ranges, just yet another example of the data’s value.

Bottom line is that you not only learn new things, but capture useful data that you can analyze on and take action with – to in the end improve and make great beer.

Updates will come later with additional data, all our future beers will come with a fermentation charts of the overall process of the yeast used.

Also check out the – https://wizbrewery.wordpress.com/  Waldy the Wiz, also makes a great project and he shares all of his hard work – his is a little bit more advanced than our example.

Screen Shot 2015-10-19 at 7.40.50 PM