Bi-Directional Parallel Port Cable (DB25 Male to DB25 Male)

Introduction.

This is a bit off the topic of use of the parallel port for control and data acquisition. However, I receive a lot of mail on how to construct such a cable and decided to put this information on my page. But, please note that this cable is for PC to PC communication. It has nothing to do with any of my other discussions on control and data acquisition.

These cables are commonly used to communicate between PCS using LapLink software. In my experience the commercial products are distinctively colored yellow.

I don't really know how the commercial software works, but can glean a bit from the cable configuration.

Note that five lowest output bits on the Data Port on one PC are connected to the five highest input bits on the Status port on the other suggesting that the software transfers 4-bits (nibble) at a time, with the fifth bit perhaps being used as a nibble identifier.

It is interesting to note that the INIT (term 16) as well as the /SELECT_INPUT (terminal 17) are connected to the corresponding terminal on the other connector. These are open collector outputs and may also be used as either outputs or inputs. I assume these leads are being used as a strobe and as an acknowledgment.

Cable Layout.

     Connector #1                      Connector #2
     Term Desig                        Term Desig

     6 (Data - Bit 4)--------------->  11 (BSY, Status - Bit 7)
     5 (Data - Bit 3)--------------->  10 (/ACK, Status - Bit 6)
     4 (Data - Bit 2)--------------->  12 (PE, Status - Bit 5)
     3 (Data - Bit 1)--------------->  13 (SELECT, Status - Bit 4)
     2 (Data - Bit 0)--------------->  15 (/ERROR, Status - Bit 3)

     11 (BSY, Status - Bit 7) <------ 6 (Data - Bit 4)
     10 (/ACK, Status - Bit 6) <----- 5 (Data - Bit 3)
     12 (PE, Status - Bit 5) <------- 4 (Data - Bit 2)
     13 (SELECT, Status - Bit 4) <--- 3 (Data - Bit 1)
     15 (/ERROR, Status - Bit 3) <--- 2 (Data - Bit 0)

     16 (INIT, Control - Bit 2) ------ 16
     17 (/SEL_IN,Control - Bit 3) ---  17

     25 (Ground) --------------------- 25