USB parallel devices and linux

A legacy parallel port consisted of a female DB-25 connector. This is now the "A" connector in the IEEE 1284 standard.
pin 1	/Strobe
pin 2	Data 0
pin 3	Data 1
pin 4	Data 2
pin 5	Data 3
pin 6	Data 4
pin 7	Data 5
pin 8	Data 6
pin 9	Data 7
pin 10	/ACK
pin 11	BUSY
pin 12	PE (Paper End)
pin 13	SEL
pin 14	/Autofd (Auto Feed)
pin 15	/Error
pin 16	/INIT
pin 17	/SELIN
pin 18	/GND (for strobe)
pin 19	/GND (for Data 0/1)
pin 20	/GND (for Data 2/3)
pin 21	/GND (for Data 4/5)
pin 22	/GND (for Data 6/7)
pin 23	/GND (for BUSY and Error)
pin 24	/GND (for PE, SEL, ACK)
pin 25	/GND (for AF, SELIN, INIT)

Here are some links with more information:

Basic linux printer support

The programming interface to /dev/lp can be found via the man page:
man 4 lp

The rub with usb to parallel gizmos, is that it may be problematic to get the chip inside to give raw access to individual pins. The usual protocol for sending data to a printer is to place 8 bits of data on the data pins, then do a handshake with BUSY, STROBE, and ACK which allows the printer to latch the data. Whether it is possible to just assert data on a pin (or to read data presented on a pin when in bidirectional mode) may be problematic.

Every USB printer device is expected to respond to this set of standard USB printer commands.

The Prolific 2305 chip

I pried open one of my USB to parallel gizmos, and found inside a chip labelled PL-2305H. This is (amazingly) a USB to parallel interface chip made by Prolific Technologies in Taiwan. In fact, when I plug it in and type lsusb I get:
ID 067b:2305 Prolific Technology, Inc. PL2305 Parallel Port
(So I could have saved myself the small bother of prying it apart). In fact, when I plug in my second unit (black with centronics connector), I get exactly the same information, so I do save myself the bother of prying it apart.

The USS720 chip

This is another USB to parallel chip, made by Lucent. It has a "register mode" that makes it look like normal parallel port hardware, which could be useful.
Have any comments? Questions? Drop me a line!

Adventures in Computing / [email protected]