Abstract:
A printing system including a plurality of ink jet printers, wherein each printer contains a communications board to enable each printer to communicate with a personal computer over a common interface bus. The bus is connected to an interface on the personal computer. Preferably the interface is a parallel printer interface. A position sensor generates a signal corresponding to the positions of print locations on the print media. The resulting printing system is capable of printing in a direction other than the direction in which the object to be printed on or the substrate is travelling. The resulting printing system is also capable of overlaying a plurality of different colors at specific locations on the moving substrate or object.

Description:
FIELD OF THE INVENTION 
     This invention relates to a computer controlled printing system, and more particularly to a computer controlled ink jet system for printing on a moving substrate or object. 
     BACKGROUND OF THE INVENTION 
     Ink jet printers create characters by ejecting individual droplets of ink that combine to form letters, numbers or symbols on a target or substrate. These printers normally consist of an ink source; a print head which contains the ink and physically ejects the ink droplets onto the substrate or object; and a controller which dictates the individual locations where the droplets are ejected. 
     A typical print head consists, in part, of an ink jet nozzle and two electrically charged plates. The electrically charged plates are parallel to one another, and separated by a small distance. The ink jet nozzle ejects single drops of electrically charged ink that travel between the two electrically charged plates on their way to the substrate. The electrical charge on the two plates develops a magnetic flux between the plates. As each ink drop leaves the nozzle, it is typically imparted with a particular voltage, which can vary between approximately -12 volts and approximately +300 volts. Depending on the charge on a particular electrically charged ink drop, it will be attracted toward one of the plates. If there is no attraction by either plate, the ink drop will travel parallel to the two plates. If the ink drop is positively charged, then it will be attracted toward the negatively charged plate, and its path will curve toward that plate. In this manner, the ink drop will strike the substrate closer to the attracting plate and further from the other plate. By varying the electric charge on the ejected ink drop, the drop may be directed to strike the substrate anywhere along an imaginary line on the substrate that is perpendicular to both of the plates. 
     In this arrangement, if both the substrate and the printer head are fixed with respect to one another, then the print head would only be able to print a row of dots on the substrate that combine to form a line perpendicular to both electrically charged plates. For the printer to be able to form letters, it is therefore necessary to have the substrate move in relation to the print head (or vice versa). 
     The printer forms a letter or other symbol by ejecting drops in vertical &#34;slices&#34; as the object to be printed on moves in front of the print head. These slices are simply drops of ink selectively placed on the imaginary vertical line between the plates, in locations which correspond to a portion of the letter or other symbol. As the print medium moves, vertical slices are printed directly adjacent to one another. Each vertical slice is called a stroke, and combines with each adjacent stroke to form a letter, character or other symbol. 
     The typical commercial printing arrangement fixes the print head alongside a moving substrate, or along a conveyor belt which transports objects to be printed on past the print head. As the substrate or object moves, the print head ejects droplets of ink, forming characters. Print heads are well known to those skilled in the art of printing systems. A typical ink jet printer head, on sale for several years, has already been described above. 
     A number of printing systems that use ink-jet printers are also known in the art. However, the inventors of the subject invention are not aware of any system that allows a single computer to control multiple ink jet printers through a single interface. Nor are the inventors aware of an ink jet printing system that is capable of printing in a direction other than the substrate or conveyor length, when the &#34;length&#34; refers to a direction parallel to the direction in which the substrate or conveyor travels. For example, the inventors know of no system capable of printing along a width, where the width refers to a direction perpendicular to and in the same plane as the substrate&#39;s line of travel; when the printers are to print on objects moving along a conveyor belt, the &#34;width&#34; refers to either (1) a direction perpendicular to the conveyor belt&#39;s line of travel in a plane parallel to the plane formed by the conveyor belt, or (2) a direction perpendicular to the plane formed by the conveyor belt. When printing on a substrate, the directions are shown by arrow L and W in FIG. 1. Likewise, arrows L and W in FIG. 2 indicate the directions of the length and width when printing on objects. 
     As noted above, to be able to print letters or other symbols on a substrate, there must be relative movement between the print head and the substrate. Since the substrate moves in the direction of its length, other systems are able to print a string of letters, words or symbols in that direction. By rearranging the locations in which the droplets are placed, these systems can also orient each character so that it faces in the direction of the width of the substrate; that is, the systems can print a short line of characters extending across the width of the substrate. However, since there is no relative movement between the print head and the substrate along the width, a single print head cannot print a string of more than a few characters in the direction of the width. 
     Likewise, when printing on an object, there must also be relative movement between the print head and the object. The object moves along a conveyor belt in the direction of the length. Other systems that print a string of letters, words or symbols in the direction of the length are known in the art of printing systems. By rearranging the locations in which the droplets are placed, these systems can also orient each character so that it faces in the direction of the width of the object. However, since there is no relative movement between the print head and the width of the object, a single print head cannot print a string of more than two or three characters in the direction of the width. 
     In addition, because each print head is only capable of printing a single color of ink at any one time, it is impossible for a single printer to create a character or other symbol using a plurality of colors. The present invention permits a personal computer to control a plurality of printers, each containing a different color ink, so that colors may be overlayed to create a multicolor character or symbol. 
     It is a principal object of the invention to provide a new printing system for printing along a direction other than the length of the printing medium. 
     It is a further object of the invention that the above be accomplished under the control of a single computer, preferably a personal computer. 
     More specifically, it is an object of the invention to provide a printing system that uses more than one ink-jet printer, where all the printers are controlled by a single personal computer through a single interface on the computer. 
     SUMMARY OF THE INVENTION 
     In a preferred embodiment of the present invention, a personal computer directs and controls timing and sequencing of the printers. The print heads are staggered along the length of the substrate or conveyor belt and each print head prints one or more characters of a given word. As the incomplete word travels beneath each print head, another character or characters will be added, and in this manner a word is created along the width of the substrate. 
     In another facet of the invention, the print heads are staggered along the length of the substrate or object. Each print head is aligned so that it is capable of printing in the same location on the substrate or object as that location passes beneath the print head. Each print head is loaded with a different color ink. The personal computer directs and controls the timing of the plurality of printers so that each print head will eject a different color ink thereby precisely overlaying the colors and creating a multicolor character or symbol. 
     Another facet of the invention provides a communication board, here called the direct ink drop interface board, which is inserted into each printer and permits each printer to communicate with a single computer through a single interface on the computer. In a preferred embodiment, the communication boards of each printer are each connected to a common bus that is in turn connected to an interface on the controlling computer. 
     In another facet of the invention, the communication boards each employ a strobing scheme to identify which printer is to communicate with the computer over the shared common bus at any particular instant in time. The strobing scheme enables much greater throughput rates than is possible with more traditional addressing schemes. 
     The invention contemplates that the communication boards that have been supplied with power and are connected to the common bus will supply any other communication board with power if it is connected to the bus and has not been turned on. 
     Also in the preferred embodiment, a position sensor determines positions of print locations. The sensor generates a signal that is sent to the communication board and then to the computer. This signal allows the computer to determine when the print location is passing beneath a print head. 
     Other objects, features and advantages of the invention will become apparent upon reading the following detailed description and upon reference to the drawings. Throughout the drawings, like reference numerals refer to like parts. 
    
    
     DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a plan view of a printing system which includes an embodiment of the invention, where the media to be printed on is a substrate passing from one roller to another roller. 
     FIG. 2 is a plan view of the printing systems including the invention where the media to be printed on is an object travelling along a conveyor belt. 
     FIG. 3 is a functional block diagram of a communication board made according to the present invention. 
     FIGS. 4A, 4B, 4C, 4D, 4E and 4F are is a schematics of the communication board of the present system. For convenience, the reference numerals referring to elements shown on any sheet of FIG. 4 will be appended with the individual sheet letter. For example, 110-B will refer to a switch 110 and the B will indicate that it can be found in FIG. 4B. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     While the invention will be described in connection with a preferred embodiment, it will be understood that it is not intended to limit the invention to this embodiment. On the contrary, it is intended to cover all alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims. 
     FIGS. 1 and 2 show a general physical layout of the novel system. To permit a single personal computer 201 to control more than one ink-jet printer 220-223 in accordance with the invention, DIDI boards 240-243 are provided. Here, each of these boards is installed in a printer 220-223. 
     It is another object of the invention to provide a system which prints across the width (W) of the substrate 210 or the underlying objects 211. This aspect of the invention is accomplished by arranging the printheads 227-237 in an echelon formation in the same plane as shown in FIG. 1. 
     It is another object of the invention to provide a printing system that permits a single personal computer 201 to control more than one printer 220-223 through a single interface 241 on said computer. To accomplish this object, DIDI boards 240-243 are provided. Here, these boards are each installed in a printer 220-223. 
     Yet another object of the present invention is to provide a printing system wherein one of the plurality of printers 220-223 can provide power to those components on a DIDI board 240-243 of another printer that are connected to a common printer interface bus 203 to which each printer 220-223 is connected. This aspect of the invention is accomplished by powering those components of each DIDI board 240-243 that are connected to the common printer interface bus 203 by using the VB supply circuit 308 through the printer interface bus 203. 
     I. Computer Control 
     The computer 201, shown in FIG. 1 and in FIG. 2, controls the entire printing operation. It is responsible for the timing and sequencing of the printers 220-223, downloading stroke data to the individual printers, and issuing the individual print commands. 
     A typical print sequence is as follows. The computer 201 first sends each printer stroke data over the printer interface bus 203 that corresponds to the stroke the printer is to print. If there are eight printers, the computer will first send stroke data to a first printer, then to a second printer etc., until each of the printers has received its stroke data. Then the computer 201 issues a print command over the PRT STB line 147-A on the printer interface bus 203 to all the printers and the stroke data is printed. By monitoring the signal from the encoder 207, the computer 201 is able to determine the position of the print medium and thereby determine the appropriate stroke data to send to a particular printer in order to produce a particular letter or symbol. This process is then repeated with different stroke data. For example, to print a solitary line along the width of the substrate, the computer would first load the first printer 220 with stroke data corresponding to a line. The remainder of the printers would receive stroke data that corresponds to a blank, so that no ink is ejected. When the computer 201 issues a print command over the PRT STB line 147-A, the print head 227, attached to the first printer, would print its portion of the line along the width. The remaining print heads 230-237, each attached to a corresponding printer, would not eject ink since each had received a blank. Then, until this portion of line passed by the second print head 230, all of the print heads would receive blank data, and thus none would eject ink after receiving the next print command over the PRT STB line 147-A on the printer interface bus 203. When the line reaches the second print head 230, the computer 201 would send stroke data corresponding to a line to the second printer. Each of the remaining printers would receive blank data. When the computer issued the next print command, the second print head 230 would print its corresponding section of the line. Since the remaining printers had each received blank data, at this time none of the remaining printers would eject ink to contribute to the line. This does not necessarily mean that they are not printing. It is possible that the first print head 227 could be simultaneously beginning a second vertical line. Thus, when the second print head 230 receives stroke data corresponding to its section of the line, the first print head 227 could receive stroke data corresponding to a new line. When the next print command issued over the PRT STB line 147-A, both print heads 227, 230 would print, but only the second print head 230 would be contributing to the original line. In this manner, each of the print heads 227, 230 could be printing simultaneously, although each would necessarily be contributing to a different line or word. By loading the correct stroke data, within the correct printer at the correct time, the system is able to print along the width of the substrate. 
     By arranging the print heads so that each print head can print in the same print location as that location passes beneath the print head, the above print sequence can also be used to print multicolor characters or symbols. For example, to print a multicolor character or symbol, the individual print heads are loaded with different color inks. Then, the computer would first load the first printer 220 with stroke data corresponding to that portion of the symbol that is to be printed in the first color ink. The remainder of the printers would receive stroke data that corresponds to a blank, so that no ink is ejected. When the computer 201 issues a print command over the PRT STB line 147-A, the print head, attached to the first printer, would print its portion of the symbol. The remaining print heads 230-237, each attached to a corresponding printer, would not eject ink since each had received a blank. Then, until the incomplete symbol passed by the second print head, all of the print heads would receive blank data, and thus none would eject ink after receiving the next print command over the PRT STB line 147-A on the printer interface bus 203. When the symbol reaches the second print head, the computer 201 would send stroke data corresponding to that portion of the symbol to be printed in the color of ink that was loaded in the second print head. Each of the remaining printers would receive blank data. When the computer issued the next print command, the second print head would print its corresponding portion of the symbol, Since the remaining printers had each received blank data, at this time none of the remaining printers would eject ink to contribute to the symbol. This does not necessarily mean that they are not printing. It is possible that the first print head could be simultaneously beginning a second symbol. Thus, when the second print head receives stroke data corresponding to its portion of the symbol, the first print head could receive stroke data corresponding to a portion of a new symbol. When the next print command issued over the PRT STB line 147-A, both print heads would print, but only the second print head would be contributing to the original symbol. In this manner, each of the print heads could be printing simultaneously, although each would necessarily be contributing to a different symbol or character. By loading the correct stroke data, within the correct printer at the correct time, the system is able to overlay different colors on the same symbol and thereby print a multicolor character or symbol. 
     To determine the location of any point on the substrate or conveyor, an encoder 207 signal is fed back to one of the printers 220 over the ENCODER OUT line 142-D on the printer interface bus 203. The printer then returns the signal to the personal computer 201, which monitors the encoder signal on the ENCODER OUT line 142-D to determine the location of individual points on the web or conveyor. The computer 201 can then determine when to download the stroke data to each printer 220-223. 
     II. Connectors and Strobe Addressing 
     As shown in FIG. 1 and in FIG. 2, a preferred embodiment of the present invention uses a standard parallel printer interface 241 on the personal computer 201 to connect the printers to the computer. This printer interface 241 was originally designed by the manufacturer of the personal computer 201 so that the personal computer 201 could communicate with a single printer. The present invention, however, allows the personal computer 201 to control up to at least eight printers (220-223) through the parallel printer port 241. 
     Although the preferred embodiment uses software to control the parallel interface, it can be seen that one skilled in the art could readily devise a hardware equivalent of the software and implement it through an expansion slot in a personal computer 201 to communicate with the DIDI boards 240-243. 
     Currently, a standard parallel printer interface 241 contains twenty five (25) lines. Eight of the lines on the printer interface are data lines that transmit stroke data and control data, nine lines are control and handshake lines, and the remaining eight are grounded and act as a shield for the other signals. Throughout the remainder of this discussion, this connection will be referred to as the &#34;printer interface bus&#34; 203. 
     In a preferred embodiment of the current invention, the printer interface bus 203 is connected to each of the printers to be used for a given printing operation. Thus, each of the eight data lines PCD01-PCD07 and each of the control lines is connected to each of a plurality of printers. Because the data lines PCD01-PCD07 are connected to each printer, and because only a small number of control lines exist, the present invention required a novel scheme by which the personal computer could notify a particular printer to read data from the data lines. This scheme is the &#34;strobing&#34; system described below. 
     As shown in FIG. 4A, the DIDI board supports four strobe signals: a Data strobe (DTA STB) 80-A, a Print Strobe(PRT STB) 147-A, a Phase Strobe (PHA STB) 150-A, and an Auxiliary Strobe (AUX STB) 107-A. The DTA STB 80-A and PHA STB 150-A signals combined are sent in blocks of up to sixteen. Within each block a particular strobe signal is identified by the order in which that strobe is sent within the block. Thus, each of the strobes is numbered one through up to sixteen. Each DIDI board 240-243 counts the number of combined DTA STB 80-A and PHA STB 150-A strobes that are sent between the print commands that each DIDI board 240-243 receives over the PRT STB lines 147-A. Once a print command is issued via the PRT STB line 147-A, then a new block starts with strobe number one. 
     Prior to beginning a print sequence each of the plurality of printers 240-243 must be initialized. This accomplishes two things. First, it allows the computer to assign a strobe number (or range of strobe numbers) to each printer 220-223. These strobe numbers determine when the printer will read data from the data lines PCD01-PCD07 (described below). Second, it allows the computer to designate a &#34;master&#34; printer that will provide it with encoder data. 
     Referring to FIG. 4, the initialization is described here functionally, and is described in more detail below. Each printer 220-223 contains a rotary switch 110-B, DIP switch, or similar device on a DIDI board 240-243. This switch contains at least eight settings and is shown on FIG. 4B as 110-B. To initialize a printer 220-223, the operator must first manually set the switch 110-B to one of the at least eight available positions on the switch. When the computer 201 subsequently activates the AUX STB 107-A line on the printer interface bus 203, each DIDI board 240-243 will compare the signals appearing on the first three data lines PCD01-PCD03 of the printer interface bus 203 to the specific signal generated by the rotary switch 110-B setting on that particular DIDI board 240-243. When the signals on the three data lines PCD01-PCD03 are the same as the signals generated by the rotary switch 110-B for a particular DIDI board 240-243, that DIDI board will read data from the fourth through sixth data lines PCD04-PCD06. These data provide control information to the DIDI board 240-243, specify the strobe range, specify which of the plurality of printers 220-223 will act as the master printer, and specify various outputs of the board. By setting each rotary switch 110-B to a different setting, each printer 220-223 will read only that control data intended for it. In this manner, the printer interface bus 203 can be used to initialize each one of the plurality of printers 220-223. 
     In an alternative embodiment, the rotary switch 110-B contains at least sixteen settings. In this embodiment, one of a plurality of printers 220-223 that has its rotary switch 110-B set to position 8 will receive the same data as a printer that has its rotary switch 110-B set to position zero. Thus, the printer will have the same strobe range register values and control data as the printer set to switch position zero, and therefore will print the exact same stroke data as the printer set to switch position zero. Likewise, a printer set to position 9 will receive the same data and print the identical strokes as a printer set to position 1. This correspondence between printers continues up to switch selection HEX F corresponding to a printer that has its switch 110-B set to position 7. By doing this, the system enables two printers to print the identical strokes, and therefore simultaneously print the identical word, symbol or character on two sides of a substrate 210 or object 211, or in two different locations on the substrate 210 or object 211. 
     After initialization, and once the print sequence begins, each of the plurality of printers 220-223 keeps track of the current strobe number. When the current strobe number is within the range of strobe numbers that was assigned to an individual one of the plurality of printers 220-223 during initialization, the DIDI board within that printer will signal the printer to read the stroke data that has been latched from the data lines PCD01-PCD07. If the current strobe number has been assigned to another of the plurality of printers, then the printer will ignore the stroke data that has been latched by the DIDI board. For example, if a printer 223 is assigned strobes three and four then it will ignore the latched data during the first two strobe signals, will read the latched stroke data during the third and fourth strobe signals, and then will ignore the remaining latched stroke data until the computer 201 issues a print command over the PRT STB line 147-A on the printer interface bus 203. Once a print command has been issued, the DIDI board will again count strokes, starting with one. In this manner, each printer will read only that character data intended for it. 
     III. The Direct Ink Drop Interface Board 
     Each one of a plurality of DIDI boards 240-243 is inserted in one of the plurality of the printers 220-223 in place of a standard serial board to enable printing along the width of a substrate 210 or an object 211 travelling along a conveyor 212. This subsection will describe the functions of a DIDI board 240-243 and its interaction with one of the plurality of printers 220-223 and computer 201. FIG. 3 shows a functional block diagram of the DIDI board. The following description first discusses the basic functions of the board, which include the data input buffers 301, strobe buffers 302, output drivers 303, VB supply 308, head address logic 311, control logic 310, print and phasing control 309, power up/down reset 307, upstart circuit 306, drop data latch 305, encoder/detector buffer 313, and output drivers 304. 
     As can be seen from FIG. 3, the printer interface bus 203 is connected to those portions of each of the plurality of DIDI boards 240-243, that function as the data input buffers 301, the strobe buffers 302, the output drivers 303, and the VB supply 308, on each DIDI board. The strobe buffers 302 are connected to the control logic 310 to provide the control logic 310 with control data received from the personal computer 201 over the printer interface bus 203. The data input buffers 301 provides head address data to the head address logic 311, and also provides the drop data latch 305 with strobe data that is sent to the printer. The power up-down reset circuit 307 provides the upstart circuit 306 and the control logic 310 with information about whether the DIDI board is receiving enough power to operate. The strobe buffers 313 receive signals from the encoder 207 and product detector 247 and transmit these signals through the control logic 310 and output buffers to the personal computer 201 over the printer interface bus 203. Finally, the print and phasing control circuitry 309 receives control information from the control logic circuitry 310 and transmits print commands, phasing requests and drop strobe signal to the printer through the driver circuitry 304. 
     a. Power-Up/Down Reset Circuit (307) 
     This circuit 307 monitors the available 5 volt supply in the printer system and forces the printer into reset when the voltage is at a level that cannot guarantee reliable performance of the system. A reset may also occur when first powering up a printer 220-223. In either case, this circuit will generate a reset signal, which is sent to both the control logic circuitry 310 and to the printer 220-223 to prevent printer operation while the VCC power supply is unreliable. The personal computer 201 that is coordinating the printing will also receive a signal indicating that the printer is in reset. The Power-Up/Down reset circuit 307 contains an R-C circuit comprised of a resistor 6-E and a capacitor 18-E, to delay the release of the reset on power-ups and to insure that proper supply voltage is present upon release from the reset. 
     As described above, there are at least two ways in which a DIDI board 240-243 will enter a RESET. First, referring to FIGS. 4A-4F, when a DIDI board 240-243 receives the appropriate control signals during initialization, the integrated circuit 1-B as shown in FIG. 4B sets the RST PRINTER output on line 4 of the integrated circuit 1-B to a high logic level. The output line 4 of the integrated circuit 1-B will remain high only until the particular DIDI board has performed the reset sequence described below. Thus, in effect, the RST PRINTER output on line 4 only remains high for a brief, transitory period. The reset sequence begins when the RST PRINTER output reaches a high logic level, which in turn activates the base of a transistor 3-E, thereby opening VCC to ground through a resistor 6-E. The signal at the test point 9-E is at a logic level low. Two invertors 12-F, 15-F shown in FIG. 4F buffer the power up-down reset circuit 07 from the RESET signal 62-F sent to the printer 220-223. The output of this second invertor is the RESET signal 62-F and is at a logic level low, indicating to a printer 220-223 and the personal computer 201 that the DIDI board 240-243 is currently in a reset. Once the RESET PRINTER signal coming from line 4 of the integrated circuit 1-B returns to a logic level low, the current to the base of the transistor 3-E is insufficient to allow current to pass from the collector to the emitter. The supply voltage VCC is applied through resistor 6-E and capacitor 18-E to ground. The voltage at the test point 9-E will not immediately reach VCC. Instead, the voltage will rise until capacitor 18-E is fully charged and the voltage across it approaches VCC. When the test point 9-E reaches a logic level high the RESET signal 62-F at the output of the second invertor 15-F will be a logic level high, indicating to a printer 220-223 and personal computer 201 that the DIDI board is no longer in RESET. The RESET signal is not only an output of the DIDI board 240-243, but is also used internally to signal various components (21-F, 24-C, 27-C, 30-C, 1-B and 38-D) that the board is in RESET. As can be seen from FIG. 4F, the RESET signal is sent to the CL signal on a FLIP FLOP 21-F, the LOAD input of the integrated circuit 24-C, the 0C signal on LATCH 27-C, the OC signal on LATCH 30-C, the CLR signal on the integrated circuit 1-B, and to the base of a transistor 38-D. As can be seen from the FIGS. 4A-4F, this signal prevents each device from reading data from the printer interface data lines, and performing logic operations during the period when the DIDI board 240-243 is in RESET. 
     RESET is also active, independent of the RESET PRINTER signal on line 4 of integrated circuit 1-B, when the supply voltage VCC drops too low. The integrated circuit 2-E is a voltage monitor device. As can be seen from FIG. 4E, the supply voltage VCC is an input to line 2 of the voltage monitor 2-E. When the supply voltage VCC falls below a certain prescribed value, line 1 of the voltage monitor is opened to ground. This causes test point 9-E to become a logic level low. The RESET signal 62-F also becomes a logic level low indicating to the personal computer 201 that one of the DIDI boards 240-243 is currently undergoing a reset. 
     b. Data Input Buffer Circuit (301) 
     As shown in FIG. 3 and FIG. 4A, this circuit is directly connected to the eight data lines (PCD01-PCD07 ) on the printer interface bus 203. Each data line PCD01-PCD07 is tied to the voltage source VB through a resistor 37-A, which provide input pull up protection for the CMOS input buffer 40-A. Additionally resistors 36-A are provided for input series protection for the CMOS input buffer 40-A. CMOS components are known to have high impedance inputs. Thus, the input pull up feature combined with the high impedance inputs A1-A8 of the CMOS input buffer 40-A cause only minimal loading of the host computer outputs received over the data lines PCD01-PCD07 o This allows up to at least eight DIDI boards 240-243 to be connected to the parallel interface bus 203. The outputs of the CMOS input buffer 40-A then supply the control logic circuitry 310 and the drop data latch circuitry 305 (see description below) with the data. 
     c. Strobe &amp; Control Input Buffer Circuit (302) 
     As can be seen in FIG. 3 and FIG. 4A, this circuit 302 is directly connected to the data strobe (DTA STB) 80-A, the printer strobe (PRT STB) 147-A, the phase strobe (PHA STB) 150-A and the auxiliary strobe (AUX STB) 107-A lines on the printer interface bus 203 coming from the personal computer 201. Like the data input buffer circuit 301, this circuit 302 provides input pull up resistors 43-A and series protection resistors 44-A for the CMOS input buffer 47-A. The pull up protection feature of this circuit 302 combined with the high impedance inputs A1-A4 of the CMOS buffer 47-A cause minimal loading of the personal computer 201 outputs which in turn allows up to at least eight DIDI boards 240-243 to be connected to the parallel interface bus 203. The strobe inputs 80-A, 147-A, 150-A, 107-A, 157-A, 153-A, are connected to a Schmidt trigger device 50-A that provides hysteresis protection to prevent false strobe detection due to noise or transmission line effects. 
     This circuit 302 also receives the product detector 157-A (PROD DET) and encoder signals 153-A (ENCODER) from the product detector 211 and/or the encoder 207. It provides input pull up and series protection resistors 53,A for these inputs similar to those that are present in the strobe inputs described above. The circuit 302 also uses the Schmidt trigger device 50-A for these signals to provide hysteresis protection to prevent false detection, and also to buffer the CMOS input buffer 47-A from the shaft encoder 207 and product detector 211 sensors. 
     d. VB SUPPLY (308) 
     To function properly, each of the plurality of printers 220-223 that is connected to the printer interface bus 203 must have power available to its input devices. In many printing operations, however, not all printers 220-223 connected to the PG,25 printer interface bus 203 will be needed. If power was not available to these printers 220-223, they would cause faulty signals to appear on the printer interface bus 203. The VB supply circuit 308 solves this problem by powering each of the components of each DIDI board 240-243 that are directly connected to the parallel interface 241 of the personal computer 201 through the printer interface bus 203. The VB circuit 308 accomplishes this by relying on the printers 220-223 that are turned on to supply power to the VB supply 308 of the unpowered DIDI boards 240-243 in the system. This in turn supplies power to each of those components on the DIDI board that are directly connected to the printer interface bus 203. The VB supply 308 therefore prevents the degradation of data and control signals that would otherwise result if an unpowered printer 220-223 were connected to the interface bus. 
     To accomplish this using a standard 25 line parallel printer cable, the VB supply is transmitted on one of the lines that is normally tied to ground by the computer 201. To prevent the computer from grounding the VB supply 308, the connector pin corresponding to that line must be removed from the parallel printer connector that is directly connected to the parallel printer interface 241. 
     As can be seen in FIG. 4A, the VB power supply circuit 308 consists of a diode 57-A, a resistor 60-A, and a capacitor 63-A. The power supply VCC is connected to the VB circuit 308 through the diode 57-A which prevents the VB supply 308 from introducing current into the power supply VCC and the ENCODER 153-A and PROD DET 157-A signals. The resistor 60-A is placed between the diode 57-A and connector 14-A on the parallel interface bus 203. The capacitor 63-A is connected to ground. This R-C circuit arrangement filters unwanted transients from the VB supply 308. The VB supply 308 is either transmitted to, or received from, other printers through connector 14-A. The printer interface bus 203 interconnects the VB supply 308 of each DIDI board 240-243 through connector 14-A to supply each DIDI board 240-243 connected to the printer interface bus 203 with power. The VB supply 308 is also used within the DIDI board 240-243 by various components through the VB supply lines as indicated in FIGS. 4A-4F. 
     e. Output Driver Circuit (304) 
     As shown in FIG. 3 and 4F, the output drivers 304 for the REQ PHASE, PRINT COM, and DROP STB signals connect directly to the printer interface bus 203. Each of the DIDI board drivers 63-F, 67-F, 70-F employ open drain outputs to return these signals to the personal computer 201. This allows the printer interface bus 203 to be used by multiple printers in a bus like arrangement. 
     f. Drop Data Output Latch Circuit (305) 
     The Drop Data circuit 305 directly interfaces with the printer 220-223. It transfers to the printer (e.g. 220) the data that the DIDI board 243 has read from the data lines PCD01-PCD07 of the printer interface bus 203. This data contains stroke data which dictates the exact locations where the print head 227 is to eject ink droplets. The printer 220 stores this data in memory until it receives a print command over the PRT STB 147-A of the printer interface bus 203, at which point it will issue instructions to the print head 227 to eject ink in the specified locations. As explained, the individual strokes then combine to form the characters or other symbols. 
     As shown in FIG. 4C, the Latch 73-C is connected to the CMOS input buffer 40-A as shown in FIG. 4A. The latch signals CLK and OC control the latching of data that appears on the inputs to the latch 73-C. When the CLK signal transitions from a low to a high and the OC signal is low, then the data appearing on input to the Latch 73-C will be latched. The latch 73-C CLK signal is received from the CMOS input buffer 47-A through an invertor 77-B. The input to the CMOS buffer 47-A that determines the CLK signal is the data strobe (DTA STB) 80-A from the printer interface bus 203. The latch signal RESET is connected to an 0R gate 83-B whose inputs are dependent on the PHA STB 150-A signal and AUX STB 107-A signal on the printer interface bus 203. As shown in FIG. 4A, these signals determine the outputs Y3 and Y4 of the CMOS buffer 47-A. The output Y4 travels through a tri-state invertor 87-A and then to the input of the OR gate 83-B. As can be seen from the figure, the data is latched whenever the Data Strobe (DTA STB) 80-A signal transitions from low to high, and there is no active auxiliary mode (AUX STB) 107-A signal nor is there an active phase strobe (PHA STB) 150-A signal. Furthermore, when the RESET signal of Latch 73-C is at a logic level low, the data appearing on the latch 73-C outputs D0-D7 become all zeros. 
     g. Strobe Range Register Control Circuit (312) 
     This circuit 312 is within the control logic circuitry 310 depicted in FIG. 3. It allows each individual DIDI board 240-243 to read only the data which corresponds to the data/phase strobe intended for its printer. The personal computer 201 can send up to 16 strobes between print commands which in turn loads up to 16 different bytes of character information. To optimize speed there is no address information with the data bytes. Rather each DIDI board 240-243 is assigned to one strobe, or a range of up to four strobes, during which it will read data from the data lines PCD01-PCD07. For example, out of the sixteen available strobes, one printer 223 may be assigned strobe numbers three and four. It will monitor the number of strobe signals that have appeared on the data DTA STB 80-A and phase strobe PHA STB 150-A lines since the personal computer 201 sent the previous print command over the PRT STB 147-A line of the printer interface bus 203. During the first and second strobe signals, this printer 223 will not read data appearing on the drop data lines D0-D7. During the third and fourth strobe signals, the circuit will instruct the printer to read the data appearing on the drop data lines D0-D7. Then during the remaining strobes prior to the next print command, the printer 223 will again ignore the data appearing on the drop data lines D0-D7. 
     To instruct a DIDI board 240-243 which strobes have been assigned to its printer 220-223, the personal computer 201 must initialize the range registers 90-C, 93-C on each DIDI board 240-243. The range registers 90-C, 93-C in combination identify which strobes are intended for the individual DIDI board 240-243 and printer 220-223. Each of the range registers 90-C, 93-C hold one four bit value, which combined, identify the low limit strobe number and the hi limit strobe number. As strobes are issued by the personal computer 201, the DIDI board 240-243 instructs the printer 240-243 to read the data that appears on the output of the drop data latch 73-C only when the strobe sequence count falls between and including the low and hi limits. As explained above, as many as four drop pattern bytes can be loaded into each printer 220-223 by a DIDI board 240-243. 
     As shown in FIG. 4C, there is a strobe range register high limit 93-C and a strobe range register low limit 90-C. During the initialization of the printer 220-223, each of these registers 90-C, 93-C are set by the personal computer 201. The limit is read into inputs A0-A3 on each register 90-C, 93-C. These inputs are connected to the outputs of a latch 27-C, which latches the range register data appearing on the data lines PCD01-PCD07 of the printer interface bus and on the CMOS buffer 40-A during the initialization. This data is then stored in the range registers 90-C, 93-C. The current strobe number appears on the inputs B0-B3 of each range register 90-C, 93-C, which compare the stored limit value with the current strobe value and produce a signal based on the relationship of these values. These outputs, in conjunction with two OR gates 97-C, 100-C, and a NAND gate 103-C, produce an IN RANGE signal, sent to the OR gate 63-F within the driver circuitry 304 to signal the printer that the current strobe is within the strobe range of this printer. If current strobe is within the range of the printer and is a data strobe, then the printer 220-223 reads the data appearing on the outputs of the drop data latch 73-C. 
     h. Head Address and Control Register Circuit (311) 
     This circuit 311 monitors both the incoming data lines from the CMOS buffer 40-A and the incoming AUX STB 107-A line on the printer interface bus 203. When the Y1 through Y3 bits of the output of CMOS buffer 40-A equal the value of the rotary switch 110-B, and the alternate mode is active, then the data present at that time on the Y8 output of the CMOS buffer 40-A will be loaded, through the D input to the latch, into the addressable register designated by the address then appearing on Y5 through Y7 of the CMOS buffer 40-A data outputs. These eight addressable registers within the addressable latch 1-B are used by the control logic circuitry 310 to control miscellaneous DIDI board outputs, select a master DIDI board and enable the loading of the strobe range registers 90-C, 93-C of each DIDI board 240-243. 
     As can be seen in FIG. 4B, the rotary switch 110-B may be set to one of eight settings. The outputs (2, 3, 11, 9) of the rotary switch 110-B are connected to the inputs (A0-A2) of a comparator 113-B which compares the values on these inputs to the values appearing on the Y1-Y3 CMOS buffer 40-A outputs. When these values are equal, the comparator&#39;s output (corresponding to test point 117-B) will become a logic level high. This signal is input to an invertor 120-B whose output is the input to OR gate 123-B. The other input to this OR gate 123-B is the output of an OR gate 127-B whose inputs depend on the Auxiliary Mode (AUX STB) 107-A and the Phase Strobe (PHA STB) 150-A signals coming from the printer interface bus 203. When both inputs to the OR gate 123-B are low, the output is a logic level low. This output is an input to an OR gate 130-B. It can be seen that so long as this input is at a logic level low, the output of the OR gate 130-B depends on its other input. This input corresponds to output line Y4 of the CMOS input buffer 40-A. When Y4 is low, the output of the OR gate 130-B, and thus the input G of latch 1-B, are both low. Then so long as the RESET signal input to the latch 1-b through the CLR signal input remains at a logic level high, the data appearing on the D input to the addressable latch 1-B will be stored in the register corresponding to the eight bit address appearing on the S01-S03 inputs of the addressable latch 1-B. It can be seen from FIG. 4B that the address appearing at the inputs S01-S03 correspond to the data appearing on the Y5-Y7 outputs of the CMOS buffer 40-A, and the data appearing at input D corresponds to the output Y8 of the CMOS buffer 40-A. This data represents control data that was described above and determines, among other things, which printer is the master, whether a particular printer has been selected for initialization, and whether the printer is in reset. 
     i. Print and Phasing Control Circuit (309). 
     This circuit 309 cooperates with the control logic circuitry 310 to allow the printer 220-223 to perform phasing functions. The circuit 309 does this by monitoring strobes within the range established by the strobe range registers 90-C, 93-C on the particular DIDI board 240-243. If all of the strobes within the range were phase strobes sent over the PHA STB line 150-A, then this particular printer 220-223 will have no stroke data to print upon receiving the upcoming print signal over the PRT STB line 147-A. The DIDI board 240-243 then issues a request for phasing over the REQ phase line output from the driver 70-F and the printer 220-223 can commence phasing. If a data strobe is received over the DTA STB line 80-A within the printer&#39;s assigned range of strobe numbers, then the REQ phase output from the driver 70-F is immediately canceled and no phasing will occur. 
     j. Upstart Circuit (306) 
     upon power-up this circuit 306 cooperates with the control logic circuitry 310 to generate a low active UPSTART signal to the personal computer 201. The signal is sent through the printer interface bus 203. It remains active within an individual printer, until the DIDI board has been selected and initialized by the personal computer 201. It will remain active on the printer interface bus 203 until all printers 220-223 connected to the bus 203 have been initialized. An UPSTART LED 133-F on the DIDI board 240-243 remains lit as long as the DIDI board 240-243 has not been selected and initialized since power-up. 
     As shown in FIG. 4F, the Q output of flip-flop 137-F is a logic level high until the DIDI board 240-243 has been selected by the personal computer 201. This signal is one of the inputs to AND gate 138-D. As can be seen from FIG. 4D, the other input to the AND gate 138-D depends on whether the printer 220-223 is in auxiliary mode. If the DIDI board 240-243 is not in auxiliary mode, then the other input will also be a logic level high. The output of AND gate 138-D will then be a logic level high. It can be seen that this signal is one input to NAND gate 140-D. The other input to NAND gate 140-D is connected to the collector of transistor 3-E in the power up/down reset circuit 307. This input depends on whether the DIDI board 240-243 is in reset. If the DIDI board 240-243 is not in reset, then this input signal will also be a logic level high. The output of the NAND gate 140-D would then be a logic level low. This signal is sent to the personal computer 201 as UPSTART and indicates to the computer 201 that the system has been initialized and is not in RESET. 
     Once the DIDI board 240-243 has been initialized, the output Q3 of Latch 1-B transitions to a logic level high. The output Q of the flip-flop 137-F becomes a logic level high. Since the voltage on each side of the LED 133-F is the same, no current flows through the LED 133-F and it is no longer lit. The Q signal of flip-flop 137-F becomes a logic level low. It can be seen from FIGS. 4F and 4D that this causes the UPSTART signal on the printer interface bus to transition high, thus signalling the personal computer 201 that this DIDI board 240-243 is no longer in upstart mode. 
     It is not intended that the present invention be limited to the above described preferred embodiment. To the contrary, it is intended that this invention cover all alternatives, modifications and equivalents as may be included within the spirit and scope of the invention. By way of example only, there is here disclosed discrete digital circuitry for its control logic. A modification of this invention would be to substitute a suitable microprocessor, and perform identical logic operations through programming of the microprocessor. 
     IV. Software Control 
     The personal computer 201 employs software control to coordinate the operation and sequencing of the plurality of ink-jet printers 220-223. This software is shown in Appendix A. 
     The software uses outputs of the DIDI boards 240-243, including the encoder signal 142-D, upstart signal 143-D, the product detector output 141-D, and the printer ready signal 144-D, to control the timing and sequencing of the printer 220-223. The computer receives these signals through the printer interface bus 203 and the parallel printer interface 241. 
     The software begins a particular printing sequence by initializing each of the printers 220-223 as explained above. After initializing the printers, the software controls the downloading of stroke data to the individual printers. Once each printer has received its stroke data, the software monitors the encoder signal 142-D and the product detector signal 141-D, and at the appropriate time, commands the personal computer 201 to issue a print command over the PRT STB line 147-A of the printer interface bus 203. The printers then print the corresponding stroke data. The software then downloads the next set of stroke data and repeats the process described above. ##SPC1##