Abstract:
A program installed in the microcontroller of an ink jet printer functions as a timer, to keep track of how much time has elapsed since the ink jet cartridge last printed. After a certain amount of time (such as one hour) has elapsed with no printing, the program directs all the nozzles of the cartridge to each print about twenty ink dots. This periodic priming of the nozzles during idle periods prevents viscous ink plugs from building up in and clogging the nozzles.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to ink jet printers, and to a method of operating ink jet printers. 
     2. Description of the Prior Art 
     Ink jet printers are well known in the art. A typical such printer 10 is shown in FIG. 1. Hewlett Packard manufactures the Hewlett Packard thermal Ink-jet print cartridge 12, which may be used as the printing component of the printer 10. The Hewlett Packard thermal Ink-jet cartridge 12, well known in the art, is a self-contained disposable printhead suitable for a wide variety of dot matrix printing and plotting on a medium such as paper 13. The cartridge 12 includes a pressure contact electrical interconnect for ease of replacement, and can be used in any orientation. 
     Ink capacity of over ten million dots (dots are the ink drops ejected by the cartridge so as to print on the medium) gives the twelve nozzles 14 etc. of the thermal ink-jet cartridge 12 the capacity of typically 500,000 characters (depending on the font) or extensive graphics. The thermal ink-jet cartridge prints on a variety of papers (i.e., media) The non-contact operation allows variation in distance to the media when printing. 
     As is well known in the art, however, such ink jet cartridges as described above are subject to the problem of viscous plug formation. A viscous plug is a plug of ink in the exit portion of a print cartridge nozzle 14 in which evaporation of the liquid ink in the cartridge causes a thickening of the ink near the nozzle exit, interfering with ink dot ejection. This plug can occur when the print cartridge is idle (i.e., not firing) for a period of time, normally several days, depending on the ambient temperature and humidity conditions. The viscous plug can often be removed by printing. Plug formation is worst in hot and dry conditions but the plugs are most difficult to clear in cold and dry conditions. Plugs cause poorly formed dots or no dots at all and so degrade print quality. 
     The prior art (the Thermal Ink-Jet Print Cartridge Designer&#39;s Guide, Hewlett Packard, October, 1986) suggests that plugs which cannot be removed by firing (i.e., printing) will usually be cleared by holding a damp tissue in contact with the nozzles for several seconds and then gently wiping. 
     The same Designer&#39;s Guide also suggests that (page 10) 
     To insure immediate printing after an idle period, it is suggested that the following prefiring algorithm be used: 
     After not printing (idle), and just before printing, fire all 12 nozzles several times; 1 firing for every 3 minutes of idle time up to a maximum of 160 firings. 
     Severe environments or specific applications may require more extreme measures. Some possibilities to try include: 
     1. Increase the number of prefires. 
     2. Decrease the maximum idle time. 
     3. Increase the number of prefires at low temperatures. 
     4. Insure that prefiring is done at maximum specified frequency. 
     5. Control the temperature and humidity immediately around the print cartridge. 
     6. Use a dampened tissue to &#34;soak&#34; and then wipe the nozzles when prefiring fails to clear a plug. 
     7. &#34;Cap&#34; the print cartridge when not in use to maintain a closed humid environment around the nozzles. 
     8. Place the cartridge in a sealed container when not in use. 
     In the prior art, the printer 10 includes a blotter 16 located to the left of the left-most printing location 18. The printhead guide track 20 contains a ramp (not shown) to lift the cartridge 12 over the blotter 16. Upon system initialization, the cartridge 12 is moved to the blotter 16 and fires all nozzles 14 for 160 times in succession, to perform the prefiring algorithm. 
     The Designer&#39;s Guide also suggests during high temperature periods, replacing the cartridge 12 every one to two months. 
     It is also suggested, for use outside the specification limits, to provide a tray of water near the head to raise humidity, and removing the print cartridge when not in use and storing in a cool location. The Designer&#39;s Guide specifically says that (page 10): 
     Periodic priming is not recommended for preventative maintenance. Only prime after a failure (see Maintenance Procedures). 
     A common application of ink jet printers is as a printer system for use with a personal computer such as is indicated at 20 which provides data to printer 10 on channel 21. Under these circumstances, the printer 10 is usually turned off when not in use for long periods of time, thus making any sort of periodic priming impossible. Automated periodic priming under power on conditions even where possible has the drawback in most personal computer applications that it might disconcert the operator, due to unanticipated movement of the print head during the priming operation. 
     SUMMARY OF THE INVENTION 
     The present invention is a method to prevent viscous plugs from clogging the nozzles of an ink jet print cartridge when the printer is idle (i.e., not printing). The method preferably involves using a microcontroller 22 (which is conventionally provided in many ink jet printers) as a timer to keep track of the amount of time that has elapsed since the print cartridge last printed. After a predetermined amount of time of such idleness, the microcontroller 22 directs the printer 10 to print one or more ink dots from each nozzle 14, thus priming all the nozzles. The preferred predetermined amount of time allowed to elapse is about one hour. 
     In the preferred embodiment of the invention, the microcontroller 22 includes a data timer which is restarted every time that data is input to the printer. If the timer ever reaches a count showing three minutes of inactivity, it is reset to zero and a prime count (PRIMECOUNT) in the microcontroller 22 is incremented. If the prime count reaches twenty (equal to one hour of idleness), means is established in the timer in the microcontroller 22 to so indicate; this is done by a flag (DOPRIME) which is set in the timer routine. When the flag is set, the printhead will move to the blotter location, fire (i.e., print) twenty times and is returned to its prior location and then PRIMECOUNT and DOPRIME are reset. 
     If data is input and PRIMECOUNT is nonzero (but less than twenty), then the printhead will move to the blotter, fire each nozzle for a number of times equal to PRIMECOUNT, reset PRIMECOUNT, and return to its previous position to output the data. 
     The priming of the print cartridge, in accordance with the preferred embodiment of the invention, is infrequent enough so that it uses only a small amount of the ink supply in the cartridge. This is so even if the cartridge sits idle for an extended period, such as a month, while periodically priming. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows a typical printer system consistent with the prior art. 
     FIGS. 2A and 2B compositely show one embodiment of the present invention in flowchart format. 
     FIGS. 3A, 3B, 3C, and 3D show the relevant portions of an assembly language program embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     In accordance with the present invention, in the preferred embodiment an ink jet printer 10 similar to that of the prior art having an eight bit microcontroller 22 such as the Intel 8052 microcontroller (of the 8031 microcontroller family) has a program conventionally installed in microcontroller ROM (read only memory) 24 to control the printhead 12 via channel 26. The relevant portions of the program to control the printer 10 in accordance with the present invention are shown in assembly language as shown in FIGS. 3A, 3B, 3C, and 3D, including comments. 
     The present invention, in the preferred embodiment, requires that the printer be powered up (i.e., turned on) at all times, so that the microcontroller has power and so can function as a timer, and also so that the printer can periodically be primed by printing ink dots. Thus the preferred embodiment is perhaps most suitable for industrial or scientific applications where the printer is normally left on for long periods. Instrumentation other than a personal computer might be substituted for computer 20 shown in FIG. 1. The prevention of clogged nozzles is also of great importance in applications where the printer is being used as a printer-plotter to record real time events, and the printer output may constitute the only record of the events. In this case a failure of the cartridge due to clogged nozzles would result in a loss of all data. 
     With reference to the flow chart shown in FIGS. 2A and 2B, one embodiment in accordance with the present invention operates as follows. The conventional prior art power-up sequence for the printer begins at START at 30, which is followed by the conventional System Initialization at 32, and then the prior art priming of the nozzles upon start-up by setting PRIMECOUNT to 160 (in one variation recommended by Hewlett Packard) at 34, followed by normal processing and plotting of data at 36, 38. The one difference in this sequence over the conventional printer control program is the introduction of the DOPRIME flag variable, which is turned on at 34. 
     The next column of the flowchart begins with the conventional NEXTDATA subroutine at 40,42, which gets data from the printer buffer and translates the data so as to print the next data segment. If the DOPRIME flag is on at 44, then the PRIME subroutine at 46 is called. 
     The PRIME subroutine at 46 actually directs the printhead to move to the blotter and to fire the nozzles to prime them as described below. The PRIME subroutine at 46 is repeated as long as the DOPRIME flag at 44 is on. After priming is completed, the next data is input conventionally at NEXTDATA at 48. If there is more data, the PRIMECOUNT variable is checked at 50. If PRIMECOUNT is greater than zero, the path to the left is taken and PRIME is called again at 54, after the carriage position is saved. After priming again at 54, the carriage is returned at 56 to the position saved at 52. 
     The purpose of the loop 50, 52, 54, 56 is that if data is output to the printer before one hour has elapsed, but after three minutes have elapsed, there will be a number in PRIMECOUNT at 50 of 1 to 19. Then the PRIME subroutine will be called at 54, and PRIME executes the number of cycles equal to the number in PRIMECOUNT. 
     If PRIMECOUNT is zero at 50, then conventionally the data is set up and output to be printed at 58. 
     The third column of the flowchart shows the details of the PRIME subroutine at 60. First, the carriage is moved over to the blotter position without any firing of the nozzles at 62. Then a delay time of 800μ seconds between nozzle firings is set up at 64. This is the reciprocal of the conventional 1250 firings per second. Then the PRIMECOUNT value is checked at 66. If the value is greater than zero, PRIMECOUNT is decremented by one and all twelve nozzles are fired once at 68. Then a step timer (for the priming cycle) is enabled at 70. This loop 66,68,70 is repeated for PRIMECOUNT number of times. After that, the loop is exited at 60 and the DOPRIME flag is cleared at 72. Then the carriage is returned to its prior position. 
     The last part of the flowchart shows the data timer (including subroutines DATHTLIM, DATHL3, and DATHL4), as implemented in the Data Timer Interrupt at 74. After a time equal to three minutes without data being input to the printer at 76, the prime counter PRIMECOUNT variable is incremented at 78 and the variable DATAHITIME, which times up to three minutes, is reset to zero at 78. When PRIMECOUNT reaches twenty (one hour) at 80, the DOPRIME flag is turned on at 82 which (as described above) causes priming followed by a return at 84. If the PRIMECOUNT is not yet 20, at 80, there is also a return at 84. 
     The assembly language program for the preferred embodiment of the invention thus adds subroutines and code to the conventional printer control program. As described above, the elements added to the conventional program include: (1) those which implement the date timer, subroutines DATHTLIM, DATHL3, and DATHL4; (2) that which implements priming, subroutine PRIME; (3) addition of the DOPRIME flag to system initialization; (4) modifications (so as to call PRIME and restore the carriage to its position after priming) to the conventional subroutine NEXTDATA as shown in FIGS. 3C, 3D. 
     The above description of the invention is illustrative and not limiting. Alternative embodiments include priming the nozzles by firing them onto the paper in the printer, if no blotter is available. Also, the time between primes need not be an hour; the time could be any convenient value, although thirty minutes to three hours is preferred. The number of priming firings for each nozzle could also be any convenient number. The method of the present invention is also applicable to an ink jet printer cartridge having only one nozzle. In another embodiment, instead of being controlled by means of the printer microcontroller, the priming operation could be wholly or partly under control of the computer or other instrumentation which is providing data to the printer. 
     In yet another embodiment, the priming operation takes place after a certain interval of inactivity by any of the nozzles, so if any one nozzle had been idle, all the nozzles would be primed after a certain amount of time.