Introduction: Homebrew Bubble Catcher Part 1 of 3

What are we doing here?

Here we are homebrewing and using an arduino with an cheap optocoupler sensor to detect bubbles in a bubbler type airlock.

Why are we doing this?

Well .. firstly it's fun. Secondly, if you are a homebrewer, this will give you a handle on CO2 emission levels of your brew thorough fermentation time.

Important safety warning - Please do not stop fermenting when bubbles stop. Stuff tends to happen when Co2 ceases ie bubbles slow down or stop. Use a hydrometer to check fermentation has finished. (especially if you are bottling your booze in glass bottles!)

What am I brewing?

In case your interested .. here I'm brewing a Russet apple cider with russet apples harvested from our allotment.

• 1.2 Kg Russet apples (quatered and macerated for a couple hours with 100g sugar then pressed)
• 500g table sugar
• 1 campden tablet
• tap water to make 5 Litres or 1 UK gallon
• 2g champagne yeast

This will make a beverage of approx 5% ABV (my original gravity was 1051)

Step 1: Parts List, What You Will Need

An arduino. There are many flavours available and each one will do this job. I used an arduino uno:

Arduino Uno* with appropriate usb cable

An opto coupler device with a detection gap of 10mm


Dupont cables for easy wireup

dupont cables male to female*

Bubbler airlock for homebrew


plus of course your fermatation vessel and sugary stuff you are fermenting

nb other suppliers* are available

Step 2: Wiring

This will need three dupont wires

Vcc and Gnd, also the data cable to pin 2 digital pin of the arduino

If you connect your pc with the usb cable to upload the following sketch, this will also power the arduino

Step 3: Uploading the Sketch

Using the arduino IDE on your pc upload this sketch:

bubble catcher code

Plug in your arduino to your pc and ensure that the arduino port is selected as shown. nb your com port number may be different to mine.

Next upload the sketch to your arduino by clicking the second icon on the left below the menu bar.

To see the output, you'll need to open the serail monitor in the arduino ide from the Tools menu

Step 4: Positioning the Sensor

I used a couple of elastic bands to position and secure the opto coupler to the bubbler. I found that it was a little tricky to align the sensor at first, especially if fermantation has just kicked off and it is slow. Once it is aligned, and bubbles are being reported on the

Tips for sensor alignment

Try to align the sensor so that it its path is just past the bottom neck of the bubbler tube (see red line in pic above) . This will help to prevent false readings.

The sensor , helpfully has a red led on board which flashes when a bubble is detected in its path. I found it's better if the LED is on when there is no bubble and off when a bubble is detected (it works conversely, however its harder to align)

Alignment is much quicker/ easier If you align the sensor when fermentation has got going (bubbles 2 secs or less apart) try it and see!

A bit of sugru on the bubbler can be used to fix the bottom position of the sensor for easy subsequent alignment. Only the top elastic band will be needed then

Step 5: The Arduino Sketch

What's going on here?

I'm using an interrupt routine to detect level changes on pin 3 of the arduino.

Another option would be to poll pin 3 for state changes. The disadvantage of doing this is that it would require arduino's full attention, not letting you do other things.

If you'd like to learn about using interupts on the arduino a good tutorial can be found here

Step 6: Summary, Results and Development

The above video shows the bubble catcher in action. You can see, once the probe has been positioned, that the probe does not fail to pickup a bubble unless the time between bubbles is less than my resolution variable which is set in my code to 0.8ms


Terminal output once fermentation starts as picture above


• output example during fermentation
• IOT using esp8266
• fermentation tuning using bubblecatcher and fermentation temperature.

Live IOT brew now on

Grodziskie fermentation IOT

New instructable coming soon