Method and apparatus for quieting the operation of a dot matrix printer

A method and apparatus for quieting the operation of a dot matrix printer by logically dividing the data to be printed among timed spaced printing passes is disclosed. A matrix of data to be printed is stored in a memory. A slice of data is selected from the stored data and the number of dots to be printed simultaneously is reduced by logically allocating the data in each slice among complementary submatrices. Each submatrix of data is printed substantially aligned with each other submatrix in two passes of the print head across the print medium to represent the entire selected slice of data. Noise reduction is achieved by reducing the number of data dots simultaneously printed at each print location.

FIELD OF THE INVENTION 
The present invention relates to a method and apparatus for quieting the 
operation of a dot matrix printer by reducing the number of data dots that 
are printed simultaneously. The data is allocated among complementary 
submatricies which are printed during time spaced passes of the print head 
to reduce printer noise. 
BACKGROUND OF THE INVENTION 
Dot matrix printers are one method of recording information stored in or 
generated by a data processing system. In dot matrix printers, each 
character or segment of a graphical image is comprised of a matrix of dots 
and blanks which together define the character. On close examination, the 
dots are arranged in a matrix of positions that together form horizontal 
rows and vertical columns that are adjacent, parallel and evenly spaced. 
The intersections of the rows and columns determine the locations of the 
dots and blanks, and the dots may overlap, depending on the spacing 
between matrix intersections and dot diameter. Each dot or blank 
comprising the printed character or image segment is represented in the 
data processing apparatus by a binary data element with a binary 1 
typically representing a dot and a binary 0 typically representing a 
blank. Data representing a typical character may be formed from a matrix 
having a vertical column height of eight dot positions and a horizontal 
width of five dot positions, although the number of positions in either 
direction may vary as desired. Although alphanumeric characters are used 
to describe the present invention, they are exemplary because the 
invention may be used for any dot matrix data, including graphics. 
Dot matrix printers typically include a horizontally reciprocating print 
head which is used to form the characters on a web such as paper. The 
print head usually consists of a vertically oriented column of seven or 
eight print wires, each of which may be selectively extended (or fired) as 
the print head traverses each horizontal line (or print line) of the web. 
When fired, the wire impacts an inked ribbon onto the web and thereby 
transfers the image. 
It is well-known that printers, including printers of the dot matrix type, 
are noisy during operation. This noise distracts workers, inhibits 
concentration, makes conversation difficult, and is generally undesirable. 
Various approaches have been tried to reduce printer noise, but none have 
been completely satisfactory, even though some clearly recognize that the 
volume of the noise generated by the printer is proportional to the number 
of print wires firing simultaneously. A first approach simply admits that 
the print head is inherently noisy and focuses on tightly enclosing the 
printer in an effort to contain the noise. While this has met with some 
success, it merely masks the symptoms without solving the underlying 
problem. Moreover, due to the inherent necessity of opening the enclosure 
to feed blank paper, remove printed paper, connect cables, etc., it is not 
possible to satisfactorily solve the problem using this technique. 
Another approach inclines the column of print wires of the print head. For 
example, one print head has the eight print wires arranged along a 
diagonal line. However, the timing of the firing of the canted print wires 
in this print head is complex, and does not reduce the number of 
simultaneous wire fires unless the character font is also specially 
designed to be at a different incline than the incline of the column of 
wires in the print head. In other words, when printing graphics, or a 
non-specialized font character, the noise level will not be diminished. In 
a related technique, the character font is specially designed to reduce 
the number of dots in each vertical column or slice of the character. 
Although fewer dots are simultaneously printed at each print location, it 
quiets operation only for this unique font, it is of no avail with other 
fonts or graphics, and it comes at the expense of degrading character 
resolution and quality. 
In still another technique, the print head makes two passes, printing every 
other column on each pass. This still does not solve the noise problem 
because it does not reduce the number of simultaneous wire fires at each 
of the individual print locations. 
Accordingly, it is an object of the present invention to provide a method 
and apparatus for quieting the operation of a dot matrix printer. 
It is a further object of the present invention to provide a method and 
apparatus for quieting the operation of a dot matrix printer and still 
print all of the data dots at substantially every print location. 
It is a further object of the present invention to provide a method and 
apparatus for quieting the operation of a dot matrix printer by reducing 
the number of print wires firing simultaneously at substantially every 
location without reducing the total number of data dots printed. 
It is a further object of the present invention to provide a method and 
apparatus for quieting the operation of a dot matrix printer by logically 
allocating the data to be printed at each location into complementary 
submatrices which are printed during time spaced printing operations. 
It is a further object of the present invention to provide a method and 
apparatus for selectively operating a dot matrix printer in a quiet mode 
of operation. 
SUMMARY OF THE INVENTION 
The operation of a dot matrix printer is quieted by logically dividing the 
data to be printed among timed spaced printing operations. A matrix of 
data to be printed is stored. A slice of data is selected from the stored 
matrix of data to be printed. The number of dots in the selected slice of 
data to be simultaneously printed is reduced by logically allocating the 
data among complementary submatrices. Each submatrix of data is printed 
substantially aligned with each corresponding submatrix to represent the 
entire selected slice of data. Each submatrix of data is printed at a 
different time so that there is a reduction in the number of data dots 
simultaneously printed at substantially every print location.

DESCRIPTION OF THE INVENTION 
The invention is described as applied to a printer of the type illustrated 
diagrammatically in FIG. 1, although it is to be understood that the 
invention is compatible with other dot matrix display devices. A dot 
matrix printer typically includes a platen 1 over which a print medium or 
web 2 is moved by means of two tractor devices or pin wheel drives 3, 4. 
The print medium may be, for example, a continuous web of paper having 
holes 7 parallel to the edges thereof. Each tractor device includes a 
wheel or belt 5 provided with outwardly extending pins 6 on the surface 
thereof. The pins 6 engage the holes 7 formed in the web to provide a 
positive drive. The two tractor wheels 5 are mounted on a common shaft 8 
which may be rotated as required by a motor 9 to advance the medium over 
the platen. The motor 9 is typically controlled by a print medium or web 
control, as illustrated in FIG. 4. 
The printer includes a traversing print head 11 which is mounted on a 
support 12 extending over the platen 1 so that the medium 2 passes between 
the platen and the print head 11. The print head 11 can be moved along 
support 12 by motor 13 by way of a belt or rotating threaded shaft. The 
movement of the print head is controlled by a print head movement 
controller, as illustrated in FIG. 4. The combined movement of the paper 
and the movement of the print head allow the print head to reach most any 
point on the surface of the medium 2. 
The impacting portion of the print head 11, as illustrated in FIG. 2, is 
typically formed in part with a column of eight printing elements 14 
arranged in a 1 by 8 vertically oriented matrix and supported in a body 
portion 15. The elements 14 are typically individual wires which can be 
selectively moved axially by, for example, an electromagnet. Each wire is 
separately linked to an electromagnet so that it may be individually fired 
as necessary or desirable in timed relation with the movement of the print 
head 11. Each fired print wire drives an inked ribbon (not shown) onto the 
medium 2 to form a dot thereon. 
As the print head 11 traverses the width of the paper along the length of 
the support 12, the data defining the characters to be printed is provided 
to the electromagnets in a coordinated, timed sequence that fires the 
associated print wires. Moving from left to right, as shown by arrow 18, 
the print wires 14 are selectively operated to simultaneously print the 
complete left vertical column of the character first, then to sequentially 
print the succeeding vertical columns on a column by column basis until 
the rightmost column is printed. Specifically, as the print head 11 
reaches the print location of column 0 for the letter E as illustrated in 
FIG. 2, print wires 1 through 7 are simultaneoully advanced to strike the 
ribbon against the print medium, printing the seven dots for column 0, and 
are then retracted. As the print head approaches the first location of 
column 1, print wires 1, 4, and 7 are simultaneously advanced, and this 
pattern continues as the print head moves through the print locations of 
columns 2, 3, and 4 ultimately to print the entire character as 
illustrated. The size and position of the character and the distance 
between adjacent dots in the horizontal direction is controlled by varying 
the speed of movement of the head in relation to the timing of the 
operation of the printing elements. The spacing of the dots in the 
vertical direction corresponds to the spacing of the printing elements 14 
and the movement or po ition of the web. 
To print characters, it is necessary to store, or have otherwise available, 
a matrix of binary data, with each matrix defining, at least in part, the 
shape of a respective character. This data is schematically illustrated as 
1's and 0's, and FIG. 3 illustrates the logical ones and zeros as may be 
stored in a character data storage device to represent the binary data 
elements defining the shape of the letter E of FIG. 2. The matrix 
includes, for example, five vertical columns labelled 0-4 and eight 
horizontal rows labelled 0-7 that together form a 5.times.8 matrix 
defining each character. When a binary 1 is stored in a data storage 
location, the corresponding printing element is operated to imprint a dot 
on the printing medium, and when a binary 0 is stored the printing element 
is not operated. 
FIG. 4 illustrates diagrammatically an example of apparatus for displaying 
dot matrix characters that may be selectively printed in a normal mode or 
quiet mode, in accordance with the present invention. The circuitry 
includes a control unit 31, a character data storage 32, a logic unit 33, 
a print medium or web control 34 connected to the web motor 9, a print 
head movement control 36 connected to the print head motor 13, and a print 
head actuator 35 connected to the print head 15 to control the actuation 
of each of the individual print wires 14. 
The control unit 31 includes means for enabling the "quiet write38 mode, 
means for governing and coordinating the data processing and mechanical 
functions of the printer, and means for communicating with a host 
computer. Management of the data processing may include control of the 
character data storage means 32 and the logic unit 33. Control of the 
mechanical operation of the printer may include control of the movement of 
the web and print head, and the actuation of the print wires in a timed 
sequence with movement of the web and print head. 
The binary data defining the character elements is stored in the character 
data storage means 32, which may include a plurality of storage devices 
such as semiconductor memories. Operation of the character data storage 
means is governed by the control unit 31. Binary data representing either 
a dot or a blank in a matrix of positions arranged in horizontal rows and 
vertical columns is stored and represents the data to be printed, such as 
a character. Alternatively, this data may be provided by a host data 
processor. As a further alternative, the character data storage 32 may be 
a print buffer containing data representing a graphical image to be 
printed. 
The logic unit 33, in response to signals (including data) from the control 
unit 31 and character data storage 32, includes means for selecting a 
slice of data from the character data storage means, means for logically 
reducing the number of data dots by allocating the data among 
complementary submatrices, and means for outputting this data to the print 
head in a properly timed sequence. As instructed by the control unit, the 
"quiet write" functions of the logic unit 33 may be enabled by the 
operator as desired, such as by a pushbutton switch on the front panel of 
the printer. 
The web control 34, in response to signals from the control unit 31, 
provides signals to the motor 9 to control the movement of the web 2 over 
the platen and past the print head. 
The print head movement control 36, in response to signals from the control 
unit 31, provides signals to the print head motor 13 to control the 
translational movement of the print head along support 12 and across the 
web 2. 
The print head actuator 35, in response to signals from the control unit 
31, provides signals to actuate the individual printing elements 14 of the 
print head 11 in accordance with the data signals from the data storage 
unit 32 and from logic unit 33. The control unit 31 typically coordinates 
the flow of data to the print head actuator with the physical movement of 
the print head. 
As previously mentioned, the print head noise is a function of the number 
of print wires simultaneously fired at any instant in time. The present 
invention accordingly reduces printer noise by reducing the number of 
wires to be fired simultaneously. This is done by logically allocating or 
distributing the data dots to be printed over time spaced printing 
operations, e.g. multiple passes of the print head across the print 
medium. By prudent selection of the wires to be fired on each pass of the 
print head, noise can be minimized while data throughput is optimized. The 
throughput optimization consists of minimizing the number of passes 
required, and printing the passes at the highest allowable speed. 
Referring to FIG. 5, a block diagram illustrates the sequential flow of 
logical operations necessary to print in the quiet mode. In block 51 a 
matrix of data to be printed is stored. The data may be supplied as the 
output from a host computer or it may be stored within the printer in a 
read only memory, and it is typically stored in the previously described 
matrix of eight rows and five columns. One skilled in the art will readily 
appreciate that the data may be stored or processed in any convenient 
manner. However, to aid in describing the present invention it is assumed 
that the data is stored as illustrated in FIG. 3 in a pattern that 
represents the data dots substantially as they are to be printed on the 
web. 
A slice of data is selected from the data to be printed, as illustrated in 
block 52. This slice of data is an entire vertical column of data as would 
normally be simultaneously printed by the print wires at one print 
location. Thus, this slice of data is taken in the direction parallel to 
the linear printing matrix defined by the print wires 14 of the print 
head. In the illustrated embodiment the slice is represented by any one of 
the vertically oriented columns 0-4 of eight binary data bits (see FIG. 
3). 
The number of data dots in the selected slice of data to be simultaneously 
printed is reduced by logically allocating the data into complementary 
submatrices, as illustrated in block 53. The data is allocated by 
logically dividing it substantially in half, forming a pair of 
complementary submatrices that together comprise the entire selected slice 
of data. It is to be understood, however, that the data could be allocated 
among a different number of submatrices. 
Each submatrix of data is printed at a different time, as illustrated in 
blocks 54A, 54B, so that there is a reduction in the number of data dots 
simultaneously printed at substantially every print location. Each 
submatrix is aligned with its companion or complementary submatrix 
(submatrices), and when the printing operations are finished the entire 
slice of data will have been printed. 
The logical allocation of the data in the selected slice is further 
described in FIGS. 6, 7 and 8. In FIG. 6, the first slice of data is 
selected from column 0 of the data stored in the matrix of FIG. 3. This 
slice of data represents an original wire fire pattern 60 as shown in FIG. 
6, and it occupies bit positions 0 through 7, with positions 0 through 3 
and 4 through 7 being defined as the lower and upper nibbles, 
respectively. 
Using the upper and lower nibbles of the original wire fire pattern as 
addresses, a look-up table 61 is accessed to define how the original data 
will be logically divided into two complementary submatrices 62, 63. The 
look-up table (FIG. 8) contains the two pass quiet wire fire patterns for 
every possible nibble pattern, i.e. 24 or 16 possible combinations. The 
data slice is divided into upper and lower nibbles to reduce the number of 
bit combinations which must be addressed to determine which wires should 
be fired on each pass of the print head across the print medium. 
Alternatively, a look-up table with 28 address locations or other 
dimensions can also be used in accordance with the invention. 
Suitable control means, such as control unit 31 of FIG. 4, records whether 
the print head is on its first or second pass, whether the selected slice 
is odd or even, and whether the upper or lower nibble data pattern is 
being used to address the look-up table. Using this information, the 
addressed data in the look-up table defines the data dots to be printed on 
each of the first and second passes of the print head. In this example, 
the original data slice of seven data dots has been divided into two 
submatrices of four and three dots, which together comprise the original 
wire fire pattern 60. 
The invention may be practiced in a real time mode, with the quiet wire 
pattern being generated in timed sequence with movement of the print head. 
In this mode the original wire fire data pattern from the character data 
storage 32 or other print line buffer is read out in timed sequence with 
the translational movement of the print head. The quiet wire fire pattern 
data is read from the look-up table, assembled into a full column (upper 
and lower nibbles) and provided to the print head actuator 35 so that it 
is not necessary to store the data for the quiet wire fire pattern. Upon 
completing the first pass, the same original wire fire data pattern is 
again selected in a timed sequence to assemble the complementary quiet 
wire fire pattern for the second pass. Alternatively, both quiet wire fire 
patterns may be generated, with one being used in real time for the 
current printing pass and one being stored for use in the succeeding 
printing pass. 
As previously mentioned, all stored data is ultimately printed in two 
passes of the print head. A distinction between even and odd numbered 
slices is made to more closely divide the data in half and optimize noise 
reduction in all cases. For example, the printing of two horizontal rows 
of adjacent or overlapping data dots could result in the printing of all 
dots on one pass, and no dots on the second pass. By distinguishing 
between first and second passes, adjacent data dots are arbitrarily 
allocated and printed on alternate passes of the print head, reducing 
noise. Thus, on the first pass of the print head, for even numbered 
slices, the upper portion of the bit pattern to be printed is addressed by 
the upper nibble and selected from the first data column of FIG. 8; and 
the lower portion of the bit pattern to be printed is addressed by the 
lower nibble and selected from the second data column of FIG. 8. 
Similarly, for odd numbered slices, the bit pattern addressed by the upper 
nibble is selected from the second data column and the bit pattern 
addressed by the lower nibble is selected from the first data column. 
The operation of the invention will now be described by example, with 
specific reference to the printing of the letter "E" as shown in the 
figures; however, it is noted that this discussion is extendable to any 
data to be printed. Referring to FIG. 4, the binary data representing the 
character "E" to be printed is shown in FIG. 3 as a matrix of binary 1 and 
binary 0 data bits. This data is transferred to a character data storage 
device 32 of FIG. 4. Assuming left to right printing, the first slice of 
data selected is the left-most column containing a binary 0 at bit 
position 0 and binary 1's at bit positions 1 through 7, as shown in FIG. 
6. In the prior art, all seven bits would be printed simultaneously in one 
pass of the print head. According to the present invention, the slice is 
divided into a lower nibble comprising bits 0 through 3 (0111) and an 
upper nibble comprising bits 4 through 7 (1111). Since this is the first 
slice to be printed, it is arbitrarily assigned to be even data slice "0". 
The data in the upper and lower nibbles is then used as the address to 
access the wire fire replacement table to determine which data dots to 
print in the first pass of the print head. Thus, the table indicates that 
for an even data slice, first pass, lower nibble, and bit pattern 0111, 
that the bit pattern 0010 is identified as a first component. Similarly, 
for the even data slice, first pass, upper nibble, and data pattern 1111, 
that the bit pattern 1010 is identified as the second component. These bit 
pattern components are combined to form the wire fire pattern 00101010 
(see FIGS. 6 and 7) which is output to the print head on the first pass. 
The next slice of data, column 1 of FIG. 3, has data bits of 01001001 
divided into lower nibble 0100 and upper nibble 1001. The nibbles 
themselves are again used to address the proper data locations of the 
look-up table. Since this is an odd column number, the resulting first 
pass print data from the table is the bit pattern 01000001. This process 
is repeated in sequence for each data slice on the first pass. A signal is 
then sent to indicate that the first print pass has been completed. This 
enables the portion of the look-up table corresponding to the second print 
pass. 
The second print pass, assuming left to right printing, again begins with 
the first slice of data to be printed, even data slice "0," which contains 
the same data as used for the first pass. The data is again divided into 
lower nibble bit pattern 0111 and upper nibble bit pattern 1111. However, 
the data to be printed on this second pass is defined in a different 
portion of the look-up table, and is complementary to that printed on the 
first pass. Thus, the first component corresponding to the lower nibble is 
0010, and the second component corresponding to the upper nibble is 1010. 
Thus, with the second pass of the print head, the entire slice for column 
0 has been printed. The next data slice, column 1, is then selected for 
processing. It contains the binary data 01001001, and is divided into 
lower nibble 0100 and upper nibble 1001 for addressing the look-up table. 
The corresponding data from the look-up table for an odd slice, second 
print pass is 0000, and 1000, which is collectively output to the print 
head. This process is repeated until all of the available slices have been 
printed. 
In addition to reducing by about one half the number of data dots that are 
simultaneously fired at each print position, the look-up table is designed 
to reduce the firing frequency of each wire by separating adjacent dots by 
a space, both vertically and horizontally. See, for example, FIG. 7. By so 
decreasing the firing frequency, the print head speed may be increased 
while still achieving the desired print density. This compensates for the 
reduction in throughput that is inherent in this invention. Moreover, the 
higher print head speeds and increased number of passes create additional 
head movement, increasing the airflow over the heat sink and reducing heat 
buildup. 
In the drawings and specification, there has been set forth a preferred 
embodiment of the invention, and although specific terms are employed they 
are used in a generic and descriptive sense only and not for purposes of 
limitation. Rows and columns may be interchanged, and the orientation of 
the print wires may be changed. In addition the invention may be used for 
overlapping dots, and it may allocate the data between more than two 
submatrices, or more than two nibbles, as necessary or desirable.