Donnerstag, 28. April 2016

Hacking Ricoh SP C250DN toner cartridges

Although the printer prices have fallen hard in recent years, the average cost per page has not really changed. The most expensive parts on these modern printers are the replacement cartridges. Just a few month ago our color laser printer indicated low toner on 3 of 4 cartridges. I've heard a lot about resetting chips and so I could not resist to try it. Because these cartridges have to be as cheap as possible to manufacture they have to use "of the shelf" parts. So after disassembling one of these PCBs' from one of the cartridges I researched the part number (yes the marking wasn't removed :) ) and after checking power pins I was almost entirely sure that they use a BR24Lxxx-W IIC EEProm. Because these ICs are eeproms I should be able to rewrite them indicating full. Furthermore they use the standard I2C interface so it should be pretty easy to write some software on a 8bit µC to reset the cartridges. 

With that in mind I simply wrote a small piece of software to scan all standard addresses and wait for a reply by the chip. Unfortunately I got no response at all. A quick check was made to verify the cartridge was still working... Thankfully it was. So maybe I was simply to fast for the IC while sweeping across the addresses. So I slowed it down really hard but still got nothing. Changing the pullup also hasn't affected the result in any way. So I thought maybe these ICs don't use the standard address space. And I was right after increasing the search radius I finally got a response on 0xA7. Nice! Next thing was reading back the eeprom. I really wasn't sure my code was working properly because the result was just a huge mess. But after reading a fresh cartridge back I got a different but consistent result. So last thing to do was writing to it. This was not as easy as spoken but after slowing down the writing speed I finally was able to write and read back successfully. With that done I copied the data from a fresh full cartridge to a "empty" one inserted it into the printer and a huge smile took hold. It WORKS! 

Last thing I plan for the future is to make it standalone and portable. Also finishing it up with a nice 3d printed case would really be cool. 

While searching for the datasheet to link it into this blog, I found this page where someone else already covered reverse engineering these cartridges. So please refer to his blog he really has described it well better than I ever could. He has got the same speed and address issues as I got so I assume my setup wasn't the limiting factor. Sometimes I really should research a lot more on the web before trying to reverse engineer something but I can't help myself... It's just way to much fun!


The following Link guides you to all the files I still have from the Project. This also contains a zip file with code that has been given to me from someone who has written the code in Arduino. You use this all at your own risk!
 LINK

If you have any further questins don't hesitate to ask.

Chip dimensions

Arduino clone as a cheap development platform

Serial output from the µC






50 Kommentare:

  1. Leider gibt es die Verlinkte Seite nicht mehr, würde mich über eine Email mit Infos freuen.
    reiner.emkes@googlemail.com

    AntwortenLöschen
    Antworten
    1. Hallo Reiner! Danke für den Hinweis. Ich sende dir gleich eine Mail mit den Sachen die ich von dem Projekt noch habe.
      LG Stefan

      Löschen
  2. Hi Stefan, can you share more info on how to build one of these chip reset like in the youtube video? Thanks.

    AntwortenLöschen
    Antworten
    1. If you know how to compile and flash code to a uC I can supply you with the source files.

      Löschen
    2. Yes please send me the source files to my email: lacphong03@gmail.com
      Also, it would be awesome if you can tell me what microcontroller IC or board you're using, and it will be very helpful if you can share a sketch of the circuit too. I'm still new to uC stuff. Thank you very much in advance. (I'm the Unknown user above, I just signed up for an account on the blog).

      Löschen
    3. I'll send you the files soon. As far as the circuit goes: I've used a Arduino pro mini clone from china, because I had it at hand. The code however is written in plain C. Also the code is really hacked together. So you need at least some understanding of what is going on (I never got around to clean it up). The circuit uses the standard I2C pins with a 10k (4,7k would be a better choice but it's working fine with 10k) pullup on both SDA and SCL. So pretty much standard I2C. The pinout of the cartridge was if I remember correct: GND VCC SDA SCL but I'll check that on Tuesday, when I get back home. I'll also post it on my Blog because the other reference from the ESDBLOG seems to be permanently down...

      Löschen
    4. Hi. Could you please post teh Arduino code and the dump file for the empty toners. Thanks.

      Löschen
    5. @Elekes Krisztian I can supply you with the Code (dump is in code too). Give me your Email address and I'll send you a link to the files.

      I unfortunatly haven't had the time till now to verify the pinout as I'm not home but I'll do this as fast as possible I promise.

      Löschen
    6. The other reference from the ESD Blog seems to be back again! Please refere to his Page for now.

      Löschen
    7. hello can you send me the code please
      abdelrazekazab@gmail.com

      Löschen
  3. Please send me the code to the elekeskrisztian@freemail.hu e-mail address. Thanks.

    AntwortenLöschen
  4. hello can you send me the code please : engmohamedsaa3d@gmail.com

    AntwortenLöschen
  5. Hi Stefan, would you mind sending me the code please? paul.bartlett@btopenworld.com
    Kind Regards
    Paul

    AntwortenLöschen
  6. Hi Stephen, I really enjoyed reading your blog. I would be most grateful if you could send me the code as well. What a great thing to play with. maybe someday we could exchange some info to get rich about as well?
    Thank you. My Email is tzthewiz@gmail.com.

    AntwortenLöschen
  7. Thanks for the kind words! You'll receive a Email soon ;)
    Stefan

    AntwortenLöschen
  8. Stefan thanks for the post. I'm wanting to try this out can you send me a the files? Mwong@uno.edu
    Thanks
    Michael

    AntwortenLöschen
  9. Hi Michael! I'll send you the files soon.
    Stefan

    AntwortenLöschen
  10. Hi Stefan. Pretty cool. Does this work on all 4 cartridges? Would you be interested in selling one? I no longer have the equipment or time to build one.

    David

    AntwortenLöschen
    Antworten
    1. Hi David! Yes it does work on all 4 cardriges. I usually don't sell these. If you really want one send me your E-Mail and I'll contact you

      Löschen
    2. Hallo Sefan, I too would love to snag one from you. Willing to pay a premium. Please email me erkme73 at gmail.

      Löschen
  11. Thanks Stefan. My email is david2go@blueskygrowth.com

    AntwortenLöschen
  12. Hello Stefan,
    This stuff is very creative! I was about to replace the existing toners with brand new cartridges, that is until I saw your video. I would be interested in getting this solution. Please contact me newtrades@outlook.com Thank you!

    AntwortenLöschen
  13. Hello Stefan,
    I would like to purchase the resetter that you made (the one seen in the youtube video) Could you please email me @ ulynxfan@gmail.com Thanks!

    AntwortenLöschen
  14. Hello Stefan,

    Read your creative idea about reseting toner. Beautiful job here. Do you mind sharing the code with me? zw.zhangwenjun@gmail.com. Thank you very much!

    AntwortenLöschen
  15. Dieser Kommentar wurde vom Autor entfernt.

    AntwortenLöschen
  16. I would like to get a copy of your code too please. My email is maclaren at tulane dot edu

    AntwortenLöschen
  17. Hey Stefan, I'd be happy to have a look into the code as well. e23 at boun dot cr

    AntwortenLöschen
  18. Hello, Ed here in Columbus, OH. I was wondering if there was a youtube video available for this project, as I recently spent a lot of cash for brand new toner cartridges. Would like to refile and reflash as you have done. Thanks very much. e.newbold@protonmail.com

    AntwortenLöschen
    Antworten
    1. Hello Edward, as Fedup already wrote, I have built a few devices for other people. I can do this for you as well, or provide you the sources, so that you can build your own.
      Thanks
      Stefan

      Löschen
  19. I just wanted to report back that I Stephan shipped a unit to me in the US a couple of months ago. I was able to reset the black toner immediately (printer was indicating low toner). I held the unit up to the toner, and immediately it showed full again. I printed at least another 300 pages before the black actually started to show signs of being low. I've since added black toner (bought a 50USD kit from Amazon with all four colors) and flashed it again.

    This thing is so impressively effective, I actually bought a second C250DN from Adorama when it went on sale (100USD) just in case this printer gets discontinued and my only one breaks.

    A HUGE thank you to Stephan.

    AntwortenLöschen
  20. Hi stefan,
    How can I buy a ship reset?
    Patricio

    AntwortenLöschen
    Antworten
    1. Hi Patricio yes you can. Please send me a E-Mail to: svoigt15.sv@gmail.com

      Stefan

      Löschen
  21. Hi Ricoh,

    I've just sent you an email about buying a chip reset :)

    Thanks,
    JC

    AntwortenLöschen
  22. Hi Stefan,

    Please let me know if you sell this? My email nhvv3n@gmail.com

    Thank you,

    VN

    AntwortenLöschen
  23. Hi Stefan,
    Very Creative! Can you please send me the code as well. My email is asheem.dubey@live.com

    AntwortenLöschen
  24. Hi Stefan,
    I would love to buy the chip reset from you as well. My email is asheem.dubey@live.com.

    Thanks,
    Ash

    AntwortenLöschen
  25. If anybody is interested, I made my own version, that's automatically rewriting the eeprom in-place: https://photos.app.goo.gl/Z884w5TjiDb1dn1j7

    Contact me: k.nikulski@gmail.com

    AntwortenLöschen
  26. Hallo, könntest du den Arduino-Code an diese email schicken: dasurmele@gmail.com. Vielen lieben Dank !

    AntwortenLöschen
  27. Biete meinen Resetter hier an: https://cults3d.com/en/3d-model/tool/automatic-ricoh-fm24c02b-printer-toner-chip-resetter

    AntwortenLöschen
  28. I'm so happy Stefan, thank you for sharing. I've dumped my new cartridges eeproms just in case. I have a Ricoh P C301w.

    AntwortenLöschen
    Antworten
    1. Hey Mariano,
      nice that it did work out for you as well! If you like, drop me an e-mail with the dump and i'll add them to the other stuff

      Löschen
  29. Hi, I was hoping to buy one from you. Do you ship to the Philippines?
    my email is joshyisles@gmail.com

    AntwortenLöschen
  30. Hi Stefan. Ich habe den Drucker Ricoh SP C250 sf. Dort dürfte das doch bestimmt auch mit deinem Code klappen. Kannst du mir ebenfalls dazu Informationen zukommen lassen? Meine Email lautet oink.2@gmx.net . Alternativ könnte man sich ja auch treffen, falls die Wege nicht zu weit sind. Ich komme etwa von 50km südlich Stuttgart.

    AntwortenLöschen
    Antworten
    1. Sorry, die Email lautet oink.2@gmx.de

      Löschen
    2. Hallo Riggie,
      ich schicke dir die Daten gegen Abend oder spätestens am Wochenende. Ich bin momentan in HH unterwegs von daher wird ein Treffen eher schwierig.

      VG Stefan

      Löschen