Back to wizard
Intermediate 90 minsElectronics

Build a Soldered BrewPi

A more permanent BrewPi build using a custom PCB and soldered connections. Ideal for long-term fermentation control setups.

1

What is BrewPi?

3 minsStep 1 of 9

What is BrewPi?

BrewPi is an open-source fermentation temperature controller that gives you professional-level control over your brewing process. Originally designed around an Arduino, the modern BrewPi-ESP project uses the affordable ESP8266 or ESP32 microcontroller to manage heating and cooling elements connected to your fermentation chamber.

Why Temperature Control Matters

Consistent fermentation temperature is one of the most important factors in producing great beer. Even small fluctuations can produce off-flavors, stalled fermentations, or inconsistent results batch to batch. BrewPi solves this by continuously monitoring your wort temperature and adjusting heating/cooling to follow a precise temperature profile.

How It Works

The BrewPi-ESP system consists of three main components:

  1. Temperature sensors (DS18B20) that monitor your wort and chamber temperatures
  2. An ESP8266/ESP32 microcontroller that runs the control algorithm
  3. Relay switches that turn your heating and cooling devices on and off

The controller reads sensor data, compares it to your target profile, and activates heating or cooling as needed. You can set simple static temperatures or complex multi-day profiles that ramp up or down over time — perfect for lager fermentation schedules.

2

What You'll Need

5 minsStep 2 of 9

Parts Needed

PartQty
ESP8266 NodeMCU×1
DS18B20 temperature sensor (waterproof)×2
4.7kΩ resistor×2
Relay module (2-channel)×1
5V power supply (micro-USB)×1
Jumper wires (assorted)×10

What You'll Need

Before you start building your BrewPi-ESP, gather all the parts listed above. Most components are readily available from electronics suppliers or online marketplaces. The total cost for the electronics is typically under $25 USD.

Choosing Your ESP8266

The ESP8266 NodeMCU is the recommended board for this project. It includes a built-in USB-to-serial converter, making firmware flashing straightforward. Make sure you get the NodeMCU v1.0 (also called V2 by some sellers) with the CP2102 or CH340 USB chip.

Temperature Sensors

We use DS18B20 sensors in the waterproof probe form factor. You'll need at least two — one for the wort (beer) temperature and one for the chamber (fridge) temperature. These sensors use the OneWire protocol, so they can all share a single data pin on the ESP8266.

Tools You'll Need

  • A computer with a USB port (for flashing firmware)
  • A micro-USB cable
  • Wire strippers (if using bare wire connections)
  • A small Phillips screwdriver (for relay terminals)

For this build, you'll need a soldering iron, solder, flux, and the BrewPi-ESP PCB. A helping-hands tool is recommended.

3

Solder the ESP8266 PCB

20 minsStep 3 of 9

Parts Needed

PartQty
BrewPi-ESP PCB×1
ESP8266 NodeMCU×1
Female header pins (15-pin)×2
Screw terminal blocks (2-pin)×4
4.7kΩ resistor×2

Solder the ESP8266 PCB

The BrewPi-ESP PCB provides a clean, permanent solution for your build. The PCB has labeled pads for all connections, making assembly straightforward even if you're relatively new to soldering.

Preparation

  1. Lay out all components and verify you have everything from the parts list above
  2. Heat your soldering iron to 350°C (660°F)
  3. Clean the tip with a brass sponge or wet sponge
  4. Have your solder and flux ready

Soldering Order

For best results, solder components in order from shortest to tallest:

  1. Resistors (4.7kΩ) — Insert through the marked holes (R1, R2) and solder on the back
  2. Screw terminals — Place in the marked positions for sensor and relay connections
  3. Female headers — These hold the ESP8266 module. Solder one pin first, check alignment, then complete the rest
  4. Test fit — Insert the ESP8266 into the headers to verify alignment before final assembly

Quality Checks

After soldering, inspect each joint. A good solder joint should be shiny, cone-shaped, and completely wet both the pad and the component lead. Reheat and add solder to any joints that look dull or blobby.

4

Set Up the DS18B20 Temperature Sensors

8 minsStep 4 of 9

Parts Needed

PartQty
DS18B20 waterproof temperature sensor×2
4.7kΩ resistor×1

Set Up the DS18B20 Temperature Sensors

The DS18B20 is a digital temperature sensor that communicates over a single wire (OneWire protocol). Each sensor has a unique 64-bit address, allowing multiple sensors to share the same data pin.

Wiring the Sensors

Each DS18B20 waterproof probe has three wires:

Wire ColorFunctionConnect To
RedVCC (Power)3.3V
BlackGND (Ground)GND
Yellow/WhiteDataGPIO2 (D4)

Connect the 4.7kΩ pull-up resistor between the Data line and VCC. This resistor is essential for reliable communication — without it, the sensors may give intermittent readings or fail to respond.

Sensor Placement

  • Wort sensor: Tape or strap this sensor to the side of your fermenter, about one-third of the way up from the bottom. Insulate it with foam or bubble wrap to ensure it reads the wort temperature, not the chamber air.
  • Chamber sensor: Place this sensor inside your fermentation chamber, away from direct contact with the fermenter or any heating/cooling elements.

Testing Individual Sensors

Before connecting everything together, it's a good idea to test each sensor individually. We'll cover this in detail in the sensor verification step later.

5

Flash the BrewPi-ESP Firmware

10 minsStep 5 of 9

Flash the BrewPi-ESP Firmware

The BrewPi-ESP firmware is the software that runs on your ESP8266 and controls the fermentation process. In this step, we'll download the firmware and flash it to your board.

Prerequisites

You'll need one of the following tools to flash the firmware:

  • esptool.py (Python-based, works on all platforms)
  • NodeMCU Flasher (Windows only, GUI-based)
  • PlatformIO (for advanced users who want to compile from source)

Download the Firmware

Download the latest pre-compiled firmware binary from the BrewPi-ESP releases page. Choose the file that matches your ESP8266 board (usually brewpi-esp8266.bin).

Here's a walkthrough of the flashing process:

Flashing with esptool.py

# Install esptool
pip install esptool

# Flash the firmware (replace /dev/ttyUSB0 with your serial port)
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash 0x00000 brewpi-esp8266.bin

Flashing with NodeMCU Flasher

  1. Open NodeMCU Flasher
  2. Select your COM port from the dropdown
  3. Go to the Config tab and select the firmware binary
  4. Click "Flash" and wait for completion

Verifying the Flash

After flashing, the ESP8266 will reboot automatically. You should see a new WiFi network appear called "BrewPi-ESP" — this confirms the firmware is running correctly.

6

Configure WiFi on BrewPi-ESP

5 minsStep 6 of 9

Configure WiFi on BrewPi-ESP

Now that the firmware is flashed, you need to connect the BrewPi-ESP to your home WiFi network. The device creates its own access point for initial configuration.

Connect to the Setup Network

  1. On your phone or computer, look for a WiFi network called BrewPi-ESP (or similar)
  2. Connect to this network (no password required on first setup)
  3. A captive portal should open automatically. If not, navigate to http://192.168.4.1 in your browser

Enter Your WiFi Credentials

In the configuration portal:

  1. Click Configure WiFi
  2. Select your home WiFi network from the list
  3. Enter your WiFi password
  4. Click Save

The ESP8266 will restart and connect to your home network. The setup access point will disappear.

Finding Your BrewPi on the Network

After connecting to WiFi, you can find the BrewPi-ESP's IP address in several ways:

  • Check your router's DHCP client list
  • Use a network scanner app (like Fing on mobile)
  • Look for brewpi.local if mDNS is supported on your network

Navigate to the IP address in your browser to access the BrewPi-ESP web interface.

7

Set Up a Fermentation Profile

5 minsStep 7 of 9

Set Up a Fermentation Profile

A fermentation profile tells BrewPi-ESP exactly what temperatures to maintain and when to change them. This is where the real power of temperature control shines — you can create complex schedules that would be impossible to manage manually.

Accessing the Web Interface

Open your browser and navigate to your BrewPi-ESP's IP address. You should see the main dashboard showing current temperatures and the control panel.

Creating a Simple Profile

For your first brew, start with a simple static temperature:

  1. Go to Settings > Temperature Profile
  2. Set the mode to Beer Profile
  3. Add a single point: Day 0, Temperature 18°C (64°F) for ales or 10°C (50°F) for lagers
  4. Click Apply

Creating an Advanced Profile

For more complex fermentation schedules, you can add multiple temperature points:

DayTemperaturePurpose
018°C (64°F)Primary fermentation
420°C (68°F)Diacetyl rest
720°C (68°F)Hold for cleanup
84°C (39°F)Cold crash
104°C (39°F)Hold cold

BrewPi will automatically ramp between temperatures, adjusting the heating and cooling to follow the profile as closely as possible.

Monitoring

The web interface shows a real-time graph of both wort and chamber temperatures overlaid with your target profile. Check in periodically to ensure everything is tracking correctly.

8

Verify Your Temperature Sensors

5 minsStep 8 of 9

Verify Your Temperature Sensors

Before putting everything together, let's make sure your DS18B20 sensors are working correctly and reporting accurate temperatures.

Check Sensor Detection

  1. Open the BrewPi-ESP web interface
  2. Go to Settings > Devices
  3. You should see two OneWire devices listed with their unique addresses

If you don't see both sensors, check your wiring — particularly the pull-up resistor and the data line connection.

Verify Accuracy

Hold both sensors together in your hand or place them in a glass of room-temperature water. After a minute, both sensors should report similar temperatures (within 0.5°C of each other).

If the readings differ significantly:

  • Try swapping the sensors to rule out a wiring issue
  • Check that the pull-up resistor is properly connected
  • Ensure the sensors are genuine DS18B20s (counterfeit sensors are common and often less accurate)

Assign Sensor Roles

In the BrewPi-ESP device settings, assign each sensor to its role:

  • Beer Sensor: The sensor that will be attached to your fermenter
  • Fridge Sensor: The sensor that measures the chamber air temperature

Label your sensor cables with tape so you don't mix them up later.

9

Full System Test

10 minsStep 9 of 9

Full System Test

With everything wired up, firmware flashed, and sensors verified, it's time to test the complete system before trusting it with your next brew.

Relay Test

  1. In the BrewPi-ESP web interface, go to Settings > Devices
  2. Manually toggle the cooling relay — you should hear it click and see the relay LED change
  3. Repeat for the heating relay
  4. If using a fridge and heat wrap, plug them into the relay outputs and verify they turn on/off

Control Loop Test

Set a target beer temperature slightly below the current room temperature (e.g., if the room is 22°C, set the target to 20°C). The system should:

  1. Detect that the beer temperature is above the target
  2. Activate the cooling relay
  3. Wait for the minimum off-time before switching again

Then set the target above the current temperature. The system should:

  1. Detect that the beer temperature is below the target
  2. Activate the heating relay
  3. Monitor and cycle as needed

Safety Check

Ensure that:

  • Only one relay (heating or cooling) is active at a time
  • There is a minimum delay between relay switches (to protect your compressor)
  • The web interface updates in real-time

Congratulations!

Your BrewPi-ESP is fully assembled and tested. You're ready to start your first temperature-controlled fermentation. Happy brewing!

Step 1 of 9