System and method for dispensing food product

The dispensing system addresses inefficiencies in manual food product dispensing by using automated pumps and computerized control to ensure consistent and efficient delivery of sauces and coatings, improving kitchen operations.

WO2026059937A1PCT designated stage Publication Date: 2026-03-19SERVER PRODS
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-09-09
Publication Date
2026-03-19

AI Technical Summary

Technical Problem

Manual dispensing of flowable food products, such as sauces and coatings, is time-consuming, prone to spills, and often results in inconsistent serving sizes, posing challenges in efficiency and accuracy.

Method used

A dispensing system with automated pumps and user interfaces that allow for precise dispensing of flowable food products, including sauces and coatings, onto food items or into dishware, using a computerized controller to manage fluid flow and communication with kitchen systems for optimized dispensing.

Benefits of technology

The system provides consistent serving sizes, reduces manual effort, minimizes spills, and enhances kitchen efficiency by allowing staff to focus on other tasks while ensuring accurate and timely delivery of multiple food products.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2025045640_19032026_PF_FP_ABST
    Figure US2025045640_19032026_PF_FP_ABST
Patent Text Reader

Abstract

A dispensing system includes a cabinet, a dispensing unit including a plurality of ports, a plurality of lines of flowable food product, a computing system including a memory and a processor. Each of the plurality of ports is configured to be in fluid communication with a reservoir of flowable food product. Each line includes a fluid connection between a bottle of flowable food product and a corresponding port of the plurality of ports. The processor is configured to detect one or more lines of flowable food product in communication with the dispensing unit. Detecting the one or more lines includes one of detecting pumps corresponding to the one or more lines and detecting fluid connections at the plurality of ports corresponding to the one or more lines. The processor is further configured to generate a data structure including a correlation between a first set of lines and the first cabinet.
Need to check novelty before this filing date? Find Prior Art

Description

SYSTEM AND METHOD FOR DISPENSING FOOD PRODUCTCROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority to U.S. Application No. 63 / 694,048, titled “SYSTEM AND METHOD FOR DISPENSING FOOD PRODUCT,” filed September 12, 2024, which is hereby incorporated by reference in its entirety.BACKGROUND

[0002] The present disclosure relates to systems and methods for dispensing food products. More specifically, the present disclosure relates to systems and methods for dispensing a flowable food product.SUMMARY

[0003] The present disclosure relates to a system that can be used to dispense a sauce or other flowable food product. In particular, systems and methods are provided for automating a dispensing process for dispensing sauces, coatings, other flowable flavorings, etc., onto a food item or into dishware for retaining a flowable product. Automating the dispensing of flowable food products may advantageously provide a more consistent serving size, while reducing mechanical pumping or pouring efforts previously required to dispense flowable food products. In general, a dispensing system can include a housing. The housing can include a reservoir that may retain a flowable food product. The dispensing system can also include a pump system that can convey a fluid from the reservoir. Additionally, the dispensing system can include a user interface configured that may receive an input from and to generate an input signal. Furthermore, the dispensing system can include an electronic controller that may be configured to receive the input signal and to actuate a pump based on the input signal to dispense the fluid through the conduit.

[0004] In some examples, a dispensing system can include a first cabinet including a plurality of bays, each bay sized to receive a reservoir of flowable food product. A dispensing unit can include a plurality of ports, each of the plurality of ports configured to be in fluid communication with a bottle of flowable food product. The dispensing system can include a plurality of lines of flowable food product, each line comprising a fluid connection between a reservoir of flowable food product and a corresponding port of the plurality of ports. A computing- 1 -QB\850724.00201\98331610.1system including a memory and a processor. The processor can be configured to detect one or more lines of flowable food product in communication with the dispensing unit. Detecting the one or more lines can include one of detecting pumps corresponding to the one or more lines and detecting fluid connections at the plurality of ports corresponding to the one or more lines. A data structure can be generated including a first set of the one or more lines, the data structure including a correlation between the first plurality of lines and the first cabinet. For each of the first set of lines a test signal can be provided to one of the one or more pumps, the test signal being provided based on the data structure, and comprising an instruction to the pump to induce a fluid flow through the corresponding line. A measurement of fluid flow through the line corresponding to the pump can be measured. Based on the measured fluid flow of the one or more lines, a correlation between the one or more pumps and the corresponding one of the one or more lines can be confirmed. The data structure can be written to a persistent portion of the memory.

[0005] The foregoing and other aspects and advantages of the disclosure will appear from the following description. In the description, reference is made to the accompanying drawings which form a part hereof, and in which there is shown by way of illustration a preferred configuration of the disclosure. Such configuration does not necessarily represent the full scope of the disclosure, however, and reference is made therefore to the claims and herein for interpreting the scope of the disclosure.BRIEF DESCRIPTION OF THE DRAWINGS

[0006] The invention will be better understood and features, aspects, and advantages other than those set forth above will become apparent when consideration is given to the following detailed description thereof. Such detailed description makes reference to the following drawings.

[0007] FIG. l is a front right isometric view of a dispensing system, according to aspects of the present disclosure.

[0008] FIG. 2 is a front elevation view of the dispensing system of FIG. 1, with doors of cabinets of the dispensing system opened to show bottles of product within the cabinets.

[0009] FIG. 3 is a rear elevation view of the dispensing system of FIG. 1.

[0010] FIG. 4 is a schematic view of an example control system for the dispensing system of FIG. 1, according to aspects of the disclosure.- 2 -QB\850724.00201\98331610.1

[0011] FIG. 5 is a flowchart showing an example process for preparing lines of a dispensing system for cleaning.

[0012] FIG. 6 is an illustration of a display, according to an example of the present disclosure.

[0013] FIG. 7 is an illustration of a display series of a cleaning process for a dispensing system.

[0014] FIGS. 8A-8C are a flowchart of a process for cleaning lines of a dispensing system.

[0015] FIG. 9 is an illustration of a display series of a cleaning process for a dispensing system.

[0016] FIGS. 10A-10C are a flowchart of a process for loading and priming lines of a dispensing system, according to some aspects of the present disclosure.

[0017] FIG. 11 is an illustration of a display for adding products for a dispensing system.

[0018] FIG. 12 is an illustration of a display for configuring products for a dispensing system.

[0019] FIGS. 13 and 14 are illustrations of displays of warnings for the dispensing system.

[0020] FIGS. 15 is an illustration of a display for prompting a loading or a priming of a dispensing system.

[0021] FIG. 16 is an illustration of a display for priming a line of the dispensing system.

[0022] FIG. 17 is a flowchart of a process for setting up a dispensing system.

[0023] FIG. 18 is an illustration of a display series for configuring alerting for a dispensing system.

[0024] FIG. 19 is an illustration of a display for calibrating a dispensing of a product of the dispensing system.

[0025] FIG. 20 is an illustration of a display series for defining a recipe of the dispensing system.

[0026] FIG. 21 is an illustration of a display for defining ingredient product proportions for a recipe of the dispensing system.DETAILED DESCRIPTION

[0027] Before any embodiments of the invention are explained in detail, it is to be understood that the invention is not limited in its application to the details of construction and the- 3 -QB\850724.00201\98331610.1arrangement of components set forth in the following description or illustrated in the following drawings. The invention is capable of other embodiments and of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Unless specified or limited otherwise, the terms “mounted,” “connected,” “supported,” and “coupled” and variations thereof are used broadly and encompass both direct and indirect mountings, connections, supports, and couplings. Further, “connected” and “coupled” are not restricted to physical or mechanical connections or couplings, and may also include fluid and electrical connections.

[0028] The following discussion is presented to enable a person skilled in the art to make and use embodiments of the invention. Various modifications to the illustrated embodiments will be readily apparent to those skilled in the art, and the generic principles herein can be applied to other embodiments and applications without departing from embodiments of the invention. Thus, embodiments of the invention are not intended to be limited to embodiments shown, but are to be accorded the widest scope consistent with the principles and features disclosed herein. The following detailed description is to be read with reference to the figures, in which like elements in different figures have like reference numerals. The figures, which are not necessarily to scale, depict selected embodiments and are not intended to limit the scope of embodiments of the invention. Skilled artisans will recognize the examples provided herein have many useful alternatives and fall within the scope of embodiments of the invention.

[0029] One or more embodiments are described and illustrated in the following description and accompanying drawings. These embodiments are not limited to the specific details provided herein and may be modified in various ways. Further, other embodiments may exist that are not expressly described herein. Also, functions described as being performed by multiple components may be consolidated and performed by a single component. Similarly, functions described herein as being performed by one component may be performed by multiple components in a distributed manner. Additionally, a component described as performing particular functionality may also perform additional functionality not expressly described herein. For example, a device or structure that is “configured” in a certain way is configured in at least that way, but may also be configured in ways that are not expressly listed.- 4 -QB\850724.00201\98331610.1

[0030] In addition, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. For example, the use of “comprising,” “including,” “containing,” “having,” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Additionally, the terms “connected” and “coupled” are used broadly and encompass both direct and indirect connecting and coupling, and may refer to physical or electrical connections or couplings. Furthermore, the phase "and / or" used with two or more items is intended to cover the items individually and the items together. For example, “a and / or b“ is intended to cover: a, b, and a and b. As used herein, the terms "substantially," "approximately," and the like may refer to a value that is ± 1%, ± 5%, ± 10% of the intended amount, value, angle, or other quantity.

[0031] As used herein, “reservoir” means a container for holding a product. A reservoir can be a container with a fixed volume and a rigid shape, including, for example, bottles, bins, tanks, buckets, hoppers, cartridges, etc. A reservoir can be a flexible container, or a container having variable volume, including, for example, a flexible bag, a bladder, etc. In some cases, a reservoir can be configured to contain a flowable food product (e.g., a liquid, a syrup, etc.). In some cases, reservoirs can contain granular food product as with sugar, salt, flour, spices, etc. The examples provided below and illustrated in FIGS. 1-3 describe the use of bottles within a dispensing system as a particular example of a reservoir. However, the present disclosure is equally applicable for any reservoir type, and the examples referencing bottles are intended to illustrate, and not limit the disclosed subject matter.

[0032] As described above, in many restaurant settings, workers and customers manually dispense flowable coatings over a food item or into a dishware. Manually dispensing flowable food products may require workers and customers to mechanically actuate a pump, squeeze a flowable item through a valve in a reservoir, or pour the flowable item through a hole in a reservoir. Such manual flowable food product dispensing methods can be time consuming, can be prone to spills, and may dispense an undesired amount of the flowable food product (e.g., too much or too little). Additionally, some customers or workers may struggle to mechanically actuate a flowable food product reservoir by pumping, squeezing, or otherwise pouring the flowable food product.

[0033] The present disclosure provides a system and associated methods for dispensing a flowable food product (e.g., a seasoning, sauce, dressing, flavorant, granular products like granola, salt, pepper, etc.) that provide benefits over conventional manual pumps. More specifically, the - 5 -QB\850724.00201\98331610.1present disclosure relates to a dispensing system including a dispenser that can receive and retain the flowable food product, and dispense the flowable food product using an automated pump. For example, a customer or worker can activate the automated pump via a user interface (e.g., physical buttons, a touchscreen, etc.) to dispense the flowable food product by interacting with a user interface of the dispensing system. The pump can then dispense a pre-determined serving size of the flowable food product onto a food item (e.g., wings, burgers, salads, or other coated or sauced food items) or into a dishware (e.g., a cup, bowl, or plate). The dispenser system may therefore be utilized to deliver a consistent amount of the flowable food product, with little input from the customer and worker.

[0034] The dispensing system may be advantageous to increase efficiency of kitchen staff. For example, the dispensing system can be configured to automatically dispense the flowable food product onto an item placed under a dispensing port of the dispensing system, allowing a worker to perform other tasks, thereby increasing efficiency. For example, after adding a food item to a plate or bowl, a worker may activate an actuator or other mechanism configured to actuate the automated pump, allowing the kitchen worker to attend to another duty (e.g., cooking), while the flowable food product is dispensed. The dispensing system can therefore save valuable time during the preparation of the food item, allowing the kitchen to operate more efficiently.

[0035] In some examples, a dispensing system can be configured to dispense one or a combination a variety of different type of flowable food products in response to a user selection. The dispensing system may therefore service customers or customer orders that require multiple types of flowable food products (e.g., ketchup, mustard, ranch, etc.) or mixtures of flowable food products.

[0036] Relatedly, the dispensing system can be used in conjunction with other kitchen systems to further improve efficiency. The dispensing system can be configured to communicate with a network and may be configured to operate in accordance with a signal received from the network. For example, the kitchen management system may provide information on a customer order or operation instructions for the dispensing system (e.g., an amount or type of the flowable food product). For example, a customer may provide a ratio of one or more types of flowable food product for a given order. The dispensing system in cooperation with the kitchen staff may then dispense the correct amount and type of the flowable food product to fulfill the customer order.- 6 -QB\850724.00201\98331610.1

[0037] As generally mentioned above, a dispensing system can be used to dispense a food product onto a food item that is being prepared, or to dispense the food product into another vessel, such as a portion cup, plate, or bowl. FIGs. 1-3 illustrate a non-limiting example of a dispensing system 100 that is configured to dispense one or more flowable food products (e.g., a seasoning, a sauce, a dressing, a topping, or other food product ingredient). As described below, the dispensing system 100 can be used to automate the dispensing of the flowable food product. Moreover, the dispensing system 100 may be configured for dispensing of a specific amount, type, or mixtures of flowable food products. By allowing for automatic dispensing, the dispensing system 100 can allow a worker to perform other tasks, improving overall kitchen efficiency and reducing total preparation time.

[0038] A dispensing system can include one or more cabinets for holding flowable products (e.g., reservoirs of flowable products) to be dispensed. In other examples, one or more flowable food products can be stored externally to the one or more cabinets. For example, one or more flowable food products may be stored in an under-counter configuration. Referring to FIG. 1, in the illustrated example, the dispensing system 100 includes a first cabinet 102, a second cabinet 104, and a third cabinet 106. As shown in FIG. 2, the first cabinet 102 can have capacity to hold two bottles 114 (e.g., reservoirs) of flowable product, and each of the second and third cabinets 104, 106 can have a capacity to hold six bottles of flowable product. Further, in the illustrated example, the cabinets 102, 104, 106 are shown in a stacked configuration, with the second cabinet 104 being stacked on top of the third cabinet 106, and the first cabinet 102 stacked on top of a dispensing unit 108. In other examples, a dispensing system can have fewer cabinets (e.g., one or two cabinets). In some examples, a dispensing system includes more than three cabinets. In some examples, cabinets of a dispensing system can have different capacities for bottles of flowable fluids (e.g., a cabinet can hold three bottles, or four bottles, or five bottles, etc.). Further, in some examples, cabinets of a dispensing system can be otherwise arranged. For example, three cabinets of a dispensing system can be arranged side-by-side, instead of in a stacked configuration.

[0039] As shown in FIG. 1, the dispensing system 100 includes the dispensing unit 108. The dispensing unit can have a dispensing head 112 with a plurality of apertures (not shown) for dispensing respective flowable products into a space defined beneath the dispensing head 112 (e.g., a space for a cup). The dispensing unit 108 illustrated further includes a control panel 110. The - 7 -QB\850724.00201\98331610.1control panel 1 10 can be a screen that can display product information to a user. Further, the control panel 110 can include a touch-screen to receive an input (e.g., product selections, operational commands, etc.) from the user. Here, the control panel 1 lOis coupled to the dispensing head 112. In other examples, the control panel 110 can be positioned away from the dispensing head (e.g., at a point-of-sale, a dispensing station, etc.) In the illustrated example, the dispensing head 112 is coupled to the cabinets 102, 104, 106. In other examples, the dispensing head may be spaced from cabinets, or more generally, the flowable food product. For example, in an under counter configuration, a food product can be contained below a counter or other support surface, while a dispensing head can be disposed above (e.g., on) on the counter or other support surface.

[0040] Referring again to FIG. 2, the cabinets 102, 104, 106 can have spaces to receive bottles 114 of flowable products (e.g., syrups, liquids, etc.). Each bottle 114 can be connected to a hosing 116. Hosing 116 from the bottles 114 within each of the cabinets 102, 104, 106 can be routed through a back of the respective cabinet 102, 104, 106, and can be connected to corresponding ports 118 in a rear of the dispensing unit 108, as illustrated in FIG. 3. The hosing 116 can at least partially define a “line” for a particular flowable fluid. As used herein, a “line” refers to an individual flow path of a flowable product. From a physical perspective, a line can include a bottle of flowable food product, the associated port for the flowable food product, and the pump for pumping the flowable food product, along with any plumbing elements along the flow path. A “line” can further be a digital representation of a physical line, and can correspond to electronically controllable elements of the associated physical line (e g., pumps). In the illustrated example, there are 14 individual lines, each corresponding to a bottle 114 of flowable fluid and defined by a corresponding hosing 116 and port 118. The lines can culminate in apertures of the dispensing head 112 (e.g., the dispensing head 112 can including one aperture for each line), such that the lines are coupled between the respective bottles 114 and the dispensing head.

[0041] A dispensing system can include computerized elements (e.g., components that can communicate through electronic signals) to automate or control aspects of an operation of the dispensing system. FIG. 4 illustrates an example dispensing system 400 for a dispensing system 200. The dispensing system 200 can be similar or identical to the dispensing system 100 shown in FIGS. 1-3. Further, hardware corresponding to the elements of the dispensing system 400 can be housed within a housing of the dispensing system (e.g., in any of a dispensing unit, or cabinets of the dispensing system). As shown, the dispensing system 400 can include a controller 401. The - 8 -QB\850724.00201\98331610.1controller 401 can be a computer or computerized system. In some cases, as shown in the illustrated example, the controller 401 can reside in hardware housed within the dispensing system 200. In some cases, a controller for a dispensing system can be remote from the dispensing system (e.g., a controller can be a virtual server on a cloud, a controller can comprise one or more containerized services, a central computer or tablet can include a controller for the dispensing system, etc.). As shown, the controller 401 can include a processor 402, a memory 404, a communications system 406, and input / output (I / O) interfaces 408. In some embodiments, processor 402 can be any suitable hardware processor or combination of processors, such as a central processing unit (CPU), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc.

[0042] In some embodiments, the memory 404 can include any suitable storage device or devices that can be used to store instructions, values, etc., that can be used, for example, by processor 402 to implement control loops and algorithms of the dispensing system 200, to store logs of the controller 401, etc. The memory 404 can include any suitable volatile memory, nonvolatile memory, storage, or any suitable combination thereof. For example, the memory 404 can include a random access memory (RAM), a read-only memory (ROM), an electronically-erasable programmable read-only memory (EEPROM), one or more flash drives, one or more hard disks, one or more solid state drives, one or more optical drives, etc. In some embodiments, the memory 404 can have encoded thereon a computer program for controlling operation of the processor 402. For example, in such embodiments, the processor 402 can execute at least a portion of the computer program to control an operation of pumps to dispense a flowable product through one or more lines of the dispensing system 200. The memory 404 can further store images, layouts, and configurations for a user interface (UI) to be displayed to a user to allow the user to operate the dispensing system.

[0043] In some embodiments, the communications systems 406 can include any suitable hardware, firmware, and / or software for communicating information over a communication network 420 and / or any other suitable communication networks, including both wired and wireless communication networks. For example, the communications systems 406 can include one or more transceivers, one or more communication chips and / or chip sets, etc. In a more particular example, the communications systems 406 can include hardware, firmware and / or software that can be used to establish a Wi-Fi connection, a Bluetooth connection, a cellular connection, an Ethernet - 9 -QB\850724.00201\98331610.1connection, etc. In some embodiments, inputs can be received at the controller 401 through the communications system 406 over the communication network 420. For example, an application programming interface (API) can be provided for the dispensing system 200 to allow an operator to control one or more operations of the dispensing system 200 remotely. Additionally or alternatively, the controller 401 can serve a UI (e.g., can transfer to another device through a “push” or a “pull” operation, files that can allow a UI to be displayed at the device) that can be accessible at a network address (e.g., through an internet protocol (IP) address or a uniform resource locator (URL_), or could present a command line interface (CLI) which can allow for remote access to the controller 401. Remote access to the dispensing system 200 can be provided through other means, such as a cell phone, remote control, point-of-sale systems, tablets, etc., and the enumerated examples are provided for the purpose of illustration and not limitation.

[0044] Further, one or more I / O interfaces 408 can comprise connection elements for allowing a connection of peripheral devices (e g., any of the display 410, input devices 412, pumps 414, valves 416, and sensors 418 described below) to the controller 401. For example, the VO interface(s) 408 can comprise a wired connection and can include wired ports for connection of peripheral devices (e.g., unified serial bus (USB) ports, ethernet ports, high-definition multimedia interface (HDMI) ports, etc.). In some cases, the I / O interface(s) 408 can facilitate communication with the controller 401 through one or more protocols (e.g., modbus protocols, ethernet protocols, etc.). In some cases, peripherals of a dispensing system can communicate with a controller through a networked connection, instead of or in addition to a wired connection to an I / O interface of the controller.

[0045] In some examples, a display can be provided for a dispensing system. As discussed in greater detail below, such displays can be used to instruct a user for programming the dispensing system, cleaning the dispensing system, operating the dispensing system to dispense food product, providing warnings or other operational statuses to a user, etc. For example, as shown, the dispensing system 200 can include a display 410 (e.g., the control panel 110 of the dispensing system 100 shown in FIGS. 1 and 2). The display 410 can include any suitable display device, such as a computer monitor, a touchscreen, a television, a tablet, etc. In some embodiments, the input devices 412 can include any suitable input devices and / or sensors that can be used to receive user input, such as a keyboard, a mouse, a touchscreen, a microphone, a camera, etc. For example, the display 410 can be an input device 412, and can comprise a touch screen that receives inputs,- 10 -QB\850724.00201\98331610.1such as user selections and commands, and communicates the commands to the controller 401. Inputs can be received at the display 238, which can present a user interface through which an operator can view system parameters and set control parameters of the dispensing system 200 (e.g., set an operating mode, specify a percentage of a drink volume to be composed of a flavored syrup, assign lines for flowable products, configure a network connection, initiate a cleaning or priming operation, set a language of the system, etc.).

[0046] A dispensing system can include electromechanical elements for inducing a flow of flowable product through lines of the dispensing system. As further illustrated, the dispensing system can include pumps 414. The pumps 414 can include motors that can operate to dispense a flowable product in response to a signal from the controller 401. In a particular example, the pumps 414 can operate cooperatively with an actuator to cooperatively dispense the flowable food product (e g., from the bottles 114 shown in FIG. 2). In some examples, the actuator may dispense the flowable food product based on a ratio or percentage received from the input devices 412 and / or saved in the memory 404. The actuator can be, for example, a linear actuator, a rotary actuator (e.g., a motor), etc., that can operate the pump 414. The pump 414 can be a piston pump, a rotary pump, or another type of pump and the actuator can actuate the pump 414 via a direct connection or an indirect connection (e.g., a geartrain, linkage, or the like). The pump 414 may be selectively actuated using the controller 401. For example, inputs to the display 410 may cause the controller 401 to acuate the actuator and the pump 414 to dispense the flowable food product. The dispensing system 200 may utilize one or more sensors 418 to sense a presence of a surface (e.g., a bowl, a plate, or a food item) prior to dispensing the flowable food product. Further, one or more valves 416 can be provided for the dispensing system 200, which can be opened (e.g., fully or partially opened) or closed selectively control a flow of fluid through all or a portion of a line in response to a control signal from the controller 401 (e.g., by opening or blocking a flow path).

[0047] A control system for a dispensing system can operate processes that can be responsive to user input at a UI (e.g., a UI presented at the control panel 110 of the dispensing system 100 shown in FIG. 1, or at the display 410 of the dispensing system 200 shown in FIG. 4) to perform operations of the dispensing system. For example, in some cases, a UI can be designed to guide a user through steps of a process of the dispensing system (e.g., a setup process, a cleaning process, a priming process, a servicing process, etc.). Visual elements of a UI, and algorithms and code for implementing a process in conjunction with a user input via the UI can be stored at a- 11 -QB\850724.00201\98331610.1memory of the dispensing system (e.g., the memory 404 of the dispensing system 200 shown in FIG. 4) and can be accessed by a processor (e.g., the processor 402 of the dispensing system 200 shown in FIG. 4) to implement the process.

[0048] FIG. 5 illustrates an example process 500 for preparing a dispensing system (e.g., dispensing systems 100, 200 shown in FIGS. 1-3 and 4 respectively) for a cleaning operation. As described below, a particular implementation can omit some or all illustrated features / steps, may be implemented in some embodiments in a different order, and may not require some illustrated features to be implemented in all embodiments. In some examples, an apparatus (e.g., computing device, processor with memory, a battery management system, etc.) can be used to perform example process 500. However, it should be appreciated that any suitable apparatus or system for carrying out the operations or features described below may perform process 500.

[0049] At block 502, a cleaning method for the dispensing system can be selected. For example, the selection can be made by a user through a UI presented at the control panel 110 of the dispensing system 100 shown in FIGS. 1-3. FIG. 6 illustrates an example UI frame 600 through which a user can select a cleaning method for a dispensing system (e.g., for one or more lines of the dispensing system). In the illustrated example of FIG. 6, a user is presented the option to select either of a “Food Safe Sanitizer” (i.e., Kay-5 solution) or a “Detergent Water Solution” via buttons 605a and 605b presented at the UI frame 600. In some examples, a user can have additional options for cleaning methods for a dispensing system.

[0050] With reference back to FIG. 5, at block 504, a motor board list can be cleared and populated. The motor board list can be a data structure stored in a memory of the dispensing system (e.g., memory 404 of dispensing system 200) and can indicate a configuration of the dispensing system. The motor board list can include information about motors (e.g., pump motors) of cabinets associated with the dispensing system. In some cases, a motor board list can be a list of lists, a list of objects, a dictionary, etc. In some cases, the motor board list can define an attribute whose value can indicate a configuration of the dispensing system.

[0051] At block 506, cabinet configurations are determined. In some examples, the configurations may be determined using one or more configuration variables. A configuration variable (e.g., an attribute) of the motor board list can include an integer value, and different integer- 12 -QB\850724.00201\98331610.1values can correspond to different known configurations of the dispensing system. In an example, a value of “1” for the configuration variable can indicate that the system is configured with 14 thin lines (e.g., lines for low-viscosity fluids). A value of “2” for the configuration variable can indicate that the dispensing system is configured with 10 lines including 2 thick lines (e.g., lines for high- viscosity fluids) and 8 thin lines. Further, a value of “3” for the configuration variable can indicate that the system is configured with 14 lines including 6 thick lines and 8 thin lines, with 4 spaces for large bottles. In other example, additional values can indicate further configurations. A dictionary can be stored in a memory of the dispensing system (e.g., the memory 404 shown in FIG. 4) that can map each variable value to the configurations that the value indicates. In some cases, the cabinet configuration can be detected manually (e.g., upon an electrical connection of elements of a dispensing system, a controller of the dispensing system can “discover” elements through unique IDs and determine a configuration value based on the discovered elements). In some cases, a configuration can be determined based on a user input (e.g., a user can select from a list of configurations upon a set-up of a dispensing system at a user interface).

[0052] At block 508, lines of the dispensing system can be “grouped” into data structures to correspond to the cabinets associated with the lines. A group of lines can be referred to as a “set” of lines, and, as used herein, either of “group” or “set” can be inclusive of a single line, or more that one lines. For example, line information can be grouped by cabinet and stored in a data structure in a memory of the dispensing system. A dispensing system can include a persistent configuration data structure (e.g., a yaml file, ajson file, a xml file, a database, etc.) that can store line grouping information, which can be referenced in processes of the dispensing system (e.g., cleaning processes, priming processes, dispensing processes, etc.). A list of lines can be generated for each cabinet, and can be stored at a corresponding dictionary entry of the persistent configuration data structure. Below is an example data structure of a file including grouped lines for the dispensing system 100, shown in FIGS. 1-3. As shown, the data structure can include a cabinet type (e.g., corresponding to a size and capacity of the cabinet). The top entry can correspond to cabinet 106, including lines 1-6 (i.e., as shown in FIGS. 2 and 3) and can have a type of “B” As shown, lines 1-6 are included in a list labeled “groupedLines” for the cabinet. The second entry can correspond to cabinet 104, and can have the same type “B” as cabinet 106, indicating that cabinets 104 and 106 include the same configuration. The “groupedLines” of the second cabinet in the data structure can correspond to a list including lines 7-12. As shown, the- 13 -QB\850724.00201\98331610.1final cabinet in the data structure can have a type “C”, and can correspond to the cabinet 102, which, as illustrated in FIGS. 2 and 3 include two positions for bottles. In other examples, a data structure can be organized in any manner that can associate lines with corresponding cabinets.[[cabinets]] type = "B" groupedLines = [1, 2, 3, 4, 5, 6][[cabinets]] type = "B" groupedLines = [7, 8, 9, 10, 11, 12] [[cabinets]] type = "C" groupedLines = [13, 14]

[0053] At block 510, the dispensing system can wait for further input from a user regarding how to proceed. In some examples, a prompt can be provided at a display of the dispensing system to solicit an input or selection from the user. For example, the UI can present a prompt to a user to confirm that the line groupings generated at block 508 are correct. In some cases, a UI can request confirmation that a manual action has occurred before proceeding with a process. FIG. 7 illustrates example prompts that can be provided to a user at a UI 700 (e.g., a UI at control panel 110 shown in FIGS. 1 and 2, or the display 410 shown in FIG. 4, etc ). As shown in FIG. 7, a prompt 705 can include instructions for a hose setup for a cleaning operation (e.g. a manual action), and can instruct the user to “insert bottle tubes into all the pump fittings.” A user can provide confirmation that the action has been taken (e.g., at a UI button 710) and the UI 700 can proceed to the next frame. In the illustrated example, the user is provided with three prompts corresponding to a hose setup, a solution setup, and a container setup. In other examples, a user can be prompted with more, fewer or different instructions to implement a cleaning procedure for the dispensing system.

[0054] FIGS. 8A-8C illustrate a flowchart for a process 800 of cleaning a dispensing system, according to some examples. The process 800 can be at least partially implemented at a controller (e.g., the controller 401 shown in FIG. 4). In some cases, portions of the process 800 can include guiding a user through the process 800 and receiving a user input (e.g., at a touchscreen display) to perform or confirm steps of the process 800. At block 802, the process can iterate through lines of the dispensing system. Iterating through lines can include selecting a line from a- 14 -QB\850724.00201\98331610.1data structure. In some cases, iterating through lines can also include iterating through defined sets of lines (e.g., iterating through individual sets of lines associated with individual cabinets). For example, the process 800 can be initiated for a particular cabinet of a dispensing system, and iterating through lines at block 802 can include selecting one of the lines listed in a list data structure associated with the cabinet, as described above. In some cases, the process 800 can be initiated in response to a user input. For example, the process 800 can initiate once a user has confirmed that a cleaning setup has been completed (e.g., by selecting “Begin Cleaning” at the ultimate display frame shown in FIG. 7). In some cases, a user can preselect a cabinet for a cleaning operation. In other cases, the user can initiate the process 800 manually, independent of whether a cleaning operation has been completed.

[0055] At block 804, the process 800 can include checking for ungrouped lines. An ungrouped line can be a line that is not associated with a cabinet in a data structure (e.g., in a memory of the dispensing system). In some cases, ungrouped lines can be detected from sensors or detected attributed of the system. For example, in some cases, a control system of the dispensing system can detect which ports of a dispensing unit have lines connected (e.g., a hosing 116 can be connected to a particular port 118 of the dispensing unit 108 as shown in FIG. 3, and a control system of the dispensing unit 108 can detect the connection). In some cases, ungrouped lines can be determined from a user input. For example, a user can set or confirm (e.g., at a UI) a line assignment to a cabinet, and a control system of the dispensing system can determine if any lines remain ungrouped after a user input.

[0056] At block 806, the process 800 can determine attributes of the dispensing system from the number of ungrouped lines. For example, a number of ungrouped lines can correlate to a cabinet type with which the ungrouped lines are associated. In some cases, a capacity of a cabinet (e g., a capacity for large or small bottles) can be at least partially determined from a number of ungrouped lines. In some cases, a control system of a dispensing system can have stored thereon a mapping (e.g., a dictionary, object, list of key-value pairs, database, etc. stored in the memory 404 shown in FIG. 4) of the bottles in a cabinet. In an example, if the number of ungrouped lines is greater than or equal to 2 and less than 4 (e.g., 2 or 3) the control system can determine that the cabinet with which the lines are associated receives only small bottles, and the lines can be configured for thick or thin flowable product (e.g., the cabinet can be a “C” type cabinet, as shown above). In some cases, if the number of ungrouped lines is 4 or 5, the control system can determine- 15 -QB\850724.00201\98331610.1that the lines are associated with a cabinet that supports large bottles that can include thick or thin flowable product. Further, if the number of ungrouped lines equals 6, the control system can determine that the cabinet includes small bottles only, and the associated lines can be configured for thick or think flowable product. In other examples, other cabinet configurations can be identified from a number of ungrouped lines. In some cases, a user can confirm a determination of a cabinet configuration (e.g., at a prompt of a display). If no ungrouped lines are identified at block 704, this can indicate that all lines have been assigned to cabinets. In some cases, at block 704, a data structure can be created for the ungrouped lines (e.g., similar or identical to the data structure generated at block 508 of process 500 shown in FIG. 5.

[0057] At block 808, the control system can detect elements and attributes of the dispensing system. For example, a controller (e.g., the controller 401 shown in FIG. 1) can detect motors (e g., motors of pumps) for the identified cabinets. Motors can be detected through a communication with the motor (e.g., an electrical signal from the motor). In some cases, pumps and motors of pumps can include a local memory, and can provide attributes of the motor or pump (e.g., a unique ID, specifications, etc.) to the control system. In some cases, a control system can compare information detected about motors (e.g., from a communication or electrical signal) with expected information about the motors. For example, a control system can have stored thereon an expected motor configuration for each potential cabinet type of the dispensing system, and the control system can perform a lookup for motor information based on information of a cabinet. In some cases, motor information can be determined from a user input (e g., at the display control panel 110 shown in FIGS. 1-3). For example, a user can input cabinet types for the system at a UI, and the control system can derive motor types from the cabinet types (e.g., via a lookup). In some cases, at block 808, a current of fluid flowing through lines of the dispensing system can be detected. For example, the dispensing system can initiate a pumping of fluid (e.g., cleaning fluid) through the lines (e.g., through providing a signal to activate motors of pumps of the dispensing system). Sensors (e.g., flow sensors) can be provided for each line to detect a flow of fluid through the line (e.g., differential pressure flow sensors, thermal flow sensors, positive displacement flow sensors, turbine flow sensors, magnetic induction flow sensors, vortex flowmeters, etc.), and can provide a signal to a control system indicating an existence or amount of flow through the respective lines. In some cases, flow can be derived from sensing other parameters of the system. For example, a flow can be detected from a speed or torque of a pump (e.g., a pump motor). A- 16 -QB\850724.00201\98331610.1pump can operate at a first speed in response to a signal when there is no flow (e.g., no resistance) and can operate at a slower speed, or otherwise experience greater resistance when a flow of fluid is induced through a corresponding line of the dispensing system. A flow of fluid through a line can thus be derived from a measured pump speed in some cases (e.g., through use of a Hall sensor).

[0058] At block 810, the control system can determine if the expected currents have been found. An expected current can be a current through one or multiple lines through which the control system has initiated a pumping operation. In an example, the process can determine whether all lines of a given cabinet have a current of liquid flowing through them. At block 812, if all expected lines are found, the process can proceed with a cleaning procedure. In some cases, at block 812, an indication can be provided to an operator communicated that all expected currents have been found. For example, a UI of a display (e.g., the control panel 110) can iterate through lines and display a confirmation that individual lines have been found (e g., a motor corresponding to the line has been detected) and that a fluid is flowing through the respective line.

[0059] At block 814, a determination can be made of whether a number of lines for a given cabinet is correct. For example, a display of the dispensing system can display a pop-up prompting a user to confirm that the lines for the cabinet are correct. The prompt can include a list of lines and corresponding numbers of the lines. In some cases, a user can amend the line information, including, for example, by indicating a line assignment for the cabinet, changing a number of lines associated with the cabinet (e.g., via an input provided at the display), etc.

[0060] At block 816, a data structure for the ungrouped lines can be saved to a memory of the dispensing device (e.g., the memory 404). The structure can include a list of lines and a corresponding cabinet. Further, the data structure can include line information, including, for example, bottle size and an indication of an allowable viscosity (e.g., one of thick or thin) of a flowable liquid for use in the line. In some cases, attributes can be associated individually with each line in a data structure (e.g., each line can have a corresponding object including key value pairs for attributes of the line). In some cases, line information can be derived from a cabinet type, as described above. Saving a data structure at block 816 can include writing the data structure to a persistent memory (e.g., ROM) of the dispensing system, as can advantageously allow for retrieval of the information even after a system restart of the dispensing system.

[0061] At block 818, a clean can be performed on the lines. In some cases, cleaning is performed iteratively for the lines of a particular cabinet. Cleaning can include operating pumps- 17 -QB\850724.00201\98331610.1of the lines to pump a cleaning fluid (e.g., one of Kay-5 Solution or detergent water solution, as shown in FIG. 6.) through the respective lines. In some case, an operator can manually set the lines up for cleaning by connecting the lines of the cabinet to be set up to tubes of cleaning solution, as shown in FIGS. 7 and 9. Cleaning can be performed iteratively or simultaneously on the lines (e.g., on sets of lines). As illustrated in FIG. 9, a UI 900 can display a progress of a cleaning operation. For example, the UI 900 may display a one or more progress indicators 905, showing which lines have completed the cleaning process. Once a cleaning has completed, a communication can be displayed to the user at the display to indicate the completion. In some cases, a user can be prompted with a prompt asking if additional cabinets need to be set up. The process 800 can be repeated for each cabinet until an indication (e.g., an affirmation provided by a user) that all the lines of the respective cabinets have been cleaned.

[0062] If, at block 810, expected currents are not found, the process 800 can proceed to block 820, as illustrated in FIGS. 8 A and 8B. At block 820, a determination can be made whether all lines (e.g., lines corresponding to the detected motors at block 808) lack a current flow, or whether only a portion lack current. If all lines lack current, this can indicate a mismatch between the motors detected and the lines. Thus, if all lines lack current, the processes can proceed to block 824 to determine if alternate motor board lists are available. Motor boards can be defined in a configuration file, for example, and can each correspond to a cabinet of a dispensing device. If other motor board lists are defined and the process has not performed a retry, the process 800 can proceed to block 826 and change a motor board list. Changing a motor board list can include changing a value of a variable in a memory of the dispensing device to a value corresponding to the new motor board list. In some cases, a unique ID can be defined for a motor board that can be used by a controller of the dispensing system to communicate with the motor board. In some cases, an address (e.g., a CAN bus address) for each motor board can be defined in a configuration file or object in memory, and the dispensing system can change a current value for a motor board list to another of the motor board IDs or addresses. When the motor board list is updated, the controller (e.g., controller 401 shown in FIG. 4) can be in direct communication with the motors of the motor board list (e.g., the motors associated with the cabinet of the motor board list). The process can return to block 808 and detect a current flow through the lines, as described above. If no further motor board lists are defined at block 824, or if a retry has already be performed (e.g., a retry to induce a current flow through the lines by providing a signal form the controller to the detected- 18 -QB\850724.00201\98331610.1motors), an alert can be generated for an operator at block 828 indicating that no current has been detected on lines of the dispensing system. The alert can be an alert displayed at a UI of the dispensing system (e.g., at the control panel 110 of the dispensing system 100 shown in FIG. 1, or at the display 410 of the dispensing system 400 shown in FIG. 4). In some cases, the alert can be communicated to an operator over a network connection (e.g., to a tablet, a computer, a cell phone, etc.). In some cases, an input can be required from a user at block 828. For example, an operator can engage with a button element on an UI (e.g., through a touch screen engagement) to acknowledge the alert, or to affirm that a task has been completed (e g., disconnecting lines, rewiring lines, etc.).

[0063] If the control system determines that one or more lines have a current at block 820, the process 800 can proceed to block 830 to determine if the lines with a current are the first lines of the list (e.g., the first two lines in the list, the first four lines in the list, etc ). If only the first two or four lines of the cabinet have a current, the process can proceed to block 814 and prompt an operator to confirm if the number of lines is correct. For example, in some cases, a subset of lines in a cabinet can be connected (e.g., only the first two of 6 lines), and an operator can provide confirmation (e.g., via a button element presented at a UI) that the number of lines is correct when only the subset of possible lines include a current.

[0064] If, at block 830, the first two or four lines are not the lines with current, the process 800 can proceed to block 832 to determine if only the last 2 or 4 lines have current. For example, with reference to the sample data structure provided above, the process can determine at block 832 that only 3, 4, 5, 6 of the first cabinet listed have a current, or that only lines 5 and 6 have a current. If current is detected at the last two or four lines, at block 834, a start of the set of lines can be changed to the last 2 or 4 lines. In some cases, changing a start of a set of lines can include updating the data structure defining the cabinet by removing undetected lines from a list, or overwriting a list in a memory with an updated list including the lines that were previously listed as the least four or last two lines in the set. For example, if a set of lines included lines 1, 2, 3, 4, 5, and 6, but a current was only detected for lines 3, 4, 5, and 6, the list of lines for the cabinet can be updated in memory to start at line 3 and include lines 3-6. In some examples, other number of lines can be used. For example, a dispensing system can determine if the last three lines of a set have a current. Once the start of the set has been updated, the process can return to block 806 and perform detection of motors and currents in view of the updated line grouping.- 19 -QB\850724.00201\98331610.1

[0065] If at block 832 current is not detected on one of lines of either the last two lines or the last four lines, the process can proceed to block 842, shown in FIG. 8C and determine if any lines have a current. If one or more lines have a current, at block 840 an alert (e.g., a visual alert at a display of the dispensing system) can be generated communicating to the operator that a cabinet has been identified, but that an error or configuration for certain lines is preventing a proper grouping of the lines (e.g., the lines for which current is not detected). For example, a n error message can include an indication of which lines in a sequence are detected or not detected, an indication that no lines are detected, or that only even or only odd numbered lines are connected. Example error messages can include “Only connect sequential lines,” “Only connect even numbers of lines,” “No connected lines detected,” etc. In some cases, at block 840, a display can show which lines have a current, and which lines do not have a current. In some cases, instructions for troubleshooting or mitigating the issue can be provided at the display. Concurrently or subsequently to displaying the alert at block 840, the dispensing system can wait for a user input at block 850. In some cases, a user input can comprise an acknowledgement of the error. In some cases, a user input can include a manual selection of lines for a cabinet, and an instruction to restart all or a portion of process 800.

[0066] If, at block 842, no currents are identified, the controller (e.g., the controller 401 shown in FIG. 4) can evaluate if a start of the temporary set of lines (e.g., the set of lines identified in block 804-808 shown in FIG. 8A) can be iterated to the next sequence of lines. For example, the controller can determine if a temporary set of lines can be generated with a starting line being iterated by one from the final line in the originally identified set of lines. So, where the temporary set includes lines 1-6, the controller can determine if it is feasible to iterate to lines 7-12 instead. Evaluating a feasibility of iterating a set can include determining if lines of the updated set are connected. For example, with reference to FIG. 3, if a maximum number of lines in a configuration of a dispensing system is 14, an iterated temporary set cannot be generated for an original temporary set with a final line of “14.” If the lines of the set can be iterated at block 844 (e.g., if a new temporary set can be generated starting from the last line of the current set + 1), the start of the temporary set can be changed to the last line of the current set + 1 at block 848. In some cases, a data structure (e.g., a list, a dictionary, key-value pairs, etc.) can be updated with the new values for the lines. The process 800 can return to block 806 to detect current based on the updated lines of the temporary set.- 20 -QB\850724.00201\98331610.1

[0067] If, at block 844, a new temporary set cannot be generated based on an iteration from the final line of the current set, at block 846 an alert can be provided to an operator (e.g., via a UI of the control panel 110 as shown in FIG. 1, or of the display 410 shown in FIG. 4). The alert can be a visual element of a UI displaying error information (e.g., similar to the alert shown at block 840). A message of the alert can indicate that no cabinet is detected, and that lines of the dispensing system potentially have issues (e.g., are not properly connected, are blocked, do not match an expected configuration for the line, etc.). The process 800 can proceed from block 846 to block 850 where the process 800 can await further input from the user.

[0068] If, at block 814 (shown in FIG. 8A), an operator determines that the number of cabinet lines is incorrect, the process 800 can proceed to block 836 to determine if there are six lines with current. If there are six lines with current, at block 838, an alert can be generated (e.g., at a UI, similar to alerts generated at blocks 840 and 846). The alert can include an indication that a potential cabinet has been detected, and an instruction to disconnect lines outside of the cabinet if too many lines are detected. If six lines with current are not identified at block 836, the process 800 can proceed to block 840, as described above.

[0069] FIGS. 10A-10C illustrate a process 1000 for preparing and priming lines of a dispensing system (e.g., the dispensing system 100 shown in FIGS. 1-3, the dispensing system 400 shown in FIG. 4, etc.). The process 1000 can be implemented either wholly or in part by a control system of the dispensing system (e.g., the controller 401), and instructions for executing the process 1000 can be stored in a memory of the control system (e.g., the memory 404).

[0070] At block 1002, an operator (e.g., a user) can add a product to the dispensing system. In some cases, adding a product includes inputting information of the product into the dispensing system via an input. For example, the operator can access a form on a UI at a display (e.g., the control panel shown 110 shown in FIGS. 1 and 2) to input attributes of the product. In some examples, the UI may prompt a user to specify a percentage of a drink volume that is to be composed of one or more flavored products (e.g., syrups). For example, the user may allocate percentages of selected flavors using a recipe editing screen and / or settings menu. FIG. 11, for example, illustrates a UI frame 1100 at which a user can at least partially add a product. In the illustrated example of FIG. 11, an almond flavored product and a blue raspberry flavored product (e.g., syrups) have been added, as indicated by icons 1105 and 1110, respectively. Moreover, the UI frame 1100 presents an option to add further flavors using button 1115. In some examples, the- 21 -QB\850724.00201\98331610.1UI frame 1 100 may further allow the user to define a percentage for each flavor upon selecting buttons 1105 and 1110. FIG. 12 illustrates an example UI frame at which an operator can define attributes of the product. For example, as shown, the operator can select a bottle size for the product. While the illustrated example show two possible bottle size options (e.g., 24.5 oz, and 33 oz.), in other examples, any number of bottle sizes can be defined, including, for example, user- defined sizes. An operator can further define a viscosity parameter for an added product at block 1002, as illustrated in an UI frame 1200 of FIG. 12. For example, FIG. 12 presents a selection interface 1205 to define a viscosity as one of “Thin” and “Thick,” with “Thick” corresponding to a greater viscosity than “Thin.” In some examples, additional parameters can be defined for a product (e.g., a flowable fluid) upon adding the fluid via a UI, such as a quantity of suspended particulates.

[0071] At block 1004, the controller can determine if the dispensing system includes an available line capable of supporting the bottle size defined for the product.(e.g., the bottle size defined at block 1002). In some cases, different cabinets of a dispensing system can include capacity for different sized bottles (e.g., the lines cabinet 102 shown in FIGS. 1-3 can support a 33 oz. bottle, while the lines of the cabinets 140 and 106 can only support a 24.5 oz. bottle). If the bottle size defined for the product exceeds a size capacity for available lines of the dispensing system, a warning message can be constructed to indicate that the line is does not have capacity for large bottle at block 1006. The warning can include a message to the operator indicating that the dispensing system does not have “large” lines. In some cases, a warning can include a message indicating that a large line is not currently available, but is assigned to another product. If the dispensing system includes lines capable of supporting the specified bottle size at block 1004, or after the warning message is constructed at block 1006, the control system can proceed to block 1008 to determine if the dispensing system includes a line capable of supporting the defined viscosity for the product. If the dispensing system does not support the defined viscosity, at block 1010, the warning message can be amended (e.g., content can be appended to the warning message, content of the warning message can be replaced or removed, etc.) to include a warning that there are no “thick” lines available at block 1010 (e.g., the dispensing system does not have hick lines, or existing thick lines have been assigned to other products). While the determinations of whether lines of the dispensing system support the defined bottle size at block 1004 and whether the lines- 22 -QB\850724.00201\98331610.1of the dispensing system support the defined viscosity at block 1008 are shown in a sequence, in some cases, these determinations can be made in any order or in parallel.

[0072] After either of a determination that the dispensing system includes a line that supports the defined viscosity at block 1008, or the amendment of the warning message at block 1010, the control system can determine if there are errors at block 1012. Determining if there are errors can include checking a memory to see if any warning message resulted from blocks 1006 and 1010 (e.g., if either or both of the lines of the dispensing system do not support the defined bottle size for the product, or the defined viscosity of the product). If there are errors, or warnings, at block 1014, the warnings can be presented to the operator (e.g., via a UI at the control panel 110 shown in FIGS. 1 and 2). FIG. 13 illustrates a warning message 1300 that can be presented to an operator at a UI when the controller determines that the lines of the dispensing system do not support a defined viscosity (e.g., FIG. 13 illustrates an example of the warning message generated at block 1010). FIG. 14 illustrates a warning message 1400 that can be presented to an operator at the UI when the controller determines that the lines of the dispensing system do not support a defined bottle size (e.g., FIG. 14 illustrates an example of the warning message generated at block 1006). At block 1016, an operator can determine whether to ignore the warnings displayed at block 1014. For example, both of FIGS. 13 and 14 illustrate a “DISMISS” UI button 1305, 1405 that can be engaged (e.g., tapped) by the operator to dismiss the respective warning. If the user does not ignore the warning, the user can edit the product at block 1018. Editing the product can include changing a defined attribute of the product (e.g., via the UI frame 1200 shown in FIG. 12). For example, in some cases, the user can reduce a define bottle size for the product, or reduce a defined viscosity.

[0073] If there are no errors at block 1012, or if an operator ignores the warnings at block 1016, at block 1020, a line can be claimed for the product. The line can be a line that is capable of supporting the defined characteristics of the product. For example, with reference to FIGS. 1-3, the cabinet 102 can be a cabinet with bays that are capable of receiving bottle sizes of either 24.5 oz, and 33 oz., and the lines of cabinet 102 (e.g., lines 13 and 14) can be “thick” lines, capable of supporting a flow of higher- viscosity products (e.g., thicker syrups). The cabinet 104 can have bays for receiving small bottles (e.g., 24.5 oz) and the lines of cabinet 104 (e.g., lines 7-12) can be thick lines. The cabinet 106 can have bays for small bottles, and the lines of cabinet 106 (e.g., lines- 23 -QB\850724.00201\98331610.11 -6) can be capable of supporting only thin lines. However, other combinations of bottle sizes and line thicknesses are possible.

[0074] In this example, a control system of the dispensing system 100 (e.g., the controller 401 for the dispensing system 400) can determine if an available line can support defined characteristics of a product. Where a user defines a product having a 24.5 oz. bottle and a “thin” viscosity, the control system can determine if any of lines of cabinet 106 (e.g., lines 1-6, supporting only supporting small bottles and thin viscosity) are available, and if so, the line is claimed for the defined product at block 1020. Claiming a line can comprise reserving the line in a control system of the dispensing system. For example, a line assignment for a product can be stored in non-volatile memory as a configuration of the dispensing system when the line is claimed at block 1020. Continuing with the example above, if a product is defined with a 33 oz. bottle and a thick viscosity, the control system can attempt to claim either of lines 13 or 14 for the product (e.g., the lines of cabinet 102) at block 1020. If the product is defined with a 24.5 oz bottle size and a thick viscosity, the control system can attempt to claim the first available one of lines 7-12.

[0075] At block 1022, the process 1000 (e.g., as implemented at a control system of the dispensing system, such as the controller 401 illustrated in FIG. 4) can determine if a line has been successfully claimed for the product added at block 1002. If a line has been successfully claimed at block 1020, the process can proceed to block 1036, shown in FIG. 10C, and determine if all lines of the dispensing system have been claimed. With reference to FIGS. 1-3, the system can determine if each of lines 1-14 have been associated with a corresponding product (e.g., a product defined by an operator at a UI interface of the dispensing system). If there are unclaimed lines, the process can proceed to block 1038 and provide a prompt to an operator to either complete the product addition process (e.g., by initiating the process 1000 again for another product) or by continuing to a priming portion of the process 1000. FIG. 15 illustrates an example prompt 1500 that can be provided to the operator at block 1038. If at block 1036 all lines have been claimed, the process 100 can provide a prompt to an operator (e.g., through a UI provided at a display of the dispensing system) indicating that all lines are assigned. In some cases, the prompt can include instructions for physical actions for the operator to take in light of the line assignments. For example, once the lines have been assigned, an operator can be prompted to place bottles of the products in corresponding bays of the cabinets of the dispensing system, and connect the bottles to the corresponding lines. FIG. 16, for example, illustrates a prompt 1600 that can be provided to- 24 -QB\850724.00201\98331610.1an operator upon completion of line claiming (e.g., at block 1040). As shown, the prompt at FIG. 16 includes a line-specific instruction 1605 to connect a tubing for line 1 to a bottle cap adapter for the “almond” product (e.g., the almond product illustrated in FIG. 12).

[0076] At block 1042, an operator can initiate a priming process. As illustrated in FIG. 16, priming can be initiated for particular lines, and can be performed a line at a time. Initiating a priming can requires that a bottle for the respective product be connected to the line. Priming can include pumping a product through the line to ensure a product flow through the line, and ensure no air is in the line. Priming the line can ensure that subsequent pumping of the product can include accurate portions of pumped product. At block 1044, the process 1000 can iterate through the lines of the dispensing system to prime each claimed line. For example, when a line is primed, the control system can display a prompt to the operator (e.g., similar to the prompt shown at FIG. 16) for the next claimed line, at which the operator can initiate a priming of the subsequent line (e.g., through engagement of a button element at the UI). In some cases, the process can iterate through the lines automatically, without requiring an input from an operator. At block 1046, the priming process can be complete, and a prompt can be displayed to the operator indicating completion of the process.

[0077] Referring back to FIG. 10A, at block 1022, if a line has not been successfully claimed for the product (e.g., the product defined at block 1002), the process can proceed to block 1024, shown in FIG. 10B, and can attempt to claim a line having a greater thickness or size capacity. In some cases, for example, no lines are available for the product bottle size and viscosity defined at block 1002. In some cases, all lines corresponding to the bottle size and viscosity defined have been claimed for other products. The process 1000 can proceed to block 1024 if a line has not been successfully claimed at block 1022, and the control system for the dispensing system can determine whether a line supporting greater viscosity than the defined viscosity can be claimed. In some cases, a line that can support high viscosity products (e.g., a thick line) is capable of supporting products having lower viscosities, and can be claimed for a product having a lower viscosity than the line is rated for. Continuing with the example provided with respect to the dispensing system of FIGS. 1-3, a product can be defined having a small (e.g., 24.5 oz.) bottle size and a “thin” viscosity. If none of lines 1-6 are available, the control system for the dispensing system 100 can determine if any of lines 7-12 (i.e., lines corresponding to a 24.5 oz. bottle size and supporting “thick” products) are available. If any of lines 7-12 are available, the first available - 25 -QB\850724.00201\98331610.1line of lines 7-12 can be claimed at block 1026. If no thick lines are available for a low viscosity product, at block 1034, an alert can be generated communicating the unavailability of lines for the given product (e.g., via a prompt at a UI displayed at the control panel 110). Similarly, if a bottle size is defined as 24.5 oz, but no lines corresponding to that size are available, the process 1000 can determine if a line rated for a larger bottle size can be claimed. For example, with reference again to the example of FIGS. 1-3, if a product is defined with a bottle size of 24.5 oz, and all of lines 1-12 are claimed, the control system of the dispensing system can determine if either of lines 13 or 14 are claimed at block 1024. If one of lines 13 or 14 are not claimed, then, at block 1026, the line can be claimed for the product. In some cases, a line can support any bottle size equal or less than the bottle size for which the line is rated (e.g., a “large” line supporting 33 oz. bottles can be usable for bottles smaller than 33 oz.). If the line is successfully claimed at block 1028, the process 1000 can proceed to block 1036, as described above. If a line is not successfully claimed at block 1028, an alert can be generated (e.g., a prompt or modal at the UI of the display for the dispensing system) communicating the failure to the operator.

[0078] A setup process for a dispensing system can include configuration of attributes and settings of the dispensing system. FIG. 17, for example, illustrates a setup process 1700 for a dispensing system (e.g., either of dispensing system 100 shown in FIGS. 1-3 and dispensing system 400 shown in FIG. 4). While the blocks 1702, 1704, 1706 of process 1700 are shown in sequence, in some cases, the blocks can be performed in an order other than the illustrated order. In some cases, a process for setting up a dispensing system does not include one or more of the operations described below in blocks 1702, 1704, 1706.

[0079] At block 1702, one or more alerts can be configured for the dispensing system. For example, an operator can determine how alerts are provided to an operator. In an example, an alert can be displayed at a UI of the dispensing system, or at an indicator light of the dispensing system. In other examples, an alert can be provided to the operator through a notification at a remote device (e.g., a mobile phone, a tablet, a computer, etc.). For example, FIG. 18 illustrates a progression of a UI 1800 that can be used in configuring alerting for a dispensing system. In the first frame 1802, a network configuration can be set for the dispensing system. The dispensing system can be connected to a Wi-Fi network as shown, and an operator can select a network and enter a password for the network to allow the dispensing system to communication and receive communication over the network. In some cases, as discussed above with respect to dispensing system 400, a dispensing- 26 -QB\850724.00201\98331610.1system can communicate over other network types. At frame 1804, the operator can define thresholds for alerting. As shown, alerts can be configured to provide notifications when a product is low (e.g., when a level of product in a bottle corresponding to a line is below a certain percentage of a full volume for the bottle). For example, an operator can configure the dispensing system to generate a “Low Product” alert when a product is at 10% of a full volume, as shown, or another product level (e.g., 5%, 10%, 20%, 25%, etc., including any ranges therein). A level at which a “Low Product” alert is generated can be customizable by the user, and, as shown, a plurality of options can be provided to the user at the UI at frame 1804. As shown, other alerts can be set for the dispensing system. For example, a “Change Product” alert can be set, defining a level at which an operator is prompted to replace a product bottle for a given line. In the illustrated example, the “Change Product” alert is set to be generated when a product level is at or below 2% of a volume (e.g., a full volume of the bottle for the product), or another product level (e.g., 5%, 10%, 12%, 25%, etc., including any ranges therein). As further shown, a dispensing system can provide an option to generate a notification to another device (e.g., via an application installed on a phone of the operator). For example, a phone of an operator can be connected to the dispensing system through a Bluetooth connection, and the dispensing system can communicate either of a “Low Product” or “Change Product” alert to the phone of the operator when a level of a product falls below the respective threshold. As shown in frame 1806, a Bluetooth connected device can be selected to receive notifications of alerts, and an operator can select which alerts are sent to the device.

[0080] At block 1704, a dispensing rate of the dispensing system can be calibrated. The calibration can be specific to a given product and can determine a volume of product dispensed upon a dispensing command. The calibration can be set by adjusting an operating parameter of the dispensing system. FIG. 19 illustrates an example UI frame 1900 for calibrating a dispensing of a product, according to some examples. As shown, multiple size options 1905 can be provided for the product, corresponding to configured volumes of the product to be dispensed upon a dispensing command. In the illustrated example, a small, medium, and large size are defined. In other examples, fewer or more sizes can be provided. As shown, each of the small, medium and large sizes correspond to a volume of product to be dispensed upon selection of the given size (e.g., 1.125 oz., 2.5 oz., and 3.25 oz. respectively). An operator can test the programmed sizes by testing a dispensing of the size for the product and measuring the dispensed product (e.g., the - 27 -QB\850724.00201\98331610.1syrup) to determine if the amount of product dispensed is equal to the preset volume for the selected size. If the volume dispensed exceeds the preset volume, the operator can reduce a time of operation for the pump for the given size (e.g., at the UI frame 1900 illustrated in FIG. 19), and can subsequently measure a dispensed volume of the product. The pump time can be adjusted upwardly (increase time of operation) if a dispensed product volume is less than the preset volume, or downwardly (decrease time of operation) if a dispensed product volume is greater than the preset volume. Once the pump timing has been set for each size to achieve the desired dispensing volumes of the product, the operator can complete a dispensing operation for that product. In some cases, a calibration can be performed for each product. In some cases, a calibration can be performed for a group of products having similar characteristics. For example, a single calibration can be performed for “thin” products and the pump run-time set in the single calibration can be used for all thin products of the dispensing system. In other examples, controlling operation of dispensing operation can be based on another operating parameter, for example, a flow sensor, weight measurement, etc.

[0081] Referring back to FIG. 17, at block 1706, one or more recipes can be defined. Recipes can comprise combinations of products to be dispensed simultaneously (e.g., to produce a flavoring for a given drink). FIG. 20 illustrates UI frames that can be used to define recipes for the dispensing system, according to some examples. As show in UI frame 2000, an operator can select products (e.g., products corresponding to the lines claimed in the process 1000 shown in FIGS. 10A-10C) to be used in the recipe. In the illustrated example, three products are selected: Caramel, Chocolate / Mocha / Hazelnut. In some examples, any number of products can be combined in a recipe, from one product up to the total number of products (e.g., the number of lines) defined at a control system of the dispensing system. As further shown in the UI frame 2000, a name can be defined for the recipe (e.g., “Chocolate Caramel Nut Latte” as shown). The recipe name can be stored along the recipe in a memory (e.g., a persistent or non-volatile memory) of the dispensing system. In some cases, the recipe name can be used as a lookup key to identify additional aspects of the recipe (e.g., proportions of respective products) when the recipe is selected. Continuing, a UI can proceed to display the UI frame 2002 to provide an operator an interface at which to define sizes for which the recipe will be dispensed. For example, as shown at UI frame 2002, a small, medium, and large size (e.g., drink sizes of 16 oz., 20 oz., and 24 oz. respectively) can be selected as options for dispensing the combined products of the defined recipe. As shown in the UI frame - 28 -QB\850724.00201\98331610.12100 of FIG. 21 , an additional interface can be provided to define or modify respective portion sizes (e.g., volumes) of the ingredient products of the recipe. In the illustrated example, proportions of the products of a “Hot Mocha Mint” recipe are shown, and an operator is able to adjust the proportions. In the example shown, the proportions are shown for a large drink size (e.g., a large drink size defined at the UI frame 2002 shown in FIG. 20). As shown, volumes are defined for each of the “Chocolate Mocha,” “Peppermint,” and “Almond” products (e.g., syrups) that constitute the “Hot Mocha Mint” recipe. The UI frame illustrated provides an option to increment the respective volumes associated with each ingredient (e.g., to alter the recipe). In some cases, an operator can adjust proportions of ingredients in a recipe for a particular drink (e.g., the operator can provide a customized drink for a customer). In some cases, altering the proportions of products in a recipe can alter the recipe, and the updates can be stored in a configuration for the recipe and used for any subsequent instances of the recipe.

[0082] In some examples, the system may switch between a “pump mode” and a “ratio mode.” A main dispense screen may prompt a user to select how an amount of product should be adjusted (e.g., via a UI presented at the control panel 110 of the dispensing system 100 shown in FIG. 1, or at the display 410 of the dispensing system 200 shown in FIG. 4). FIGS. 22 and 23 illustrate example UI 220 and UI 230, which allow a user to adjust an amount of flavor syrup in the pump mode and ratio mode, respectively. For example, in the pump mode, the user may increase and / or decrease an amount of one or more syrups using buttons 2202. A value indicator 2204 may be presented, indicating a number of pumps selected for each given syrup. In the ratio mode, the user may also increase and / or decrease an amount of one or more syrup using buttons 2302. One or more value indicators 2304 may be presented, indicating a ratio between all selected syrups. For example, as illustrated in FIG. 23, the user has selected a size from the size options 2306, and has selected a ratio of one part mint to two parts hazelnut. FIGS. 24 and 25 illustrate additional UIs 2400 and 2500 that may be presented to a user to edit a recipe for a given drink or product type when the system is operating in pump mode and ratio mode, respectively. FIG. 26 further illustrates an example UI 2600 that may be presented to a user to customize a size of a cup by entering a size name 2602, as well as an amount of total volume 2604 corresponding to each size.

[0083] FIGS. 27 and 28 further illustrates UI 2700 and UI 2800 that may be presented to a user to further customize an amount of syrup in the pump mode and ratio mode, respectively.- 29 -QB\850724.00201\98331610.1While in the pump mode, the user may be prompted to enter an amount of product that is dispense during one pump via an input 2702, as illustrated in FIG. 27. Moreover, when the system is operating in the ratio mode, the user may be prompted to enter a percentage of a drink or product that is allocated to syrups via an input 2802, as illustrated in FIG. 28.

[0084] While the previous description discussed inputs and outputs of the dispensing system through a display, the disclosed systems and methods include interaction with the dispensing system through other means. For example, prompts can be provided to an operator at other displays, including, for example, at a web display of a mobile phone, a tablet or a computer. In some cases, a configuration of the dispensing system can be performed through provision of a configuration object to the dispensing system through an API or through a CLI.

[0085] This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to make and use the invention. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal languages of the claims.- 30 -QB\850724.00201\98331610.1

Claims

CLAIMSI / We claim:

1. A dispensing system comprising: a first cabinet including a plurality of bays, each bay sized to receive a reservoir of flowable food product; a dispensing unit including a plurality of ports, each of the plurality of ports configured to be in fluid communication with a reservoir of flowable food product; a plurality of lines of flowable food product, each line comprising a corresponding fluid connection between a reservoir of flowable food product and a corresponding port of the plurality of ports; a computing system including a memory and a processor, the processor configured to: detect one or more lines of flowable food product in communication with the dispensing unit, wherein detecting the one or more lines includes one of detecting pumps corresponding to the one or more lines and detecting fluid connections at the plurality of ports corresponding to the one or more lines; generate a data structure including a first set of the one or more lines, the data structure including a correlation between the first set of lines and the first cabinet; for each line of the first set of lines: provide, based on the data structure, a test signal to one of the one or more pumps, the test signal comprising an instruction to the pump to induce a fluid flow through the corresponding line; and receive a measurement of fluid flow through the line corresponding to the pump; and confirm, based on the measured fluid flow of the one or more lines a correlation between the one or more pumps and the corresponding one of the one or more lines; write the data structure to a persistent portion of the memory.

2. The dispensing system of claim 1, wherein the processor is further configured to:- 31 -QB\850724.00201\98331610.1receive, via a touchscreen display, an instruction to dispense a first flowable food product, the first flowable food product being associated with a first line of the one or more lines; determine, based on the data structure, a first pump associated with the first line; and provide a dispensing signal to the first pump to dispense the first flowable food product, wherein, in response to the dispensing signal, the first pump operates to induce a flow of fluid from a reservoir corresponding to the first flowable food product through a dispensing head of the dispensing unit.

3. The dispensing system of claim 1, wherein the processor is further configured to: determine, based on a measurement of fluid flow through one of the first set of lines, that a pump does not correspond to the line; and based on the determination that the pump does not correspond to the line, select a second set of lines of the one or more lines and replace, in the data structure the first set of lines with the second set of lines.

4. The dispensing system of claim 3, wherein the second set of lines is a subset of the first set of lines.

5. The dispensing system of claim 1, further including a second cabinet, wherein the processor is further configured to generate a second data structure including a third set of the one or more lines, the second data structure including a correlation between the third set of lines and the second cabinet.

6. The dispensing system of claim 1, wherein the processor is further configured to: select the first cabinet based on a comparison of the detected one or more lines of flowable food product to cabinet definitions stored at the memory, wherein the data structure is generated at least in part based on the selection.

7. The dispensing system of claim 1, wherein each of the plurality of lines including a corresponding viscosity rating and a bottle size rating, and wherein the processor is further configured to:- 32 -QB\850724.00201\98331610.1receive a product input, the product input including a viscosity value and a bottle size value for a first flowable food product; determine if one of the plurality of lines includes a viscosity rating that matches the viscosity value and a bottle size rating that matches the bottle size value; if the viscosity rating and bottle size rating of one or the plurality of lines matches the viscosity value and the bottle size value, associate, in the memory, the one of the plurality of lines with the first flowable food product; if none of the plurality of lines include a viscosity rating that matches the viscosity value and a bottle size rating that matches the bottle size value, determine if one of the plurality of lines includes a viscosity rating and bottle size rating capable of supporting the first flowable food product; if one of the plurality of lines includes a viscosity rating and bottle size rating capable of supporting the first flowable food product, associate, in memory, the one of the plurality of lines with the first flowable food product; and generate, at a display, a prompt including an instruction to fluidly connect a bottle containing the first flowable food product to the line associated with the first flowable food product.

8. The dispensing system of claim 7, wherein determining that one of the plurality of lines includes a viscosity rating and bottle size rating capable of supporting the first flowable food product includes determining that one of: the bottle size rating for the line corresponds to a larger bottle size than the bottle size value and the viscosity rating for the line corresponds to a higher viscosity than the viscosity value.

9. The dispensing system of claim 8, wherein the processor is further configured to determine if all lines of the plurality of lines are associated with a corresponding flowable food product, and if any lines of the plurality of lines are not associated with a corresponding flowable food product, provide, at the display, a prompt including instructions to provide an additional product input.- 33 -QB\850724.00201\98331610.

110. A non-transitory computer readable storage medium storing one or more programs configured for execution by a processor, the one or more programs comprising instructions that, when executed by the processor, cause the processor to: detect one or more lines of flowable food product in communication with the processor, wherein detecting the one or more lines includes one of detecting pumps corresponding to the one or more lines and detecting fluid connections at a plurality of ports corresponding to the one or more lines, wherein each line comprises a corresponding fluid connection between a reservoir of flowable food product and a corresponding port of the plurality of ports; generate a data structure including a first set of the one or more lines, the data structure including a correlation between a first set of lines and a first cabinet; for each line of the first set of lines: provide, based on the data structure, a test signal to one of the one or more pumps, the test signal comprising an instruction to the pump to induce a fluid flow through the corresponding line; receive a measurement of fluid flow through the line corresponding to the pump; confirm, based on the measured fluid flow of the one or more lines a correlation between the one or more pumps and the corresponding one of the one or more lines; and write the data structure to a persistent portion of the non-transitory computer readable storage medium.- 34 -QB\850724.00201\98331610.

111. The non-transitory computer readable storage medium of claim 10, wherein the instructions further cause the processor to: receive, via a touchscreen display, an instruction to dispense a first flowable food product, the first flowable food product being associated with a first line of the one or more lines; determine, based on the data structure, a first pump associated with the first line; and provide a dispensing signal to the first pump to dispense the first flowable food product, wherein, in response to the dispensing signal, the first pump operates to induce a flow of fluid from a reservoir corresponding to the first flowable food product through a dispensing head of a dispensing unit.

12. The non-transitory computer readable storage medium of claim 10, wherein the instructions further cause the processor to: determine, based on a measurement of fluid flow through one of the first set of lines, that a pump does not correspond to the line; and based on the determination that the pump does not correspond to the line, select a second set of lines of the one or more lines and replace, in the data structure the first set of lines with the second set of lines.

13. The non-transitory computer readable storage medium of claim 12, wherein the second set of lines is a subset of the first set of lines.

14. The non-transitory computer readable storage medium of claim 10, wherein the instructions further cause the processor to: generate a second data structure including a third set of the one or more lines, the second data structure including a correlation between the third set of lines and a second cabinet.- 35 -QB\850724.00201\98331610.

115. The non-transitory computer readable storage medium of claim 10, wherein the instructions further cause the processor to: select the first cabinet based on a comparison of the detected one or more lines of flowable food product to cabinet definitions stored at a memory, wherein the data structure is generated at least in part based on the selection.

16. A method comprising: detecting one or more lines of flowable food product, wherein detecting the one or more lines includes one of detecting pumps corresponding to the one or more lines and detecting fluid connections at a plurality of ports corresponding to the one or more lines, wherein each line comprises a corresponding fluid connection between a reservoir of flowable food product and a corresponding port of the plurality of ports; generating a data structure including a first set of the one or more lines, the data structure including a correlation between a first set of lines and a first cabinet; for each line of the first set of lines: providing, based on the data structure, a test signal to one of the one or more pumps, the test signal comprising an instruction to the pump to induce a fluid flow through the corresponding line; receiving a measurement of fluid flow through the line corresponding to the pump; confirming, based on the measured fluid flow of the one or more lines a correlation between the one or more pumps and the corresponding one of the one or more lines; writing the data structure to a persistent portion of a computer memory.- 36 -QB\850724.00201\98331610.

117. The method of claim 16, further comprising: receiving, via a touchscreen display, an instruction to dispense a first flowable food product, the first flowable food product being associated with a first line of the one or more lines; and determining, based on the data structure, a first pump associated with the first line; and providing a dispensing signal to the first pump to dispense the first flowable food product, wherein, in response to the dispensing signal, the first pump operates to induce a flow of fluid from a reservoir corresponding to the first flowable food product through a dispensing head of a dispensing unit.

18. The method of claim 16, further comprising: determining, based on a measurement of fluid flow through one of the first set of lines, that a pump does not correspond to the line; and based on the determination that the pump does not correspond to the line, selecting a second set of lines of the one or more lines and replace, in the data structure the first set of lines with the second set of lines, wherein the second set of lines is a subset of the first set of lines.

19. The method of claim 16, further comprising: generating a second data structure including a third set of the one or more lines, the second data structure including a correlation between the third set of lines and a second cabinet.

20. The method of claim 16, further comprising: selecting the first cabinet based on a comparison of the detected one or more lines of flowable food product to cabinet definitions stored at the memory, wherein the data structure is generated at least in part based on the selection.- 37 -QB\850724.00201\98331610.1

Citation Information

Patent Citations

  • Method and apparatus for pump control

    US20060292012A1

  • Controller-based management of a fluid dispensing system

    US20070095859A1

  • Automated Mixed Drink Dispenser

    US20160090288A1

  • Automated beverage generating system and method of operating the same

    US20160249766A1