I have a strange problem, when I connect an old printer (HP, Epson, at last 4 years old printers) on my linux embedded board, when I type the command echo test > /dev/usb/lp0 it prints correctly. However if I connect a new printer (HP deskjet 1510 all in one series) when I type this command it do nothing and I don't know why.

  • Do you have HPLIP installed on the system?
    – Torger597
    Oct 22, 2014 at 15:18
  • No and unfortunatelly there is no HPLIP compiled for my ARM architecture Oct 23, 2014 at 12:03
  • Try cross compiling it, if you have another box/a way to move the finished result.
    – Torger597
    Oct 23, 2014 at 12:42
  • If you don't know how/can't because of limitations on a primary box, etc, let me know your architecture and I'll see what I can do.
    – Torger597
    Oct 23, 2014 at 12:43
  • Thank you so much! Unfortunatelly I have many limitation, my architecture is an armv7l my microprocessor is an Atmel sama5d34-ek. Do you need more information? Oct 23, 2014 at 13:56

1 Answer 1


The "Why?" is easily answered: the HPDJ1510 uses PCL3GUI! ;) :P

Now in human: your "old" printers understand plain old ASCII, whereas the "new" printer doesn't (according to the source code of HPLIP): it understands only "Hewlett-Packard Printer Command Language 3 Graphical User Interface" (PCL3GUI)

Depending on what you're trying to accomplish, you can send the PCL3 codes to the printer yourself... E.g. 2048 null characters (to flush the printer's buffer) then: "This is Esc&d#DunderlineEsc&d@"

For more info on programming PCL3GUI yourself:


P.S. Could you tell us in Plain Old English what exactly you're trying to accomplish?

P.P.S. The above is what I remember from 20 years ago trying to print Pascal source code on my DeskJet from DOS... ;)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.