A few years back I ran into a problem with a Xerox 7700 laser printer. The print quality had been OK, but suddenly the printer reported that a toner cartridge had to be changed and refused to print anymore. After checking up on prices it seemed like we needed to spend 200 EUR to buy a new cartridge.
I googled around a bit and found out interesting piece of information. It seemed like the toner cartridges had some kind of memory units regarding print counts. Once the counter reaches zero, the cartridge stops printing. At this point I decided to hack the cartridge back to a working state.
1. First I removed the toner cartridge from the printer.
2. I flipped the cartridge around to see what appeared to be a few communication lines between cartridge and printer.
3. I removed the memory counter unit from the cartridge. PCB is exposed here.
4. I found out the memory chip from the module. It was ST Microelectronics 24C02WP with additional description KGM606. Datasheets for 24C02 chips were readily available. I could have used I2C communication to programmatically reset the chip memory counters to zero. Because I hadn’t worked earlier with I2C, I decided to go with the hard hack method.
5. I placed the memory units to a lab table. I decided to hack another cartridge also.
6. I disassembled one memory unit.
7. I desoldered the old memories from PCBs.
8. I couldn’t find a same size replacement memory from our lab, so I went on with CSI 24C01WI chip. I was a bit worried here, since this new memory was only half size of the original. It was also of different form factor and I had to solder extra legs to be able to use it on the existing PCBs.
9. I finally managed to solder the replacement chips in.
10. View from top side of the PCB. Looks nasty, but it worked.
11. Final PCB assembled to the memory module. Ready to be inserted to cartridge.
After all this I was very, very worried about whether this stuff would work at all, mainly for two reasons: 1) I had used memory chips of different size. This could really confuse the printer and prevent printing. 2) The memory was uninitialized. I expected there would need to be some kind of “formatting” of the memory chip to be able to use it with the printer. I speculated that there could also be some kind of encryption in place to prevent unauthorized memory units. I printed out a test page with shaky hands.
And it worked. Unbelievable. I had fixed a printer cartridge by only replacing a 2kb memory chip with 1kb variant. I think newer printers have some kind of encryption technology or something similar to counter these kind of print cartridge lifetime extensions. Sadly.
This story was featured in Hack a Day on 18th of April 2011! However, they referred to the Finnish version of this text and could possibly not work everything out from the Google translation. I must also explain a few things from the comments: 1) I didn’t have the time to start learning about Eeprom writing, so I just decided to go for a hard hack. I was very busy. 2) The lady from the test page is actually not Snooki. She’s a Finnish singer and local Jpop icon. 3) The look on my face.. Imagine a week of 5 hour sleeps per night, daily election campaigning, fixing stuff, giving interviews, delivering handouts and drinking countless of cans of energy drink. I think you get the picture.