The Backstory

At the end of high school, with college still a few months away, my best friend Janis Ax and I found ourselves with about three months of free time. After some traveling, we decided to take on a technical challenge to apply and expand on what we had learned during our high school hardware experiments. That’s when the idea emerged: building a fully automated cocktail machine capable of preparing drinks from start to finish.

We took inspiration from appliances like the Thermomix, which guide users step-by-step through recipes. In our design, the system would suggest drinks based on the bottles that were loaded. After the user selected a recipe, the machine would dispense the required liquids and pause whenever manual actions—such as shaking, stirring, or adding garnishes—were necessary. While the system automated dispensing, certain preparation steps still required user involvement.

Building the Machine

Of course, as two fresh high school graduates, our biggest constraint was money. This forced us into some very creative — and sometimes questionable — engineering decisions. To avoid the expense of multiple pumps, we designed the machine so that all bottles were mounted above the dispensing station. Gravity did the heavy lifting, and we used small servo motors attached to medical valves to control the flow of each liquid. The valves connected to spirit pourers using food-grade silicone tubing, all leading down into a central dispensing point where the glass was positioned (see first image below).

One major challenge was accurately measuring the liquid. Since we didn’t include a scale, we tried calibrating each valve through software. Unfortunately, this led to wildly inconsistent cocktail results, with some drinks ending up far too strong or far too weak — but at the time, that only made the taste tests more entertaining.

Without access to a 3D printer, we hand-built the servo-controlled valves using basic woodworking tools. For the machine’s housing, my father assisted us with construction. The machine featured a touchscreen interface powered by a Raspberry Pi, running custom software I developed in Java using JavaFX for the graphical interface. The Raspberry Pi communicated with an Arduino Mega via UART, which managed the servo motors and controlled valve operation.

The Software

The software stack was divided between the Raspberry Pi and the Arduino Mega. The Raspberry Pi managed the graphical user interface, recipe logic, inventory tracking, and calibration management. The Arduino handled real-time motor control, receiving instructions from the Pi via a lightweight custom serial protocol over UART.

The GUI, written in JavaFX, provided a simple and intuitive interface. It included drink selection menus, ingredient availability, valve calibration settings, and real-time system statistics. This interface was not only helpful for operating the machine but also made debugging and demonstrations much easier.

The Website

After completing the cocktail machine, we wanted to showcase it to friends, classmates, and anyone curious about the project. To do this, we created a simple website built with HTML, CSS, and a small amount of JavaScript. The site was primarily optimized for desktop browsers, though it included some basic mobile support. While the original site is no longer live, I have archived a copy here (for your own entertainment 😉): Cocktail Maker Website.

Conclusion

This project was not only a valuable technical learning experience but also a great deal of fun. One of the most rewarding aspects was receiving questions from friends about how the machine worked, how it was built, and how the software functioned.

A key takeaway was the importance of using the right components from the start. While working within a limited budget drove much of our creativity, we realized that investing in proper hardware early on can ultimately save time, improve reliability, and simplify development.

wireframe