Hi !

I have an Arduino Diecimila. I need to print information to a printer. Can I print information using my Arduino? What type of printer are you recommending? Some guidance or tips about how to do that?


Since most printers use either a parallel port (old printers) or USB, you can not connect Arduino directly to a printer.

But check this :

And this :

greenlab, have you got any thing working yet? Im no expert, but i recon it would be possible to control a parrallel port printer from your arduino, as at the end of the day, the parrel port uses the same voltages. And im sure, at the most basic, you can send ascci charictors! Youve got me interested, im going to look in to it. I’ll let you know what i find.


Sorry but I have decide to do not use a printer directly and create a software application where eventually I will print the information. This strategy is better for my project.


That is probably a better way, because, doing it from the borad woul of used up most, if not all you inputs/ouputs. Altho is should be do-able.

That is probably a better way, because, doing it from the borad woul of used up most, if not all you inputs/ouputs.

One of these days I’ve thought of doing something with a parallel port using the 16-bit version of this I/O expander.


Printing from an Arduino would be a great way to implement a simple data logger for some applications.

The printer would want to be an “old fasioned” line- by- line printer.

If the data were subsequently wanted in machine readable form, modern OCR should be able to do the conversion easily enough.

If the number of pins required to drive the printer would be a problem, then the main Arduino could send “please print this” messages over just two pins (not the valuable serial comms pins) to a second dedicated Arduino (or ad hoc PIC), and THAT could drive the printer. That “answer” would be very similar, just working in the opposite direction, to what I’ve got working at prototype level for taking the overheads of reading a keyboard off of my “client” Arduino.

Details of that at…

It’s probably possible. I see two potential problems though.

No new printers (or PC’s) is equipped with parallel ports, so you would have to get your hands on an older printer.

Getting toner or ribbons for that type of printer is getting more and more difficult.

If datalogging is what is needed it would imho be much smarter to send serial data to a PC, or if size is a problem to some kind of storage device.

I used to have a bunch of serial printers. I threw them out ages ago (look up Digital Decwriter II and III to see what I had, a few of those took up a ton of space). You can probably find old dot-matrix serial printers and computer junk stores.

After i have started to mess around with Arduino and physical computing, i sometimes almost cry when i think about all the stuff i have thrown away in my time as a sys admin. :slight_smile:

Printers, scanners, power supplys etc. etc.

Ohhh grief.

If you can find a serial to parallel adapter like this one Page not found
it would work for data logging if your parallel printer supported a simple ASCII text protocol

It could possibly be of use though I have not looked at it too closely.

I wonder if an atmega168 could do the translations?

Consider using the USB host development board, VDIP. It provides a way to access the USB printer class. Be ready to do some programming, but it’s very doable.

I would start by tracking down some specs from a printer and the USB printer class definitions.