Abstract:
An apparatus for delivering one or more messages to a computer printer sufficiently self-contained so as to require neither support or nor interface with additional equipment in order to deliver the one or more messages.

Description:
FIELD OF THE INVENTION  
       [0001]     This invention relates to handheld devices that deliver stored messages to computer printers for testing or other purposes.  
       BACKGROUND OF THE INVENTION  
       [0002]     The present invention relates to a handheld device that will send stored messages to an attached computer printer. The device, when connected to the computer printer, requires no battery or external power to operate.  
         [0003]     Conventionally, devices which connect to computer printers are meant to perform functional tests, i.e., to test the operation of one or more functions of the subject computer printer. In the present invention, the actual message delivered to the computer printer is not limited to computer printer test purposes and, as will be described in following sections, can be used for many other purposes unrelated to computer printer testing. However, since most prior art is directed toward the use of such devices to test computer printers, discussion in this section is focused on delivering messages to computer printers for the purpose of performing functional tests.  
         [0004]     Computer printer tests are performed for a variety of reasons. The purposes of such tests include testing of the paper handling mechanism, testing of the inking or toner properties, testing of the character forming ability, testing of the various controls found on the subject printer, testing of internal electronics or testing of final print quality.  
         [0005]     For these and other similar test purposes, devices are connected to computer printers so that testing can occur during manufacture of the computer printer, during quality control inspections, as incoming inspection by purchasers of computer printers, during periodic maintenance or while repairing the computer printer as the result of a failure. The following examples are considered to be representative of the prior art and are burdened by the disadvantages set forth herein.  
         [0006]     One such testing device, U.S. Pat. No. 5,729,555 to Ichikawa, stores an array of operating parameters for the printer under test, and, under control of a master test program, randomly cycles through various driving functions, measuring the results either by monitoring status messages from the printer or by human review. In this device, each type of printer to be tested requires its own operating parameter array and the operating parameter array must be changed for each type of printer device tested.  
         [0007]     Another test device, U.S. Pat. No. 6,400,462 to Hille, is intended for operation by trained maintenance personnel. This device provides a display monitor so that different menus of test activities can be presented to the operator resulting in test messages generated and sent to the printer under test. The results are monitored by the operator so that an appropriate course of operator intervention can be determined.  
         [0008]     Yet another device, U.S. Pat. No. 5,619,307 to Machino, et al., attempts to analyze the results of a status query and automatically create a set of test patterns to be delivered to the printer. The ability to analyze results from previously programmed computer algorithms residing in and executed by the test device. In this instance, the test device itself resembles a small computer.  
         [0009]     Still another testing device U.S. Pat. No. 5,270,774 to Kikuchi is limited to a specific type of computer printer, an electrophotographic imaging device. This device is itself sufficiently complex so as to resemble the computers to which the printer is normally connected.  
         [0010]     As an additional drawback, none of the above devices are easily portable and all require external power or replaceable/rechargeable battery power.  
         [0011]     The above examples show that computer printer testers can be complex, expensive to manufacture and demanding of operator training. Therefore, there is a need for an apparatus which is simple in function, inexpensive to manufacture, portable, non-demanding of operator training, can be operated without outside power or battery power and can deliver a message to a computer printer, which message may be used to test the computer printer.  
       SUMMARY OF THE INVENTION  
       [0012]     It is an object of the present invention to provide an apparatus to deliver one or more messages to a computer printer.  
         [0013]     It is an additional object of the present invention to provide an apparatus for delivering one or more messages to a computer printer which apparatus connects to the same connector port on the computer printer that is normally used to connect the printer to the computer. The present invention may connect directly to the printer port or it may be connected through an intervening, industry-standard cable.  
         [0014]     It is an additional object of the present invention to provide an apparatus for delivering one or more messages to a computer printer which apparatus is compact enough to be held comfortably in one hand.  
         [0015]     Further, it is an object of the present invention to provide an apparatus for delivering one or more messages to a computer printer which apparatus is sufficiently self-contained so as to require neither support of nor interface with additional equipment, except for the object computer printer, in order to deliver one or more messages to a computer printer.  
         [0016]     It is yet an additional object of the present invention to provide an apparatus for delivering one or more messages to a computer printer which apparatus requires no battery or external power to deliver one or more messages to a computer printer.  
         [0017]     It is yet an additional object of the present invention to provide an apparatus for delivering one or more messages to a computer printer which apparatus is simple enough in construction and operation that it can be operated by relatively untrained personnel.  
         [0018]     It is yet an additional object of the present invention to provide an apparatus for delivering one or more messages to a computer printer wherein the message(s) to be provided is stored within the apparatus.  
         [0019]     It is a further object of the present invention to provide an apparatus for delivering one or more messages to a computer printer, wherein the message(s) stored within the apparatus may be easily changed to accommodate various types of computer printers and/or various testing purposes.  
         [0020]     It is yet an additional object of the present invention to provide an apparatus for delivering one or more messages to a computer printer, which apparatus contains energy collection and storage means so that, when connected to the computer printer, the apparatus can collect and store sufficient energy from the connected printer so as to be able to deliver one or more messages to the connected computer printer without using an additional power supply or batteries.  
         [0021]     It is yet an additional object of the present invention to provide an apparatus for delivering one or more messages to a computer printer, which apparatus contains sufficient controls so that an operator can initiate the process of delivering one or more messages to the computer printer.  
         [0022]     It is another object of the present invention to provide a method to deliver one or more messages to a computer printer.  
         [0023]     It is an additional object of the present invention to provide a method of delivering one or more messages to a computer printer, which method is simple enough to implement that it can be executed by relatively untrained personnel.  
         [0024]     It is yet an additional object of the present invention to provide an apparatus and a method for delivering one or more messages to a computer printer, wherein neither the content of the message nor the type of computer printer targeted are relevant to either the design of the apparatus or its method of operation. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0025]      FIG. 1  is a break-away perspective depicting the preferred embodiment of the present invention.  
         [0026]      FIG. 2  is a block diagram of the preferred embodiment of the present invention depicted in  FIG. 1 .  
         [0027]      FIG. 3  is a schematic drawing of the preferred embodiment of the present invention depicted in  FIG. 1 .  
         [0028]      FIG. 4  is a table linking functions shown in  FIG. 2  to pin numbers and functions shown in  FIG. 3 .  
         [0029]      FIGS. 5-10  are representative test patterns generated by the present invention.  
         [0030]      FIG. 11  is a break-away perspective depicting an alternative embodiment of the present invention.  
         [0031]      FIG. 12  is a schematic drawing of the alternate embodiment of the present invention depicted in  FIG. 11 .  
         [0032]      FIG. 13  is a breakaway perspective drawing of an alternative embodiment of the present invention.  
         [0033]      FIG. 14  is a schematic drawing of the alternative embodiment of the present invention depicted in  FIG. 13 .  
         [0034]      FIG. 15  is a schematic drawing of an alternate embodiment of the present invention.  
         [0035]      FIG. 16  is a schematic drawing of an alternate embodiment of the present invention.  
         [0036]      FIG. 17  is a schematic drawing of an alternate embodiment of the present invention. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0037]      FIG. 1  illustrates the preferred embodiment of the present invention. A housing  2  whose approximate dimensions L=2.75 in., W=2.25 in., T=0.75 in, are such that the housing  2  can be held readily in one hand. Housing  2  encloses and supports a connector  4 , a printed circuit board  16  (viewed through the break-away corner of the housing), and two push-buttons  8  and  10 .  
         [0038]     Also shown is a connector mount  6  and a second connector mount  7  (shown displaced to accommodate the breakout view). The portion of printed circuit board  16  seen in the break-away contains a microcontroller  40  and two electronic components  18  and  19 . Imprinted on housing  2  and identifying the functions of pushbuttons  8  and  10  are respective indicia legends, “PRINT TEST 1”  12  and “PRINT TEST 2”  14 .  
         [0039]     Connector  4  shown is of the type commonly known as “DB25F”. It protrudes through a face  5  of housing  2  and serves as the point of connection between the present invention and the computer printer  48 . In the preferred embodiment, cable  46  completes the connection to computer printer  48  (although the present invention can be configured such that there is no need for such a cable  46 ). Connector  42 , mounted on one end of cable  46  mates with connector  4  of the present invention. Connector  44 , mounted on the other end of cable  46 , mates with connector  50  located on computer printer  48 . Because cable  46  is a type normally used to connect a computer printer to a computer (not shown in  FIG. 1 ), cable  46  is widely available wherever computer printers are used.  
         [0040]     The method of the present invention of sending a message to the computer printer  48  requires two steps. At Step  1 , the operator connects the apparatus of the present invention to computer printer  48 , either directly or by using cable  46  as described above, and then turns the power on computer printer  48 . At Step  2 , the operator depresses either pushbutton  8  or pushbutton  10 . Either pushbutton sends a message to computer printer  48 , which message differs from the message sent by the other pushbutton. By choosing a particular pushbutton, an operator sends different messages to computer printer  48 . Of course, more than two pushbuttons may be utilized. Each message will control the printer to print a pattern.  
         [0041]     Message(s) delivered by the present invention are used to test any type of printer. The following discussion describes sample messages representative of some (but not all) types of computer printers.  
         [0042]     For example, if computer printer  48  is a monochrome laser printer, depressing pushbutton  8  delivers a message to computer printer  48  which causes computer printer  48  to print the test patterns depicted in  FIGS. 5-8 .  FIG. 5  is a blank page, printed to test the printer&#39;s mechanical functions and to ensure proper paper orientation.  FIG. 6  is a pattern of 50% gray scale across the entire page with a pair of special symbols printed at the edges to test “ghosting” and “bleeding”.  FIG. 7  is a sheet printed entirely in black, which tests the ability of computer printer to demagnetize its print drum and eliminate static charge from the printed sheet.  FIG. 8  is an alphanumeric pattern interspersed with arrays of varying gray scale gradients.  
         [0043]     Alternatively, depressing pushbutton  10  delivers a message to computer printer  48  which causes only the test pattern in  FIG. 7  to be printed. This pattern is used to prepare computer printer  48  for shipping or for other maintenance purposes.  
         [0044]     If computer printer  48  is a color inkjet printer, depressing pushbutton  8  delivers a message to computer printer  48  to print the test patterns depicted in  FIG. 9 .  FIG. 9  is a sheet printed with a grid of empty boxes interspersed with an array of filled rectangles and some diagonal lines. Because computer  48  is a color printer, the delivered message will instruct computer printer  48  to repeat the same test page printed in each of the three basic colors, cyan, magenta and yellow.  
         [0045]     Alternatively, depressing pushbutton  10  delivers a message to computer printer  48  which causes the test pattern in  FIG. 10  to be printed in black/white. This pattern incorporates all of the elements of  FIG. 9  with the addition of a gradient gray scale (10% gray to 90% gray).  
         [0046]     If computer printer  48  is a color laser printer, depressing pushbutton  8  delivers a message to computer printer  48  which causes computer printer  48  to print the test patterns depicted in  FIGS. 5, 6 ,  7  and  8 .  FIG. 5 , a blank page, is printed to test printer mechanical functions and to ensure proper paper orientation.  FIG. 6  is a pattern of 50% gray scale across the entire page with a pair of special symbols printed at the edges to test “ghosting” and “bleeding”. Because computer printer  48  is a color printer,  FIG. 6  is repeated for each of the three colors (magenta, yellow, cyan).  FIG. 7 , a sheet printed entirely in black, tests the ability of computer printer to demagnetize its print drum and eliminate static charge from the printed sheet.  FIG. 8  is an alphanumeric pattern interspersed with dot patterns of varying densities.  
         [0047]     Alternatively, depressing pushbutton  10  delivers a message to computer printer  48  which causes the test pattern in  FIG. 7  (black only) to be printed. This pattern is used to prepare computer printer  48  for shipping or for other maintenance purposes.  
         [0048]     In this manner, a variety of messages serving a variety of purposes can be stored in the present invention and subsequently delivered to computer printer  48 , merely at the push of a button. The printing method used by any computer printer to which the present invention may be connected is not intrinsic to the design or operation of the present invention.  
         [0049]     As described above, the embodiment depicted in  FIG. 1  uses cable  46 , in association with connector  4 , to complete the connection to computer printer  48 . In an alternative embodiment, connector  4  on face  5  is replaced with a connector similar to connector  44  from cable  46 , enabling the present invention to be connected directly to connector  50  of computer printer  48 , thereby eliminating the need for cable  46 .  
         [0050]      FIG. 2  is a block diagram of the preferred embodiment of the present invention depicted in  FIG. 1 . As described above, connector  4 , either directly or via optional cable  46 , connects the present invention to the computer printer  48  (Ref.  FIG. 1 ). Referring to  FIG. 2 , a “READY” signal  32 , indicating that computer printer  48  is powered up and ready to be tested, is received from computer printer  48  (Ref.  FIG. 1 ) via connector  4 . This “READY” signal  32  is routed to Energy Conversion and Storage Device  30  where it is converted into energy, which energy is then stored and distributed throughout the present invention in the form of derived power  34 . Derived power  34  enables the present invention to deliver one or more messages to computer printer  48  without the requirement of an additional power source or batteries. Of course, the present invention could be configured such that the energy needed to operate the device is obtained from a battery or through a power cord to a wall outlet.  
         [0051]     Derived Power  34  is routed to microcontroller  40  and timing device  42 . Microcontroller  40  may be any commercially available micro computer. As is characteristic in such microcontrollers, various internal elements are organized, either at the time of manufacture (dedicated), or under control of a set of programmed instructions (programmable), to perform desired functions. For purposes of simplicity, such organization of elements will be referred to by their functional names. Referring to  FIG. 2 , message pump  29 , message memory  26  and Set  31  are examples of such organization of elements.  
         [0052]     Shortly after Timing Device  42  receives Derived Power  34 , it issues a “wake up” command  43  to microcontroller  40 . Microcontroller  40 , now in an alert condition in response to “wake up” command  43 , monitors Control Signals  38  which it receives from computer printer  48  (Ref.  FIG. 1 ) via connector  4 . At the same time, Message Pump  24  section of microcontroller  40  monitors the state of Pushbutton Array  27  which state it receives via PB Signals  28 .  
         [0053]     When an operator depresses one of the pushbuttons in Pushbutton Array  27 , PB Signals  28  changes state. Message Pump  24  detects and decodes the change in state and then sends Message Selector signal  29  to Message Memory  26  section of microcontroller  40 . Message Selector signal  29  instructs Message Memory  26  which one of the Set  31  of messages, previously stored in Message Memory  26 , is selected. Then, under direction of microcontroller  40 , Message Memory  26  converts the selected message into Message Data  36 , a sequence of digital signals that computers printers use to accomplish printing of a document or image, as understood by one having ordinary skill in the art. Message Data  36  is then conveyed to computer printer  48  (Ref.  FIG. 1 ) via connector  4 . Microcontroller  40  is controlled by a set of steps or a program which is used to operate the preferred embodiment of the printer tester described herein. A sample listing of the source code for such a program follows:  
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               TestMessager SourceCode                                .device AT90S2313            .equ   SREG   =$3f       .equ   SPL   =$3d       .equ   GIMSK   =$3b       .equ   GIFR   =$3a       .equ   MCUCR   =$35       .equ   PORTB   =$18       .equ   DDRB   =$17       .equ   PINB   =$16       .equ   PORTD   =$12       .equ   DDRD   =$11       .equ   PIND   =$10            ;***** Bit Definitions            .equ   SP7   =7       .equ   SP6   =6       .equ   SP5   =5       .equ   SP4   =4       .equ   SP3   =3       .equ   SP2   =2       .equ   SP1   =1       .equ   SP0   =0       .equ   INT1   =7       .equ   INT0   =6       .equ   PB7   =7       .equ   PB6   =6       .equ   PB5   =5       .equ   PB4   =4       .equ   PB3   =3       .equ   PB2   =2       .equ   PB1   =1       .equ   PB0   =0       .equ   DDB7   =7       .equ   DDB6   =6       .equ   DDB5   =5       .equ   DDB4   =4       .equ   DDB3   =3       .equ   DDB2   =2       .equ   DDB1   =1       .equ   DDB0   =0       .equ   PINB7   =7       .equ   PINB6   =6       .equ   PINB5   =5       .equ   PINB4   =4       .equ   PINB3   =3       .equ   PINB2   =2       .equ   PINB1   =1       .equ   PINB0   =0       .equ   PD6   =6       .equ   PD5   =5       .equ   PD4   =4       .equ   PD3   =3       .equ   PD2   =2       .equ   PD1   =1       .equ   PD0   =0       .def   XL   =r26       .def   XH   =r27       .def   YL   =r28       .def   YH   =r29       .def   ZL   =r30       .def   ZN   =r31            .equ   RAMEND   =$DF   ;Last On-Chip SRAM Location            .CSEG       .0RG 0                rjmp   Reset           rjmp   Intup0           rjmp   Intup1            .0RG $010                Reset:                ldi r16,$0ff           ldi r17,$0ff           ldi r18,$0f                Setup:                dec r16           brne setup           dec r17           brne setup           dec r18           brne setup           ldi r16,RAMEND           out SPL,r16           ldi r16,$ff           out PORTB,r16           out DDRB,r16           out PORTD,r16           ldi r16,$02           out DDRD,r16           ldi r16,$02a           out MCUCR,r16           in r16,SREG           ori r16,$80           out SREG,r16           ldi r16,$0c0           out GIMSK,r16                Main:                nop           sleep           nop           rjmp Main                XmtStg:                lpm           sbrc r0,7           ret           rcall XmtByt           adiw ZL,1           rjmp XmtStg                XmtByt:                sbic PIND,0           rjmp XmtByt           out PORTB,r0           ldi r16,$7c           out PORTD,r16                WaiBsy:                sbis PIND,0           rjmp WaiBsy           ldi r16,$7e           out PORTD,r16           ret                Intup0:                rjmp Button5                Intup1:                sbis PIND,6           rjmp Button1           sbis PIND,5           rjmp Button2           sbis PIND,4           rjmp Button3           rjmp Button4                Button2:                rjmp blnk                BlnkPage:                .db 0x1b,0x26,0x6c,0x30,0x4f ;portrait           .db “BLANK ”,0x1b, 0x45,255                blnk:                ldi ZH,high(2*BlnkPage)           ldi ZL,low(2*BlnkPage)           rcall XmtStg           rjmp PrnTest                TestGph1:                .db 0x1b,0x2a,“p0x0y”           .db 0x1b,0x2a,“c198a198b100g2P”           .db 0x1b,0x2a,“p200x0Y”           .db 0x1b,0x2a,“c198a198b90g2P”           .db 0x1b,0x2a,“p400x0Y”           .db 0x1b,0x2a,“c198a198b70g2P”           .db 0x1b,0x2a,“p600x0Y”           .db 0x1b,0x2a,“c198a198b50g2P”           .db 0x1b,0x2a,“p800x0Y”           .db 0x1b,0x2a,“c198a198b30g2P”           .db 0x1b,0x2a,“p1000x0Y”           .db 0x1b,0x2a,“c198a198b10g2P”           .db 0x1b,0x2a,“p1200x0Y”           .db 0x1b,0x2a,“c198a198b10g2P”           .db 0x1b,0x2a,“p1400x0Y”           .db 0x1b,0x2a,“c198a198b30g2P”           .db 0x1b,0x2a,“p1600x0Y”           .db 0x1b,0x2a,“c198a198b50g2P”           .db 0x1b,0x2a,“p1800x0Y”           .db 0x1b,0x2a,“c198a198b70g2P”           .db 0x1b,0x2a,“p2000x0Y”           .db 0x1b,0x2a,“c198a198b90g2P”           .db 0x1b,0x2a,“p2200x0Y”           .db 0x1b,0x2a,“c198a198b100g2P”           .db 0x1b,0x2a,“p0x1400Y”           .db 0x1b,0x2a,“c198a198b10g2P”           .db 0x1b,0x2a,“p200x1400Y”           .db 0x1b,0x2a,“c198a198b30g2P”           .db 0x1b,0x2a,“p400x1400Y”           .db 0x1b,0x2a,“c198a198b50g2P ”           .db 0x1b,0x2a,“p600x1400Y”           .db 0x1b,0x2a,“c198a198b70g2P”           .db 0x1b,0x2a,“p800x1400Y”           .db 0x1b,0x2a,“c198a198b90g2P”           .db 0x1b,0x2a,“p1000x1400Y”           .db 0x1b,0x2a,“c198a198b100g2P”           .db 0x1b,0x2a,“p1200x1400Y”           .db 0x1b,0x2a,“c198a198b100g2P”           .db 0x1b,0x2a,“p1400x1400Y”           .db 0x1b,0x2a,“c198a198b90g2P”           .db 0x1b,0x2a,“p1600x1400Y”           .db 0x1b,0x2a,“c198a198b70g2P”           .db 0x1b,0x2a,“p1800x1400Y”           .db 0x1b,0x2a,“c198a198b50g2P”           .db 0x1b,0x2a,“p2000x1400Y”           .db 0x1b,0x2a,“c198a198b30g2P”           .db 0x1b,0x2a,“p2200x1400Y”           .db 0x1b,0x2a,“c198a198b10g2P”           .db 0x1b,0x2a,“p0x2800Y”           .db 0x1b,0x2a,“c198a198b100g2P”           .db 0x1b,0x2a,“p200x2800Y”           .db 0x1b,0x2a,“c198a198b90g2P”           .db 0x1b,0x2a,“p400x2800Y”           .db 0x1b,0x2a,“c198a198b70g2P”           .db 0x1b,0x2a,“p600x2800Y”           .db 0x1b,0x2a,“c198a198b50g2P”           .db 0x1b,0x2a,“p800x2800Y”           .db 0x1b,0x2a,“c198a198b30g2P”           .db 0x1b,0x2a,“p1000x2800Y”           .db 0x1b,0x2a,“c198a198b10g2P”           .db 0x1b,0x2a,“p1200x2800Y”           .db 0x1b,0x2a,“c198a198b10g2P”           .db 0x1b,0x2a,“p1400x2800Y”           .db 0x1b,0x2a,“c198a198b30g2P”           .db 0x1b,0x2a,“p1600x2800Y”           .db 0x1b,0x2a,“c198a198b50g2P”           .db 0x1b,0x2a,“p1800x2800Y”           .db 0x1b,0x2a,“c198a198b70g2P”           .db 0x1b,0x2a,“p2000x2800Y”           .db 0x1b,0x2a,“c198a198b90g2P”           .db 0x1b,0x2a,“p2200x2800Y”           .db 0x1b,0x2a,“c198a198b100g2P”,255                PrnTest:                ldi ZH,high(2*TestGph1)           ldi ZL,low(2*TestGph1)           rcall xmtStg            rjmp SndTxt                Wrapon:                .db 0x1b,0x26,0x73,0x30,0x43           .db 0x1b,0x26,0x6c,0x30,0x4f ;portrait           .db 0x1b,0x2a,“p0x260Y”,255 ;paral at                Para2:                .db 0x1b,0x2a,“p0x1660Y”,255                BPole:                .db “ABCDEFGHIJKLMNOPQRSTUVWXYZ            0123456789 abcdefghijklmnopqrstuvwxyz       !@#$%{circumflex over ( )}&amp;*( ){ }[ ]? ”,255                Close1:                .db “ABCDEFGHIJKLMNOPQRSTUVWXYZ           0123456789 abcdefghijklmnopqrst”,                Close2:                .db “  TonerHead PA01R04.030530”, $1b, $45,255                SndTxt:                ldi ZH,high(2*WrapOn)           ldi ZL,low(2*WrapOn)           rcall XmtStg           ldi r20,22                BPLoop:                ldi ZH,high(2*BPole)           ldi ZL,low(2*Bpole)           rcall XmtStg           dec r20           brne BPloop           ldi ZH,high(2*Close1)           ldi ZL,low(2*Close1)           rcall XmtStg           ldi ZH,high(2*Para2)           ldi ZL,low(2*Para2)           rcall XmtStg           ldi r20,22                BPLoop2:                ldi ZH,high(2*BPole)           ldi ZL,low(2*Bpole)           rcall XmtStg           dec r20           brne BPloop2                SndVer2:                ldi ZH,high(2*Close2)           ldi ZL,low(2*Close2)           rcall XmtStg           rjmp gray                GrayPage:                .db 0x1b,0x26,0x6c,0x30,0x4f ;portrait           .db 0x1b,0x2a,0x70,0x30,0x78,0x30,0x59           .db            0x1b,0x2a,0x63,0x32,0x33,0x39,0x39,0x61,       0x33,0x30,0x34,0x39,0x62,0x35,0x30,0x67,0         0x50,                .db 0x1b,0x2a,“p1100x0Y”     ;top           .db 0x1b,0x2a,“c200a100b1P”           .db 0x1b,0x2a,“p1105x0Y”           .db 0x1b,0x2a,“c190a95b100g2P”           .db 0x1b,0x2a,“p0x1400Y”      ;left           .db 0x1b,0x2a,“c100a200b1P”           .db 0x1b,0x2a,“p0x1405Y”           .db 0x1b,0x2a,“c95a190b100g2P”           .db 0x1b,0x45,255                gray:                ldi ZN,high(2*GrayPage)           ldi ZL,low(2*GrayPage)           rcall XmtStg                rjmp blk           BlackP:                .db 0x1b,0x26,0x6c,0x30,0x4f ;portrait           .db 0x1b,“*p0x0Y”           .db 0x1b,“*c2399a3049b100g2P”           .db 0x1b,0x2a,“p1150x0Y”           .db 0x1b,0x2a,“c100a10b1P”           .db 0x1b,0x2a,“p0x1500Y           .db 0x1b,0x2a,“c10a100b1P”           .db 0x1b,0x45,255                Blk:                ldi ZH,high(2*BlackP)           ldi ZH,low(2*BlackP)           rcall XmtStg           reti                Button4:                ldi ZH,high(2*BlackP)           ldi ZL,low(2*BlackP)           rcall XmtStg                Button1:           Button3:           Button5:                reti                      
 
         [0054]     Connector  4  shown in  FIG. 2  need not be a “DB25F” type. It may be any connector type which, when connected to a computer printer, is capable of providing signals equivalent in function and form to those signals shown in  FIG. 2 . Similarly, connector  44  of cable  46  may be selected to be a type compatible with the particular computer printer chosen to receive the message(s) delivered by the present invention.  
         [0055]      FIG. 3  is a schematic of the embodiment of the present invention depicted by  FIG. 1  and  FIG. 2 .  FIG. 4  is a table which shows the relationship between device pins on connector  4  ( FIG. 3 ), device pins on microcontroller  40  ( FIG. 3 ) and the corresponding function names of  FIG. 2 . For example, the Message Data  36  function of  FIG. 2  contains 8 signal lines in the schematic of  FIG. 3 . The  FIG. 4  table shows these signals corresponding to microcontroller  40  pins  12 - 19  and to connector  4  pins  2 - 9 .  
         [0056]     As described above, referring to  FIGS. 1, 2 ,  3  and  4 , the operator connects the present invention to computer printer  48  (either directly or by using cable  46  of  FIG. 1 ) and then applies power to computer printer  48 . Computer printer  48 , at power-on, delivers a 5 volt signal (“READY”) to pin  13  of connector  4 . This signal is applied to capacitor C 1  which charges up, thereby storing energy which is subsequently used by microcontroller  40 , via pin  20 , as a power source. Enough energy is stored, by this means, to enable the present invention to deliver one or more messages to computer printer  48 .  
         [0057]     The “READY” signal, described above, is also applied through resister R 2  to capacitor C 4 , which, after a time delay, charges up and generates a “WAKE UP” command  43  signal, which signal is applied to pin  1  of microcontroller  40 . This “WAKE UP” command  43  signal activates microcontroller  40  which, under control of its internal program, detects the state of Control Signals  38  applied to its own pins  2  and  3 , respectively, through connector  4  pins  11  and  1 . When the states of Control Signals  38  correctly match conditions stored in the internal program, microcontroller  40  enters a “enabled to monitor pushbuttons” mode. In this mode, microcontroller  40  continuously monitors the states of its own pin  7 , (pushbutton  8 , SW 4 ), and pin  9  (pushbutton  10 , SW 2 .  
         [0058]     When the operator depresses either pushbutton  8  or pushbutton  10 , signaling a desire to deliver a particular message to the computer printer, microcontroller  40  detects the pushbutton depression by monitoring its own pins  7  and  9 .  
         [0059]     When Pushbutton  10  is depressed, pin  9  of microcontroller  40  is grounded directly through switch SW 2 . Simultaneously, pin  7  of microcontroller  40  is grounded through diode D 2  and switch SW 2 . Microcontroller  40  program logic recognizes the simultaneous grounding of pins  7  and  9  as the code for “Pushbutton  10  depressed”. Microcontroller  40 , in response, selects, from internal memory, the previously stored message corresponding to Pushbutton  10  and sends it out to the computer printer  48  via microcontroller  40  pins  12 - 19 , connector  4  pins  2 - 9  and cable  46 . This action ends Step  2 .  
         [0060]     Alternately, if the operator depresses Pushbutton  8  instead of Pushbutton  10 , then only pin  7  of microcontroller  40  is grounded (grounding of pin  9  is blocked by diode D 2 ). In this scenario, microcontroller  40  recognizes the code for “Pushbutton  8  depressed”, selects, from internal memory, the message corresponding to Pushbutton  8 , and, as previously described, sends it to computer printer  48 , ending Step  2 .  
         [0061]     Referring to  FIG. 3 , quartz crystal X 1  acts as a microcontroller clock support device and components R 1 , C 6  and C 8  perform unremarkable signal conditioning functions.  
         [0062]      FIG. 11  illustrates an alternative embodiment of the apparatus of the present invention. A housing  102  whose approximate dimensions L=2.75 in., W=2.25 in., T=0.75 in, are such that the housing  102  can be held readily in one hand. Housing  102  encloses and supports a connector  104 , a printed circuit board  116  (viewed through the break-away corner of the housing), and push-buttons  108 ,  109 ,  110 ,  111  and  113 .  
         [0063]     Also shown is a connector mount  106  and a second connector mount  107  (shown displaced to accommodate the breakout view). The portion of printed circuit board  116  seen in the break-away contains a microcontroller  140  and two electronic components  118  and  119 . Imprinted on housing  102  and identifying the functions of pushbuttons  108 ,  109 ,  110 ,  111  and  113  are respective indicia legends, “PRINT TEST 1”  112 , “PRINT TEST 2”  113 , “PRINT TEST 3”  114 , “PRINT TEST 4”  115  and “PRINT TEST 5”  117 .  
         [0064]     Connector  104  shown is of the type commonly known as “DB25F”. It protrudes through a face  105  of housing  102  and serves as the point of connection between the present invention and the computer printer  148 . Cable  146  completes the connection to computer printer  148 . Connector  142 , mounted on one end of cable  146  mates with connector  104  of the present invention. Connector  144 , mounted on the other end of cable  146 , mates with connector  150  located on computer printer  148 . Because cable  146  is a type normally used to connect a computer printer to a computer (not shown in  FIG. 1 ), cable  146  is widely available wherever computer printers are used.  
         [0065]     The method of the present invention of sending a message to the computer printer  148  requires two steps. At Step  1 , the operator connects the apparatus of the present invention to computer printer  148 , either directly or by using cable  146  as described above, and then turns the power on computer printer  148 . At Step  2 , the operator depresses one of pushbuttons  108 ,  109 ,  110 ,  111  or  113 . The selected pushbutton causes the present invention to deliver a message to computer printer  148 . Each pushbutton&#39;s message differs from that of the other pushbuttons.  
         [0066]      FIG. 12  is a schematic diagram of the embodiment of the present invention depicted in  FIG. 11 . Referring to  FIG. 12 , depressing any one of the five pushbuttons ( 108 ,  109 ,  110 ,  111  or  112 ) sends a signal to microcontroller  140  by way of pins  11 ,  9 ,  8 ,  7  and  6 . Microcontroller  140  processes the pushbutton signal to determine which of the 5 pushbuttons was depressed.  
         [0067]     By this process, depressing any one of the five pushbuttons causes microcontroller  140  to deliver a unique message to computer printer  148 , each message different than that delivered as a result of depressing one of the other pushbuttons. In this manner, a variety of messages serving a variety of purposes can be delivered to computer printer  148 , merely at the push of a button. The printing method used by any computer printer to which the present invention may be connected is not intrinsic to the design or operation of the present invention.  
         [0068]     Message(s) delivered by the embodiment of the present invention depicted in  FIG. 11 , are used to test any type of printer. The following discussion describes sample messages representative of some (but not all) types of computer printers.  
         [0069]     For example, when computer printer  148  is a color inkjet printer, depressing pushbutton  108  delivers a message to computer printer  148  to print the test patterns depicted in  FIG. 9 .  FIG. 9  is a sheet printed with a grid of empty boxes interspersed with an array of filled rectangles and some diagonal lines. Because computer  148  is a color printer, the delivered message will instruct computer printer  148  to repeat the same test page printed in each of the three basic colors.  
         [0070]     Alternatively, depressing pushbutton  109  delivers a message to computer printer  148  which causes the test pattern in  FIG. 10  to be printed in black/white. This pattern incorporates all of the elements of  FIG. 9  with the addition of a gradient gray scale (10% gray to 90% gray).  
         [0071]     Alternatively, depressing pushbutton  110  delivers a message to computer printer  148  which causes the test pattern in  FIG. 10  to be printed in cyan. This pattern incorporates all of the elements of  FIG. 9  with the addition of a gradient density cyan dot pattern.  
         [0072]     Alternatively, depressing pushbutton  111  delivers a message to computer printer  148  which causes the test pattern in  FIG. 10  to be printed in magenta. This pattern incorporates all of the elements of  FIG. 9  with the addition of a gradient density magenta dot pattern.  
         [0073]     Alternatively, depressing pushbutton  113  delivers a message to computer printer  148  which causes the test pattern in  FIG. 10  to be printed in yellow. This pattern incorporates all of the elements of  FIG. 9  with the addition of a gradient density yellow dot pattern.  
         [0074]     When computer printer  148  is a color laser printer, depressing pushbutton  108  delivers a message to computer printer  148  to print the test patterns depicted in  FIG. 9 .  FIG. 9  is a sheet printed with a grid of empty boxes interspersed with an array of filled rectangles and some diagonal lines. Because computer  148  is a color printer, the delivered message will instruct computer printer  148  to repeatedly print the test page of  FIG. 9  in each of the three basic colors (magenta, yellow, cyan).  
         [0075]     Alternatively, depressing pushbutton  109  delivers a message to computer printer  148  which causes the test pattern in  FIG. 10  to be printed in black/white. This pattern incorporates all of the elements of  FIG. 9  with the addition of a gradient gray scale (10% gray to 90% gray).  
         [0076]     Alternatively, depressing pushbutton  110  delivers a message to computer printer  148  which causes the test pattern in  FIG. 10  to be printed in cyan. This pattern incorporates all of the elements of  FIG. 9  with the addition of a gradient density cyan dot pattern.  
         [0077]     Alternatively, depressing pushbutton  111  delivers a message to computer printer  148  which causes the test pattern in  FIG. 10  to be printed in magenta. This pattern incorporates all of the elements of  FIG. 9  with the addition of a gradient density magenta dot pattern.  
         [0078]     Alternatively, depressing pushbutton  113  delivers a message to computer printer  148  which causes the test pattern in  FIG. 10  to be printed in yellow. This pattern incorporates all of the elements of  FIG. 9  with the addition of a gradient density yellow dot pattern.  
         [0079]     The above descriptions of preferred and alternative embodiments illustrate the versatility of the present invention to easily select and deliver one or more test messages to a wide variety of computer printers. In each case, the data for the message(s) to be delivered were stored in the present invention. The following discussion presents techniques used in alternative embodiments of the present invention which accomplish capture and storage of the message(s) data.  
         [0080]      FIG. 13  illustrates an alternative embodiment of the present invention. A housing  202  whose approximate dimensions L=2.75 in., W=2.25 in., T=0.75 in, are such that the housing  202  can be held readily in one hand. Housing  202  encloses and supports a connector  204 , a printed circuit board  216  (viewed through the break-away corner of the housing), a lighted indicator  213  and two push-buttons  208  and  210 .  
         [0081]     Also shown in  FIG. 13  is a connector mount  206  and a second connector mount  207  (shown displaced to accommodate the breakout view). The portion of printed circuit board  216  seen in the break-away contains a microcontroller  240  and two electronic components  218  and  219 . Imprinted on housing  202  and identifying the functions of pushbuttons  208  and  210  are respective indicia legends, “PLAY”  212  and “RECORD”  214 .  
         [0082]     Connector  204  shown is of the type commonly known as “DB25F”. It protrudes through a face  205  of housing  202  and serves as the point of connection between the present invention and either, a computer printer  248 , or, a computer printer  249 . Also shown are cable  246  and cable  247 . Cable  246  completes a connection to computer printer  248  and cable  247  completes a connection to computer  249 .  
         [0083]     When the present invention is connected to computer printer  248 , connector  242 , mounted on one end of cable  246  mates with connector  204  of the present invention. Connector  244 , mounted on the other end of cable  246 , mates with connector  250 , located on computer printer  248 .  
         [0084]     Similarly, when the present invention is connected to computer  249 , connector  241 , mounted on one end of cable  247  mates with connector  204  of the present invention and connector  243 , mounted on the other end of cable  247 , mates with connector  251  located on computer  249 . Because cables  246  and  247  are a type normally used to connect a computer printer to a computer, cables  246  and  247  are widely available wherever computer printers are used.  
         [0085]     The method of the present invention of delivering one or more messages to the computer printer  248  requires five steps. At Step  1 , the operator connects the apparatus of the present invention to computer  249  (either directly or by using cable  247  as described above), and then turns the power on computer  249 . Indicator  213  begins to flash. At Step  2 , the operator depresses RECORD pushbutton  210  and waits for indicator light  213  to stop flashing. At Step  3 , the operator disconnects the apparatus of the present invention from computer  249 . At Step  4 , the operator connects the apparatus of the present invention to computer printer  248 , (either directly or by using cable  246  as described above) and turns power on computer printer  248 . At Step  5 , the operator depresses PLAY pushbutton  208 .  
         [0086]     Step  2  of the above described process results in a download of data from the computer to the present invention and storage of the downloaded data in the memory of the present invention. Completion of Step  2  is signaled when indicator light  213  stops flashing.  
         [0087]      FIG. 14  is a schematic of the  FIG. 13  embodiment of the present invention. As described above, in Step  1 , the operator connects the present invention to computer  249  (either directly or by using cable  247  of  FIG. 13 ) and then applies power to computer  249 . When computer  249  is powered-on, a 5 volt signal (“READY”) is received on pin  13  of connector  204 . This signal is applied to capacitor C 1   201  which charges up, thereby storing energy which is used by microcontroller  240  at pin  20  as a power source. By this means, enough energy is stored to enable the present invention to download and store one or more messages from computer  249  and deliver one or more messages to computer printer  248 .  
         [0088]     The “READY” signal is also applied through resister R 2   218  to capacitor C 4   202 , which, after a time delay, charges up and creates a “WAKE UP” signal which signal is applied to pin  1  of microcontroller  240 . This “WAKE UP” signal activates microcontroller  240  which, under control of its internal program, detects the state of signals applied to its pins  2  and  3  through connector  204  pins  11  and  1 , respectively. When the states of signals on pins  2  and  3  match conditions stored in the internal program, microcontroller  240  enables its pin  6  with a signal that causes attached indicator light  213  to flash. In this mode, microcontroller  40  continuously monitors the states of pins  7 , (pushbutton  8 , SW 4 ), and  9  (pushbutton  10 , SW 2 ). This is the end of Step  1 , described previously.  
         [0089]     Step  2 , also described previously, begins when the operator depresses “RECORD” pushbutton  210  (Ref  FIG. 13 ). Microcontroller  240  detects the pushbutton depression by monitoring its own pin  9 . When Pushbutton  210  is depressed, pin  9  of microcontroller  240  is grounded directly through switch SW 2 . Microcontroller  40  program logic recognizes the grounding of pin  9  as the code for “Pushbutton  10  depressed”. Microcontroller  240 , in response, accepts data from computer  249  (via pins  2 - 9  of connector  204 ) on its own pins  12 - 19  and stores this data in internal memory. Microcontroller  240  then turns off indicator light  213  signaling the end of message download Step  2 .  
         [0090]     Again referring to  FIG. 14 , quartz crystal X 1  acts as a microcontroller clock support device and components C 6  and C 8  perform signal conditioning functions.  
         [0091]     Step  3  and Step  4  are cable connect/disconnect functions.  
         [0092]     Step  5  of the above described process is initiated by depression of “PLAY” pushbutton  208  and results in delivery of one or more messages from the present invention to computer printer  248 . (Refer to the description of the similar process, previously described above, when pushbutton  8  of  FIG. 3  is depressed.) Also, as described previously, pushbutton  208  can be replaced by an array of pushbuttons, providing a selection of messages to be delivered.  
         [0093]      FIG. 15  depicts an alternative embodiment of the present invention. Step  1  and Step  2  downloading and storage of message data is accomplished by use of a Wireless Communication Link  224  (WCL) as the connecting link to computer  249 . Such a WCL is comprised of a bidirectional radio frequency transceiver or an infra red optical transceiver or the like. Depressing RECORD pushbutton  210  initiates communication with a correspondent transceiver mounted in computer  249  and results in message data downloaded to the present invention via the same wireless communication link.  
         [0094]      FIG. 16  depicts an alternative embodiment of the present invention. Step  2  downloading is accomplished by use of a Universal Device Interface  234  (UDI). The UDI is an interface between the present invention and a Message Data Storage Device  244  (MDSD) which contains the desired message data. The MDSD may be a floppy disk, a removable semiconductor memory cartridge, a high density disk, a portable computer, a Personal Digital Assistant (PDA) or the like. The UDI, which may be a floppy disk drive, a semiconductor cartridge reader, a ZIP drive or a connection to a PDA or the like, converts the MDSD data into a data stream which microcontroller  240  can store in its internal memory.  
         [0095]      FIG. 17  depicts an alternative embodiment of the present invention. Step  5  message delivery is accomplished by use of a Universal Output Device Interface  254  (UODI). The UODI is an interface between the present invention and a device to which the message is to be delivered. Such types of devices include printers, serial or parallel communications channels, USB ports, drivers for CRT or flat panel displays, PDAs and the like. Synchronization and timing of message delivery is controlled by microcontroller  240 .  
         [0096]     While various specific arrangements have been described herein and illustrated in the accompanying drawings, it will be clear to the reader possessed of relevant skills that such specific arrangements are exemplary only and that various modifications and alterations could be made without departure from the general ambit of the invention which is to provide a handheld device, capable of collecting and storing sufficient energy to power itself (and therefore requiring no battery or external power to operate), that will send stored messages to an attached computer printer, and such a device that neither the nature or content of the message nor the printing method of the attached computer printer are intrinsic or relevant to its design or operation. Also, although the present invention is self powered, it is clear to the reader possessed of relevant skills that the present invention could be operated on batteries or from an external power source without departure from the embodiments depicted herein.