Setting up CocktailBerry#
CocktailBerry will work directly after using the installer, but you can make your own adjustments to make it even better.
Adding new Recipes or Ingredients#
CocktailBerry comes with a limited set of recipes and ingredients. You can use the program to add your own ingredients or recipes, or rename and change existing ones. Just use the implemented UI for the procedure under the corresponding tabs (Ingredients or Recipes). All entered values are checked for validity and if something is wrong, an error message will inform the user what is wrong with the data input.
Database Structure
If you want to browse through the data in the database, I recommend a program like DB Browser for SQLite. You can view the DB schema here.
Setting up the Machine / Modifying other Values#
You can manage your config within CocktailBerry. Just go to the bottles tab (v1), click the gear icon or to the corresponding option tab (v2) and enter your password. You can then use the UI to change the configuration. The configuration is also divided into separate tabs, containing similar categories in one tab.
These values are stored in the local custom_config.yaml file.
This file will be created at the first machine run and inherit all default values.
Depending on your pumps and connection to the Pi, these can differ from the default and can be changed.
If any of the values have a wrong data type, a message with the issue will be shown.
Names starting with EXP are experimental and may be changed in the future.
They can be used at your own risk of CocktailBerry not working 100% properly.
List UI Config Values
UI Config Values are used to change the look and feel of the program.
| Value Name | Description |
|---|---|
UI_DEVENVIRONMENT |
Enables some development features, like a cursor |
UI_MASTERPASSWORD |
Number Password for System/Program Level |
UI_MAKER_PASSWORD |
Number Password for party operation |
UI_LOCKED_TABS |
Specify, which tab to lock with maker password |
UI_LANGUAGE |
2 char code for the language, see supported languages |
UI_WIDTH |
Desired interface width, default is 800 |
UI_HEIGHT |
Desired interface height, default is 480 |
UI_PICTURE_SIZE |
Approximate displayed picture size |
UI_ONLY_MAKER_TAB |
Only allow access to the maker tab |
MAKER_THEME |
Choose which theme to use |
List Maker Config Values
Maker config values are used to change the behavior of CocktailBerry.
| Value Name | Description |
|---|---|
MAKER_NAME |
Give your CocktailBerry its own name, max 30 chars |
MAKER_NUMBER_BOTTLES |
Number of displayed bottles, can use up to 16 bottles |
MAKER_PREPARE_VOLUME |
List of possible spend volumes of machine |
MAKER_SIMULTANEOUSLY_PUMPS |
Number of pumps which can be simultaneously active |
MAKER_SEARCH_UPDATES |
Search for updates at program start |
MAKER_CHECK_BOTTLE |
Check if there is enough of each ingredient left |
MAKER_CLEAN_TIME |
Time the machine will execute the cleaning program |
MAKER_ALCOHOL_FACTOR |
Value to multiply alcoholic ingredients in all recipes |
MAKER_MAX_HAND_INGREDIENTS |
Max x ingredients are allowed to add by hand |
MAKER_CHECK_INTERNET |
Do a connection check at start for time adjustment window |
MAKER_USE_RECIPE_VOLUME |
Do not scale but use defined amounts |
MAKER_ADD_SINGLE_INGREDIENT |
Allows spending single ingredient in maker view |
List Hardware Config Values
Hardware config values are used to configure and enable the connected hardware.
| Value Name | Description |
|---|---|
MAKER_PINS_INVERTED |
Inverts pin signal (on=low, off=high) |
PUMP_CONFIG |
Config for each pump: type, pin, volume flow, tube volume, estimation method, carriage position |
I2C_CONFIG |
Config for I2C GPIO expander (16 pins, 0-15) |
LED_CONFIG |
List of LED configs (discriminated by led_type: Normal or WSLED) |
RFID_CONFIG |
RFID/NFC reader configuration: driver type, enable/disable, more info |
MAKER_PUMP_REVERSION_CONFIG |
Enables reversion (direction) of pump during cleaning |
SCALE_CONFIG |
Scale hardware configuration: driver type, enable/disable and calibration factor |
CARRIAGE_CONFIG |
Carriage/slide configuration: enable/disable, home position, speed and cleaning behavior |
List Software Config Values
Software config values are used to configure additional connected software and its behavior.
| Value Name | Description |
|---|---|
MICROSERVICE_ACTIVE |
Post to microservice set up by docker |
MICROSERVICE_BASE_URL |
Base URL for microservice (default: http://127.0.0.1:5000) |
TEAMS_ACTIVE |
Use teams feature |
TEAM_BUTTON_NAMES |
List of format ["Team1", "Team2"] |
TEAM_API_URL |
Endpoint of teams API, default used port by API is 8080 |
WAITER_MODE |
Enable or disable Service Personnel Mode |
WAITER_LOGOUT_AFTER_COCKTAIL |
Log out after cocktail preparation |
WAITER_AUTO_LOGOUT_S |
Log out after x seconds of inactivity (0 = disabled) |
Payment Related Config Values
Payment config values are used to configure the payment system and its behavior.
General Payment Config:
| Value Name | Description |
|---|---|
PAYMENT_TYPE |
Type of payment integration to use |
PAYMENT_PRICE_ROUNDING |
Next multiple of this number to round up to |
PAYMENT_VIRGIN_MULTIPLIER |
Multiplier percentage to apply to virgin cocktail prices |
PAYMENT_TIMEOUT_S |
Timeout in seconds before reader cancels payment NFC/RFID scan |
CocktailBerry Payment Service Config:
| Value Name | Description |
|---|---|
PAYMENT_SHOW_NOT_POSSIBLE |
Show cocktails that are not possible to the user |
PAYMENT_LOCK_SCREEN_NO_USER |
Lock the screen when no user is logged in |
PAYMENT_SERVICE_URL |
URL of the payment service API |
PAYMENT_SECRET_KEY |
Secret key for authentication with the payment service |
PAYMENT_AUTO_LOGOUT_TIME_S |
Time in seconds until automatic logout of user from payment |
PAYMENT_LOGOUT_AFTER_PREPARATION |
Remove user for filtering cocktail view after preparation |
SumUp Specific Config:
| Value Name | Description |
|---|---|
PAYMENT_SUMUP_API_KEY |
Secret key for authentication with the payment service |
PAYMENT_SUMUP_MERCHANT_CODE |
Merchant code for authentication with the payment service |
PAYMENT_SUMUP_TERMINAL_ID |
Terminal ID for authentication with the payment service |
List Other Config Values
Here are some other config values, which are not fitting in the other categories. Addon data will be added here as well.
| Value Name | Description |
|---|---|
EXP_MAKER_UNIT |
Change the displayed unit in the maker tab (visual only*) |
EXP_MAKER_FACTOR |
Multiply the displayed unit in the maker tab (visual only*) |
* You still need to provide the units in ml for the DB (recipes / ingredients). This is purely visual in the maker tab, at least for now. If you want to display oz in the maker tab, use 'oz' and 0.033814 for unit and factor.
Depending on your preferred use, these values can differ. Customizing and using your own setting will make your CocktailBerry unique.
Setting your Ingredients#
The choice is up to you what you want to connect. See here for a possible ingredient setting. Select your assigned ingredients under Bottles for each pump. In addition, you can define ingredients which are available, but are not connected to the machine (under Bottles > available). These can be ingredients, which would not be optimal for your pump (sticky), or are only very rarely used in cocktails. In the ingredient properties, you can set this ingredient as only addable by hand. These ingredients are not shown in the bottle dropdown but only in the available window. Choose this option for ingredients you won't connect to the machine, to reduce the amount of options displayed in the dropdown.
The program will then evaluate which recipes meet all requirements to only show the recipes where all existing ingredients (machine + hand) exist. All possible recipes will be shown in the Maker Tab. See also this FAQ for more information on this topic.
Configuring the Pins or used Board#
Most boards should work with CocktailBerry, the according controller will be automatically selected. Currently supported options (boards) are:
- RPI (Raspberry Pi): Using GPIO according to GPIO-Numbers for Pins.
- Generic: Using GPIO with python-periphery. Should work for many boards, check out your GPIO number from your provider.
Not your Board?
Even if your board is not listed here, it may work. This value is used to determine the control method for the pins of the board.
Themes#
Currently, there are the following themes:
- default: The look and feel of the project pictures. Blue, Orange and Black as main colors.
- bavaria: The somewhat light mode of the app. Blue, Black and White as main colors.
- berry: Pink mixed with dark blue and dark background.
- alien: Different shades of green and dark background.
- tropical: Bright colors with yellow and light blue.
- purple: It's purple and light blue.
- custom: Starts by the default theme, but you can set each color to your liking.
Calibration of the Pumps#
You can either use the CocktailBerry program to get to the calibration - it's located under your settings (option gear). This will start the calibration overlay. You can use water and a weight scale for the process. Use different volumes (for example 10, 20, 50, 100 ml) and compare the weight with the output from the pumps. In the end, you can adjust each pump volume flow by the factor:
Do a mix of the different volumes, add them together and check if the scale shows the same amount at each pump.
Cleaning the Machine#
CocktailBerry has a built-in cleaning function for cleaning at the end of a party. You will find the feature at the option gear under the Bottles tab. CocktailBerry will then go to cleaning mode for the defined time within the config (default is 20 seconds). A message prompt will inform the user to provide enough water for the cleaning process.
When to Clean
Depending on the build specification of your machine, it is a good practice to execute the cleaning of the machine before and after usage. This depends on how frequently you use CocktailBerry, where it's stored, how good it was cleaned and so on.
If you have activated the option of inverted current with MAKER_PINS_INVERTED, you will be prompted before the cleaning if you want to invert the current for the cleaning process.
This way, you can clean the tubes from both sides and get rid of all fluid in the end.
Possible Ingredient Choice#
If you are unsure which ingredients you may need or want to connect to CocktailBerry, here is a quick suggestion. You don't need to use all ten slots, but the more you use, the more recipes will be possible:
- Vodka
- White Rum
- Brown Rum
- Orange Juice
- Passion Fruit Juice
- Pineapple Juice
- optional Gin
- optional Malibu
- optional Tequila
- optional Grapefruit Juice
In addition, there are some ingredients recommended for adding by hand, the most important additional ingredients will be:
- Soft drinks (Cola, Fanta, Sprite)
- Grenadine syrup
- Blue Curaçao
- Lemon juice (just a little, you can also use fresh lemons)
- optional Cointreau (you may just not add it if not desired)
With this as your base setup, even if not using the optional ingredients, your CocktailBerry will be able to do plenty of different cocktails.
Data Insights
You can export the CocktailBerry data to a CSV file over the interface. Use the CocktailBerry UI in the options page to get a neat local overview of the data. With this information you may identify popular drinks and ingredients.
Updates#
There is the option to enable the automatic search for updates at program start.
The MAKER_SEARCH_UPDATES config can enable this feature.
CocktailBerry will then check the GitHub repository for new releases and inform the user about it.
If accepted, CocktailBerry will pull the latest version and restart the program afterwards.
The migrator will do any necessary steps to adjust local files, like the database to the latest release.
Backups#
You can backup your local data (local database, config-file) to a desired folder or external device. Use this backup to restore the data, or recover the progress and recipes after doing an OS reinstall. Just go to the Bottles tab, click on the gear icon and enter your master password to get to the options window. There you will find both options for backup and restoring your data.