Battery powered barcode printer

Abstract: A dynamic strobe compensation control for a battery powered barcode printer varies the strobe time for the thermal printhead of the printer during the printing of a line of data to compensate for internal resistance losses in the thermal printhead. The control varies the strobe time based upon the measured voltage of the battery powering the printhead when the battery is not loaded by the thermal printhead and when the battery is load by the thermal printhead. The print quality is thus maintained across the width of a line of print data as well as over multiple lines of print data.

Description: The present invention is directed to a battery powered barcode printer having a thermal printhead and to methods for dynamically adjusting the length of a printhead strobe signal in such a barcode printer. Such a barcode printer and methods are known from the closest prior art GB-A-2 138 190. GB-A 2 138 190 is directed to a hand held labeler that includes a compensating circuit for adjusting the energy applied to the printhead by adjusting the strobe time. The strobe time varies with a number of monitored variables including battery voltages, ambient temperature, printhead element resistance and elapsed time since the element was previously energized. The battery voltage monitored may be the voltage measured under no load conditions or under the load created by a web advancing motor prior to printhead energization or both. Lookup tables are used to provide correction factors in response to the monitored variables. BACKGROUND OF THE INVENTION Barcode printers are known that are battery powered and include a thermal printhead. It has been found that internal resistance losses in the thermal printhead can result in a significant degradation in print quality, particularly when the printer is operating at low voltages. As the number of print elements turned on to print a given line of data increases, the voltage drop caused by the internal resistance loss in the thermal printhead increases. When the thermal printhead includes two or more banks of print elements, if the number of print elements that are on for one bank is significantly greater than the number of print elements that are on for a different bank, the variation in print quality across a single print line is particularly noticable. Printhead controls are known to control the energy applied to the printhead based upon the energization history of the print elements surrounding a particular aimed at element for which the energy level is to be determined by decreasing the energy in response to a history of increasing numbers of surrounding print elements being energized. However, these controls do not address the problem of the voltage drop caused by internal resistance losses in the thermal printhead. Examples of such controls are described in United States Patent Nos. 4,567,488 and 4,685,069. Another control in which the energy applied to the thermal printhead decreases as the number of previously printed bars in a serial bar code increases is shown in GB-A-2 228 450. United States Patent No. 4,573,058 discloses a system for automatically detecting a change in the average printhead resistance due to continued usage of the printhead and for automatically correcting for such resistance change in order to maintain constant printing energy. This control system is directed to a different problem than the present invention. More particularly, as described therein, the 4,573,058 patent is concerned with the change in the resistance of a given printhead element as a function of the number of times electrical current is passed through the element, due to thermal oxidation of the resistor layer. In order to overcome this problem, the control described in this patent requires two distinct modes of operation. One mode of operation is a print mode in which the printhead is energized by control signals and a voltage regulator to print data. Whereas, the other mode of operation is a test mode in which the voltage regulator is turned off and a constant current regulator is employed to measure the resistance of each individual print element of the printhead. The measured resistance values are then averaged to determine the average element resistance. The calculated average element resistance is compared to an initial measured and calculated average element resistance and in response thereto, the burn time duration and/or head voltage amplitude are controlled. This control is very complex. More importantly, the test mode and thus the compensation scheme cannot be performed during the printing of a single line of data itself. Therefore, this is not a dynamic compensation scheme that can compensate for internal resistance losses in the printhead due to variations in the number of print elements that are energized to print a given line of data. SUMMARY OF THE INVENTION With the bare code printer and the methods defined in claims 1, 7, 8 respectively, the disadvantages of prior battery powered barcode printers have been overcome. The barcode printer of the present invention automatically and dynamically adjusts the strobe time for the thermal printhead of the barcode printer during the printing of a single line of data to compensate for internal resistance losses associated with the number of print elements that are energized to print that given line of data. Further, for thermal printheads that include more than one bank of print elements, the strobe time for each bank of elements is independently controlled so as to minimize variations in the print quality across a single line of print data. More particularly, the barcode printer of the present invention includes a thermal printhead that is responsive to print data loaded therein and the energization of the printhead for printing on a web of record members such as tags, labels and the like. The voltage of the battery powering the barcode printer is monitored to provide a value that is representative of the internal resistance losses of the printhead during printing. Specifically, a no-printhead load battery voltage value representing the voltage of the battery prior to the energization of the thermal printhead is determined. Thereafter, the control determines a printhead loaded battery voltage value representing the voltage of the battery during the initial energization of the thermal printhead for printing a given line of data. While that given line of data is being printed, the control compares the no-printhead load battery voltage to the printhead loaded battery voltage value to increase the length of time that the thermal printhead is energized to print that given line of data in response to a difference between the determined battery voltage values. If the thermal printhead employs more than one bank of print elements, during the initial energization of each of the banks, a printhead loaded battery voltage value is determined for the bank so as to enable the energization time or strobe time of each of the banks of print elements to be independently determined and controlled. Because the energization time or strobe time of the print element banks are individually controlled, the print quality across the entire line of print data is maintained. In accordance with one aspect of the present invention, the strobe time for the thermal printhead is adjusted for each line of data to be printed so that as the number of print elements energized to print varies from line to line, the strobe time of the thermal printhead can be dynamically adjusted. These and other objects, advantages and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and from the drawing. BRIEF DESCRIPTION OF THE DRAWING Fig. 1 is a block diagram of a barcode printer with the dynamic strobe compensation control of the present invention; Fig. 2 is a timing diagram illustrating strobe times and strobe signals for a thermal printhead having two banks of print elements as depicted in Fig. 1; and Fig. 3 is a flow chart illustrating the dynamic strobe compensation control software routine implemented by the barcode printer depicted in Fig. 1. DESCRIPTION OF THE PREFERRED EMBODIMENT A barcode printer 10 in accordance with the present invention and as shown in Fig. 1 includes a thermal printhead 12 for printing barcodes and alphanumeric information on a web of record members such as tag, labels or the like. The supply of the web of record members may be of the direct printing type such that the record members include paper coated with a thermally responsive material. Alternatively, the supply used with the barcode printer 10 may be of the transfer type wherein a carbon ribbon is heat activated by the printhead 12 so as to print on the record members. The printhead 12 is strobed to control the amount of energy applied thereto for printing. More particularly, and as discussed in greater detail below, current is applied via a printhead driver 13 to the printhead 12 during a strobe time in order to print one line of data on a record member. The barcode printer 10 also includes a motor 14 that is driven to advance the web of record members past the printhead 12 for printing. The motor 14 may be a stepper motor that is responsive to a periodic drive signal to advance the web, the drive signal controlling the speed of the stepper motor 14 which in turn controls the print speed of the barcode printer 10. A controller 16 includes a microprocessor 18 or the like which operates in accordance with software routines stored in a memory 19 so as to control the operations of the barcode printer 10. The memory 19 may include for example an EPROM 20 and a RAM 22. The controller 16 is responsive to print data entered by a user via a keyboard 24 or entered from a host computer via a communication interface 28 to control the thermal printhead 12 to print the desired data. The controller 16 may be responsive to the manual actuation of a trigger key 26 or to an on-line print command received via the communication interface 28 so as to initiate the printing operation. If desired, the barcode printer 10 may include a display 30 to provide messages to the user. The barcode printer 10 is powered by a battery 32. The dynamic strobe compensation scheme of the present invention monitors the voltage of the battery 32 when it is not loaded by the thermal printhead 12 and when it is loaded by the thermal printhead 12 during the printing of a line of data so as to control the energization time of the thermal printhead 12 to compensate for internal resistance losses due to the energization of the print elements of the printhead. The measured voltage of the battery 32 is coupled to the controller 16 through an analog to digital converter 34. Because the level of the battery voltage necessary to power the motor 14 and the thermal printhead 12 is typically outside the range of the analog to digital converter 34, a voltage divider 36 is employed to provide a reduced voltage value that is representative of the voltage of the battery 32. Further, an operational amplifier 37 with voltage offset is provided in a feedback loop from the printhead 12 and the analog to digital converter 34 for high resolution operation thereof. The thermal printhead 12 may include a single bank of print elements or multiple banks of print elements. As depicted in Fig. 1, the thermal printhead 12 is illustrated having two banks of print elements, a left bank 38 and a right bank 40. The left bank 38 and right bank 40 of print elements are alternately energized a number times during the printing of one line of data. More particularly, the left bank 38 is responsive to a left bank strobe signal having a dynamically determined left bank strobe time to print a line corresponding to the data loaded into the left bank of the thermal printhead 12. Similarly, the right bank 40 is responsive to a right bank strobe signal having a dynamically determined right bank strobe time to print the data loaded into the right bank of the thermal printhead 12. As shown in Fig. 2, the left bank strobe signal is applied to the left bank 38 of the printhead 12 during an energization period corresponding to the length of the left bank strobe time. Similarly, the right bank 40 is energized by the right bank strobe signal during the energization period corresponding to the length of the right bank strobe time. The right bank strobe signal is the inverse of the left bank strobe signal so that the banks are alternatingly pulsed as shown in Fig. 2. However, the length of the left bank strobe signal and the length of the right bank strobe signal are independently determined according to the dynamic strobe compensation control of the present invention so as to maintain uniform print quality across the entire width of each line of print on a record member. The energization times, i.e. strobe times, of the left bank 30 and the right bank 40 of the printhead 12 are determined in accordance with the dynamic strobe compensation control software routine depicted in Fig. 3. When the barcode printer 10 is ready to print a label, the microprocessor 18 at a block 50 energizes the motor 14. Thereafter, the microprocessor 18 at a block 52 reads a value received from the analog to digital convertor 34 representing the voltage of the battery 32 without the thermal printhead 12 being energized to provide a no-printhead load battery voltage value which is stored in the RAM 22 and used as a reference for compensating the strobe signals during the printing of each line of data on a given tag or label. Thereafter, the microprocessor 18 reads a value representing the sensed temperature of the thermal printhead 12. The temperature value is received from a thermistor that is mounted on a heat sink of the thermal printhead 12. At a block 56, the microprocessor 18 determines a default strobe time to be used to print each of the lines of data on the label, the default strobe time being individually compensated for each bank of the printhead 12 as discussed below. The default strobe time may be determined at block 56 as described in a patent application entitled Automatic Print Speed Control for a Barcode Printer assigned EP-A-0 647 529 - Art.54(3) EPC which patent is incorporated herein by reference. As described in more detail in that application, when power for the barcode printer 10 is turned on, the microprocessor 18 measures the resistance of the printhead 12. The microprocessor utilizes the measured printhead resistance as well as a measured contrast setting, printhead heat sink temperature and the no-printhead load battery voltage to calculate the default strobe time. In accordance with one embodiment of the present invention, the dynamic strobe compensation scheme depicted in Fig. 3 compensates for resistance losses in the thermal printhead 12 due to the number of print elements that are energized to print a given line of data during the printing of that line. In order to do so, the microprocessor 18 at a block 58 loads the data for one print line in the thermal printhead 12 for printing and begins the alternate strobing of the left bank and the right bank via the left bank strobe signal and the right bank strobe signal. During the initial portion of the left bank strobe signal, the length of which is initially set to the length of the default strobe time, and while the left bank is being energized to print, the microprocessor 18 at block 60 reads the voltage of the battery 32 with the printhead data being loaded in the printhead 12 so as to provide a printhead loaded battery voltage value. This printhead loaded battery voltage value for the left bank is also stored in the RAM 22 at block 60. Similarly, during the initial portion of the right bank strobe signal while the right bank is energized to print the microprocessor 18 at block 62 reads the voltage of the battery 32 with the print data loaded in the printhead 12 and the printhead 12 printing to provide a printhead loaded battery voltage for the right bank, this value being stored in the RAM 22. At block 64, the microprocessor 18 compensates the default strobe time based on the left bank printhead loaded battery voltage so as to determine the length of the left bank strobe signal during the printing of the line of data. More particularly, the microprocessor 18 sets the length of the left bank strobe signal equal to the length of the default strobe value determined at block 56 plus the product of a correction factor multiplied by the difference between the no-printhead load battery voltage value determined for the label at block 52 and the left bank printhead loaded battery voltage value determined for the print line at block 60. Similarly, the microprocessor 18 compensates the default strobe time determined at block 56 utilizing the right bank printhead loaded battery voltage determined at block 62 to compensate the default strobe time and thereby generate the right bank strobe signal. As discussed for the left bank, the length of the right bank strobe signal is set equal to the length of the default strobe time plus the product of a correction factor times the difference between the no-printhead load battery voltage value determined at block 52 and the right bank loaded battery voltage value determined for the individual print line at block 62. From the above, it is seen that initially during the printing of a given line of data, the length of the strobe signals to be applied to the left bank and right bank of the printhead 12 are set equal to the default strobe time; but during the printing of that same line of data, the strobe signals for the left bank and right bank are dynamically and independently varied in accordance with measured battery voltages. Because the battery voltages measured when the printhead 12 is loading the battery vary in accordance with the internal resistance losses due to the number of print elements that are energized at a given time in the respective left bank and right banks, the dynamic strobe compensation scheme of the present invention dynamically compensates for internal resistance losses in the thermal printhead 12 dynamically during the printing of each individual line. Therefore, not only is the print quality maintained from line to line across the length of the print data contained on a label; but the print quality is maintained across the width of a line so that there is not a noticable difference in the print quality of the data printed by the left bank and the right bank. It is noted that the present invention is not limited to thermal printheads having two banks of print elements but is also applicable to printheads having one bank of elements as well as printheads having many banks of print elements. Further, a different motor than a stepper motor may be used in the printer. For example, although a combination hardware and software embodiment of the present invention is depicted in the drawings, the present invention may be implemented essentially in software alone. The controller 16 may count or otherwise keep track of the number of print elements to be energized to print a given line of data by examining the print data stored in the RAM 22. Based upon the number of print elements in, for example the left bank, to be energized to print a given line, the microprocessor can calculate the expected voltage drop corresponding to the energization of that number of print elements. From the calculated voltage drop, the microprocessor 18 can then compensate the default strobe time to generate the left bank strobe signal as discussed above with respect to block 64. The right bank strobe signal can be similarly determined.

Claims: A battery (32) powered barcode printer (10) having a thermal printhead (12) responsive to the loading of data therein and energization thereof for printing on a web of record members; and means (18) for determining the voltage of the battery, the determining means (18) providing a first value representative of the battery voltage prior to the energization of the thermal printhead characterized by: the determining means (18) providing a second value representative of the battery voltage during the initial energization of the thermal printhead (12) for printing a line of data loaded into the thermal printhead (12); and means (18) for comparing the first battery voltage value to said second battery voltage value to vary the length of time the thermal printhead (12) is energized to print the line of data in response to a difference between the first and second battery voltage values to dynamically adjust the energization time of the thermal printhead (12) during the printing of a line. A battery powered barcode printer as recited in claim 1 wherein the difference between said first and second battery voltage represents internal resistance losses due to the energization of said printhead (12) to print said line of data. A battery powered barcode printer as recited in claim 1 or 2 wherein said thermal printhead (12) includes a plurality of groups (38, 40) of print elements, each group (38, 40) individually energized to print a portion of said line of data. A battery (32) powered barcode printer (10) as recited in at least one of the preceding claims including a motor (14) powered by said battery for driving said web of record members past said thermal printhead for printing therein; means (18) for energizing said motor; the determining means being responsive to the energization of the motor (14) to provide said first value representative of the battery voltage prior to the energization of said thermal printhead (12). A battery (32) powered barcode printer (10) as recited in at least one of the preceding claims wherein the difference between said first and second battery voltages represents internal resistance losses of said thermal printhead (12) due to the number of print elements energized to print a given line of data; and said energization time of said printhead (12) generally increases with increasing numbers of print elements to be energized. A battery (32) powered barcode printer (10) as recited in claim 5 wherein said thermal printhead (12) has a first bank of print elements (38) energizable during a first bank strobe time and a second bank (40) of print elements energizable during a second bank strobe time; said determining means providing a first bank value representing the internal resistance loss of the thermal printhead (12) due to the number of print elements in the first bank (38) energized to print one portion of a given line of data and providing a second bank value representing the internal resistance loss of the thermal printhead (12) due to the number of print elements in the second bank (40) energized to print another portion of a given line of data; the energization time for said first bank (38) is dynamically adjusted based on the first bank value and the energization time for the second bank (40) is dynamically adjusted based on the second bank value. A method for dynamically adjusting the length of a printhead strobe signal in a barcode printer (10) having a thermal printhead (12) with at least one bank (38, 40) of print elements characterized by: determining a value representative of the internal resistance loss of said thermal printhead (12) due to the number of print elements of said bank (38, 40) energized to print at least a portion of a given line of data during the initial energization of the bank of print elements; and determining the length of a strobe signal associated with said bank of print elements for printing at least said portion of said line based upon said resistance loss value determined for said portion of the line wherein the length of said strobe signal generally increases with increasing numbers of print elements in said bank (38, 40) to be energized. A method for dynamically adjusting the length of a printhead strobe signal in a barcode printer (10) having a thermal printhead (12) with at least one bank (38, 40) of print elements as recited in claim 1, said printer (10) being battery (32) powered and including means (18) for determining the voltage of the battery (32) prior to the energization of the thermal printhead (12) to provide a first battery voltage value and characterized by the steps of: determining the voltage of the battery (32) during the initial energization of the thermal printhead (12) for printing a line of data loaded into the thermal printhead (12) to provide a second battery voltage value; and comparing the first battery voltage value to the second battery voltage value to vary the length of time the thermal printhead (12) is energized to print the line of data in response to a difference between the first and second battery voltages to dynamically adjust the energization time of the thermal printhead (12) during the printing of a line.

Inventors: DURST WILLIAM BAXTER, SCHULTE ROBERT BERNARD, STERN MITCHELL GARY, DURST, WILLIAM BAXTER, SCHULTE, ROBERT BERNARD, STERN, MITCHELL GARY
Applicants: MONARCH MARKING SYSTEMS INC, MONARCH MARKING SYSTEMS, INC.
Application year: 1995
Main classification: B41J2
IPC codes: B41J3, B41J29, B65C11, G06K1, B41J2