First of all, we must apologise in that progress with this project has not been as rapid as we would have wished, but in reality, the Retro-Printer module is the brainchild of two retro computer enthusiasts who have developed this in our spare time, without the backing of a large company and multitudes of employees to design the hardware and code the software.
I guess that this is in keeping with the retro computer market – reflecting the way products were envisaged and developed back in the 1980s. On the plus side, this has enabled us to finance the project from our own resources, rather than turning to crowd-funding to raise substantial capital; which is an avenue many projects seem to take nowadays.
We have been encouraged by the continued interest in the Retro-Printer module, with various people providing further examples of how the Retro Printer can be used to transform their existing approach to printing and data capture.
Thanks to this feedback, we have some plans on how to develop the ESC/P2 capture and conversion software further, such as implementing a specific option to replicate the (fairly) simple approach used by Sinclair Research Limited in the 1980s to communicate with their iconic Sinclair ZX81 and Sinclair ZX Spectrum home computers with their home-spun ZX Printer.
We have also been in communication with Epson and obtained details of how they expanded the published ESC/P2 documentation in order to handle 1400 and 2880 dpi printing modes, as well as 6 colour printing.
As those who follow the development of the public domain Retro-Printer conversion software will know, the initial release of the software has been proven to work in all Epson ESC/P and ESC/P2 modes up to 720dpi, with various improvements already to enhance the speed of the conversion and quality of the generated image.
This means that the software is now ready for the initial commercial release of the Retro-Printer module.
From a hardware point of view, we have now received the v2 PCB for the module along with all of the extra components required and will spend the next few weeks preparing a small batch of the v2 Retro-Printer module hardware and testing it, with the aim of sending a restricted number of units out to initial purchasers at the start of July – choosing from those who have expressed an interest in order to ensure that we cover a range of different computers, equipment and other applications, before signing off on the v2 PCB and initial software.
We have now successfully implemented both ESC/P2 ESC.2 (TIFF Compression) and ESC.3 (Delta Row Compression) support into the Retro-Printer software.
As part of this, we have updated the way that colours are merged together to use the CMYK format – resulting in colours which more closely match the mixed colour printing on an Epson printer.
This has allowed us to offer support for 180dpi, 360dpi and 720 dpi printing within the software. The image reflects the same label printed from a Sinclair QL (using the ESC/P2 colour replacement drivers for LineDesign), comparing the output in 180dpi (monochrome), 360dpi and 720dpi (colour replacement), using both TIFF and Delta row compression methods for speed.
This reflects the output from the program as would have been output from the program to a native Epson ESC/P2 colour printer.
This means that the Retro-Printer software now supports all of the various printing modes including text, bitmap graphics, and raster graphics; making it one of the most comprehensive printer capture utilities which exist.
We have now succesfully tested the ESC/P2 conversion routines for both text and 24 pin bit image graphics ESC * as can be seen in the attached image.
This represents a printer dump of some labels printed for a light bulb complete with bar-code. It was however passed to the program as a 180dpi bit image graphic, so don’t expect us to add bar-code characters for now!
As you can see the results are good – we are continuing to work on adding more features to the software, in particular the 720 delta-row and tiff compressed graphics mode are next on our list.
You can continue to monitor progress by viewing the public domain version of the ESC/P2 conversion routines and contribute to the discussion and testing if you wish through the GitHub page.
The public domain version is designed to be compiled and run on Linux, and will process a file dump of Epson printer data, to make the testing stage easier.
In the meantime, we have also now received the initial run of new PCBs, so once those are soldered up and tested, we will be able to supply the first few Retro-Printer units to those who are eagerly waiting.
The Retro-Printer uses its own custom printer capture software to emulate an Epson ESC/P2 inkjet printer.
We aim for the conversion software used by the Retro-Printer to be a true implementation of a Epson printer emulator – supporting as many of the full range of ESC/P2 printer language commands as possible.
If you search the internet you can find a handful of other commercial products which are designed mainly to run on a Windows based PC and capture the output sent to a printer by re-directing the parallel port. This is fine for programs which can run within a DOS-box running under Windows, but fails to address the issue for equipment and computers which do not run Windows.
There are even a couple of public domain offerings which offer similar functionality.
Many of these solutions were based as supporting a replacement for 9 pin dot matrix printers and many have not been updated for some years. As a result, one of the main drawbacks can be the range of Epson printer language commands which are supported.
Epson’s original printers supported the ESC/P printer language, which was mainly aimed at printing text and low resolution graphics on 9 pin dot-matrix printers. Over the years, when they upgraded to colour 24 (or even 48) pin printers, and then inkjets and even laser printers, Epson extended the printer language to the ESC/P2 standard, which was backwardly compatible with the original ESC/P, but was extended to support much higher resolution graphics (up to 720dpi x 720 dpi), more intricate fonts and finer movements.
Several other printer manufacturers implemented their own version of the Epson ESC/P2 standard and allowed users to switch the printer to ‘Epson compatible’, making it doubly important to implement the full range of commands.
We have been working our way through the Epson ESC/P2 Reference Manual implementing these various commands based on a 720 dpi inkjet printer, and updating the original beta version of our Retro-Printer capture software to move it from ESC/P to ESC/P2.
This work has been helped by the fact that one of our team (Rich Mellor of RWAP Services) re-wrote custom drivers for a Sinclair QL graphics program (LineDesign) in C and 68008 machine code to provide colour 720dpi printing on Epson printers, from the graphics programming (it was in fact Rich’s first attempt at C programming).
You can of course follow our continued progress on the ESC/P2 driver development through the public domain version of our Retro-Printer capture software.
We would happily implement the later 1440dpi and even 2880dpi, if only we could find the detailed implementation for these modes (which appear to still be a closely guarded secret).
We will also need to implement custom fonts and user defined graphics, but these will have a lower priority.
We are continuing to improve the Epson ESC/P2 conversion software used by the Retro-Printer. Recent changes have been to add support for colours, some of the extra commands implemented in the Star range of printers, and also support for the higher resolution raster graphics modes (such as TIFF and Delta Row compression modes used for 720dpi printing).
We are still looking for details on how the 1440dpi and 2880dpi graphics modes are implemented on later versions of the Epson ESC/P2 printers, but there does not appear to be any information available through Epson. If anyone else has details of these modes, then we would love to hear from you.
Please also remember that our routines are available under the GPL General Public License, for others to contribute and use in their own projects – https://github.com/RWAP/PrinterToPDF/
As part of the project to create the best linux based ESC/P2 conversion software, we have decided to release the actual conversion routines which will be used by the Retro-Printer module under the GPL public license, as we feel that this conversion software could be useful in many different projects.
These routines form the heart of the software which creates a PDF file from the printer data captured by the Retro-Printer module. This can therefore be used to create a new software based solution for converting Epson dot matrix and inkjet printer data and converting it into Adobe PDF format.
Of course, changes made (or suggested) to the conversion software by others can be incorporated into the routines used by the Retro-Printer module to the benefit of all.
The initial release of the conversion routines supports ESC/P commands and a limited subset of ESC/P2 routines and can be found at: https://github.com/RWAP/PrinterToPDF/
We welcome contributions and comments on this project and would love to see others extend it to support PCL to PDF conversion as well as the Epson ESC/P2 to PDF conversion routines already partially supported.
Having taken into account all of the feedback from our beta testers, we have now created a new version of the Retro-Printer PCB, which should be in our hands by March 2017.
This incorporates various issues around ground and voltage lines, as well as adding LEDs to show power status, whether the unit is online, and whether data is being received.
There is also a button to take the Retro-Printer module off-line, so that it replicates as closely as possible, the features you would find on a standard centronics printer.
You may also notice that we have repositioned the centronics connector slightly, in order to allow us to provide 4 mounting holes to ensure that the unit connects securely to the Raspberry Pi computer.
We are now working on finalising the printer capture software which runs on the Raspberry Pi to offer configurable options so that you can easily specify what is to happen to the data captured by the Retro-Printer hardware.
After a short break and sifting through the feedback from our beta-testers, one thing which has emerged is that the Retro-Printer hardware and software appears to work well with various computers.
One American beta tester has an application where his security system currently prints out a continuous log each time someone enters a passcode into a door entry system on an old dot matrix printer. With the help of the Retro Printer, he wants to capture these logs to a computer, so that he can later interrogate or sort the data (eg according to door being used, or by common code failures).
At the moment, the output is captured and stored in a pdf file, which is hardly ideal for later manipulation (but then neither is a long continuously printed sheet of paper from a dot matrix). So we have decided to add an option in the software running on the Retro-Printer, to allow plain output to be sent to a simple log file (which can then be read on a PC for sorting and manipulation).
Elsewhere in the USA, we are still working with one of our beta testers to find out why the Retro Printer does not appear to work correctly with a set of injection moulding machines. The problem appears to be linked to timing, as the machines sometimes see the Retro-Printer, and then report it is missing, and as a result, the data is corrupt (we appear to be missing some bits in the data). Odd, but we will resolve this!
We have been working with one of our beta testers in the USA of late to help identify further enhancements to both the hardware and the software.
The problem the tester faced was something which affects a lot of industry – working in a factory with 40 injection moulding machines, every week they have to currently take a printer around to each machine in order to run off reports and check whether the settings are correctly set for the ideal functioning of the machines.
The current options of equipping each machine with its own printer or some other solution would be expensive – around $16,000 or continue wasting 2-3 hours a week carrying a printer around the factory floor.
Hence the Retro-Printer seemed an ideal solution – as it could convert the output to a PDF file, which could then be easily downloaded to a PC using a wireless network at a fraction of the cost.
Following initial tests, we have identified that we needed to add an additional signal to the Retro-Printer, but due to the simplicity of the hardware, this could be achieved quite simply – just 2 wires were required, so something that the beta tester could do in situ.
The software has then been further enhanced to support this signal, and we have added important features such as condensed printing, subscript and superscript to the main conversion program.
One additional benefit has been that with the extra signal, we have managed to allow a Banana Pi to send output to a Raspberry Pi, using an off the shelf USB to parallel port convertor on the Banana Pi, and the Retro-Printer module connected to the Raspberry Pi
Having re-compiled our Raspbian operating system image for the latest quad core Raspberry Pi 2 Model B computer, and re-connected everything, we are pleased to see that the Sinclair QL test program worked straight away on the Retro-Printer, without having to disable handshaking.
So a few more tests on the standard UK Sinclair QL (with BT style socket on the serial port), using a Miracle Systems serial to centronics port adaptor has shown some pleasing results.
The QL has Toolkit II installed, which includes a screen dump utility which is pre-programmed for various printer drivers, and so we tried the following ones, which all worked successfully (albeit in black & white):
- Epson MX80
- Epson FX80
- Epson FX100 Wide Carriage
- Epson JX80
- Epson LQ2500 8 pin
- Epson LQ2500 24 pin
- Mannesmann Tally MT-80
Now to find some more equipment with a parallel port or serial port to try….