LPT printer emulator
Warning:
While this project does work and has been tested against a number of devices, the firmware is very quick & dirty with hardcoded parameters and missing error handling. Use in production environments is discouraged.What is it?
Old computers, machines and test equipment often expect printers to be directly connected via a parallel port / LPT / IEEE 1284.
In the modern day, this is impractical. Having a single printer for each device is expensive, takes up a lot of space and they need to be in physical proximity.
It might also be preferrable to get a virtual printout as a .pdf file instead of a physical piece of paper.
With this firmware, a regular ESP32 devboard can be connected directly to a parallel port and will act like / emulate a physical printer. The resulting print jobs/data are then sent over WiFi to any TCP/IP socket.
This socket is directly compatible with the LPR interface on many network printers, so many of these ESP32 emulators can be configured to work with a single real network printer. Alternatively, CUPS can be configured to receive data from such a socket and generate PDF files (or forward the job to a different, local printer).
This project has been used to print from an IBM ThinkPad T41, an Abit Socket 7 mainboard and an airplane wheel vibration calibrator.
In operation
This video shows a ThinkPad T41 in the BIOS setup menu. Pressing the “Print Screen” key in text-mode actually does what the name implies and will print the current screen contents over the LPT1 interface.
CUPS then receives the printed data and converts it into a PDF file in real time.
Links
- Firmware & Documentation: Arduino/PlatformIO repository