Making a USB printer work on a parallel port

Parallel ports are slowly becoming obsolete – new computers and equipment no longer have a standard parallel port expecting you to connect a USB printer or even a network printer.  If you are looking to replace a parallel port printer, then your choices will be limited and if you cannot update the drivers on the original equipment, then you may well be stuck in a quandary as to how to deal with this.

Even serial ports are now rare to find on anything but industrial equipment – as they are replaced by USB serial ports and network connection options.

However, there is still a large amount of equipment and early computers out there which do not possess USB ports, or even network ports; so industry and vintage computer users continue to look for methods of connecting modern printers and even storage devices in order to extend the useful working life of the original equipment.

Back in the 1980s and 1990s, it was common to have a centronics printer, which connected direct to the parallel port on a computer / industrial equipment.  In fact it was so common that parallel ports appeared on a wide range of equipment, such as test equipment, data analysers, computers and even door entry systems and lathes.  There was also the option of connecting some printers via a serial port, although even back then, serial printers were harder to find and set up due to the need to set baud rates, handshaking, bit depths and more.

As the ports have moved on, so have printer manufacturers. Nowadays, printers are more commonly connected using a USB connection, or even over the network and there are now very few brand new printers which have a centronics port.  Those with a serial port are even rarer.

With the continued push to the “paperless office” (a term which was first coined in the mid 1980s), people are also now looking to move to electronic capture of the data from a centronics port or serial port, for e-printing (ie. storing electronically, and doing away with the need for a paper copy altogether).

Connecting a printer with a Centronics / Parallel Port

This used to be relatively simple – purchase a “parallel cable” which converts the 25 pin female parallel port to the centronics connector used by the printer.  An alternative was to use a serial to centronics adaptor if your equipment only had a serial port.  The printer then plugs into the centronics connector, and as soon as you checked that the equipment is set up to send printed output to the parallel (LPT) port, or serial port (SER) as required.

Standard Parallel Port Connector

Standard Parallel Port Connector

Standard Serial Port Connector

Standard Serial Port Connector

Note: a DB-25 port may be a centronics or a serial port connector.  Generally if it has pins (male) it is a serial port connector.  If it does not have pins (female), then it may be a parallel printer port, or it might be a DTE port which requires a null modem cable to convert it to an RS-232 serial port before trying to connect to a printer (or our Retro-Printer module).  If in doubt, check the user manual.

Most of the early parallel dot matrix (and daisywheel) printers understood plain text and used one of two main industry-wide standards, Epson ESC/P control codes or HP PCL control codes to change the font, layout of the page and handle graphics.  However, as more players entered the printer industry, the number of standards expanded as printer companies added more features to their printers and moved to inkjet printing.

Unfortunately, even before the connection became an issue, it was found that printer manufacturers were starting to cut costs by making printers into GDI printers, where all of the processing was handled on the computer and the printers no longer understood plain text – this meant that the printer could in effect be a dumb terminal, which was reliant on the correct printer driver being installed on the host equipment, and sending just graphic output.

Whilst there are a few centronics printers still available,  these remain expensive compared to GDI printers, hard to find and there are limited suppliers of ink ribbons and continuous feed paper.

How About a USB to Centronics Adaptor

USB to Centronics Adaptor

Standard USB to Centronics Adaptor

There are plenty of low cost USB to Centronics Adaptors out there, but unfortunately, these will not resolve the issue – they are designed to allow you to connect a centronics printer to a USB port, not the other way around! These USB to Centronics adaptors do no conversion of the data and therefore expect the computer to be set up to use the specific printer driver for the connected centronics printer.

The actual solution you need is a Centronics to USB Printer adaptor.  Now, you can find at least two examples of LPT2USB convertors which appear to do the trick. However, the problem again is that whilst these tackle the hardware issue of transforming a DB25 parallel port connector into a USB connector, they do not provide you with any means of printer simulation.

Whilst this might solve the issue for some computers, you may still need to be able to install the correct USB printer driver onto the computer, or find some means of converting plain text and interpreting printer control codes in order to create something which a modern USB printer can understand.

Over time, we have had to develop a wide range of bespoke printer emulations which can support different control codes and protocols from a wide range of printer manufacturers.  Unfortunately, in some cases, the printer manufacturers will not provide details of how their printers worked, quoting intellectual property rights, or simply because they no longer have the paperwork after all of this time.  In these cases, we have worked to reverse engineer the printer protocols and printer control codes, and generally been able to replicate the original printed output to suit particular customer requirements.

The other consideration is what settings can be changed on the original equipment – in many cases, there is simply no ability to change any setting from the original printer (think about an industrial computer with no source code, or interface to select a printer driver).  This all has to be taken into account when looking to replace an existing centronics printer with a modern USB printer.

What is the Solution?

The Retro-Printer Module

The Retro-Printer Module – a hardware based virtual printer (Centronics to USB Printer)

You can actually use a modern low-cost equipment to allow you to connect a USB or Network Printer to a Parallel or Serial Port, without changing anything on your equipment – the answer is to use the Retro-Printer Module.

The Retro-Printer Module connects to a standard parallel to centronics cable, or optionally with a serial to USB convertor, to capture the raw data being sent to the printer.  The output can be stored electronically or you can connect a modern USB printer into the Retro-Printer module to replicate the original printout.

As such, the Retro-Printer Module acts as virtual centronics printer, or even a virtual serial printer connecting in place of an original dot matrix, inkjet or daisywheel printer.  Our virtual printer routines running on the connected Raspberry Pi then interpret the captured data and convert that as required, acting as printer emulators.*

The same virtual printer emulators can be used alongisde serial connections, if you need to replace a serial printer, rather than a centronics printer.

The biggest benefit of the Retro-Printer is that you can decide whether printing off physical reports is actually the best solution – you can retain the output electronically, and reduce your carbon footprint, by removing the high energy requirements of a physical printer and not having reams of paper to store until required, whilst saving money on all that ink! Once converted the data can be stored electronically as a PDF, or printed on a modern USB or Network printer connected to the Raspberry Pi.  You can even extract the text as a stream for logging everything which is printed through the module.

We have even helped companies modernise their processes, by posting the captured data to a SQL database or CSV file, or even to a website or TCP/IP address; making the module extremely versatile.

In fact, if you have a USB HP printer, and your equipment would formerly have connected to a Centronics HP Printer, then you can use the Retro-Printer Module as a simple centronics to USB adaptor where it merely echoes the incoming data to the connected HP printer.

* Currently our virtual printers support Epson ESC/P and ESC/P2, HP PCL, PostScript., Printronix, Seiko, Siemens  and plain text formats, as used in a wide range of dot-matrix and early inkjet printers.  We can create other virtual printer emulators as required.