Resetting the page count on a laser printer

[Brian] really liked his Samsung color laser printer right up until it was time to replace the toner cartridges. A full set of toner cartridges sell for about the same price as the printer itself, so [Brian] figured he could simply refill the toner in the cartridges he already has. The printer sends out the ‘low toner’ warning  based on page count and won’t print if the page count is too high, negating the economy of a toner refill kit. Luckily, [Brian] figured out a dead simple way to reset the page count so he can use those third-party refill kits.

All the configuration settings and page counts for the printer are stored on an I2C EEPROM. After dumping the data held on this EEPROM with an Arduino and sniffing everything going into the EEPROM with a Bus Pirate, [Brian] was nearly at his wit’s end. Thankfully, serendipity intervened. When [Brian] restarted the printer with the Bus Pirate attached, he noticed it took much longer to initialize. Printing a configuration report, he was trilled to see that all page counts have been zeroed.

The final hack that allows [Brian] to reset the page count and used refilled toner cartridges is a simple wire that ties the SDA line of the EEPROM to ground on boot. [Brian] used a momentary switch, but given this is a once-every-few-months operation, a simple wire would suffice. Check out [Brian]’s page reset demo after the break.

75 thoughts on “Resetting the page count on a laser printer

      1. Nope, won’t work. I have Samsung 1865W. I didn’t even tried to open it now, but it’s impossible to even print test page. I had ML1610 previously and it still prints beautifully after 18000 pages and I’ve bought only one toner cartridge so I had spare one for quick changing.
        1865 apparently doesn’t have test-page mode, it’s starter cartridge is welded (no screws) and it has chip. This may be the most hacker unfriendly Samsung printer out there.

        1. so your printer prints beautifully at 18000.

          That’s okay. Wait till it hits its *limit* and mama-samsung decides you go no further until you pay the toll for a new drum. That’s actually gonna cost you more than buying *the whole* printer brand new. And to top it all, it could just stop printing at that most crucial page/document you’ve been working on for days. Then, please do come back here and comment some more, thank you.

  1. for quick and easy i2c without an arduino the DDC port of a vga connector can be used.
    trouble is most interesting chips are password protected. (battery fuel gauges, lcd MPU flash areas, etc) and the commands to flash are sometimes not standard i2c stuff.

    1. How do you use the DDC port of a VGA connector for I2C? Is this documented somewhere? Thanks!

      BTW, Brian, thanks for the great post. I don’t know if the info is going to help with my Samsung ML-2855ND, but if I need to do something similar, this is certainly a great foundation to work from!

  2. Now THIS is a great hack. It’s interesting to see the printer stores the number of pages separately from the “% of toner left”, but it makes sense–it probably calculates how much toner is used for a specific page, converts it to a percentage base on an estimated toner cartridge’s capacity, and subtracts it from the previous amount.

    Brian was lucky that the CPU only retrieves the data from the EEPROM during boot, rather than read-modify-write for each instance.

  3. normally you just wipe the i2c eeprom on the cartridges. this is easily done without having to hack the whole printer like this.

    1. Indeed, but this hack only requires a piece of wire which opens up the audience a bit. You are right, though. There are many ways to skin this cat.

    1. Indeed. I always check to see if the device I want to buy is hackable or customizable without hacking. I always buy the brand that gives me that option.

  4. Does the eeprom involved here have a write protect pin? If so, would this printer still work in the long term if you shorted out this pin and simply prevented any changes from being retained? A wire mod would be a really nice hack that might make this an attractive fix for those less well versed in bus hacking.

    Just a thought.

    1. There is a write protect pin on this, but I found that letting the counts increment was still a useful way to detect when the toner was about to run out. If you pull the WC pin high after the hack, it will keep the counts where they are.

  5. i’ve done something very similar for years with my samsung clp-300 (color laser).
    i used a simple LPT port interface and ponyprog software.

    as said, the printer just counts pages. and wastes a lot of toner if i just replace the half empty cartrige.
    my problem was, the printer engages a writelock on the chip if the maximum capacity is reached, making it impossible to reset the chip.
    at first, i solder new chips onto the tiny boards (Atmel 34c02 like the original) then i read about someone using similar chips but with a write protection pin. with that chip and engaged hardware lock the printer can not write on the chip. that’s called a permanent chip. last problem. the printer keeps an internal copy of the page count, so you need 2 permanent chips per cartrige, with 2 differnet serial numbers. if one chip is “full” just swap them, and the printer resets the internal list when it sees the new serialnumber. there is no logging of serial numbers, only the current one is stored internaly.

  6. But isn’t the same for most, if not all printer? you cab buy a new printer with new ink cartridges fit >= replacement cartridges? At Walmart at least. Something I about set to do. This has been the business model for some time. I know I’m not privy to the manufactures facts, and figures, but it doesn’t make sense. The only thing that makes sense is that they ar making a butt load off both the printer, and ink. Why would hackers complain? End up with a functional printer, an overflowing junk box. Yea it would be nice to see a lower retail price for both printers, and replacement ink, but that ain’t going to happen. Not as long as stock holders are a corporation’s first priority not the customers, and employees.

  7. Good job finding a easy way to reset.
    Strangely enough i’ve be trying to access my samsung printer toner chip. But i’m trying with RS 232 and PonyProg. Idk if it is the usb to rs232 adapter or is there something else. I get some data but not with EEPROM 8bit selection in the program. I got whole one man topic with all the details if anyone wants to give advice or share thoughts. http://forum.allaboutcircuits.com/showthread.php?p=462513#post462513

    1. Before I stumbled upon the hack, I wrote an arduino sketch that dumped the entire eeprom. I also had a sketch to write a 1 back to a single 4 byte segment of memory. Links can be found on the post, if you’re interested.

  8. I have a CLP-325, the original cartridges come with no chip at all (there is a PCB with no connectors and no chips in it’s place), so if they were to include chips on later cartridges, all i would need to do is rip them off and they would work…

  9. You can do this on the old Brother printers by using a screwdriver to turn the escapement drive system backwards. These printers have no soft way to reset the toner count (but there is one for the drum; go figure), so you have to trick the printers into thinking they’re working on a new page.

  10. On the clp-510, all you need to do is boot the printer whilst holding menu+enter and it enters “Uncheck consumables mode” :)

  11. Very nice hack. I have a CLP-315 that I bought several years ago which has just recently run out of black toner. I will try this hack on mine since it’s so simple. I think I even have the momentary pushbutton and breadboard laying around somewhere.

  12. This hack was originally published in a Russian forum, for other printer models:

    http://www.arbikas.com/cgi-bin/yabb2/YaBB.pl?num=1239022807

    Here is a pdf locating the chip in the PCB:

    http://www.arbikas.com/cgi-bin/yabb2/YaBB.pl?action=downloadfile;file=ML1640_reset.pdf

    Also, in another discussion forum, there is a better solution where they hacked the (printer) firmware to ignore the page count if the toner chip is missing:

    http://www.fixyourownprinter.com/forums/printer/67172

    Firmware:

    http://hotfile.com/dl/78172625/58935f6/1660v30.zip.html

    This is for model ML 1660, just flash it and remove the chip from the toner cartridge. Works perfectly.

  13. Thanks for this hack but I found a much more simpler method that doesn’t make you open the printer (and void the warranty)…

    Simply but a piece of tape or paper between the front panel and the toners….

    The printer will be all lit red, but test page will give 0% toner remaining while printing anyway…

    Actually demo cartridges provided with the printer do not have the 4 contacts and I wanted to try to refill one….Now I know it will work

  14. Man that sounds like a lot of work. My samsung ML-2510, which was extremely cheap, just has a small glass fuse hidden on the toner cartridge. When you install the toner cartridge for the first time, the printer blows the fuse and resets the page count. I guess that it does something very similar to what you just described?

    1. Strangely enough, I have never had my ML-2510 lock me out for lack of toner. That might be because I ditched the OEM cartridge before it was 100% done and the third-party ones just get rid of the fuse, but I’m not sure.

      That little beast has gotten me through lots, if it wasn’t so great at what it does, I would probably already have upgraded to the CLP line.

  15. do this hack work for the samsung clp-325, is the same board and chip for the EEPROM counter? I have 2 printers in near to broke hahaha help plz.

    1. I just tray with CLP-320 but is not working, the printer try to start but never does, after discontenting the short circle the count is the same.

      1. Tare is a way to hack CLP-320 it is little bit different from CLP-315 bat the same principal. I will explain how on my site luxstock.net when I catch some time.

          1. Hack was successful at first, but after a month or so it burned the motherboard of the printer. I have grounded the pin on the eeprom over the switch. While printer is booting up the switch is in OFF mode. Then before the print, switch is shift to ON, there for grounding the pin on the eeprom chip, so that after printing the data can’t be stored at the eeprom. It work fine for a while :)

  16. Hi,

    As the method described did not work on my printer (clp325w) I tried something else. Its called a firmware fix. Basically its a firmware update for your printer wich installs an altered firmware. This firmware resets every time you power cycle the printer. It also does not reset my wifi settings every time I put it on/off.
    So far I am very pleased with this method and wanted to share it with the other people whom’s printer can not be reset with the method described above.

  17. I have a samsung clp 325,which,as most of you will know,requires almost a second mortgage to pay for replacement toner cartridges.
    The alternative to this expense is to buy a replacement toner kit minus the chips.
    Why minus the chips? I here you say.
    Because it’s a monetary outlay that is not realy necessary,all I did was gaffer tape over the four sets of prongs behind the front casing and prevent communication between the chips and the motherboard.
    Of course red flashing lights become an issue but I can live with that knowing I can get the maximum use of all the powder that remains in the cartridge with no waste.
    Worked a treat for me.

    1. what was the fix you use firware reset fix , i have refill my toner and put a chip on it but no luck any help same printer then your clx-3175n

  18. I have the CLP-315W. The imaging drum has counted out. I considered buying a drum, but but they are more expensive than buying a new printer (of a different brand). I have several full toner cartridges that won’t work in later versions of the printer like the CLP325, so a current model printer isn’t an option for those.
    Will this hack work in my situation? Printer won’t print at all without the drum reset.

  19. @cevat candar
    ist that the Samsung FIX Generator v1.1?
    Does it work on the clp 325

    Avira say´s TR/ATRAPS.Gen found :-(

  20. Thanks for sharing! This worked great also with a Samsung CLX-3175. Without this hack I would have had to replace the imaging drum unit which costs around 150€.

  21. Hey, I have the CLP-315W and attempted this. With the slightly different configuration I did the suggestion above where I simply grounded using a screw. Everything was going great and then after the prolonged startup, the red light (of death) came on. I attempted a few more times to no avail. Every time I started the printer and attempted the hack, I would get the red light. At one point, I accidentally let up on the button DURING the startup sequence. Now it won’t even go through the sequence. I get the RLOD after a few clicks. I can’t use it at all, and though the wireless light is blue, the network no longer detects the printer. Did I brick my printer or does anyone have any troubleshooting suggestions?

  22. My dear other half put photographic paper in the printer (CLP320) this weekend, cause a major block. I took the top off and the unit at the back and successfully put it back together, or so I thought. Now, it will only print one page then shows a paper block. When you restart it prints the same first page again. So a 5 page document cannot be printed. Any ideas anyone please.

  23. What are the number on the eeprom chip?
    I’d like to try this on my clp-300, but there’s 3 chips that looks the same and the same size and pins

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s