통신 > Parallel to USB Converter “LPTzUSB”

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲


USB | Parallel to USB Converter “LPTzUSB”

페이지 정보

작성자 키트 작성일17-09-01 11:22 조회1,816회 댓글0건



25pol Parallel to USB Converter “LPTzUSB” USB-Logo

A description for do-it-yourself; Device no more available, see bottom of page for possible alternatives

Photo of complete device. The green LED shows the USB connection status; the red LED the power status

This device enables connecting of a USB printer to an old-style parallel port. LPTzUSB kann be attached either directly or with an extension cable to computer's printer port. (LPTzUSB has a 25-pin SubD male connector). On the other face of LPTzUSB, a standard USB cable has to be connected to the printer (LPTzUSB has a 4-pin USB-A socket).

The Host Controller used supports USB Full-Speed (12 Mbit/s) and Low-Speed (1,5 Mbit/s) but not High-Speed (480 Mbit/s). All known printers use USB Full-Speed.

The use of an external AC/DC adaptor is highly recommended. It must supply (exactly or at least, depending on revision, see below) 5 V and at least 50 mA.

USB hubs between LPTzUSB and printer are currently not supported. However, multi-function devices (with scanners, card readers, etc.) are supported, but only for printing.

This device is not suitable for capturing printer data with another PC! For this purpose, another project named LptCap exists. That device allows, in conjunction with my service-like application software SPE, re-formatting of printer data to any Windows printer (including PDF generators and FAX transmitters), i.e. translation of printer languages.

This device is not suitable for the opposite direction! For this purpose, USB→ParallelPrinter converters are widely available for about 5 € each. For connecting thingsother than printers, my project USB2LPT exists.

Recommended for connecting USB printers to:

Windows95 systems (or older) 
There must exist an appropriate printer driver for the desired operating system! Or the printer must support a common language like PostScript, PCL, ESC/P or Text-Only

older PCs or laptops/notebooks 
There are IMHO no ISA USB cards around


Parallel Printer Switch Boxes (2 PCs at 1 printer or similar) 
You may combine with USB to Parallel Converters too!


Pocket databases, ancient computers (Apple Classic, C64, Amiga, Atari…)


Bureau machines, cash stations, store-managing systems


Tool machines (e.g. for a protocol printer)

Not recommended for:

  • Computers with PCI slots should be upgraded with (cheap) USB cards


  • Something else than printers.
    USB memory will be supported in the future, LPTzUSB will then simulate a remote computer for Total Commander.


  • USB dongles (software protection devices) cannot be supported ever!


  • DOS software that runs in a Windows' DOS box and will print to an LPT: Here, a software-only solution is much better that redirects output to USB. (VDD in preparation)

Successor model:

A successor of the device described below is in preparation using either 3660040649_5tmjrT0M_extern.gifPIC32MX4203660040649_5tmjrT0M_extern.gifAT32UC3B0128, or 3660040649_5tmjrT0M_extern.gifLM3S5632 microcontroller. This will break the 30 kByte/s data transfer rate of the current design, and is even cheaper.

Use as development kit:

Because this converter contains a well-known microcontroller ATmega16 and a „bidirectional“ USB Host+Device controller, an enthusiastic programmer can make very different things. For example, a USB mouse to serial or PS/2 converter, a USB keyboard to DIN or PS/2 converter, a copy device from a USB scanner or digital camera to a USB printer (via Hub) etc.

Making the device

I have used professional PCBs. All production data is available in Eagle (a German PCB CAD software) format. For minimizing effort for reflow process, all SMDs are on one side only.

Parts list / Bill Of Materials

USB Host/Device controller SL811HST-AC428-1464-ND6,74+
Voltage regulator TPS76133296-11010-1-ND0,89+
Voltage regulatorμA78L050,12
MCU ATmega16ATMEGA 16-16 TQ2,55
Crystal 12000 kHz12,0000-HC49U-S0,23
SubD male plug 25-pinD-SUB ST 250,10
LED red + LED greenLED 3mm rt0,05
LED 3mm gn0,05
USB socket Type AUSB AW0,20
Hollow socketHEBW 210,26
„Infantry“PCC2233CT-ND0,156+ *2
X7R-G0603 100n0,05 *2
NPO-G0603 22p0,05 *2
BCN16 22k0,02
BCN16 220,02
SMD-0805 2k20,08 *2
BAT 54C0,07
HousingCOM 9380,30
USB cableAK 672/2-2,00,60

Component placement

SMD components and crystal are placed as usual.

Known from USB2LPT there are two sockets that will be placed as edge-mount devices although not suited for.

The SubD plug can be easily mounted in edge-mount technology.

Housing: Don't forget the holes for LEDs and the labels.

The PCB inside. (For former release click here.) All SMDs are reflow-friendly on one side only


Programming of ATmega16 will be done with AC/DC converter and a special parallel-port adapter directly at the parallel port, e.g. with PonyProg. The RESET connection will be done via internal solder bridge SJ2. This bridge must be closed for programming and may remain closed for operating the device. All JTAG signals are fed to the SubD plug too (for programming and/or debugging), but I've not used these pins anymore.

The PonyProg configuration bits must be set as shown in the following picture:

Configuration bits: Please set accordingly!



Original device
An AC/DC adaptor with regulated output voltage 5 V is highly recommended! The device is protected against wrong polarization but not against overvoltage!
Rev.1 (after 2007)
An AC/DC adaptor with at least 8 V output voltage is necessary. Non-regulated output is sufficient.

For running of LPTzUSB, a RS232 to TTL converter is recommended too. So you can observe data transmission and other useful things, e.g. using HyperTerminal at 38400 Baud. See following picture:

LPTzUSB status via serial „debug terminal“

Note that the ATmega16 program instructs HyperTerminal to draws the colored picture. There is no special Windows program necessary for nice output.

The bytes of descriptors shown have following meaning:

  1. USB address (without HUB always 01)
  2. USB device class (printer: 07)
  3. USB device subclass
  4. USB protocol
  5. Number of Configuration (mostly 01)
  6. Number of Interface (mostly 00)
  7. Number of Alternate Setting (mostly 00)
  8. Number of Endpoints (not counting EP0)
  9. EP0: Bits:
    • 7: Direction (1=IN) [Not valid for EP0]
    • 6: Toggle
    • 5-4: Transfer type, 00=Control, 01=ISO, 10=Bulk, 11=Interrupt
    • 3-0: Endpoint Number
  10. EP0: FIFO size
  11. EPx: Bits for next Endpoint etc.
  12. EPx: FIFO size for next Endpoint etc.


Although this device requires an AC/DC adaptor, supplying this heavy device outside Germany is not recommended!

Package. Think the AC/DC adaptor is not included.

Frequently Asked Questions

Why I can't get such a device from my local computer store?

Such devices are not commonly useful:-)

Furthermore, you have the possibility to print to a file and copy the .PRN file to a USB capable PC and print it out there. Moreover, Ethernet to USB printer converters are widely available.

Making such a device is possible since one or two years(!)

Is there a high-speed version?

No. It's almost useless because data at parallel port is commonly much slower than USB Full-Speed. And data must be transferred through the microcontroller. High-speed USB host controllers with microcontroller interface are not known yet.

For Low-Speed there are much cheaper solutions around! Why bother?

There are no Low-Speed printers. Only mice and keyboards. For Full-Speed simulation, all known microcontrollers are too slow.

What about the USB-ID (US$1500)?

Not necessary for host controllers.

A USB device that needs power – is that a bit brain-dead?

Attention: This is a USB host, it must be able to supply other devices too!
Supplying power in reverse direction is never intended in the host-centric USB specification.

Do I need a AC/DC adaptor?

Let's say: yes. Always.

You can watch the current voltage at HyperTerminal.

Can I clone this?

Yes. Only for assigning serial numbers I want feedback.


Dumb question (see questions above): Is the SL811HST used as USB Host?

Yes. This device was designed while microcontrollers with integrated USB host/OTG controllers were not available. A software-only solution like V-USB isn't possible because printers use full-speed USB.

Does the converter work with any brand of USB printer?

Yes. However, LPTzUSB (and AFAIK all other products listed at the end of this page) does not translate printer language, so the parallel-printing device must “speak” a printer language the attached USB printer understands.


Wheel re-invented! Sorry.

The company 3660040649_5tmjrT0M_extern.gifC-Logic in India has built such a device, as you can't see at 3660040649_5tmjrT0M_extern.gifthis Cypress page. For obtaining you should write to C-Logic.


Since August 2006, there is another company in Israel that produces a 3660040649_5tmjrT0M_extern.gifsimilar device called „LPT2USB“.


3660040649_5tmjrT0M_extern.gifAK-Nord, a German webshop


3660040649_5tmjrT0M_extern.gifipcas GmbH, offers a multi-function device with Ethernet and logging to a USB stick.


3660040649_5tmjrT0M_extern.gifJacobi C.E.O.S. offers a device for 79€ (2010, incl. VAT).


3660040649_5tmjrT0M_extern.giflpt2usb.net has one for 69 US$ (2010, VAT ??), it's IMHO the cheapest commercial thing.Note that all devices listed here obviously do not translate printer languages! If your application requires some processing of printer data, have a look to my LptCapproject.


Henrik Haftmann, created: August 27. 2006 — last modified: February 4. 2015


댓글 : 0

조회수 : 1,816

등록된 댓글이 없습니다.

게시물 검색

통신 목록

게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017