Hector 9000 is a cocktail machine that can pour drinks from 12
different ingredients. Hector 9000 was created at the beginning of
2018 as the successor to Uncle Hector, a pure Gin-Tonic machine.
During the development we tried to make as many parts as possible by
3D printing without support. Unlike many other barbots, peristaltic
pumps are not used, which makes it possible to pump carbonated drinks.
The liquids are conveyed by a slight overpressure in the bottles, at
the same time the conveyed quantity is determined by a balance. If
enough of a liquid has been dosed, the silicone tubes belonging to the
liquid are squeezed off. The drinks do not come into contact with
moving parts. When a cocktail is finished, Hector activates its bell.
The core of Hector 9000 is a Raspberry Pi 3B. The Pi takes over the
process control and displays the UI on a 7" touch screen. The software
is written in Python 3, Kivy is used to provide the graphical user
interface.
This is the multi-page printable view of this section. Click here to print.
Documentation
- 1: Mechanik
- 2: Elektronik
- 3: BOM
- 4: Software
- 5: Installation
1 - Mechanik
Mechanics
Scale
To measure the poured quantities of the ingredients, a load cell in conjunction with a HX711 is used. Before assembling the printed plastic parts, the overflow pipe must be glued into the scale pan. The balance is bolted on from above through the table top. The length of the spacer and the overflow pipe must be adjusted according to the thickness of the table top, a gap of about 1 mm should be visible between the table top and the scale pan. For the electrical connection we used a CAT5e cable. On the bottom of the housing, it is possible to connect a hose with 10 mm inner diameter for the overflow. The following sequence has proven useful for the assembly of the scale:
-
Screw the cable gland into the housing,
-
Position housing and load cell under the table top,
-
Screw the load cell from the top,
-
Secure spacers and scale pan,
-
Solder cables,
-
Screw on the lid.
Pump
To create the overpressure in the bottles, we use an air pump for fish tanks. Since the complete electronics operate with max. 12 VDC, we opted for a 12 V pump from Schego. The selection of the pump is relatively uncritical since the required pressure and the flow rate are low. It should only be ensured that the pump works oil-free. Because the pump has only one hole for mounting, a bracket has been designed. The following sequence during assembly has proven itself:
-
Screw on 2 nuts at each end of the threaded rods and counter. A nut should be flush with the threaded rod, the key surfaces of the nuts must be in alignment.
-
Insert threaded rods in the holes of the bracket,
-
Screw the bracket into the housing,
-
Insert pump and clamp with the U-profiles (optionally with foam rubber strips under the U-profiles),
-
Counter the nuts (or glue with Loctite).
Valves
In order to realize the dosing of the fluids, pinch valves were designed
for our cocktail machine which simultaneously open and close both hoses
(i. e. air and liquid) for an ingredient.
The required plastic parts for the valves can be printed without
support. The (optional) cover was cut out of transparent PMMA with a
CO~2~ laser. Make sure the servos are original TowerPro MG996R. There
are servos with the same name of no-name vendors. These servos may
differ in the outer dimensions, in some cases significantly different
from the original servos. The round servo arms supplied with the servos
must be adapted to the inner diameter of the cams. Special care is
necessary: If the servo arms are eccentric in the cam, the valve will
not close properly. Our servo arms were machined on a CNC milling
machine with a very sharp wood cutter. The mounting holes for the servo
arms are best drilled using the cam as a template. The screws for
connecting cam and servo arm are secured with Loctite. Make sure the
tongues are made of a material with good sliding properties. Our tongues
were printed from Iglidur I150. The tongues in the valves of Uncle
Hector have been through a few hundred cycles and still work flawlessly.
Alternatively, the tongues could be printed from PET, but this has not
been tested yet. For the valves to sit flush with the rear wall, cutouts
for the servos must be made (Fig. 4).
For fastening the valves, captive nuts have
been proven.
Arm
In order to make the filling process more comfortable, the arm with the
dosing head is retracted in the idle state
(Fig. [arm_front_in]). When the dosing process is started, the arm
moves forward. All required plastic parts can be printed without
support. The gliding insert should be made of a material with good
sliding properties. Our gliding insert was printed from Iglidur I150.
Alternatively, the slide insert could be printed from PET, but this has
not been tested yet. The boom consists of an aluminum profile with
15.5 mm edge length. Such profiles can be found in almost every German
DIY store. The pinion is pressed onto the shaft of the motor and needs
no further securing. To attach the rack to the boom, M3 blind rivet nuts
were inserted into the profile. The dosing head is secured with a
self-tapping screw in the profile. The trigger is glued to the boom. The
trigger has a hole through which a cable was routed to power an optional
all-round light on the arm.
When mounting the arm, make sure that the bottom bolt is passed through
the hole from the rear and screwed down with a regular nut. The upper
bolts are inserted from the front through the rear wall. The drip
catcher can now be mounted on the lower screw with a knurled nut
(Fig. [drip]).
Bell
When building the mechanism for the bell, make sure that the center of the bell is 100 mm away from the rotational axis of the arm. A bracket is provided for attaching the bell (Fig. 6). To drill the necessary holes in the bell, the bracket is used as a drilling jig. The mounting of the finger on the back wall is actually self-explanatory. To attach the motor bracket (Bell_servo-bracket.stl) to the rear panel, it is advisable to use captive nuts or threaded inserts, so the finger can be easily adjusted later (Fig. 8).
Hoses
To transport liquids and air, silicone hoses with an outer diameter of 6 mm and 4 mm inside diameter are used. In any case, care must be taken that the hoses are intended for use with food. To guide the hoses through the housing, the valves and the dosing head, it has been proven to cut off one end at an acute angle. For each ingredient, two hoses are passed through a valve. One hose directs the liquids from the bottle to the dosing head, the other hose connects the air pump and the bottle. When guiding the hoses through the housing, care must be taken that the hoses do not tangle with the arm. We just used cable ties (Fig. 9).
Plugs
The plugs consist of a 3D printed core and a conical seal. The seal makes it possible to connect different beverage bottles with one kind of plug. The seals can be purchased from catering supplies. When printing the cores, food grade filament should be used. On one side of the plug are the hoses leading to the valves (do not confuse air and beverage hoses!) connected. On the other side of the plug is a piece of silicone tubing connected which reaches to the bottom of the bottle.
Flushing funnel
As it takes a lot of water and time to rinse the hoses, it is not much fun to stand next to Hector and empty full glasses during the wash program. We have therefore constructed a flushing funnel that transports the wastewater directly into a bucket or spout. The flushing funnel can be printed without support. The hose nozzle is designed for a silicone hose with an internal diameter of 10 mm.
Housing
The housing consists of 25 mm aluminum profiles that have been covered with aluminum sheets and PMMA sheets. The metal sheet on which the scale was attached, as well as the sheet metal which carries the valves, were additionally glued to an MDF board. Before bonding, captive nuts were placed into the MDF panels to later screw on the DIN rails and pump. The PMMA plates and most of the other plates were fixed with 4 mm blind rivets. The rear wall is fixed by M4 screws. Blind rivet nuts were used in the profiles as a counterpart to the screws. It is strongly recommended to use special sheet metal drills for machining the sheets and profiles, otherwise problems may occur when inserting the rivets. The case is not included in the bill of materials, here everyone should let their creativity run free[^1].
Display
For the selection of drinks we have opted for a 7" display with touch function via USB. The USB version is necessary because the GPIOs are used for other functions. The display is attached to a extruded profile of the housing. For transport the display can be turned into the housing (Fig. [display_half_in]). In the printed housing for the display are 3 holes for mounting it to the frame. Only two holes are needed for the attachment: the middle hole and an outer one. The display is screwed to the frame by means of blind rivet nuts and knurled screws. To turn the display, remove the outer screw and loosen the center screw.
2 - Elektronik
General
We decided to realize the power supply of Hector 9000 with a PC power supply. It is recommended to place the voltage outputs of the power supply unit on terminal blocks and to carry out the cable routing in wiring channels. We have fused the supply voltage of the LED strips, also on terminal blocks. It is also useful to make the connections between the modules by crimped connectors.
Wiring
The interconnection of the individual components (Fig. 15) is relatively simple. We recommend placing the HX711 board as close as possible to the Raspberry Pi in order to keep the I2C lines short. For the illumination two WS2812B LED strips were connected in parallel to the GPIO of the RPi. There are 15 LEDs in the lower compartment (bottles) per line and 30 LEDs in the upper compartment of the housing. The pinout of the Raspberry Pi can be seen in Fig. 16. The optional all-round light must be switched via a transistor (Fig. 17).
3 - BOM
BOM
The BOM only lists components that are necessary to manufacture the individual assemblies. Cables, plugs, DIN rails, wiring channels, [material for mounting the modules in the housing]{.underline}, etc. must be put together individually depending on your housing. In the column Source is listed where we got the parts; these sources are not an advertisement or recommendation for certain sellers or platforms, but are merely intended to indicate where the material could be sourced.
BOM Scale
Qty. | Title | Decription | Source |
---|---|---|---|
1 | Overflow grid | Scale_overflow_grid.stl |
3D printed |
1 | Overflow pipe | Scale_overflow_pipe.stl |
3D printed |
1 | Scale pan | Scale_pan.stl |
3D printed |
1 | Spacer | Scale_spacer.stl |
3D printed |
1 | Case | Scale_cover.stl |
3D printed |
1 | Lid | Scale_lid.stl |
3D printed |
1 | Cable gland M10 | eBay | |
4 | Screw for thermoplasts 3x10 | Wegertseder | |
1 | Load cell 1 kg with HX711 board | Amazon | |
BOM Pump
Qty. | Title | Description | Source |
---|---|---|---|
1 | Mounting base | Schego_830_mount.stl |
3D printed |
1 | Schego 830 membrane pump | Amazon | |
2 | Foam rubber strips 13 mm x 70 mm | DIY Store | |
2 | Aluminium U-profile 13 mm x 8 mm x 105 mm | DIY Store | |
4 | Threaded rod M3x65 | DIY Store | |
12 | DIN 934 Nut M3 | Wegertseder |
BOM Valves
Qty. | Title | Description | Source |
---|---|---|---|
12 | Valve body | Valve_body.stl |
3D printed |
12 | Cam | Valve_cam.stl |
3D printed |
24 | Tongue | Valve_tongue.stl |
3D printed |
12 | Cover PMMA | Valve_cover.stl |
CNC/Laser |
12 | TowerPro MG996R servo | only genuine | Hobbyking |
24 | DIN 965 Bolt M3x8 | Wegertseder | |
48 | ISO 7380 Bolt M3x10 | Wegertseder | |
24 | DIN 933 Bolt M3x35 | Wegertseder | |
72 | DIN 934 Nut M3 | Wegertseder | |
24 | DIN 466 Knurled nut M3 | Wegertseder |
BOM Arm
Qty. | Title | Description | Source |
---|---|---|---|
1 | Mounting bracket | Arm_mount.stl |
3D printed |
1 | Slide insert | Arm_sliding_element.stl |
3D printed |
1 | Rack | Arm_rack.stl |
3D printed |
1 | Pinion | Arm_pinion.stl |
3D printed |
1 | Trigger | Arm_trigger.stl |
3D printed |
1 | Dosing head | Arm_pourer.stl |
3D printed |
1 | Drip catcher | Arm_drip_pan.stl |
3D printed |
1 | Optical endstop | Amazon | |
1 | Pololu A4988 | Amazon | |
1 | NEMA 17 Stepper | Amazon | |
1 | Aluminium square tube 15.5x15.5 | Lenght depends on your housing | DIY Store |
1 | DIN 7981 Self tapping screw 2.9x6.5 | Wegertseder | |
4 | ISO 7380 Bolt M3x6 | Wegertseder | |
4 | ISO 7380 Bolt M3x10 | Wegertseder | |
6 | DIN 125 Washer 3.2 | Wegertseder | |
2 | DIN 934 Nut M3 | Wegertseder | |
3 | DIN 934 Nut M4 | Wegertseder | |
1 | DIN 466 Knurled nut M4 | Wegertseder | |
6 | DIN 125 Washer 3.2 | Wegertseder | |
2 | Blind rivet nut M3x10 flat | Wegertseder |
BOM Bell
Qty. | Title | Description | Source |
---|---|---|---|
1 | Bracket for the bell | Bell_base.stl |
3D printed |
1 | Bracket for the motor | Bell_servo-bracket.stl |
3D printed |
1 | Finger | Bell_finger.stl |
3D printed |
1 | TowerPro MG996R servo | only genuine | HobbyKing |
1 | Bell | Amazon | |
7 | ISO 7380 Bolt M3x10 | Wegertseder | |
7 | ISO 7380 Bolt M3x12 | Wegertseder | |
11 | DIN 934 Nut M3 | Wegertseder |
BOM Display
Qty. | Title | Description | Source |
---|---|---|---|
12 | Core for the plugs | Rubberplug_core.stl |
3D printed |
12 | Long-Life Corky 0.7 l-1.0 l | METRO |
: BOM Plugs
Qty. | Title | Description | Source |
---|---|---|---|
1 | Cover | Display_lid.stl |
3D printed |
1 | Base | Display_base.stl |
3D printed |
1 | Clamp | Display_clamp.stl |
3D printed |
1 | 7" Touch display | Touch function via USB! | Amazon |
4 | Distance bolt M3 x 10 | male-female | Amazon |
2 | Screw for thermoplasts 3x10 | Wegertseder | |
4 | ISO 7380 Bolt M3x16 | Wegertseder | |
4 | DIN 934 Nut M3 | Wegertseder |
BOM Misc
Qty. | Title | Description | Source |
---|---|---|---|
1 | Adafruit PCA9685 Servo driver | Amazon | |
1 | Raspberry Pi 3B | Amazon | |
1 | PC-PSU | Reichelt | |
ca. 1.5 m | WS2812B LED Strips | 12 VDC version! | Amazon |
ca. 30 m | Silicone hose 6 mm x 4 mm | food-safe;do not buy the cheapest one! | Amazon |
1 | Flush funnel version A or B | Flush-funnel-XY.stl |
3D printed |
4 - Software
Later versions of this document will contain a description of the software. At the moment you will find information about the software only on https://github.com/H3c702/Hector9000
5 - Installation
The video shows how the Hector9000 image is written to an SD card and how the initial setup must be carried out.
The most important points:
- When setting up the user, the name should be “pi”. Since the RPI image no longer comes with a default user, this must be selected during the first boot process.
- Ensure that I2C is set up. -> Call up RPI Config in the console and set it up there.
- The two scripts can then be executed.
- Hector9000 (/home/pi/Hector9000/start.sh)
- Hector9000WebUI (/home/pi/Hector9000WebUI/start.sh)
The Hector should then run and be ready for operation if everything is connected correctly.
Have fun :-)