Hi everyone,
A few years ago, during COVID, I built my very first automatic bottle filling machine:
Watch the video
How it works:
V1 Hardware setup:
Limitations of V1:
It worked as a proof of concept, but there were some issues. For unknown reasons, the ESP32 sometimes rebooted… and of course, it often happened while the pump was running!
Plans for 2025 (V2):
V1 already had a table scale mode and a tare calibration function, with tare values stored in the ESP32 EEPROM.
V2 – Current status:
I’m now working with an M5Stack Basic 2.7 module, which integrates a screen, three buttons, and an ESP32-S3.
See my first tests
Upgrades include:
A few years ago, during COVID, I built my very first automatic bottle filling machine:
Watch the video
How it works:
- Place an empty bottle on the scale.
- The machine measures its weight to identify the type of bottle (33 cl, 50 cl, or 75 cl) and calculate how much beer to pour.
- The pump starts and constantly monitors the weight.
- When the target weight is reached, the pump stops.
- Remove the bottle → back to step 1.
V1 Hardware setup:
- ESP32 – the brain of the machine
- LCD screen
- Rotary encoder with push button
- On/Off switch
- Load cell + HX711 for weight measurement
- Electric pump + MOSFET board for control
- Tubing + 3D-printed parts (basic, just for the prototype)
- AC/DC converter
Limitations of V1:
It worked as a proof of concept, but there were some issues. For unknown reasons, the ESP32 sometimes rebooted… and of course, it often happened while the pump was running!
Plans for 2025 (V2):
- Rewrite most of the code and make the design open source
- Improve the hardware for better reliability
- Test a two-bottle filling system
- Add a beer density parameter for more precise filling
V1 already had a table scale mode and a tare calibration function, with tare values stored in the ESP32 EEPROM.
V2 – Current status:
I’m now working with an M5Stack Basic 2.7 module, which integrates a screen, three buttons, and an ESP32-S3.
See my first tests
Upgrades include:
- Adafruit NAU7802 (24-bit ADC) for more stable and faster weight readings
- FreeRTOS for real-time task management