All Projects
Measurement / Home Assistant

GaFuBi Wood-Fired Oven

Measuring unit for wood-fired ovens with an LED matrix remote display, web UI and Home Assistant
ESP32-S3ESP-IDFRP2350HUB75LED MatrixMAX31856Type K ThermocoupleSHT31DS3231MQTTHome AssistantWebSocketUDP
GaFuBi Wood-Fired Oven

Description

A self-made electronics system for directly heated wood-fired ovens: pizza domes, stone bakers, and classic fireclay ovens. It was developed and is now operating on a fireclay dome oven with a stone floor in my own garden. Two K-type sheathed thermocouples (Inconel 600) monitor the dome and the floor; the floor probe is inserted about 1 cm deep into the fireclay brick. Each channel uses a MAX31856 to convert the signals, and a fault register detects open probes and short circuits. The first version ran from May 2026 on an ESP32-S3 that had a built-in touch display, initially 2.8 inches, later 3.5 inches. In September an intermediate step used an ESP32-P4 with a 4.3-inch panel. It went through two baking days at the oven without any software errors, but it revealed a flaw that no larger display on the case can solve: when working at the oven you stand too far away to read the digits on a panel the size of a phone screen. Since September 2026 the system has been divided into two separate devices. The base unit is an ESP32-S3 (DevKitC-1 N16R8, ESP-IDF 5.5) housed in a closed case at the oven. It measures, calculates, records, and sends data, but no longer has its own display. The firmware originates from the P4, with only the display layer removed. The pinout remains unchanged from the first version, so the probe board moved over without resoldering. All calculations are performed here: program windows, the learning timer, the cooling prediction, and the session logger. This design choice is because the cooling phase of a wood-fired oven lasts an entire day, and the curve must keep running even if the display happens to hang somewhere else. The remote display is a Raspberry Pi Pico 2 W (RP2350) paired with a HUB75 LED panel measuring 64 × 32 dots on a 160 × 80 mm surface. It is positioned within view of the oven and shows the dome and floor in large size, with the status indicated by colour: blue means the oven is not yet ready, green means it is inside the target window, and red means it is too hot. The display does not blink. From a distance you cannot read the digits, but you can immediately see the colour. When a bake timer is active, it appears on the right side with a progress bar and does not push out either temperature, because the floor temperature is the most critical value during baking. When the temperature falls below 50 °C, the display switches to a second screen that shows the time, ambient temperature, and humidity. Brightness can be adjusted via the base unit's web UI or through Home Assistant. The link is a UDP broadcast from the base unit every 2 seconds. The display only listens and does not accept commands. To support this, the base unit keeps its own hotspot running all the time, which also serves the phone at the oven when no router is available in the garden. Every 30 seconds the display sends a heartbeat back so the base unit knows it is running and receiving packets. The ambient sensor (SHT31) is mounted on the display, not on the base unit. If it were inside a closed case, it would measure the temperature inside the box, which would not allow a cooling prediction to be made. The sensor reading is sent back to the base unit along with the heartbeat. A battery-backed clock (DS3231) on the display maintains the time even when the base unit is not transmitting. 10 baking programs (Pizza Napoletana, classic pizza, tarte flambée, bread loading, bread finishing, rolls/brioche, cake, roasting/braising, plum butter, drying) have target windows for dome and floor that follow the natural cooling curve of a wood-fired oven. One firing can cover several programs in a row. The suggested bake time adjusts to the current oven temperature and improves based on the measured times from the third bake onward. Because the floor probe is embedded in the brick, it records a low temperature while the fire is active: as heat moves downward, the surface can be an estimated 20 to over 80 K warmer depending on the fire. When the floor temperature rises rapidly, the web UI, the remote display, and Home Assistant display the message "baking surface hotter than shown." This is intentionally a hint, not a correction, because the discrepancy varies with the fire and vanishes once the oven is cleared. The web UI displays all values in real time via WebSocket, along with settings, recordings, self-test, and logbook. Every firing above 60 °C is stored as a CSV file on the internal file system, and an analysis page plots it as a curve. Home Assistant receives the dome, floor, ambient, humidity, program selection, ready state, floor hint, and the remote display's state through MQTT auto-discovery, including a last-will message. Using the ambient temperature and the cooling curve, the base unit calculates a Newton prediction for when the oven will reach 200 °C and 100 °C, as well as the dew point. Status September 2026: the base unit and remote display are operating at the oven, most recently during a baking day with bread and crumble cake, reaching a 638 °C peak in the dome. The remaining task is to move the floor windows onto the probe's scale over the coming baking days.

Safety note: The electronics are a measuring aid without any safety function and do not replace keeping an eye on the fire. Only run power supplies in the garden with suitable protection against moisture and on a socket with an RCD; route probe cables at the oven with heat-resistant material. Rebuilds at your own risk. This description is a personal documentation, not a verified build guide, and the values given are experience-based estimates without any guarantee. Details under Disclaimer (German).
Want something like this built?
Smaller projects along these lines are available as the "Custom ESP32 Firmware" package from 239€. A project of this size I quote individually, just get in touch.
I deliver software only (firmware, configuration, code) — no assembled hardware. The components used are only linked for reference, you buy them yourself. Enclosures on request.

Features

  • 2 K-type sheathed thermocouples (dome and floor) via a MAX31856 each, with a per-channel fault register for open probe and short circuit
  • Split into a base unit that measures, calculates and records, and a remote display that only shows the data
  • LED matrix remote display 64×32 (HUB75, 160×80 mm): both temperatures in large digits, state as colour, no blinking
  • Bake timer with a progress bar on the display, without pushing out either temperature
  • Second screen when the oven is cold: time, ambient temperature, humidity, link state
  • The base unit broadcasts UDP packets every 2 seconds, operates its own hotspot, and receives a heartbeat from the display back to the base unit
  • Display brightness can be adjusted through the web UI and Home Assistant
  • Live web interface via WebSocket with chart, settings, recordings, self-test and logbook
  • 10 baking programs with target windows for dome and floor, learning bake-time timer
  • Floor hint: "baking surface hotter than shown" when the floor reading rises quickly
  • Newton cooling prediction and dew point, ambient sensor on the display instead of inside the case
  • Session logger: CSV file of every firing above 60 °C, including a timer column, with an analysis page on the device
  • Home Assistant integration using MQTT auto-discovery, bidirectional, with last will
  • Up to four Wi-Fi networks can be stored, a captive portal is supported, and OTA updates include rollback capability
  • Oven math presented as a hardware-free C component with PC tests

Techstack

Hardware
  • Base unit: ESP32-S3 DevKitC-1 N16R8 (16 MB flash, 8 MB PSRAM)
  • 2× MAX31856 K-type breakout
  • 2× K-type sheathed TC Inconel 600 (Ø3 mm)
  • Display: Raspberry Pi Pico 2 W (RP2350)
  • Waveshare RGB matrix P2.5 64×32 (HUB75, 1/16 scan)
  • SHT31 T/RH + DS3231 RTC on the display
  • Separate 5 V power supply for the panel
Software
  • Base unit: ESP-IDF 5.5
  • esp_http_server + WebSocket, Chart.js in flash
  • MQTT with last will
  • LittleFS + NVS
  • Oven core in C with PC tests
  • Display: PlatformIO / Arduino (RP2350)
  • Adafruit Protomatter (HUB75)
  • ArduinoJson
Integration
  • Home Assistant MQTT discovery
  • UDP broadcast base unit → display
  • Captive portal
  • OTA with rollback (backofen-basis.local)

Screenshots

Baking day with the base unit and remote display: bread coming out of the oven
Image coming soon
Baking day with the base unit and remote display: bread coming out of the oven
Remote display: dome and floor in red, too hot for the chosen program, the timer running on the right
Image coming soon
Remote display: dome and floor in red, too hot for the chosen program, the timer running on the right
Remote display: both zones are green inside the target window, and the bar indicates the elapsed bake time
Image coming soon
Remote display: both zones are green inside the target window, and the bar indicates the elapsed bake time
Base unit web UI in the afternoon: program, bake-time suggestion, dome, floor, history, cooling prediction
Image coming soon
Base unit web UI in the afternoon: program, bake-time suggestion, dome, floor, history, cooling prediction
Home Assistant: dome and floor, floor hint, cooling prediction and the baking day in the 24-hour history
Image coming soon
Home Assistant: dome and floor, floor hint, cooling prediction and the baking day in the 24-hour history
The outcome of the bread round
Image coming soon
The outcome of the bread round
Two crumble cakes in the lingering heat
Image coming soon
Two crumble cakes in the lingering heat
The cake comes out
Image coming soon
The cake comes out
Crumble cake cut open, the base baked through and not burnt
Image coming soon
Crumble cake cut open, the base baked through and not burnt
First version (ESP32-S3 with touch display) in action
First version: dome oven with touch display on the control panel
Image coming soon
First version: dome oven with touch display on the control panel
First version: main page of the 2.8" display
Image coming soon
First version: main page of the 2.8" display
First version: web UI with live chart
Image coming soon
First version: web UI with live chart
First version: enclosure front panel with GAFUBI lettering (multi-colour FDM print)
Image coming soon
First version: enclosure front panel with GAFUBI lettering (multi-colour FDM print)
First version: internals with ESP32-S3 and thermocouple boards
Image coming soon
First version: internals with ESP32-S3 and thermocouple boards
The fireclay dome oven in the garden (construction phase)
Image coming soon
The fireclay dome oven in the garden (construction phase)

More about this project

Blog post · 2026-09-23
Wood-Fired Oven: The Controller Gives Up Its Display and Gets an LED Matrix
My oven controller had a display that nobody could read while working at the oven. Now a base unit in a closed case does the measuring, and a 64×32 LED matrix shows the temperatures as colour. Plus a burnt pizza that led to a hint instead of a correction value, a baking day with bread and cake, and a CSV that contains nothing but its header.
Blog post · 2026-05-02
Control Electronics for Wood-Fired Ovens: ESP32-S3, Touch Display and Clone MAX31855s I Had to Talk Into Working
How I developed a WiFi controller for direct-fired wood-fired ovens — ESP32-S3, two K-type thermocouples in dome and floor, 2.8" touch display and a web UI with live chart. Plus the story of why the cheap MAX31855 clones need a custom SPI routine before they produce usable readings.