RS/232 Attached Printer Flow Control

From EnablerWiki

Jump to: navigation, search

Created: 4 November 2008. Last Reviewed: 4 November 2008

I think the problem is occurring because the computer is sending data to the printer much faster than the printer can actually print it on the paper.

For small print jobs (a normal cash sale, for example), this doesn't matter. This is because the printer has a buffer (perhaps 2K or 4K, I'm not sure - it varies by printer). Anyway, if the entire print job can fit into this buffer, then the printer simply stores the excess data in this buffer until such time as the printer is free to deal with the data - i.e. print it.

For large print jobs, the printer needs a way to tell the computer "enough already, let me deal with what I already have first".

Printers connected to parallel ports generally do this perfectly. Inside the parallel cable, there are some wires dedicated to sending this signal. When the printer buffer is full, it sends the red-light signal on the flow control cable to tell the computer to pause transmission. And the parallel printer "Centronics" interface is a well defined standard that everybody can adhere to.

Serial printers are much harder. This is basically because there are at least three forms of flow control possible with a serial device. These fall into two categories: software flow control (often called XON/XOFF) and hardware flow control. Within hardware flow control, there are two basic types (CTS/RTS [Clear To Send / Request To Send] and DSR/DTR [Data Set Ready / Data Terminal Ready]). Hardware flow control is superior to software flow control, particularly where higher transmission rates are used - as with most modern communications. Software flow control was good in the old days of modems with baud rates of 300 bps or less.


Trouble is, to get flow control working on serial devices, the device (in this case the printer) and the computer (through software) must be set to use the same flow control methodology. Most receipt printers we work with are factory-set to use hardware flow control (this is set either with dip-switches or via the printers programming mode - you have to have a printer manual to figure this out). You need to set the configuration of the COM port in use to also use hardware flow control (this is done though Control Panel - Ports/Settings for WinNT and System Devices/Ports for Win95/98 and System/Hardware/Device Manager/Ports for Windows 2000).


When hardware flow control is being used with a serial printer, there is another complication. The serial cable must be wired up to support not ONLY hardware flow control, but the specific FORM of hardware flow control that is in use. This is the problem of the printer manufacturer/supplier. I have fixed this myself in the past, but only by trial and error in terms of the actual wiring of the cable (i.e. out with the soldering iron and start fiddling). Different wiring in the cable can be required for different printers. Note also, a cable that works with an NCR7156 printer with InfoPOS under DOS will NOT work with the same printer under Windows!!!!!

When Briscoes first went live, quite a number of their stores were installed with cables that did not support the flow control required by the NCR/Win95 environment. I believe that after much debate, NCR agreed to supply replacement cables. So, there are cases where even the printer manufacturers don't get it right!

A useful way to test the operation of flow control:

Just use Notepad (or whatever) and create a very small document. Then, open the printer cover and attempt to print your document. If it just disappears from the print queue without printing, then flow control is not working - the printer failed to tell the computer not to print! If you get either an error message, or the print job appears in the print queue and STAYS THERE WITHOUT DISAPPEARING then flow control is working - the computer knows that the printer is not ready to accept any data. In this case, the printer should print your job after you close the printer cover.

Recommendation for future customers.

I would always recommend the use of parallel receipt printers unless the parallel port is required for, say, a report printer AND it is impractical/too expensive to install an extra parallel port. I recommend this simply because the use of parallel printers avoids these flow control issues, along with the related issues of matching baud rate, data bits, stop bits and parity settings between the printer and Windows.

Epson printers:

TM-T88 (Serial receipt printer, mark I)

TM-T88II (Serial receipt printer, mark II)

TM-T88P (Parallel receipt printer, mark I)

TM-T88IIP (Parallel receipt printer, mark II)

Exactly the same combinations are available for the TM-H5000 (TM-H5000II, TM-H5000P, TM-H5000IIP).

For the significance of Mark-II printers, see my document re logo printing. Note - the model number is printed on the label on the printers!!

Personal tools