The v2 Retro-Printer module has received some great feedback and been tested with a range of equipment:
- Sinclair QL Computer
- Commodore Amiga A1200 Computer
- IBM PC
- Injection Moulding Machines
- Door Entry System (logging events from the system)
- Atari ST
There is just a short delay, as we found a timing issue on large printouts so we need to split the software into two parts – one part simply captures the incoming data, whilst the second part will process the captured data to create the final output.
We are also looking into the possibilities of offering a case and mini-SD cards complete with the software ready to be inserted into your Raspberry Pi.
The case will be available at a later stage, so will not delay us releasing the Retro-Printer module as such.
We have now received the latest PCB for the Retro-Printer module, which forms v2 (the release candidate) of the hardware. Once assembled, it integrates several new features, in preparation for the latest version of the Retro-Printer software.
- The module is designed to fit the Raspberry Pi better providing a neater finish.
- A switch has been incorporated to allow you to turn the Retro-Printer offline (as you could do with an original dot matrix printer).
- Three LEDs have been added near to the switch – provided indication of online status, busy status (ie data is being received) and power to the module.
As you can see from the pictures, once the Retro-Printer is connected to the Raspberry Pi, it can fit into a standard Raspberry Pi case (although without a cover).
We will be looking at ways at producing a suitable cover for the case, so that the LEDs are visible and the switch can be mounted to the cover – this will probably be 3D printed and available at a later date.
The new software also incorporates additional features and has now been tested successfully with printing from a Sinclair QL home computer using a serial to parallel convertor. This was impossible with the previous version of the hardware as the serial to parallel convertor did not pass a handshake signal back to the QL and so printing never started.
The v1.3 software incorporates the following new features:
a) Support for 80% of the Epson ESC/P2 printer command set, including ESC.2 and ESC.3 compressed graphics printing.
b) Support for 180dpi, 360dpi, 720dpi and 1440dpi printing.
c) Ability to specify the page size being used as well as set the paper margins.
d) Support for 7 colour printing (and merging of colours such as provided on the Epson Stylus Colour 850 printer by over-printing).
We are continuing to make some final tests and will then send the initial batch of v2 hardware out to interested parties for testing across a wide range of hardware and applications.
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!