Serial Printer is Very Slow; Often Cannot Print Until Computer is Rebooted

I have a serial thermal receipt printer.  The higher the volume of printing, the more often it stops printing, and I have to reboot the computer and print all the jobs stuck in the memory.  If I change the COM1 speed to higher than 9600, only garbled stuff comes out.

Will a serial-to-parallel converter help?  Any other suggestions?

Urgent pls.
Who is Participating?

Ok, that answers a lot of questions.

Leave it in hardware flow control, unless you have a driver that support XON/XOFF (it is VERY unlikely that you have such a driver).


I think that the problem is in the handshaking between the printer and the computer, this involves both the driver and the serial port configuration, and the cable.  I don't remember how you control the serial port printer configuration in Windows 98.  It might actually be easier to do this in DOS, where the "mode" control can be used.  What does the cable that you are using look like?  The problem is getting the handshaking signal of the printer, which could be any of a couple of pins of the RS-232 connector (25 pin????) connected to the proper pin of the PC's serial port, also, some pins might need to be jumpered together at either or both ends.  This is easiest to do if you have an "RS-232 breakout box" ... (I supposed that you don't have one?).  It may take a bit of experimentation to get it right.  Do you have a multimeter, so that we can figure out which pin of the printer is supplying the handshaking signal?  Or, even better, do you have a manual on the printer?

If you change the baudrate on the PC you have to also change it on the printer - otherwise the printer won't understand the data, and will indeed print garbage. Note that 9600 baud sends around 960 characters per second to the printer - I doubt it can print that fast, so higher speeds would not help anyway.

Try setting the port to either Xon/Xoff or hardware flow control. Go to Start > Settings > Printers. Right-click on the printer and select Properties. Then click on the Ports tab, and then on the Configure Port button (this is also where you change the baudrate)

Can you test the printer on another system? it can be failing also.
Cloud Class® Course: Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

What interfaces does the receipt printer have?  Serial, obviously, but does it have parallel or USB?  Either would be a lot faster than serial.

What kind of system are you using this printer on?

Are you printing graphics or only straight text?
(note, text printed as a graphic is graphics, not text)

Thermal printers are normally speed rated in "inches (of paper) per second" (sometimes given in metric mm/second instead of inches), not in charaters per second.  Normally, a receipt has a very small number of characters on, just a couple hundred, and even serial, even at speeds lower than 9600 baud, is fast enough to easily keep up with anything that you are going to print in text mode.  In grahics mode, however, that might well not be the case.

It's possible that the printer's printhead is overheating and that it's "thermal throttling" to keep from overheating the printhead.  This would only be an issue at high volume.  Thermal receipt printers are designed to print a receipt, then pause for a relatively long period of time (in relation to the time required to print a receipt), then print, then pause, etc.  If you are trying to print a large volume, and not short receipts of only a few inches before a [relatively] long pause, this may be what's happening; you may be trying to use the printer in a mode for which it was not intended.

[however, you should not have to reboot; the printer should resume printing after a pause]

MashaCPAAuthor Commented:
I changed it from Xon/off to Hardware flow control and also from Spool to Print Directly to Printer this morning.  No change.

After rebooting, it prints a couple of receipts normally and then just does not respond to a print command at all until the computer is rebooted.  Usually, there is at least a couple of minutes delay between serving one customer to the next; usually even more.

This is an Emachines Windows 98 PC with 256 MB RAM; it was bought a few years ago.
Ok, the serial port setup is done in Device manager, I think, and it has an option for XON/XOFF, so that may be the easiest way to go.  For that you will need a cable configuration that will let the printer send data to the comptuer, as well as the computer sending data to the printer.  You would need to select XON/XOFF both in the serial port configuration (Control Panel / System / Device Manager / Ports / select the proper serial port, right-click, properties, and it's done in one of the tabs, the same tab where you set the buad rate).
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.