[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.