Hewlett & Packard, the founders, had great lessons to teach us (managers in high-tech) about culture. To the extend of quoting them in my awesome list on engineering team management . 👨‍💼

HP Inc., the company, sucks. At least their printer division’s business model . They recently pushed a firmware update to ban third-party compatible toner cartridges . 💔

The timeline is straightforward:

  • 2020, March: general lockdown. 🦠 I need a home office. SO is a scientist and spend her time printing papers for review. Got her an HP Color LaserJet M254dw to keep her productive workflow ( publish or perish!  ).

  • 2020, October: HP release a new firmware (versioned 20201021 ).

    Printer control panel showing the Firmware Datecode screen reading 20201021

  • 2020, November: my printer auto-upgrade. I’m welcomed with this Supply Problem Screen of Death  :

    The white HP LaserJet with its panel stuck on a cartridge icon and the message Supply problem, four toner levels greyed out underneath

    I can’t print anymore. 🤯

8 months. My printer worked for only height months. 😤

OK. It’s my fault. I should have spent more money buying certified™ gear. 😑

Meme photo of an office copier that has vomited toner across the entire carpet, captioned: have you tried turning it off and on again?

The solution is to travel back in time when things were working just great, and downgrade to the previous firmware.

Disable auto-upgrade

We will stop this madness for good, and prevent the printer from downloading a firmware behind our back.

In the control panel, go to Setup > Service > LaserJet Update > Manage Updates :

Manage Updates menu on the printer panel, listing Allow Downgrade, Check Automatically, Prompt Before Install and Allow Updates

Then set these options:

  • Allow Downgrade: Yes

  • Check Automatically: Off

  • Prompt Before Install: Always Prompt

  • Allow Updates: Yes

I’m quite surprised downgrades are allowed. 🤔 It seems out of character. Therefor, with my Evil Product Manager hat on, I advise HP to monetize this feature under a monthly Enterprise Subscription of sort. 😈

Download old firmware

I got lucky and found the previous 20200612 firmware referenced in https://ftp.hp.com/pub/networking/software/pfirmware/pfirmware.glf  .

There you’ll get a direct link to the .rfu file (Remote Firmware Update): https://web.archive.org/web/20201110124329/http://ftp.hp.com/pub/networking/software/pfirmware/HP_Color_LaserJet_Pro_M254_dw_Printer_series_20200612.rfu  .

And just in case it disappear from its original location, here is a copy  .

The checksum of that file is:

1$ sha256sum ./HP_Color_LaserJet_Pro_M254_dw_Printer_series_20200612.rfu
291c7f51ceba2386f3b94dcb9da20c669ab10b1ee3a9b1e1f742c40091920188e

Downgrade firmware

Once you get the .rfu file, list all your printers from a macOS terminal:

1$ lpstat -p -d
2printer HP_Color_LaserJet_M254dw_0 is idle.  enabled since Fri Nov  6 17:47:06 2020
3system default destination: HP_Color_LaserJet_M254dw_0

And run the firmware downgrade CLI:

1$ lpr -P HP_Color_LaserJet_M254dw_0 /Users/kde/Downloads/HP_Color_LaserJet_Pro_M254_dw_Printer_series_20200612.rfu

Nothing gets printed to the console.

I don’t know what happens here but it seems the .rfu file is pushed to the printer’s queue, and then gets consumed as any other printable document. See, the RFU file format is a matryoshka doll embedding printing commands, encoded data and raw NAND code.

After a minute or two, the printers reboots and upgrades itself:

Printer panel showing the HP and Energy Star logos above the word Programming while the firmware is written

And we’re back in business! 🥳

A detour via Setup > Service > Firmware Datecode menu confirm we’re running the the previous firmware:

Firmware Datecode screen back on 20200612, confirming the downgrade took

Finally, to lock any possibility of a firmware change, go back to Setup > Service > LaserJet Update > Manage Updates to set the option to:

  • Allow Updates: No

Printer security

In my research for this article, I found out about PRET, a printer exploitation toolkit . It’s a brilliant tool, in a malignant way. It allows for pen-testing and hacking, using the same vectors as the firmware update. 🤫

I’ll probably play with it in the future. For fun, but also to try enhance the security of the printer. In the mean time, I guess a password is the bare minimum. And if my printer get kidnapped by a cyber gang, I now have a way to restore my printer’s firmware! 😬

60 archived comments

Comments are closed. These were posted on Disqus, and are archived here.

  1. Or you could buy another brand printer whose manufacturer doesn't charge a ridiculous sum for their toner refills. Perfectly happy with my Ricoh C261SFWn printer and its $50 brand name toner refills. That's a third of the cost or better than HP refills. Lesson learned: check toner refill prices before buying a printer.

    1. Gnostradamus

      Why do that when you can get the HP printer to use non-HP ink?

  2. This is aboslutely brilliant! Even though I am not a HP printer owner, but most of the times a HP printer user, this is fantastic. Just sad to realize that the IT giant tech companies are just spying and controlling on us (users) instead of helping us move faster forward. Great article!

  3. I can see my model name in the gif, but when I try to download it I am not prompted for a download. Any other suggestions on how to get
    HP_LaserJet_Pro_M280_M281_Printer_series_20200612.rfu would be appreciated.

    I made the mistake of downloading the update, and now my wife needs to print. Please help.

    1. You can find the .rfu in this link.
      Someone shares it in the comments above.
      ftp://ftp.hp.com/pub/softlib/software12/ready2dl/

  4. Using FTP I have found the correct file, but my printer never restarts or updates. Even checked the name of the printer per instructions.

  5. When i run the lpr -P command with the correct file path nothing is happening within terminal or on the printer. I am using a different type of HP Printer but I made sure to download the older rfu for my model. Any idea what would be causing this?

    1. I am using the HP M181-181 printer. I have to change my printer setting to enable "Allow Updates" to start my update. But please to disable it afterwards to prevent HP helps you to auto-update.

  6. Ok, I ended up using FTP Printing method to solve this. Here is my solution, which I think is much easier than CLI.

    1. Mikeasmel

      Rick, can you please let me know what is the easiest FTP Application for a Mac running Catalina? I am not totally comfortable with this and don't want to make a mistake. Thanks.

      1. I use and LOVE Transmit, and have been using it for over a decade. Prior to that I used Fetch, and a few others that can be found in this comparison article. But I really haven't used anything other than Transmit in years. Good luck. You can do it!

    2. Quick note on this... it took about 5 minutes after I drug the file across on CyberDuck from MacOS before it started programming on the printer screen. Also, sign in as anonymous and make the path /

    3. This worked! Thank you.

      HP bricked my printer today and used this method to downgrade the firmware. I will never buy an HP printer again. Will use this one until it dies and I am done buying HP printers.

      1. Anonymous94

        Where did you find this firmware David ?

        I need one for the M281fdw, I read out the RFU file you shared. Tough it does not support my model :(

  7. Thank you so much for making the previous firmware available, HP is making it tough to find old versions. For what little it's worth, appending .txt to the filename (after .rfu) allowed me to upload the file directly through HP's utility. Thanks again!

  8. Windows 10: I used copy /b (rfu-filename) \\localhost\m254dw and it downgraded fine. Printer works again! You need to share it for the command to work, you can remove the share again afterwards.

    1. 2 years later, but thank you! Awesome tip. I was able to successfully downgrade my HP M255DW to the 20200603 firmware.

      1. Where did you find the 20200603 firmware file? I have yet found a source. Any help would be appreciated.

  9. I sadly still can't get it to take the file. I mean I see it in the printer status, but it won't do anything. I still have that toner-screen on the printer and my printer window just shows it trying to print. How long should I leave it for?

  10. Thanks very much. I've never used terminal before and it took a lot of re-typing etc to finally get it right but the results were spot on. Appreciate your help and now I can use my 3rd party cartridges.

  11. Is there any chance in hell that anyone was able to download the old LaserJet Pro m180_m181 firmware? It seems they removed it from the ftp server.

    EDIT: I was able to get it here if anyone else needs it: ftp://ftp.hp.com/pub/softlib/software12/ready2dl/

    1. mikeasmel

      How do i know which file to use for my M254dw? there seem to be 4 files? should i use the one for 20200612? or a different one?

    2. Thank you so much! My m180_181 got the same problem. I have found the 20200612.rfu in your link.

    3. OMG!!! I can't thank you enough!!! I've being searching four hours now and trying some many different FTP just hoping one would work with mine (Mac). I was already giving up and preparing to explain my bus what happened (because I brought the printer to my house, you know j¡home office). this was the last option I was willing to try and VOILA!!!!! I will post the link in the other pages I found.. hopping someone else see them!!! thanks again!!!!

  12. Thanks. This got my printer working again! Also, HP has already removed the .rfu file. So, thought you might want to know that.

  13. mikeasmel

    Do I actually have to go through all of this, or has anyone been able to do a factory reset and have it work? If so, can someone post how to do a factory reset? Also, if I do have to go through all of this, I assume this will work with Mac OS X 10.15.7 Catalina?

  14. mikeasmel

    Has anyone had success with just a factory reset and if so, how do you do that on the M254dw? If not, will this method described, work for the Mac OSx Catalina 10.15.7

  15. Make sure to connect via USB, or the downgrade will not go through.

    1. Mine did fine over WiFi network.

  16. Thanks for this advice. It worked for me (over wifi) but I had to wait about 10 minutes before the printer rebooted and came back to life.

  17. OMG Just managed to do this with my son who is studying computer science at Uni and it works but makes me so angry then HP can get away with this and it will cost alot of people alot of money to get out of this update

  18. Thank you Kevin, you're a life saver/HP LaserJet Pro M254dw printer saver! This was my first time using Terminal on my Mac but your instructions were great.

    *** One potential correction ***: In my case, the firmware file I downloaded would not install to my printer unless I changed the printer setting, 'Allow Updates' to YES. If I had NO selected, I would follow the instructions perfectly and nothing would happen. Once I made this change, the install progress followed as shown above, with the printer giving the 'Programming' feedback message. I changed this setting to 'NO' once the file installed correctly. Thanks again Kevin!

  19. Thank you for easing my anger a little.

  20. Does anyone get the return line: no printer class ?

  21. Thank you so much!!!! Saved my bricked printer! We are non-profit, so cannot afford the HP toners. I was able to figure out how to modify your instructions to suit my setup, and wahoo! I HAVE turned off updates now. So it doesn't download and brick it again tomorrow.

  22. Hi I have an HP Color LaserJet Pro MFP M2811cdw. I tried the downgrade you provide on your page but I still get the "Supply Problem" error message. I did the downgrade by USB (hotwired) instead of WIFI because that did not work either. Any suggestions?? Is there an older downgrade? Mar of 2020? Please help. Ivy
    PS I checked on the printer screen and it says I have the 20200612 Firmware. !!!!

    1. Hi, have you solved it? I have the same problem :( it says i have 20200612 firmware but still have "supply error"... if you already know how to solve it please tell

  23. If you are having issues with the downgrade on a mac:

    1. don't forget to allow updates on your printer.
    2. Make sure your print queue is clear. I also had something in my printer queue, once I cleared the queue and re-ran the lpr -P command it went through and I saw the "Programming" screen immediately
  24. Kevin, you are the BEST. Thank you for saving me and my family so much money. I would pay you if I could! Good luck with everything.

  25. Stéphane

    Hi,
    The rfu doesn't work for my M254nw (not dw) even when I see everywhere that it should be the same.
    I get a "Fatal error 65" after uploading the firmware.
    I only find 1 youtube video available for "nw" but no firmware file given...

    where can I find the 20200612 firmware for M253 M254 ?

    Regards.

  26. This solution is brilliant. It worked just as described. Thank you.

  27. Using the .rfu provided, at the end there was a [ZoneTransfer] that listed a ReferrerUrl and HostUrl to your domain (referrer was this article, host was an uploads directory on your site. Can you explain? I'm hoping this wasn't extra curricular use of your pen test tool.

  28. Caught out by this today with a HP LaserJet Pro MFP M283fdw model. Didn't notice the change in November because we were still on the original cartridges that came with the printer, which are now running out. Replacement 3rd party cartridges don't work. And of course you don't get a CD with a printer these days, so if HP take the drivers offline you lose them. Not cool. Cannot recommend a HP printer after this.

    If anyone has the firmware downgrade for the M283fdw I'd be much appreciative. Think I'm looking for any of these files -

    HP_Color_LaserJet_Pro_M282_M285_Multifunction_Printer_series_20200603.dmg
    HP_Color_LaserJet_Pro_M282_M285_Multifunction_Printer_series_20200603.exe
    HP_Color_LaserJet_Pro_M282_M285_20200603.rfu
    HP_Color_LaserJet_Pro_M282_M285_Multifunction_Printer_series_20200603.ENG.rfu
    
  29. Do you still have to have a chip on the cartridges for this older firmware? Mine don't, and I get that error screen. Wondering if there's any way around it.

  30. Kevin, thanks so much! Great work, beautifully presented. I have a very similar setup here, MacOS and an HP M254dw. The only thing I would add is that in my case, the process didn't work via wifi, requiring a USB connection. When switching to USB, the printer is added as a new device with a unique name, so anyone doing it this way would have to repeat the lpstat -p -d command to get the new name. Again, thank you so much for doing the work, and making it easy for the rest of us!

  31. Chalyndria

    Alright, can we put a pin where found a old firmware update? Then, moving forward, PRESUME I'm an idiot? Safe bet these days anyway. I ASSUME I just haven't noticed I am one as well.

    1. My ONLY DATECODE is 20201021.

    BOOM, go do something magical so I don't have to tell, got him started, ingrate, tech adult son, I need help. I've purchased 3 sets of toner for this piece of carp he advised and a mother's heart deserves this one. I offer a barter of my skills and certifications in parenting. (literally licensed to parent in Philadelphia, PA) Including any cooking, babysitting or involved services. (CPR, AED, First Aid certs all up to date as well, exp 2024)

  32. Chalyndria

    Ok, I've caught up. Sorry, small mental hiccup. Let's say... Not from a MacOS? Can we say something else?

  33. I have HP LaserJet Pro M254dw and Mac laptop running Mac OSx Monterey 12.0.1 with firmware 20200612 It had been connected and printing well until I separated my router to have separate 5g and 2g SSIDs. Now, my printer is connected to the 5g network however my laptop isn't able to add it as a printer. How can I get the Mac to add and use the printer? help!

  34. Hi Kevin,
    Do you have, by chance, an old copy of HP LaserJet Pro M428 Firmware?...

  35. Thankfully, I discovered this older article (and others) before I actually ran the update... it's been showing me the update request a couple times now and I keep hitting "Ask me again later". Something was warning me to NOT update.

    I'm using non-HP toner and when I first put in a black non-HP toner, it gave an error and I did a couple things that somehow got it working again (selecting no security or something) and then did a power reset via pulling the plug. Then it worked fine with the toner.

    I recently installed a yellow non-HP toner cartridge and it's worked fine right from the start (after a lengthy initialization process).

    But after reading this article, I quickly set it so it won't ask/try anything update-wise anymore. Whew! Dodged a bullet there!

  36. Its been a while since you created this article, but it is still valid...
    I only now am looking for the firmware for the M254dw printer, but can no longer find it anywhere... does anyone have a copy they can share?
    HP_Color_LaserJet_Pro_M254dw_20200603

  37. Found some...

    https://www.cartridgeworld.co.uk/hp-colour-laserjet-firmware-issues-cf540-toner-cartridge-series/

    HP Colour LasetJet Pro M254dw

    HP LaserJet MFP M477 / M377

    HP LaserJet Pro M180 / M181

    HP LaserJet Pro M254dn

    HP LaserJet Pro M280 / M281

    1. I had this problem too. Whenever I try to run the file from this website, it says "the application can't be open." I'm on a mac. Any idea why it's not working for me. I'm a teacher in nyc and we have no money for brand name toner - this is maddening!!!

  38. Also just to say, that thanks Kevin... when I eventually found this old firmware, and using your advice, it let me use my printer again...

  39. What's very annoying is that now HP blocks even genuine HP toner cartridges. I popped a genuine brand new one in and my printer is now bricked. It will not even work with the previous, also original HP toner. W have 8 HP printers at work and every single one has some sort of issue. Gone are the days when HP laser printers were workhorses.

  40. Thanks for your instruction. For my setup, the lpr command didn't work as provided. It always ended up in an error:

    myname@myname ~ % lpr -P HP OfficeJet Pro 8710 /Users/myname/Downloads/OJP8710_2105AR.rfu
    lpr: No such file or directory
    

    As far as I understand, the -P parameter is to define the name of the printer to which the print command shall be sent. But obviously I didn't manage to call my printer correctly.
    I replaced it with the following to make it work. I guess it sends the file directly to the default printer.

    lpr -l /Users/myname/Downloads/OJP8710_2105AR.rfu
    

    My setup:
    HP OfficeJet 8710
    MacOS 14.2.1

    Now I can use refilled cartridges again :)

  41. Delonix71

    Help me with the HP DeskJet/Ink Advantage 2336 All-in-One Printer

  42. you made my day! thank you very much!! :-)