bilingual Deutscher Originaltext Keywords: USB, LPT, parallel, parallel port, printer port, converter, adaptor; programmer, ATmega, ISP, FPGA, CPLD, JTAG, direct port access emulation, IEEE 1284, IEEE1284

USB-Logo Converter From USB To Parallel 25pol. SubD-Buchse

Contrary to all other USB parallel ports which can connect to printers only, this makes connection to most hardware - without adapting the software! The entire circuitry fits into a usual dongle housing.

A reverse device called LPTzUSB for connecting a USB printer to a legacy parallel port is available since 2006.

For ordering devices, please email me.

Operational areas

Typical devices are: Certain equipment categories are excluded from correct emulation: The software accessing the parallel hardware must be run under Windows! A DOS program may run in a DOS box, window or full-screen. 16-bit Windows programs are supported too. A Pentium class processor is required. 486 is too old.

Restrictions, Performance

Interception of port accesses takes place in a driver in privileged mode. But wasted time for the interception itself is small in opposite to that with each IN instruction a USB frame must be waited for, at least 125 µs. This may lead to 100x lengthening of time!
I will hope that your software is not so much input-intensive. While processing time is lengthened, the processor yields to other running processes. Solely modifying the software can reduce execution time of IN instructions, but that's exactly what should be avoided.
In contrast to “competitors” I don't want to make false hope!

OUT instructions do not lead to considerable lengthening.

It is stupid to use this converter only for a printer! All other converters do this job correct! They are inexpensive too.
However, this converter contains a printer-compatible USB interface, therefore, printing is possible without loss of performance, see USB2LPT as multifunction device.

Programs that come with her own kernel driver will work too. This ist due to the “brute force” of a debug register trap.

Interferences with debuggers may occur. For program developers, this converter is relatively uninteresting.

Hint: If you are looking for a working parallel port for laptops carefully, you will find out that there are PCMCIA cards. And if you have a PC, you can buy an appropriate PCI card. Such solutions will work much more reliable as there is no trap of port accesses by a piece of driver software.
Unluckily, such cards are more expensive and not very convenient.

History of USB2LPT

I had built this device in several versions, or revisions. Here are self-make instructions too.

Photo of evaluation system
Evaluation system
USB2LPT – Evaluation system
  • September 2004, Quantity: 1
  • AN2131SC - Full Speed
  • Handmade PCB (included in Diploma work of Eik Arnold)
  • 99% compatible to “Original Version” and “Revision 1”, only pull-up resistors are missing
  • A handy utility for troubleshooting is the LPT checker
  • Do not clone! Errors on PCB!
Photo of device
The “Original”
USB2LPT Release 1.0
  • February 2005, Quantity: 10
  • AN2131SC - Full Speed
  • Handmade PCB (two-sided), manual via, hand-soldering
  • Dongle housing, USB-B receptacle, 25 pin SubD receptacle
  • Wire for extra 5V supply included
  • Recommended to clone (small changes necessary)
    Attention: AN2131SC is about to be discontinued.
First Revision
First Revision
USB2LPT Release 1.1
  • April 2005, Quantity: 18
  • AN2131SC - Full Speed
  • 100% compatible to “Original Version”
  • Industrial PCB (two-sided, 350 µm), hand-soldering
  • Plug housing, USB-MiniB receptacle, 25 pin SubD receptacle
  • Do not clone! Cumbersome! Errors on PCB!
Second Revision, High Speed
Second Revision
USB2LPT Release 1.2 — called USB2LPT2 too
  • August 2005, Quantity: 33
  • CY7C68013A-56PVXC (FX2LP) - High Speed (not firmware-compatible to predecessor, other chip)
  • Industrial PCB (two-sided, 250 µm), hand-soldering
  • Plug housing, blue High-Speed LED, USB-MiniB receptacle, 25 pin SubD receptacle
  • Cloning OK, but maybe you will await next revision
Third Revision
Third Revision
USB2LPT Release 1.3
  • June 2006, Quantity: 132
  • CY7C68013A-56LFXC (FX2LP) - High Speed (firmware-compatible to predecessor with new firmware, other wiring)
  • Industrial PCB (two-sided, 150 µm), reflow soldering
  • Plug housing, blue High-Speed LED, USB-MiniB receptacle, 25 pin SubD receptacle
  • Professional clones recommended
Fourth Revision
Fourth Revision
USB2LPT Release 1.4
  • April 2007, Quantity: 101
  • Very similar to revision 1.3 above
  • Three extra lines for using as 20-pin I/O device
  • Professional clones recommended
Fifth Revision
Low-Speed Revision
USB2LPT Release 1.5
  • 2007, Quantity: 11
  • ATmega8 or ATmega48: ultra cheap. Idea from IgorUsbPlug. Fast as Full-Speed.
  • Firmware implementation using USBDRV by extern Objective Development
  • Same Windows driver, slightly modified .INF file (already done and available)
  • PCB only, very easy to populate
  • Cloning recommended – useful where low-speed is sufficient
    e.g. relay cards, LC displays, slow-moving stepper motors
Sixth Revision
Another Low-Speed Revision
USB2LPT Release 1.6
  • 2008, Quantity: 250
  • Crystal removed! Thanks to continued work of extern Objective Development
  • Integrated bootloader for firmware update via USB
  • Same as Release 1.5 but 2 diodes instead of voltage regulator when 3.3V operation of ATmega controller is needed for some application
  • PCB, very easy to populate, and devices
  • Cloning recommended – useful where low-speed is sufficient
Seventh Revision
High-Speed again
USB2LPT Release 1.7
  • 2008, Quantity: 250
  • Functionally equal to Release 1.4
  • Changed voltage regulator to conform the USB idle-mode power consumption
  • Professional clones recommended
Centronics adaptor
Centronics adaptor
Centronics adaptor
  • 2007, Quantity: 0
  • For all USB2LPT revisions, to connect to a 36-pin Centronics receptacle
  • Source (Eagle PCB)

You may order devices by mailing to the address below.

Software

Usage

Have a look to Device Manager! In the “Connections (COM & LPT)” tree, you will find a new parallel port. Its property dialog has two extra sheets: There is an API for programmers too. It is simply DeviceIoControl based. Open the device with CreateFile and file name "\\.\LPT1" (or LPT2 if you already have one), and transfer IN/OUT data with (see USB2LPT.A51, label "upv") via a single call of DeviceIoControl. This part of API is not subject to change in the future. (The IOCTL code is $222010.) Of course, a helpful documentation must follow.

Via IOCTL code IOCTL_VLPT_AnchorDownload, you can inject additional firmware to speed-up your applications. Therefore, USB2LPT is a Pocket Development Kit for EZUSB AN2131/CY7C68013 too.

These Property Pages are also available in the languages German, French, Italian, Spanish, Simplified Chinese, Japanese, Czech, Turkish, and Russian.
See BETA directory for details.


Frequently Asked Questions (FAQ)

You can read the FAQ by following this link.

List of clones


Mailbox Henrik Haftmann, – HTML mail, Full-quoted mail, or mail with more than 10 lines of footer will be rejected!
Chemnitz, December 18, 2008