Building A Fake Printer To Grab Screenshots Off The Parallel Port

[Tom Verbeure] recently found himself lamenting the need to take screen grabs from an Advantest R3273 spectrum analyzer with a phone camera, as the older gear requires you to either grab tables of data over an expensive GPIB interface card, or print them to paper. Then he realized, why not make a simple printer port add-on that looks like a printer, but sends the data over USB as a serial stream?

On the hardware side, the custom PCB (KiCAD project) is based on the Raspberry Pi Pico. Obvious form factor issues aside ([Tom] did revise the PCB to make it smaller) this is a shrewd move, as this is not a critical-path gadget so using the Pico as a USB-to-thing solution is a cost-effective way to get something working with minimal risk. One interesting design point was the use of the 74LVC161284 special function bus interface that handles the 5 V tolerance that the RP2040 lacks, whilst making the project compliant with IEEE-1284 — useful for the fussier instruments.

Using the service manual of the Sharp AP-PK11 copier/printer as a reference, [Tom] again, shows how to correctly use the chip, minimizing the design effort and scope for error. The complete project, with preliminary firmware and everything needed to build this thing, can be found on the project GitHub page. [Tom] does add a warning however that this project is still being worked on so adopters might wish to bear that in mind.

If you don’t own such fancy bench instrumentation, but grabbing screenshots from devices that don’t normally support it, is more your thing, then how about a tool to grab Game Boy screenshots?

35 thoughts on “Building A Fake Printer To Grab Screenshots Off The Parallel Port

    1. It doesn’t write to a USB drive but uses a USB serial port to send the data to the PC for post-processing. The Pico only has 2MB of flash storage and some storage formats (e.g. color PCL) require 1.4MB of storage for just 1 screenshot.

    2. It doesn’t, but it could be that way if someone wrote the code and added the right glue to the board.

      There’s projects out there that use the RP2040’s PIO modes add another USB interface for (eg) using thumb drives with a Pico.

      1. Screenshot to floppy drive is supported by the Advantest and the Tek scope. But the floppy drive turned out to be broken for both (as I found after spending ~$40 on a USB floppy drive and disks.)

          1. That Tek 2212 has a DB-25 printer port and has drivers for a bunch of different formats: HPGL, Epson FX, Deskjet/Thinkjet/Laserjet which are all PCL compatible printers.

            The fake printer port should work fine with it.

          1. No. I didn’t feel like opening up the R3272, and you’re never totally sure if they’re compatible.

            But also: the parallel printer port solution is IMO easier to use. You rarely record just 1 screenshot at a time. When you have a USB stick, you need to keep a log of which file you took when. With this tool, I get the image immediately on my PC and then I rename the file right away with a name that makes sense.

    1. As written in the introduction of the blog post, the floppy drives of both my Advantest R3273 and Tek TDS 420A didn’t work.
      Also, the total build cost for the parallel port grabber is lower than a USB floppy drive + a pack of floppy disks.

      1. Looking at the user manual, a Medtester 5000C has a DB-25 parallel port. You should be able to capture the print output just fine. The manual doesn’t say what kind of format is printer to though, but it shouldn’t be too hard to figure out.

  1. Nice project! I almost regret not having a device that has a printer port that I’d need to capture! My Rigol oscilloscope can save screen captures to USB drive just like Toms newer ‘scope. I used its ethernet to grab the raw captured data to process floppy disk flux transitions.

    1. That reminds me of the DOS game “The Last Half of Darkness”.
      Part #2 plays in a dungeon and there’s a useful map feature.
      However: It requires a physical printer to print to.

      Years ago, I used Virtual PC 2004/2007 to interface the emulated parallel port with a suitable printer (remember line feed etc? Modern printers nolonger print line by line. They print batch wise.)

    2. Tip: If you ever implement something like that, please consider supporting plotter languages rather than printer languages.
      Epson FX, Star LC or HPGL (pre-PCL) were popular in the early 80s, for example.
      Many late DOS programs can handle their format still, even as an interchange format.
      So an HPGL printer driver (print to file) served as an export feature, for example, long before PDF printers were a thing.

  2. What a coincidence! I have some boards on the way for a serial -> parallel adapter for receipt printers. I’m using an Arduino Micro, originally because of its USB capability, but I actually ended up ditching that idea because of USB grounding issues…

  3. It’d be nice to have the same gadget as a hardware means to circumvent PDF DRM (i.e with protections set to “you can view and print but cannot save as file”). One would print to the fake printer that has a USB stick attached and the output PDF would be saved there :P

  4. This is pretty cool. I actually did some of the initial “can I convert a printer data stream to a PDF or something” research myself recently, so pretty impressed to see this. Definitely considering building one (let’s be honest MOQ means I’ll build 5)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.