Patent Description:
The same part numbers designate the same or similar parts throughout the figures.

In some 2D and 3D inkjet printers, the printheads are assembled in a printbar that spans a full width of the print substrate. Ink or another liquid is pumped to the printbar from a reservoir separate from the printbar to continuously supply the printheads with ink. A separate reservoir, pump, and flow path are used for each of the different color inks. This type of ink delivery system is sometimes called a continuous ink delivery system.

Currently, processes used to fill the reservoirs in a continuous ink delivery system may not accurately determine the volume of ink transferred from the supply containers to the printer reservoirs. The lack of accurate ink transfer data makes it difficult to reliably track and control ink supplies, particularly for print service providers managing fleets of printers. This difficulty increases when supply containers are partially emptied during fill. In addition, current fill techniques do not provide real time feedback during fill operations to monitor the transfer process.

A new transfer process has been developed to help accurately determine and control the volume of ink or other printing agents transferred from the supply containers to the internal reservoirs in a 2D or 3D printer. In one example, a process to fill a reservoir in the printer includes setting a unit to a total capacity of a container divided by an integer greater than <NUM>, sensing when a supply container is connected to the printer, and then transferring the printing agent from the container to the reservoir in set unit increments. For example, the unit may be set to <NUM>/<NUM>, <NUM>/<NUM>, or <NUM>/<NUM> the total capacity of the container. The process may also include setting a number of the units to transfer and transferring the set number of units from the container to the reservoir. The settings may be made by a user entering selections through a user interface or by default.

For example, a <NUM> liter (<NUM>) ink supply container may be divided logically into <NUM> discrete units by setting each unit at <NUM>. To fill a <NUM> liter ink reservoir that still contains <NUM>, the number of units to transfer may be set at <NUM>, and <NUM> units of ink totaling <NUM> pumped from the supply container into the reservoir to completely fill the reservoir. Before disconnecting the supply container from the printer, the memory chip on the container is updated to show that <NUM> units of ink remain in the container, allowing a print service provider or other user to accurately inventory, track and re-use the partially depleted container.

A new process has also been developed to monitor the transfer in real time. In one example, a monitoring process includes, during the transfer, determining the changing volume of the printing agent in the reservoir and the corresponding changing volume of the printing agent in the container, and displaying an animation showing the changing volumes. The animation may include, for example: a printer symbol; a first container symbol connected to the printer symbol to show that the container is connected to the printer; a reservoir symbol associated with the printer symbol to show the changing volume in the reservoir; a second container symbol near the reservoir symbol to show a changing volume in the container; and a flow symbol between the reservoir symbol and the container symbol to show that printing agent is being transferred from the container to the reservoir.

Examples of the transfer process may also be used to drain agent from the printer reservoir into a container to reclaim unused agent.

While some examples are described with reference to liquid printing agents and inkjet printers, examples may also be implemented in other types of printers for other printing agents, including dry toner. The examples described herein illustrate but do not limit the scope of the patent, which is defined in the Claims following this Description.

As used in this document, "and/or" means one or more of the connected things; a "memory" means any non-transitory tangible medium that can embody, contain, store, and/or maintain instructions for execution by a processor, including circuits, integrated circuits, ASICs (application specific integrated circuits), hard drives, random access memory (RAM), and/or read-only memory (ROM); a "printer" means a device that dispenses a printing agent, including 2D printers and 3D printers; and a "printing agent" means any printable substance including, for example, ink and toner for 2D printers and fusing agents for 3D printers.

<FIG> illustrates one example of a transfer system <NUM> to fill an ink or other printing agent reservoir in a printer from a container or to drain the reservoir to the container. Referring to <FIG>, system <NUM> includes a controller <NUM> and a sensor <NUM>, pump <NUM>, and graphical user interface <NUM> operatively connected to controller <NUM>. Controller <NUM> is programmed to set a transfer unit to the total capacity of a fill/drain container divided by an integer greater than <NUM>. For example, the transfer unit may be set to <NUM>/<NUM>, <NUM>/<NUM>, or <NUM>/<NUM> the total capacity of the container. Sensor <NUM> senses when the container is connected to the printer. Pump <NUM> pumps printing agent from the container to the reservoir or from the reservoir to the container in set unit increments, at the direction of controller <NUM>. For example, if the transfer unit is set to <NUM>/<NUM> the total capacity of the container, then controller <NUM> may direct pump <NUM> to pump <NUM>, <NUM>, <NUM>, or <NUM> units to the reservoir from the container or from the reservoir to the container.

Controller <NUM> includes the programming, processing and associated memory resources, and the other electronic circuitry and components to control the other operative elements of system <NUM>. In the example shown in <FIG>, controller <NUM> includes a processor <NUM> and a memory <NUM> in communication with processor <NUM>. Memory <NUM> includes transfer instructions <NUM> which represent programming to set a transfer unit to the total capacity of the fill/drain container divided by an integer greater than <NUM>, receive signals from sensor <NUM> sensing when a container is connected to the printer, and to direct pump <NUM> to pump printing agent from the container to the reservoir or from the reservoir to the container in set unit increments. Controller <NUM> may reside on a printer or controller <NUM> may be remote from the printer. Graphical user interface <NUM> may reside on a printer or graphical user interface <NUM> may be remote from the printer.

Instructions <NUM> may include programming for controller <NUM> to set the transfer unit to a default or to a user selection received through graphical user interface <NUM>. Instructions <NUM> may also include programming for controller <NUM> to display an animation on graphical user interface <NUM> showing the changing volume of printing agent in the reservoir and the corresponding changing volume of printing agent in the container as printing agent is pumped to or from the reservoir.

<FIG> illustrates one example of an inkjet printer <NUM> implementing a transfer system <NUM> such as that shown in <FIG>. Referring to <FIG>, printer <NUM> includes a controller <NUM> with transfer instructions <NUM>, a graphical user interface <NUM> operatively connected to controller <NUM>, and a continuous liquid delivery system <NUM>. Liquid delivery system <NUM> includes a printhead unit <NUM>, a reservoir <NUM> separate from printhead unit <NUM>, an interconnect <NUM>, a reversible pump <NUM>, a supply flow path <NUM> from reservoir <NUM> through printhead unit <NUM> and back to reservoir <NUM>, and a fill/drain flow path <NUM> from interconnect <NUM> to reservoir <NUM>. A sensor <NUM> senses the volume of ink or other liquid in reservoir <NUM>, for example by signaling controller <NUM> the level of liquid in the reservoir. Delivery system <NUM> also includes a removable container <NUM> during fill and drain operations. Removable container <NUM> is depicted with dashed lines to indicate a removable component that is not a fixed part of liquid delivery system <NUM>.

Printhead unit <NUM> includes one or multiple printheads and flow structures to carry ink or other liquid to the printhead(s). A printhead unit <NUM> usually will also include a pressure regulator or other flow control device to help control the flow of liquid to each printhead. Although a single printhead unit <NUM> is shown, delivery system <NUM> may include multiple printhead units <NUM>. Printhead unit <NUM> may be implemented, for example, as a substrate wide printbar in a 2D inkjet printer to dispense ink, or as an agent dispenser in a 3D inkjet printer to dispense fusing, detailing, coloring, and/or other liquid manufacturing agents. Each of multiple liquid delivery systems <NUM> may be used to deliver each of multiple corresponding liquids. During a dispensing operation, when a container <NUM> is not connected to printer interconnect <NUM>, pump <NUM> pumps liquid from reservoir <NUM> along supply flow path <NUM> through printhead unit <NUM> and back to reservoir <NUM>, for example at the direction of controller <NUM>. A controller <NUM> in printer <NUM> represents the processing and memory resources, programming, and the electronic circuitry and components needed to control the operative components of delivery system <NUM> and transfer system <NUM>, and may include distinct control elements for individual system components.

When controller <NUM> is instructed to conduct a fill operation, for example through a user input to graphical user interface <NUM>, and a removable container <NUM> is connected to interconnect <NUM>, sensor <NUM> at interconnect <NUM> senses the presence of container <NUM> and signals controller <NUM> that container <NUM> is connected to the printer. Controller <NUM> then directs pump <NUM> to pump liquid <NUM> from container <NUM> along flow path <NUM> to reservoir <NUM>, for example in set unit increments as described above with reference to <FIG>. When container <NUM> is disconnected from interconnect <NUM>, sensor <NUM> signals controller <NUM> that container <NUM> is disconnected from the printer.

In the example shown in <FIG>, sensor <NUM> is implemented as an integrated circuit device reader that senses the presence of container <NUM> and reads information from an integrated circuit device <NUM> on container <NUM>. An integrated circuit device <NUM> on container <NUM> usually includes a memory storing information about container <NUM> including, for example, a container identification, the total capacity of the container, the type of liquid in the container, and the volume of liquid in the container (if less than the total capacity). Sensor <NUM> may also include an integrated circuit device writer to write information to container integrated circuit <NUM>, for example to update the memory on integrated circuit <NUM> with the volume of liquid in container <NUM> upon completion of the fill operation.

In this example, fill/drain flow path <NUM> is coextensive with supply flow path <NUM> through pump <NUM> and printhead unit <NUM> such that liquid may continue to circulate through printhead unit <NUM>, if desired, during a fill operation. Interconnect <NUM> allows liquid to flow out of container <NUM> into flow path <NUM> and to seal against the pump pressure when a container <NUM> is not connected to interconnect <NUM>. Interconnect <NUM> may be implemented, for example, as a needle/septum seal, a humidor or other suitable passive flow device, or as an active valve operated automatically at the direction of controller <NUM>, to allow the flow of liquid from container <NUM> into flow path <NUM> when a container <NUM> is connected to interconnect <NUM>.

When controller <NUM> is instructed to conduct a drain operation, for example through a user input to graphical user interface <NUM>, and a removable container <NUM> is connected to interconnect <NUM>, sensor <NUM> at interconnect <NUM> senses the presence of container <NUM> and signals controller <NUM> that container <NUM> is connected to the printer. Controller <NUM> then directs pump <NUM> to pump liquid <NUM> from reservoir <NUM> along flow path <NUM> to container <NUM>, for example in set unit increments as described above with reference to <FIG>. When container <NUM> is disconnected from interconnect <NUM>, sensor <NUM> signals controller <NUM> that container <NUM> is disconnected from the printer.

<FIG> illustrates one example implementation for transfer and delivery systems <NUM>, <NUM> shown in <FIG>. In the example shown in <FIG>, printhead unit <NUM> is implemented as a printbar with multiple printheads <NUM> and flow regulators <NUM> each to regulate the flow of liquid to the corresponding printheads <NUM>. A check valve or other suitable pressure control device <NUM> is positioned in supply flow path <NUM> between reservoir <NUM> and pump <NUM>, upstream from fill/drain flow path <NUM>, to enable the preferential flow of liquid from a removable container <NUM>. In a drain operation, liquid can flow directly from reservoir <NUM> through pressure control device <NUM> and interconnect <NUM> to container <NUM>.

In this example, delivery system <NUM> also includes a third flow path <NUM> from reservoir to a second interconnect <NUM> for removable container <NUM>. Air is pushed out of reservoir <NUM> into container <NUM> through interconnect <NUM> as the reservoir fills with liquid <NUM>. Flow path <NUM> also allows liquid <NUM> to flow from reservoir <NUM> into container <NUM> so that liquid will circulate through system <NUM> when reservoir <NUM> is full, enabling a self-limiting fill process. Where the pumps <NUM> in multiple transfer and delivery systems <NUM>, <NUM> are driven by a single motor, the example shown in <FIG> allows the motor to continue to run even after one reservoir <NUM> is full to continue to fill the other reservoir(s) <NUM>.

When a container <NUM> is not connected to interconnect <NUM>, air is vented to the atmosphere from reservoir <NUM> through flow path <NUM> and second interconnect <NUM>. Interconnect <NUM> may be implemented as a needle/septum interface, for example, to vent reservoir <NUM> and seal a container <NUM> when a container <NUM> is not connected. Interconnects <NUM> and <NUM> may be incorporated into a single interconnect assembly. Also, in this example, a check valve or other suitable pressure control device <NUM> is positioned in flow path <NUM>/<NUM> between printbar <NUM> and reservoir <NUM> to allow pump <NUM> to maintain positive gauge pressure at regulators <NUM> when not filling reservoir <NUM> from a container <NUM>.

The flow arrows along paths <NUM> and <NUM> in <FIG> indicate a fill operation. The flow arrows along fill/drain path <NUM> are reversed between reservoir <NUM> and interconnect <NUM> during a drain operation.

<FIG> show example configurations for transfer and delivery systems <NUM>, <NUM>. Other suitable configurations are possible. For example, a transfer system <NUM> may utilize gravity (instead of pump pressure) to fill the reservoir. In a gravity feed transfer system, the transfer of liquid to the reservoir may be controlled by regulating the flow of liquid and/or air between the container and the reservoir. While a single pump system is shown, a multiple pump system could be used, for example with one pump for pumping liquid from the reservoir to the printhead unit and other pumps for pumping liquid to and from a fill/drain container.

<FIG> is a flow diagram illustrating one example transfer process such as might be implemented by a processor <NUM> executing instructions <NUM> on controller <NUM> in a transfer system <NUM> shown in <FIG>. Referring to <FIG>, a process <NUM> includes setting a transfer unit to a total capacity of a container divided by an integer greater than <NUM> (block <NUM>), sensing the container connected to the printer (block <NUM>), and transferring, in set unit increments, at least one unit of a printing agent from the container to the reservoir or from the reservoir to the container (block <NUM>). The transfer unit may be set to a default or to a user selection received through a graphical user interface.

<FIG> is a flow diagram illustrating another example transfer process such as might be implemented by a processor <NUM> executing instructions <NUM> on controller <NUM> in a transfer system <NUM> shown in <FIG>. Referring to <FIG>, a process <NUM> includes sensing the container connected to the printer (block <NUM>), transferring a printing agent from the container to a reservoir in the printer or from the reservoir to the container (block <NUM>), and, during the transfer, determining a changing volume of printing agent in the reservoir and a changing volume of printing agent in the container (block <NUM>) and displaying an animation showing the changing volume in the reservoir and the changing volume in the container (block <NUM>).

The animation may be generated by the controller monitoring the reservoir level sensor to repeatedly determine the volume of printing agent in the reservoir during the transfer and repeatedly compute the corresponding volume of printing agent in the container. Where a controller monitors the reservoir level sensor continuously, then the volume determination and computation cycles may be repeatedly rapidly so that the animation simulates continuously changing volumes in the reservoir and the container during the transfer. Upon completing the transfer, the animation is stopped and the completion displayed by, for example, displaying the volume of printing agent in the reservoir, the volume of printing agent in the container when the transfer is complete, and the total volume of printing agent transferred.

In one example, the number of units to transfer is set by the controller receiving a selection through the user interface. In another example, the number of units to transfer is set by the controller determining a volume of printing agent in the reservoir based on readings from a reservoir level sensor and computing the number of units to transfer based on the volume of printing agent in the reservoir. For example, if the transfer unit is set to <NUM> and there is <NUM> of printing agent in a <NUM> reservoir, then the controller may set the number of units to transfer to <NUM> to completely fill the reservoir. For another example, if the transfer unit is set to <NUM> and there is <NUM> of printing agent in a <NUM> reservoir, then the controller may set the number of units to transfer to <NUM> to fill the reservoir as full as possible while transferring unit increments.

<FIG> is a flow diagram illustrating another example transfer process such as might be implemented by a processor <NUM> executing instructions <NUM> on controller <NUM> in a transfer system <NUM> shown in <FIG>. Referring to <FIG>, a process <NUM> includes setting a transfer unit (block <NUM>), reading, from a memory on a container, the volume of a printing agent in the container when the container is connected to a printer (block <NUM>), transferring, in set unit increments, at least one unit of the printing agent from the container to a reservoir in the printer or from the reservoir to the container (block <NUM>), and writing, to the memory on the container, the volume of printing agent in the container after the transfer (block <NUM>). In one example, the transfer unit is set at block <NUM> to a total capacity of a container divided by an integer greater than <NUM>.

<FIG> illustrate examples of a graphical user interface, such as interface <NUM> in <FIG>, <FIG>, displaying some of the features described above for filling or draining a printer reservoir. <FIG> show displays for setting the transfer unit and the number of units to transfer. <FIG> show displays for a fill operation and <FIG> show displays for a drain operation.

In <FIG>, a user interface <NUM> displays a menu <NUM> for the selection of reservoir fill settings. Menu <NUM> in the fill settings display <NUM> in <FIG> includes two selectable menu items <NUM> and <NUM>. Menu item <NUM> is represented by a fill mode symbol <NUM> with corresponding text that may be selected to set the fill mode. Menu item <NUM> includes container symbols <NUM>, <NUM> with corresponding text showing the transfer units and the number of units to transfer for each container. Container symbols <NUM>, <NUM> show graphically the number of units contained in each of two different size containers, <NUM> and <NUM> respectively in this example. In this example, the supply containers for black (K) agent are larger than the supply containers for yellow (Y), magenta (M), and cyan (C) agent. <FIG> shows the container transfer unit set to <NUM> and the number of units to transfer set to <NUM> units for the black (K) container, <NUM> units for the yellow (Y) container, and <NUM> units for each of the cyan C and magenta (M) containers. Display <NUM> also includes a reservoir symbol <NUM> and corresponding text showing the volume of printing agent in each of <NUM> reservoirs for yellow (Y), magenta (M), cyan (C), and black (K).

Selecting transfer unit menu item <NUM> in <FIG>, indicated by the box around the symbols and text, displays the transfer unit selection menu shown in <FIG>. Referring to <FIG>, a container transfer unit display <NUM> includes container symbols <NUM>, <NUM> and a group of buttons <NUM> to set the transfer unit. In this example, button group <NUM> includes +, -, minimum and maximum buttons, allowing the user to increase, decrease, minimize, or maximize the size of the transfer unit. Also in this example, the default for each parameter is displayed until changed by the user. Transfer unit display <NUM> shows the size of the transfer unit (<NUM>) and the number of units in each container - <NUM> units in <NUM><NUM> container <NUM> and <NUM> units in <NUM> container <NUM>.

In <FIG>, the user has selected a pre-set maximum transfer unit (<NUM> in this example) and the corresponding number of units in each container is displayed - <NUM> units in <NUM> container <NUM> and <NUM> unit in <NUM> container <NUM>. In <FIG>, the user has arrowed down to select a transfer unit of <NUM> and the corresponding number of units in each container is displayed - <NUM> units in <NUM> container <NUM> and <NUM> units in <NUM> container <NUM>. When the desired transfer unit is displayed, the user may click the "Set" button <NUM> in the lower right corner to set the transfer unit and automatically move to the display for setting the number of units to transfer shown in <FIG>.

Referring to <FIG>, a transfer unit number display <NUM> includes a group of buttons <NUM> to set the number of units to transfer for each of the Y, M, C, and K containers <NUM>, <NUM>. In this example, button group <NUM> includes +, -, minimum and maximum buttons, allowing the user to increase, decrease, minimize, or maximize the number units to transfer for each container. The default number of units is displayed until changed by the user. In this example, the default number is all units in the container. In <FIG>, the yellow (Y) container <NUM> is selected and the user has set the number of <NUM> units to transfer at <NUM>. The Y container symbol <NUM> is automatically updated to show the number of units to transfer. In <FIG>, the black (K) container is selected and the user has set the number of <NUM> units to transfer at <NUM>. When the desired settings are displayed, the user may click the "Fill" button <NUM> in the lower right corner to begin the sequence of filling the reservoirs, as shown in <FIG>.

Referring to <FIG>, user interface <NUM> displays a message <NUM> prompting a user to connect the supply containers to the printer to initiate a fill operation. Display <NUM> with message <NUM> may be initiated, for example, by opening a fill port door on the printer or selecting a fill option at the user interface. The initial fill display <NUM> in <FIG> includes a printer symbol <NUM>, a first set <NUM> of container symbols near the printer symbol, and an arrow <NUM> to indicate connecting the containers to the printer. Display <NUM> also includes reservoir symbols <NUM> associated with printer symbol <NUM>, for example with a bubble <NUM>. Reservoir symbols <NUM> are animated to show the volume of printing agent in each reservoir. Display <NUM> may include a scale <NUM> indicating the level of agent in each reservoir and text <NUM> stating the volume of agent in each reservoir.

When the printer senses that the containers are connected, fill display <NUM> is changed to include container symbols <NUM>, <NUM> and total fill amounts <NUM> as shown in <FIG>. Referring to <FIG>, container symbols <NUM>, <NUM> show the volume of agent in each container as determined by the controller reading information from the container memories as described above with reference to <FIG>. The user initiates the fill operation by selecting a "fill" button in the lower right corner of display <NUM>. In this example, display <NUM> in <FIG> includes a timer symbol <NUM> showing an estimated time to complete the fill operation, <NUM> minutes in this example.

Referring to <FIG>, when the user selects the "fill" button, the controller begins the fill operation, animates container symbols <NUM>, <NUM>, reservoir symbols <NUM>, and text <NUM>, <NUM> to show the changing volume of agent in each reservoir and corresponding container, and animates timer symbol <NUM> to countdown the time to complete the fill operation. Flow symbols <NUM> between each reservoir symbol <NUM> and corresponding container symbol <NUM>, <NUM> shows that agent is flowing from the containers to the reservoirs.

Referring to <FIG>, the controller ends the fill operation when the set number of units have been transferred and, in this example, displays the ending volumes in each reservoir (symbols <NUM> and text <NUM>), the ending volumes in each container (symbols <NUM>, <NUM>, and text <NUM>), and the amounts pumped (text <NUM>).

<FIG> shows just one snapshot in time from the beginning fill conditions shown in <FIG> to the ending fill conditions shown in <FIG>. During the fill operation, the level of agent in each reservoir <NUM> in fill display <NUM> is rising, the corresponding volume numbers <NUM> are increasing, the level agent in each container <NUM>, <NUM> is falling, and the corresponding volume numbers <NUM> are decreasing, as best seen by comparing display <NUM> in <FIG>, <FIG>.

Similar displays are used for a drain operation. <FIG> shows a drain display <NUM> after the user has set the transfer unit and the number of units to transfer and attached the containers, in the same manner described above with reference to <FIG> for the fill settings. In this example, each container is empty at the beginning of the drain operation, as depicted by container symbols <NUM>, <NUM> in <FIG>. Referring to <FIG>, the user has selected the "drain" button in <FIG> and the controller is directing a drain operation, including animating container symbols <NUM>, <NUM>, reservoir symbols <NUM>, and text <NUM>, <NUM> to show the changing volume of printing agent in each reservoir and corresponding container. The controller has also animated timer symbol <NUM> to count down the time to complete the drain operation. A flow symbol <NUM> between each reservoir symbol <NUM> and corresponding container symbol <NUM>, <NUM> shows that printing agent is flowing from the reservoirs to the containers.

Referring to <FIG>, the controller ends the drain operation when the set volume has been transferred and, in this example, displays the ending volumes in each reservoir (symbols <NUM> and text <NUM>), the ending volumes in each container (symbols <NUM>, <NUM>, and text <NUM>), and the amounts pumped (text <NUM>).

While the displays <NUM> on graphical user interface <NUM> in <FIG> are described in the context of transfers made in set unit increments, such displays are not limited to transfers made in set unit increments but may depict transfers of any volume at any rate. Pumping rates may be the same or varied among Y, M, and C containers <NUM> and/or K container <NUM>. More or fewer containers <NUM>, <NUM> and reservoirs <NUM> and/or different size containers and reservoirs may be used.

As noted at the beginning of this Description, the examples shown in the figures and described above illustrate but do not limit the scope of the patent, which is defined in the following Claims.

Claim 1:
A system to fill or drain a reservoir (<NUM>) in a printer (<NUM>), comprising:
a controller (<NUM>) configured to set a transfer unit volume to a total capacity of a container (<NUM>) divided by an integer greater than <NUM>;
a container sensor (<NUM>, <NUM>) configured to sense the container (<NUM>) connected to the printer (<NUM>); and
a pump (<NUM>, <NUM>) configured to pump, in increments corresponding to the set transfer unit volume, at least one transfer unit of a printing agent from the container (<NUM>) to the reservoir (<NUM>) or from the reservoir (<NUM>) to the container (<NUM>).