Espresso controller
A custom ESP32-S3 board driving a 4-inch display, with an I2C expander for the slow stuff.
Status: active
As someone who has ‘completed alcohol’ and built a whole brewery during the time it took to speedrun that completion, it’s no surprise that I couldn’t just leave my enjoyment of coffee at the odd trip to a good shop.
I progressed through various great brewing methods, like the AeroPress and V60 style pourovers, and eventually picked up a used Rancilio Silvia espresso machine. I was terrible at brewing coffee, with inconsistencies everywhere, so of course tinkering had to ensue to get me to a consistent cup…
I started with the great CleverCoffee build, and that’s great, but I wanted more possibility on the screen, so a Rust project was born…
The board
An ESP32-S3 drives a 4” SPI panel (ST7796S). An MCP23017 I2C GPIO expander handles the slow peripherals so the fast pins stay free.
The bodge
GPIO46 turned out to be input-only, which the first revision needed as an output. A bodge wire fixed it. GPIO45 checked out as safe for the display’s data/command line.
Current status
Sat ‘mostly complete’. It all works on the bench, but I need to integrate it into the machine. The problem with that is… well, I won’t have the ability to get coffee made in the meantime.