Skip to content

Repository files navigation

Brewing Station

Build brewingstation3 License: MIT PlatformIO Framework: Arduino

Firmware, hardware, and PCB design for a DIY automated beer brewing controller. An ESP32-based device reads mash temperature from multiple sensors, drives a GGM IDS2 induction cooktop through PID control, and integrates with CraftBeerPi via MQTT.

This repo tracks the project's evolution across several hardware/firmware generations.

Credit: the GGM IDS2 induction cooktop's RS232/serial protocol — pulse timings, command frames, power levels, and error codes — was reverse-engineered by InnuendoPi in MQTTDevice2. Every generation in this repo builds on that work.

Own projects (in order of development)

Folder Status Board Build system Notes
brewingstation V1 ESP32 (DOIT ESP32 DEVKIT V1) Arduino IDE (.ino) or PlatformIO One firmware, two hardware variants: breadboard and fabricated PCB. Documented in its own README.
brewingstation3 WIP ESP32-C6-WROOM-1U PlatformIO Full rewrite: PID mash control, multi-sensor support, safety shutdowns, brew timer, KiCad schematic, 3D-printable case. See README, HARDWARE.md, BOM.md, CASE.md.

brewingstation carries a platformio.ini (src_dir = .) alongside its .ino, so both PlatformIO and the Arduino IDE build from the same source file — pick whichever toolchain you prefer.

All generations share the same core idea: control the GGM IDS2 induction cooktop over its proprietary serial protocol, read temperature from DS18B20/PT100/PT1000/BME sensors, drive a couple of OLED displays and status LEDs, and talk to CraftBeerPi over MQTT.

brewingstation3 is where active development happens; the earlier folders are kept as historical/reference hardware revisions. It is work in progress: firmware compiles but is not yet proven on real hardware — the PCB hasn't been soldered/assembled, nothing has been tested end-to-end, and the 3D-printable case hasn't been printed.

Getting started

Each own-project folder is self-contained with its own README and config. In general:

  1. Pick a generation — brewingstation3 for new builds, the earlier folders for reference or repairing existing hardware.
  2. Copy config_example.h (or include/config_example.h for brewingstation3) to config.h and fill in your MQTT/OTA settings (brewingstation3 also provisions WiFi separately, via a WiFiManager captive portal on first boot — see its README). config.h is gitignored — never commit real credentials.
  3. Build with PlatformIO (pio run) or open the .ino directly in the Arduino IDE — see that folder's README for board-specific notes.

The whole repo can also be opened as a single VS Code workspace via brewingstation.code-workspace.

Testing

brewingstation3 has a native unit test suite for its hardware-independent logic (calibration math, button-ladder mapping, induction error codes) — runs on the host, no ESP32 toolchain or device required:

cd brewingstation3
pio test -e native

CI runs both the firmware build and this test suite on every push — see the badge above or .github/workflows/build-brewingstation3.yml.

License

MIT — see LICENSE for the full text.

About

Automate your brew day: ESP32 + induction cooktop + PID control, talking MQTT to CraftBeerPi.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages