Back to wizard
Intermediate 90 minsLast reviewed: 2026-03-01Maintainer: Thorrak

Build a BrewPi with the All-in-One PCB

Build a compact, professional fermentation controller using the All-in-One PCB — an integrated board with relays, power supply, and sensor connections. Some soldering required.

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 an ESP32 microcontroller to manage heating and cooling elements connected to your fermentation chamber. Depending on how you choose to build it, a BrewPi-ESP can be assembled entirely from off-the-shelf components with no soldering required — or built with a custom PCB for a more permanent, polished setup. Either way, BrewPi allows brewers to achieve extremely precise temperature control — typically within several tenths of a degree.

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 that monitor your wort and chamber temperatures — either wired DS18B20 probes or wireless Bluetooth sensors like Inkbird thermometers or Tilt Hydrometers
  2. An ESP32 microcontroller that runs the control algorithm and communicates over WiFi
  3. Switches to control heating and cooling — either physical relays wired to your devices or compatible WiFi smart plugs like TP-Link Kasa

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
All-in-One PCB Kit (Preassembled)×1
LoLin D32 Pro ESP32 board×1
RJ-45 sensor breakout board×1
DS18B20 waterproof temperature sensor (1m or 2m)×2
Ethernet cable (straight-through)×1
LoLin TFT 2.4" touch screen (optional)×1
LoLin TFT cable (required if using screen)×1
Enclosure/project box×1
AC power cord×1
AC outlet or outlet box (for heating/cooling outputs)×2

What You'll Need

The All-in-One PCB integrates the two-channel relay, AC-to-DC power supply, and all signal routing onto a single board. Compared to builds with separate relay boards and power supplies, there's far less internal wiring — just mains power in and switched power out.

The PCB Kit

The easiest way to get started is to buy the All-in-One PCB kit from Tindie. The Tindie kit comes with all SMD components pre-soldered and most through-hole components already installed. You only need to solder two fuses and an optional display header.

If you prefer to build from scratch, the design files are available on GitHub and can be ordered from a PCB fabrication service like JLCPCB or OSHPark. The full BOM runs around $75–80 for a from-scratch build.

The Controller

The LoLin D32 Pro plugs directly into the 16-pin female headers on the PCB. If you're adding the TFT screen, the D32 Pro is required for its dedicated screen connector.

Temperature Sensors

This build uses wired DS18B20 temperature sensors connected to a separate RJ-45 sensor breakout board, which then connects to the main PCB via a standard ethernet cable. The sensors are soldered directly to the sensor breakout board.

You'll want at least two DS18B20 probes:

  • Beer sensor — attach to the side of your fermenter, insulated with foam
  • Fridge sensor — placed inside the fermentation chamber, away from heating/cooling elements

A third sensor is optional and provides room temperature readings (informational only).

The sensor breakout board is available pre-assembled from Tindie with the RJ-45 jack already soldered - you will just need to add the DS18b20 temperature sensors.

Display (Optional)

The LoLin TFT 2.4" screen connects to the D32 Pro via a ribbon cable and shows temperatures, controller state, and the IP address. Alternatively, a generic ILI9341 TFT display can connect through the 10-pin box header on the PCB.

Enclosure

This PCB handles mains voltage and must be enclosed in a project box. 3D-printable case designs are available in the hardware GitHub repo. You can also use any appropriately-sized electrical project box.

Mains Wiring

You'll need an AC power cord for input, and wiring to connect the relay outputs to your heating and cooling devices. This can be as simple as an extension cord cut and wired to the screw terminals, or outlet boxes mounted on your enclosure.

Tools

  • Soldering iron and solder
  • Wire
  • Wire strippers
  • Small Phillips screwdriver (for screw terminals)
  • A computer with a USB port and web browser (for firmware flashing)
  • Appropriate USB cable (for flashing firmware to the D32 Pro)
3

Assemble the PCB

20 minsStep 3 of 9

Assemble the PCB

If you bought the All-in-One kit from Tindie, most of the work is already done — all SMD components and many through-hole components are pre-soldered. You just need to finish a few remaining parts.

Video Walkthrough

What the Tindie Kit Needs

The Tindie kit requires you to solder:

  1. 8A fuse (F1) — the output protection fuse
  2. 2A fuse (F2) — the input protection fuse
  3. 10-pin box header (TFT) — only needed if you plan to use a generic ILI9341 TFT display instead of the LoLin TFT (which connects via its own cable)

That's it for soldering on the main board.

Building from Scratch

If you ordered a bare PCB and components, you'll need to solder everything. Start with the SMD components (smallest first), then move to through-hole:

SMD components:

  • Capacitors: C1, C3, C5 (1µF 0805) and C2, C4, C6 (0.1µF 0805)
  • LEDs: COOL, HEAT, PWR (red 0603)
  • Optoisolators: U1, U2
  • TVS diode: D1 (SMAJ7.0A)
  • Flyback diodes: D3, D4 (1kV DO-214AC)
  • Transistors: Q1, Q2 (MMBT2222A NPN)
  • Resistors: R1 (680Ω), R3 (4.7kΩ), R4, R5 (1kΩ) — all 0805

Through-hole components:

  • Screw terminals: X1, X2, X3 (2-terminal clamps)
  • RJ-45 jack: X4
  • Fuses: F1 (8A), F2 (2A)
  • Varistor: R2
  • Electrolytic capacitor: C7 (220µF) — watch the polarity! The longer lead (anode) goes to the pad marked +
  • Relays: HEAT_RELAY, COOL_RELAY (Songle 5V)
  • OneWire voltage selector: OW_SEL (3-pin male header + jumper)
  • TFT header: 10-pin box header (optional)
  • Controller sockets: two 16-pin female headers

Finally, solder the IRM-10-5 power supply module to its footprint on the board.

Install the Controller

Plug the LoLin D32 Pro into the two 16-pin female headers on the PCB. Make sure the USB port faces the correct direction — it should align with the edge of the board.

Connect the TFT Screen (Optional)

If using the LoLin TFT display, connect it to the D32 Pro with the LoLin TFT cable — this uses the D32 Pro's dedicated connector, not the 10-pin header on the PCB.

If using a generic ILI9341 display, connect it to the 10-pin box header instead.

Set the OneWire Voltage

The OW_SEL jumper selects whether DS18B20 sensors receive 3.3V or 5V. Start with the jumper set to 5V. If your sensors don't work reliably, switch to 3.3V.

There's also a solder jumper (SJ_OW) on the back of the board for a permanent selection — use one or the other, never both.

4

Connect the Temperature Sensors

15 minsStep 4 of 9

Parts Needed

PartQty
DS18B20 waterproof temperature sensor×2
RJ-45 sensor breakout board×1
Ethernet cable×1

Connect the Temperature Sensors

The All-in-One PCB doesn't have direct terminals for temperature sensors. Instead, DS18B20 sensors are soldered to a separate RJ-45 sensor breakout board, which connects to the main PCB via a standard ethernet cable. This lets you place the sensor board close to your fermentation chamber while keeping the controller somewhere convenient.

Prepare the Sensor Breakout Board

If you bought the sensor board from Tindie, the RJ-45 jack and screw terminal are already soldered. If you have a bare board, solder those first.

Test Your Sensors First

Before permanently soldering the DS18B20 sensors to the breakout board, it's a good idea to test them. You can temporarily hold the sensor wires against the pads to verify they're working — once everything is confirmed, solder them in place.

Solder the DS18B20 Sensors

Each DS18B20 waterproof probe should have three wires. Solder them to the labeled pads on the sensor breakout board:

Typical Wire ColorFunction
RedVCC (power)
BlackGND (ground)
Yellow or WhiteData

Although these colors are typical, they are not standardized. If your sensors come with any documentation that indicates different colors, use it instead.

The board supports up to three sensors:

  • Sensor 1 — Fridge/chamber temperature (place inside chamber, away from heating/cooling elements)
  • Sensor 2 — Beer temperature (attach probe to fermenter, insulated with foam)
  • Sensor 3 (optional) — Room temperature

All sensors share the same OneWire data line, and each has a unique address — the firmware identifies them automatically.

Note: The sensors must be wired in standard 3-wire mode. Do not use parasitic (2-wire) mode — it is not supported.

Connect to the Main PCB

Plug a standard straight-through ethernet cable from the sensor breakout board's RJ-45 jack into the RJ-45 jack on the All-in-One PCB. That's the only connection needed — power and data for the sensors run through the ethernet cable.

Sensor Placement Tips

  • Beer sensor: Tape or strap the probe to the side of your fermenter, about one-third up from the bottom. Cover it with a piece of foam or bubble wrap so it reads the beer temperature rather than the chamber air.
  • Fridge sensor: Place it inside the chamber but away from the fermenter walls and away from direct airflow from heating or cooling elements.
  • Room sensor (optional): Place it outside the fermentation chamber in the same room.
5

Flash the Firmware with BrewFlasher

5 minsStep 5 of 9

Flash the Firmware with BrewFlasher

BrewFlasher is a free tool that downloads and flashes the correct firmware to your ESP32 or ESP8266 automatically — no command line needed. It supports all of the major brewing-related ESP projects including BrewPi-ESP, TiltBridge, and more.

You have three options for flashing: the desktop app (Windows/macOS), the web edition (Desktop Chrome/Edge only), or the command line edition (most OSes, including Raspbian/Raspberry Pi OS).

Option A: BrewFlasher Desktop App

  1. Download the latest release from the BrewFlasher GitHub releases page
  2. Connect your ESP32 to your computer with a USB cable
  3. Open the app — no installation required, just double-click
  4. Select the appropriate serial port (or choose Auto-select)
  5. Select the appropriate project, device family, and firmware you want to flash
  6. Click Flash and wait for it to complete

Note - When flashing some devices for the first time, you may need to hold down a button (typically labeled "boot" or "0") when connecting to the computer. You can release the button a few seconds after the device is plugged in.

Option B: BrewFlasher Web Edition

  1. Open web.brewflasher.com in Google Chrome, Microsoft Edge, or Opera on a computer (other browsers including Safari and Firefox don't support WebSerial)
  2. Connect your ESP32 to your computer with a USB cable
  3. Select the project, device family, and firmware you want to flash
  4. Click "Flash to Controller"
  5. You will be prompted by your browser to connect a device - select the controller you connected (typically "USB Serial" or similar)
  6. Click "Install" and wait for the flash to complete

Option C: BrewFlasher Command Line Edition

The command line edition works on any platform with Python — including Raspberry Pi / Raspbian — and provides the same interactive firmware selection as the desktop app.

  1. Install via pip (if not already installed):
    pip install --upgrade brewflasher_cli
    
  2. Connect your ESP32 to your computer with a USB cable
  3. Run brewflasher — it will interactively walk you through selecting a project, device family, firmware, and serial port
  4. Wait for the flash to complete

You can also skip the interactive prompts by passing options directly:

brewflasher --serial-port /dev/ttyUSB0 --baud 460800

Run brewflasher --help for a full list of options.

Troubleshooting

  • Device not detected? Try a different USB cable — some cables are charge-only and don't carry data. Also try a different USB port.
  • Flash fails on ESP32-S2? Some boards require you to manually enter flash mode: hold the 0 button, press RST, then release 0. Then try flashing again.
  • Linux permissions error? Run sudo usermod -a -G dialout $USER, log out and back in, then try again.

Once the flash completes, your device will reboot and the new firmware will be running.

For this build, select **BrewPi-ESP** as the project in BrewFlasher, and choose the firmware version for the **ESP32**. If you're using a LoLin D32 Pro with the TFT screen, make sure to select the firmware variant that includes TFT support.

6

Connect to WiFi

5 minsStep 6 of 9

Connect to WiFi

After flashing the BrewPi-ESP firmware, the controller needs to be connected to your home WiFi network. On first boot, it creates its own WiFi access point that you'll use to enter your network credentials.

Connect to the Setup Access Point

  1. Power on the controller (plug in the USB cable)
  2. On your phone or computer, open your WiFi settings and look for a network called BrewPiAP
  3. Connect to it using the password brewpiesp
  4. A configuration page should open automatically. If it doesn't, open a browser and navigate to http://192.168.4.1

Enter Your WiFi Credentials

  1. Select your home WiFi network from the list (or type the name manually)
  2. Enter your WiFi password
  3. Save the settings

The controller will restart and connect to your home network. The BrewPiAP network will disappear.

Find the Controller on Your Network

Once connected, you need to find the controller's IP address to access its web interface:

  • If you have the TFT screen: The IP address is displayed in the lower-left corner of the screen
  • If you don't have a screen: Check your router's connected devices list, or use a network scanner app like Fing on your phone to look for the new device

Open a web browser on any device connected to the same WiFi network and navigate to the controller's IP address (e.g., http://192.168.1.100). You should see the BrewPi-ESP web interface.

Tip: Bookmark the IP address or assign a static IP through your router so you can easily find the controller later.

For the All-in-One build, you can flash the firmware over USB before wiring mains power. Once WiFi is configured and you've verified the web interface loads, proceed to the mains wiring step.

7

Wire Mains Power

15 minsStep 7 of 9

Wire Mains Power

The All-in-One PCB has an integrated AC-to-DC power supply and two relay-switched outputs for controlling your heating and cooling devices. In this step, you'll wire mains power into the board and connect the relay outputs to your equipment.

⚠️ Safety Warning: This step involves working with mains voltage (110V/220V). If you are not comfortable working with mains wiring, ask someone with electrical experience for help. Always work with the board unplugged and double-check all connections before applying power.

Understand the Screw Terminals

The PCB has three 2-terminal screw clamps:

TerminalPurpose
AC L / AC NMains power input — hot (line) and neutral
HEAT AC LRelay-switched hot wire to your heating device
COOL AC LRelay-switched hot wire to your cooling device

The heating and cooling devices share the neutral wire from the AC input. Only the hot (line) wire is switched through the relays.

Wire the Power Input

  1. Strip the ends of your AC power cord if hooking to a cord directly, or cut 2 small pieces of wire and securely attach to the inlet if using an IEC320 C14 power inlet
  2. Connect the hot (line) wire to the AC L terminal
  3. Connect the neutral wire to the AC N terminal
  4. Tighten the screw terminals firmly

Wire the Heating and Cooling

We will be using a standard duplex outlet to plug our heating and cooling loads into. We will be switching the "hot" wire going to each side of the outlet independently to toggle heating/cooling.

  1. On the "hot" side of the duplex outlet, using pliers, grip and break off the "wing" connecting the two screw terminals. This will allow them to be controlled independently.
  2. Run a wire from the HEAT AC L terminal to the bottom screw terminal on the hot side of the duplex outlet
  3. Connect a wire from AC N (or splice from the input neutral) to one of the screw terminals on the neutral side of the duplex outlet
  4. Run a wire from the COOL AC L terminal to the top screw terminal on the hot side of the duplex outlet

Verify Before Powering On

Before plugging anything in:

  • Confirm no bare wire is exposed outside of screw terminals
  • Ensure all screw terminals are tight and wires are secure
  • Verify that the board is mounted inside an enclosure — do not operate this board outside of a case
  • Make sure the AC cord has strain relief where it enters the enclosure (if using a cord directly for input)

Power On

Plug in the AC power cord. You should see:

  • The PWR LED on the PCB lights up, confirming the onboard power supply is working
  • The D32 Pro boots up (the TFT screen will show the boot sequence if connected)

The HEAT and COOL LEDs will remain off until the controller begins actively managing temperature.

8

Configure Sensors and Relays

5 minsStep 8 of 9

Configure Sensors and Relays

With the board powered on, sensors connected, and the controller on your WiFi network, the last step is assigning each sensor and relay to its role in the BrewPi-ESP web interface.

Open the Configuration Page

  1. Navigate to your controller's IP address in a web browser
  2. Go to the Set Up Sensors/Actuators page

Assign Temperature Sensors

The page will show all detected DS18B20 sensors by their unique addresses. For each sensor, assign its role:

  • Beer Sensor — the probe attached to your fermenter
  • Fridge Sensor — the probe inside the fermentation chamber
  • Room Sensor (optional) — the probe outside the chamber

If you're not sure which address corresponds to which sensor, warm one sensor with your hand and watch the temperature reading change — that tells you which is which.

Assign Relay Outputs

The two onboard relays should also appear on the configuration page. Assign each to its role:

  • Cool Actuator — the relay connected to your cooling device
  • Heat Actuator — the relay connected to your heating device

Test the Relays

After assigning the relays, you can verify them by setting a target temperature:

  • Set a target below the current beer/fridge temperature — the COOL LED on the PCB should light up and you should hear the relay click
  • Set a target above the current temperature — the HEAT LED should light up

If the wrong relay activates, swap the heat and cool assignments in the configuration.

Save and Verify

Save the configuration. The web interface should now show live temperature readings from all connected sensors, and the controller will begin managing temperature automatically based on your setpoint.

9

Next Steps

3 minsStep 9 of 9

Next Steps

Your All-in-One BrewPi PCB is assembled, wired, and configured. Here's what to do next.

Connect to a Dashboard

While the BrewPi-ESP's built-in web interface works fine on its own for basic control, you can connect it to a web-based dashboard for richer logging, graphing, and remote access:

  • Fermentrack.net — Free, cloud-hosted, modern fermentation management. Tracks temperatures, manages profiles, and logs history across multiple controllers from anywhere in the world.
  • Fermentrack — Self-hosted fermentation management on a Raspberry Pi.
  • BrewPi Remix — An updated version of the original BrewPi web interface, also self-hosted on a Raspberry Pi.

Connection instructions vary by platform — refer to each project's documentation for setup details.

Tips for Reliable Operation

  • Check your enclosure periodically — make sure all mains wiring connections remain tight and no wires have come loose from the screw terminals
  • Keep the controller plugged in to a reliable power source — if it loses power, the relays open and your heating/cooling devices turn off
  • Assign a static IP to the controller through your router so you always know where to find it
  • Protect the sensor cable — the ethernet cable between the main board and the sensor breakout can get snagged or pulled. Route it securely and use strain relief where it enters your fermentation chamber
Step 1 of 9