u/Mooferman05

Image 1 — I turned a $60 espresso machine into a self-hosted web app with an ESP32
Image 2 — I turned a $60 espresso machine into a self-hosted web app with an ESP32
Image 3 — I turned a $60 espresso machine into a self-hosted web app with an ESP32
▲ 121 r/esp32projects+1 crossposts

I turned a $60 espresso machine into a self-hosted web app with an ESP32

three weeks ago id never soldered anything. now i have a Tru espresso machine that holds boiler temp at ±0.5°C, hosts its own web UI at frank.local, and switches between brew and steam modes from my phone.

i call him Frank (Frankenstein) because his guts are everywhere and he's held together by hope.

what's inside:

- ESP32 running a custom PID control loop

- K-type thermocouple + MAX31855 amp clamped to the boiler

- 40A SSR replacing the original bimetal thermostat (which was swinging ±15°C around target)

- SSD1306 OLED with a custom startup animation (Frank opens his eyes, blinks, then a "FRANK IS AWAKENING" loading bar)

- ESPAsyncWebServer hosting a control panel at frank.local

- separate PID tunings for brew (gentle, accurate) vs steam (aggressive, recovers fast)

biggest gotcha: the original control board kept overriding my SSR until i traced the circuit and realized the board was the upstream controller. tapped mains directly, let the ESP32 take full control of the heater, and now the original board just handles the pump and front buttons.

questions for the community:

- any tips for tuning steam mode PID on a low-thermal-mass thermoblock? recovery is faster now but still slower than i'd like

- thinking about adding a TRIAC dimmer for pressure profiling next, has anyone done this on a vibratory pump?

happy to share the firmware if anyone wants to do something similar.
Also check out the repo! -> https://github.com/mufferio/esp32-espresso-mod

u/Mooferman05 — 4 days ago

Frank (Frankenstein) the espresso machine Intro

Hello r/espresso community! I would like to introduce everyone too...

Frank (Frankenstein) the espresso machine!

he's a $60 tru espresso machine i frankensteined into holding temp at ±0.5°C

he can also switch from brew to steam in under a minute now, which the stock machine could never dream of doing.

The Build:

- ESP32 running PID control on a K-type thermocouple clamped to the boiler

- SSR replacing the original bimetal thermostat (which was swinging ±15°C around target)

- OLED display showing live temp, target, power output, mode

- self-hosted web UI at frank.local for adjusting target temp and toggling steam mode from my phone

- "milk drink mode" that auto-switches to steam after an espresso shot ends (faster workflow)

the trickiest part was that the original control board kept overriding my SSR until i tapped mains directly and let the ESP32 take full control of the heater. now the stock board just handles the pump and front panel buttons.

three weeks ago i'd never soldered anything (now I have and I hate it). I also learned a lot about why mains voltage deserves respect.

next up i think frank needs a bigger body, as you can see his guts are spilling out everywhere.

It'll help make room inside for the internals and even more space for future upgrades (pressure profiling and a 3-way solenoid valve are on the list).

if anyone has done a custom enclosure mod for a budget machine i'd love to see it.

And more importantly, give frank a small hello!

u/Mooferman05 — 6 days ago