#parallel port

LIVE

Pointlessly Proprietary Parallel Ports

I have an old HP EliteDesk 800 G1 tower I use as a home VM server. I have need for a Windows XP era system with a real parallel port for testing CPLD configurations for some projects, but don’t have the room to set one up permanently. It would be handy if I could use the server I already have under my desk.

This series of HP EliteDesk towers had a build-to-order option for a parallel port, and sure enough there is a 26-pin parallel port header on the motherboard.

There is not, however, any mention of it in the system BIOS setup menu. There are none of the usual address/IRQ settings. No parallel port is detected by the OS either. A standard internal parallel port adapter plugged into the connector has no effect. Clearly there are proprietary shenanigans afoot.

The parallel port could be ordered after the fact as HP part number KD061AA, which still has a listing HP’s website. It even has a picture of the part:

But … what is that? What have they done? Is that a photo artifact or is it a feature of the part?

The official image of the part on HP’s website has an odd little gray loop on the IDC on the motherboard end of the cable. It almost looks like they’re shorting two pins together.

Time to check the usual second-hand auction sites to see if there are any clearer pictures.

That is definitely one of the ribbon cable wires left long and looped around into one of the IDC connector pins. Time to break out the continuity probe.

A PC external parallel port is generally a 25-pin D-sub connector, but the motherboard connector has an even number of contacts, so 26 pins. On a standard PC parallel port cable, the 26th pin is left unconnected. The header on the HP motherboard though has pin 14 removed as a key, and blocked off on the cable.

The missing key pin is a ground pin for the parallel port, so one obvious way to make this work would be to run that key wire to a GPIO pin on the motherboard, since it would be grounded by connected peripherals. The problem with that of course is it would require a peripheral be connected for the port to even be detected by BIOS, and would require the peripheral properly connect all the ground pins on the parallel port.

With the continuity probe, I found pins [26, 24, 22, 20, 18, 12, 18] on the motherboard connector were grounded (these pins correspond to pins [NC, 25, 24, 23, 22, 19, 18] on the parallel port; all ground pins). Pin 14 is the key pin and not populated. Pin 16 though should be a ground pin, connecting to pin 21 on the parallel port.

Taking a closer look at pictures of the adapter, pin 16 (parallel port pin 21) is wired to pin 26 (not connected on the parallel port). So It looks like what HP has done is run a GPIO pin to header pin 16, and used the bit of wire on the cable to ground the GPIO pin. If the pin is held low, the system BIOS knows the parallel port is connected.

I soldered a jumper on the back of the DB25 connector of a standard parallel port bracket between pin 21 and pin 25, which would ground the presumed GPIO pin. On the next boot, the parallel port was detected by BIOS, and its settings were added to the setup menu.

Such a simple hack on parts laying around to get the missing functionality I needed. It would be easy to attribute malice to this proprietary parallel port pinout, but the simpler explanation is probably more appropriate: this adapter is easy. If it’s connected, the parallel port is detected and presented to the OS. If it’s not connected, users don’t have a parallel port showing up in their OS without the corresponding connector on the back of their PC.

Lucky for me, it was also easy to figure out, and I didn’t have to spend the $25-$35 these adapters list for at various online retailers.

Iomega ZIP 100 drivesThanks to friends of mine, I was able to get two working parallel-port ZIP drivIomega ZIP 100 drivesThanks to friends of mine, I was able to get two working parallel-port ZIP drivIomega ZIP 100 drivesThanks to friends of mine, I was able to get two working parallel-port ZIP drivIomega ZIP 100 drivesThanks to friends of mine, I was able to get two working parallel-port ZIP drivIomega ZIP 100 drivesThanks to friends of mine, I was able to get two working parallel-port ZIP drivIomega ZIP 100 drivesThanks to friends of mine, I was able to get two working parallel-port ZIP driv

Iomega ZIP 100 drives

Thanks to friends of mine, I was able to get two working parallel-port ZIP drives from Iomega. My father used to use these during the 1990s as ZIP disks were popular in offices in Czech Republic. He later switched to an internal ZIP drive connected to IDE when his parallel-port external one died and used it for another 10 years.

I have a few systems where it is not possible to add a network controller so I though that this would be a good device for faster data transfers (compared to a null-modem cable or diskettes) or accessing data larger than the internal hard drives.

It works just fine. The only drawback is that you usually need a 486 system to leverage full speed of the external drive. My 386 laptops do not support the ECP/EPP protocols on the parallel port, so the access speed is significantly limited (150KB/s?). Anyway, it is still convenient enough for running DOS programs straight from the external drive. I am surprised how nice driver support Iomega provided for DOS and Windows 9x. There is even a “guest” driver in a form of a single exe file – just run it and you can immediately access the drive using a newly assigned drive letter.

(original article with hi-res photos)


Post link
loading