Transfer printer and method
11260650 · 2022-03-01
Assignee
Inventors
Cpc classification
B41J2/325
PERFORMING OPERATIONS; TRANSPORTING
B41F16/0026
PERFORMING OPERATIONS; TRANSPORTING
B41J35/36
PERFORMING OPERATIONS; TRANSPORTING
B41J33/16
PERFORMING OPERATIONS; TRANSPORTING
B41J33/36
PERFORMING OPERATIONS; TRANSPORTING
B41J17/07
PERFORMING OPERATIONS; TRANSPORTING
B41J17/36
PERFORMING OPERATIONS; TRANSPORTING
International classification
B41J35/36
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A method for monitoring a characteristic of a printed image of a thermal transfer printer. The method comprises providing a ribbon and a substrate at a printing location of the thermal transfer printer. The method further comprises printing an image on the substrate at the printing location by transferring ink from a region of the ribbon in a printing operation, a negative image being formed on the region of ribbon. The method further comprises transporting the region of ribbon, by a ribbon transport system, from the printing location towards an imaging location along a ribbon transport path. The method further comprises when a characteristic of the ribbon transport meets a predetermined criterion, obtaining, by an image capture system, a ribbon image of the negative image. The method further comprises processing said ribbon image to generate data indicative of the characteristic of the printed image.
Claims
1. A method for monitoring a characteristic of a printed image of a thermal transfer printer, comprising: providing a ribbon and a substrate at a printing location of the thermal transfer printer; printing an image on the substrate at the printing location by transferring ink from a region of the ribbon in a printing operation, a negative image being formed on the region of the ribbon; transporting the region of the ribbon, by a ribbon transport system, from the printing location towards an imaging location along a ribbon transport path; determining whether a characteristic of the ribbon transport meets a predetermined criterion, in response to determining that the characteristic meets the predetermined criterion, obtaining, by an image capture system, a ribbon image of the negative image; and processing said ribbon image to generate data indicative of a characteristic of the printed image; wherein said characteristic of the ribbon transport comprises an acceleration of the ribbon transport, and wherein the characteristic of the ribbon transport meets the predetermined criterion when the acceleration is below a predetermined threshold.
2. The method according to claim 1, wherein said characteristic of the ribbon transport is associated with a ribbon transport speed.
3. The method according to claim 2, wherein the characteristic of the ribbon transport meets the predetermined criterion when the ribbon transport speed is substantially equal to a predetermined ribbon transport speed.
4. The method according to claim 1, wherein said characteristic of the ribbon transport is associated with a ribbon transport direction, and wherein the characteristic of the ribbon transport meets the predetermined criterion when the ribbon transport direction is equal to a predetermined ribbon transport direction.
5. The method according to claim 1, comprising: transporting the region of the ribbon, by the ribbon transport system, past the imaging location a plurality of times; and obtaining, by the image capture system, said image of the negative image at a predetermined time of said plurality of times.
6. The method according to claim 5, wherein said predetermined time of said plurality of times is a time of said plurality of times other than a first time of said plurality of times.
7. The method according to claim 5, wherein obtaining the ribbon image comprises obtaining a plurality of one-dimensional images of said ribbon at the imaging location.
8. The method according to claim 7, wherein the plurality of one-dimensional images of said ribbon at the imaging location are obtained as said ribbon moves past said imaging location.
9. The method according to claim 5, wherein obtaining a ribbon image of the negative image comprises: obtaining a plurality of partial images of a corresponding plurality of parts of the negative image; and generating the ribbon image based upon said plurality of partial images.
10. The method according to claim 9, wherein each of said plurality of partial images comprises a plurality of one-dimensional images, each one-dimensional image of the plurality of one-dimensional images comprising a plurality of data items, each data item of the plurality of data items being indicative of a radiation intensity at a respective one of a plurality of capture regions, each capture region of the plurality of capture regions corresponding to a respective capture region of a plurality of regions of the imaging location.
11. The method according to claim 9, comprising obtaining a first partial image of said plurality of partial images during a first ribbon movement and obtaining a second partial image of said plurality of partial images during a second ribbon movement, wherein a ribbon transport direction is reversed between said first and second ribbon movements.
12. The method according to claim 11, wherein said first and second partial images of said plurality of partial images are obtained when the ribbon transport direction is equal to a predetermined ribbon transport direction.
13. The method according to claim 11, wherein said first and second partial images of said plurality of partial images are obtained when a ribbon transport speed is substantially equal to a predetermined ribbon transport speed.
14. A transfer printer configured to transfer ink from a printer ribbon to a substrate which is transported along a predetermined substrate path adjacent to the printer comprising: a tape drive for transporting ribbon between first and second ribbon spools along a ribbon path; a printhead being displaceable towards and away from the predetermined substrate path and being arranged to, during printing, contact one side of the ribbon to press an opposite side of the ribbon into contact with a substrate on the predetermined substrate path, and a printing surface; an image capture system configured to capture images of the ribbon at the imaging location; and a controller arranged to perform a method according to claim 1.
15. The transfer printer according to claim 14, wherein the tape drive comprises two tape drive motors and two tape spool supports on which said first and second ribbon spools may be mounted, each spool of the first and second ribbon spools being drivable by a respective motor of said two tape drive motors.
16. The transfer printer according to claim 14, further comprising a monitor arranged to generate an output indicative of movement of the printhead relative to the printing surface.
17. The transfer printer according to claim 14, wherein the image capture system comprises a radiation detector.
18. The transfer printer according to claim 17, wherein the image capture system further comprises a radiation emitter, a radiation path being formed between said radiation emitter and the radiation detector.
19. The transfer printer according to claim 14, wherein the image capture system is configured to generate data indicative of a characteristic of the image capture system, said characteristic comprising a spatial distribution of radiation intensity.
20. The method according to claim 1, wherein said characteristic of the ribbon transport comprises a change in ribbon transport direction of movement, and wherein the characteristic of the ribbon transport meets the predetermined criterion when the ribbon transport direction of movement is not being changed.
21. The method according to claim 1, wherein said characteristic of the ribbon transport comprises whether a printing cycle is in a print phase, wherein the characteristic of the ribbon transport meets the predetermined criterion when the printing cycle is in the print phase, and wherein the ribbon image is capture during the print phase.
22. The method according to claim 1, further comprising obtaining the ribbon image during a time the characteristic of the ribbon transport meets the predetermined criterion.
23. A method for monitoring a characteristic of a printed image of a thermal transfer printer, comprising: providing a ribbon and a substrate at a printing location of the thermal transfer printer; printing an image on the substrate at the printing location by transferring ink from a region of the ribbon in a printing operation, a negative image being formed on the region of the ribbon; transporting the region of the ribbon, by a ribbon transport system, from the printing location towards an imaging location along a ribbon transport path; determining whether a characteristic of the ribbon transport meets a predetermined criterion, in response to determining that the characteristic meets the predetermined criterion, obtaining, by an image capture system, a ribbon image of the negative image; and processing said ribbon image to generate data indicative of a characteristic of the printed image; wherein said characteristic of the ribbon transport comprises a deceleration of the ribbon transport, and wherein the characteristic of the ribbon transport meets the predetermined criterion when the deceleration is below a predetermined threshold.
Description
(1) Embodiments of the invention will now be described, by way of example, with reference to the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21) Referring to
(22) During ribbon movement, ribbon paid out by the ribbon supply spool 3 passes a guide roller 8 before passing the printhead assembly 4 and a further guide roller 9 before being taken up by the ribbon take up spool 5. The motors 6, 7 are controlled by a controller 10. An encoder may be provided to generate a signal indicative of the position of the output shaft of one or both of the motors 6, 7. In an embodiment, an encoder 35 is provided to monitor the rotation of the take-up spool motor 7.
(23) The printhead assembly 4 comprises a printhead 11 which presses the ribbon 2, and a substrate 12 against a printing surface 13 to effect printing. The location at which the ribbon 2 is pressed against the printing surface 13 by the printhead assembly 4 defines a printing location L.sub.P. The printhead 11 is a thermal transfer printhead comprising a plurality of printing elements, each arranged to remove a pixel of ink from the ribbon 2 and to deposit the removed pixel of ink on the substrate 12.
(24) The printhead assembly 4 is moveable in a direction generally parallel to the direction of travel of the ribbon 2 and the substrate 12 past the printhead assembly 4, as shown by an arrow A. Thus, the printing location L.sub.P varies in accordance with the movement of the printhead assembly 4 in the direction A. Further, at least a portion of the printhead assembly 4 is moveable towards and away from the substrate 12, so as to cause the ribbon 2 (when passing the printhead 11) to move into and out of contact with the substrate 12, as shown by arrow B.
(25) An encoder 14 may be provided which generates data indicative of the speed of movement of the substrate 12 at the printing location L.sub.P. The printer 1 further comprises a camera 15 and a light source 16 arranged on opposing sides of the ribbon path. The camera 15 and the light source 16 are each rigidly mounted to the base plate 24 of the printer 1. Thus the camera 15 and the light source 16 do not move with respect to the base plate 24 or other fixed components of the printer 1.
(26) Referring now to
(27) The position of the printhead carriage 21 in the direction of ribbon movement (and hence position of the printhead assembly 4) is controlled by a carriage motor 25 (see
(28) The movement of the printhead 11 towards and away from the printing surface 13 (and hence the pressure of the printhead against the ribbon 2, the substrate 12, and the printing surface 13) is controlled by a motor 29. The motor 29 is also located behind the base plate 24 (see
(29)
(30) The motor 29 may be a stepper motor, and may be controlled in a closed loop manner by virtue of an encoder 36 which is associated with the motor shaft 29a. The encoder 36 may provide an output indicative of the angular position of the output shaft 29a of the motor 29. Such an output may be used to enable precise control of the motor 29, for example by controlling the stator field of the motor to have a predetermined angular relationship with respect to the motor shaft 29a.
(31) The pulley wheel 30 in turn drives a printhead rotation belt 31 extending around a further pulley wheel 32. The printhead assembly 4 comprises a first arm 33, and a second arm 34, which are arranged to pivot about the pivot 22. The first arm 33 is connected to the printhead rotation belt 31, such that when the printhead rotation belt 31 moves the first arm 33 is also caused to move. The printhead assembly 4 is attached to the second arm 34. Assuming that the pivot 22 remains stationary (i.e. that the printhead carriage 21 does not move), it will be appreciated that movement of the printhead rotation belt 31, causes movement of the first arm 33, and a corresponding movement of the second arm 34 about the pivot 22, and hence the printhead assembly 4 (and printhead 11). Thus, rotation of the pulley wheel 30 in the clockwise direction drives the first arm 33 in to the left in
(32) The belts 27, 31 may be considered to be a form of flexible linkage. However, the term flexible linkage is not intended to imply that the belts behave elastically. That is, the belts 27, 31 are relatively inelastic in a direction generally parallel to the direction of travel of the ribbon 2 and the substrate 12 past the printhead assembly 4 (i.e. the direction which extends between the pulley wheel 30 and the further pulley wheel 32). It will be appreciated, of course, that the belts 27, 31 will flex in a direction perpendicular to the direction of travel of the ribbon 2 and the substrate 12 past the printhead assembly 4, so as to allow the belts 27, 31 to move around the pulleys 26, 28, 30, 32. Further, the printhead rotation belt 31 will flex in a direction perpendicular to the direction of travel of the ribbon 2 and the substrate 12 past the printhead assembly 4, so as to allow for the arc of movement of the first 33 arm about the pivot 22.
(33) However, in general, it will be understood that the relative inelasticity ensures that any rotation of the pulley wheel 30 caused by the motor 29 is substantially transmitted to, and causes movement of, the first arm 33, and hence the printhead 11. The belts 27, 31 may, for example, be polyurethane timing belts with steel reinforcement. For example, the belts 27, 31 may be AT3 GEN III Synchroflex Timing Belts manufactured by BRECOfIex CO., L.L.C., New Jersey, United States.
(34) The arc of movement of the printhead 11 with respect to the pivot 22 is determined by the location of the printhead 11 relative to the pivot 22. The extent of movement of the printhead 11 is determined by the relative lengths of the first and second arms 33, 34, and the distance moved by the printhead rotation belt 31. Thus, by controlling the motor 29 to cause the motor shaft 29a (and hence pulley wheel 30) to move through a predetermined angular distance, the printhead 11 can be moved by a corresponding predetermined distance towards or away from the printing surface 13.
(35) It will further be appreciated that a force applied to the first arm 33 by the printhead rotation belt 31 will be transmitted to the second arm 34 and the printhead 11. Thus, if movement of the printhead 11 is opposed by it coming into contact with a surface (such as, for example, the printing surface 13), then the force exerted by the printhead 11 on the printing surface 13 will be determined by the force exerted on the first arm 33 by the printhead rotation belt 31—albeit with adjustment for the geometry of the first and second arms 33, 34. Further, the force exerted on the first arm 33 by the printhead rotation belt 31 is in turn determined by the torque applied to the printhead rotation belt 31 by the motor 29 (via pulley wheel 30).
(36) Thus, by controlling the motor 29 to output a predetermined torque, a corresponding predetermined force (and corresponding pressure) can be established between the printhead 11 and the printing surface 13. That is, the motor 29 can be controlled to move the printhead 11 towards and away from the printing surface 13, and thus to determine the pressure which the printhead applies to the printing surface 13. The control of the applied pressure is important as it is a factor which affects the quality of printing. Of course, in some embodiments, the motor 29 may also be controlled in a conventional way (e.g. an open-loop position-controlled way).
(37) It is also noted that the position of the printhead 11 with respect to the printing surface 13 is also affected by the motor 25. That is, given the relationship between the motor 25 and the printhead assembly 4 (i.e. the coupling of the motor 25, via the belt 27, to the printhead carriage 21), movement of the motor 25 also has an impact on the position of the printhead relative to the printing surface 13.
(38) The motor 25 may also be a stepper motor, and may be controlled in a conventional (i.e. open-loop) manner. Of course, the motors 25, 29 may be other forms of motor (e.g. DC servo motors) which can be controlled in a suitable manner to control the position of the printhead 11 and printhead assembly 4.
(39) In a printing operation, ink carried on the ribbon 2 is transferred to the substrate 12 which is to be printed on. To effect the transfer of ink, the print head 11 is brought into contact with the ribbon 2. The ribbon 2 is also brought into contact with the substrate 12. The printhead 11 is caused to move towards the ribbon 2 by movement of the print head assembly 4, under control of the controller 10. The print head 11 comprises printing elements arranged in a one-dimensional linear array, which, when heated, whilst in contact with the ribbon 2, cause ink to be transferred from the ribbon 2 and onto the substrate 12. Ink will be transferred from regions of the ribbon 2 which correspond to (i.e. are aligned with) printing elements which are heated. The array of printing elements can be used to effect printing of an image on to the substrate 12 by selectively heating printing elements which correspond to regions of the image which require ink to be transferred, and not heating printing elements which require no ink to be transferred.
(40) There are generally two modes in which the printer of
(41) In continuous printing, during the printing phase the print head 11 is brought into contact with the ribbon 2, the other side of which is in contact with the substrate 12 onto which an image is to be printed. The print head 11 is held stationary during this process—the term “stationary” is used in the context of continuous printing to indicate that although the print head will be moved into and out of contact with the ribbon, it will not move relative to the ribbon path in the direction in which ribbon is advanced along that path. Both the substrate 12 and ribbon 2 are transported past the print head, generally but not necessarily at the same speed.
(42) Generally only relatively small lengths of the substrate 12 which is transported past the printhead 11 are to be printed upon and therefore to avoid gross wastage of ribbon it is necessary to reverse the direction of travel of the ribbon between printing cycles. Thus in a typical printing process in which the substrate is traveling at a constant velocity, the print head is extended into contact with the ribbon only when the print head 11 is adjacent regions of the substrate 12 to be printed. Immediately before extension of the print head 11, the ribbon 2 must be accelerated up to for example the speed of travel of the substrate 12. The ribbon speed is then generally maintained at a speed which is based upon the speed of the substrate (e.g. equal to, or proportional to the speed of the substrate 12) during the printing phase and, after the printing phase has been completed, the ribbon 2 must be decelerated and then driven in the reverse direction so that the used region of the ribbon is on the upstream side of the print head 11.
(43) As the next region of the substrate to be printed approaches, the ribbon 2 is then accelerated back up to the normal printing speed and the ribbon 2 is positioned so that an unused portion of the ribbon 2 close to the previously used region of the ribbon is located between the print head 11 and the substrate 12 when the print head 11 is advanced to the printing location L.sub.P. It is therefore desirable that the supply spool motor 6 and the take-up spool motor 7 can be controlled to accurately locate the ribbon so as to avoid a printing operation being conducted when a previously used portion of the ribbon is interposed between the print head 11 and the substrate 12.
(44) In intermittent printing, a substrate is advanced past the printhead 11 in a stepwise manner such that during the printing phase of each cycle the substrate 12 and generally but not necessarily the ribbon 2 are stationary. Relative movement between the substrate 12, the ribbon 2 and the printhead 11 are achieved by displacing the printhead 11 relative to the substrate and ribbon. Between the printing phases of successive cycles, the substrate 12 is advanced so as to present the next region to be printed beneath the print head and the ribbon 2 is advanced so that an unused section of ribbon is located between the printhead 11 and the substrate 12. Once again accurate transport of the ribbon 2 is necessary to ensure that unused ribbon is always located between the substrate 12 and printhead 11 at a time that the printhead 11 is advanced to conduct a printing operation. It will be appreciated that where the intermittent mode is used, the printhead assembly 4 is caused to move along the linear track 23 so as to allow its displacement along the ribbon path.
(45) In each of the aforementioned modes, during the transfer of tape from the supply spool 3 to the take up spool 5, both the supply spool motor 6 and the take-up spool motor 7 are energised in the same rotational direction. That is, the supply spool motor 6 is energised to turn the supply spool 3 to pay out an amount of tape while the take-up spool motor 7 is energised to turn the take-up spool 5 to take-up an amount of tape. The motors 6, 7 can therefore be said to operate in “push-pull” mode, with both motors being operated in a position (or speed) controlled manner. Where tension in the tape is to be maintained, it is important that the linear quantity of tape paid out by the supply spool is essentially equal to the linear quantity of tape taken up by the take-up spool. Additionally, as noted above it is desirable to transport a predetermined linear distance of tape between spools. This requires knowledge of the diameters of the spools given that the drive is applied to the spools and the linear length of tape transferred by a given rotational movement of the spools will vary in dependence upon the spool diameters. This knowledge can be obtained and updated in a variety of ways, several of which is are described in our earner U.S. Pat. No. 7,150,572.
(46) As described above, during continuous printing operations, the ribbon 2 is controlled based upon the speed of the substrate 12 moving past the printhead 11. For example, data indicative of the speed of movement of the substrate 12 may be obtained from the encoder 14. Such data may be referred to as a substrate speed. During continuous printing, the supply and take up spool 3, 5 are caused to rotate by the motors 6, 7 so as to cause the ribbon 2 at the printing location L.sub.P to move at a linear speed which is substantially equal, or at least based upon, the substrate speed. For example, as described in our earlier patent application WO2016/067052 the ribbon speed may be controlled so as to be a percentage (e.g. 96%) of the substrate speed. The speed of the ribbon 2 at the printhead 11 during printing in continuous mode may be referred to as a ribbon speed.
(47) During ribbon movements, each of the motors 6, 7 are controlled by the controller so as to move at an angular speed which causes ribbon to be advance at a predetermined linear speed past the printhead 11. Where the motors 6, 7 are stepper motors, the control of the motors to move at a predetermined angular speed results in the each of the motors being controlled to advance at a predetermined step rate.
(48) It will be understood that, as is well known in the field of motor control, the stepper motors 6,7 may be controlled to advance in increments which correspond to full steps at the native resolution of the motor (e.g. 1.8 degrees per step, or 200 steps per full revolution), or sub-steps (e.g. half-, quarter-, or micro-steps). By controlling the motors to advance in micro-step increments, it is possible to control the angular position of the output shaft of the motor far more accurately than in full-step operation, thereby allowing more refined control of the ribbon movement. However, even where micro-stepping is used, the motors 6, 7 are each controlled by reference to a set of discrete output angular positions. In the following description, where reference is made to motors being advanced by ‘steps’, or ‘steps’ being applied to a motor, it will be understood that the motor may be advanced by an amount that corresponds to a full-step, a half-step, a quarter-step or a micro-step (e.g. an eighth-step), depending on the configuration.
(49) In order to achieve relatively smooth rotation of the motors, and the rapid accelerations and decelerations that are required in a printer tape drive, the motors are controlled by specifying times at which steps should be applied. The times at which these steps are applied may be determined based upon acceleration tables which are stored in a memory associated with the controller 10. The acceleration tables may contain data indicative of a set of motor speeds, and/or rates (which correspond to angular speeds) at which steps should be applied to the motors. In an embodiment the acceleration tables contain data indicative of a delay between motor steps for each of a set of motor speeds.
(50) Moreover, the acceleration tables define transitions between step rates (which correspond to speeds) which can be achieved while operating within the operational limits of the motors. That is, a stepper motor may stall if accelerations or decelerations are attempted to be applied which require torques to be applied which are greater than the motor capabilities (whilst taking into account the inertia of spools of ribbon driven by the motors). As such, the acceleration tables contain data which is indicative of the maximum safe acceleration rates which can be applied to a motor.
(51) The acceleration tables may be based upon data indicative of the maximum angular acceleration rate for each motor, and may, for example, be re-calculated for each printing cycle so as to take into account current spool diameters values. That is, at the time of use (i.e. during a printing cycle) each acceleration table may already have been re-calculated based upon current spool diameter values so as to contain step rate data for a particular motor in a particular winding condition operating at various linear ribbon speeds. Thus, no adjustment for spool diameter is needed at the time at which the acceleration tables are accessed. Of course, it will be appreciated that the adjustment for spool diameter could be made at run-time if preferred. Alternatively, the acceleration tables could be updated at a different rate, for example, after each time a predetermined length (e.g. 750 mm) of ribbon has been transferred between the spools.
(52) Further, the acceleration tables for each motor in a printer (taking into account the current diameter of spools of tape mounted on those motors) may be generated so as to generally correspond to one another. For example, rather than an acceleration table for a motor driving a first spool having small diameter (and therefore small linear distance per step) being generated which allows a significantly different acceleration profile than a corresponding acceleration table for a motor driving a second spool of the same printer which has a large diameter (and therefore larger linear distance per step), the acceleration tables for the two motors may be generated such that the maximum linear acceleration rates are generally consistent for the two motors.
(53) For example, a global maximum linear acceleration value (e.g. 25 ms′) may be used to generate the acceleration tables for both motors at all spool diameters. Such a maximum linear acceleration value may be selected based upon a rate at which a motor driving a spool having a maximum allowable spool diameter can be safely accelerated and decelerated without causing the motor to stall.
(54) It will, however, be appreciated that even if acceleration tables generated for both of the motors 6, 7 provide a common maximum linear acceleration, for any particular actual motor speed, and a desired new ribbon speed, the two motors may have to respond to the speed demand differently. That is, given the different step sizes (in terms of linear distance of tape moved per step), the acceleration table for each motor will contain different speed entries, with different allowable speed steps based upon the current spool diameters.
(55) In use, where the desired ribbon speed changes, the updated desired ribbon speed is then converted into motor step rates by looking up the most suitable (and achievable) step rate in the relevant acceleration table. In particular, a modified step rate is determined with reference to the acceleration tables, the modified step rate being a step rate which is as close to the desired step rate as can be achieved without exceeding an allowable acceleration. Steps are then applied to each of the motors at the modified (i.e. achievable) step rates. Where the closest achievable step rate to a desired step rate (e.g. as determined based upon the desired ribbon speed) is below the desired step rate, the step rate will be updated again at the next refresh cycle (i.e. after a next step has been applied), so as to allow the motor to be accelerated towards the desired speed over two (or more) steps.
(56) For example, in a configuration in which a supply spool diameter is 50 mm, and a take up spool diameter is 100 mm, a maximum permitted acceleration rate is 25 m/s.sup.2 and in which the motors 6, 7 are each controlled in a ⅛.sup.th step manner, the acceleration table for each motor may include entries as shown in Table 1.
(57) TABLE-US-00001 TABLE 1 Extract of exemplary acceleration tables Supply Spool Take-up Spool (Spool diameter: 50 mm) (Spool diameter: 100 mm) Index Speed Index Speed 1 70.06 1 99.08 2 99.08 2 140.12 3 121.35 3 171.62 4 140.12 4 198.17 5 156.66 5 221.56 6 171.62 6 242.70 7 185.37 7 262.15 8 198.17 8 280.25 9 210.19 9 297.25 10 221.56 10 313.33 11 232.37 11 328.62 12 242.70 12 343.23 . . . . . . . . . . . .
(58) Each entry in each of the tables is representative of a linear ribbon speed. The speeds are calculated as the linear speed that is reached at the circumference of the spool by moving the motor a single step, with the spool being accelerated at the maximum permissible acceleration during that step, starting either a stationary position (entry 1), or the previous speed entry (entries 2 and onwards). For each current spool speed, and a desired spool speed, the tables can be consulted to determine an allowable next speed. It is not permitted to make more than a single speed jump in the table in a single step, so if a desired speed change exceeds the permitted change, the desired speed change is applied over two (or more) steps.
(59) Assuming that both spools are in motion with a current ribbon speed of 200 mm/s, the supply spool motor, driving a supply spool with a diameter of 50 mm, can be driven at a maximum speed of 210.19 mm/s for the next step (entry 9). This is on the basis that the closest table entry below the current speed is 198.17 mm/s (entry 8).
(60) It is noted that where a deceleration is required, the closest table entry above the current speed will be used as the starting point, so as to ensure that the maximum acceleration rate is not exceeded.
(61) The take up spool motor, driving a take-up spool with a diameter of 100 mm, and currently rotating at 200 mm/s also a closest table entry below the current speed of 198.17 mm/s (entry 4) can be driven at a maximum next speed of 221.56 mm/s (entry 5).
(62) Thus, in this example, if a new desired ribbon speed is 220 mm/s, the supply spool will not be able to achieve that speed in the next step, whereas the take up spool motor can achieve (and exceed) that speed.
(63) The next step applied to the motors will cause each motor to accelerate, but will cause the supply spool motor to accelerate to 210.19 mm/s (entry 9), whereas the take up spool motor will be caused to accelerate to the desired speed of 220 mm/s. However, the subsequent step for the supply spool will allow the speed to increase from 210.19 mm/s (entry 9) to up to 221.56 mm/s (entry 10). As such, a speed of 220 mm/s will be selected and, after two steps, the supply spool motor will also be at the desired speed.
(64) It is noted that the two steps required to be applied to the supply spool motor to reach the desired speed will be completed at around the same time as the single step required by the take-up spool motor has been completed. This is because the supply spool diameter is 50 mm, as compared to a take-up spool diameter of 100 mm, which results in a 2:1 step ratio for the same linear distance moved.
(65) Of course, it will be appreciated that the times at which steps are applied, and the step duration, will vary between the motors in dependence upon the spool diameters. Thus, during ongoing motor operations, the current speed, the next desired speed and permitted maximum and minimum speeds are continually changing for each motor, at different rates.
(66) In general terms, for each step performed, the controller may identify the step rate above and below the current rate in the relevant table. These rates are used as upper and lower limits for the next step. If a subsequent speed target is above the upper limit, the upper limit is used, and if a subsequent speed target is below the lower limit, the lower limit is used. If the subsequent speed target within the allowable range, the target speed is used. If the current speed corresponds to an entry in the relevant acceleration table, the allowable speed range may be a full step above or below the current speed.
(67) In this way, during ribbon transport operations, i.e. when attempting to drive the motors 6, 7 in accordance with a desired motion profile, it will be understood that the controller 10 will make frequent reference to the acceleration tables, and will continually update the rate at which steps are applied to the motors 6, 7 to attempt to ensure that the ribbon is moved as closely as possible to a desired speed as can be achieved within the limitations of the printer.
(68) In some embodiments the ribbon may be required to be advanced at a ribbon speed which is based upon a substrate speed (e.g. at a speed which is proportional to the substrate speed). In such an arrangement, the substrate speed may be referred to as a master speed. Changes in substrate speed (for example, which may be monitored by the encoder 14) may result in an updated desired ribbon speed being determined. The updated desired ribbon speed is then converted into motor step rates by looking up the most suitable (and achievable) step rate in the relevant acceleration table as described above.
(69) The use of acceleration tables in this way is now described with reference to
(70) Alternatively, the desired ribbon speed may be generated based upon a different reference speed, such as, for example, an internally generated reference speed (i.e. not the encoder data). In some embodiments, an internally generated reference speed is used during some ribbon movements, while an external reference (e.g. the substrate speed) is used during other ribbon movement. For example, in an embodiment an internally generated reference is used during deceleration, and ribbon rewind operations, with the substrate speed being used during the acceleration and printing phases of continuous printing operations. In some embodiments, the internally generated reference speed may also be used during ribbon acceleration. The reference speed V.sub.REF upon which the ribbon speed is based may be referred to as the “master” speed.
(71) Further, in some embodiments the ribbon movement may be controlled based upon substrate movement in different ways. For example, it is been realised that, in some instances, an image printed by the printer on the substrate having a first length may result in a negative image having a different length being formed on the ribbon. For example, a printed image of 70 mm in length may result in a negative image of 69 mm being formed. Thus the ribbon may be controlled during and between printing operations such that the portion of unused ribbon between adjacent negative images is minimised.
(72) For example, when attempting to place adjacent 70 mm long images at an offset of 70.5 mm (thereby allowing a 0.5 mm gap), an actual gap of 1.5 mm may be observed between adjacent negative images. Thus, the ribbon movement may be adjusted such that images are attempted to be placed at an offset of 69.5 mm, thereby allowing an actual gap of 0.5 mm, and reducing the wastage of ribbon by 1 mm for every 70 mm of printed image.
(73) It will also be understood that during such ribbon movements the ribbon advance speed may be controlled to be less than the nominal substrate speed so as to ensure that the ribbon is moved at an appropriate speed during printing. Further, in some embodiments, ribbon movements may be controlled such that significantly less ribbon is used than the length of each printed image, and the ribbon speed may be adjusted accordingly. For example, in ‘slip’ printing, the ribbon may be advanced a distance which corresponds to, for example, half of the length of an image printed on a substrate during each printing cycle. In such an arrangement, the ribbon may be advanced, during printing, at approximately half the substrate speed.
(74) Of course, different scaling factors may be used as appropriate. Any such adjustment of scaling factor may be made empirically, for example by monitoring the actual dimensions of negative ribbon images. Without wishing to be bound by theory, it is believed that the mismatch between negative image length and printing image length may be a result of the ‘ironing’ of ribbon between the printhead and the printing surface during printing.
(75) It will be understood that image scaling performed in order to allow comparison between the expected printed image and captured images (as described in more detail below) may also apply a scaling factor to compensate for this effect.
(76) The desired spool speeds V.sub.TU-D V.sub.SU-D are passed to a spool speed block 42, which also receives as inputs the current take-up spool speed V.sub.TU and the current supply spool speed V.sub.SU. The spool speed block 42 obtains, from a memory location, appropriate acceleration tables AC.sub.TU, AC.sub.SU for the take-up and supply spools (which have previously been generated based upon knowledge of the current spool diameters).
(77) Based upon the acceleration tables AC.sub.TU, AC.sub.SU, the current speeds V.sub.TU, V.sub.SU, and the desired spool speeds V.sub.TU-D V.sub.SU-D, the spool speed block 42 generates a commanded supply spool speed V.sub.SU-C and a commanded take-up spool speed V.sub.TU-C as described above in more detail.
(78) It will, of course, be appreciated that during ongoing operations the desired speed may change rapidly, and in a way which is beyond the capabilities of the motors 6, 7. In such circumstances the ribbon speed (as controlled by the spool speeds) may be adjusted in response to changes in substrate speed. However, there may be a lag between an updated substrate speed being detected, and an updated ribbon speed being achieved. Thus, while the actual ribbon speed is not equal to the desired spool speeds speed, the distance moved by the ribbon will not match the desired distance (which may, for example, be derived from the distance moved by the substrate).
(79) Moreover, even where any requested changes are well within the capabilities of the motors 6, 7, where the ribbon speed is adjusted in response to changes in substrate speed, there may be a lag between an updated substrate speed being detected, and an updated ribbon speed being achieved.
(80) Further, as described above, one motor may be able respond more quickly to a desired speed change than the other motor, resulting in discrepancies in the amount of ribbon fed by the two motors.
(81) Any discrepancy between the actual speed of a motor and the desired speed will result in the amount of ribbon fed by that motor deviating from the expected (or desired) amount. Thus, during each tape transport operation, the controller monitors the actual cumulative distance fed by each of the motors (for example by recording the number of steps applied to each motor). This monitored cumulative distance may be used to improve the control of the motors. For example, where motion is controlled with reference to substrate movement (e.g. by use of the encoder 14), the cumulative distance moved by the substrate 12 may be monitored and regarded as the “master” distance. Cumulative distances moved by each of the spools may also be monitored and compared to the “master” distance. If either of the monitored spool distances deviates by more than a predetermined amount from the master distance, an appropriate correction can be made.
(82) Further, as the desired speed changes during operation, the different step rates of the two motors (i.e. due to there being different spool sizes) result in the same speed change having a different effect on different motors. For example, a first motor having a high step rate (i.e. a small spool diameter) may “see” a temporary speed fluctuation which is not “seen” by a second motor having a lower step rate (i.e. a large spool diameter, and thus a lower speed refresh rate.
(83) More generally, the different step rates (due to different spool diameters) result in there being different effective sampling rates of the desired speed for each of the motors, and therefore different speed errors, resulting in different accumulated distance errors. Where a desired speed fluctuates rapidly (e.g. due to a noisy substrate encoder signal), this can have a significant cumulative effect where one motor can track the noise, whereas another cannot.
(84) For example during a substrate movement of 100 mm, the take-up spool 5 may be recorded as taking up 100.1 mm of ribbon, and the supply spool 3 may be recorded as paying out 99.7 mm of ribbon. In this case, the total ribbon paid out is less than that taken up by 0.4 mm, which will result in there being an increase in ribbon tension.
(85)
(86)
(87) In order to mitigate any negative effects associated with these errors in feed distances, corrections can be applied to the motor control signals during ongoing ribbon movements (but during the same print cycle) in order to correct the feed errors.
(88) For example, the controller 10 may be arranged to monitor the cumulative distances fed and compare to the master distance, and, if the differences exceeds a predetermined threshold, apply a correction. The correction may, for example, take the form of an increase or decrease in the target speed of the spool concerned. Thus, rather than correcting the distance instantaneously (which could potentially cause an abrupt change in ribbon tension and/or ribbon positioning), a speed scaling factor is applied to the relevant motor. Moreover, abrupt speed changes may not be within the physical capabilities of the motors.
(89) For example, a first distance error threshold T1 of ±0.1 mm may be provided. If the cumulative error exceeds this threshold T1, a first speed scaling factor S1 of 0.5% (positive or negative as required) may be applied. A similar process may be performed independently for each of the spools 3, 5.
(90) Further, if required, additional thresholds and corrections may be applied. For example a second threshold T2 of ±0.33 mm may be provided, and if this threshold is exceeded, a second speed scaling factor S2 of 1.8% applied, and so on. As greater errors are identified, corrections of greater magnitude may be required.
(91) The threshold (or thresholds) may be selected so as to maintain tension within predetermined limits. That is, a particular threshold may correspond to a tension deviation from a nominal ribbon tension that is known to provide reliable printing performance and tape drive operation. Moreover, the threshold (or thresholds) may be selected so as to allow the inevitable and transient errors in motor positioning to occur without correction. In particular, the different motor step rates (due to different spool diameters) result in there being an inevitable difference in apparent instantaneous relative motor shaft position throughout a ribbon movement operation. For example, while one motor may apply three steps, the other may apply one step for the same linear distance moved. In this situation, during the stepping process, the apparent position error between the motors will fluctuate. However, this position error will cancel itself out over several steps, assuming that the motors are moving substantially the same distance. If the threshold was set at a level which was triggered during every stepping cycle, corrections may be applied too quickly, and oscillations may occur.
(92) Of course, while the apparent motor shaft position may change immediately after each step command is issued, in practice, the shaft position will change more gradually, and may effectively be in continuous motion, rather than moving abruptly between stationary positions.
(93) The effect of such corrections is illustrated in
(94) In addition to the profile showing the speed of the supply spool V.sub.SU in
(95) In some embodiments the scaling factors may be removed as soon as the error value falls below the relevant threshold level. In alternative embodiments, one or more additional switch-off threshold levels may be provided. For example, where a first threshold T1 is set at ±0.1 mm, a first turn-off threshold TO1 may be set at ±0.08 mm. Similarly, where a second threshold 12 is set at ±0.33 mm, a second turn-off threshold 102 (which triggers the switch from second speed scaling factor S2 to the first speed scaling factor S1) may be set at ±0.12 mm.
(96) The take-up spool can be controlled in a similar way. Further, the desired spool speeds can be calculated independently of the substrate speed (e.g. where the substrate speed is not provided as an input, or during intermittent printing operations). Furthermore, in some embodiments, the spool speeds can, during part of a printing cycle, be generated based upon the substrate speed (e.g. during printing), and at other times (e.g. during ribbon acceleration, deceleration, and positioning/rewind) be generated based upon a predetermined motion profile. In some embodiments, one of the motors is controlled based upon the current speed of the other motor (which is used as the reference speed V.sub.REF). That is, either of the supply or take-up spool motor can operate as the “master” motor, with the other motor acting as a “slave”.
(97) The control described above with reference to
(98) It will be appreciated, however, that even where the linear quantity of ribbon paid out and taken up by the spools 3, 5 is accurately controlled to be equal (for example, by controlling the spool speeds as described above), any change in the ribbon path length can cause variations in ribbon tension. For example, during printing operations, the printhead 11 is caused to deflect the ribbon 2 into and out of contact with the substrate 12. The distance moved by the printhead between a retracted position (which may be referred to as a ready to print location L.sub.RTP) and an extended position (when the printhead 11 is pressed against the printing surface, also referred to as a printing location L.sub.P) may be around 2 mm, and may vary between different printer configurations and installations. As such, the ribbon path length may be caused to vary during printing operations by an amount which has a material effect of the tension in the ribbon. Moreover, the deflection of the ribbon 2 by the printhead 11 may result in the portion of ribbon 2 which is printed on at the printing location L.sub.P being different to the portion of ribbon 2 intended or expected to be printed on.
(99) As such, and in order to further reduce any negative consequences associated with the error in ribbon positioning and tension control, data indicative of the increase (or decrease) of ribbon path length may be provided to the feed correction block 41. Such data may be referred to a printhead position data PH.sub.POS.
(100) Such data may be used to apply a further correction to the desired supply and take up spool speeds V.sub.SU-D, V.sub.TU-D. For example the desired supply and take up spool speeds V.sub.SU-D, V.sub.TU-D may be scaled by a further factor such that an adjusted feed speed is determined for each spool. Alternatively, the printhead position data PH.sub.POS may be added to either one or both of the position errors for the supply spool ERR.sub.SU and the take-up spool ERR.sub.TU. That is, the stored data indicating the cumulative error may be adjusted in anticipation of an expected printhead movement. On other words, an anticipated path length error may be injected into one or more of the error accumulators. In this way, the processing described above (e.g. using a threshold value and speed scaling factor) may be used to accommodate printhead movements.
(101) Further, in some embodiments, one or more of the threshold values and/or speed scaling factors may be modified in order to respond quickly to an expected disturbance. For example, the speed scaling factor S2 associated with the second threshold level T2 may be increased based upon the ribbon path length error to be injected. The scaling factor adjustment may, for example, be calculated based upon the magnitude of the path length adjustment to be made, the current ribbon target speed, and the anticipated time it will take the printhead to complete the movement. Further, the T2 off level TO2 may be adjusted prevent any overshoot. For example, if the speed scaling factor is increased, the likelihood of overshoot is increased. Therefore, the threshold at which the speed scaling factor is reduced may also be increased, so as to lessen any overshoot (i.e. so that the speed scaling reverts to the first speed scaling factor more quickly).
(102) For example, where the speed scaling factor S2 is large (e.g. 50%), and the ribbon speed is also significant (e.g. 400 mm/s), when reverting from the second threshold to the first threshold, the motor may need to rapidly accelerate or decelerate when the turn off threshold TO2 is crossed. However, if this threshold TO2 is set at the level described above (e.g. 0.12 mm error) the adjustment will require a change of speed from a 50% scaled speed, to a 0.5% scaled speed. Moreover, with only 0.12 mm of error needing to be corrected at this stage, it is unlikely that a motor will be able to accelerate or decelerate quickly enough to reach the new target speed before an error has accumulated in the opposite direction. Thus, the second turn off threshold TO2 may be increased so as to provide a longer period in which the correction can be effected.
(103) It will be understood that the speed scaler factors S1, S2 and threshold levels T1, T2 may initially be configured to respond to the gradual accumulation of errors in distance that occur during normal ribbon feeding operations. Since these errors are generally fairly small in magnitude, and occur relatively slowly, the feed correction block 41 may react with small corrections over a relatively long period of time. In particular, it is not ordinarily expected or intended that there are sudden large changes in the ribbon speed during printing, as this could affect the print quality, and lead to print sizing defects.
(104) However, these concerns do not apply when the printhead is being withdrawn, since the printhead cannot be printing at this time. Moreover, the scaling factors used to respond to gradual error accumulations may not be large enough to correct the error introduced by the printhead movement before the ribbon feed has completed. Thus, one or more of the speed scaling factors (e.g. the second speed scaling factor S2) may be adjusted to correct the path length error that is about to be introduced in approximately the amount of time that the printhead movement is expected to take.
(105) In some embodiments, the second threshold T2 is reduced to the extent that it is the same as the first threshold T1. In such an arrangement, the second speed scaling factor S2 is applied as soon as the first threshold T1 (and second threshold T2) is reached. This may be preferred where any path length adjustment is small (e.g. where there is a small gap between the ready to print position and the printing position). For example, if no T2 adjustment was made, an error which is just below the second threshold T2 level (e.g. 0.3 mm) may only be corrected by a small (e.g. 0.5%) speed scaling factor, and may thus take some considerable time to be corrected. However, where the second speed scaling factor S2 is adjusted based upon the required correction (e.g. the magnitude of the error ERR.sub.SU), the second threshold may also be reduced to allow the second speed scaling factor S2 to be applied more quickly. In an embodiment, if an anticipated path length change would cause an effort between the first and second threshold T1, T2, the second threshold may be adjusted to fall between the anticipated error, and T1.
(106) More generally, it is noted that the path length disturbances which result from step timing errors (which gradually accumulate) are different in nature to those which result from printhead movements (which apply almost instantaneously). Thus, the response to each type of path length change may be optimised for each disturbance while still using the same underlying control algorithm.
(107) It is further noted that the speed scaling factors and thresholds may be adjusted only in the direction of the correction that is required. For example, for a printhead retraction movement (which requires ribbon to be removed from the path to avoid slack ribbon), only the second threshold and speed scaling factor for ribbon removal are adjusted. Of course, the opposite may apply during a printhead extension movements.
(108) In some embodiments, the data indicative of the printhead position PH.sub.POS may be used only to the adjust control of the supply spool motor 3. Such control may be considered to reduce the likelihood of rapid tension changes being caused between the take up spool 5 and the printhead 11, which could have a detrimental effect on ribbon peel angle, and therefore print quality.
(109) It will, of course, be appreciated that during each printing operation the printhead will be brought into contact with, and then out of contact with the printing surface. Thus, positive and negative adjustments may be made to ribbon path length (e.g. via adjustments to the position errors for the supply spool ERR.sub.SU) during a single printing cycle.
(110) Moreover, given the high speed at which steps may be applied to the motors 6, 7 (e.g. at stepping rates of up to several, or even several tens of, kilohertz), it is possible that printhead movements will be ongoing for more than a single step. That is, a printhead movement may span several motor steps. Indeed, in some embodiments, a printhead movement may take around 10 ms, which may, for example, span 500 tape drive motor steps.
(111) As such, in some circumstances, the printhead position data PH.sub.POS may be modified across several steps, so as to provide accurate and up to date information regarding the actual ribbon path length at every point in time (rather than assuming that the printhead movement is instantaneous). In this way, any speed adjustment made by the ribbon feed correction block 41 may be distributed over several motor steps.
(112) However, in a preferred embodiment, it is assumed that the printhead movement is instantaneous, on the basis that the maximum acceleration for the motors 6, 7 may limit the rate at which the tape drive can respond, and thus the response to the printhead position movement will effectively be distributed over several steps by the limited acceleration. In such an arrangement, the path length error is injected to the error accumulator as soon as the printhead movement begins.
(113) If the path length error was added gradually (for example based upon detected printhead position), it is possibly that there would be a significant delay during the initial part of the printhead movement whilst the error value accumulated, thereby delaying any corrective response. If is noted, however, that if the ribbon motors provided were capable of higher acceleration rates, and thus able to respond to an error more quickly, it may be preferred to for the path length adjustment block to use the printhead position data directly (rather than anticipating the path length change).
(114) The printhead position data PH.sub.POS may be generated in any convenient way. For example, the printhead position data PH.sub.POS may be generated with reference to the motor 29 which controls the movement of the printhead 11. In particular, the printhead position data PH.sub.POS may be generated by monitoring steps applied by the motor 29. Alternatively, the printhead movement data may be generated with reference to the encoder 36 associated with the motor 29. For example, it may be assumed that any movement of the motor shaft 29a will correspond to a movement of the printhead 11.
(115) Further, as noted above, given the relationship between the motor 25 and the printhead assembly (i.e. the coupling of the motor 25, via the belt 27 to the printhead carriage 21), movement of the motor 25 also has an impact on the position of the printhead relative to the printing surface.
(116) Thus, in general terms it will be understood that at any point in time, the position of the printhead 11 can be determined by reference to the motor 29, and the motor 25. That is, for a given angular position of the motor shafts 25a, 29a, there is a predictable angle of the arms 33, 34, and thus a predictable position of the printhead 11 with respect to the body of the printer 1.
(117) However, in use, the position of the printing surface 13 with respect to the body of the printer 1 may vary. It some prior art printers, it is known for a nominal platen separation to be programmed by a user during printer configuration. However, such a process may be inherently unreliable. Moreover, even if the initial platen separation was accurate, configuration changes may occur, resulting in the nominal separation becoming inaccurate.
(118) It is desirable, therefore, for a number of reasons to provide a more accurate indication of the gap between the printhead 11 and the printing surface 13 when the printhead 11 is in the ready to print location L.sub.RTP to the printer controller 10. Such data may be used as described above to adjust the control of the motors 6, 7, controlling the movement of ribbon between the spools. Alternatively, or additionally, such data may be used to allow more accurate tracking of regions of ribbon which are used for printing.
(119) A process by which accurate estimates of platen gap and printhead position during printing operations will now be described.
(120) It is possible to monitor the point at which the printhead makes contact with a printing surface by monitoring the power supplied to a motor driving the printhead (and thus the torque applied by that motor). However, it is been realised that there may be errors between the position of the printhead 11 as determined purely by reference to the point at which in the printhead 11 makes contact with the printing surface as indicated by the motor controlling that movement, and the actual deflection of the ribbon 2 during printing operations. For example, calculating the printing location L.sub.P on the basis of the position of motor shaft 29a alone can lead to an overestimate of the extension of the printhead 11. It is understood that the various belts and mechanical linkages, as well as the inherent compliance within the printing surface (e.g. a print roller) can contribute such errors.
(121) As such, it has been realised that by applying a negative offset to the apparent printhead position, a more accurate representation of the ribbon deflection can be achieved. The offset may be empirically determined to provide robust detection of the printing location L.sub.P. Moreover, the offset may vary depending upon the printing force and other configuration changes (e.g. a change in print roller).
(122) Various positions of the printhead can be understood by reference to
(123)
(124)
(125)
(126) A process by which printhead position data PH.sub.POS is generated will now be described with reference to
(127) At step S101, a data item indicative of the actual printing location L.sub.P-ACTUAL is initialised. Processing passes to step S102 where the printhead 11 is driven towards the printing surface 13 by the motor 29. During this movement, the motor 25 is held stationary, so as to prevent any movement of the carriage 21 in a direction parallel to the printing surface 13 along the linear track 23. During this movement of the printhead the motor 29 may be controlled to deliver a maximum torque which corresponds to a predetermined printing force being exerted on the printing surface 13.
(128) During the movement of the printhead at step S102, the encoder 36 associated with the motor 29 is monitored. Once the encoder output value PH.sub.ENC stops changing, indicating that an equilibrium (i.e. substantially stationary) position has been reached, with the predetermined printing force being exerted on the printing surface 13 by the printhead 11, processing passes to step S103.
(129) It will be understood that the encoder 36 may rarely be totally stationary. As such, a low pulse rate may be detected, and considered to be indicative of an equilibrium position being reached. Moreover, a processing delay may be inserted before the encoder output is monitored at step S102, so as to allow for any system latency (e.g. a delay after a move command is generated and before the encoder value begins to change).
(130) At step 3103, the encoder value PH.sub.ENC when the equilibrium position is reached is stored as an apparent printing location L.sub.P-APPARENT. The apparent printing location L.sub.P-APPARENT is an encoder position which indicates the apparent position of the printing location.
(131) It will be understood that the apparent printing location (in terms of a physical position with reference to other components of the printer) may subsequently be generated with reference to the known angular position of the output shaft 25a of the motor (as indicated by the encoder data PH.sub.ENC/L.sub.P-APPARFNT) and the known geometry of the printer (e.g. the position of the belts 27, 31, the length and alignment of the arms 33, 34 etc.). This conversion may be performed at any convenient time as required, for example, with reference to a lookup table containing known relationships between encoder values and actual printhead positions.
(132) Processing then passes to steps S104, where the apparent printing location L.sub.P-APPARENT is compared to reference data so as to determine if the apparent printing location L.sub.P-APPARENT is within an a acceptable range (e.g. a platen separations of 0 mm to 5 mm). Of course, where the apparent printing location L.sub.P-APPARENT is an encoder value, data indicating an acceptable range may be provided in terms of encoder values corresponding to acceptable physical positions. If the value is not in an acceptable range, a fault is raised to the user at step S105.
(133) Provided this apparent printing location L.sub.P-APPARENT is within an acceptable range, processing passes to step S106, where a predetermined offset value PH.sub.OFF is subtracted from the apparent printing location L.sub.P-APPARENT. That is, an offset is applied such that the apparent printing location L.sub.P-APPARENT as determined by the angular position of the encoder 36 (and therefore motor shaft 29a) is adjusted so as to correspond to an earlier position in the movement of the printhead 11 towards the printing surface 13. The offset value PH.sub.OFF may be a number of encoder pulses. The resulting position may be referred to as an actual printing location L.sub.P-ACTUAL.
(134) It will be understood that as the printhead 11 makes contact with the printing surface 13, the printing surface 13 may be compressed. Moreover, the belts 27, 31 may flex in a direction perpendicular to the direction of travel of the ribbon 2 and the substrate 12. Such flexion will result in some rotation of the motor 29a not being transferred to movement of the printhead. Moreover, once contact has been made between the printhead 11 and the printing surface 13, the portion of ribbon at the printing location L.sub.P will be somewhat restricted in its movement due to the friction forces between the various surfaces.
(135) It is been observed that by applying an empirically determined offset to the apparent printing location L.sub.P-APPARENT when the motor 29 stops rotating to generate the actual printing location L.sub.P-ACTUAL data, it is possible to obtain a more accurate indication of the actual location of the printing location L.sub.P, which more accurately reflects the actual ribbon deflection during printing operations.
(136) Once the actual printing location L.sub.P-ACTUAL has been determined, processing passes to step S107 where this data is stored for subsequent use.
(137) The processing of steps S102 to S107 is repeated for each subsequent printhead movement (e.g. during printing operations) and, for each movement of the printhead into contact with the printing surface 13, the actual printing location L.sub.P-ACTUAL is updated. For example, rather than simply relying upon a single measurement, in use the actual printing location data L.sub.P-ACTUAL may be based upon an average of a plurality (e.g. ten) of previous printhead movements. In this way, any changes in printing location L.sub.P during ongoing printing operations can be monitored.
(138) During printing operations, a number of uses may be made of the actual printing location data L.sub.P-ACTUAL. For example, the actual printing location L.sub.P-ACTUAL may be passed to the ribbon feed controller 40 as printhead position data PH.sub.POS (as described above with reference to
(139) However, it will be understood that during movement of the printhead the printhead position will vary, and will not, therefore, be equal to the actual printing location L.sub.P-ACTUAL at all times.
(140) Processing performed by the controller 10 to generate an appropriate printhead position PH.sub.POS to provide to the ribbon feed controller 40 is now described with reference to
(141) At step S110, current printhead encoder value PH.sub.ENC is obtained. Processing passes to step S111 where the value is converted to an apparent printhead position PH.sub.POS-APPARENT. In an embodiment, the apparent printhead position PH.sub.POS-APPARENT is simply an encoder value. Alternatively, in other embodiments the apparent printhead position PH.sub.POS-APPARENT may be a physical position and may be generated with reference to a lookup table storing positional information, or by processing of the current encoder value PH.sub.ENC and known geometry data. However, in the described embodiment, the conversion from encoder values to actual distances is performed at a different processing step (e.g. within the ribbon feed controller 40).
(142) It is noted that, at the point at which the encoder output value PH.sub.ENC stops changing, the apparent printhead position PH.sub.POS-APPARENT value will be equal to the apparent printing location L.sub.P-APPARENT value generated at step S106. However, whereas the apparent printing location L.sub.P-APPARENT value represents a single location, the apparent printhead position PH.sub.POS-APPARENT value is a continually varying quantity.
(143) Processing then passes to step S112 where the apparent printhead position PH.sub.POS-APPARENT is compared with the currently stored actual printing location L.sub.P-ACTUAL (as generated in step S107). If the current apparent printhead position PH.sub.POS-APPARENT is smaller than the stored actual printing location L.sub.P-ACTUAL value, then the current position data item is used as the data indicative of printhead position PH.sub.POS. That is, if the apparent printhead position PH.sub.POS-APPARENT indicates that the printhead 11 has not yet reached the printing location L.sub.P, then processing passes to step S113 where the apparent printhead position PH.sub.POS-APPARENT is used in subsequent processing as the data indicative of printhead position PH.sub.POS.
(144) On the other hand, if the apparent printhead position PH.sub.POS-APPARENT is greater than the stored actual printing location L.sub.P-ACTUAL, then processing passes to step S114 where the stored actual printing location L.sub.P-ACTUAL is used as the data indicative of printhead position PH.sub.POS.
(145) In this way, an estimate of the actual printing location L.sub.P-ACTUAL is obtained and maintained during ongoing printing operations. This actual printing location L.sub.P-ACTUAL corresponds to an encoder value indicative of a platen separation (the platen separation being a distance to be moved by the printhead between the ready to print location L.sub.RTP and the printing location L.sub.P).
(146) Moreover, by using an offset value, allowance is made for various system compliances that could otherwise cause a discrepancy between the apparent printing location L.sub.P-APPARENT and the actual printing location L.sub.P-ACTUAL.
(147) Further, during ongoing movements of the printhead, the lesser of the apparent printhead position PH.sub.POS-APPARENT and the actual printing location L.sub.P-ACTUAL is passed to ribbon feed controller 40 (or other function within the printer controller 10) as the indicative printhead position PH.sub.POS. This allows the actual data to be used where the printhead is in a free space position (i.e. where it is not in contact with the printing surface 13) but uses the more robust offset and averaged printhead location data L.sub.P-ACTUAL when it is pressed against the printing surface 13.
(148) In this way, accurate and robust data is provided to the various functions of the printer controller 10 as required, allowing accurate ribbon control and more accurate tracking of regions of ribbon which are used for printing.
(149) Operation of the camera 15 and light source 16 will now be described in more detail with reference to
(150) The camera 15 and light source 16 are arranged at a position which is downstream in the ribbon path from the location of the printhead assembly 4. That is, ribbon 2 which is paid out by the supply spool 3, passes the guide roller 8, then the printhead 11 (where it may be used for printing operations at the printing location L.sub.P), before passing around the guide roller 20. The ribbon 2 then passes between the camera 15 and light source 16 (at the imaging location L.sub.I). Finally, the ribbon 2 passes the guide roller 9, and is taken up by the take up spool 5.
(151) Thus, any portion of ribbon which passes between the light source 16 and the camera 15 at the imaging location L.sub.I, has, in normal operation, already passed the printing location L.sub.P. It will, of course, be appreciated that in use portions of ribbon may be advanced from the supply spool 3 to the take up spool 5 and then re-wound in the opposite direction, for example, so as to ensure a particular portion of unused ribbon is presented at the printing location for a printing operation without wasting ribbon. However, overall, ribbon is generally advanced from the supply spool 3 to the take up spool 5 in a first direction, the printhead 11 (and the printing location L.sub.P) being upstream of the camera 15 (and the imaging location L.sub.I). The separation between the printing location L.sub.P and the imaging location L.sub.I may be referred to as an imaging distance D.sub.I.
(152) In use, the camera may be used to examine the ribbon 2, for example to identify properties of the ribbon (e.g. to identify where portions of ink have been removed from the ribbon). The identified properties of the ribbon may be used to control printer operation. For example, the negative image of ink which has been removed from the ribbon may be compared with data indicative of an expected negative image (which may be based upon an image intended to be printed on a substrate), and printing faults identified. Such processing is described in our earlier application WO 2013/025746, which is herein incorporated by reference.
(153) It will be appreciated that variations may occur in imaging quality when using the camera 15 and light source 16. For example, variations in background image intensity may reduce the captured image quality. Similarly, in order to provide for robust detection of printing defects, portions of ribbon which are printed on should be tracked accurately through the printer 1. Moreover, knowledge of the relative location of the printing location L.sub.P and the imaging location L.sub.I (and hence the imaging distance D.sub.I) during printing may be used (in combination with the tracking of portions of ribbon along the ribbon path) in order to allow accurate image registration, and thus a robust comparison to be made between printed images and expected images.
(154) Several techniques which provide improvements in ribbon tracking, image capture quality and image processing, are now described in more detail.
(155)
(156) The light source 16 comprises a plurality of individual light emitting diodes (LEDs) 50. The LEDs 50 are arranged in a linear array, which extends across the width of the ribbon 2 in a direction substantially perpendicular to the direction of ribbon and substrate movement. Ribbon widths may typically 60 mm, although 110 mm and 30 mm ribbon (or indeed other ribbon widths) may also be used. As such the light source is configured to extend beyond the extent of the widest ribbon expected to be installed in the printer 1. In the described embodiment, the light source 16 is around 65 mm in length. It will be understood that if a ribbon wider than 60 mm is used, a wider light source may be required.
(157) In an embodiment, the light source comprises 28 LEDs 50. The LEDs are driven by an LED driver 51. The LED driver 51 may comprise a plurality of separate LED drive circuits (not shown), each circuit being configured to drive one or more of the LEDs 50. The LEDs 50 may, for example, be driven in pairs, with each drive circuit being configured to drive a pair of LEDs 50. The LED driver 51 is controlled by the controller 10. The LED driver 51 may be provided by a TLC5941 16-channel LED driver manufactured by Texas Instruments Inc, Texas, USA. The LEDs may be selected to have an emission wavelength (or distribution) which is convenient for detection by the camera 15. In an embodiment, the LEDs may emit radiation at a wavelength of 633 nm.
(158) The light source 16 further comprises a light box 52 within which the LEDs 50 are housed. The face of the light box 52 which faces the ribbon 2 (and the camera 15) is covered with a window, which allows the radiation emitted from the LEDs to pass to the ribbon 2. The window may comprise a transparent panel 53 and a diffuser layer 54.
(159) The diffuser layer may be arranged to homogenize and directionally shape the radiation emitted by the LEDs, while also providing a high transmission efficiency. For example, the diffuser film may be a light shaping diffuser film manufactured by Luminit LLC, of Torrance, Calif., USA. The film may have a thickness of 0.25 mm, and may provide a diffusion angle of 40 degrees by 1 degree. In particular, the diffuser film may cause incident radiation to be diffused by around 40 degrees in a direction parallel to the direction in which the LED array extends, and by around 1 degree in a direction parallel to the movement of ribbon past the imaging location. This ensures that the radiation emitted by the LEDs remains principally directed towards the camera 15 in the direction parallel to the movement of ribbon past the imaging location without being diffused so as to miss the camera. However, in the direction parallel to the LED array, the 40 degree diffusion reduces the intensity variation across the full width of the camera. That is, without the diffuser, each LED may create an intensity peak, with a deep trough being formed between adjacent peaks. The diffuser smooths the intensity distribution across the width of the LED array. In an embodiment, two similar 40 degree by 1 degree films are used, one on top of the other.
(160) The light source 16 may further comprise a transparent plastic rod 55, which is provided directly between the LEDs 50 and the diffuser layer, and acts as a lens to direct the radiation output by the LEDs towards the diffuser 54.
(161) The camera 15 comprises a sensor 60 having a plurality of pixels (not shown). In an embodiment, the sensor 60 comprises 256 pixels arranged in a one-dimensional linear array. The pixel array extends in a direction substantially parallel to the linear array of LEDs 50 in the light source 16. Radiation incident upon the camera is focused and directed towards the sensor 60 by a lens assembly 61. The lens assembly 61 provides a wide angle field of view, allowing radiation to be captured from the full width of the light source 16.
(162) In the embodiment described above, the lens assembly 61 allows radiation to be captured from the full 60 mm width of the ribbon 2. Thus, each pixel of the sensor 60 corresponds to approximately 0.23 mm at the ribbon surface. Assuming that printing is carried out at a resolution of 300 dots per inch, then each image pixel corresponds to around 2.5 pixels printed on the ribbon 2. In some embodiments, the camera field of view may be wider than the ribbon. For example the field of view may be 63 mm, allowing ribbon edges to be detected.
(163) As noted above with reference to the light source 16, if wider ribbons are used, a camera having a wider field of view may be required. Alternatively, a plurality of cameras and lens assemblies may be provided, each having a field of view which covers a portion of the imaging location. In such an arrangement, image data obtained from each of the cameras may be merged into a single image for subsequent processing.
(164) Signals indicative of the radiation intensity incident upon each of the pixels of the sensor 60 are passed to an image capture block 62. The signals indicative of the radiation intensity incident upon each of the pixels of the sensor 60 may collectively be referred to as a characteristic of the image capture system and/or a spatial distribution of radiation intensity. The image capture block 62 may comprise software and/or hardware elements (including analog and/or digital electronic components). For example, the image capture block 62 may comprise amplifiers for amplifying the received signals, analog to digital convertors for converting analog intensity signals to digital data values, and a processing for processing the digital data.
(165) In an embodiment the sensor 60 comprises a 256 element linear photodiode sensor array having integral charge amplifier circuitry such as, for example, the TSL1402R as manufactured by Texas Advanced Optoelectronic Solutions Inc, of Plano, Tex. The sensor may produce two analog outputs (each relating to 128 sensor elements), which are passed to respective ADC chips (e.g. AD 7278, manufactured by Anaog Devices Inc, of Norwood, Mass.). The ADC chips may each provide a 128-bit serial data output via an SPI interface, each having 8-bits of intensity data per pixel of the sensor.
(166) Before images are captured by the camera, the camera 15 and the light source 16 may be normalised and/or calibrated so as to provide improved image capture. For example, it will be appreciated that non-uniformities in the illumination intensity across the width of the image may result in the camera 15 having different sensitivities to ribbon properties at different locations across the width of the ribbon.
(167) A normalisation process is described with reference to
(168) It is noted that, in the following processing, where it is described that an intensity image is captured, a plurality of images may be captured from the capture block 62, and an average value determined for each pixel. The average values may then be processed as described (rather than processing the data obtained in a single capture). Similarly, the term image may be understood to refer to a one-dimensional array of intensity values. Such an array may alternatively be referred to as a characteristic of the image capture system, or a spatial distribution of radiation intensity.
(169) At a first processing step S200 of the hardware test N1, performed when there is no ribbon cassette installed in the printer, the LEDs 50 are all driven to an ‘off’ state.
(170) Processing then passes to step S201 where the image capture block 62 is operated to capture a full width intensity distribution IM.sub.OFF from the image sensor 60. The captured intensity distribution IM.sub.OFF comprises a respective data item indicative of the radiation intensity incident upon each of the 256 pixels.
(171) Processing then passes to step S202, where it is determined if the radiation intensity incident upon the sensor 60 (as captured in IM.sub.OFF) is below a minimum threshold level. If the radiation intensity is below the threshold, processing passes to step S203. At step S203 the LEDs 50 are all driven to an ‘on’ state, with maximum drive intensity.
(172) Processing then passes to step S204 where the image capture block 62 is operated to capture a full width intensity distribution IM.sub.FULL from the image sensor 60. The captured intensity distribution IM.sub.FULL comprises a respective data item indicative of the radiation intensity incident upon each of the 256 pixels.
(173) Processing then passes to step S205, where it is determined if the radiation intensity incident upon the sensor 60 (as captured in IM.sub.FULL) is above a maximum threshold level. If the radiation intensity is above the threshold, the hardware test N1 is complete.
(174) However, if the radiation intensity is below the maximum threshold, this is indicative of an error condition, and a fault condition is raised at step S206. Similarly, at step S202, if the minimum threshold is exceeded, this is also indicative of an error condition, and processing passes to step S206 where a fault condition is raised. If a fault condition is raised at step S206, the normalisation process is terminated.
(175) If the hardware test has been successful, processing passes from step S205 to the brightness profile calibration N2, and processing step S207, which is also performed when there is no ribbon cassette installed in the printer.
(176) At step S207 a first pair of LEDs 50 are selected. Processing passes to step S208 where the selected pair of LEDs 50 are illuminated at a drive intensity which corresponds to 50% of the maximum drive intensity.
(177) Processing then passes to step S209 where the image capture block 62 is operated to capture a full width intensity distribution IM.sub.LED_PAIR from the image sensor 60. The captured intensity distribution IM.sub.LED_PAIR comprises a respective data item indicative of the radiation intensity incident upon each of the 256 pixels as a result of the half-intensity illumination of the selected LED pair.
(178) Processing then passes to step S210, where it is determined if the peak radiation intensity incident upon the sensor 60 (as captured in intensity distribution IM.sub.LED_PAIR) is equal to a nominal brightness level. The peak radiation intensity may be the average intensity across a primary illumination region for the selected LED pair. The primary illumination region may comprise a subset of the sensor pixels which are closest to the LED pair. For example, the intensity of the brightest pixel (or average across a small group of pixels) across the full intensity distribution IM LED may be determined to be the peak radiation intensity.
(179) The nominal brightness level may, for example correspond to around 72% of the maximum detectable intensity. This is based upon the realisation that each LED pair will primarily illuminate a predetermined region of the sensor, but will also contribute to the illumination of adjacent regions to some extent. Thus, if a nominal peak intensity of 72% is detected at the primary illumination region, when all pairs of LEDs are illuminated simultaneously, each illumination region will be illuminated at approximately the maximum detectable intensity.
(180) If the peak radiation intensity is not equal to the nominal level, processing passes to step S211, where the brightness level is adjusted for the selected pair. The adjustment may, for example, use a binary chop algorithm to adjust the drive level. Processing then returns to step S208, where the selected pair of LEDs 50 are now illuminated at the adjusted drive intensity.
(181) Processing continues in this way, by repeating steps S208 to S211, until the selected LED pair are determined to cause the peak radiation intensity incident upon the sensor 60 (as captured in intensity distribution IM.sub.LED_PAIR) to be equal to the nominal brightness level.
(182) Once the nominal brightness level has been achieved, processing passes to step S212, where it is determined if the selected LED pair is the last LED pair. If not, processing returns to step S207, where a new LED pair is selected. The processing steps S208 to S212 are then repeated until an appropriate adjusted nominal drive level has been determined for each LED pair. Data indicating the corrected drive intensity for each LED is stored in a data structure LED.sub.CORRECT_NOMINAL. It will be appreciated, of course, that in some embodiments alternative LED adjustment routines may be performed.
(183) At this point, the brightness profile calibration N2 is complete and processing passes to step S213, which is the first step of the pixel normalisation N3. At step S213, all of the LEDs are driven at the determined nominal intensity LED.sub.CORRECT_NOMINAL.
(184) It will be expected that the LEDs towards the outside of the array are required to be driven at a higher intensity than the more central LEDs. This is because the image sensor will receive a higher proportion of the radiation emitted by the LEDs in the centre of the array than the LEDs towards the outside of the array. In particular, the central LEDs are closer to, and pointing directly towards the sensor 60 (as indicated by radiation path r.sub.c), whereas the outer LEDs are slightly further away from the sensor, and directed in a path perpendicular to the direction in which the array extends (r.sub.o).
(185) Processing then passes to step S214 where the image capture block 62 is operated to capture a full width intensity distribution IM.sub.NOMINAL from the image sensor 60. The captured intensity distribution IM.sub.NOMINAL comprises a respective data item indicative of the radiation intensity incident upon each of the 256 pixels.
(186) Processing then passes to step S215 where a set of normalisation scaler values IM.sub.NORM are generated. The normalisation scaler values IM.sub.NORM comprise a scaler value for each pixel of the sensor 60, each scaling value being a value which must be applied to the intensity value detected by the respective pixel in order to generate a scaled image having a uniform and maximum intensity. These normalisation scaler values IM.sub.NORM are stored for use in subsequent image processing.
(187) At this point, the pixel normalisation N3 is complete and processing passes to step S216, which is the first step of the background radiation profile capture N4. At S216 the LEDs 50 are driven at a reduced intensity (e.g. 30% of the corrected nominal drive intensity LED.sub.CORRECT_NOMINAL).
(188) Process then passes to step S217 where a full width intensity distribution IM.sub.BG_NO_RIBBON is captured from the image sensor 60. The captured image comprises a data item indicative of the radiation intensity incident upon each of the 256 pixels.
(189) Given the adjustment performed at step S211, the image obtained at step S217 is expected to include reduced levels of intensity fluctuation as compared with an image obtained where there is an equal drive current supplied to each of the LEDs 50. However, it will be appreciated that there is likely to still be some intensity deviation across the image. The captured intensity distribution IM.sub.BG_NO_RIBBON is stored, and may be referred to as a background intensity distribution, or alternatively, a background spatial distribution of radiation intensity.
(190) When it is detected that a cassette holding ribbon is inserted into the printer, processing passes to step S218, where the LEDs 50 are driven at the corrected nominal drive intensity LED.sub.CORRECT_NOMINAL. All of the LEDs are driven simultaneously.
(191) Processing then passes to step S219 where a further full width intensity distribution IM.sub.RIBBON is captured from the image sensor 60 and stored. The captured data comprises a data item indicative of the radiation intensity incident upon each of the 256 pixels.
(192) Processing then passes to step S220 where it is determined, from the ribbon intensity distribution IM.sub.RIBBON, if ribbon is present at each region within the image. The presence or absence of ribbon may, for example be detected by applying a threshold level to the ribbon intensity distribution IM.sub.RIBBON. Alternatively, an edge detection algorithm may be applied to the ribbon intensity distribution IM.sub.RIBBON to identify any ribbon edges.
(193) As noted above with reference to the background intensity distribution IM.sub.BG_NO_RIBBON. It is expected that there will be some intensity deviation across the image. However, it will also be appreciated that the presence of ribbon at the imaging location L.sub.I will cause the radiation intensity to be reduced in some regions. The optical transmittance of the ribbon 2 at the imaging location will result in amount of radiation incident upon the detector being reduced in comparison to the amount if no ribbon were present. However, where there is no ribbon present, the optical intensity upon the detector will be high (e.g. approximately 90% of maximum sensor output signal levels).
(194) In addition to the significant differences in image intensity due to the presence or absence of ribbon at each location of the imaging location L.sub.I, there will also be a more subtle variation in the image intensity as a result of the non-ideal behaviour of the emitters and detectors, and other factors such as alignment. The obtained intensity distribution IM.sub.RIBBON will thus contain intensity fluctuations within a first part associated with the areas of ribbon, and also within a second part (or parts) where the radiation is not blocked by ribbon.
(195) In the first part, the intensity recorded with ribbon present is processed at step S221 to generate background intensity distribution IM.sub.BG to replace that obtained during step S217. It will be understood that while the background intensity distribution IM.sub.BG_NO_RIBBON provides useful information regarding the relative difference between the brightness of different image regions, no account is taken of the type of ribbon actually installed in the printer. For example, depending on the type and/or colour of ribbon installed, there may be significant variations in transmittance.
(196) Thus, by using data extracted from the intensity distribution IM.sub.RIBBON (rather than IM-BG_NO_RIBBON), it is possible to generate improved background data which takes into account both non-ideal system behaviour and ribbon transmittance characteristics. Thus, for the first part, where ribbon is present, the relevant pixels of the intensity distribution IM.sub.BG are populated with data extracted from the intensity distribution IM.sub.RIBBON. In an embodiment, the value stored in each of the pixels of the intensity distribution IM.sub.BG_NO_RIBBON corresponding to a location where ribbon is present is replaced by the value stored in the corresponding pixels of the intensity distribution IM.sub.RIBBON.
(197) In an alternative embodiment, the value stored in each of the pixels of the intensity distribution IM.sub.BG_NO_RIBBON corresponding to a location where ribbon is present is scaled by a scaling factor determined to cause the scaled value to be equal to the value stored in the corresponding pixels of the intensity distribution IM.sub.RIBBON.
(198) Given that the ribbon is generally not as wide as the imaged width at the imaging location L.sub.I, no improved background data will exist for parts where no ribbon is present. As such, improved background data for the regions where ribbon is not present is generated at a further processing step S222 based upon the ribbon intensity distribution IM.sub.RIBBON obtained at step S219, and the background intensity distribution obtained with no ribbon present IM.sub.BG_NO_RIBBON at step S217 to provide appropriate background data for the locations where ribbon is not present.
(199) In particular, to populate the relevant pixels of the improved background intensity distribution IM.sub.BG (i.e. those pixels corresponding to locations where ribbon is not present), the corresponding pixels of the ribbon intensity distribution IM.sub.RIBBON are scaled by an amount equal to the average adjustment applied at step S221 to the pixels where ribbon is present.
(200) In this way, the pixels of the improved background intensity distribution IM.sub.BG corresponding to locations where ribbon is not present are populated with values which take into account both non-ideal system behaviour, and expected ribbon transmittance characteristics.
(201)
(202) A second line shows the ribbon intensity distribution IM.sub.RIBBON captured at step S219. It can be seen that in the centre part of the image (i.e. where ribbon is present), the intensity is around 35-45%, whereas at the image edges (i.e. where no ribbon is present), the intensity is around 80-90%. However, across the image, the same characteristic noise profile as seen in the background intensity distribution obtained with no ribbon present IM.sub.BG_NO_RIBBON is observed.
(203) Finally, a third line shows the improved background intensity distribution IM.sub.BG. Where ribbon is present, this is simply the same as the ribbon intensity distribution IM.sub.RIBBON. However, at the image edges, where no ribbon is present, the ribbon intensity distribution IM.sub.RIBBON has been scaled such the intensity distribution IM.sub.BG is at approximately the same level across the width of the image, with the noise profile seen in IM.sub.BG_NO_RIBBON still present.
(204) Of course, alternative adjustments having a similar effect may be made. For example, the parts of the intensity distribution IM.sub.BG_NO_RIBBON where ribbon is not present may be scaled (while retaining the relative differences between pixels) such that the average value of those pixels is equal to the average intensity value in the regions of the ribbon intensity distribution IM.sub.RIBBON where ribbon is present.
(205) In this way, background intensity distribution IM.sub.BG is generated for the full width of the imaging location L.sub.I based upon the background intensity distribution obtained with no ribbon present IM.sub.BG_NO_RIBBON and the intensity distribution obtained with ribbon present IM.sub.RIBBON.
(206) While the data generated for parts where no ribbon is present may not precisely match the data that would have been obtained if ribbon were present, it is considered to provide a sufficiently reliable indication of the expected intensity when ribbon is present to allow appropriate image compensation to be performed if the ribbon position moves during subsequent imaging operations.
(207) It will be appreciated that various additional or alternative processing steps may be performed, or that processing steps described above may be omitted. For example, in an embodiment, in an additional processing step may be performed between stages N2 and N3 in which all LEDs are driven at the corrected nominal intensity LED.sub.CORRECT_NOMINAL. Then, image data may be obtained from the camera 15 and a further adjustment may be made to the LED drive intensities to avoid over or under exposure of particular sensor regions (and thus parts of ribbon). For example, any image data obtained which indicates that intensity saturation is occurring (e.g. a completely flat, and maximum intensity level) can be used to reduce the intensity of LEDs corresponding to that region of the sensor. On the other hand, if the image data obtained indicates that the intensity fails to approach the maximum intensity level, this information can be used to increase the intensity of LEDs corresponding to that region of the sensor. Such processing may reduce data loss (for example by overexposure) or image bleeding (where data from one pixel bleeds into an adjacent pixel).
(208) The processing described above is primarily concerned with image intensity adjustments to compensate for non-uniformities in the sensor and emitter configuration, and differences between transmittance of different ribbons. Moreover, the processing described makes use of one-dimensional data arrays captured by a one-dimensional sensor.
(209) However, in operation, the camera 15 is intended to provide two-dimensional imaging, so as to allow captured image data to be compared with intended printed image data, thereby allowing printing quality to be assessed. Thus, further processing may be performed in order to accurately calibrate the length, width, and/or position of captured image data, so as to allow for proper image registration, and thus region by region image comparison. When two-dimensional images are captured from the camera, a one-dimensional line scan (i.e. a one-dimensional distribution of radiation intensity) is captured each time the ribbon is determined to have moved by an amount which corresponds to the size of one pixel in an imaging direction. A two-dimensional image is built by assembling a plurality of one-dimensional image array, or image slices, each image slice being associated with a particular region of ribbon.
(210) However, it will be appreciated that the capture of a two-dimensional image by a one-dimensional sensor requires an effective pixel dimension to be determined in the imaging direction. That is, the one-dimensional array has a length in a direction perpendicular to the ribbon travel direction, with each pixel representing a region which is a proportion of that length. However, while it may be assumed that each pixel is square, unless the ribbon transport past the imaging location is accurately controlled, and that control calibrated, it may be that the effective length of each pixel in the direction of ribbon transport (i.e. not the imaging direction) is different from that in the direction in which the sensor extends.
(211) Moreover, if equivalent image regions are to be compared between captured images and expected data, it is important for the relationship between the size of each imaged pixel and corresponding regions of the expected image to be known. It may be preferable for the pixels in the compared images to have a similar size. In practice the region of ribbon corresponding to each of the captured pixels in a two-dimensional image may be substantially square.
(212) A process by which the camera is calibrated for this purpose is now described with reference to
(213) During the printing of the pattern P.sub.CAL, the ribbon is advanced past the printing location L.sub.P so as to move the ribbon 2 past the printhead 11, which remains stationary. The substrate 12 is also advanced past the printhead 11. During this movement, the number of pulses moved by the encoder associated with the take up spool motor 7 is monitored continually.
(214) As the ribbon is advanced the camera 15 continually captures images of each portion of ribbon at the imaging location L.sub.I. The captured images are monitored for the leading edge of the negative image of the calibration pattern P.sub.CAL on the ribbon at the imaging location L.sub.I. If the edge is not detected, more ribbon is advanced past the camera 15 (and the printhead 11).
(215) Once the leading edge is detected by the camera 15, processing passes to step S301 where the distance moved by the ribbon between the printing location L.sub.P and the imaging location L.sub.I is determined.
(216) In particular, the number of pulses moved by the take-up spool encoder 35 during the movement of the ribbon (both during and after the printing of the calibration pattern P.sub.CAL) is first converted to a corresponding angular movement of the take-up spool motor shaft 7a (based upon the known characteristics of the encoder 35). The angular movement is then converted, by reference to the known diameter of the take-up spool 5, into a linear distance of ribbon moved. Of course, this linear distance may be determined in any convenient way, such as, for example, directly based upon a known relationship between the encoder pulses and linear distance moved by the ribbon at the current spool diameter.
(217) In this way, the distance moved by the ribbon between the printing location L.sub.P and the imaging location L.sub.I is determined. As noted above, this distance may be referred to as an imaging distance D.sub.I. The imaging distance D.sub.I may not correspond to a straight-line distance within the printer 1. Rather, the distance D.sub.I is indicative of a linear distance travelled by the ribbon between the printing location L.sub.P and the imaging location L.sub.I.
(218) It will, of course, be understood that during intermittent printing, this distance changes during operation as the printhead is scanned along the length of an image. Further, even in continuous printing the distance is subject to changes in configuration (e.g. changes in the position of the printhead in the ribbon movement direction). However, the distance D.sub.I determined as described above may be used as a reference distance. In subsequent processing, the offset between the current printhead position and the printhead position when the distance D.sub.I was determined can be used to allow the distance between current printhead position and the imaging location L.sub.I to be known at that time, for example to enable accurate ribbon tracking and image registration.
(219) Processing then passes to step S302 where ribbon is advanced by a further distance (which may, for example, correspond to at least the known length L.sub.CAL of the calibration pattern P.sub.CAL). During this ribbon advance, the camera continues to obtain images of the ribbon at the imaging location L.sub.I, the images being combined into a captured calibration image IM.sub.CAL_CAPTURE.
(220) Processing then passes to step S303, where apparent width W.sub.CAL_APPARENT of the calibration pattern P.sub.CAL is determined. That is, the image data captured by the camera 15 at step S302 is processed to determine the apparent width W.sub.CAL_APPARENT of the calibration pattern P.sub.CAL in a direction perpendicular to the direction of ribbon movement past the printhead 11. The location of the calibration pattern P.sub.CAL may also be determined. That is, the image data captured by the camera 15 at step S302 may be processed to determine an apparent position of the calibration pattern P.sub.CAL in a direction perpendicular to the direction of ribbon movement past the printhead 11.
(221) The apparent width W.sub.CAL_APPARENT is determined by reference to the number of image pixels which the image of the calibration pattern P.sub.CAL covers. The pattern edges may be detected by identifying a block of contiguous ink which has been removed (thus causing more radiation to be transmitted in that region) close to the expected position of the calibration pattern P.sub.CAL on the ribbon (based upon the known ribbon width and known position parameters). A predetermined portion of the captured calibration image IM.sub.CAP_CAPTURE may be processed to determine the apparent width W.sub.CAL_APPARENT. For example, an image line after the beginning of the image may be used (e.g. a 6.sup.th line of the image after the leading edge was detected). Alternatively, an average position across a plurality of imaging lines may be used.
(222) It will be understood that the focusing optics (i.e. lens assembly 61), and vertical separation (as seen in
(223) Thus, processing passes to step S304 where an image scaling factor IM.sub.SCALE is generated. The image scaling factor IM.sub.SCALE is generated based upon the ratio between the known width W.sub.CAL of the calibration pattern P.sub.CAL and the apparent width W.sub.CAL_APPARENT determined at step S303.
(224) The scaling factor IM.sub.SCALE allows captured images to be compared to equivalently sized expected images which are generated based upon the printing data. Of course, given the system geometry factors described above, one of the images must be scaled so as to ‘fit’ the other. The scaling factor IM.sub.SCALE is stored and used in subsequent image processing steps.
(225) A second scaling factor may be generated based upon the ratio between the known length L.sub.CAL of the calibration pattern P.sub.CAL and an apparent length L.sub.CAL_APPARENT of the same pattern. The apparent length L.sub.CALAPPARENT is the distance moved by the ribbon in a time window between the moment when the leading edge of the calibration pattern P.sub.CAL is detected by the camera and the moment the trailing edge of the calibration pattern P.sub.CAL is detected by the camera.
(226) Similar to the determination of the imaging distance D.sub.I, the number of pulses moved by the take-up spool encoder 35 during the time window is first converted to a corresponding angular movement of the take-up spool motor shaft 7a (based upon the known characteristics of the encoder 35). The angular movement is then converted, by reference to the known diameter of the take-up spool 5, into a linear distance of ribbon moved so as to determine the apparent length L.sub.CAL_APPARENT. Of course, this apparent length L.sub.CAL_APPARENT may be determined in any convenient way, such as, for example, directly based upon a known relationship between the encoder pulses and linear distance moved by the ribbon at the current spool diameter.
(227) The second scaling factor allows the captured images to be compared to equivalently sized expected images along the ribbon movement direction D. It has been found that the friction between the printhead and the ribbon during printing may drag the ribbon along a direction opposite to the ribbon movement direction D, such that the length of the ribbon used for printing may be slightly shorter than the length of the printed image. For example, if the length of the printed image (and thus the nominal expected negative image on the ribbon) is 70 mm, the length of the actual negative image on the ribbon may be around 69 mm. As such, the size of the expected negative image on the ribbon may be adjusted by the second scaling factor to compensate for this effect. As noted above, this effect may be taken into account by the ribbon transport system to avoid unnecessary wastage of ribbon.
(228) It has also been found that the extent of the stretch may vary in dependence upon the print speed. For example, the extent of the stretch may increase with increasing print speed. This may result from the printhead tending to apply a larger dragging force to the ribbon at higher print speeds than at lower print speeds. The second scaling factor allows the stretching deformation of the ribbon to be compensated for, thereby allowing the captured images to be more accurately registered to the expected images.
(229) Adjustments to the second scaling factor to account for speed may be determined empirically and appropriate scaling factor adjustment values stored in a lookup table in a memory associated with the controller 10. For example, scaling factor adjustment values may be established during laboratory testing, and an appropriate one of the stored values accessed during operation based upon the print speed. Of course, it will be understood that alternative techniques may be used. For example, a small number of adjustment values may be stored and intermediate values determined by interpolation. Alternatively, or additionally, the scaling factor value may be determined and adjusted based upon the apparent length L.sub.CAL_APPARENT of a calibration pattern as described above, with a calibration pattern being printed at an appropriate speed.
(230) Processing performed at step S304 also generates data indicative of a relative position of the image of the calibration pattern P.sub.CAL with respect to an expected position within the full image width. In particular, an image position IM.sub.POSITION is generated which indicates a relative position of the calibration pattern P.sub.CAL. The image position IM.sub.POSITION may, for example, indicate the distance of a feature (e.g. an edge) the calibration pattern P.sub.CAL from the edge of the captured image. Alternatively, the image position IM.sub.POSITION may, for example, indicate a deviation of the distance of a feature (e.g. an edge) the calibration pattern P.sub.CAL from an expected position from the edge of the captured image (e.g. ±a number of image pixels).
(231) Although
(232) Alternatively, the calibration pattern may be modified based upon knowledge of defective printing elements. In a further alternative, adjustments may be made to the expected capture image based upon knowledge of any defective printing elements.
(233) Generally speaking, it will be understood that the calibration pattern may comprise a plurality of features, which may be discontinuous. For example, the pattern may comprise several printed sub-regions which are separated by regions of non-printed ribbon (whether intentionally arranged that way, or caused by defective printing elements).
(234) It will further be appreciated that since the ribbon width is generally smaller than the width of the light source 16, light tends to leak around edges of ribbon 2. This can lead to difficulties in accurately imaging the calibration pattern P.sub.CAL on the ribbon. For example, leaked light may saturate the sensor with light, making accurate determination of features of the calibration pattern P.sub.CAL difficult.
(235) In some embodiments, a first total expected light level received at the sensor 60 may be determined based upon the ribbon width for a situation where there has been no printing performed using the imaged section of ribbon (i.e. ink is present across the full ribbon width). The first total expected light level may include regions where light passes around the sides of the ribbon (e.g. where the ribbon is narrower than the light source 16 and/or sensor 60). A second total expected light level received at the sensor 60 may be determined based upon the ribbon width for a situation where a known pattern (e.g. the calibration pattern) has been printed using the imaged section of ribbon (i.e. ink is present across only some of the full ribbon width). The second total expected light level may also include regions where light passes around the sides of the ribbon (e.g. where the ribbon is narrower than the light source 16 and/or sensor 60). It will be understood that the second total expected light level will typically be higher than the first total expected light level. A threshold level may be determined based on the first and second expected light level values. The threshold level may then be used to identify the position of the leading edge of the calibration pattern P.sub.CAL in the direction of ribbon movement. Thus, rather than examining precisely the region of ribbon in which the calibration pattern P.sub.CAL is expected to appear, this technique allows an aggregate or total received light level to be used to identify approximately where the calibration pattern P.sub.CAL is located on the ribbon as the ribbon is transported past the sensor 60.
(236) The calibration and normalisation processes described above may be performed each time any configuration change is made, so as to ensure that any changes are properly reflected in the calibration settings. For example, each time the ribbon cassette is removed it is possible to obtain new background intensity distribution IM.sub.BG_NO_RIBBON.
(237) However, it has been observed that in some circumstances, when a cassette has been removed, various items may obstruct the radiation path between the light source 16 and the camera 15. For example, a user may try to clean the surface of the light source 16 so as to remove debris (e.g. ink flakes). Alternatively, a ribbon cassette may be only partially removed/installed (i.e. not sufficiently installed to trigger a ribbon installation detector, but sufficiently installed that ribbon obstructs part of the radiation path).
(238) Thus, when the ribbon cassette is removed, the normalisation routine (i.e. steps S200 to S222 described above with reference to
(239) This check is now described with reference to
(240) The obtained intensity distribution ID1 is then processed at step S403 to generate an average intensity value indicative of the average intensity upon the active areas of the sensor 60. For example, the first and last eight pixels of the sensor may be disregarded for this process, on the basis that they may be partially blocked by mechanical arrangements, and therefore may receive less radiation than other regions of the sensor.
(241) Processing then passes to step S404, where it is determined if the average intensity value satisfies a predetermined criterion. In an embodiment the average intensity value is compared to a threshold, such as, for example one third of the maximum intensity value. If the average value exceeds this threshold, processing passes to step S405.
(242) At step S405 the obtained intensity data is processed to determine how many (if any) pixels appear to be blocked within the active region (i.e. excluding the peripheral pixels). Such a determination may be made by simply applying a brightness threshold of, for example, two thirds of the nominal intensity (nominal intensity being, for example 230/255 of the maximum intensity). Any pixel having an intensity below this threshold is considered to be obscured, while any pixel above this is considered to be un-obscured. Data indicative of the obscured or un-obscured nature of each pixel is then processed at step S406 to determine if there are fewer than a minimum number of obscured pixels (e.g. four).
(243) If there are fewer than the minimum number of obscured pixels, processing passes to step S407, where the sensor is indicated as being in good working order, and the testing process terminates. The normalisation process described above with reference to
(244) However, if there are four or more obscured pixels, processing passes to step S408, where, a maximum number of contiguous obscured pixels is determined. Processing then passes to step S409.
(245) At step S409, a highest ratio between the obscured pixels and good pixels is determined. This ratio may, for example, be determined by considering pixels one by one from the cassette end of the image (i.e. the end furthest from the baseplate 16). Only the portion of the image relating to the expected ribbon width is considered (e.g. where a 30 mm ribbon is used, with an imaging width of around 63 mm, around half of the image is considered only). As each pixel is considered in turn, a ratio is kept of good pixels (i.e. over the two-thirds nominal brightness) to obscured pixels. In order to prevent a small number of pixels at the image edge from distorting the output, the ratio, the maximum ratio is only considered once 24 pixels (or around 6 mm of sensor width) have been considered. Thereafter, the process continues to consider each of the remaining pixels (until the currently configured ribbon width is reached), and the ratio is calculated after each pixel has been considered. Once the currently configured ribbon width is reached, the maximum ratio is recorded.
(246) Processing then passes to step S410, where it is determined if the maximum number of contiguous obscured pixels (as determined at step S408) is greater than a threshold (e.g. 21 pixels, equivalent to around 5 mm), or if the maximum ratio (as determined at step S409) is greater than a further threshold (e.g. 33%). If either of these is yes, processing passes to step S411, where the sensor is indicated as being obstructed.
(247) If neither of these thresholds are met, processing passes to step S412 where the sensor is indicated as being dirty. Processing proceeds from step S412 to step S413 where it is determined if there have been three consecutive ‘dirty’ results. If no, processing passes to step S414, where a short delay (e.g. ⅓ second) is inserted, before processing returns to step S402, and the process described above is repeated.
(248) On the other hand, if there have been three or more consecutive dirty readings, processing passes to step S415, where a ‘dirty sensor’ warning is generated for a user. The warning may, for example, be an on-screen warning and/or an audible warning. Processing then proceeds to step S416 where a delay of two seconds is inserted (e.g. to allow a user to clean the sensor) before processing again returns to step S402, and the process described above is repeated.
(249) The processing described above is configured to identify blockages that might be caused by printed or un-printed ribbon being present in front of the sensor (e.g. due to a partially removed cassette). Un-printed ribbon being present may result in a large number of contiguous obscured pixels (e.g. greater than 5 mm blocks) or a low average intensity. The processing described may also identify printed ribbon being present in front of the sensor. For example, printed ribbon may be expected to have less than 33% of pixels used, and would thus result in an average obscured ratio of around 67%. However, this ratio may be lower in some regions (as print will not be uniformly distributed). Hence a threshold of 33% provides some margin of error. It is noted that the threshold is selected so as to prevent dirt being detected as printed ribbon. Dirt is expected to accumulate gradually, and therefore would take considerable time to trigger the 33% threshold.
(250) When the average intensity is determined to be too low at step S404, processing also passes to step S411, and the sensor is indicated as being obstructed. At step S411 (which may be reached from either of steps S404 or S410), processing passes to step S416 where a delay of two seconds is inserted (e.g. to allow a user to clear the obstruction) before processing returns to step S402, and the process described above is repeated.
(251) This processing continues until either a good sensor result is determined (i.e. step S407) or the cassette is re-inserted into the printer.
(252) It will be understood that a contiguous block of a large number of obscured pixels at the centre of the image may be considered to be indicative of a large and temporary blockage (e.g. an operator's finger, or cleaning apparatus). Similarly, a contiguous block of a large number of obscured pixels adjacent to the side of the sensor which corresponds to the outward facing side of the printer may be considered to be indicative of a partially removed (or partially replaced) ribbon cassette. If either of these categories (or other similar categories of fault) is detected, the normalisation routine cannot be properly conducted. Therefore, the processing at steps S403, S408 or S409 allow these scenarios to be identified at one of steps S404 or S410.
(253) On the other hand, if the obscured pixels are considered to be indicative of dirt on the light source or the sensor, it may be possible for this dirt to be removed by cleaning. For example, if a small number (although greater than four in the above example) of obscured pixels are identified, and are distributed across the image, it is considered likely that these obstructions are dirt (e.g. flakes of ink or particles of dust) that have fallen and settled on the light source 16. If so, and if repeated tests produce the same indication, a user warning may be generated. It has been realised that while it may be possible for accumulations of dirt to form which do obstruct a large number of pixels, such accumulations take time, and are not likely not have formed between the times at which ribbon is removed and the re-normalisation routine is run.
(254) Thus, while any large obstruction is likely to be caused by some other mechanical blockage, which will need to be removed before continued operation of the printer, small and distributed blockages may indicate dirt, which will impair the imaging performance (although may still allow the device to operate). Such blockages, if left uncleaned, will gradually accumulate until imaging is no longer possible. As such, by prompting a user to clean the light source, it is possible to maintain reliable imaging performance for an extended period of time.
(255) The processing described above allows the normalisation process described with reference to
(256) Once suitable intensity normalisation and image calibration have been performed, it is possible to obtain high quality images form the ribbon negatives, and to compare these to expected image data, so as to generate print quality data. A process by which the image data and comparison procedures are carried out is now described with reference to
(257) When each image is printed by the printer 1, image data used to energise the print head (absent any correction which may be applied to compensate for printing history or printhead temperature) is used to generated an expected image IM.sub.EXP1, which is stored in a memory location at processing step S500.
(258) Processing then passes to step S501, where the resolution of the expected image IM.sub.EXP1 is adjusted to form a reduced resolution expected image IM.sub.EXP2 that has a resolution corresponding to the resolution of the camera 15 (e.g. 256 pixels across the full width of an image). The processing at step S501 may be triggered by an image of the region of ribbon corresponding the to the print operation being captured by the camera 15 (as described below with reference to step S504). When the image has been captured, the expected image IM.sub.EXP1 may be retrieved from a memory location. In this way, processing can be performed on the captured image data and expected image data in parallel.
(259) It will be understood that the image length and width may vary depending on the nature of the images being printed. The print data resolution may, for example be around 12 dots per mm across a 53 mm printed image width, resulting in up to around 640 pixels in total across the image width. However, in many cases, the reduced resolution expected image IM.sub.EXP2 will not contain data corresponding to a full ribbon width. A printed image may, for example, only be 10 mm wide (i.e. around 118 printed pixels, or around 47 image pixels).
(260) Thus, in conversion to the reduced resolution expected image IM.sub.EXP2, each of the reduced resolution pixels is generated based upon approximately 2.5 expected image pixels in each direction. Such a conversion may be carried out by generating a greyscale image from the corresponding binary print data.
(261) Processing then passes to step S502, where the reduced resolution expected image IM.sub.EXP2 is adjusted so as to scale and position the expected image such that the image dimensions correspond to that of the data captured from the camera 15.
(262) In particular, for each image line, background intensity distribution IM.sub.BG (as generated at steps S221 and S222) is inserted until the expected image start position IM.sub.POSITION is reached. From that pixel location, the content of each pixel of IM.sub.EXP2 is adjusted by scaling factor IM.sub.SCALE such that it corresponds to an expected equivalent pixel of the captured image. It will be understood that this will likely require data for each pixel of the IM.sub.EXP2 image to be mapped across adjacent pixels. The scaling factor may, for example be around 0.86, such that for each eight pixels of the image IM.sub.EXP2 approximately seven new pixels will be generated.
(263) It will be appreciated that the expected image start position IM.sub.POSITION (i.e. a position of the image in a direction perpendicular to the direction of ribbon movement past the printhead 11 and the camera 15) may vary over time. As such, whereas the expected image start position IM.sub.POSITION may be determined during a calibration routine as described above, this position may be adjusted during ongoing printing operations. For example, the expected image start position IM.sub.POSITION may be adjusted before printing each image of a print job. This approach allows the image processing techniques described herein to accommodate ribbon drift across the printhead 11.
(264) Such an adjustment may be made by analysing the last printed image (or a recently printed image) and identifying a positional shift. Such a shift may be identified, for example, by checking if both detected edges of the printed image have moved relative to expected position by same amount in the same direction. Such a determination will reject or at least minimise any effects caused by poor printing. The determined offset may then be used to modify the image start position IM.sub.POSITION as determined during calibration (as described above). In this way, it is possible to adjust the position of the expected image data to correspond to the actual image position taking into account any ribbon drift which has occurred since calibration during printing operations.
(265) Once the expected image data IM.sub.EXP2 has been inserted into each image line, the line is filled with data derived from the background intensity distribution IM.sub.BG as required so as to provide a full image line (i.e. 256 pixels of image data). Finally, where ribbon edges have been detected, any image data (i.e. ones of the 256 pixels outside of the detected ribbon edges) are set to zero values (rather than the background intensity distribution IM.sub.BG or image data), on the basis that if there is no ribbon present, there will be a high brightness signal. That is, zero intensity signal will correspond to a region in which no ribbon is present, whereas a low intensity signal will indicate that ribbon is present, but that no ink has been transferred to the substrate. On the other hand, a high intensity signal, will indicate that ink has been transferred to the substrate.
(266) In this way, each line of expected image data is shifted, scaled and packed out so as to generate a respective line of a scaled and re-positioned image IM.sub.EXP3, which corresponds, pixel for pixel, to a line of a captured image.
(267) Performing scaling and re-positioning in this way provides a robust method of printing fault detection. In particular, it has been realised that by applying scaling and re-positioning to the expected image data, rather than the captured image data it is possible preserve more of the detail in the capture image, without risk that that data becomes compromised. That is, the captured image data is inherently noisy, and may be the limiting factor in the ability to determine print quality. Any scaling or re-positioning of the captured image data may cause errors in the captured data, as features of the image are mapped from one pixel size or location to another.
(268) Processing then passes to step S503, where the resolution of the scaled and re-positioned image IM.sub.EXP3 is again adjusted to form a reduced resolution intensity adjusted expected image IM.sub.EXP4 that has a convenient resolution for subsequent processing. For example the reduced resolution intensity adjusted expected image IM.sub.EXP4 may have a resulting providing a full image width of 63 pixels.
(269) In generating the reduced resolution intensity adjusted expected image IM.sub.EXP4 having a width of 63 pixels, each of the 63 pixels in each row of the image is generated based upon 8 pixels in each direction (64 pixels in total), with each one of the new 63 pixels overlapping with the adjacent new pixel by 50%. Further, each pixel is based upon a weighted average of the intensity of the 64 pixels around the new pixel location. For example, in an embodiment the central 2×2 pixels are each weighted at 100%, while the ring of pixels immediately surrounding this 2×2 block are weighted at 60% (12 pixels). A next ring of pixels around the central 4×4 block are weighted at 20% (20 pixels). A final ring of pixels around the central 6×6 block are weighted at 10% (28 pixels). The newly generated pixel value is then scaled, such that the overall intensity remains constant (i.e. if all 64 pixels are at maximum intensity, the newly generated pixel will also be at maximum intensity).
(270) It will be understood that each pixel of the original image will contribute to several new pixels. For example, each of the central four pixels (i.e. those pixels in the central 2×2 block of pixels of the original image), will contribute at 100% weighting to the new pixel centred on that region, and will also contribute at 10% weighting to each of several new pixels immediately adjacent to the new pixel. Of course, different weighting distributions may be used as required.
(271) Each pixel of reduced resolution intensity adjusted expected image IM.sub.EXP4 thus comprises a greyscale value indicative of the weighted average intensity of 64 pixels of the intensity adjusted expected image IM.sub.EXP3. Moreover, each pixel includes contributions from overlapping areas.
(272) This additional reduction in resolution provides a degree on insensitivity to alignment errors. It has been realised that while such processing may cause a loss in detail (i.e. as image features become blurred), it may improve the ability to compare equivalent parts of the expected image data and the captured image data, especially where the ribbon position with respect to the camera in a direction perpendicular to ribbon movement has changed slightly during operation. Similarly, the expected and captured image positions may vary with respect to each other in the direction of ribbon movement due to inaccurate ribbon control, for example due to eccentricities in the ribbon spools. Thus, by blurring the images across several pixels, it is possible to examine the correspondence, on average, of each region of the images. The extent to which the resolution is reduced at this stage is a compromise between, on the one hand, a desire to reduce sensitivity to tracking errors, and on the other, a desire to maintain sufficient image detail.
(273) In parallel to the processing described above, at step S504 data is captured by the camera 15 as the ribbon advances past the imaging location L.sub.I. A series of one-dimensional line scans are captured and assembled into a two-dimensional image IM.sub.CAPT1 of the region of ribbon used to print a single image on the substrate.
(274) As described above, a one-dimensional line scan (i.e. a spatial distribution of intensity) is captured each time the ribbon is determined to have moved by an amount which corresponds to the size of one pixel in the imaging direction. That is, for an imaging system having an image width of 63 mm at the imaging location L.sub.I, and comprising 256 pixels, each pixel represents approximately 0.25 mm of ribbon in the direction extending perpendicular to the direction of ribbon travel. However, given the known scaling relationship between the camera and the imaging location, in order to provide approximately square captured pixels, a new image is captured each time the ribbon is advanced by a distance of approximately 0.208 mm.
(275) This advance of ribbon is determined by the take-up spool encoder, which, in an embodiment, provides 4096 pulses for every full revolution. In fact, by operating the encoder in quadrature mode, 16384 steps may be provided per revolution, each quadrature step being equivalent to approximately 0.022 degrees of angular rotation (which corresponds to a ribbon advance of between approximately 0.006 mm and 0.02 mm depending on the spool diameter). A similar image is captured and stored for each printing operation. The stored images are each associated with a region of ribbon, as described in more detail below.
(276) Of course, it will be appreciated that ribbon advance distance which corresponds to a pixel may be varied in some circumstances. For example, as noted above, the ribbon may become stretched during printing, resulting in a negative image on the ribbon being slightly smaller than the printed image. Moreover, the extent to which a region of ribbon is stretched during printing may vary in dependence upon various printing parameters, such as, for example, printing pressure, print speed, and/or characteristics of the ribbon and substrate.
(277) Processing then passes to step S505 where each pixel of the captured image IM.sub.CAPT1 is adjusted to generate an intensity adjusted captured image IM.sub.CAPT2 by scaling each pixel intensity by the corresponding IM.sub.NORM value (as generated at step S315). This ensures that each pixel should, on average, have approximately the same intensity (subject to any features detected from the ribbon).
(278) Processing then passes to step S506 where edges of the ribbon in the normalised captured image IM.sub.CAPT2 are identified. This edge detection may, for example, be performed by analysing the region of each image where the ribbon edges are expected to be, and identifying the pixel position close to that location at which an abrupt change in image intensity is observed. The edge detection process may be performed for each image line. The output of this process is passed to step S502, where the actual ribbon location is used to construct and position the expected image.
(279) Processing then passes to step S507, where the resolution of the normalised captured image IM.sub.CAPT2 is adjusted to form a reduced resolution captured image IM.sub.CAPT3 that has a convenient resolution for subsequent processing, and the same as the resolution of the reduced resolution image IM.sub.EXP4 generated at step S503. For example the reduced resolution captured image IM.sub.CAPT3 may have a resolution resulting in there being 63 pixels defining a width of the image (rather than 256 pixels).
(280) In generating the reduced resolution captured image IM.sub.CAPT3 having a width of 63 pixels, each of the 63 pixels in each row of the image is generated based upon 8 pixels in each direction (64 pixels in total), as described above with reference to step S503. Each pixel of the reduced resolution captured image IM.sub.CAPT3 thus comprises a greyscale value indicative of the (weighted) average intensity of 16 pixels of the captured image IM.sub.CAPT2.
(281) In parallel to the processing described above with reference to steps S500 to S503, and S504 to S507, a further process is performed at step S508 to generate a background only image. This image IM.sub.BG1 is based upon the one-dimensional background intensity distribution IM.sub.BG, but extended to form an image having the same length as each of IM.sub.CAPT3 and IM.sub.EXP4. Moreover, in the background image IM.sub.BG1, data outside of the detected ribbon edges (as detected at step S506), is set to zero.
(282) This background image IM.sub.BG1 is resolution adjusted at step S509 to generate a resolution adjusted background image IM.sub.BG2 which has a resolution equal to that of each of IM.sub.CAPT3 and IM.sub.EXP4, by a similar process to that described above with reference to steps S503 and S507.
(283) Processing then passes from each of steps S503, S507 and S509 to step S510, where the reduced resolution captured image IM.sub.CAPT3 and the reduced resolution expected image IM.sub.EXP4 are compared to one another. The processing described above results in images having the same number of pixels, and relating to the same area of ribbon. Moreover, the use of the intensity adjustment processes described above mean that the images IM.sub.CAPT3 and IM.sub.EXP4 should, if printing is performed correctly, closely resemble one another.
(284) At step S510 the comparison performed generates output truth data IM.sub.TRUTH, which comprises an image having the same dimensions as each of IM.sub.CAPT3 and IM.sub.EXP4, and in which each pixel corresponds to the difference in data values between corresponding pixels in IM.sub.CAPT3 and IM.sub.EXP4. In this way, the truth data IM.sub.TRUTH provides an indication of how close each imaged pixel is to the expected output. The truth data IM.sub.TRUTH may be referred to as an error map.
(285) For example, the captured image IM.sub.CAPT3 may be subtracted from the expected image IM.sub.EXP4. The truth data IM.sub.TRUTH may be thus have positive and negative values, the positive values being indicative of less ink being removed from the ribbon than expected, and that the captured image IM.sub.CAPT3 is lighter than the expected image IM.sub.EXP4 (where high values indicate a darker pixel). On the other hand, negative values in the difference indicate that more ink has been removed from the ribbon than expected, and that the captured image IM.sub.CAPT3 is darker than the expected image IM.sub.EXP4.
(286) Alternatively, in an embodiment, it may be identified that the printing intensity is incorrect in a way which is characteristic of a known printing fault, for example by comparing a sum, average, or integral of one or more regions of the printed image with an equivalent sum, average, or integral of the expected image.
(287) Prior to the comparison at step S510, the background image IM.sub.BG2 may be removed from each of the expected and captured images IM.sub.EXP4 and IM.sub.CAPT3. In this way, the effect of any unprinted regions of the image can be minimised. It will be understood that the background image IM.sub.BG2 can be omitted, but where a small proportion of the ink on an imaged area is printed, the remaining ink can dominate any subsequent processing. Thus, by removing the background image IM.sub.BG2, it is possible to maximise the sensitivity to any deviations in the printed regions.
(288) Processing then passes to step S511, where the resolution of the truth data IM.sub.TRUTH is adjusted to a lower resolution to generate IM.sub.TRUTH_DERES. Each pixel of the reduced resolution truth data IM.sub.TRUTH_DERES comprises a greyscale value indicative of the average intensity of 8×8 pixels of the truth data IM.sub.TRUTH.
(289) Processing then passes to step S512 where the reduced resolution truth data IM.sub.TRUTH_DERES is used to identify various predetermined printing fault conditions. The higher resolution truth data IM.sub.TRUTH is also passed to step S512, allowing some errors to be detected at a higher resolution.
(290) The truth data IM.sub.TRUTH and/or the reduced resolution truth data IM.sub.TRUTH_DERES may each be used to identify various image defects. For example, it may be identified that the printing intensity is incorrect in a way which is characteristic of a known printing fault, for example by comparing a sum, average, or integral of one or more regions of the truth data to reference data, the reference data being indicative of a particular printing fault.
(291) For example, the reduced resolution truth data IM TRUTH may be used to identify that the printhead has overprinted on previously used regions of ribbon, for example due to additional ink being removed at the top or bottom of the image (due to that ink being used for printing a different image). Alternatively or additionally, it may be identified that the printing surface is worn, for example due to one or more light patches (or missing patches) appearing in the image.
(292) On the other hand, the full resolution truth data IM.sub.TRUTH may be used to identify that no image has been printed. Alternatively or additionally, it may be identified that the printhead is misaligned, for example due to printing appearing to be too light on one side of the image. Alternatively or additionally, it may be identified that there are dirty printing elements, for example due to one or more unprinted lines running through the printed image in the direction of ribbon transport. Alternatively or additionally, it may be identified that the ribbon is creased, for example due to one or more unprinted lines running through the image. Alternatively or additionally, it may be identified that the printing darkness setting is incorrect, for example due the printed image being too light or containing smeared characters.
(293) For each of these (or other) identified printing faults, a warning may be generated for a user. It will be understood that some faults may be treated differently than others. For example, a “no image printed” fault may cause the printer to be taken offline, whereas other less severe faults may cause a warning to be generated while allowing operation to continue. Alternatively, a single fault or a small predetermined number of consecutive faults may be permitted before any action is taken.
(294) The processing described above thus allows for print errors to be detected in a robust way, and for the printer to be operated in a way that prevents unprinted items passing the print station un-detected. In addition to the processing described above, various additional techniques may be performed to further improve the imaging reliability (and thus robustness of fault detection). More generally, data indicating the amount of ink removed from the ribbon during a printing operation is used to provide print error detection and reduction.
(295) For example, it will be understood that the ribbon positioning algorithms used to control the ribbon to enable precise printing control are effectively the master ribbon position controllers. As the ribbon is moved, each portion of ribbon is imaged as it passes the imaging location L.sub.I. Thus, for each portion of ribbon that is used to print an image on a substrate at the printing location, an image of that portion of ribbon can subsequently be captured by the camera 15. However, given the ribbon control required for printing, the delay between printing and capture for a particular region of ribbon will depend upon the printing speed, image length and printing frequency. Indeed, at any given point in time, the camera 15 may be imaging a region of ribbon which was used to perform a printing operation several printing cycles previously.
(296) Moreover, it will be understood that, rather than the ribbon being controlled to advance gradually past the imaging location L.sub.I at a uniform rate, allowing a full image to be captured, sub-regions of each printed image may be captured at different times and subsequently re-assembled to form an image of a single print region. For example, an image relating to a single printing operation (i.e. a date code applied to a particular region of a substrate) may be assembled from image data captured during more than one subsequent printing operation.
(297) Thus, for each region of ribbon printed upon and imaged, the controller tracks the progress of that region of ribbon between the printing location L.sub.P and the imaging location L.sub.I. This tracking is performed by a ribbon tracking controller and enables the processing described at step S510 above to compare data relating to equivalent regions of ribbon. The ribbon tracking controller may be a process running on the controller 10. In more detail, for each region of ribbon that is printed upon, the expected image data is tracked as it progresses to the imaging location L.sub.I. Similarly, for each region of ribbon that is imaged at the imaging location L.sub.I the image data is associated with a region of ribbon.
(298) In some embodiments, data indicative of the printhead position (which causes deflection of the ribbon 2) can be provided as an input to the ribbon tracking controller. In a similar manner to that described above with reference to the use of data indicative of the printhead position data PH.sub.POS as an input to the feed correction block 41, the ribbon tracking controller can use the printhead position data PH.sub.POS to modify the apparent offset between the printing location and the imaging location. That is, the calibration process described above with reference to
(299) In particular, during intermittent printing, printhead position data PH.sub.POS may be used to track the movement of the printhead during the printing process and thus account for the changing printing location L.sub.P in subsequent image processing. The provision of accurate printhead position data PH.sub.POS, for example as described above with reference to
(300) During routine operation, the camera 15 may only need to be operated when a region of ribbon upon which a negative image appears is at the imaging location L.sub.I. Thus, rather than capturing image data at all times (and possibly capturing images of un-printed regions of ribbon, and also capturing images of some regions of ribbon several times), the camera may be operated only when required. Such control of the camera may be based upon a ribbon tracking system (which may, for example comprise a process running on the controller 10). As noted above, the ribbon tracking system can use the output of the encoder 36 and the printhead position PH.sub.POS to accurately track the position on the ribbon of each negative image. Thus, during ribbon movement, as the start of each negative image reaches the imaging location L.sub.I capture may commence, with capture stopping when the end of each negative image reaches the imaging location L.sub.I.
(301) It will, of course, be understood that there is no requirement that a complete negative image is captured during a single capture operation. Indeed, it is likely that a complete negative image will be assembled from a plurality of partial captures, each partial capture comprising a plurality of image slices (or intensity distributions). Of course, alternative capture and tracking routines may be used. For example, the camera may be operated at all times, with data stored or discarded based upon a ribbon tracking system.
(302) It will be understood that during some printing operations, especially during continuous printing, it is likely that regions of ribbon which are printed upon will pass the imaging location L.sub.I several times after having been printed upon. For example, as described in more detail above, during a typical printing process in which the substrate is traveling at a constant velocity (i.e. continuous printing), after each printing phase has been completed, the ribbon is decelerated and then driven in the reverse direction so that the used region of the ribbon is on the upstream side of the printhead 11. Then, in a subsequent printing phase, as the next region of the substrate to be printed approaches, the ribbon 2 is accelerated back up to the normal printing speed the ribbon 2 is positioned so that an unused portion of the ribbon 2 close to the previously used region of the ribbon is located between the printhead 11 and the substrate 12 when the printhead 11 is advanced to the printing location L.sub.P.
(303) Thus, depending on the length of each printed image, and the amount of ribbon required to be reversed in each printing cycle, each region of ribbon may pass the imaging location several times. During this movement (as with all ribbon movements), it will be understood that each portion of the ribbon is tracked by the controller.
(304) In some embodiments, however, image data is captured from each region of the ribbon the first time it passes the imaging location L.sub.P. This may be during a phase of the printing cycle where there are significant rates of acceleration or deceleration, and thus significant tension changes and ribbon distortions may be present (as described above with reference to the ribbon feed controller 40). However, it has been realised that it may be beneficial to capture image data from each region of ribbon only during a predetermined phase of the printing cycle. For example, rather than capturing image data during the deceleration phase at the end of a printing cycle (which is likely to be the first time many regions of ribbon pass the imaging location L.sub.I) it may be preferred to capture image data during a constant speed phase.
(305)
(306) In the illustrated example, assuming that a particular portion of ribbon for starts at the printing location (position value 0) at the start of the time period shown, and that it moves according to the speed profile shown, the portion of ribbon in question will move around distance 28 units (by around time 10), before reversing by around 16 units (by around time 18), before advancing a further 28 units (by around time 28), and so on.
(307) However, considering a fixed reference point p.sub.1, which is a fixed distance from the starting location (e.g. 25 distance units), it can be seen that the same region of ribbon passes that point five times during the illustrated profile at times a, b, c, d, and e. At each of times a, c, and e, the ribbon is moving in the forward direction, whereas at times b and d, the ribbon is moving in the reverse direction. Moreover, at times a and b the ribbon is in the deceleration phase D1 and at times d and e the ribbon is in the acceleration phase A3. Thus, time c, which falls within the constant speed printing phase P2, is the only one of the five occurrences when the ribbon is moving forwards at a constant speed.
(308) It will be understood that different motion profiles will be used as required. However, in general terms, it has been realised that it may be advantageous to image ribbon only when it is moving forwards at a substantially constant speed. During continuous printing, this may occur while printing is carried out. Moreover, due to the desire to avoid wasted ribbon, it is likely that substantially all regions of ribbon will, at some point during operation, move past the imaging location at a substantially fixed speed (i.e. the printing speed). Thus, this provides a convenient time at which to perform imaging.
(309) In addition to detecting faulty printing as described above, it is possible to improve printing quality using data indicating the amount of ink removed from the ribbon during a printing operation. For example, parameters such as printhead position, pressure, energisation level, angle, ribbon position, ribbon speed etc. may be optimised based upon data indicative of print quality determined by processing described herein.
(310) Where references have been made herein to detecting radiation incident upon a camera, it will be understood that an alternative form of sensor may be used. Moreover, it should be appreciated that other forms of electromagnetic radiation could be used in some embodiments. That is, there is no requirement that the sensor detects visible light. Moreover, the terms ‘light’ and ‘radiation’ are used interchangeably herein. Similarly, where references are made to ‘radiation intensity’, where visible light is used, this may be understood to be a light intensity, which may also be referred to as a light level.
(311) Where references have been made to processing involving dimensions, scaling factors, thresholds and other numerical values, it will be understood that the described examples are not intended to be limiting. That is, different numerical values can be used where appropriate.
(312) Where references have been made herein to generating data based upon properties of the ribbon sensed after printing, in some embodiments such data may be generated based upon properties of the printed image (i.e. the image printed onto a substrate). That is, data may be generated from the substrate after printing has been carried out. Such data may then be used analogously to that obtained from the ribbon after printing, as has been described herein (where appropriate). In particular, where reference has been made herein to generating data indicating and/or based upon a quantity of ink remaining on ribbon after printing, similar data can be generated indicating and/or based upon a quantity of ink deposited on the substrate after printing.
(313) References have been made herein to determining the quantity of ink remaining on the ribbon after printing using optical methods. Other methods can also be used. For example, in some embodiments, a quantity of ink remaining on the ribbon after printing may be determined using a capacitive sensor arranged to generate data from the ribbon.
(314) References have been made to monitoring of an optimization of print quality. Such print quality can be monitored in any convenient way, and various ways have been described herein. In particular, print quality may be defined based upon a number of pixels printed which correspond to the pixels intended to be printed. Alternatively or additionally print quality may be defined by comparing a total number of pixels printed in an image with a number of pixels intended to be printed. In some embodiments a print quality metric may be based upon a relative darkness of the printed image (or relative “lightness” of ribbon after printing).
(315) Where references have been made to stepper motors herein, it will be appreciated that motors other than stepper motors could be used in alternative embodiments. Indeed, stepper motors are an example of a class of motors referred to position-controlled motors. A position-controlled motor is a motor controlled by a demanded output rotary position. That is, the output position may be varied on demand, or the output rotational velocity may be varied by control of the speed at which the demanded output rotary position changes. A stepper motor is an open loop position-controlled motor. That is, a stepper motor is supplied with an input signal relating to a demanded rotation position or rotational velocity and the stepper motor is driven to achieve the demanded position or velocity.
(316) Some position-controlled motors are provided with an encoder providing a feedback signal indicative of the actual position or velocity of the motor. The feedback signal may be used to generate an error signal by comparison with the demanded output rotary position (or velocity), the error signal being used to drive the motor to minimise the error. A stepper motor provided with an encoder in this manner may form part of a closed loop position-controlled motor.
(317) An alternative form of closed loop position-controlled motor comprises a DC motor provided with an encoder. The output from the encoder provides a feedback signal from which an error signal can be generated when the feedback signal is compared to a demanded output rotary position (or velocity), the error signal being used to drive the motor to minimise the error.
(318) It will be appreciated from the foregoing that various position controlled motors are known and can be employed in embodiments of a printing apparatus. It will further be appreciated that in yet further embodiments conventional DC motors may be used.
(319) While various disclosures herein describe that each of two tape spools is driven by a respective motor, it will be appreciated that in alternative embodiments tape may be transported between the spools in a different manner. For example a capstan roller located between the two spools may be used. Additionally or alternatively, the supply spool may be arranged to provide a mechanical resistance to tape movement, thereby generating tension in the tape.
(320) In general terms, ribbon is caused to advance between the spools in a controlled manner, so as to allow a predetermined portion of ribbon to be provided at the printing location and/or the imaging location at a particular point in time (e.g. during printing and/or imaging operations. Techniques described above relating to motor control compensation based upon printhead position data may be applied tape drives comprising to a single motor, or to a single motor of a tape drive.
(321) The terms ribbon and tape may be used interchangeably. For example, where the techniques described are applied to a transfer printer (such as a thermal transfer printer) the tape may be a ribbon. However, it will be understood that tape drive control techniques described herein may also be applied to a tape drive for transporting other forms of tape.
(322) The controller 10 has been described in the foregoing description (particularly with reference to
(323) The described and illustrated embodiments are to be considered as illustrative and not restrictive in character, it being understood that only the preferred embodiments have been shown and described and that all changes and modifications that come within the scope of the inventions as defined in the claims are desired to be protected. In relation to the claims, it is intended that when words such as “a,” “an,” “at least one,” or “at least one portion” are used to preface a feature there is no intention to limit the claim to only one such feature unless specifically stated to the contrary in the claim. When the language “at least a portion” and/or “a portion” is used the item can include a portion and/or the entire item unless specifically stated to the contrary.