Close

Dead N'd

A project log for Modern HP5N

Dragging a mid 90's laser printer, kicking and screaming into the 21st century

timescaleTimescale 11/24/2019 at 17:045 Comments

Over the last couple of days, there has been a lot of tinkering going on. Trying several things and exchanging ideas with user Instruct, tutor, train... and with some help from Ken Yap we dove into the wonderful world that is PJL. A HP developed printer language that governs just about every aspect of printing.

The premise was that if we could read the display status while printing, we'd know when the job was done. This would mean no complex hacky scripts counting jobs and pages going through CUPS.

Alas for me it seems this approach is a dead end. I have tried various methods to use PJL to get status information, but it just does not seem to work for me. Regardless of the state of the printer and regardless of the method I use to communicate be it Telnet or Netcat, I only get this result :

I some cases I can change the display text, which is fun , but not helpful in this case. What I think is going on is that every PJL session is regarded as a job on the 5N. There isn't much there about the current job. No ID's no setting, not a single printer state that would indicate something useful.

I guess the correct information would exist on the session that CUPS opened to deliver the job, but CUPS just breaks the connection after sending is done and considers it done!

One interesting piece of information did come out of this and it is a testament to the way things were build back when my head was freakishly large but my belly wasn't

That is right, My 5N is slowly closing in on a cool million. One megaprint! Surely that is more than one tree! Despite of this, the quality of the print is still fantastic. In fact, you can FEEL the toner on the paper. It does not smudge and it could possibly produce readable Braille!

Well, until something new crops up, I think I'll start looking at catching the spooler information again and start scripting around that.

As other printer may behave differently, I'll put the bash and PJL files online. The later can be fed into Netcat any which way you like, they all seem to work the same for me!

Discussions

Ken Yap wrote 11/24/2019 at 23:16 point

Maybe you could interpose a little bespoke daemon between CUPS and the printer to catch the status and the daemon appears as a LJ printer at a different port.

I never owned a 4 or 5 but I knew businesses that used them. One was a typesetting software house. Those printers were built like tanks (and weighed like too) and had to be to print that many pages.

  Are you sure? yes | no

Timescale wrote 11/26/2019 at 00:52 point

It seems that the printer does not communicate if it has finished a job. There is some communication on faults, but these are completely job independent and generally not noticed by the spooler(s) when they are not looking. Once the job is dropped, the printer will try to do its things and CUPS could not care less at that point.

For monochrome printing these things still make sense. They are robust, have pretty decent quality, are relatively easy to maintain and are dirt cheap to run by a factor of... a lot!

  Are you sure? yes | no

Ken Yap wrote 11/26/2019 at 02:13 point

I suppose it was early days for printer monitoring. These days they pop up an ad saying Buy More Ink. 😉

  Are you sure? yes | no

Timescale wrote 11/26/2019 at 15:44 point

"I suppose it was early days for printer monitoring."

The were simpler times, but when I had a small fleet of these things to maintain, monitoring was never really an issue. These suckers went one and one despite oodles of gunk being collected everywhere. When I got the call, my printer is printing only grey, then I knew it was time to get out the air gun and alcohol wipes.

"These days they pop up an ad saying Buy More Ink."

Printer today are just machines that are made to sell ink. You can get a 10K toner refurb for these puppies for less then 60 euros. Who needs a reminder with that!

I did have another idea. It seems that when I set the RDYMSG via PJL, this becomes the default response to a INFO STATUS command. If I could get the CUPS driver to add at the beginning of a job the command to set the message to "printing" and when it has ended to "Ready", I could use the NC style poling to check if printing has been done.

  Are you sure? yes | no

Ken Yap wrote 11/27/2019 at 00:23 point

>Printer today are just machines that are made to sell ink.

My favourite Oatmeal comic: https://theoatmeal.com/comics/printers

  Are you sure? yes | no