Abstract:
A method and apparatus for controlling a thermal printhead. In response to a sequence of print commands, the method and apparatus generate an energization signal for each thermal print element in the printhead. In one embodiment, the energization is a function of at least the present print command and a future print command. In certain embodiments, the energization signal may also be a function of a past print command, print commands for at least one adjoining print element, and other parameters. Each print element in the printhead can, accordingly, be maintained at a proper temperature to ensure long printhead life and cause the printhead to generate sharp images.

Description:
TECHNICAL FIELD 
     The present invention relates to thermal printers, and more particularly to a method and apparatus for controlling a thermal printer. 
     BACKGROUND OF THE INVENTION 
     A thermal printer operates by sequentially heating desired linear patterns of small discrete areas (&#34;pixels&#34;) of a thermal medium to produce desired light and dark patterns on the thermal medium. In some instances, the thermal medium can be a thermally sensitive medium which is heated directly, while in other instances, the thermal medium can be a thermal transfer ribbon which is heated to cause a small amount of dyed wax to be transferred to a medium which is not thermally sensitive. 
     The discrete areas of the thermal medium are heated by a thermal printhead which includes a linear array of minute, closely spaced resistive dots (or print elements) that can be individually thermally controlled by means of electrical signals. The thermal medium is stepped past the printhead as each desired linear pattern is printed. The printhead is positioned over each part of the thermal medium for a predetermined interval of time (the &#34;scan line time,&#34; SLT) which depends upon the printer&#39;s print speed. For example, for printers, at 2 inches per second each interval of time is approximately 2.5 milliseconds long. 
     A print command signal for each print element determines, on a time interval basis, whether the print element should print or not within an SLT. In response to the print command signal, each print element in a printhead receives an electrical energization signal that is a composite of two other electrical signals. Specifically, the energization signal is a logical AND of a strobe signal and a data signal. The strobe signal, which is periodically sent to each of the print elements and is tailored to cause the print element to reach and maintain a temperature within a prescribed temperature range under controllable conditions. As will be discussed in greater detail subsequently, the strobe signal typically consists of two portions--an initial &#34;burn&#34; time and a subsequent &#34;chopped&#34; time. If the strobe signal were applied directly to the print element, the burn time portion of the strobe signal would force the print element to heat up quickly. The chopped time portion of the strobe signal typically maintains the print element&#39;s temperature and consists of approximately 25 cycles of a square wave with a 50 percent duty cycle. The data signal determines whether, within the period of the strobe signal, any portion of the strobe signal should be applied to a print element to cause it to print. 
     In the past, it was known to adjust the strobe signal to account for the temperature of the printhead. For example, when a printer first begins operation, its printhead is still at ambient temperature and its individual print elements must be given more energy to cause them to print. Therefore the burn time portion of the strobe signal could be lengthened so that the individual print elements will be heated more and the printhead will reach a normal operating temperature. 
     After the printhead has reached its operating temperature the strobe signal can be readjusted for these &#34;normal&#34; conditions. Even after the printhead has warmed up, however, departures from the normal conditions can occur. For example, the printhead can experience long periods of time when the printer is producing a label having large white areas, thereby requiring no heating of the individual print elements and allowing the printhead to cool below the normal operating temperature. On the other hand, the printhead may be required to print labels having large black areas, during which the temperature of the printhead will increase above the normal operating temperature. The thermal printer can account for these departures from the normal operating temperature by changing the energization signal through adjustments of the burn time portion of the strobe signal. 
     It has also been known in the past to adjust the energization of each individual print element depending upon the recent past history of that print element. For example, if a particular print element in a printhead has printed a long row of dark areas, it is known to reduce the &#34;on&#34; time of the energization signal to prevent the print element from producing a dark spot at an improper pixel. Under these circumstances, it is desirable to account for the past history of a particular print element when choosing the print command to be transmitted to the print element. Further, it has also been known in the past that the thermal performance of a particular print element in a printhead is affected by adjacent or nearby print elements in the printhead. Accordingly, it has been known in the past to tailor the energization signal transmitted to a particular print element depending upon the present condition and past history of adjacent print elements in the printhead. 
     It is desirable to have a printhead whose print elements can be individually programmed depending upon such variables as print speed, media type, ambient temperature, heat sink temperature, user&#39;s personal darkness preference, power supply voltage, and printhead average print element resistance. It is also desirable to reduce the thermal stress of each print element in a printhead by modulating the energization signal during the heat-up portion of the strobe but keeping the overall energy dissipation of the print element constant by heating it for a greater portion of the duration of the strobe signal. 
     It is further desirable to account for the future printing requirements of a particular print element in a printhead, as well as the future printing requirements of adjoining print elements in the printhead when determining the energization signal. For instance, if it is known that a particular print element in the printhead has been off for a period of time but will be used in an upcoming period of time, this print element can be &#34;preheated&#34; during one or more of the immediately preceding print times to raise the print element&#39;s temperature. 
     In addition, it is desirable to adjust the energization signal transmitted to a particular print element in a printhead to affect the placement of a pixel that is printed by that print element within the area of the printer medium over which the print element passes during a particular scan line time. 
     Also, it is desirable to maintain the temperature of the printhead substrate at an optimal level when the ambient temperature is below optimal printing temperatures. 
     Further, it is desirable to feed each print element with an energization signal that is a function of a data signal containing two or more sets of data during a scan line time to get adequate resolution for thermal control of the print element. 
     SUMMARY OF THE INVENTION 
     According to one aspect, the invention is a method for producing a desired response of a selected first thermal print element within a present interval of time. The desired response is produced in accordance with a sequence of print commands for the first print element. The method comprises the steps of (a) establishing a present print command in a sequence of print commands for the first print element and (b) establishing at least one future print command in the sequence of print commands for the first print element. The method further comprises the steps of (c) specifying a first print element control data stream for the present interval of time as a function of the present and the at least one future print commands for the first print element and (d) generating an energization signal for the first print element as a function of the data stream to produce the desired response of the first print element during the present interval of time. The method also comprises the step of (e) applying the energization signal to the first print element. 
     In another aspect, the invention is an apparatus for producing a desired response of a selected first thermal print element within a present interval of time. The desired response is produced in accordance with a sequence of print commands for the first print element. The apparatus comprises means for establishing a present print command in a sequence of print commands for the first print element and means for establishing at least one future print command in the sequence of print commands for the first print element. The apparatus also comprises means for specifying a first print element control data stream for the present interval of time as a function of the present and the at least one future print commands for the first print element and means for generating an energization signal for the first print element as a function of the data stream to produce the desired response of the first print element during the present interval of time. The apparatus further comprises means for applying the energization signal to the first print element. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a perspective view of a thermal printer. 
     FIG. 2 is an elevational view of a print medium drive mechanism of the thermal printer of FIG. 1. 
     FIG. 3 is an electrical schematic of a printhead in a thermal printer. 
     FIG. 4 is a timing chart of electrical signals for thermal printheads known in the prior art. 
     FIG. 5 is a schematic diagram of thermal printhead patterns known in the prior art. 
     FIG. 6A is a first portion of an electrical schematic diagram of a thermal printer according to the preferred embodiment. 
     FIG. 6B is a second portion of an electrical schematic diagram of a thermal printer according to the preferred embodiment. 
     FIG. 6C is a third portion of an electrical schematic diagram of a thermal printer according to the preferred embodiment. 
     FIG. 7 is a timing chart of electrical signals used in the invention. 
     FIG. 8 is a schematic diagram of data structures allowing the adjustment of the strobe signal to reduce thermal stress in the printhead. 
     FIG. 9 is a schematic diagram of a method for maintaining the substrate of the printhead at an optimal temperature. 
     FIG. 10 is a schematic diagram of the future print element look-ahead feature of the present invention. 
     FIG. 11 is a schematic diagram of a pixel displacement aspect of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1 is a perspective view of a thermal printer. The thermal printer 20 includes a first housing 22 and a second housing 24. The first housing 22 encloses electrical components, such as electrical motors used in the operation of the thermal printer 20. The first housing 22 also includes a control panel 26 which allows the thermal printer 20 to be controlled and adjusted by a user. 
     The control panel 26 includes a liquid crystal display (LCD) 28, a plurality of buttons 30, and a plurality of light emitting diodes (LEDs) 32. The LCD 28 provides an alphanumeric display of various commands useful for the user to control and adjust the thermal printer 20. The buttons 30 implement the user&#39;s choices of controls and adjustments, and the LEDs 32 provide displays of the status of the thermal printer 20. For example, one of the buttons 30 can be used to toggle the thermal printer 20 on- and off-line, with one of the LEDs 32 indicating when the printer is on-line. Another one of the buttons 30 can be used to select an array of menus that can be displayed in the LCD 28. These means can include choices of print speeds and media types, among other choices. Still another one of the buttons 30 can be used to reload or advance the print medium through the thermal printer 20. Yet another button 30 can be used to open the printer in order to change the print medium. 
     The second housing 24 includes a printer module 34 and a motor drive module 36 which are normally latched together. The printer module 34 and the motor drive module 36 are separated by a print medium path 38. By activating another one of the buttons 30, the printer module 34 can be caused to unlatch from the motor drive module 36 and rotate backwards, in a clockwise direction as seen in the view of FIG. 1. This action opens the print medium path 38 and allows the adjustment and replacement of the print medium which is introduced into the print medium path 38 from the print medium roll 40. The print medium supplied on the print medium roll 40 is available in a variety of thicknesses, thermal sensitivities, and materials, depending upon the use to be made of the print medium. The print medium supplied from the print medium roll 40 passes through the print medium path 38 and exits through the opening 42. If the print medium is a thermal transfer medium, a thermal transfer ribbon is placed in a separate drive mechanism contained within the printer module 34. This separate drive mechanism provides supply and take-up rolls for the thermal transfer ribbon, the rolls being separately controllable from the movement of the print medium. This permits saving the thermal transfer ribbon when the pattern to be printed on the print medium contains areas where no printing is required. The motor drive module 36 also contains a cooling fan (not shown) which exhausts air through the grill 44. 
     FIG. 2 is an elevational view of an adjustable printhead pressure mechanism contained within the second housing 24. The printhead pressure mechanism is in a &#34;print&#34; mode. 
     The printhead pressure mechanism includes a platen roller 46 placed near the position of the opening 42, shown in FIG. 1. The print medium from the print medium roll 40 passes through the print medium path 38 with its printed side facing up. The print medium is advanced through the print medium path 38 by an advancement mechanism and forced to pass between the platen roller 46 and a thermal printhead 80 which is located near the opening 42 (also shown in FIG. 1). 
     When the printer module 34 is locked in position against the motor drive module 36, the print medium is forced against the printhead 80 by the platen roller 46. In order to accommodate a wide variety of printer media, the pressure between the platen roller 46 and the printhead 80 is variably adjustable. 
     The printhead 80 rotates about the shaft 82, to one end of which is affixed the arm 84. Accordingly, clockwise movements of the arm 84 about the shaft 82 cause the printhead 80 to move toward the platen roller 46. If the printhead 80 is moved so that it is engaged against a print medium passing between the platen roller 46 and the printhead 80, further clockwise movements of the arm 84 about the shaft 82 will cause the pressure of the printhead 80 against the print medium to increase. 
     Movements of the arm 84 are controlled by the rack and pinion mechanism including the rack 86 and the pinion gear 88. The pinion gear 88 is attached to the shaft 90, which is driven by the stepper motor 92. A cam 94 is attached to the end of the shaft 90. 
     The rack 86 is formed on a carrier 96 which includes a first cavity 98 and a second cavity 100. The first cavity 98 and the second cavity 100 are separated by a wall 102. A container 104, adapted to receive the end of the arm 84, is placed in the second cavity 100, adjacent to the wall 102. A wire form 106, impinging on the right-hand wall of the container 104 and then passing to the left through a lower portion of the container 104, through a hole in the wall 102, into the first cavity 98, exerts a leftward force against the arm 84 through the action of the spring 108 on the portion of the wire form 106 in the first cavity 98 between the wall 102 and the end 110 of the wire form 106. If the stepper motor 92 is activated to cause the pinion gear 88 to rotate in a counterclockwise direction, the carrier 96 receives a leftward force through the action of the wall 102 against the wire form 106 by virtue of the spring 108 placed around the wire form 106 and the first cavity 98. This leftward force causes the wire form 106 to bear with increasing force in a leftward direction against the container 104 in the second cavity 100. This, in turn, increases the leftward force against the arm 84, creating a clockwise torque on the shaft 82. This torque increases the pressure of the printhead 80 on the print medium passing between the printhead 80 and the platen roller 46. Continuing counterclockwise operation of the stepper motor 92 further compresses the spring 108, thereby variably increasing the pressure of the printhead 80 against any print medium between the printhead 80 and the platen roller 46. 
     Also attached to the bottom of the carrier 96 is a projection 112 which passes between the two opposing faces of an optical caliper detector 114, which is held fixed with respect to the motor drive module frame 37. If the stepper motor 92 causes the carrier 96 to slue to the right, the projection 112 will pass between the two halves of the optical caliper detector 114, breaking a light beam which passes from one half of the optical caliper detector 114 to the other half of the optical caliper detector 114. Breaking the light beam causes the optical caliper detector 114 to produce an electrical signal indicating that the carrier has reached a &#34;home&#34; position in which the printhead 80 is moved away from the platen roller 46 by a predetermined repeatable distance. As the carrier 96 moves to the left from the home position, the number of pulses provided to the stepper motor increases from 0, the count at the home position. Therefore, it is possible to apply a highly repeatable pressure of the printhead 80 against the print medium passing over the platen roller 46. 
     The cam 94 on the end of the shaft 90 engages one end of a leaf spring 116. The other end of the leaf spring 116 is attached to a pivot arm 118, which, in turn, is fixed to the end of the pivot shaft 74. Accordingly, as the cam 94 actuates the leaf spring 116, pivot shaft 76 rotates in a clockwise direction, causing the idler roller 72 to be forced toward the pinch roller 70, capturing the print medium passing therebetween. 
     In FIG. 2, the carrier 96 of the rack and pinion printhead pressure mechanism has been moved to the left of the home position by a counterclockwise rotation of the stepper motor 92, which causes the cam 94 to enter the detent in the leaf spring 116 and moves an idler roller 72 away from the pinch roller 70. In the print mode, the print medium is advanced through the print medium path 38 by the force of the platen roller 46 against the print medium due to the pressure applied against the print medium by the printhead 80. 
     FIG. 3 is an electrical schematic of a printhead in a thermal printer. The printhead 80 comprises a linear array of small, closely spaced resistive print elements 102 1  -102 a . One end of each of the resistive print elements 102 i  is connected to an electrical common line which is maintained at a voltage above ground by a capacitor 104. Preferably, capacitor 104 is a 10 mF, 50 volt capacitor. The other end of each of the resistive print elements 102 i  is connected to an AND gate 106 i . Each of the AND gates 106 i  receives two signals. One of the signals is a strobe signal and the other is a data signal transferred from a latch 108. 
     In one particular preferred embodiment, the resistive print elements 102 i  can be grouped into a number of adjacent groups of print elements, each group occupying a particular region of the thermal printhead 80. This allows each group of print elements to receive an independently generated strobe signal, which can differ from the strobe signals transmitted to the other groups of print elements. For example, if the printhead 80 includes 896 print elements, it can be divided into four independently-drive regions, the first region including 128 print elements and the remaining three regions each including 256 print elements. However, in another preferred embodiment, the same strobe signal is transmitted to each AND gate 106 i . The signals representing the data contained in the latch 108 are imposed on one leg of each corresponding AND gate 106 i , beginning at a time specified by the latch (LA) signal. This arrangement permits each of the AND gates 106 i  to receive its corresponding data at the same time as all of the other AND gates 106 i . 
     The data stored in the latch 108 are transferred from a number of shift registers 110 1  -110 n . The number of shift registers 110 i  corresponds to the groups of print elements discussed previously. Therefore, in the first preferred embodiment discussed above, n=4. Each of the shift registers 110 i  receives data from a separate input data line (DIi). The data are shifted into the consecutive stages of the shift register 110 1  at times governed by the clock pulse (CP) signal. If desired, the data in each shift register 110 i  can be cycled out on the data out line (DOi). The voltage on the logic elements of the printhead 80 (i.e., the latch 108 and the shift registers 110 i ) is maintained by the capacitor 111. The printhead 80 also includes a thermistor 112 which produces a signal indicative of the temperature of the printhead 80. 
     FIG. 4 is a timing chart of electrical signals for thermal printheads known in the prior art. The strobe signal is on for the entire duration of the SLT, while in increasing levels the print pulse signals have shorter and shorter durations, and always terminate at the same time as the strobe signal. As can be seen, increasing the level of a print pulse signal causes the print element to begin printing later in the SLT. 
     FIG. 5 is a schematic diagram of thermal printhead patterns known in the prior art. The method described by FIG. 5 is based on controlling each print element based on the past history of that print element and the planned present history of adjoining print elements. In this scheme known in the prior art, the present and past status of a given print element and the adjoining print elements is indicated by an array of squares containing symbols that indicate whether the print elements should print. The central square contains a circular dot, indicating that this square represents the current state of the present print element. Ranging above this square are additional squares, successively indicating the past history of the present print element. Adjoining the square indicating the present status of the present print element are squares representing the current status of the adjoining print elements. In the particular example shown in FIG. 5, the control method is concerned only with the current status of the present print element and the present print element&#39;s two most recent preceding statuses, as well as the current status of each of the adjoining print elements. Since each of the four squares surrounding the square representing the current print element can have only one of two statuses (&#34;on&#34; or &#34;off&#34;), there are 2 4  =16 possible ways to fill in this array of squares. These 16 possible patterns are divided into 6 groups, each group representing a distinct level of energization for the present print element. While this scheme can be generalized by accounting for the past history of the adjacent print elements, it does not disclose using the forecast future of the current or adjacent print elements in determining the energization of the current print element. 
     FIG. 6 is an electronics schematic diagram. The electronics includes two microcomputers, a print engine microcomputer 202 and an image microcomputer 204. The print engine microcomputer 202 is primarily responsible for controlling the movement of the print medium and the thermal transfer ribbon (if any) through the printer path and supplying print timing commands to the printhead 80. The image microcomputer 204 produces the images which are to be printed on the print medium. The print engine microcomputer 202 includes a print engine microprocessor 208, a read-only memory (ROM) 210, an input interface 212, and an output interface 214. The ROM 210 communicates with the print engine microprocessor 208 over bidirectional lines. The input interface 212 transmits signals to the print engine microprocessor 208 and the print engine microprocessor 208 transmits signals to the output interface 214. 
     The image microcomputer 204 includes an image microprocessor 216. The print engine microprocessor 208 and the image microprocessor 216 both communicate over bidirectional lines with a shared random access memory 206. In addition, the print engine microprocessor 208 can communicate interrupt signals to the image microprocessor 216 and the image microprocessor 216 can communicate interrupt signals to the print engine microprocessor 208. 
     Through the output interface 214, the print engine microprocessor 208 sends the signals to a ribbon take-up drive 218, a ribbon supply drive 220, a stepper motor drive 222, and a head motor drive 224. The stepper motor drive 222 produces appropriate drive signals and transmits them to the stepper motor 50. The head motor drive 224 also produces appropriate signals and sends them to the head motor 150. Movements of the print medium caused by the stepper motor 50 are sensed by the sensor 226 which produces signals that are transmitted to the input interface 212. Movements of the printhead 80 by the head motor 150 are monitored by two sensors, the optical caliper detector 114 and a print module position sensor 228. The optical caliper detector 114 transmits signals to the input interface 212, indicating whether the printhead 80 is in the print mode or the idle mode. The print module position sensor 228 transmits a signal which indicates whether the printer module 34 is disengaged from the motor drive module 36. 
     The ribbon take-up and ribbon supply drives operate similarly to one another. Each of them receives signals from the output interface 214 and produce signals which drive the ribbon take-up and supply motors, respectively. Under command from the print engine microprocessor they facilitate movements of the thermal transfer ribbon in the print module 34, if a thermal transfer medium is being used. The two ribbon motors are monitored by encoders which send signals to the input interface 212. These signals can be used by the print engine microprocessor 208 in case of a ribbon jam or break. The ribbon take-up and supply drives also operate to balance the torques in their two respective rolls, so that the ribbon moves smoothly, at the same speed as the print medium, without wrinkling or breaking. In addition, in case the print engine microprocessor 208 declares a print save mode, the two ribbon drives bring the ribbon to a halt, which is signified to the print engine microprocessor 208 by the respective encoders. 
     The image microprocessor 216 also shares information with the ROM 230 and an image RAM 232 on a bidirectional line. The ROM 230 contains programs and used by the image microprocessor 216 and data describing invariant signals, such as the selection of strobe signals which may be used by the print engine microprocessor in a method to be described subsequently. The image RAM 232 contains a number of bands of the image to be printed. In addition, the image microprocessor 216 drives the LCD 28 and communicates with the control panel 26 over a bidirectional line. Further, the image microprocessor 216 communicates over a bidirectional line with the memory expansion interface 234, which has provisions for adding more RAM and ROM to the image microcomputer I/O 204. The image microprocessor 216 also communicates with the I/O option interface 236 over a bidirectional line. The interface 236 allows communications between the image microprocessor 216 and a mainframe computer. This data link can be used to load data to a mainframe computer for further processing, or to load data from a mainframe computer to the image microprocessor 216, such as data for the image RAM 232. Beyond these communication links, the image microprocessor 216 can also communicate with a serial interface 238 over a bidirectional line. This link will also allow the transfer of data in and out of the image microprocessor 216, but will also allow the image microprocessor 216 to be reprogrammed. Finally, the image microprocessor 216 also communicates with an image buffer 240 over a unidirectional bus and receives an interrupt signal from the image buffer 240 over a unidirectional line. The image buffer transfers images the image microprocessor 216 has retrieved from the image RAM 232 to a history RAM 242 in a thermal controller 244. The thermal controller, which produces the signals used to define the thermal images to be printed by the printhead 80, also includes a state machine 246 and a table RAM 248. The state machine 246 produces timing signals needed by the thermal controller 244, under the influence of signals produced by the output interface 214, which is connected to the print engine microprocessor 208. The table RAM 248 is loaded with a table from the ROM 210 in the print engine microcomputer 202 by the print engine microprocessor 208 through the output interface 214. The table RAM 248 receives timing signals from the state machine 246 and the history RAM 242. These signals point to a particular entry in the table RAM 248, depending upon the history of the current print element as designated by the image sent by the image buffer 240 to history RAM 242. The data produced from the table RAM 248 are sent over data lines to the data registers 110 i  in the printhead 80. The thermal controller also produces the clock signal which provides proper timing to the registers 110 i . The latch and strobe signals are respectively sent to the latch 108 and drivers 106 i  by the output interface 214, which receives its input from the print engine microprocessor 208, as described previously. The latch signal is produced by the state machine 246. 
     FIG. 7 is a timing chart of our electrical signals. As shown, there are a plurality of strobe signals available to the drivers 106 i . The strobe signals are composed of four parameterized segments. They are stored in the shared RAM 206 and transferred to the print engine microprocessor 208 when needed. The segments of the strobe signal are an initial chopped segment, followed by an &#34;on-time&#34; segment and a final chopped segment. The initial chopped segment has a fixed duty cycle and a time duration T d . The &#34;on-time&#34; segment has a time duration T i . The final chopped segment has a time duration equal to the remainder of the SLT, its off portions each have a duration of T coff  and its on portions have a duration of T con . Thus, the plurality of strobe signals can be chosen according to the values of the parameters T d , T i , T coff  and T con . The choice of strobe signal is determined by the print engine microprocessor 208, based on signals it receives from the image microprocessor 216. The data signals are produced by the table RAM 248 and modulate the chosen strobe signal by placing data in the data lines directed to the registers 110 i . At the time of each segment of the SLT for the present strobe, the data from that segment for each of the print element in the particular region of the printhead 80 is loaded into the appropriate register 110 i  and used to drive the appropriate print elements. 
     FIG. 8 is a schematic diagram indicating the adjustment of the strobe parameters, reduced thermal stress, and cold start. By appropriate choice of the data and possibly the strobe signal, it is possible to reduce the peak print element temperature by modulating the heat-up portion of the strobe signal, while keeping overall energy dissipation constant by heating for a greater portion of each scan line time. 
     FIG. 9 is a schematic diagram of a method for maintaining the substrate of the printhead 80 at an optimal temperature. In this case, based on the history of a particular print element, as well as its neighboring activity and/or future activity, short energy pulses of a value insufficient to cause darkening of the thermal medium but sufficient to cause a warming effect in the thermal print substrate are applied. In the preferred embodiment, short segments of the SLT corresponding to the chopped portion of the print head strobe are used. This approach keeps the pulse energy sufficiently below that which would cause printing on the medium. The energy of this heat-up pulse can be varied by changing the length of time the chopped strobe is applied to the printhead 80, or by varying the chop duty cycle, based on ambient and/or printhead temperature. Furthermore, cold start pulse activity can be linked to indicators of impending print activity, such as paper motion, data communications activity or internal clock or timing events. 
     FIG. 10 is a schematic diagram of the future print element look-ahead feature of the present invention. As described above, the data from the past history, current status and future of the current print element and its surrounding print element can be used to designate an address for use in accessing the history RAM 242 and the table RAM 248. 
     FIG. 10 is a schematic diagram of a method of the present invention. As shown, the method of the present invention accounts for the future desired response of each particular print element as well as the future desired response of print elements adjacent to the present print element. In the scheme shown in FIG. 10, the present energization of the current print element is considered as well as the past five energizations of the present print element. In addition, the next future response of the present print element is considered. Further, the present energization of the last print element is considered as well as the future energization of the next print element. 
     FIG. 10 is a schematic representation of the method of the present invention in use to provide programmable rules. In this case, the response applied to a particular print element is a function not only of the past and future activity of the present and adjoining print elements, but also a function of such parameters as print speed, media type, ambient temperature, heat sink temperature, personal darkness preference, power supply voltage, and printhead average print element resistance. Each of these parameters can be determined from the printer itself. The print speed is specified to the thermal printer by the user through the keypad, as is the media type and the individual user&#39;s personal darkness preference. The thermistor provides the printer with information concerning the ambient temperature and the heat sink temperature. The printer can also monitor the supply voltage being supplied to the printhead 80. Also, the printer can analyze the printhead 80 to determine the average print element resistance. It is also possible to program the tables externally by user customization of the tables which are then downloaded via a modem or other convenient data communications medium. These data can be used to adjust the strobe profile. 
     The desired response of a particular print element is specified by a group of binary number, four numbers for each group of segments within an SLT. These binary numbers consist of eleven bits. These eleven bits are L (the current state of the last print element), FN (the future state of the next print element), S4 and S3, which designate which of the four binary numbers is being specified, F (the future state of the current print element), C (the present state of the particular print element), and P1-P5 (the past five states of the current print element). These binary numbers are treated as an address which is used to access the history RAM 242 and return data representing the energization schedule for the segment of the SLT designated by the S4-S3 bits. 
     FIG. 11 is a schematic diagram of a pixel displacement aspect of the present invention. Controlled pixel displacement is desirable when the user wishes to adjust the position of the pixel within the region of the print medium scanned during the SLT. For example, the placement of the pixel can be made a function of the states of the preceding and next future print elements. If the previous and next print elements are both off, it is satisfactory to place the current pixel in the center of the nominal pixel space. If the previous print element state was off and the next print element state is on, indicating the beginning of a print region, it is desirable to place the pixel at the end of the nominal pixel space by lengthening the modulated portion of the strobe signal. On the other hand, if the previous print element state is on and the next print element state is off, indicating that the printer is reaching the end of a print region, it is desirable to place the pixel at the beginning of the nominal pixel space. This is accomplished by shortening the modulated portion of the strobe and employing the full duration of the power on portion of the strobe. Finally, if the previous print element state is on and the next state is on also, it is desirable to produce an elongated pixel which encroaches upon both the previous pixel space and the next pixel space. This is accomplished by modulating the full on portion of the strobe signal and using the entire modulated portion of the strobe signal. 
     Reduced thermal stress of the print elements (i.e., reducing the peak print element temperature) can be accomplished by modulating the data during the heat-up portion of the strobe but keeping the overall energy dissipation constant by heating for a greater portion of each SLT. This can be accomplished by transferring appropriate reduced thermal stress tables into the historical RAM 242 and employing these tables during periods when high thermal stress can be expected, such as while printing drag print element bar code. In the case where the substrate of the printhead 80 is below optimal printing temperature as sensed by a thermistor (not shown), and based on print element history, neighboring print element activity and/or future print element activity, short energy pulses of a value insufficient to cause darkening of the print medium but sufficient to cause a warming effect in the thermal printer printhead 80 are applied. In a preferred embodiment, this method employs enabling data during short segments of the SLT corresponding to the chopped portion of the printhead strobe. This approach keeps the pulse energy sufficiently below that which would cause printing on the medium and allows the energy of the heat-up portion of the strobe to be varied by changing the length of time the energization signal is applied to the printhead 80, or by varying the chopped duty cycle based on ambient and/or printhead temperature. Furthermore, cold start pulse activity can be linked to indicators of impending print activity, such as paper motion, data communications activity or internal clocks or timing events. 
     In some applications, it is possible to provide particularly crisp printing by recognizing that the printhead 80 is passing through an area having certain predetermined patterns, such as a large, dark rectangle, or a dark corner. In this case, a review of the current state of the last pixel and the future state of the next pixel (or farther into the future, if desired), will indicate the existence of a pattern representing such a situation. In this case, the data transmitted to the current print element during its SLT can be tailored to provide the desired crispness. 
     As indicated above, detailed illustrative embodiments are disclosed herein. However, other embodiments, which may be detailed rather differently from the disclosed embodiments, are possible. Consequently, the specific structural and functional details disclosed herein are merely representative: yet in that regard, they are deemed to afford the best embodiments for the purposes of disclosure and to provide a basis for the claims herein, which define the scope of the present invention.