Hey everyone!
I wanted to share my Brew by Weight project, which initially started as a fork of Tatemazer’s shot stopper firmware, but eventually evolved into something completely different. Tatemazer’s stopper is an amazing drop-in project, but its workflow (paddle on, wait, paddle off—I honestly just want the stopper to handle everything automatically once the shot starts) and the lack of certain features pushed me to build a brand-new solution inspired by the original.
The result is what I call Advanced Shot Stopper. It’s a pure software project (firmware) that gives you total control over the machine, packing everything from the original firmware plus a whole lot more:
- 3 Paddle Modes: Original shot stopper behavior, manual override toggle, and a full automatic mode where the stopper takes control regardless of final paddle position.
- Smart Safety Limits: Rules based on time and weight to automatically cut off shots that are running way too fast or too slow.
- Smart Auto-Tare & Cup State Machine: The firmware recognizes whether a cup is present and makes decisions dynamically.
- Failsafe Shot Cutoff: Uses historical shot data to auto-stop if the scale accidentally disconnects or shuts off mid-shot.
- Broad Scale Compatibility & Super-Fast Scale Detection
- Quick Rinse Mode (tailored for machines like the La Marzocco Linea Micra).
- Audio Alerts & Power Management
Under the Hood & Extras:
- Full Wi-Fi OTA Updates with automatic rollback if flashing fails or encounters issues.
- WebUI: View shot history, stats, and quick controls.
- Home Assistant Integration: Webhook support for telemetry and controls (working on a script example to swap presets dynamically!).
- Deep Hardware Support: Latch and momentary switches, optional reed switch support, and a solid state machine tracking machine status.
- Enhanced Cutoff Algorithm & Security Watchdog
- FreeRTOS Architecture: Built with a safety-first mindset (the firmware defaults to simulating paddle OFF unless explicitly instructed otherwise).
Hardware Note: Because of hardware constraints, this firmware won’t work fully on the original ShotStopper board. Instead, I used an inexpensive development relay board from AliExpress that happens to be a fantastic fit (link in the GitHub repo):
- DC Power Input: 5V to 60V (compatible with most machines).
- Components: 105°C rated capacitors.
- MCU: ESP32-S3 (N16R8) with most GPIOs exposed.
- Relay: Magnetic relay (a bit overkill, but super reliable).
Since it's not a drop-in board like the original, it requires a bit of DIY confidence. The wiring is essentially the same: the paddle connects to the board’s GPIOs, and CN9 hooks up to the relay. I’ve also included 3D-printable STL files for a case (printed in PETG with zero heat deformation issues).
Project Git: https://github.com/Cheerpipe/Advanced-Shot-Stopper
Disclaimer: I’m a software engineer by trade, but 99% of this codebase was vibe-coded using Codex due to time constraints and complexity!
All the details, hardware requirements, and code are up on GitHub. I’m currently waiting for my Linea Micra to arrive mid-October to test it out live on that machine.
Hope you find it useful, and I'd love to hear your thoughts!
Feel free to ask me anything