Introduction: The Beer Opener and Pourer

For this project, the demand was to come up with an invention or a system that already has been invented, but which required some improvements. As some may know, Belgium is very popular for its beer. In this project, the invention that needed some improvements is a combined system which could start by opening a beer and then pour the beer in a suitable glass chosen by the customer. This invention is not very well known as it could be done more easily by hand by a "healthy" person than by a machine but is still very interesting for another category of people. Today, unfortunately, some of us are not able to do this. More explicitly, people with a severe arm or muscle problem, the elderly or people with a disease such as Parkinson, A.L.S., etc., are not able to do it. Thanks to this mechanism, they will be able to drink a well-served beer on their own without having to wait for someone to come and help them with these two tasks.

Our system is also dedicated to the simple consumer who wants to enjoy a beer alone of with his friends and enjoy the Belgian expertise. Serving a beer well is not for everyone and, indeed, our practice is internationally known and it is with pleasure that we share it with the whole world.


Main Components:

  • Arduino UNO (20.00 euros)
  • Step down Voltage converter: LM2596 (3.00 euros)
  • 10 2-Pin terminal blocks (6.50 euros total)
  • 2-Pin SPST ON/Off Switch (0.40 euros)
  • Capacitor of 47 micro Farad (0.40 euros)
  • Wood: MDF 3 mm and 6 mm
  • PLA-plastic
  • 3D-printing filament
  • 40 Bolts and nuts: M4 (0.19 euros each)
  • Linear actuator - Nema 17: 17LS19-1684E-300G (37.02 euros)
  • Sanyo Denki Hybrid Stepper Motor (58.02 euros)
  • 2 Stepper driver: DRV8825 (4.95 euros each)
  • 2 Button (1.00 euro each)
  • 3 Micro switches (2.25 euros each)
  • 5 Ball bearings ABEC-9 (0.75 euro each)

Software and Hardware:

  • Inventor from Autodesk (CAD-files)
  • 3D-printer
  • Laser cutter
  • Voltage supply of 24 Volts

Step 1: Wooden Construction

Wooden construction

For the configuration of the robot, an outer construction is used to provide stiffness and makethe robot robust. Firstly, the opening mechanismis completely surrounded by this structure to be able to add a bearing the top of the axisto make the mechanism stable. Furthermore, there is a plane at the bottom of the tower to mount the stepper motor. At the sides of the tower, holes have been provide to prevent the opener of rotating, such that he goes down right to the capsule to open the bottle. In the side planes, there are also holes to attach a holder to block the opener to fall completely down. Secondly, an extra plane is provided behind the tower of the opening mechanism to mount the motor and the transmission of the pouring mechanism.

At the bottom of the glass holder, a plane is provided to support the glass when it comes down. This is necessary, as the glass has been lifted up to create the ideal space between the top of the bottle and the top of the glass. In this plane, a hole has been provided to place a micro switch as end effector. Also holes were provided inthe wooden planes in order to have a clean wiring of the sensors and motors. Additionally some holes were provided in the bottom plane of the wooden construction in order to level the height of the bottles in the opening mechanism and provide some spaces for the lateral wooden pieces of the pouring mechanism as well as a space for the bolts on the bottom of the bottle holder in the pouring mechanism.

Puzzle mechanism

An example of the assembling method has been added in the pictures of this stage. It gives a view of the puzzle mechanism and the provided holes to assemble the planes with each other.

Step 2: Opening Mechanism

This model is composed of one bottle opener (which also makes can opener, for the top rounded part), one huge trapezoidal metal bar, one opener holder (wood plate with 2 small hinges through which a small metal bar passes), one gripper for the bottle opener and one ball screw. On the metal bar (coupled to a motor), the opener holder is above the ball screw. Thanks to the rotation of the metal bar, created by the motor, the ball screw can go up and down, driving with them the movement of the opener holder with the opener attached to it. The small metal bar wedged between 4 columns prevents the rotation of the opener holder. At both extremities of the small bar, two "blockers" are placed. That way, the small bar cannot move horizontally. In the beginning, the opener is held stuck against the bottle. The opener goes up and glides over the bottle (thanks to its rounded part) until the hole of the opener is stuck by the can of the bottle. At this point, a torque will be applied by the opener to open the bottle.

  1. Big hinge (1 piece)
  2. Wood plate (1 piece)
  3. Small bar blocker (2 pieces)
  4. Small metal bar (1 piece)
  5. Small hinge (2 pieces)
  6. Opener (1 piece)
  7. Bearing (1 piece)
  8. Opener blocker (1 piece)
  9. Motor + trapezoidal bar + ball screw (1 piece)

Step 3: Balance Mechanism

Pouring balance system

This system consists of a balance system which at each side has a bottle holder system and a glass holder system. And at the middle there is an assembly system to attach it to the axis.

1. Bottle holder

The design of the bottle holder consists of 5 big plates that are attached to the sides of the balancing system with a puzzle configuration, and there is also a sixth plate at the bottom, attached with M3 bolts to hold the Jupiler bear, so it doesn’t go trough. The assembly to the lateral wood plates also is helped with a bolt plus nut configuration, 4 for each wood plate (2 at each side).

There is also implemented a bottle neck holder to grip the top of the bottle, this piece is attached to axis assemble system, explained later.

In addition, there are implemented 10 3D printed cylinders trough the assembly, to add stiffens to the structure. The bolts that go through these cylinders are M4 and with its respective nuts.

Lastly, we implemented two switch sensors to detect the bottle that is inside the holder, in order to do that we used a 3D printed body holder that is attached to the wood plates under and above it.

2. Glass holder

The design of the glass holder is formed by 2 wood plates attached the same way as the bottle holder plates. There are also 5 3D printed cylinders to add stiffness. To support the bottom of the Jupiler glass, there is semi cylinder piece where the glass leans on. This I attached through 3 arms that assemble with M4 bolts.

To support the top parts of the glasses, there are implemented two pieces, one for the top of the glass, so when turning the balancing system it doesn’t fall and an other one that holds the lateral part of the glass.

3. Axis assemble system

It was required a system to attach the balance system to the rotating axis. We used a configuration where longitudinal bars (a total of 4) are press to each other with M4 bolts and nuts. And through this bars there are 10 3D printed pieces that have a slightly bigger diameter of the axis. To increase the grip there are two longitudinal rubber strips between the axis and the 3D printed pieces.

4. Balance wood plates

There are 2 lateral wood plates that hold all the holders in it and they are attached to the axis through the axis system explained above.


The balance system explained relays on the motion of the axis, it is a metal bar of 8mm which is mounted in the structure with the help of 3 bearings and its corresponding bearing holders.

In order to achieve sufficient torque to perform the rotating motion of the pouring, a belt transmission is used. For the small metal pulley, a pulley with a pitch diameter of 12.8 mm has been used. The big pulley has been 3d-printed to reach the required ratio. Just like the metal pulley, there has been provided an extra part to the pulley in order to attach it to the rotating axis. In order to apply tension on the belt, an external bearing is used on a movable tension applier to create different amounts of tension inside the belt.

Step 4: Electronics and Arduino Code

For the electronics components, it is advised to look at the requirement list again and see what the kinematics of this system should be. The first requirement that our systems have, is the vertical movement of the opener. Another requirement is the force that needs to be applied on the arm to detach the bottle cap. This force is around 14 N. For the pouring part, the calculations are solved through Matlab and resulted in a maximum torque of 1.7Nm. The last requirement that has been noted, is the user-friendliness of the system. Therefore the use of a starting button will come in handy for initiating the mechanism. In this chapter, the separate parts will be chosen and explained. At the end of the chapter, the entire breadboard design will also be represented.

The Opening Mechanism

To start off, the opening system is required to open a bottle of beer. As already been said in the introduction of this chapter the torque necessary to detach the bottle cap from the bottle is 1,4 Nm. The force that will be applied on the arm of the opener is 14 N if the arm is around 10 cm. This force is created by a friction force created by turning a thread through a nut. By holding the nut stuck in its rotational movement the only way the nut can now move is up and down. For this, torque is required to make sure the nut can move up and down and with that, a force of 14 N also needs to come forth. This torque can be calculated by the formula below. This formula describes the required torque to move an object up and down with a certain amount of torque. The torque needed is 1.4 Nm. This shall be the minimum torque requirement for the motor. The next step is to look for what kind of motor would be the most fitted in this situation. The opener turns a big amount of revolutions and looking at the torque which is needed, a good idea is to pick a servomotor. The advantage of a servomotor is that it has a high torque and moderate speed. The problem here is that a servomotor has a certain range, less than a full revolution. A solution would be that the servomotor could be 'hacked', this results in that the servomotor has a fully 360° rotation and also keeps rotating. Now, once the servomotor is 'hacked' it is nearly impossible to undo those actions and make it normal again. This results that the servomotor can not be reused in other projects later on. A better solution is that the choice better goes to a stepper motor. These kinds of motors might not be the ones with the most torques but it rotates in a controlled way in contrast to a DC-motor. A problem that is found here is the price to torque ratio. This problem can be solved by using a gearbox. With this solution, the speed of the rotation of the thread will be lowered but the torque will be higher with reference to the gear ratios. Another advantage of using a stepper motor in this project is that the stepper motor can be reused afterward for other projects of next years. The disadvantage of a stepper motor with a gearbox is the resulting speed which is not that high. Keeping in mind that the system requires a linear actuator in which this is avoided by the nut and thread mechanism which will make it slower as well. Therefore the choice went to a stepper motor without a gearbox and immediately connected by a thread with a smooth nut included.

For this project, a good stepper motor for the application is the Nema 17 with a torque of 44 Ncm and a price of 32 euros. This stepper motor is, as already spoken of, combined with a thread and a nut. To control the stepper motor the use of an H-bridge or stepper motor driver is used. An H-bridge has the advantages of receiving two signals from the Arduino console, and with the help of an external DC-voltage supply, the H-bridge may transform low voltage signals to higher voltages of 24 Volt to supply the stepper motor. Because of this, the stepper motor can be easily controlled by the Arduino through programming. The program can be found in the Appendix. The two signals coming from the Arduino are two digital signals, one is responsible for the direction of the rotation and the other is a PWM signal which determines the speed. The driver used in this project for the pouring mechanism and the opening mechanism is a 'step stick DRV8825 driver' which is able to convert PWM signals from the Arduino to voltages from 8.2 V to 45 V and costs around 5 euros each. Another idea to keep in mind is the place of the opener with reference to the bottle opening. To simplify the programming part the bottle holder is made in such a way that both types of beer bottle openings are on the same height. Because of this the opener and indirect the stepper motor which is connected through the thread, can now be programmed for both bottles for the same height. In that way, a sensor to detect the height of the bottle is not necessary here.

The pouring mechanism

As already indicated in the introduction of this chapter the required torque needed to tilt the balancing system is 1.7 Nm. The torque is calculated through Matlab by setting up a formula for the torque balance in function of the variable angle in which the glass and bottle rotate over. This is done so that the maximum torque can be calculated. For the motor in this application, the better type would be a servomotor. The reason for this is because of its high torque to price ratio. As said in the previous paragraph of the opening mechanism, a servomotor has a certain range in which it can rotate. A minor problem that can be solved is its rotating speed. The rotation speed of a servomotor is higher than needed. The first solution that can be found for this problem is to add a gearbox in which the torque will be improved and the speed gets decreased. A problem that comes with this solution is that due to the gearbox the range of the servomotor decreases as well. This decrease results in that the Balancing system won't be able to rotate its 135° rotation. This could be solved by again 'hacking' the servomotor, but that would result in the irreusability of the servomotor which is already explained in the previous paragraph 'The opening mechanism'. The other solution for its high rotational speed lies more in the working of a servo motor. The servo motor is fed through a tension of 9 Volt and is controlled by the Arduino console through a PWM-signal. This PWM-signal gives a signal with what the desired angle of the servomotor needs to be. By taking small steps in changing the angle, the rotation speed of the servomotor can be lowered. However this solution seems promising, a stepper motor with a gearbox or belt transmission can do the same. Here the torque coming from the stepper motor needs to be higher while the speed needs to be reduced. For this, the application of a belt transmission is used as there is no backlash for this type of transmission. This transmission has the advantage of being flexible with respect to a gearbox, where both axes can be placed where ever one wants it to be as long as the belt has tension on it. This tension is necessary for the grip on both pulleys so that the transmission does not lose energy by slipping on the pulleys. The ratio of the transmission has been chosen with some margin in order to cancel out unintentional problems that were not taken into account. At the shaft of the stepper motor, a pulley with a pitch diameter of 12.8 mm has been selected. In order to realize the margin for the torque a pulley with a pitch diameter of 61.35 mm has been chosen. This results in a reduction of the speed of 1/4.8 and thus an increased torque of 2.4 Nm. These results were achieved without taking any transmission efficiency into account as not all specifications of the t2.5 belt were known. To provide a better transmission an external pulley is added to increase the contact angle with the smallest pulley and increase the tension inside the belt.

Other electronic parts

The other parts present in this design are three micro switches and two starting buttons. The last two buttons speak for themselves and will be used for initiating the process of opening the beer while the other starts the pouring mechanism. After the pouring system is been initiated this button will not be useful till the end. At the end of the process, the button can be pressed again and this will make sure that the pouring part can be brought back to its initial state. The three micro switches are used as sensors to detect the two kinds of beer bottles and on the other side the glass bottle when the pouring system reaches its final position. Here the buttons that are used cost around 1 euro each and the micro switches are 2.95 euros each.

To power, the Arduino the need for an external voltage supply is needed. Therefore a voltage regulator is used. This is an LM2596 step-down switching regulator which makes it possible to convert a voltage from 24 V to 7.5 V. This 7.5 V will be used to power the Arduino so that no computer will be used in the process.
The datasheet was also checked for the current that is provided or can be provided. The maximal current is 3 A.

The design for the electronics

In this section, the setup for the electronics will be taken care of. Here, on the breadboard figure, the layout or design is shown. The best way to start here is to go from the voltage supply present in the bottom right corner and going to the Arduino and the subsystems. As can be seen in the figure the first thing that is on the path between the voltage supply and the breadboard is a manual switch added to that anything can be powered instantly by a flick of a switch. Afterward, a capacitor is placed of 47 micro Farad. This capacitor is not mandatory due to the use of a voltage supply and its characteristic to immediately give the required current which is with other supply models not sometimes the case. To the left of the capacitors, two LM2596 drivers (Not the same visuals but the same setup) are placed for controlling the stepper motor. The last thing that is connected to the 24 V circuit is the voltage regulator. This is presented in this figure by the dark blue square. Its inputs are the ground and the 24 V, its outputs are 7.5 V and the ground which is connected with the ground of the 24 V input. The output or the 7.5 V from the voltage regulator is then connected with the Vin from the Arduino console. The Arduino is then powered and able to deliver a 5 V voltage. This 5 V voltage is sent to the 3 micro switches represented by the buttons on the left side. These have the same setup as buttons which two of which are placed in the middle. In case the button or switch is pressed in a voltage of 5V is sent to the Arduino console. In case the sensors or buttons are not pressed in the ground and the Arduino input is linked with each other which would represent a low input value. The last subsystems are the two stepper drivers. These are linked with the High voltage circuit of 24 V but also need to be connected with the 5 V of the Arduino. On the figure of the breadboard, a blue and green wire also can be seen, the blue wires are for a PWM-signal that regulates and set the speed of the steppe motor. The green wires set the direction in which the stepper motor requires to rotate.

In the second figure, the figure with the stepper driver, the connection of the Stepper motor drivers are shown. In here one can see that there are three connections M0, M1 and M2 are not connected. These decide how every step should be taken. In the way that it is set up right now, all three are connected to the ground by an inner resistance of 100 kilo Ohm. Putting all three inputs on low will create a full step with every PWM-pulse. Setting up all connections to High every PWM-pulse will result in 1/32 of a step. In this project the full step configuration is chosen, for future projects, this might come in handy in case of lowering the speed.

Step 5: Testing Out the System

The last step is to test the Mechanisms out and see if they actually work. Therefore the external voltage supply is connected with the High voltage circuit of the machine while the grounds are connected as well. As seen in the first two videos both stepper motors seem to be working but as soon as everything is connected with each other in the structure somewhere in our circuit a short circuit seems to happen. Because of the poor design choice of having a small space between the planes the debugging part is very difficult. Looking at the third video some issues were also present with the speed of the motor. The solution for this was to increase the delay in the program but as soon as the delay is too high the stepper motor seems to be vibrating.

Step 6: Tips and Tricks

For this part, we want to conclude some points which we learned through the making of this project. Here, tips and tricks on how to start manufacturing and how to solve minor issues will be explained. From starting with the assembly to making the entire design on a PCB.

Tips and tricks:


  • For 3D-printing, with the function live-adjustment on Prusa 3D-printers, One can adjust the distance between the nozzle and the printing bed.
  • As seen in our project, we tried to go for a structure with as much wood as possible as they are the fastest done by a laser cutter. In case of any broken parts, they can easily be replaced.
  • With 3D-printing, try to make your object as small as possible still having the mechanical properties it needs to have. In case of a failed print, you will not take so much time in reprinting again.


  • Before starting your project, start with searching for all datasheets of every component. This will take some time at the start but will make sure to be worth your time in the long run.
  • When making your PCB, make sure you got a scheme of the PCB with the entire circuit. A breadboard scheme could help but the transformation between both can sometimes be a little bit more difficult.
  • Working with electronics can sometimes start easy and develop itself complex quite fast. Therefore try to use some color on your PCB with each color corresponding to a certain meaning. In that way, in case of an issue, this might easier get solved
  • Work on a large enough PCB so you can prevent crossover wires and keep an overview of the circuit, this can reduce the possibility of short-circuit.
  • In case of some issues with the circuit or shortcircuit on the PCB, try do debug everything in its most simple form. In that way, your problem or problems might get solved easier.
  • Our last tip is to work on a clean desk, our group had short wires all over our desk which created a shortcircuit in our upper voltage circuit. One of these small wires was the cause and broke one of the stepper drivers.

Step 7: Accessible Sources

All the CAD-files, Arduino code and videos of this project can be found in the following dropbox-link:

Furthermore also the following sources are worth checking:

- OpenSCAD: Parametric pulley - lots of tooth profiles by droftarts - Thingiverse

- Grabcad: This is a great community to share cadfiles with other people : GrabCAD: Design Community, CAD Library, 3D Printing Software

- How to control a stepper motor using a stepper driver:

Anything Goes Contest

Participated in the
Anything Goes Contest