A printing system can include a printhead that has nozzles to dispense printing fluid to a target. In a two-dimensional (2D) printing system, the target is a print medium, such as a paper or another type of substrate onto which print images can be formed. Examples of 2D printing systems include inkjet printing systems that are able to dispense droplets of inks. In a three-dimensional (3D) printing system, the target can be a layer or multiple layers of build material deposited to form a 3D object.
Some implementations of the present disclosure are described with respect to the following figures.
In the present disclosure, the article “a,” “an”, or “the” can be used to refer to a singular element, or alternatively to multiple elements unless the context clearly indicates otherwise. Also, the term “includes,” “including,” “comprises,” “comprising,” “have,” or “having” is open ended and specifies the presence of the stated element(s), but does not preclude the presence or addition of other elements.
A printhead for use in a printing system can include nozzles that are activated to cause printing fluid droplets to be ejected from respective nozzles. Each nozzle includes a heating element that when activated generates heat to vaporize a printing fluid in a firing chamber of the nozzle, which causes expulsion of a droplet of the printing fluid from the nozzle. A printing system can be a two-dimensional (2D) or three-dimensional (3D) printing system. A 2D printing system dispenses printing fluid, such as ink, to form images on print media, such as paper media or other types of print media. A 3D printing system forms a 3D object by depositing successive layers of build material. Printing fluids dispensed by the 3D printing system can include ink, as well as fluids used to fuse powders of a layer of build material, detail a layer of build material (such as by defining edges or shapes of the layer of build material), and so forth.
In the ensuing discussion, the term “printhead” can refer generally to a printhead die or an overall assembly that includes multiple printhead dies mounted on a support structure. Although reference is made to a printhead for use in a printing system in some examples, it is noted that techniques or mechanisms of the present disclosure are applicable to other types of fluid ejection devices used in non-printing applications that are able to dispense fluids through nozzles. Examples of such other types of fluid ejection devices include those used in fluid sensing systems, medical systems, vehicles, fluid flow control systems, and so forth.
Evaporation of water or another solvent from a fluid exposed to an ambient environment can cause the fluid to dry out at nozzles of a fluid ejection device. In some examples, the drying of a fluid of a fluid ejection device can alter trajectories of fluid droplets, velocities of ejected fluid droplets, and/or shapes and colors of fluid droplets. For a 2D printing system, the foregoing effects can lead to reduced image quality in an image printed onto a print medium. For a 3D printing system, the foregoing effects can reduce effectiveness of dispensed printing fluids as part of the process of forming a 3D object. For a non-printing system, the foregoing effects can cause a dispensed fluid from the fluid ejection device to not perform in a target manner or not to be able to achieve a target result.
In printing systems, a decap time is specified for a printhead, where the decap time can refer to an amount of idle time that the nozzles of the printhead can be left uncapped (i.e., not covered with a cap) and still be able produce a high quality image (based on a specified criterion) or otherwise achieve a target result when the nozzles are fired to dispense fluid droplets. An idle time of a nozzle can refer to the time when the nozzle is not fired.
To address the issue of drying of ink or other fluid at nozzles of a printhead, recirculation of the ink or other fluid can be performed at the nozzles. The recirculation can include circulating fresh fluid through a firing chamber of a nozzle; the recirculation does not cause the fluid to be ejected from the nozzle (i.e., the nozzle is not fired). Recirculation of fluid in a nozzle can be referred to as micro-recirculation where the fluid is circulated through micro-fluidic channels, which are channels having fluid flow areas in the micrometer range (less than 1,000 micrometers, for example).
In some cases, a printer controller of a printing system can pre-process image data (that is to be printed by the printing system) to determine a length of time each nozzle of a printhead has been left idle. Based on the pre-processing, the printer controller can determine if any nozzle has been left idle for longer than a decap time, and if so, recirculation commands can be inserted into the image data to cause recirculation at each nozzle that has been left idle for longer than the decap time. However, the pre-processing performed by the print controller to keep track of how long each nozzle has been left idle and to insert recirculation commands is computationally intensive, and can reduce processing bandwidth of the printer controller. Moreover, the recirculation commands that are sent by the printer controller to the printhead include information (e.g., address data) of individual nozzles that are to be recirculated. As a result, sending such recirculation commands can consume the communications bandwidth of a communications link between the printer controller and the printhead.
The concept of “decap time” can also apply to other types of fluids dispensed by other types of fluid ejection devices. More generally, a decap time is specified for a fluid ejection device, where the decap time can refer to an amount of idle time that the nozzles of the fluid ejection device can be left idle and still be able achieve a target goal (based on a specified criterion) when the nozzles are fired to dispense fluid droplets.
In accordance with some implementations of the present disclosure, a decision of whether or not to perform recirculation of each nozzle of a printhead can be performed by a local controller of the printhead, rather than by the printer controller that is implemented separately from the printhead. In some implementations, a printhead can be a printhead die or can include multiple printhead dies. A printhead die can refer to a chip or other integrated circuit device that includes a substrate in which is provided nozzles and control circuitry to control ejection of a printing fluid by the nozzles. The control circuitry on the substrate can include a firing controller that controls firing of nozzles in response to print packets, as well as the local controller (referred to in the ensuing discussion as a “recirculation controller”) that is able to make a local determination of whether or not recirculation is to performed for each individual nozzle of the printhead.
By using the recirculation controller that is locally provided in the printhead, the printer controller would not have to make a determination of which nozzles are to be recirculated, and would not have to individually address each nozzle of the printhead to perform recirculation at the nozzle. The recirculation controller of the printhead can locally determine whether recirculation of nozzles is to be performed, without having to receive a recirculation command from the printer controller, where the recirculation command individually addresses a nozzle (or a group of nozzles) for recirculation. As a result, the processing burden on the printer controller is reduced, and there is less consumption of the communications bandwidth between the printer controller and the printhead.
In some implementations, the printer controller can send a first indication that corresponds to a start of a sampling time interval during which the recirculation controller can decide whether or not a nozzle is to be recirculated, and a second indication (a recirculation enable indication) that indicates a recirculation enable time during which recirculation of the nozzles is allowed. Neither the first indication nor the second indication includes information (e.g., address data) used to individually select nozzles. Although reference is made to first and second indications, it is noted that in further examples, just one indication (such as the first indication) can be provided by the printer controller to the recirculation controller, or alternatively, more than two indications can be provided from the printer controller to the recirculation controller.
The first and second indications can be in the form of messages, information elements within messages, or signals. A message can be sent by the printer controller over a communications link. An information element within a message can include an information element within a header or a payload of the message. For example, the message can include a print packet that is sent by the printer controller to the printhead to control firing of selected nozzles of the printhead. The print packet can include, among other information, address data corresponding to an address of a nozzle (or a group of nozzles) that is to be selected for firing. More generally, the print packet includes information that can be used to identify a nozzle (or a group of nozzles) that is to be selected for firing. Firing a nozzle refers to activating a nozzle to eject a printing fluid. For example, the nozzle can have a firing resistor or other heating element that is activated to cause rapid vaporization of a printing fluid in a firing chamber, which causes a droplet of ink to be propelled through an opening of the nozzle toward a print medium.
The information element within the print packet can include a bit (or multiple bits) that can be set to respective bit values. The bit(s) if included in the header of the print packet allows a print packet carrying information that causes firing of nozzles to also carry the first and second indications without having to use separate packets. In some examples, setting a first bit in the header of the print packet to a first value provides the first indication, while setting a second bit in the header of a print packet to a specified value provides the second indication.
Although reference is made to local control of fluid recirculation at nozzles of a printhead, it is noted that in other examples, local control of fluid recirculation using techniques or mechanisms according to some implementations of the present disclosure can be applied to nozzles of other types of fluid ejection devices.
In some examples, the fluid ejection device 104 can be implemented as an integrated circuit (IC) die that includes a substrate on which is provided nozzles and control circuitry to control ejection of a fluid by the nozzles. In other examples, the fluid ejection device 104 can include a structure (such as an ink cartridge) that has a fluid reservoir containing a fluid, fluid channels connected to the fluid reservoir, and a die or multiple dies including nozzles and control circuitry to control ejection of a fluid by the nozzles.
In some examples, the fluid ejection device 104 can be fixedly mounted in the system 100, such as on a carriage of the system 100, where the carriage is moveable with respect to a target 112 onto which fluid is to be dispensed from the fluid ejection device 104. In other examples, the fluid ejection device 104 can be removably connected to the interface 102. For printing systems where the fluid ejection device 104 is a printhead, an example configuration where a printhead can be removably mounted in a printing system is in the context of an integrated printhead that is part a printing fluid cartridge (e.g., an ink cartridge). With an integrated printhead, a printhead die is attached to the printing fluid cartridge. The printing fluid cartridge is removably mounted in the printing system; for example, the printing fluid cartridge can be removed from the printing system and replaced with a new printing fluid cartridge.
In yet further examples, a printing system can be a page-wide printing system, where a row of printheads can be arranged along the width of a target so that printing fluid can be dispensed simultaneously from the printheads. More generally, a system can include multiple fluid ejection devices arranged along a line or in an array or any other pattern to dispense fluid to a target.
In examples according to
As used here, a “controller” can refer to a hardware processing circuit, which can include any or some combination of the following: a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable gate array, a programmable integrated circuit device, or another hardware processing circuit. Alternatively, a “controller” can refer to a combination of a hardware processing circuit and machine-readable instructions executable on the hardware processing circuit.
The fluid ejection device 104 also includes nozzles 110 through which fluid can be ejected onto the target 112. In further examples, the system 100 can include multiple fluid ejection devices 104 each including a respective recirculation controller 106 and nozzles 110.
The fluid ejection controller 108 is able to communicate with the fluid ejection device 104, and more specifically with the recirculation controller 106, over a communications link 114. The fluid ejection controller 108 can send respective first and second indications to the fluid ejection device 104 over the communications link 114. The first indication starts a sampling time interval, and the first indication is to trigger the recirculation controller 106 to control recirculating of a given nozzle 110 based on a determination, during the sampling time interval, by the recirculation controller 106 of whether a firing event corresponding to firing of the given nozzle has occurred. As explained further below, the sampling time interval is a fraction of a decap time associated with a fluid to be ejected by the fluid ejection device 104. The decap time can be set by the fluid ejection controller 108, such as by firmware or other machine-readable executable instructions that can be executed by the fluid ejection controller 108.
The recirculation controller 106 and the fluid ejection controller 108 are separate from one another. For example, the fluid ejection controller 108 can be provided on a main circuit board in the printing system 100, whereas the recirculation controller 106 is locally provided in the fluid ejection device 104 (e.g., on a die of the fluid ejection device 104).
In some examples, the recirculation controller 202 controls recirculating of the nozzle 204. The recirculation controller 202 receives, from a fluid ejection controller (e.g., the fluid ejection controller 108 of
In some examples, the specified range of time is a function of the decap time for a fluid to be dispensed by the nozzle 204. The decap time can be determined as a function of properties of the fluid. Different fluids can be associated with different decap times.
The counter 302 includes multiple memory elements, referred to as NOZZLE_FIRED_0, . . . NOZZLE_FIRED_N−2, and NOZZLE_FIRED_N−1 in
The memory elements can include elements of a register or another type of storage device. In the following example, it is assumed that N is greater than 1 to illustrate an example where there are multiple memory elements in the counter 302. The multiple memory elements are arranged in a series where the output of one memory element can be connected to the input of another memory element. In other examples, there can just be one memory element in the counter 302.
Generally, the counter 302 is used to track an elapsed time since a respective nozzle has been fired. As long as the nozzle has not fired, the counter 302 continues to update its value. In some examples, the updating of the value involves shifting a state of a predecessor memory element into a successor memory element of the counter 302. For example, if a firing event has not occurred during a sampling time interval (started by a first indication 304 shown in
Although a specific implementation of the counter 302 is shown in
Additionally, the counter control circuit 306 is used to control the counter 302, such as by causing the counter 302 to be updated or reset in response to certain events. In some examples, the following events can occur: (1) the end of a sampling time interval, (2) a fire event, and (3) a recirculation event.
Recirculation of a nozzle is triggered if the counter 302 has reached a specified value. If a fire event or a recirculation event has not occurred, then the counter 302 continues to be updated in successive sampling time intervals, until the counter 302 reaches the specified value that triggers performance of the recirculation of the nozzle. However, if a fire event occurs or a recirculation event occurs, then the counter 302 is reset to a value that is different from the specified value.
The following provides further details of an example implementation of the recirculation controller 202. It is noted that in other examples, a different arrangement of the recirculation controller 202 can be employed.
A first indication 304 when received by the recirculation controller 202 indicates a start of a sampling time interval during which the recirculation controller 202 can decide whether or not a nozzle is to be recirculated. The sampling time interval has a length that depends on the number of memory elements used in the counter 302. An increased number (N) of memory elements used in the counter 302 corresponds to a smaller length of the sampling time interval. More specifically, the length of the sampling time interval is set equal to DECAP_TIME/(N+1), where DECAP_TIME represents the decap time of the fluid to be dispensed by a nozzle. Thus, the sampling time interval is determined as a fraction of the decap time, based on the number of memory elements included in the counter 302. For example, if there is just one memory element in the counter 302, then the sampling time interval has a length that is half the decap time. On the other hand, if there are two memory elements in the counter 302, then the sampling time interval is one third of the decap time.
The counter control circuit 306 is able to determine the end of the sampling time interval from receipt of the first indication 304. At the end of the sampling time interval, if recirculation has not occurred in the sampling time interval, the counter control circuit 306 causes the counter 302 to be updated in value, such as by resetting NOZZLE_FIRED_0 to ‘0’, and for i=1 to N−1, setting each of NOZZLE_FIRED_i to NOZZLE_FIRED_i−1.
At the end of the sampling time interval, if recirculation has occurred (i.e., a recirculation event has occurred), the counter control circuit 306 performs a recirculation reset of the counter 302 as follows: set NOZZLE_FIRED_0 to ‘0’, and set the remaining memory elements NOZZLE_FIRED_1 to NOZZLE_FIRED_N−1 to ‘1’. The recirculation event is indicated if an ACTIVATE RECIRCULATION signal 316 is asserted to an active state.
In response to receipt of a Fire Event 308 (e.g., as indicated by a print packet containing a command to activate a nozzle), the counter control circuit 306 performs a fire reset of the counter 302 as follows: reset all memory bits NOZZLE_FIRED_0 to NOZZLE_FIRED_N−1 of the counter 302 to ‘1’.
Although the present disclosure refers to specific examples where memory elements of the counter 302 are set or reset to specific values in response to corresponding events, in other examples, the counter 302 can be updated or reset in different ways.
Each sampling time interval has a sub-portion that is referred to as a recirculation enable time interval. The recirculation enable time interval of a sampling time interval is the time interval during which recirculation of a nozzle can be activated in response to the counter 302 having a specified value (e.g., all memory elements of the counter 302 are set to ‘0’). In other examples, the specified value for triggering recirculation of a nozzle can be a different value.
The recirculation enable time interval is started in response to receiving a second indication 312, which is provided to the input of the recirculation activator 314. In some examples, the recirculation enable time interval makes up the end portion of the sampling time interval (e.g., the last few milliseconds of the sampling time interval). The length of the recirculation enable time indicated by the second indication 312 is generally much less than the length of the sampling time interval. For example, the decap time may be 800 milliseconds in some examples, while the recirculation enable time interval can be 16 milliseconds. Although specific lengths of the decap time and recirculation enable time interval are provided, it noted that in other examples, the decap time and recirculation enable time interval can have other lengths.
In response to receiving the second indication 312, the recirculation activator 314 checks, during the recirculation enable time interval, the counter 302 to determine whether the counter 302 (or more specifically, memory elements NOZZLE_FIRED_0 to NOZZLE_FIRED_N−1) has the specified value. If the counter 302 does not have the specified value, the recirculation activator 314 de-asserts the ACTIVATE RECIRCULATION signal 316 to an inactive state. In response to determining that the counter 302 has the specified value (e.g., all of the memory elements are set to 0), the recirculation activator 314 asserts the ACTIVATE RECIRCULATION signal 316 to an active state. The ACTIVATE RECIRCULATION signal 316 is provided to the recirculation pump 206 (
Generally, occurrence of a fire event or a recirculation event would reset the counter 302 such that the recirculation controller 202 would wait until the counter 302 reaches the specified value again in a later sampling time interval before recirculation is activated.
Assuming that the length of a sampling time interval is represented by SAMPLING_LENGTH, and the decap time is represented by DECAP_TIME, for the counter 302 having N memory elements, the recirculation controller 202 activates recirculation of a nozzle in response to determining that the nozzle has not been fired by an amount of time that falls in the time range from N* (SAMPLING_LENGTH) to DECAP_TIME. This time range can also be expressed as N*(DECAP_TIME/(N+1)) to DECAP_TIME, since SAMPLING_LENGTH=DECAP_TIME/(N+1).
The recirculation controller 202 can cause triggering of the recirculation of a given nozzle as early as N*(DECAP_TIME/(N+1)) from the latest firing event of the given nozzle, or at the latest at DECAP_TIME from the latest firing event for the given nozzle.
The one memory element of the counter 302 is represented as NOZZLE_FIRED in
In
At the end of sample period 1, NOZZLE_FIRED is reset to ‘0’ (408).
In
In
At the end of sample period 1, NOZZLE_FIRED is reset to ‘0’ (419).
In
In
At the end of sample period 1, NOZZLE_FIRED of the counter 302 is reset to ‘0’ (440). In sample period 2, during the recirculation enable time interval 442, recirculation (444) is triggered in response to NOZZLE_FIRED of the counter 302 having the value ‘0’.
In
In the recirculation enable time interval 506 in sample period 2, the recirculation controller 202 detects that both NOZZLE_FIRED_0 and NOZZLE_FIRED_1 are at ‘0’, and as a result, the recirculation controller 202 triggers recirculation (508). As a result of activating recirculation of the nozzle, NOZZLE_FIRED_0 is reset to ‘0’ and NOZZLE_FIRED_1 is reset to ‘1’ (510) at the end of sample period 2. Since NOZZLE_FIRED_1 has been reset to ‘1’ as a result of the recirculation (508) performed in sample period 2, recirculation is not triggered during recirculation enable time interval 512 in sample period 3.
At the end of sample period 2, NOZZLE_FIRED_1 is updated to the value of NOZZLE_FIRED_0 (524) (in this case ‘0’), and NOZZLE_FIRED_0 is reset to ‘0’. During the recirculation enable time interval 526 of sample period 3, both NOZZLE_FIRED_0 and NOZZLE_FIRED_1 are at ‘0’, and as a result, recirculation (528) is triggered.
The process further includes determining (at 604), by a controller (such as the recirculation controller 202) in a fluid ejection device, whether to trigger recirculating of the corresponding nozzle based on a value of the respective counter.
In the foregoing description, numerous details are set forth to provide an understanding of the subject disclosed herein. However, implementations may be practiced without some of these details. Other implementations may include modifications and variations from the details discussed above. It is intended that the appended claims cover such modifications and variations.
The present application claims priority to U.S. patent application Ser. No. 16/306,611, entitled “CONTROLLING RECIRCULATING OF NOZZLES,” filed in the U.S. on Dec. 3, 2018, and which is a U.S. National stage case of PCT PCT/US2016/055133, filed in the U.S. Receiving Office on Oct. 3, 2016, and which are hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 16306611 | Dec 2018 | US |
Child | 16857403 | US |