Can I use a Arduino uno as a LPT port for laptop?

Just bought a Uno r3 the other day and wanted to see about turning it into a parallel port to use on my laptop. I have only USB's and monitor port, and esata port. Ive got a couple things I would like to use and they all have lpt cables... Everytime I search arduino and lpt in any combo it just brings up programming the arduino.

Links, advice, pics anything would help.

Thanks in advance,


You'd need to come up with the software to accept USB data and convert it to parallel and drive the control lines. I'm thinking this will be quite a challenge.

Its not intended for use with a printer if that simplifies things. My original plan was But I havent found anything helpful or received any advice.

this is just an alternative way of reading the nand flash through lpt

You have complete control over the I/O pins so of course you can create a parallel port or simulate a computer's LPT port (if you understand the hardware & software protocol).

The tricky part would be on the laptop side, especially if you have an existing application that uses the LPT port. In that case, you'd need to write a driver so that your operating system sees the USB/Arduino as a parallel port.

If it was me, I'd just buy an [u]adapter cable[/u]. I assume the operating system & application would recognize this thing a regular parallel port.

I agree with @DVDoug that it would be a huge challenge to get your laptop to recognize the Arduino as a parallel port. If it is acceptable for the PC software to treat the Arduino as a serial connection that problem goes away.

You also need to consider how you want to use the parallel port. Having USB in the middle means that some of the parallel port functionality is just impossible due to the latency in the USB system. This is the case with USB-parallel cables as well as anything you may create yourself.

USB is exceptionally slow when transmitting one byte at a time if you have an application that needs a response after every byte. The parallel port was very good for that sort of application.


this is just an alternative way of reading the nand flash through lpt

I have looked into lpt emulation because we have legacy applications at work that use parallel ports and laptops without parallel ports. The short story is that it is impractical to do. The only practical option is to get a PC with a PCI parallel port card, if you want to use LPT, or to ditch it and buy new stuff that works over USB (what we did).

The USB to parallel cables don’t work for general use because they only work with printer drivers. For PC applications that expect to find parallel port registers at 278 or 378, you would need to write a kernel driver to emulate the registers, invent a protocol to transfer data over USB, write the firmware for a USB device…

So my advice is forget LPT completely. nandpro supports a USB device, if you want to get stuff done, use that.

If you want to write a nand flasher for educational reasons it would be a fun little project, but it doesn’t appear that nandpro provide source code, so you would probably have to write the application side as well.

The Hynix NAND chip is fairly easy to interface to. Decoding the flash file system might take some coding. Overall quite doable, but probably not something I would recommend as first project, unless you already have experience with programming flash chips.

Yea, I just got an old desktop tower. This can be closed. Thanks tho you guys!