Fire timing control in printing devices

Some of the embodiments of the present disclosure provide a method for generating each of (i) a first signal and (ii) a second signal based at least in part on a position of a carriage, where the carriage is a component of a printing device, estimating (i) a major cycle duration associated with the first signal and (ii) a first minor cycle duration associated with the second signal, estimating a position of the carriage based at least in part on the estimated major cycle duration and the estimated first minor cycle duration, and generating a plurality of print synchronization pulses based at least in part on the estimated position of the carriage.

CROSS REFERENCE TO RELATED APPLICATIONS

This disclosure claims priority to U.S. Patent Application No. 61/153,482 filed Feb. 18, 2009, the entire specification of which is hereby incorporated by reference its entirety for all purposes, except for those sections, if any, that are inconsistent with this specification.

TECHNICAL FIELD

Embodiments of the present invention relate to printing devices in general, and more specifically to controlling fire timing in printing devices.

BACKGROUND

A printing device (e.g., an ink jet printer) typically has a carriage that sweeps across a printing medium (e.g., paper). Between sweeps, the printing medium is advanced in a direction that is orthogonal to a direction of the carriage sweep. A printing head is usually mounted on the carriage. During movement of the carriage, ink droplets are fired from the printing head to target positions on the printing medium so that printing is performed.

In order to produce uniform images, the deposition (or spitting) of the ink from the printing head has to be timed such that ink is deposited at regularly spaced intervals on the printing medium. The quality of the printed image depends, among other factors, on how regularly the ink is deposited on the printing medium. If the ink is deposited in a non-uniform (e.g., irregular) manner on the printing medium, then the print quality can visibly suffer.

To increase and/or maintain quality of the print job, it may be desirable to relatively accurately control the fire timing of ink droplets, even if, for example, the carriage is moving at a relatively high velocity, is accelerating and/or is decelerating. Such high velocity, acceleration and/or deceleration may be desirable in high speed printers, in fast printing modes, and/or for printing pages that are relatively sparsely populated.

SUMMARY

In various embodiments, the present disclosure provides an apparatus and a method for generating each of (i) a first signal and (ii) a second signal based at least in part on a position of a carriage, where the carriage is a component of a printing device, estimating (i) a major cycle duration associated with the first signal and (ii) a first minor cycle duration associated with the second signal, estimating a position of the carriage based at least in part on the estimated major cycle duration and the estimated first minor cycle duration, and generating a plurality of print synchronization pulses based at least in part on the estimated position of the carriage. In various embodiments, a major cycle duration corresponds to a time duration between one of either the last two rising edges of the first signal or the last two falling edges of the first signal. In various embodiments, a minor cycle duration corresponds to a time duration between one of either the last two rising edges of the first signal or the last two falling edges of the second signal.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

The description may use the phrases “in an embodiment,” or “in embodiments,” which may each refer to one or more of the same or different embodiments. The phrase “in some embodiments” is used repeatedly. The phrase generally does not refer to the same embodiments; however, it may. The terms “comprising,” “having,” and “including” are synonymous, unless the context dictates otherwise. The phrase “A and/or B” means (A), (B), or (A and B). The phrase “A/B” means (A), (B), or (A and B), similar to the phrase “A and/or B.” The phrase “at least one of A, B and C” means (A), (B), (C), (A and B), (A and C), (B and C) or (A, B and C). The phrase “(A) B” means (B) or (A and B), that is, A is optional.

FIG. 1schematically illustrates a printing device10comprising an encoder20operatively coupled to a fire time controller14. The printing device10may be any appropriate printing device, e.g., an inkjet printer. Although not illustrated inFIG. 1, the printing device10includes several other components. For example, the printing device10includes a carriage that is driven (e.g., driven bi-directionally) by an appropriate motor, through a timing belt. A printing head, mounted on the carriage, fires or ejects ink droplets from one or more cartridges (e.g., a black ink cartridge and/or a color ink cartridge coupled to the printing head) to a printing medium. Between sweeps of the carriage, the printing medium moves in a direction that is orthogonal to the primary scanning direction (i.e., direction in which the carriage traverses).

The encoder20includes a detection tape24(also referred to as “slit tape24”) in which a plurality of slits24ais formed at regular intervals. In one example, about180slits may be formed in one inch length of the slit tape24. The slit tape24is set to be parallel to the primary scanning direction. The slit tape24is stationary, i.e., does not move with the carriage or the printing medium.

The encoder20also includes a sensor comprising a light emitting element26and a light receiving element27. The sensor is attached to the carriage, and traverses along with the carriage in the primary scanning direction. The slit tape24is interposed between the light emitting element26and the light receiving element27.

The light emitting element26has a pair of light emitting sections26a.The light receiving element27has a pair of light receiving sections27a.The pair of light receiving sections27ais aligned with respect to the pair of light emitting sections26a,such that light from each of the pair of light emitting sections26areaches the respective light receiving section of the pair of light receiving sections27a,through slits24a,when the sensor is appropriately positioned.

The slit tape24(e.g., the length of the slits24a,and distance between any two slits) is arranged such that an encoder signal A (also referred herein as “signal A”) is deviated from an encoder signal B (also referred herein as “signal B”) by, for example, 3/4  cycle. The signals A and B have a number of pulses corresponding to the number of times light passes through each of the slits24awhen the carriage of the printing device10is scanned. The pair of light receiving sections27ain the encoder is offset so that they produce the two square wave signals A and B that are offset by about 90 degrees in phase. Each of the signals A and B are output from the light receiving sections27a.The signals A and B are representative of the movement of the carriage and also the direction of movement.

In various embodiments, the fire timing controller14is configured to receive the signals A and B, estimate position, velocity and/or acceleration of the carriage from the received signals A and B, and control ink fire timing of the printing device10(e.g., control ink fire timing of the printing head), as will be discussed in more detail herein later.

FIG. 2aillustrates signal A and signal B output by the encoder20ofFIG. 1. As previously discussed and as illustrated inFIG. 2a, the two signals A and B are offset by about 90 degrees in phase. However, in various other embodiments and although not illustrated inFIG. 2a, the two signals A and B may be offset in phase by any other appropriate angle.

Referring again toFIG. 2a, each of the signals A and B is a square wave signal, having a plurality of rising edges and a plurality of falling edges. In various embodiments, a major cycle may refer to a cycle that corresponds to rising edges of signal A, falling edges of signal A, rising edges of signal B, or falling edges of signal B. That is, the major cycle may correspond to any one of these four alternatives. For the embodiments discussed herein in this disclosure, a major cycle corresponds to rising edges of signal A. Thus, signal A has a number of major cycles, with individual major cycle corresponding to two consecutive rising edges of signal A. Although the major cycle is assumed to correspond to rising edges of signal A, the inventive principles of this disclosure are not limited to this aspect. For example, in various other embodiments, the major cycle corresponds to falling edges of signal B.

Additionally, in various embodiments, a first minor cycle corresponds to rising edges of signal B, a second minor cycle corresponds to falling edges of signal A, and a third minor cycle corresponds to falling edges of signal B. However, in various other embodiments, the first, second and third minor cycles may correspond to any other appropriate combination of the rising or falling edges of signals A or B (e.g., may correspond to falling edges of signal A, rising edges of signal B, and falling edges of signal B, respectively).

Thus, signal B has a plurality of first minor cycles, with individual cycles of the first minor cycles corresponding to two consecutive rising edges of signal B. Similarly, signal A has a plurality of second minor cycles, with individual cycles of the second minor cycles corresponding to two consecutive falling edges of signal A. Similarly, signal B has a plurality of third minor cycles, with individual cycles of the third minor cycles corresponding to two consecutive falling edges of signal B.

As referred to herein in this disclosure, unless otherwise mentioned, a major cycle duration tarefers to a duration of the last cycle of the major cycles. Thus, the major cycle duration refers to a time duration between the last two rising edges of signal A, as illustrated inFIG. 2a.

As referred to herein in this disclosure, unless otherwise mentioned, a first minor cycle duration tbrefers to a duration of the last cycle of the first minor cycles. Thus, the first minor cycle duration tbrefers to the time duration between the last two rising edges of signal B, as illustrated inFIG. 2a. Similarly, a second minor cycle duration tcrefers to a duration of the last cycle of the second minor cycles. Thus, the second minor cycle duration tcrefers to the time duration between the last two falling edges of signal A. Also, a third minor cycle duration tdrefers to a duration of the last cycle of the third minor cycles. Thus, the third minor cycle duration tdrefers to the time duration between the last two falling edges of signal B.

InFIG. 2a, it is assumed that the current time (i.e., t=0) is aligned with the rising edge of the signal A. The major cycle duration ta, the first minor cycle duration tb, the second minor cycle duration tc, and the third minor cycle duration tdare illustrated accordingly.

The major and various minor cycle durations (e.g., the first, second and third minor cycle durations) change (e.g., are updated) as time progress. For example,FIG. 2billustrates the signals A and B, with the current time (i.e., t=0) in between a falling edge of signal A and a rising edge of signal B, in accordance with various embodiments of the present disclosure. The major cycle duration ta, the first minor cycle duration tb, the second minor cycle duration tc, and the third minor cycle duration tdare illustrated accordingly inFIG. 2b.

During a major cycle (or one of the various minor cycles), the carriage moves a pre-determined distance over the printing medium. For example, the carriage may move a distance of 1/600  inch over the printing medium during each of the major cycles. If the velocity of the carriage is relatively high, the carriage takes relatively less time to cover this pre-determined distance. On the other hand, if the velocity of the carriage is relatively low, the carriage takes relatively more time to cover this pre-determined distance. Accordingly, durations of individual major cycles (and various minor cycles) are based on the velocity of the carriage. For example, for relatively higher velocity of the carriage the duration of individual major cycles may be small, compared to the duration of individual major cycles when the carriage velocity is relatively lower, and vice versa. However, irrespective of the velocity of the carriage (and irrespective of the duration of individual major cycles), the carriage moves the pre-determined distance (e.g., 1/600  inch) during individual major cycles (or during individual cycles of the various minor cycles).

The fire timing controller14generates a plurality of print synchronization pulses, and the printing head ejects ink droplets on the print medium in synchronization with the print synchronization pulses. The print synchronization pulses are generated in synchronization with, for example, major cycles of signal A. For example, the fire timing controller14generates N number of print synchronization pulses during individual major cycles. N may be any appropriate integer that depends on, for example, settings of the printer, printing mode of the printer (e.g., normal quality printing mode, better quality printing mode, etc.), type of printing head, and/or the like. For example, N may be as low as 4 (or even lower), as high as 100 (or even higher), or any other appropriate integer. Thus, during a major cycle, the printing head may eject ink droplets N times (based on the print data), in synchronization with the print synchronization pulses.

In various embodiments, during a major cycle, N print synchronization pulses are generated uniformly across the distance the carriage moves during the major cycle. For example, if the carriage moves 1/600  inch during the major cycle, the individual print synchronization pulses are generated each time the carriage moves 1/(600×N) inch, so that the N print synchronization pulses are generated uniformly over the 1/600  inch the carriage moves during the major cycle.FIGS. 2aand2billustrate 8 print synchronization pulses (i.e., N=8) being generated during a major cycle.

In case the velocity of the carriage is uniform (i.e., no acceleration of the carriage), generating print synchronization pulses uniformly across the distance the carriage moves during the major cycle is equivalent to generating print synchronization pulses uniformly, in time, during the major cycle. Put differently, in case the velocity of the carriage is uniform over a major cycle that is estimated to be of M seconds, N print synchronization pulses can be generated at intervals of M/N seconds, such that the N print synchronization pulses are uniformly spaced apart in time (e.g., the N print synchronization pulses are generated at regular time intervals).

However, in case the velocity of the carriage is non-uniform (e.g., while the carriage is accelerating) over a major cycle, generating print synchronization pulses uniformly across the distance the carriage moves during the major cycle is not equivalent to generating print synchronization pulses uniformly in time during the major cycle. Put differently, in case the velocity of the carriage is non-uniform over the major cycle, generating print synchronization pulses at regular time intervals results in the ink droplets being deposited in a non-uniform manner in the printing medium, which may result in poor print quality. In such cases, the print synchronization pulses may have to be generated uniformly across the distance the carriage moves during the major cycle (e.g., instead of being generated at regular time intervals).

For example,FIG. 3illustrates timing diagram of signal A and signal B, where the carriage is accelerating during a major cycle. InFIG. 3, N is assumed to be equal to 4 (i.e., 4 print synchronization pulses are generated during one major cycle). Also, inFIG. 3, period 1 is a time duration between rising edges of a first print synchronization pulse and a second print synchronization pulse, period 2 is a time duration between rising edges of the second print synchronization pulse and a third print synchronization pulse, and so on.

The illustrated major cycle inFIG. 3includes time duration t1between the rising and falling edges of signal A, and time duration t2between the falling and rising edges of signal A. Similarly,FIG. 3also illustrates time duration t3between the rising and falling edges of signal B, and time duration t4between the falling and rising edges of signal B. As illustrated inFIG. 3, t2is less than t1, and t4is less than t3, which signifies that the carriage is accelerating (without any acceleration, t1would have been substantially equal to t2, and t3would have been substantially equal to t4, as illustrated inFIGS. 2aand2b). That is, a velocity of the carriage near the end of the illustrated major cycle is relatively higher than a velocity of the carriage near the beginning of the illustrated major cycle. To compensate for the increase in velocity, the periods of the print synchronization pulses are dynamically decreased. That is, periods 3 and/or 4 are relatively less than periods 1 and/or 2, as illustrated inFIG. 3. Such a decrease in the period of the print synchronization pulses ensures that the print synchronization pulses are generated uniformly across the distance of the carriage (e.g., instead of being generated at regular time intervals) during the major cycle, thereby compensating for the change in velocity. Put differently, the print synchronization pulses are relatively closer in time when the carriage accelerates (or has a relatively high velocity) compared to when the carriage has a relatively low velocity.

Referring again toFIGS. 2aand2b, in various embodiments, the major cycle duration ta, first minor cycle duration tb, second minor cycle duration tcand third minor cycle duration tdare be used to estimate a current velocity, acceleration and/or position of the carriage. Also, the timings of the print synchronization pulses are estimated based at least in part on the estimated velocity, acceleration and/or position of the carriage.

In the case where the velocity of the carriage is assumed to be uniform (e.g., by ignoring any acceleration of the carriage), a position of the carriage may be estimated by:
P=A*ta+B*tb+C*tc+D*td,   Equation 1
where ta, tb, tcand tdare the major cycle duration, first minor cycle duration, second minor cycle duration and third minor cycle duration, respectively, and A, B, C, and D are position weighting coefficients whose sum may be equal to 1 (i.e., A+B+C+D=1). The position weighting coefficients A, B, C and D may be based on various factors, including but not limited to, an average velocity of the carriage, a printing mode of the printing device10, a desired quality of the printing, settings of the carriage, dynamics of the carriage (e.g., time of flight error, as discussed herein later) and the printing head, and/or the like. In various embodiments, the position weighting coefficients A, B, C and D are estimated empirically, to achieve uniform ejection of ink droplets over the printing medium. For example, the position weighting coefficients A, B, C and D are estimated through a number of experiments, in which the position weighting coefficients A, B, C and D are adjusted or tuned until desirable results (e.g., uniform ejection of ink droplets over the distance of the carriage movement) are achieved.

However, in case the carriage accelerates (i.e., in case the velocity of the carriage changes), additional terms may be introduced to compensate for such acceleration. For example, a dynamic position Pdof the carriage is dynamically estimated by:
Pd=Pinitial+t*(dP/dt),   Equation 2
where Pinitialis an initial position of the carriage, t denotes time since the initial position Pinitialhas been estimated, and dP/dt denotes change in position with respect to time. Thus, dP/dt is representative of the velocity of the carriage. In various embodiments, dP/dt may be estimated by:
dP/dt=t*(d2P/dt),   Equation 3
where d2P/dt denotes change in velocity with respect to time. Thus, d2P/dt is representative of the acceleration (or deceleration) of the carriage.

In various embodiments, dP/dt and d2P/dt are estimated as follows:
dP/dt=Av*ta+Bv*tb+Cv*tc+Dv*td,   Equation 4,
d2P/dt=Aa*ta+Ba*tb+Ca*tc+Da*td,   Equation 5
where Av, Bv, Cv, and Dvare velocity weighting coefficients whose sum may be equal to 1 (i.e., Av+Bv+Cv+Dv=1), and Aa, Ba, Ca, and Daare acceleration weighting coefficients whose sum may be equal to 1 (i.e., Aa+Ba+Ca+Da=1). The velocity weighting coefficients Av, Bv, Cv, and Dvand the acceleration weighting coefficients Aa, Ba, Ca, and Daare computed empirically, to achieve uniform ejection of ink droplets over the printing medium. For example, the velocity weighting coefficients and the acceleration weighting coefficients are estimated through a number of experiments, in which these coefficients are adjusted or tuned until desirable results (e.g., uniform ejection of ink droplets over the distance of the carriage movement) are achieved.

In various embodiments, the position Pdof equation 2 is a relative position of the carriage. For example, in various embodiments, the position Pdis the current position of the carriage relative to a position of the carriage at the beginning of the current major cycle (e.g., Pinitial). The carriage traverses a distance of, for example, Q inches during a major cycle. Thus, the position Pdis 0 inches at the beginning of the major cycle (when t=0, and Pd=Pinitial=0), increase as the carriage traverses along the primary scanning direction, and reaches Q inches by the end of the major cycle. While the carriage is, for example, about half way of the Q inches, then Pdis about (½)*Q inches. Once the carriage has covered the entire Q inches (i.e., end of the current major cycle), Pdis reset (e.g., set to 0) for the next major cycle.

In various other embodiments, the position Pdis the current position of the carriage relative to a position of the carriage at the beginning of the current scan line. Thus, the position Pdis 0 inches at the beginning of the scan line (when t=0, and Pd=Pinitial=0), increase as the carriage traverses along the primary scanning direction, and for every major cycle the position Pdis incremented by Q inches. For example, if the carriage has crossed about K number of major cycles, and is about half way of the (K+1)thmajor cycle, then Pdis about (K*Q+(½)* Q) inches.

In yet other embodiment, the position Pdmay be the current position of the carriage relative to any other appropriate position of the carriage.

Also, as previously discussed, N print synchronization pulses are generated during a major cycle of the printing devices. The N print synchronization pulses are generated such that the print synchronization pulses are uniformly distributed over the distance (i.e., Q inches) the carriage moves during the major cycle. That is, each time the carriage moves Q/N inches, the fire timing controller14is configured to generate a print synchronization pulse (so that N print synchronization pulses are generated uniformly over the Q inches the carriage moves during the major cycle).

FIG. 4schematically illustrates in more detail the fire timing controller14of the printing device10ofFIG. 1. The fire timing controller14includes a cycle duration estimation unit420. The fire timing controller14receives signals A and B from the encoder20. Based at least in part on the signals A and B, the cycle duration estimation unit420estimates the major cycle duration ta, the first minor cycle duration tb, the second minor cycle duration tc, and the third minor cycle duration td. The cycle duration estimation unit420updates the cycle durations ta, . . . , tdin substantially real time, as the carriage traverses in the primary scanning direction. Thus, the cycle durations ta, tb, tc, and/or tdare updated each time an edge of signals A and/or B are detected, so that the cycle durations relate to the current time. For example, the cycle duration estimation unit420updates the third minor cycle duration tdeach time a falling edge of the signal B is detected, such that the third minor cycle duration tdreflects time duration between the last two falling edges of the signal B. The other cycle durations ta, tband tcare updated in a similar manner.

In various embodiments, encoder measurement error (e.g., minor encoder timing error, missing detection of an edge of signals A and/or B) and/or encoder noise may occasionally cause large and/or sudden change in the cycle durations ta, . . . , td. This may, in turn, adversely affect estimation of position, velocity and/or acceleration parameters of the carriage. Accordingly, the cycle durations ta, . . . , tdmay be filtered to ignore any sudden or large change in one or more of the cycle durations ta, . . . , td.

The fire timing controller14also includes a velocity and acceleration estimation unit424. In various embodiments, the velocity and acceleration estimation unit424receives the cycle durations ta, . . . , td, and estimates a velocity and/or an acceleration of the carriage substantially in real time, based on the received cycle durations ta, . . . , td. For example, in one embodiment, the velocity and acceleration estimation unit424estimates an initial velocity of the carriage using equation 4, estimates an acceleration of the carriage using equation 5, and updates the velocity estimation using equation 3. In another embodiment, the velocity and acceleration estimation unit424estimates the velocity of the carriage using equation 4.

In various embodiments, the velocity and acceleration estimation unit424uses a digital form of the equation 3, while updating the velocity estimate of the carriage. For example, the velocity and acceleration estimation unit424includes a digital differential analyzer to implement equation 3 while estimating the velocity.

The fire timing controller14also includes a distance accumulation unit428that receives the estimated velocity and/or acceleration of the carriage, and estimates a current position of the carriage. The distance accumulation unit428estimates the position of the carriage in substantially real time using, for example, equation 2. In various embodiments, the distance accumulation unit428uses a digital form of the equation 2 (e.g., by using a digital differential analyzer), while estimating the distance.

The fire timing controller14also includes a print synchronization pulse generation unit432configured to generate print synchronization pulses, based on the position estimate generated by the distance accumulation unit428.

Also, as previously discussed and as illustrated inFIGS. 2a,2band3, a print synchronization pulse is generated at the rising edge of the signal A (i.e., at the beginning of a major cycle). Subsequently, each time the carriage moves Q/N inches, the fire timing controller14generates a print synchronization pulse, so that N print synchronization pulses are generated uniformly over the Q inches the carriage moves during the major cycle. Thus, each time the distance estimated by the distance accumulation unit428increases by about Q/N inches, the print synchronization pulse generation unit432generates one print synchronization pulse. Thus, by the end of the major cycle, N print synchronization pulses are generated.

However, because of minor errors in generating the signals A and B, estimating the velocity, acceleration and/or position of the carriage, missing an edge of signals A and/or B, and/or due to any other computational error, in some situations, the generation of the print synchronization pulses may not be fully synchronized with the major cycle. For example, at the end of one of the major cycles, only (N−1) number of print synchronization pulses may be generated.

In such cases, in various embodiments, the print synchronization pulses generation system may be re-synchronized with the next rising edge of signal A (i.e., with the beginning of the next major cycle). In various other embodiments, instead of (or in addition to) such re-synchronization, the system may gradually adjust to or overcome the synchronization error by appropriately updating the various cycle durations ta, . . . , tdwith their correct and current values.

FIG. 5schematically illustrates in more detail the fire timing controller14of the printing device10ofFIG. 4. As previously discussed, the cycle duration estimation unit420, included in the fire timing controller14, receives signals A and B from the encoder20, and generates cycle durations ta, . . . , td.

The velocity and acceleration estimation unit424(illustrated in dotted lines) receives the cycle durations ta, . . . , tdfrom the cycle duration estimation unit420, and generates a velocity and acceleration of the carriage, as previously discussed. For example, the velocity and acceleration estimation unit424includes an initial velocity and acceleration estimation unit518, which estimates an initial velocity and acceleration of the carriage using, for example, equations 4 and 5.

The velocity and acceleration estimation unit424also includes a first summation unit532and a first accumulator register520. The first summation unit532and the first accumulator register520, in combination, acts as a digital differential analyzer that outputs a velocity of the carriage based on the initial velocity and the acceleration of the carriage. Thus, the digital differential analyzer (comprising the first summation unit532and the first accumulator register520) implements a digital version of equation 3, which estimates a velocity of the carriage from the initial velocity and acceleration of the carriage.

The distance accumulation unit428(also illustrated in dotted lines) includes a second summation unit536and a second accumulator register524. The second summation unit536and the second accumulator register524acts as another digital differential analyzer that outputs a distance (e.g., position) of the carriage based on the velocity of the carriage. Thus, the second accumulator register524accumulates the distance (e.g., position Pdof equation 2) the carriage has traversed.

Each time the distance estimated by the distance accumulation unit428increases by Q/N inches, the print synchronization pulse generation unit432generates one print synchronization pulse.

As the carriage traverses across the printing medium, the ink droplets that are spit by the printing head have the same horizontal velocity as the carriage. Because of the horizontal velocity of the carriage, ink droplets may land on the printing medium ahead of the point from which the ink droplets are spit from the printing head. This effect may be more pronounced when the velocity of the carriage is relatively high. This produces a horizontal shift in the position of the ink droplets, which is usually referred as “time of flight” (TOF) error.

The TOF error effectively shifts an image pixel towards the direction of the carriage sweep, where the amount of shift is based on the carriage velocity, the vertical distance the ink droplets travel before reaching the printing medium (e.g., the distance between the printing head and the printing medium), and/or the like.

If the velocity of the carriage doesn't change and the print sweep is in one direction only, the entire image may be shifted by a small distance because of TOF error, which may not create much visibly undesired effect in the image (as in that case, all the ink droplets are shifted by the same small distance, and in the same direction). However, in case the carriage velocity changes considerably or in case of bi-directional sweep of the carriage, different ink droplets are shifted by different amount, and possibly in different directions. This may create a visibly undesired effect in the image.

FIG. 6schematically illustrates a TOF error compensation unit610included in the fire timing controller14ofFIG. 5, in accordance with various embodiments of the present disclosure. As discussed, the TOF error is based at least in part on the velocity of the carriage. Accordingly, the TOF error compensation unit610receives, from the velocity and acceleration estimation unit424, the estimated velocity of the carriage. Based at least in part on the received velocity, the TOF error compensation unit610compensates for the TOF error while the print synchronization pulse generation unit432generates the print synchronization pulses.

For example, as the carriage accelerates to a relatively higher velocity, the TOF error compensation unit610requires the print synchronization pulse generation unit432to look farther ahead to spit ink droplets. Since the ink droplets may land ahead of the current position because of TOF error, the TOF error compensation unit610pushes addressing of print data ahead of the current position, based at least in part on the estimated velocity of the carriage. As the carriage decelerates, the amount of TOF compensation shrinks, and the print data addressing is again aligned with the print head position.

FIG. 7illustrates a method700for generating a plurality of synchronization pulses in the printing device10ofFIGS. 1,4,5and/or6. The method700includes, at704, generating, by the encoder20, the first signal A and the second signal B based least in part on a position of the carriage included in the printing device10.

At708, the cycle duration estimation unit420estimates the major cycle duration ta, the first minor cycle duration tb, the second minor cycle duration tcand the third minor cycle duration td.

At712, the velocity and acceleration estimation unit424estimates a velocity and an acceleration of the carriage. For example, the initial velocity and the acceleration of the carriage are estimated using equations 4 and 5. A digital differential analyzer, comprising summation unit532and accumulator register520, updates the velocity of the carriage based on the initial velocity and acceleration, using, for example, an appropriate digital form of equation 3.

At716, the distance accumulation unit428estimates a position of the carriage. For example, a digital differential analyzer, comprising summation unit536and accumulator register524, updates the position of the carriage based on the velocity, using, for example, an appropriate digital form of equation 2.

At720, the print synchronization pulse generation unit432generates a plurality of print synchronization pulses based on the estimated position of the carriage. For example, in various embodiments, the carriage traverses a distance of about Q inches during a major cycle, and the print synchronization pulse generation unit432generates N print synchronization pulses during the major cycle, such that the N print synchronization pulses are generated substantially uniformly across the Q inches traversed by the carriage. In case the velocity of the carriage changes during the major cycle, the print synchronization pulse generation unit432generates the N print synchronization pulses in non-uniform time interval to compensate for the change in the velocity (e.g., as illustrated inFIG. 3). In various embodiments, the print synchronization pulse generation unit432generates a first of the N print synchronization pulses at a start of the major cycle, and generates a print synchronization pulse each time the carriage transverses a distance of about Q/N inches from the start of the major cycle. In various embodiments, while generating the plurality of print synchronization pulses at720, the TOF error compensation unit610compensates for a time of flight error, based at least in part on the estimated velocity of the carriage.

FIG. 8schematically illustrates a simplified block diagram of a printing device800in which embodiments of the present disclosure may be implemented. The printing device800(e.g., an inkjet printer) includes a motor controller832configured to control an operation of a motor828. The motor828drives a carriage804(e.g., through a timing belt), such that the carriage804traverses in a first direction over a printing medium, the first direction being orthogonal to a direction of traverse of the printing medium. A printing head808is configured to be attached to the carriage804, and to eject ink droplets in the printing medium in synchronization with a plurality of print synchronization pulses.

An encoder820is configured to generate a first signal and a second signal based at least in part on a position of the carriage804. In various embodiments, the encoder820is at least in part similar to the encoder20ofFIGS. 1,4,5and/or6, and the first signal and the second signal generated by the encoder820is similar to previously discussed signal A and signal B, respectively.

A fire timing controller814is configured to receive the first signal and the second signal from the encoder820, to estimate a position of the carriage804based at least in part on the first signal and the second signal, and to generate the plurality of print synchronization pulses. The carriage804and/or the printing head808receives the plurality of print synchronization pulses generated by the fire timing controller814, and the printing head814ejects ink droplets in synchronization with the plurality of print synchronization pulses.

In various embodiments, the fire timing controller814is at least in part similar to the fire timing controller14ofFIGS. 1,4,5and/or6.

The printing device800includes a processing unit824and a system memory840. Additionally, printing device800includes input/output devices844(such as a display to render visual manifestation, a keypad, and/or the like) and communication interfaces836(such as network interface cards, one or more universal serial ports (USB), an Ethernet port, and/or the like).

System memory840may be employed to store a working copy and a permanent copy of the programming instructions implementing all or a portion of earlier described functions, herein collectively denoted as822. The instructions822may be assembler instructions supported by processing unit824or instructions that can be compiled from high level languages, such as C.

In an embodiment, the processing unit824is configured to perform one or more operations of various units illustrated inFIG. 8. For example, the processing unit824is configured to control one or more operations of the fire timing controller814. The processing unit824and/or the fire timing controller814are configured to perform one or more operations of method700ofFIG. 7.

In various embodiments, one or components of the printing device may be included in an integrated circuit chip (e.g., in a system on a chip (SOC)). For example, the fire timing controller814and the processing unit824may be integrated in an integrated chip.

In embodiments of the present disclosure, a machine-readable medium having associated instructions, which, when executed, instructs a machine to implement one or more methods (e.g., method700ofFIG. 7) as disclosed herein. For example, in example embodiments, a machine-readable medium comprises a storage medium and a plurality of programming instructions stored in the storage medium and adapted to program the machine to generate a first signal and a second signal based least in part on a position of a carriage included in a printing device; estimate a major cycle duration associated with the first signal and a first minor cycle duration associated with the second signal; estimate a position of the carriage based at least in part on the major cycle duration and the first minor cycle duration; and generate a plurality of print synchronization pulses based at least in part on the estimated position of the carriage.

Although specific embodiments have been illustrated and described herein, a wide variety of alternate and/or equivalent implementations may be substituted for the specific embodiment illustrated and described without departing from the scope of the present invention. This present invention covers all methods, apparatus, and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents. For example, although the above discloses example systems including, among other components, software or firmware executed on hardware, it should be noted that such systems are merely illustrative and should not be considered as limiting. In particular, it is contemplated that any or all of the disclosed hardware, software, and/or firmware components could be embodied exclusively in hardware, exclusively in software, exclusively in firmware or in some combination of hardware, software, and/or firmware. This application is intended to cover any adaptations or variations of the embodiment discussed herein. Therefore, it is manifested and intended that the invention be limited only by the claims and the equivalents thereof.