April 02, 2013

HP K850 & F*ing expiring cartridge(s)

From joy...

A couple years ago I really needed an inktjet capable of printer A3 and preferably having separate cartridges for the colours. After some looking around I chose for the Hewlett Packard K850 with duplex module and network functionality. I was really happy about it and it server me well. A lot of paper went through that one...

... to hate!

Unfortunately I ran into some nasty stuff: Expiring cartridges. It seems that HP built in an enforced expiry date into the cartridges. And because I didn't use the inkjet enough to empty out cartridges I ran into this. Twice!

Now if you know what a standard HP cartridge costs, imagine having to buy 4 different onces. They go for about 40€ per piece in Belgium.

The first time this happened I wasn't very angry about it since they were almost empty. I looked for a solution, found none at first glance and decided to just replace them.

Unfortunately I do not use the printer as much anymore. So today I fired it up, printed a diagnostics page, did a head cleaning and then fired up my normal print-job. Imagine my anger when the stupid printer refused to print. I received the famous "Printer cartridge expired, please replace". Well, I wasn't going to replace 4 perfectly full cartridges, no matter how much HP whines about "aging ink and damaging your printer". The decision should always be the customers, not the manufacturer! It seems I also have one of the few models that does not allow the user to override this. *sigh*

and back to "joy".

So I started browsing the web. So many frustrated people with the same issue. I figured out that the driver sends the date to the printer using the "@PJL SET TIMESTAMP"-command. Knowing that on a Mac, the printer drivers can be found under /Library/Printers/, I opened up my Terminal and did an "ag" for TIMESTAMP in the /Library/Printers/hp/ folder. To my surprise I got 2 hits in a single file:

/Library/Printers/hp/cups/Inkjet.driver/Contents/Resources/XMLData/Data/PDLData.xml

An XML, this must be my lucky day! Would HP be so careless as to store the entire communication protocol in an external file? 

This being a system file, I "sudo vi'ed" it and did a search. Both where "@PJL SET TIMESTAMP"-commands. So I just changed the TIMESTAMP into something else (in my case I simply replaced a letter with an X). After saving the file and rebooting (don't know if that is required), my printer is now happily spewing out pages again, with the "expired cartridges" as it has no idea anymore about what date it actually is. 

I decided however that I will not be buying new ink for this printer. When the cartridges are depleted I will get rid of the printer and never buy HP again. 

2 comments:

  1. Hello Steve,

    Can you please tell me how to do this in simple layman's terms? I have no idea how to use terminal and I really need to do this asap!

    Please help!

    ReplyDelete
    Replies
    1. Hey Robin, you don't really need a terminal to edit the file. You should be able to just edit the file with TextEdit (or any other editor). Just search for "@PJL SET TIMESTAMP" and change it into "@PJL SET XTIMESTAMP" or something. Should do the trick.

      Delete