Can arduino be a network printer adapter?

Is this possible:
I have an HP Color Laser Printer, CP-1215, really nice affordable color laser printer, HP still sells new, often on sale for $150 - no more injket cartridges drying up on us, just tons better than an inkjet.
Only thing I would like to change is to expand how we communicate with it - it only has a USB interface. Is there a way to send it data via ethernet and get it converted to USB so I don't have to have a PC connected to it to print?
We have 3 laptops in the house, all connected via wireless to a linksys router (to cable modem to the internet, but I'm only after internal printing), having a box between the router & the printer would be great as the router & printer are colocated.
Looked around HP website, didn't see anything. And now I see they are advertising inkjet printers for $69 with e-print "print from anywhere"
http://links.hp.com/u.d?TYGpgr16RDSpWLc5Dxk=11&s=IB_25627NG&aoid=75907&email=null
"Learn what HP ePrint is all about - If you can email it, you can print it with HP's latest innovation - HP ePrint"
so it gets me thinking it something should be doable.

In theory I suppose it could be done. You would need an ethernet shield, external memory (for spooling) and the arduino itself. Already all this stuff costs more than buying a print server (or network switch with a print server built in).

Just google 'USB print server' and see various options that cost the same as the Arduino itself.

while not as much fun

http://www.google.com/products/catalog?q=ethernet+to+usb+print+server&hl=en&client=firefox-a&hs=Hre&rls=org.mozilla:en-US:official&channel=s&prmd=ivs&resnum=3&um=1&ie=UTF-8&cid=690043856788226701&ei=-zfQTI7KK4GglAedhdnqBg&sa=X&oi=product_catalog_result&ct=result&resnum=2&ved=0CHMQ8wIwAQ#

In short write a printserver.

I propose to use LPD between PC and Arduino. LPD is well documented http://www.ietf.org/rfc/rfc1179.txtit is in fact just a socket connection, with relative simple state. There are 4 basic commands to support:

  • RESTART: restart the processing of a queue
  • LPR: print a file
  • LPQ: request an overview of jobs in a queue
  • LPRM: removes a job from a queue

Restart: is a could; not needed to implement as in a first release there is no printqueue cq spoolarea on the Arduino. Idea: add an SDcard

LPR: is a must; LPR receives two files a small control file (may be ignored until there is a printqueue.

LPQ: is a should; at least send some identification back. idea: return printerstatus

LPRM: is a could; not needed until a printqueue is available.

I've written a C# version a few years ago http://www.codeproject.com/KB/system/LinePrinterDaemon.aspx but I think for the Arduino it should have a smaller footprint.

Q: What protocol between Arduino and printer? I don't know what the HP uses for handshake.

It would be nice to split up the front-end and the back-end so other printers might be supported. A first version should be just a small LPD that writes incoming bytes to the serial port.

sofar some thoughts,
Rob

That's one printer that doesn't have a lot of great review on HP's site (of course, I personally think the quality of their printers have gone down since the LaserJet 6M).

:wink:

Anyhow - I second the notion of just getting an Ethernet-to-USB print server; its going to be cheaper and easier in the long run, unless your real goal is learning how to build one (which I don't think it is, but I might be wrong!)...

I've recently been thinking about building my own serial-to-parallel converter for a LaserJet 5M I have in my shop; I've got a Fluke CombiScope that can output serial for a LaserJet, but my printer doesn't have a serial port (and I haven't found an adapter card or anything yet). Then again, I'll probably just have the scope dump the data to my shop workstation and write (or find) some software to read and convert the data a standard image format (because its more likely that I'll print a scope trace as part of a larger document, than by itself)...

:slight_smile:

Thanks everyone! The Linksys Wireless-G PrintServer looks like what I was after. Without knowing what it was called it was hard to search for it.
While this could be fun to build & program, for $54 I'd just soon buy it and be done with it so I can keep working on my fencing scoring machine project.
I haven't read the reviews for my printer - I just know mine works great. Waay better than the various $100 inkjets we've gone thru over the years.

You could probably build an adapter around an Arduino, but the performance would suck: the volume of data going to the printer would be much larger than the Arduino can speedily handle.

Somebody mentioned the Seagate Dockstar in Bar Sport recently as a possible Arduino accessory/interface. It's cheap because it's being discontinued, and should need little, or no, hacking to do this job for you.

I haven't read the reviews - I just know mine works great. Waay better than the various $100 inkjets we've gone thru over the years.

Any laser printer is better than the majority of ink jets out there, especially when you want to print and expect it to "just print". I went through a couple of ink jets in the past, and hated it when the ink just kept drying up because my wife and I didn't print stuff that often. We also found we didn't need color. We were getting fed up...

Then I found an HP LaserJet 6M at a surplus place (with only 25000 pages on the counter - a baby!), and purchased a cartridge for it; that cartridge lasted us for 8 years before we had to replace it with a new one earlier this year.

Later, I found the HP LaserJet 5M at a Goodwill for $15.00 or so; it had paper and a cartridge included, plus the PostScript SIMM! Low page-count on it, too. I have it in my shop (though I have yet to hook it up).

I love those old LaserJets - they are workhorses; they're not the fastest, but they are very, very reliable (and cheap to refill).

:slight_smile:

I was looking for the same, we have B/W & Color laserjets at work and they go & go - but were expensive to buy new. Saw the CP1215 for 50% off at officemax one day while there for something else, and like you had gone thru a couple of inkjets that never worked when we really needed it becuase the ink had either dried out from non use, or the print head would need cleaning out. Seemed like a deal.
We got the CP1215 and a new set of toner cartridges (buy 3 get one free kind of deal that the manager let us apply for the 3 colors & black). I think we finally used up the black sample toner that comes with a new unit (supposedly like 1/4 full) and popped in the new black one.

Saw in elecktor magazine an ad for 8 minute PCB it. Print out using laser printer on dextrin treated paper, run thru GBC brand laminator to fuse the toner onto 1/2 oz 32mil copper clad, run thru a 2nd time with a sealer. Wipe off non-trace copper with Ferric chloride & a sponge, clean & optionally treat with tinplate solution to keep the copper from oxidizing.
Thinking of giving it a try.
http://www.pulsarprofx.com/pcbfx/main_site/pages/products/index.html