The Retro-Printer – Frequently Asked Questions

Although we have not been able to test every bit of equipment out there, the Retro-Printer can be used with any system which has an industry standard centronics (parallel) port.  You will need a centronics cable to connect to the Retro-Printer module

Unfortunately, not all equipment adheres to the centronics protocol.  During development, we found various machines and computers which needed 5V on pin 13 (ERROR) and pin 32 (SELECT) in order to recognise that a working printer was connected.  Some equipment even appears to require 5V on pin 18.

However, since we started selling the v3 production model, we have found some equipment (or more likely the centronics cables) connects one or both of these lines to GND.  This drains the power from the Raspberry Pi and is fixed by using the supplied cable convertor for the v3 Retro-Printer module.  

The v4 Retro-Printer module includes changes to allow for more combinations of hardware and overcome the GND issue.  It has jumpers to enable or disable the 5V on pins 13, 18 and pin 32.

We now supply a version of the Retro-Printer software for use with a standard USB to serial port adaptor plugged into the Raspberry Pi.  The Retro-Printer HAT is not required for this version of the software, unless you want to use the ONLINE switch for one of the supported custom modes (such as switching between printer emulations), or the lights to get an idea of what is happening.

The serial port version of the software comes with a protection dongle to prevent illegal copying of the software across multiple Raspberry Pi devices.

You have several options for connecting to older DOS based computers which actually have a USB port for printing.

The easiest solution is to use a low cost USB to centronics adaptor which will allow you to use the Retro-Printer module as supplied.

The other alternative is to look at our RWAP Interceptor (S) which replicates a USB printer and connects via the USB port, intercepting the data directly.

We would need to work with you to use an existing USB printer to obtain the necessary parameters to allow the Interceptor to mimic the original printer and we can then create a specific version for your purposes.

We support a wide range of printer standards:

  • plain text
  • Epson ESC/P and ESC/P2 control codes,
  • PostScript
  • HP-PCL printer data
  • HP-PGL (plotter data)
  • HP-PJL (laserjet series)
  • IBM ProPrinter
  • Mannesmann Tally MT600 Line Printers
  • Printronix (both P-Series and S-Series)

We ave also created some more experimental printer emulators:

  • Apple Image Writer II
  • Epson ESC/Page Printer (LP-S300)
  • Seiko
  • Seiko QT-2100P Watch Timer
  • Siemens PT-77 printer (connected to a CP-523 serial card on a PLC).
  • Star Micoline SP700
  • Tandy DMP-105

If there is sufficient interest, we can look to develop software modules to convert further printer standards.

If your original output fitted on one sheet of paper, and you find the output from the Retro-Printer module needs more than one sheet, then you probably need to adjust the number in epson_pins to 9 (default is 24).  The reason is that the ESC/P protocol (9 pin dot matrix printers) uses a different line spacing unit than the later 24 pin models.

This is casued by the changes to how line spacing is calculated between ESC/P (9 pin printers) and ESC/P2 (24 pin printers). You will need to change the setting of epson_pins ot 9 (default is 24).

We do not currently convert ESC/POS but can work with you to create the necessary conversion routines if this is required.  We have found that centronics Star ESC/POS printers can successfully be converted to a newer Star ESC/POS USB product by using the Retro-Printer in the USB Passthrough mode.

Please see details of our Interceptor module which is designed to sit inline between a POS Terminal and a USB printer and capture the data as it is printed.

We offer various options for handling the captured data. This include creating a simple plain text stream of captured data, to creating PDFs of each printed page for e-document handling.

The streams and e-documents are stored on the Raspberry Pi and can be accessed over the network, or you can simply plug a USB memory stick into the Raspberry Pi and we will echo the e-documents to that.

  • Capture Plain Text Output -  the Retro-Printer can simply echo the captured output to a log / stream.
  • Capture Epson ESC/P or ESC/P2 Output - we can extract the control codes and store just the plain text in a separate file. We can also take the original ESC/P or ESC/P2 control codes to create a PDF representation of the original printed page.
  • Capture HP PCL Output - you can install GhostPCL and the Retro-Printer will then use GhostPCL to convert the captured data to a PDF file

We have also written routines to write captured strings direct to a shared database, output incoming lines to a TCP/IP server, or HTTPS server, and also to a CSV file splitting the data into user defined columns as required.

That is fine - the Retro-Printer software can print the created PDF to any printer connected to the Raspberry Pi using the Linux CUPS printing system.  This means that you can easily print the captured output to a connected USB or network printer (or even over bluetooth).

If your equipment outputs data for a HP PCL printer, then no conversion is even necessary - the data captured from your centronics port can simply be echoed directly to a connected USB HP printer, saving valuable time.

You can print to any printer which has Linux drivers available.  Browse through the numerous links on the Ubuntu Wiki page and you can also search the database of free drivers for CUPS on OpenPrinting.

Although there are a large number of options available to allow the Retro-Printer module to work with a wide range of equipment, if you are replacing an Epson ESC/P2 printer, the default settings for the module will work.  Simply connect the module to a Raspberry Pi, insert the SD card complete with software image into the Raspberry Pi, connect cables and go.

All you will need do is to access CUPS (using a web browser on a PC) to set up your default printer.

We can optionally assemble everything and pre-configure the Retro-Printer software for you, plus do some changes remotely if you are struggling.  Please ask about pricing.

This is commonly as a result of the comparative speeds of the operating system sending the data and the Retro-Printer module.

Normally, increasing the printer_delay setting from its default of 4 to around 25 fixes this issue.

It can also be a handshaking issue.  As from v3.9 of the software, you can set a new Handshaking parameter to amend the timing of the acknowledge and busy signals which can also help with this - change this to a value between 1 and 4 and restart the Retro-Printer

This is generally caused by the Retro-Printer assuming too early that the printout has finished.  We have to guess this as there is no common method of indicating that a print has finished - we therefore use a timeout setting (default is 4 seconds) whereby if data has not been receiving during this time, then we assume printing has completed.

Increase the timeout setting to say 10 seconds (although this will reduce the throughput from your device if this is too long).

We also added a mode to use the switch on top of the Retro-Printer to signal the end of a print job, if you need to set a very long timeout

One thing that people seem to forget is that often old printers had various DIP swiitches which you needed to set for a new piece of equipment and then you could leave them and forget.

One of these is commonly used to determine whether the output is 7 bits or 8 bits.

As shipped, the default setting for the Retro-Printer is to expect 8 bit data - however, some equipment only sends 7 bit data (and the 8th bit can be quite temperamental).
Changing the bit_depth parameter for the Retro-Printer Module will address this

We have disabled the normal logon for the Raspberry Pi, and also the desktop view in order to allow for the Retro-Printer software to use maximum resources. 

As a result, you cannot attach a keyboard and monitor to the Raspberry Pi.

If you wish to see what is going on or change settings, you can either connect to the Raspberry Pi using an SSH client over a network, or press CTRL ALT F2 on the keyboard for the Raspberry Pi to bypass the login screen.

The Raspberry Pi needs an internet connection in order to get the date and time when you turn it on as it does not have a built in battery backed clock. If you do not connect it to the internet, the date and time of generated files can therefore be garbled.

We offer our own battery backed clock (RTC Module) which simply plugs into a USB port on the Raspberry Pi.  The v3.9 software checks for its presence whenever you turn on the Retro-Printer and if it is found, automatically reads the current date and time from the RTC Module.

The module costs £30 and can be purchased from https://www.sellmyretro.com/offer/details/usb-_rtc-module-%28real-_time-clock%29-60371

One of the issues that people may face is that dates in the printout may appear as something like 01 December 1924 due to the Y2K bug.

We have a feature which enables the Retro-Printer software to look for a specific date format and change the year to the correct year (2024 in this case).  At the moment, this is not a standard feature, so please contact us if you need it.

Since Windows 11 24H2 update, the security requirements to be able to add the Retro-Printer's /printout folder as a network drive have changed.  This has caused a few problems for any non-Windows based device on the same network.

To fix this:

a) Launch Powershell as the Admin user
b) Enter the command:
Set-SmbClientConfiguration -RequireSecuritySignature $false -Forcec) Press Enter

This should enable you to access the network drive again.

WARNING: Amending this may make your Windows PC more insecure if you normally share your Windows PC.