USB printer?

Hi all. I posted this on the Processing forum and it was suggested I try here. Hopefully someone can give me some info :slight_smile:

I'm working on a gallery piece using an arduino uno. I have an LED sequence set up, triggered by a switch. I want the switch to also trigger a small USB inkjet printer (probably this one: http://www1.lexmark.com/US/en/view/Printers%20&%20MultiFunction/Lexmark-P350/catId=cat170005-category&prodId=3703-product ) to print a single dot on a page (the pages will be pre-printed - I just want the printer to feed the documents but it doesn't have a hardware feed button so a dot seemed to be the easiest option). I'm a total noob - this is my first arduino project, but I've been researching and it seems there are major issues with controlling a printer using an arduino alone? I can leave a laptop (Win XP SP2) hidden in the installation, so I've been looking at Processing and PureData options, but I've also been coming up with nothing.

I'm wondering if this project is at all feasible? I've been reading about setting up an ethernet shield - is that way I can go with a USB inkjet? Serial printers also seem to have their own issues, and accessibility, size and budget would make them difficult for the project, but if it's the only way I can do that - would that make it easier?

I'm completely lost and trying to pin down which direction is best to pursue. Any guidance at all would be very gratefully received!

The hard way is to get a USB shield and attach the printer and figure out how to initialise it and tell it to print a blank sheet. If you can get it to come up as a dumb serial printer, that might be easy. But it might be very hard - all depends how your printer behaves.

I suspect there is a much easier solution consisting of a small PC application which waits for an input message from the Arduino and then prints a blank document. Depending how you choose to implement that application, you might either copy an empty file to the printer port, or using the printing capabilities in your preferred runtime environment to print a blank page.

PeterH:
If you can get it to come up as a dumb serial printer, that might be easy. But it might be very hard - all depends how your printer behaves.

I suspect there is a much easier solution consisting of a small PC application which waits for an input message from the Arduino and then prints a blank document.

In my time working with computers, I've been led to believe that driverless printing on modern consumer-grade desktop printers is tough. If you've got your hands on a printer that can run pretty dumb, you're probably in luck. If you've got HP's newest ink jet printer, maybe you could reverse-engineer the thing by figuring out how to capture what the USB port is feeding it when you hit print, but I'm too new to this kind of stuff to suggest how you'd go about trying that.

This is an untested idea.!

You could install a redirection tool on your desptop computer fx: this on:

It will accept a command like this:
copy empty.txt prnspl

where empty.txt is an empty textfile and prnspl is the dos spoolfile (which will print the file on your USB printer)

The last thing to do is to make Arduino execute a bat file containg this command, and for this purpose i think you can use GoBetwino

Um.. Does this printer have a physical button that ejects a page?? IfSo, run thin wires out to Arduino, and use a small relay (for isolation) to trigger the page eject..

Like: http://arduino-direct.com/sunshop/index.php?l=product_detail&p=181

DISCLAIMER: Mentioned stuff from my own shop... and I really need the $3.50 :slight_smile: