| General > General Technical Chat |
| Looking for help: Capture printer data on parallel port |
| << < (3/8) > >> |
| donotdespisethesnake:
I once tried to do this for a Textronix scope that had a parallel printer port, following the circuit at https://www-user.tu-chemnitz.de/~heha/basteln/PC/LptCap/index.en.htm I didn't have to time to finish it though, it was quicker to use the floppy drive on the scope and buy a usb-floppy drive. There are a few converter products on the market, but it's quite a niche application so tend to be pricey. There are so many printer variants, it can be hard to find the right combination of host/printer supported. |
| macboy:
Parallel printer port is very simple, and uses a type of handshake for timing. This old gear won't use any of the newfangled fast modes, so you can easily bit-bang the interface (emulating a printer) using any microcontroller. Essentially, you need to capture data when the host (test gear) pulses the strobe line. You need to set a busy line immediately, and pulse the ack line (and clear busy) when done with that byte. Then it repeats. The speed of transmission is thereby limited by the printer, which is a good thing since the characters-per-second speed of any mechanical printer is slower than the raw interface speed. This also makes your data capture job easy. It allows you all the time you need to (for example) send the captured bytes by serial port to a PC for logging. At least the HP thinkjet using PCL (Printer Control Language) level 1. It should not be difficult to parse this. |
| nctnico:
--- Quote from: macboy on January 09, 2018, 06:12:32 pm ---Parallel printer port is very simple, and uses a type of handshake for timing. This old gear won't use any of the newfangled fast modes, so you can easily bit-bang the interface (emulating a printer) using any microcontroller. Essentially, you need to capture data when the host (test gear) pulses the strobe line. You need to set a busy line immediately, and pulse the ack line (and clear busy) when done with that byte. Then it repeats. The speed of transmission is thereby limited by the printer, which is a good thing since the characters-per-second speed of any mechanical printer is slower than the raw interface speed. This also makes your data capture job easy. It allows you all the time you need to (for example) send the captured bytes by serial port to a PC for logging. At least the HP thinkjet using PCL (Printer Control Language) level 1. It should not be difficult to parse this. --- End quote --- I agree. Maybe you need an external flipflop. A couple of decades ago I made an eprom emulator using a 8051. When receiving a character a flipflop was set to signal the printer is busy and software reset it so the computer could send the next character. This worked like a charm because I could print commands and hex files to it at around 200kB/s which was way quicker than RS232. |
| phil from seattle:
Yes, I agree too. The emulator for a centronics interface is very simple. https://en.wikipedia.org/wiki/Parallel_port I'd use something like an Arduino Nano. Probably 12 pins needed to emulate the printer. Just spit the received bytes out the USB serial port. Will need to interpret page feed and other commands. |
| nali:
This seems to do what you want, but they don't seem to have released it yet... http://www.retroprinter.com/about-the-retro-printer/what-does-the-retro-printer-do/ |
| Navigation |
| Message Index |
| Next page |
| Previous page |