Fluidic ejection systems may control movement and ejection of fluid into or onto a fluid recipient. The fluid ejection system may eject or deposit fluid differently in different regions of the fluid recipient. One example fluid ejection system may be in the form of a printer that ejects ink onto a fluid recipient in the form of a print medium. One example fluid ejection system may be in the form of an additive manufacturing system that forms three-dimensional objects through the ejection of fluid.
Examples of fluid ejection systems may comprise a fluidic die having fluid actuators. The fluid actuators may include a piezoelectric membrane based actuator, a thermal resistor based actuator, an electrostatic membrane actuator, a mechanical/impact driven membrane actuator, a magneto-strictive drive actuator, or other such elements that may cause displacement and controlled ejection of fluid responsive to electrical actuation. Fluidic ejection systems described herein may comprise a plurality of fluid actuators, which may be referred to as an array of fluid actuators.
In example fluidic dies, the array of fluid actuators may be arranged in respective sets of fluid actuators, where each such set of fluid actuators may be referred to as a “primitive” or a “firing primitive.” A primitive generally comprises a group of fluid actuators that each have a unique actuation address A number of fluid ejectors corresponding to a respective primitive may be referred to as a size of the primitive. Primitives facilitate addressing and subsequent actuation of fluid ejector subsets that may be concurrently actuated for a given actuation event. An actuation event, as used herein, may refer to concurrent actuation of fluid actuators of a fluidic die to thereby cause fluid displacement such as fluid circulation or fluid ejection. A set of actuation events, as used herein, may refer to a number of the actuation events which results in each fluid actuator of each primitive being enabled at some time during the set of actuation events.
To illustrate by way of example, if a fluidic die comprises four primitives, where each respective primitive comprises eight respective fluid actuators (each eight fluid actuator group having an address 0 to 7), and one fluid actuator is enabled per primitive, a total of four fluid actuators may be concurrently actuated for a given, actuation event. For example, for a first actuation event, the respective fluid actuator of each primitive having an address of 0 may be actuated. For a second actuation event, the respective fluid actuator of each primitive having an address of 1 may be actuated. For each fluid actuator of each primitive to be enabled at some time during a set of actuation events, eight actuation events would make up the set of actuation events. As will be appreciated, the example is provided merely for illustration purposes. Fluidic dies contemplated herein may comprise more or less fluid actuators per primitive and more or less primitives per die.
The size of the primitive and the corresponding number of primitives of an array may limit the total number of fluid actuators that may be possibly actuated across a fluidic die during a given actuation event, assisting in satisfying fluid and electrical constraints of the fluidic die and the fluid ejection system. At the same time, the size of each primitive and the corresponding number of primitives may also impact the speed or rate at which fluid is ejected onto different regions. Fewer fluid actuators or addresses per primitive enables fast ejection speeds because of the fewer number of actuation events to fire all of the fluid actuators. However, fewer fluid actuators or addresses per primitive means more primitives. The more primitives per nozzle column array, the more nozzles that are enabled and that could be actuated simultaneously, which may result in power constraints on the fluid ejection system being violated. In many systems, the number of fluid actuators or addresses per primitive is fixed based upon the maximum ejection density and maximum energy demands allowed for a given fluid ejection system.
In many such systems, the number of fluid actuators or addresses per primitive and the corresponding speed for completing a document or job is based on a worst-case region of the document. In other words, the primitive is fixed at a size such that power constraints of the fluid ejection system will not be violated when printing high density regions, such as a region including images. Although well-suited for printing high density regions or images of a document, the fixed primitive size may result in unduly slow printing in lower density regions of a document, such as portions of a document including text.
In the example described herein, the number of fluid actuators or addresses per primitive is changed or selected “on-the-fly”. In one implementation, the number of fluid actuators or addresses per primitive is changed region by region. The different regions may be different regions in a single document, different regions along a continuous web or different regions of an additive manufacturing build bed. In another implementation, the different regions may be located on different documents or on different ejection tasks or print jobs. In one implementation, the number of different regions may comprise different collections of individual fluid recipients, such as different regions of fluid testing locations/spots, vials, channels or other regions which may receive ejected fluid.
The number of fluid actuators or addresses per primitive may be changed from one region to another based upon the overall actuation characteristics of each region. By modulating or changing the number of fluid actuators or addresses per primitive in response to different fluid actuation characteristics of different regions, different ejection or print speeds for different regions may be provided while still respecting fluidic and power constraints of the system. By providing different ejection or print speeds for different regions, overall ejection efficiency may be enhanced.
In examples described herein, a fluidic die may comprise an actuation data register and a mask register. The actuation data register may store actuation data that indicates each fluid actuator to actuate for a set of actuation events. The mask register may store mask data that indicates a subset of fluid actuators of the array of fluid actuators enabled for actuation for a respective actuation event of the set of actuation events. Therefore, it may be appreciated that examples contemplated herein may facilitate concurrent actuation of different arrangements of fluid actuators based on the mask data of the mask register. In some examples, the mask data may group fluid actuators in primitives, where the primitives may be identified via the mask data. Accordingly, examples described herein may facilitate variable primitive size. For example, for a first set of actuation events, fluid actuators may be arranged in primitives of a first primitive size, as defined by first mask data stored in the mask register, and for a second set of actuation events, second mask data may be loaded into the mask register such that fluid actuators may be arranged in primitives of a second primitive size.
In some examples described herein, the mask data that is stored in the mask register may be generated on the fluidic die itself, potentially reducing consumption of transmission bandwidth and increasing speed. In the described examples, mask data generation circuitry located on the fluidic die builds a set of mask data from building blocks or subsets of mask data, wherein each of the subsets has a pattern based upon a received pattern selection input. In one implementation, the subsets of mask data forming the set of mask data have the same repeating pattern of mask data. In other implementations, the subsets of mask data may have distinct individual patterns of mask data.
In some examples described herein, the fluidic die may comprise multiple sets of mask registers. Each mask register stores a set of mask data having a mask data bit or storage element for each of the fluid actuators in an array. Each set of mask data is for a single actuation event. Each set of mask registers is for use during a set of actuation events, wherein each fluid actuator of each primitive is enabled at some time during the set of actuation events. Sequencing logic may be used to select in sequence between the mask data sets in the set of mask registers during a set, of actuation events.
In some examples, a fluid actuator may be disposed in a nozzle, where the nozzle may comprise a fluid chamber and a nozzle orifice in addition to the fluid actuator. The fluid actuator may be actuated such that displacement of fluid in the fluid chamber may cause ejection of a fluid drop via the nozzle orifice. Accordingly, a fluid actuator disposed in a nozzle may be referred to as a fluid ejector.
Some example fluidic dies comprise microfluidic channels. Microfluidic channels may be formed by performing etching, microfabrication (e.g., photolithography), micromachining processes, or any combination thereof in a substrate of the fluidic die. Some example substrates may include silicon based substrates, glass based substrates, gallium arsenide based substrates, and/or other such suitable types of substrates for microfabricated devices and structures. Accordingly, microfluidic channels, chambers, orifices, and/or other such features may be defined by surfaces fabricated in the substrate of a fluidic die. Furthermore, as used herein a microfluidic channel may correspond to a channel of sufficiently small size (e.g., of nanometer sized scale, micrometer sized scale, millimeter sized scale, etc.) to facilitate conveyance of small volumes of fluid (e.g., picoliter scale, nanoliter scale, microliter scale, milliliter scale, etc.). Example fluidic dies described herein may comprise microfluidic channels which fluidic actuators may be disposed. In such implementations, actuation of a fluid actuator disposed in a microfluidic channel may generate fluid displacement in the microfluidic channel. Accordingly, a fluid actuator disposed in a microfluidic channel may be referred to as a fluid pump.
In the examples described herein, a fluid ejection system may include an actuation controller that selects a first set of mask data for enabling fluid actuators with respect to a first region and a second set of mask data for enabling fluid actuators with respect to a second region. Different “regions” may be in the form of different portions of a same sheet or document, different pages of multiple pages, different portions of a web, different regions of a build bed or different build beds of an additive manufacturing system, or different independent print jobs or fluid ejection projects/tasks carried out by the fluid ejection system. In such implementations, the actuation controller may select or change between different sets of mask data corresponding to different primitive sizes on-the-fly during the ejection on a single document or single web, between the ejection of fluid on different pages (after one pages been completed and before the next page has begun or between different ejection tasks (after one ejection task or print job as completed and for the next ejection task or print job has begun). The first set of mask data may indicate a first subset of the total number of fluid actuators of an array, the first subset having a first number of fluid actuators enabled for actuation for a respective actuation event of a first set of actuation events. The second set of mask data may indicate a second subset of the total number of fluid actuators of an array, the second subset having a second number of fluid actuators, different than the first number of fluid actuators, enabled for actuation for a respective actuation event of a second set of actuation events.
Example methods disclosed herein select a first set of mask data for enabling fluid actuators with respect to a first region of a fluid recipient and select a second set of mask data for enabling fluid actuators with respect to a second region of the fluid recipient. The first set of mask data indicates a first number of fluid actuators of an array of fluid actuators enabled for actuation for a respective actuation event of a first set of actuation events being carried out with respect to the first region while the second set of mask data indicates a second number of fluid actuators of the array of fluid actuators, different than the first number of fluid actuators of the array, enabled for actuation for a respective actuation event of a second set of actuation events being carried out with respect to the second region. The example method transmits the selection of the first set of mask data and the selection of the second set of mask data to actuation logic to enable the first set of fluid actuators for the respective actuation event of the first set of actuation events and the second set of fluid actuators for the respective actuation event of the second set of actuation events, respectively.
Disclosed herein is an example non-transitory computer-readable medium containing instructions for directing a processor. The instructions may direct the processor to determine a first fluid actuation characteristic for a first region of a fluid recipient and determine a second fluid characteristic for a second region of the fluid recipient. The instruction may further direct the processor to select a first set of mask data for enabling fluid actuators for a respective actuation event of a set of actuation events being carried out respect to the first region of a fluid recipient and a second set of mask data for enabling fluid actuators for a respective actuation event of a set of actuation events being carried out with respect to the second region of the fluid recipient. The first set of mask data and the second set of mask data may be selected based upon the determined first fluid actuation characteristic and the second fluid actuation characteristic, respectively. The first set of mask data may indicate a first number of fluid actuators of an array of fluid actuators enabled for actuation for a respective actuation event of a first set of actuation events. The second set of mask data may indicate a second number of fluid actuators of the array of fluid actuators enabled for actuation for a respective actuation event of a second set of actuation events. The instructions direct the processor to further transmit the selection of the first set of mask data and the selection of the second set of mask data to actuation logic to enable the first set of fluid actuators for the respective actuation event of the first set of actuation events and the second set of fluid actuators for the respective actuation event of the second set of actuation events, respectively.
Disclosed herein are various examples where the selection of different sets of mask data for different regions of a fluid recipient, such as a print medium, are based upon at least one actuation characteristic for fluid actuator actuations in the different regions. For example, in one implementation, the selection of different sets of mask data may be based upon different fluid actuator actuation densities in the first and second regions. A fluid actuator actuation density may refer to the percentage of the fluid actuators that are selected for actuation during a set of actuation events when carrying out printing or ejection tasks with respect to a particular region. For example, when ejecting fluid in a first region, the first total number of fluid actuators may be fired or actuated during each set of actuation events. In contrast, when ejecting fluid in a second region, a second total number of fluid actuators, different than the first number, may be fired or actuated during each set of actuation events. In some implementations, the number of fluid actuators in an array or column that are to be fired during a set of actuation events is indicated by actuation data in actuation data register. Accordingly, in one implementation, the selection of the set of mask data and the associated primitive size for a given region may be based upon the number of fluid actuators selected for actuation during a set of actuation events in the actuation data register for the given region. In contrast, the size of the primitive may dictate which of those fluid actuators to be fired during the set of actuation events are fired by each actuation event of the set.
another implementation, selection a different sets of mask data may be based upon different fluid compositions of the fluid to be deposited the first and second regions, such as the particular types of fluid or colors of fluid or their relative distributions in the different regions. In another implementation, selection of different sets of mask data may be based upon different power profiles for the first region and the second region. For example, due to differences in fluid actuator actuation density, the fluid to be ejected or the like, different regions may consume different amounts of energy. In some implementations, the selection of different sets of mask data may be based upon a combination of such feature differences or other actuation characteristic differences.
In still other implementations, the selection of different sets of mask data may be based upon the type of actuators being actuated during an event. For example, a first set of mask data may be selected where the majority of the fluid actuators to be actuated during an event with respect to a first region consume a lower amount of energy, such as fluid pumps. A second set of mask data, having a larger primitive size, may be selected where the majority of the fluid actuators to be actuated during an event with respect to a second region consume higher amounts of energy, such as fluid ejectors.
Different sets of mask data identifying differently sized primitives for use with respect to carrying out a task on different regions may be selected based upon the different fluid drop weights that are used in the different regions. For example, a set of mask data identifying a larger primitive size may be selected when carrying out an ejection task with respect to a region having a high, drop weight where more than one actuator is fired or actuated in each primitive. By customizing the sets of mask data to different regions of the fluid recipient based upon the actuation characteristics in such regions, overall print speeds for the print recipient may be enhanced while remaining within the electrical and fluidic constraints of the ejection system.
As schematically illustrated by
Actuation controller 80 facilitates the customization of fluid ejection on different regions of a fluid recipient based upon the different characteristics of the different regions. Actuation controller 80 may select different sets 82, 84 of mask data indicating different primitive sizes for the different regions of the print recipient based upon characteristics of the different regions. Such selection of the different sets 82, 84 of mask data indicating different primitive sizes may be based upon actuation characteristics such as fluid actuator actuation density, the different compositions or distribution of the fluid itself being ejected in the different regions and/or different energy consumption profiles of the different regions. For example, actuation controller 80 may select a first set of mask data indicating a larger primitive size, wherein a fewer number of fluid actuators or fluid ejectors are concurrently enabled for actuation during an actuation event of a set for a region having a high fluid actuator actuation density, for a region to receive a type of fluid that consumes a large amount of energy and/or for region having a large energy consumption profile. The fewer number of fluid actuators being enabled for actuation during each actuation event corresponds to a larger number of actuation events in the set such that each fluid actuator is enabled at some time during the set. The larger number of actuation events corresponds to a larger total time to eject fluid into or onto the first region.
Actuation controller 80 may select a second set of mask data indicating a smaller primitive size, wherein a larger number of fluid actuators or fluid ejectors are concurrently enabled for actuation during respective actuation events of a set for a region having a low fluid actuator actuation density, for region to receive a type of fluid that consumes a less amount of energy and/or for a region having a low energy consumption profile. The larger number of fluid actuators being enabled for actuation during each actuation event corresponds to a smaller number of actuation events in the set such that each fluid actuator is enabled at some time during the set. The smaller number of actuation events corresponds to a smaller total time to eject fluid into or onto the first region.
Fluid actuators 112 comprise devices or elements that cause displacement of a fluid in response to electrical actuation. The fluid actuators 112 may include a piezoelectric membrane based actuator, a thermal resistor based actuator, an electrostatic membrane actuator, a mechanical/impact driven membrane actuator, a magneto-strictive drive actuator, or other such elements. In one implementation, each fluid actuators 112 are in the form of fluid ejectors which may be part of nozzles. In some implementations, fluid actuators 112 comprise a mixture of different types of fluid actuators in the form of both pumps and ejectors.
In the example illustrated, fluid actuators 112 are in an array. In one implementation, the array comprises a row or column of such fluid actuators. In another implementation, the array may comprise fluid actuators 12 having other layouts or arrangements.
Actuation data register 116 comprises a memory data register that may store actuation data that indicates each fluid actuator to actuate for a set of actuation events. Actuation data load logic 117 comprises electronic hardware circuitry and logic elements that load actuation data register 118 with actuation data. The actuation data may indicate the number of fluid actuators that are to be actuated or fired at some time during a set of actuation events. The actuation data may correspond to fluid actuator actuation density. The actuation data in combination with the current set of mask data in mask register 118 indicates which fluid actuators 112 are to be actuated during the respective actuation event of a set of actuation events.
Mask register 118 comprises a memory data register that may store a set mask data for an individual actuation events of a set of actuation events. The set of mask data in mask register 118 indicates a set of fluid actuators of the array enabled for actuation for a respective actuation event of the set of actuation events. In one implementation, the actuation data register 116 comprises the number of bits or data storage locations corresponding to each of the fluid actuators 112 of the array. In such an implementation, mask register 118 comprises a number of bits or data storage locations corresponding to each of the fluid actuators 112 of the array.
Actuation logic 120 comprises logic circuitry such as processing hardware and/or software, coupled to actuation data register 16, mask register 118 and fluid actuators 112. Actuation logic 120 is to electrically actuate a subset of fluid actuators 112 based at, least in part upon actuation data residing in actuation data register 116 and mask data residing in mask register 118 for an individual actuation event of a set or larger series of actuation events.
As in system 10, actuation controller 80 facilitates the customization of fluid ejection on different regions of a fluid recipient based upon the different characteristics of the different regions. Actuation controller 80 may select different sets 82, 84 of mask data having different sized primitives for enabling fluid actuators with respect to the different regions of the print recipient based upon characteristics of the different regions. Such selection of the different sets 82, 84 of mask data and their associated different number of enabled fluid actuators during an actuation event may be based upon, actuation characteristics such as fluid actuator actuation density, the different compositions or distribution of the fluid itself being ejected in the different regions and/or different energy consumption profiles of the different regions.
As further schematically illustrated by
Such characteristics may differ from one another. For example, one of regions 94, 96 may have text with a lower fluid actuator actuation density while the other of regions 94, 96 may have an image with a higher fluid actuator actuation density. One of regions 94, 96 may have a higher relative proportion or percentage of a first fluid that may demand higher energy to eject as compared to other fluids, such as black ink, while the other of regions 94, 96 has a lower relative portion or percentage of the first fluid, such as black ink. One of regions 94, 96 may call for the same or a similar number of fluid actuators to be actuated for each associated set of actuation events, but where one region calls for a greater number or percentage of fluid actuators serving as fluid ejectors to be fired during a set of actuation events carried out while the other region calls for a greater number percentage of fluid actuators serving as fluid pumps to be fired during a set of actuation events.
Actuation controller 80 may analyze the actuation file/instructions 92 identify the different actuation characteristics AC1 and AC2 of regions 94 and 96 on fluid recipient 92. In the example illustrated, actuation controller 80 may comprise a processing unit 31 and a non-transitory computer-readable medium in the form of memory 83. Memory 83 contains instructions for directing processing unit 31 to carry out the analysis of actuation file/instructions 92. Based upon the determined differences in the characteristics, actuation controller 80 may select differently sized primitives for use when actuating actuators in the different regions 94 and 96. To select differently size primitives, actuation controller 80 selects different sets of mask data for controlling what subset of fluid actuators are enabled for actuation during each actuation event of a set of actuation events.
For example, controller 80 may select first sets of mask data for use when actuating actuators when displacing fluid so as to circulate the fluid to provide fluid for ejection onto region 94 or when displacing fluid through a nozzle so as to eject the fluid onto region 94, wherein each of the sets enable a first number of fluid actuators per actuation event. Controller 80 may select a second set of mask data for use when ejecting fluid on region 96, wherein the second set of mask data enables a second number, different than the first number, of fluid actuators per actuation event.
In one scenario, actuation controller 80 may evaluate the called for fluid actuation actuator density associated with each of regions 94, 96. In such an implementation, actuation controller 80 may compare the identified fluid actuator actuation density of each of regions 94, 96 to a predefined stored threshold. Actuation data in actuation data register 118 controls or determines what fluid actuators will be fired during a set of actuation events. The mask data in a mask register 116 controls which of those fluid actuators that are to be fired during the set of actuation events are actuated or fired in an individual actuation event of the set. For a fluid actuator to be actuated or fired, the fluid actuator must be enabled in both the actuation data register and the mask register. A region of higher density ejections may have a greater number of actuators also enabled in the actuation data register, whereas a region of lower density ejections may have a fewer number of actuators also enabled in the actuation data register. A region of higher density ejections may fire or actuate a larger number or larger percentage of the fluid actuators enabled in accordance with the mask data. A region of lower density ejections may actually fire or actuate a smaller number or smaller percentage of the fluid actuators enabled in accordance with the same mask data. In other words, even though the same number of fluid actuators may be enabled pursuant to the same set of mask data, the actual number of fluid actuators that are actuated or fired may be greater for a high density ejection region as compared to a lower density ejection region.
In response to determining that the fluid actuator actuation density of region 94 is above the predefined threshold, such as where region 94 may comprise graphics, photos or other images, actuation controller 80 may select a first set of mask data corresponding to a larger primitive size, wherein a fewer number of fluid actuators are concurrently enabled during respective actuation events of a set. The fewer number of fluid actuators being enabled for concurrent actuation during each actuation event corresponds to a larger number of actuation events in the set such that each fluid actuator is enabled at some time during the set. The larger number of actuation events corresponds to a larger total time to eject fluid into or onto the first region. The use of such a larger primitive size during the ejection of fluid in region 94 may result in system 110 staying within power constraints of system 110.
By way of contrast, in response to determining that the fluid actuator actuation density of region 96 is below the predefined threshold, such as where region 96 has more text, actuation controller 80 may select a second set of mask data corresponding to a smaller primitive size, wherein a larger number of fluid actuators or fluid ejectors of the array are enabled for concurrent actuation during respective actuation events of a set. The larger number of fluid actuators being enabled for concurrent actuation during each actuation event corresponds to a smaller number of actuation events in the set such that each fluid actuator is enabled at some time during the set. The smaller number of actuation events corresponds to a smaller total time to eject fluid into or onto the second region. Use of such a smaller primitive size during the ejection of fluid in region 96 may result in system 110 completing the document or job in less time.
As further shown by
In one implementation, actuation controller 90 may evaluate fluid actuator actuation density by randomly selecting a set of actuation events in each of the different regions to analyze and upon which to base the selection of the set of mask data. In another implementation, actuation controller 90 may evaluate multiple sets of actuation events from across different portions of each of the different regions and base the selection of a set of mask data upon the number of fluid actuators to be actuated during the multiple sets of actuation events. In one implementation, the multiple sets of actuation events may be randomly taken from different portions of the each of the regions. In another implementation, the multiple sets of actuation events analyzed to determine fluid actuator actuation density may be taken from uniformly spaced locations across each of the regions. In each case, actuation controller 80 may compare the determined fluid actuator actuation density against various predefined thresholds to determine which of many available sets of mask data selected. The resolution at which different regions are analyzed (the size of the different regions) and the values of the thresholds against which the determined fluid actuator actuation densities are compared to potentially trigger a particular set of mask data may vary to vary the frequency at which different sets of mask data are selected for the different regions.
By way of contrast,
As indicated by block 204, actuation controller 80 selects a first set of mask data for the enablement of fluid actuators with respect to a first region of a fluid recipient. The first set of mask data indicates a first number of fluid actuators of an array of fluid actuators enabled for actuation for a respective actuation event of a first set of actuation events. The first number of fluid actuators may correspond to the first primitive size having the first number of fluid actuators.
As indicated by block 206, actuation controller 80 selects a second set of mask data for enablement of fluid actuators with respect to a second region of the fluid recipient. The second set of mask data indicates a second number of fluid actuators, different than the first number of fluid actuators, of the array of fluid actuators enabled for actuation for a respective actuation events of a second set of actuation events. The second number of fluid actuators may correspond to a second primitive size having the second number of fluid actuators.
In one implementation, the selection of the first set of mask data in the second set of mask data may be based upon different actuation characteristics of the first region and the second region. In one implementation, the selection of different sets of mask data may be based upon different ejection densities in the first and second regions. In another implementation, selection a different sets of mask data may be based upon different fluid compositions in the first and second regions, such as the particular types of fluid or colors of fluid or their relative distributions in the different regions. In another implementation, selection of different sets of mask data may be based upon different power profiles for the first region and the second region. For example, due to differences in fluid actuator actuation density, the fluid to be ejected, fluid drop weights, or actuator types (ejector vs pump), different regions may consume different amounts of energy. In some implementations, the selection of different sets of mask data may be based upon a combination of such feature differences or other actuation characteristic differences. By customizing the sets of mask data for different regions of the fluid recipient based upon the actuation characteristics in such regions, overall printing or fluid ejection speeds for the fluid recipient may be enhanced while remaining within the electrical and fluidic constraints of the ejection system.
As indicated by block 208, actuation controller 80 transmits, a selection of the first set of mask data and the selection of the second set of mask data to actuation logic 120 to enable the first number of fluid actuators for the respective actuation event of the first set of actuation events and the second number of fluid actuators for the respective actuation event of the second set of actuation events. In one implementation, the selected set of mask data is loaded into a mask register connected to the actuation logic, wherein the set of mask data is shifted for each actuation event of the set. In one implementation, a fluidic die may comprise multiple mask registers with each mask register storing a different set of mask data, wherein a selected one of the multiple mask registers having the selected set of mask data is connected to actuation logic 120 and wherein the selected mask register is shifted for each actuation event of the set. In another implementation, actuation controller 80 selects the set of mask data by selecting a subset or a pattern of mask data which is repeatedly loaded into the mask register to form the full selected set of mask data, wherein the set of mask data formed in the mask register is shifted for each actuation event of the set. In one implementation, actuation controller 80 selects a set of mask data by selecting a subset or pattern of mask data which is repeatedly loaded into the mask register to form the full selected set of mask data, wherein the mask register is loaded in a similar fashion for each actuation event of the set. In one implementation, the selected set of mask data is stored in a mask register of a larger set of mask registers, wherein each of the mask registers of the larger set of mask registers are selected and sequenced during the set of actuation events.
Each fluid actuator 312 is similar to fluid actuators 12 described above. As further shown by
In one implementation, fluid supply 379 comprises an elongate slot supplying fluid to each of the fluid ejectors 354 of the array of fluid ejectors that are actuated based upon the actuation data contained in actuation data register 316 and the mask data contained in mask register 318. In another implementation, fluid supply 379 may comprise an array of ink feed holes. In one implementation, fluid supply 379 further supplies fluid to fluid actuator 312 serving as fluid ejectors and actuator 312 serving as fluid pumps located on an opposite side of fluid supply 379.
Actuation data register 316 is similar to actuation data register 116 described above. As shown, actuation data load logic 332 may be coupled to the actuation data register 316 to control the loading of actuation data into actuation data register 316 for a series or set of actuation events.
Mask registers 318 each comprise a memory data register to store a set of mask data, wherein the set of mask data has a mask data element for each fluid actuator 312. Mask registers 318 are grouped into a set 350 of mask registers. Set 350 is formed by a number of mask registers 318 of at least the minimum number of possible actuation events for a set of actuation events, wherein the number of actuation events in a set of actuation events corresponds to the number of fluid actuators in each primitive. In other words, the number of mask registers 318 in set 350 corresponds to the maximum number of fluid actuators that may be chosen for a primitive.
In one implementation, each mask register 318 of the set 350 stores a single pattern of mask data, wherein the single pattern is shifted in each mask register of the set relative to the same pattern of mask data in the other mask registers 318 of the set 350. As a result, cycling through all of the mask registers 318 of set 350 during a set of actuation events resulting each fluid actuator of each primitive and each actuator of the array being enabled at some time during the set of actuation events. In other implementations, some mask registers 318 of set 350 may store altered patterns of mask data that are different from the patterns of mask data in the other mask registers 318 of set 350.
Die input 330 comprises a connection by which instructions for fluid displacement may be received by die 310. In one input, die input 330 comprises an electrical contact pad. In other implementations, die input 330 may comprise other electrical signal receiving structures.
Actuation data load logic 332 comprises logic circuitry such as processing hardware and/or software, coupled to actuation data register 316 to load actuation data register 316 with actuation data received by die input 330. Mask data set(s) registers 334 comprises a memory data register coupled to die input 330 to temporarily store a selection of mask data sets for at least one set of actuation events. In one implementation, a selection of mask data sets and the actuation data may be transmitted in a single packet or in the header of a single packet, wherein die 310 additionally comprises a parser or other logic to, distinguish and separate the actuation data from the input pertaining to the selected set of mask data. In one implementation, mask data sets register 334 stores an identification of a set of mask registers to be utilized for a set of actuation events.
Mask registers loading logic 336 loads the mask registers 318 of set 350 with sets of mask data for being selected and sequenced through during a set of actuation events. Loading of the set 350 of mask registers 318 may take place during periods in which die 310 is inactive. Mask registers loading logic 336 may load less than all of the available registers 318 of set 350 depending upon the number of actuation events in the set of actuation events which is dependent upon the size of the primitive and number of primitive sizes. For example, set 350 may comprise eight registers, facilitating up to eight actuation events in a set of actuation events which correspond to a primitive size of eight fluid actuators. In instances where a set of actuation events is to have four fluid actuators per primitive (as indicated by the input stored in register 334), mask registers loading logic 336 may populate four of the eight available registers for the set of actuation events.
As shown by
In such an implementation, in response to die 310 receiving a primitive size selection corresponding to one of the sets 352 of registers 318, logic 336 may temporarily disconnect set 350 from sequencing logic 340 and connect the set 352 having selected primitive size to sequencing logic 340. The provision of additional sets 352 of mask registers 318 having preloaded sets of mask data for different primitive sizes may reduce the time consumed by the loading of sets of mask data into registers 318 of set 350 when the primitive size is being changed.
Sequencing logic 340 is coupled to set 350 of mask registers 318. As described above, in some circumstances, sequencing logic 340 may alternatively be coupled to a selected one of sets 352 of mask registers 318. Sequencing logic 340 operates in a fashion similar to that of sequencing logic 40 described above. Sequencing logic 340 comprises logic circuitry that selects and sequences different sets of mask data for individual actuation events of a set or series of actuation events. After each actuation event, sequencing logic 340 selects another mask register 318 in the set 350, 352 for the next actuation event of the set of actuation events. As described above, in one implementation, the sets of mask data in the set 350. 352 are selected and sequenced by sequencing logic 340 such that each fluid actuator of each primitive or each fluid actuator of the array is enabled at some time during the set of actuation events.
Actuation controller 380 is similar to actuation controller 80 described above. Actuation controller 380 facilitates the customization of fluid actuator actuations with respect to different regions of a fluid recipient based upon the different characteristics of the different regions as may be determined from the instructions for ejecting fluid on the different regions. Actuation controller 380 may select a first collection of multiple sets of mask data for a first region, wherein each set of mask data in the first collection identifies a first primitive size or a first number of fluid actuators to be enabled for each actuation event of a first set of actuation events and wherein each set of mask data in the first collection is used during an actuation event of the first set. Actuation controller 380 may select a second collection of multiple sets of mask data for a second region, wherein each set of mask data in the second collection identifies a second primitive size or a first number of fluid actuators to be enabled for each actuation event of a second set of actuation events and wherein each set of mask data in the second collection is used during an actuation event of the second set. Such selection of the different collections of sets of mask data and their associated different number of enabled fluid actuators during an actuation event may be based upon actuation characteristics such as ejection or print density, the different compositions or distribution of the fluid itself being ejected in the different regions and/or different energy consumption profiles of the different regions.
As further schematically illustrated by
Such characteristics may differ from one another. For example, one of regions 94, 96 may have text with a lower fluid actuator actuation density while the other of regions 94, 96 may have an image with a higher fluid actuator actuation density. One of regions 94, 96 may have a higher relative proportion or percentage of a first fluid that may demand higher energy to eject as compared to other fluids, such as black ink, while the other of regions 94, 96 has a lower relative portion or percentage of the first fluid, such as black ink. For example, region 94 may call for a larger number or a higher percentage of fluid actuators to be actuated to circulate fluid when a set of actuation events is to be carried out with respect to region 94 while region 96 may call for a larger number or higher percentage of fluid actuators to be actuated to eject fluid when a set of actuation event is to be carried out with respect to region 96.
Actuation controller 380 may analyze the actuation file/instructions 90 to identify the different actuation characteristics AC1 and AC2 of regions 94 and 96 on fluid recipient 92. Based upon the determined differences in the characteristics, actuation controller 380 may select differently sized primitives for use when enabling fluid actuators for carrying out ejection tasks respect to the different regions 94 and 96. To select differently size primitives, actuation controller 380 selects different collections of mask data sets, stored in sets of mask registers 350, 352, for controlling what subset of fluid actuators are enabled for actuation during each actuation even of a set of actuation events. For example, controller 380 may select a first collection of mask data sets stored in the set 350 of registers 318 for use when enabling fluid actuators with respect to region 94, wherein each of the mask data sets the set 350 of registers 318 enable a first number of fluid actuators per actuation event. Controller 380 may select a second set 352 of mask registers 318 for use when enabling fluid actuators with respect to region 96, wherein each of the sets of mask data in a set 352 enable a second number, different than the first number, of fluid actuators per actuation event.
In one scenario, actuation controller 380 may evaluate the called for fluid actuator actuation density at which fluid actuators are to be actuated during sets of actuation events carried out with respect to regions 94, 96. In such an implementation, actuation controller 80 may compare the identified fluid actuator actuation density of each of regions 94, 96 to a predefined stored threshold. In response to determining that the fluid actuator actuation density of region 94 is above the predefined threshold, such as where region 94 may comprise graphics, photos or other images, actuation controller 80 may select a first collection of mask data sets, stored in one of sets 350, 352 of mask registers 318 and corresponding to a larger primitive size, wherein a fewer number of fluid actuators or fluid ejectors are concurrently enabled during respective actuation events of a set. The fewer number of fluid actuators being enabled for concurrent actuation during each actuation event corresponds to a larger number of actuation events in the set of actuation events such that each fluid actuator is enabled at some time during the set. The larger number of actuation events corresponds to a larger total time to eject fluid into or onto the first region. The use of such a larger primitive size during the ejection of fluid in region 94 may result in system 310 staying within power constraints of system 310.
By way of contrast, in response to determining that the fluid actuator actuation density of region 96 is below the predefined threshold, such as where region 96 has more text, actuation controller 80 may select a second collection of mask data sets, stored in another one of sets 350, 352 of mask registry 18 and corresponding to a smaller primitive size, wherein a larger number of fluid actuators or fluid ejectors of the array are enabled for concurrent actuation during respective actuation events of a set. The larger number of fluid actuators being enabled for concurrent actuation during each actuation event corresponds to a smaller number of actuation events in the set such that each fluid actuator is enabled at some time during the set. The smaller number of actuation events corresponds to a smaller total time to eject fluid into or onto the second region. Use of such a smaller primitive size during the ejection of fluid in region 96 may result in system 310 completing the document or job in less time.
As indicated by block 412, mask registers loading logic 336 (shown in
As shown by
As indicated by block 414, sequencing logic 340 selects one of mask registers 318a-318d for the current actuation event, “event 1”. In the example illustrated, sequencing logic 340 transmits an activating signal along address select line 400a to select the set of mask data stored in registers 318a. Such signals cause logic associated with registers 318a to output values based upon the values of the bits of mask register 318a.
As indicated by block 416, actuation data load logic 332 (shown in
As indicated by block 418, actuation logic 418 transmits a fire pulse to fluid actuators 312 based upon the corresponding values in the selected mask register 318a and the corresponding values in actuation data register 316.
Actuation logic 120 electrically actuates those fluid actuators having a corresponding bit in register 318A with a value of “1” and a corresponding bit in register 316 having a value of ‘1’.
As indicated by block 420, sequencing logic 340 determines whether all of masks that have been loaded with sets of mask data, masks 318a-318d have been selected as part of the set of actuation events. As indicated by block 422, in response to mask registers 318 yet to be selected, sequencing logic 40 proceeds by once again selecting the next mask register for the next actuation event, “event 2”. In the example scenario being discussed, sequencing logic 340 would select mask register 318b by transmitting a selection signal on address line 900b. As indicated by block 918, a fire pulse once again be sent by actuation logic 120 resulting in a different subset of actuators 312 being actuated. As shown by
As indicated by block 422, once the set of actuation events has been completed and each of the mask registers 318 populated with sets of mask data has been selected, a determination is made as to whether the next set of actuation events are to use the same mask data sets. In one implementation, sequencing logic or other logic on die 310 determines from mask data sets registry 34 whether new sets of mask data are to be used for the next set of actuation events. If the same mask data sets are to be used, method 410 proceeds to block 416 where new actuation data is loaded into actuation registry 16 and the actions of blocks 418, 420 and 422 repeat. If the same mask is sets are not to be used for the next set of actuation events, method 410 proceeds to block 412 where the new math data sets are loaded into mask registers 318. The new sets of mask data may utilize a greater or fewer number of such mask registers depending upon the size of the primitive selected by actuation controller 380 to be used during the next set of actuation events.
Mask registers 418 each store a set of mask data identifying a different number of fluid actuators to be actuated during a set of actuation events. In other words, each of mask registers 418 stores a set of mask data identifying a differently sized primitive. In one implementation, mask registers 418 are contained on a same fluidic die 400 on which fluid ejectors and fluid pumps are located.
Selection register 434 comprises a memory data register. Selection register 434 is similar to selection register 334 except that selection register 434 stores an input received by die input 330 from actuation controller 480 that indicates the set of mask data to be used for a set of actuation events. The input may be received in a header of a packet of data received from actuation controller 480. In one implementation, the input may specifically identify the mask register to be used for a set of actuation events. In other implementations, the input may identify a size of a primitive to be used, wherein mask register selection logic 436 determines which mask register contains the appropriate set of mask data for the selected primitive size. In another implementation, the input may identify the set of mask data, wherein mask when select logic 436 determines which mask register contains the set of mask data.
Mask register selection logic 436 comprises logic elements. circuitry and hardware connected to selection register 434, mask registers 418 and actuation logic 120. Based upon the selected mask register 418 stored in selection register 434, mask register selection logic 436 selectively connects one of mask registers 418 to actuation logic 120 for a set of actuation events.
Mask control logic 438 comprises logic to shift the selected set of mask data contained in the selected mask register 418 for each actuation event of the set of actuation events such that each fluid actuator of each primitive or each fluid actuator of the array is, enabled at some time during the set of actuation events. Mask control logic 438 comprises logic circuitry such as processing hardware and/or software coupled to mask register 418. Mask control logic 438 shifts the set of mask data stored in mask register 418 responsive to a respective actuation event to thereby indicate another subset of fluid actuators enabled for actuation for another respective actuation event of the set of actuation events. In one implementation, mask control logic 438 comprises a shift count register 490 and a shift state machine 492, the shift state machine 492 being connected to the mask registers 418 or at least the selected mask register 418. In such an implementation, the shift count register 490 stores the skip pattern, the extent to which the set of mask data is to be shifted within the selected mask register 418. The shift state machine is to input a shift clock to the mask register to shift the mask data stored in the mask register. In other implementations, mask control logic 438 may comprise other circuitry for carrying out the shifting of the selected set of mask data in the selected register 418.
Actuation controller 480 is similar to actuation controller 80 described above in that actuation controller 680 analyzes different regions, such as regions 94, 96, to determine if different actuation characteristics in the different regions, call for the use of different sized primitives when ejecting fluid in the different regions. Actuation controller 480 supplies an input to die input 330 that indicates the set of mask data in mask register 618 that should be used for a set of actuation events as described above. In one implementation, actuation controller 480 is located remote from die 400. In another implementation, actuation controller 480 or portions of actuation controller 480 may be located on die 400.
In the illustrated example, actuation controller 480 has selected a set of mask data identifying a primitive size of four fluid actuators. This value is stored in selection register 434 (shown in
Thereafter, actuation logic 120 actuates individual fluid actuators, the fluid ejectors and the fluid pumps, based upon the corresponding values in actuation data registry 316 and the bits of mask register 418. In the first example actuation event, the fluid actuator corresponding to the first bit of each subset4 44 or each primitive will be actuated or fired as indicated by “F”. In the example shown in
The skip pattern or number of bits by which pattern 442 is shifted for each actuation event is dependent upon the length of each subset 444 and the corresponding number of actuation events. The number of bits by which pattern 442 is shifted may vary from one actuation event to another or may be uniform from one actuation event or another.
As indicated by block 504, mask register selection logic 436 connects the mask register selected by actuation controller 480 to actuation logic 120. As indicated by block 508, actuation data load logic 332 loads actuation data register 316 with actuation data. As indicated by block 510, a fire pulse is generated and transmitted to actuation logic 120. Actuation logic 120 selectively actuates those fluid actuators 312 for which the respective bits in registers 316 and 418 are both active or have a value of “1”. Such actuation is controlled based upon the received fire pulse. It should be appreciated that the order of the connection of mask register per block 504 and the loading of actuation data per block 508 may be reversed.
As indicated by block 512, mask control logic 438 determines whether the set of actuation events has been completed. As indicated above, a set of actuation events is completed when each fluid actuator has been enabled during the set of actuation events. In other words, each bit value in each subset 444 has had a value of “1” during the set of actuation events. As indicated by block 514, in response to the event set not being completed, mask control logic 438 shifts the set 442 of mask data in register 418 in accordance with the skip pattern as described above. Per block 510, a fire pulse is once again transmitted to actuation logic 120 which selectively actuates those fluid actuators 312 for which the respective bits in registers 316 and 318 are both active or have a value of “1”.
As indicated by block 516, in response to mask control logic 438 determining that the set of actuation events has been completed, the process repeats with mask register selection logic 436 reading the input from actuation controller 480 stored in selection register 434 and connecting the appropriate mask register 418 to actuation logic 120 for the next set of actuation events (block 504). A new set of actuation data may further be loaded into actuation logic 120 per block 508.
Subset registers 615 comprise memory data registers that store different subsets of mass data, different available patterns of mass data, for use in generating a set of mask data to be used during a set of actuation events. In the example illustrated, subset registers 615 are illustrated as storing three subsets or patterns of mask data: a first subset 1 0 0 0 identifying a primitive size of four fluid actuators; a second subset 1 0 0 0 0 identifying a primitive size of five fluid actuators; and a third subset 1 0 0 identifying a primitive size of three fluid actuators. As should be appreciated, the number of subset registers 615 as well as the number of available subsets or patterns for use in building a set of mask data in register 618 may vary.
Selection register 616 comprise a memory data register that stores stores an input received by die input 330 from actuation controller 680 that indicates the pattern or subset of mask data to be used by mask generation circuit 617 when building a set of mask data in registers 618 for a set of actuation events. The input may be received in a header of a packet of data received from actuation controller 480. In one implementation, the input may specifically identify the subset registers 615 to be used (subset ID 682). In other implementations, the input may identify a size of a primitive or a subset length to be used (subset length 684), wherein mask generation circuit 617 determines which subset register contains the appropriate pattern of mask data for the selected primitive size. In one implementation subset registers 615 may be omitted, wherein mask generation circuit 617 generates or builds the full set of mass data in mask 618 based upon the primitive size or subset length (subset length 684) that is been selected.
Mask generation circuit 617 comprises memory and/or logic elements on die 400 that build a set of mask data with subsets of mask data that serve as building blocks for the larger set of mask data populating mask register 618. Mask data generation circuitry 617 builds a set of mask data from a plurality of individual subsets of mask data. In one implementation, mask data generation circuitry 617 loads the individual subsets of mask data into mask register 618 when forming the set of mask data. Each of the subsets have a pattern of mask data based upon at least one selection input received at die input 330 from actuation controller 680. In one implementation, the subset of mask data in the selected subset registers 615 is repeatedly loaded into mask register 18 until mask is 618 is populated with the full set of mask data.
Mask data generation circuitry 617 facilitates the building of different sets of mask data directly on die 400. Because the different sets of mask data may be built directly on die 400, it is contemplated that the consumption of transmission bandwidth may be reduced and speed may be increased. Moreover, die 400 may provide enhanced flexibility and control over the displacement of fluid by fluid ejectors and fluid pumps through the selection and control over the pattern of mask data in the subsets that make up the larger set of mask data that populates mask register 618.
In one implementation, mask generation circuitry 617 comprises shift register 648 and shift pattern state machine 650. Shift register 648 comprises a memory data register which temporarily stores the subset of mask data which forms a part of the larger overall set of mask data that populates mask register 18.
Shift pattern state machine 650 comprises electronic circuitry, hardware and/or software formed upon die 400 that generates subsets based upon the pattern select input stored in selection register 616. In the example illustrated, shift pattern state machine 650 loads shift register 618 with bits having a pattern of values corresponding to the pattern of mask data in the selected subset registers 615. Shift pattern state machine 650 loads mask register 61818 by shifting the generated pattern of mask data, forming the subset and temporarily stored in shift register 648, into mask register 618. This process is repeated multiple times to populate mask register 618 with the larger set of mask data for a set or series of actuation events. In one implementation, shift pattern state machine 250 may repeatedly generate subsets 44 of the same pattern of mask data, wherein each duplicate subset of mask data is loaded into mask register 618 to form the larger set of mask data.
Once the set of mask data has been generated, in mask register 618, the set of actuation events is carried out as described above with respect to method 500. Actuation data load logic 332 loads actuation data register 316 with actuation data for the set of actuation events. Actuation logic 120 actuates a subset of the fluid ejectors and fluid pumps based upon the actuation data in register 316 and the set of mask data in mask layer 618 for the individual actuation events. For each subsequent actuation event of the set, mask control logic 438 shifts the set of mass data in mask register 618 in the process is repeated until a set of actuation events has been completed.
Actuation controller 680 is similar to actuation controller 80 described above in that actuation controller 680 analyzes different regions, such as regions 94, 96, to determine if different actuation characteristics in the different regions, call for the use of different sized primitives when ejecting fluid in the different regions. Actuation controller 680 supplies an input to die input 330 that indicates the selected subset are pattern to be used when building the set of mask data in mask register 618. In one implementation, actuation controller 680 is located remote from die 400. In another implementation, actuation controller 680 or portions of actuation controller 680 may be located on die 400.
Although the present disclosure has been described with reference to example implementations, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the claimed subject matter. For example, although different example implementations may have been described as including one or more features providing one or more benefits, it is contemplated that the described features may be interchanged with one another or alternatively be combined with one another in the described example implementations or in other alternative implementations. Because the technology of the present disclosure is relatively complex, not all changes in the technology are foreseeable. The present disclosure described with reference to the example implementations and set forth in the following claims is manifestly intended to be as broad as possible. For example, unless specifically otherwise noted, the claims reciting a single particular element also encompass a plurality of such particular elements. The terms “first”, “second”, “third” and so on in the claims merely distinguish different elements and, unless otherwise stated, are not to be specifically associated with a particular order or particular numbering of elements in the disclosure.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2017/027637 | 4/14/2017 | WO | 00 |