Technical scan printers are generally used to print CAD plots with many lines of different widths. One features that customers typically request for these types of printers is the capacity to print line plots as quickly as possible, with high image and line quality, as well as with high consistency in the line widths through all the plots. Therefore, single pass print-modes are typically used to satisfy high throughput requests.
When using single pass print-modes, a printing pen of a printhead will typically go through each part of the plot surface only once and the whole printhead is going to be used to paint a line. In these cases, a fundamental problem is that usually the pen is not perfectly vertically aligned with the media. This issue is defined as theta-Z deviation of the printhead.
For printheads that contain two separated trenches (e.g., named odd and even trenches), this theta-Z issue affects both trenches but the tilt for each trench may not be exactly the same. For this reason, as the theta-Z deviation is not always the same for each trench, a one-dot step variation in printing may happen at different sections of the printhead. This typically causes width differences along a single line that is printed by both trenches, specifically in an area of the single line where the one-dot step variation is different for each trench.
Various examples will be described below by referencing the following drawings, in which:
As will be discussed in greater detail below, some implementations described herein ensure that both odd and even one-dot steps happen at the same position of the printhead. This will generate lines that still have one-dot steps, but the line width will be the same along the whole line, even where the one-dot steps occur.
Advantageously, systems, apparatuses, and methods described herein may provide for technology that eliminates line width variability throughout a single swath, which improves the quality of any type of lines (e.g., lines with various numbers of pixels). Additionally, or alternatively, the techniques described herein may provide for technology that is a solution for both printers with only one printhead of each ink or several printheads of each ink. Further, the techniques described herein may provide for technology that robustly addresses odd/even misalignments, because a general line width may vary but will be maintained along the swath when utilizing the techniques described herein. Additionally, or alternatively, the techniques described herein may provide for technology that is performed without increasing a number of printing passes; therefore, a consistent throughput may be maintained.
Systems, apparatuses, and methods described in some implementations herein provide for technology that calibrates a printer alignment. For example, such calibrations may include determining a tilt value for individual columns. A difference may be determined between a first set of alignment values of nozzles of a first column of the trench and a second set of alignment values of nozzles of a second column of the trench. A dot offset value may be determined based on the difference between the first and second set of alignment values of nozzles of the first and second columns. A top nozzle alignment value of the second column may be adjusted based on a difference compared against the first set of alignment values of nozzles of the first column and based on the dot offset value, in some implementations.
The moment in which a nozzle should be fired is typically defined in an alignment file of the printer. This alignment file is typically obtained by printing different types of patterns and analyzing them with a light sensor (e.g., sensor 454 of
In a printhead which suffer from a theta-Z deviation, the deviation may be compensated by giving different alignment values between the nozzles at the top of the printhead and the bottom. However, due to resolution limitations, these differences of alignment are converted to one dot steps when printing. Therefore, there is necessarily a concrete section of the printhead where there is a one dot difference between the upper and lower nozzles. These create steps in printed lines, which are especially noticeable when printing at 600 dpi because the step length is 42 μm.
For example, some printers contain two separated black pens (e.g., a symmetric configuration), which are allocated at the edges of the carriage. In this case, variations caused by a theta-Z deviation are even more significative because four different trenches will be painting during the same swath scan. Therefore, more theta-Z steps would appear in the same line causing a continuous change in line width. A diagram of the carriage is attached below for clarity.
The nature of the defect in a symmetric configuration (e.g., in projects that have two separated black pens allocated at the edges of the carriage) is enhanced due to there being two printheads with a black channel on opposite sides of the carriage. Although this helps in many aspects, it creates the consequence of printing lines with those two printheads which are far apart and can have high relative dot placement errors and more one-dot steps related to theta-Z deviations.
As will be discussed in greater detail below, some implementations described herein ensure that both odd and even one-dot steps happen at the same position of the printhead. This will generate lines that still have one-dot steps, but the line width will be the same along the whole line, even where the one-dot steps occur.
Additional and/or alternative operations for printer 300 are described in greater detail below in the description of printer 400 of
In the illustrated example, the print head 402 includes a first set of nozzles, generally indicated as trench 403, and a second set of nozzles, generally indicated as trench 404. In other examples, the print head 402 may include any number of one or more sets of nozzles. Each set of nozzles may be associated with one color of print agent. For example, the first set of nozzles 403 may dispense a first color of print agent, such as black, and the second set of nozzles 404 may dispense a second color of print agent, such as cyan.
In some examples, the physical location of nozzles on the print head may determine the physical position of a dispensed print agent drop. For example, in the first set of nozzles of trench 403, a nozzle 406 located at one end of the set of nozzles of trench 403 may dispense a drop that results in a different signal from a nozzle 408 located at the other end. Furthermore, a drop dispensed from another set of nozzles, for example the nozzle 410 or 412 dispensed from the second set of nozzles of trench 404, may also result in a different signal. In some examples, the nozzles in a set of nozzles on a print head may be arranged in columns nozzles.
As illustrated, in some implementations, the printer 400 further includes a printer alignment calibration device 452 operatively associated with each column of each trench of print head 402. In some examples, the printer alignment calibration device 452 includes a sensor 454 and an alignment control unit 456 (e.g., and alignment controller) coupled to the sensor 454. In some implementations, the alignment control unit 456 is adapted for printing in a single pass print-mode. Alternatively, the alignment control unit 456 may be adapted for printing in a multi-pass print-mode.
In some examples, the moment in which a nozzle should be fired is typically defined in an alignment file of the printer. This alignment file is typically obtained by printing different types of patterns and analyzing them with a light sensor (e.g., sensor 454 of
In some implementations, the alignment control unit 456 may include computer readable instructions 458 (e.g., software, firmware, hardware, the like, and/or combinations thereof), which may be associated with each column of each trench of print head 402. Additionally, or alternatively, all or portions of the computer readable instructions 458 of the alignment control unit 456 may be associated with another computing device (e.g., a mobile device). The operations of the computer readable instructions 458 of the alignment control unit 456 are described in greater detail below in
In operation, as discussed above, some implementations described herein ensure that both odd and even one-dot steps happen at the same position of the printhead. This will generate lines that still have one-dot steps, but the line width will be the same along the whole line, even where the one-dot steps occur. More specifically, some implementations described herein ensure that both odd and even one-dot steps happen at the same position of the printhead. This will generate lines with one-dot steps, but the line width will be the same along the whole line.
It should be stated that this procedure assumes that theta-Z deviation of both columns within a trench would be in the same direction. It is a sound assumption, since both trenches are parallel within the printhead and therefore, the tilt would be in the same direction.
In order to apply this procedure, first of all both columns will be aligned separately. Then, an average difference in dots at a particular printing resolution between the whole odd and the even nozzles will be calculated. This difference is maintained sufficiently constant throughout all the printhead length.
In some examples, if the alignment difference between odd and even columns is lower than ±0.5 dots, the alignment values of one of the columns is copied to the other one. The modification of these values will typically not cause any dot placement error since the difference that has been applied is lower than the printing resolution. However, this will cause the one-dot steps due to theta-Z compensation to happen in the same nozzle group in both columns.
Additionally, or alternatively, in some implementations, if the alignment difference between odd and even columns are between ±0.5 dots and ±1.5 dots, the alignment values of one of the columns ±1 dot (depending on the tilt direction) is copied to the other one. By doing this, the odd versus even alignment would be takin into account whereas the one-dot steps due to theta-Z compensation will happen in the same nozzle group with its corresponding offset of a multiple of one dot. This is schematized in
The description above corresponds to a carriage with only one black printhead with odd and even columns. A similar procedure can be done in a printer with two black printheads, in some implementations. However, in such a case, instead of only calculate the average between the odd and even columns of one printhead, the average of the two odd columns of the two different printheads is first calculated and then copied one to the other with the one-dot multiplicity, for example. Afterwards, a procedure similar to the one explained above is repeated for each even column with its corresponding odd column. By doing this, the one-dot steps due to theta-Z compensation will happen in the same nozzle group for each one of the four columns (e.g., with a multiple to one dot corresponding offset).
As illustrated, it can be seen how an existing line 502, in which the procedures described herein have not been applied, shows a change in line width 512 in the position where the odd one-step theta-Z correction 506 is applied at a different point as compared to the position where the even one-step theta-Z correction 508 is applied. Conversely, in a corrected line 512, in which the procedures described herein were applied, there is a clear one-pixel step but there is no width variation 514 through the line in the position where the odd one-step theta-Z correction 516 is applied at the same point as compared to the position where the even one-step theta-Z correction 518 is applied. The illustrated case corresponds to a printer with only one black printhead (e.g., non-symmetric configuration).
In an example, the method 700 may be implemented in computer readable instructions (e.g., software), configurable computer readable instructions (e.g., firmware), fixed-functionality computer readable instructions (e.g., hardware), etc., or any combination thereof.
Illustrated processing block 702 provides for determining a tilt value for individual columns. For example, a tilt value for individual columns of a trench associated with a print head may be determined, where the tilt value is based on a difference between a top nozzle alignment value and a bottom nozzle alignment value for individual columns of the trench.
Illustrated processing block 704 provides for determining a difference between a first set of alignment values of nozzles of a first column of the trench and a second set of alignment values of nozzles of a second column of the trench. For example, an average difference may be determined between a first set of alignment values of nozzles of a first column of the trench and a second set of alignment values of nozzles of a second column of the trench.
Illustrated processing block 706 provides for determining a dot offset value. For example, a dot offset value may be determined based on the difference between the first and second set of alignment values of nozzles of the first and second columns. In some implementations, such a dot offset value may be determined based on the average difference between the first and second set of alignment values of nozzles of the first and second columns.
Illustrated processing block 708 provides for adjusting a top nozzle alignment value of the second column. For example, a top nozzle alignment value of the second column may be adjusted based on the difference between the first and second set of alignment values of nozzles of the first and second columns and based on the dot offset value. In some implementations, the top nozzle alignment value of the second column may be adjusted based on the average difference between the first and second set of alignment values of nozzles of the first and second columns and based on the dot offset value.
It will be appreciated that some or all of the operations in method 700 are described using a “pull” architecture (e.g., polling for new information followed by a corresponding response) may instead be implemented using a “push” architecture (e.g., sending such information when there is new information to report), and vice versa.
Additional and/or alternative operations for method 700 are described in greater detail below in the description of
In an example, the method 800 may be implemented in computer readable instructions (e.g., software), configurable computer readable instructions (e.g., firmware), fixed-functionality computer readable instructions (e.g., hardware), etc., or any combination thereof.
Illustrated processing block 802 provides for aligning individual columns of two or more trenches of two or more print heads on a die-by-die basis. For example, individual columns may be aligned prior to determining a tilt value, as will be described in greater detail below. In some implementations, in a carriage (e.g., like the carriage described in
Illustrated processing block 804 provides for storing alignment information where a numerical alignment value is provided for individual nozzle groups. For example, the tilt value may be determined based on the numerical alignment value, as will be described in greater detail below.
Illustrated processing block 806 provides for determining an average tilt value of a trench. For example, an average tilt value of a trench may be determined prior to adjusting a top nozzle alignment value of a second column, as will be described in greater detail below.
Illustrated processing block 808 provides for determining a tilt value for individual columns. For example, a tilt value for individual columns of a trench associated with a print head may be determined, where the tilt value is based on a difference between a top nozzle alignment value and a bottom nozzle alignment value for individual columns of the trench.
Illustrated processing block 810 provides for determining a difference between a first set of alignment values of nozzles of a first column of the trench and a second set of alignment values of nozzles of a second column of the trench. For example, an average difference may be determined between a first set of alignment values of nozzles of a first column of the trench and a second set of alignment values of nozzles of a second column of the trench.
Illustrated processing block 812 provides for determining a dot offset value. For example, a dot offset value may be determined based on the difference between the first and second set of alignment values of nozzles of the first and second columns. In some implementations, such a dot offset value may be determined based on the average difference between the first and second set of alignment values of nozzles of the first and second columns.
Illustrated processing block 814 provides for adjusting a top nozzle alignment value of the second column. For example, a top nozzle alignment value of the second column may be adjusted based on the difference between the first and second set of alignment values of nozzles of the first and second columns and based on the dot offset value. In some implementations, the top nozzle alignment value of the second column may be adjusted based on the average difference between the first and second set of alignment values of nozzles of the first and second columns and based on the dot offset value.
Additionally, or alternatively, adjusting the top nozzle alignment value of the second column may further include copying the top nozzle alignment value of the first column to the top nozzle alignment value of the second column with: a zero dot offset value when the average difference between the first and second set of alignment values of nozzles of the first and second columns is in a first range; a one dot offset value when the average difference between the first and second set of alignment values of nozzles of the first and second columns is in a second range, and a two dot offset value when the average difference between the first and second set of alignment values of nozzles of the first and second columns is in a third range.
In implementations where a carriage has only a single die per ink type (e.g., where the first column is an odd column and the second column is an even column) processing block 814 may provide for copying the top nozzle alignment value of the first column to the top nozzle alignment value of the second column with a zero dot offset value when average difference between the first and second set of alignment values of nozzles of the first and second columns is lower than plus or minus 0.5 dots, one dot offset value when the average difference between the first and second set of alignment values of nozzles of the first and second columns is between plus or minus 0.5 dots and plus or minus 1.5 dots, a two dot offset value when the average difference between the first and second set of alignment values of nozzles of the first and second columns is between plus or minus 1.5 dots and plus or minus 2.5 dots, and a three dot offset value when the average difference between the first and second set of alignment values of nozzles of the first and second columns is between plus or minus 2.5 dots and plus or minus 3.5 dots.
In implementations where a carriage has two dies per ink type (e.g., where the first column is a first odd column and the second column is a second odd column that are positioned within a same printhead row) processing block 814 may provide for copying the top nozzle alignment value of the first column to the top nozzle alignment value of the second column with a zero dot offset value when the average difference between the first and second set of alignment values of nozzles of the first and second columns is lower than plus or minus 0.5 dots, one dot offset value when the average difference between the first and second set of alignment values of nozzles of the first and second columns is between plus or minus 0.5 dots and plus or minus 1.5 dots, a two dot offset value when the average difference between the first and second set of alignment values of nozzles of the first and second columns is between plus or minus 1.5 dots and plus or minus 2.5 dots, and a three dot offset value when the average difference between the first and second set of alignment values of nozzles of the first and second columns difference between the top nozzle alignment values of the first and second columns is between plus or minus 2.5 dots and plus or minus 3.5 dots.
Illustrated processing block 816 provides for applying the average tilt value of the trench to the first and second columns. For example, the average tilt value of the trench to the first and second columns may be applied after adjusting the top nozzle alignment value of the second column.
Illustrated processing block 818 provides for printing in a single pass print-mode, although other numbers of print passes may be utilized in some implementations.
Additionally, or alternatively, in implementations where a carriage has two dies per ink type (e.g., where the first column is a first odd column and the second column is a second odd column that are positioned within a same printhead row) method 800 may provide for determining a difference between the top nozzle alignment value of an odd column of the trench and the top nozzle alignment value of an immediately adjacent even column of the trench. In such an implementation, method 800 may further provide for determining, prior to determining the average difference between the first and second set of alignment values of nozzles of the first and second columns, an average theta-z value based on a theta-Z value of the odd column and a theta-Z value of the even column. Method 800 may further provide for determining an even column dot offset value based on an average difference between the top nozzle alignment values of the odd and even columns. Method 800 may further provide for adjusting the top nozzle alignment value of the even column based on an average of the first set of alignment values of nozzles of the odd column and based on the even column dot offset value. Method 800 may further provide for adjusting remaining nozzle alignment values of each column based on the average theta-z value.
It will be appreciated that some or all of the operations in method 800 are described using a “pull” architecture (e.g., polling for new information followed by a corresponding response) may instead be implemented using a “push” architecture (e.g., sending such information when there is new information to report), and vice versa.
In some implementations, the processor 1002 may include a general purpose controller, a special purpose controller, a storage controller, a storage manager, a memory controller, a micro-controller, a general purpose processor, a special purpose processor, a central processor unit (CPU), the like, and/or combinations thereof.
Further, implementations may include distributed processing, component/object distributed processing, parallel processing, the like, and/or combinations thereof. For example, virtual computer system processing may implement one or more of the methods or functionalities as described herein, and the processor 1002 described herein may be used to support such virtual processing.
In some examples, the memory 1004 is an example of a computer-readable storage medium. For example, memory 1004 may be any memory which is accessible to the processor 1002, including, but not limited to RAM memory, registers, and register files, the like, and/or combinations thereof. References to “computer memory” or “memory” should be interpreted as possibly being multiple memories. The memory may for instance be multiple memories within the same computer system. The memory may also be multiple memories distributed amongst multiple computer systems or computing devices.
In some implementations, computer readable instructions 1104 may include transistor array and/or other integrated circuit/IC components. For example, configurable firmware logic and/or fixed-functionality hardware logic implementations of the computer readable instructions 1104 may include configurable computer readable instructions such as, for example, programmable logic arrays (PLAs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), or fixed-functionality computer readable instructions (e.g., hardware) using circuit technology such as, for example, application specific integrated circuit (ASIC), complementary metal oxide semiconductor (CMOS) or transistor-transistor logic (TTL) technology, the like, and/or combinations thereof.
As discussed above, some implementations described herein advantageously provide for technology that eliminates line width variability throughout a single swath, which improves the quality of any type of lines (e.g., lines with various numbers of pixels). Additionally, or alternatively, the techniques described herein may provide for technology that is a solution for both printers with only one printhead of each ink or several printheads of each ink. Further, the techniques described herein may provide for technology that robustly addresses odd/even misalignments, because a general line width may vary but will be maintained along the swath when utilizing the techniques described herein. Additionally, or alternatively, the techniques described herein may provide for technology that is performed without increasing a number of printing passes; therefore, a consistent throughput may be maintained.
All definitions, as defined and used herein, should be understood to control over dictionary definitions, definitions in documents incorporated by reference, and/or ordinary meanings of the defined terms.
Furthermore, for ease of understanding, certain functional blocks may have been delineated as separate blocks; however, these separately delineated blocks should not necessarily be construed as being in the order in which they are discussed or otherwise presented herein. For example, some blocks may be able to be performed in an alternative ordering, simultaneously, etc.
Although a number of illustrative examples are described herein, it should be understood that numerous other modifications and examples can be devised by those skilled in the art that will fall within the spirit and scope of the principles of the foregoing disclosure. More particularly, reasonable variations and modifications are possible in the component parts and/or arrangements of the subject combination arrangement within the scope of the foregoing disclosure, the drawings and the appended claims without departing from the spirit of the foregoing disclosure. In addition to variations and modifications in the component parts and/or arrangements, alternative uses will also be apparent to those skilled in the art. The examples may be combined to form additional examples.