Building

HaloBar Hardware Build

The physical build of the automated bartender. Pump systems, electronics, enclosure design, and hardware/software integration.

ElectronicsIoT3D PrintingHardware

The Idea

MyHaloBar started as a nutrient dosing system for my brother-in-laws indoor grow houses. After working on this for a while and seeing it work, I realized the potential for using this same concept as an automated bartender.

The goal is a self-contained unit with peristaltic pumps, a microcontroller, and a clean enclosure that can sit on a countertop. You pick a drink in the app, and the hardware pours it. No bartender required.

AI-generated rendering of the HaloBar with cocktails

This image was generated by Google Gemini based on a text description of what I wanted the final product to look like. It's not perfect, but it captured the general idea.

The Stack

Software

  • ESP32 / Arduino: microcontroller for pump control
  • MQTT: communication with the app backend
  • AWS IoT Core: cloud-to-device messaging
  • Next.js app: frontend ordering interface

Hardware

  • 16 peristaltic pumps: food-safe liquid dispensing
  • Relay module: pump switching + sequencing
  • 12V power supply: drives pump motors
  • 3D-printed enclosure: OpenSCAD-based Gemini-designed housing

How It Started

Originally, this was completely built using Home Assistant as the brains of the operation. It handled pump calibration, stored the recipes, and served as the user interface. Functionally, it worked. I could select a drink and the pumps would fire in the right order for the right duration.

But the interface was terrible. Home Assistant is great for home automation, definitely not scalable. Another problem I had was trying to design an enclosure from scratch with no real CAD experience, and it showed.

16 peristaltic pumps wired and labeled on a test board

Where It Is Now

Fast forward to today and both of those problems are solved. The MyHaloBar app replaced Home Assistant entirely. The interface looks clean, the recipe management is proper, and the whole experience finally feels right. I even use a database driven prompt to grab the recipe from Google Gemini.

MyHaloBar app interface

In addition to using Gemini for the drink recipes, I also used it to solve the housing issue. I'd describe what I wanted (dimensions, hand drawings, etc.) and it would generate OpenSCAD code that I could 3D print. Iterate, adjust, reprint. It turned what was months of frustration into a much faster design loop.

OpenSCAD render of the HaloBar enclosure design 3D-printed HaloBar enclosure with pumps installed

The Build

The pump system uses 16 peristaltic pumps, one per ingredient. They're food-safe, self-priming, and volume is controlled by run duration. Each pump is wired through a relay module and driven by a 12V power supply. The microcontroller receives pour commands over MQTT via AWS IoT Core.

The dispensing nozzles are mounted on the front column in a 4x4 grid. Each one maps to a specific pump and ingredient. You place a glass underneath, order from the app, and the system sequences the pumps to build the drink.

16 dispensing nozzles arranged in a 4x4 grid on the HaloBar column

What's Next

  • Finalize pour calibration across different liquids
  • End-to-end integration with the MyHaloBar app
  • Final enclosure iteration and finish
  • Add a drip tray and overflow detection