Purpose & ScopeMotivationPC HardwarePCI Express extension cardsMotherboard connectorVarious standardsProgrammingWindowsToolsPinoutTester circuitConclusionsReferencesPurpose & ScopeHere we share our experience and document our research about parallel port. MotivationParallel ports have all but disappeared from main stream computing hardware so why bother? As it turns out I have a rather obsessional interest for VFD modules and their retro electronics looks. I notably did quite a bit of work to make good use of various such modules from Futaba, see CIC on MediaPortal for instance. However the frame rate of the larger Futaba VFD modules is rather abysmal even though we used a USB interface. The perfectionist in me was left frustrated with Futaba hardware. Asking Futaba about it, to see if they could somehow improve their firmware, yield no result since they obviously had no interest in helping out a technology enthusiast, even though it would have been mutually beneficial. Moreover the USB interface their display implement tends not to work on modern motherboards unless they have a BIOS option to disable xHCI. Looking around on the market for VFD hardware I found out that Noritake did offer modules with similar mechanical specifications and a DMA mode that should enable high frame rates when connected over a parallel port interface. Thus I set out to understand and use parallel ports on Windows. PC HardwarePCI Express extension cardsThe following PCIe hardware did not work with my Noritake VFD as the voltage on the Strobe channel only goes up to 1.8v: Delock PCI Express Card > 2 x Parallel Longshine LCS-6320 Startech 2 Port PCI-e Parallel Adapter Card - PEX2PECP2 This low voltage Strobe issue is also mentioned on the Wikipedia page. Exsys also makes such a PCIe card, I have yet to check if it has that low voltage issue. Motherboard connectorSome motherboards have an internal parallel port connector with a smaller pitch than the standard 2.54mm. Ribbon cable for those can be hard to find. I found information about them on this page in German. I ended up ordering some of those cables there. Various standardsOver the years there has been various standards for parallel ports from Standard Parallel Port (SPP) to Extended Capabilities Port (ECP). That later allowing for compatibility modes through its Extended Capabilities Register. ProgrammingWindowsTo get pin level control on Windows you need to use a specific driver inpout32 being the most popular apparently. If you are connected to a device that's doing Standard Parallel Port handshake, also called Centronics, then you should be able to use the built-in Windows drivers. In theory you should be able use your parallel port using CreateFile but that won't give you pin level control. ToolsDoug developed that Parallel Port Tester for Windows. He even published the code he used to work out ports addresses on your Windows system. Pinout The pinout of the male connector is obviously reversed as it needs to mate with the female. DB25 PINIDC PINSignal 11Strobe 23Data0 35Data1 47Data2 59Data3 611Data4 713Data5 815Data6 917Data7 1019Ack 1121Busy 1223Paper-Out 1325Select 142Linefeed 154Error 166Reset 178Select-Printer 1810Ground 1912Ground 2014Ground 2116Ground 2218Ground 2320Ground 2422Ground 2524Ground Tester circuitHere is a tester circuit we used to validate our controller implementation: This circuit was based on the following design from xlentelectronics. ConclusionsParallel ports are a dying breed and I now understand why: Printers, scanners and other peripherals have long moved on to USB or RJ45 connections. It also does not support GPIO use case reliably due to poor hardware and electrical standards, lack of low level APIs and archaic protocols. For my GPIO use case I'll be looking at a solution based on a USB micro-controller such as Arduino micro hoping it can provide descent performance. References Pinout image from CNC4PC. About Parallel port on beyond logic. Parallel port tester application for Windows with hardware schematics. Parallel port output.