The Museum of HP Calculators
by Roger D. Quick and Donald L. Morris
PRINTED OUTPUT is a highly desirable adjunct to a programmable scientific calculator. As computing power, program length, data capacity, and communication ability all increase, a printed record becomes a necessity for many users of such calculators.
As the power of the calculator increases, so must the abilities of the corresponding printer. To give the user maximum flexibility, a peripheral printer was chosen for the HP-41C. This separation gives the user the portability of a handheld calculator and also maintains briefcase portability for the calculator/printer system. The new printer, Model 82143A, Fig. 1 (shown with tape drive), contains its own rechargeable batteries, and measures 18 x 13 x6 cm.
With earlier HP programmable printing calculators, such as the HP-97,1 the printer was able to record numbers, listings of programs, and the trace of an executing program. The 82143A Printer makes these records and more. It can label numeric output with meaningful words and phrases, has access to 127 standard characters, makes normal and condensed program listings, can create its own characters, and gives the HP-41C user a graphics capability through the printer's plotting functions. Thus the 82143A adds functional capabilities to the HP-41C system in addition to its normal printed record function.
The 82143A printer is similar to other HP-41C accessories in that the mainframe calculator is not burdened, either in ROM space or in execution time, by the existence of accessories. When the printer is plugged in, firmware in ROM is added to the HP-41C system bus. This additional system ROM is contained in the 82143A module that plugs into the HP-41C. Thus connected, the printer adds 24 functions to the mainframe's repertoire, and has access to all capabilities of the mainframe. This closely linked architecture makes it possible for the HP-41C to display printer error messages, to treat the PRINT key on the printer as if that key were on the HP-41C keyboard, and to have HP-41C functions such as AVIEW print whenever there is an operational printer attached. These friendly capabilities give the HP-41C/82143A system attributes similar to a package-integrated system like the HP-97 without assuming that all users want all the pieces all the time.
The printer has its own power light and a low-battery light. A portion of the printer ROM is under calculator processor control, allowing the HP-41C Calculator display to be used to output printer messages, such as OUT OF PAPER or PRINTER OFF when an attempt is made to execute a printer function under such conditions. The printer also has a five-position print intensity control switch that allows the user to adjust the print density by direct control of the voltage applied to the printhead.
The new printer is much faster than earlier designs. The improvement was accomplished by means of an encoder feedback loop, a sophisticated printhead drive, and a soft printing platen behind the paper. Also, a significant improvement in program listing speed was obtained by giving the user the choice of three program listing formats.
Program listings can be generated by the functions PRP and LIST. PRP prints the whole program and LIST prints only the specified part of a program. Both PRP and LIST can generate all three formats: left justified, right justified (which is faster and allows labels to be found more easily), and a condensed format that prints several program steps per printed line and results in program listing speed of about three times that of the other options.
Several advanced printer functions are programmed into the new printer. By setting Flag 12 on the HP-41C, the printer can be put in the double-wide mode. While in this mode the columns of dots making up the 5X7 dot matrix letters are each printed twice. Thus the printed characters are twice as wide as the normal printing mode. Lower-case letters can be printed by setting Flag 13 on the HP-41C.
The new printer's four accumulate functions allow the printer's internal RAM to be used as a buffer for characters to be printed. In this way characters can be transferred from the HP-41C into the printer at any time during program execution.
The accumulate X and accumulate alpha functions (ACX and ACA) transfer the contents of the X or alpha registers to the printer buffer. This function allows mode changes within a printed line. Characters can be changed from upper-case to lower-case or from normal to double-wide. For example, if the name "James" were to be printed, the "J" would first be sent to the printer buffer from the calculator using the accumulate alpha function. The lower-case mode, Flag 13, would then be set before the "ames" is accumulated to the printer buffer. The accumulate X function can be used to print several numbers on the same line to format columns of numbers as output. The accumulate X function can also be used in conjunction with the accumulate alpha function to produce a mixed format of alpha and data-for example, "PRICE = $50.00."
The accumulate character function (ACCHAR) allows access to characters (Greek, European, etc.) not directly accessible from the HP-41C keyboard. This function can be used with other accumulate functions-for example, "R1 = 62K" or "COST = £50."
The accumulate column function (ACCOL) gives the user complete control over the printed output. With this function the columns making up the character dot matrix can be controlled individually, allowing the user to define up to 43 columns per line. These columns of print can be used to define unique symbols or characters, for example, .
Another way to define special characters is by means of the functions BLDSPEC and ACSPEC. These allow the user to create and print characters consisting of any desired pattern of dots on a 7 X 7 matrix. Once created with BLDSPEC, these special characters can be stored in data registers in the HP-41C. The Japanese character set shown in Fig. 2 was created with BLDSPEC. In a standard character the outside columns of the 7 X 7 dot matrix are blank, but special characters using all seven columns can be placed adjacent to each other to form larger characters or to do graphics, as shown in Fig. 3.
PRPLOT is an interactive plotting function that asks for the name of the function to be plotted and the plot scaling information and generates a complete labeled plot of the function. PRPLOTP is a noninteractive version of PRPLOT that takes its information from registers in the HP-41C. The functions PRAXIS, REGPLOT, and STKPLOT help the user construct customized plots of single-valued functions. A special (user-defined) character may be used with any of these plotting functions. The function SKPCOL allows the spacing of characters to column-position resolution (maximum field width is 168 columns). This is useful for plotting functions and for positioning graphics or labels.
The 82143A is a battery-operated thermal printer capable of delivering 24 characters per line at a scan rate of 60 characters per second while acting as a peripheral device to the HP-41C Calculator system. The nominal line rate of the printer varies from 130 lines per minute for lines of 10 characters or less to 70 lines per minute for 24-character lines. Communication between the 82143A and the controlling HP-41C is accomplished through a seven-line serial interface.
Fig. 4 is the printer block diagram. The power system centers on a variable voltage source (14-18 volts), which drives the thermal printhead at a power level selected by the user-adjustable print intensity switch. An additional fixed five-volt supply provides power to the microprocessor and other internal logic. A rechargeable nickel-cadmium battery acts as the energy storage medium. Power-on circuitry protects the thermal printhead from excessive power during turn-on.
The HP-41C Calculator and the 82143A Printer are linked together via the calculator's plug-in module, which contains the printer ROM chip and the interface chip. The hub of the printer electronics is the 3870 microprocessor, which performs such functions as interfacing with the HP-41C, monitoring the front control panel, processing the encoder and home switch signals, and driving the printhead and the dc motor. The internal structure of the 3870 includes a CPU section, 2K of designer-programmable ROM, 64 bytes of RAM, and both a timer and an external interrupt. The microprocessor requirements of the 82143A printer use all of the 3870's capabilities.
The 3870 microprocessor stores within its line buffer all the characters and commands transmitted by the HP-41C. The line buffer is organized as a 42-byte, first-in first-out buffer and may contain any number of printable lines. As information contained in a particular buffer location is used during printing, the buffer location is immediately available for new incoming data, thus creating a pipeline effect. Whenever this buffer contains. a printable line, the 3870 applies a forward drive signal to the motor causing the printhead to move leftward away from its home position (located on the right side of the mechanism with the home switch closed). As the home switch opens, the microprocessor computes whether any leading blank columns are required during this printed line. Each column across the paper is synchronized with an external interrupt pulse generated by the rotary encoder. At the appropriate column, the 3870 recalls from its line buffer the character to be printed and looks up the corresponding character pattern one column at a time.
The thermal printing is accomplished by the active heating and passive cooling of seven individual printhead resistors, each powered by a high-current driver controlled by a microprocessor line. The controlled pattern of turning each resistor on or off as the printhead scans across the paper generates the characters one vertical column at a time. The printing time for each column commences with an encoder pulse and halts a fixed time later (1.2 ms). This technique makes critical control of the printhead speed unnecessary, since the encoder guarantees no error accumulation from one column to the next.
The microprocessor controls the forward linear printhead speed by holding the time between consecutive encoder pulses constant (2.4 ms). Depending on the last time between encoder pulses, the motor either remains on, is turned on (too slow), or is turned off (too fast) until the next encoder pulse occurs. Whenever a printed line is completed, the microprocessor brakes the motor and then applies a constant reverse motor signal driving the printhead towards its home position at maximum speed. Once the home switch closes, the 3870 brakes the motor and awaits future printing. On the return stroke, a mechanical system advances the paper in preparation for the next line. This mechanical paper advance requires a minimum linear printhead travel of ten character positions for any line.
Variations of normal character printing occur if any combination of the printer's special modes is active. If the double-wide mode is selected, all columns, printed or blank, assume a width of two encoder pulses, resulting in a maximum of 12 double-wide characters per line. Whenever the lower-case alpha mode is-active, any normally uppercase alpha character is converted to its lower-case equivalent. During column printing, the data contained in the 3870's line buffer no longer represents a character, but instead represents a binary-coded combination of resistor dots to be printed during a particular column. Since the commands that activate these special modes are stored in the 3870's line buffer, a number of different modes may appear in any one printed line.
Print quality in any printing system is a subjective characteristic. However, several key parameters can be identified that, we think, always contribute to overall quality.
A subtle but very desirable characteristic in a dot matrix system is consistency of column-to-column spacing within a character. This is enhanced in the 82143A by an optical position encoder consisting of a light emitter-detector pair, a reflective wheel, and a comparator. Since linear head motion is mechanically linked to the rotary motion of the reflective wheel, pulses generated by the encoder correspond to equal head-position intervals. The length of these, intervals is determined by the angular distance between teeth on the reflective wheel and is set so that a pulse occurs each time a column should be printed. In addition to maintaining column-to-column spacing within a character, the encoder also guarantees character-to-character spacing consistency because intercharacter distance is an integral multiple of column spaces, The mechanical home switch on the printer mainframe provides synchronization for line-to-line alignment of characters, thus preventing margin irregularities.
At the high printing speeds of the 82143A the elements of the printhead do not have time to cool between column times. If equal power were applied for the first and succeeding pulses, thermal integration would cause the following dots to be darker than the first. To avoid this problem, the 3870 processor shortens the pulse width and thus the total energy applied to previously fired resistors. This reduction in energy results in nearly equal peak element temperatures and consistent dot development regardless of the printhead's history.
Since the quality of dot development relies very heavily on good head/paper contact, a prime focus of design activity was the soft platen for the 82143A. The soft platen provides a pliable surface to allow intimate contact between the paper and printhead. A die-cut strip of 0.8-mm-thick silicone rubber was chosen for the platen because of its excellent resilience and negligible plastic set over the full operating temperature range. It is backed up by an extruded aluminum platen support that is flat and stable under all operating conditions. The two are bonded together by a self-leveling adhesive. A thin piece of TFE-impregnated fiberglass cloth is draped over the platen surface, allowing the paper to pass between the scanning printhead and the silicone rubber platen without sticking.
A critical factor limiting printing speed is the thermal response time of the printhead. For short times (1-5 ms), the thermal conductivity and capacity of the glaze material on the printhead determines the time lag between the command to print and the appearance of the mark on the paper. Reducing the thickness of the glaze barrier proportionately increases its conductivity and decreases its capacity, thus lowering both the heating and cooling time of the elements and enabling higher print speeds. On the other hand, a thinner glaze results in a lower peak asymptotic temperature and forces an increase in input power to achieve printing temperature. The 82143A compromises by making the glaze thickness 0.038 mm, half that of the HP-97. Response time was decreased by a factor of four with very little additional input power required.
If the low-voltage (5V battery) printhead drive scheme in the HP-97 had been scaled to handle the increased current levels required for the 82143A's higher print speed, the internal impedance of the battery, transistor saturation voltages, and transistor base currents would have posed efficiency problems. For these reasons, the printhead resistance was changed from 10 ohms to 85 ohms and a switching power supply was added to raise the nominal printhead voltage from 5 volts to 16 volts. Since a large output filter capacitor (1000 uF) supplies peak printhead currents, the 16-volt power supply need only deliver average current, thus reducing maximum battery current from peak to average. In addition, the combination of higher printhead voltage and resistance reduces current levels, allowing smaller and cheaper drivers. These design modifications more than compensate for the 20% efficiency loss in the switching power supply. In addition, the output voltage of the power supply is switch programmable, providing the user with a print intensity control.
Due to the increased printhead velocity, the gear drive from the HP-97 would have generated an unsatisfactory noise level. To overcome this potential problem, the gear drive has been replaced by a new reduction drive that links the motor pulley to the lead screw pulley via a molded ethylene propylene O-ring belt. This belt eliminates gear chatter and passes extensive environmental and life tests without breaking or deteriorating.
Further noise reduction has been achieved by lowering the frictional forces and improving the wear characteristics of the mechanical system. Applying a break-in oil to all moving parts at assembly reduces start-up friction and extends mechanism life by ensuring uniform wear-in. To minimize frictional drag, the material of the printhead carriage has been changed to a TFE-and-silicone-filled nylon, and a self-lubricating acetal thrust washer has been inserted between the aluminum pulley and the plastic printer housing.
We would like to thank Tom Braun, Bill Schafer, Dave Shelley, and Bob Worsley, who contributed portions of this article. The 82143A benefited from the creativity and contributions of many people. Terry Bradley and Bill Schafer were responsible for the mechanical design. Tom Braun wrote the 3870 microcode, and with Gary Siewell, was responsible for the development of the printhead. The system electronics were the work of Dave Shelley. Charles Tan designed the CMOS interface integrated circuit. The HP-41C microcode was written by Bob Worsley. Chuck Dodge was the industrial designer.
1. B.E. Musch and R.B. Taggart, "Portable Scientific Calculator Has Built-in Printer," Hewlett-Packard journal, November 1976.
Roger D. Quick
Roger Quick stayed in his native Berkeley, California, long enough to get his BA degree in mathematics in 1964 from the University of California there, then traveled south to Stanford University where he did graduate work in electrical engineering. In 1975 he came to Hewlett-Packard, where he has been project manager for several HP-41C projects, including midrange peripherals, the 82143A Printer, and the HP-41C software and electronics. He also served as project leader for the HP-19C and HP-10 electronics. Before joining HP, Roger was with a calculator company for five years and with a major semiconductor company for another five years. He is a member of the Association for Computing Machinery and lives in Corvallis, Oregon. He and his wife enjoy camping and hiking. Roger trains Labrador retrievers and is rebuilding a "basket-case" Lotus sports car.
Donald L. Morris
Don Morris found his way to HP in 1973 via Bradley University, where he received his BSME degree in 1971, and the University of Illinois, where he received a BSEE degree in 1973. His work at HP has included printed circuit engineering, project leader on the 82143A, and currently, project manager with the Corvallis Division. Born in Lincoln, Illinois, Don is married and lives in Corvallis. His 5-month-old son occupies most of his time, according to Don, but he still finds time to build furniture, play folk guitar, and compete in go-kart racing. Don designed and acted as contractor for his home in Corvallis.
Go back to the HP Journal library
Go back to the main exhibit hall