Alexandre Gravelle, Trevor St-Jean, Jean Sébastien Loiselle, Department of Mechanical Engineering, University of Ottawa

Objective:  To create an automated beer pouring machine that can:

Pour beer from a bottle to a glass with limited foam

Remove cap from bottle

And prevent spills caused by beer over flow


Arduino Duemilanove

Electrical wires



Metal plates


Light sensor

3 hacked servo motors

1 finger clamp

6 resistors (2.7kΩ)

 Project development:

In order for our system to pour beer into a glass, we decided to use a swing set type arrangement. The image below demonstrates our first step in building our structure.

To effectively hold the bottle, we needed a simple mechanism that could accommodate multiple types of bottles. The mechanism itself is shown in the image below. Also we added supports on each side to be able to produce the swinging motion required.

We installed a horizontal piece of wood with an opening and a strap to have the glass in the right position for our system to properly function. The reason for this piece of wood is to always have the top of the glass at the same position regardless of its geometry, the opening itself simply permits the beer from entering the glass. The strap was installed to ensure that the glass was in position to prevent spills during operation.

We used a  3 finger clamp as seen below to hold different types of glasses regardless of their geometry.

When we first ordered our servo motors, we didn’t realise that servo motors could only do 180 degrees in general. Hence this was a very large problem for our system since these motors have very limited torque. As a solution to our limitations in torque we decided to hack our motors for continuous rotation and use pulley systems as shown below.

Since our project consists of several sequential procedures, we decided to use an arduino duemilanove so that we could synchronize our system.

As mentioned earlier, it was required that our servo motors be hacked to have continuous rotation.  Here is how to do so:

After having hacked a servo motor, we come across several problems. For one, hacked servo motors cannot be processed using angles and secondly they cannot recognize their current position since the potentiometer has been removed. Hacked servo motors can only be controlled by speed and direction of rotation. In order to properly use these motors, we need to find the proper stop angles, or more precisely ‘stop signal’ for each motor. To do so, we created a small program to help us find it as seen below.

Stop signals are usually found around 90 however trial and error is required since not all resistors are perfect.

What is left to do:

Integrate light sensor

Install cap removal system