Extracting the code from a printer cartridge chip

hello world,
you all might be knowing that most of the printer now a days comes with a chip in the cartridge of a printer so that we may not refill the cartridge and use it again.

There is a video on YouTube where a guy reprograms the chip to use the cartridge again
video link-How to hack Ricoh Aficio toner cartridge chip using Arduino UNO - program 24c02 EEPROM I2C - YouTube
but what i wanted is, how to extract the program from that chip using Arduino
please help me with it.
thank you


the wiring is simple i guess.

It’s unlikely to be a program… possible, but unlikely.

Most likely FLASH or EEPROM
Usually using a DALLAS one-wire interface to read and write the required data (page count / impressions etc)

1 Like

can you please elaborate...

Not much to elaborate.
See if you can find out what sort of chip is on the cartridge pack, go look that up, then the rest is reverse engineering.

There may be some clues on the google machine.

The data you're looking to extract is what is rewritten by the code associated with the video you posted. It's available in it's raw default form in that same code.

What do you want to see from the chip itself that's not already there?


i don't think the code what is shown in that video may be same as in the chip what i have... cause he has a color cartridge printer and i have a monochrome cartridge printer.

you mean the chip type and number or something?

I'm working on the wild assumption that you are using the same printer and cartridge line as the maker of the video.

In the beginning of the code you have to select if you have a black, cyan, magenta, or yellow cartridge. So far as I can tell, it does work for black cartridges too.

hmm..okh,but any idea about extracting the code from the chip?

Yes, but what good would it do?

The addresses are in the program, the connector design is in the video, you just have to read from the I2C at that address, rather than write to it.

modify the code to reuse the chip....i guess.

and how do i read it?

You don't need to read the data to reprogram the cartridge, you just need to overwrite it with the default data.

and how do i get the original data?. Searched in internet but still didn't get.

It's part of the Arduino code, linked in the description of the video that YOU posted.

I had a mind to do that a few years back. Used the "starter" cartridge until it said empty - but still seemed to have plenty of toner, also have a couple of replacement cartridges.

My intention was to copy the chips on the two replacement cartridges to see if they had different data (so that the printer would know if you merely reset the chip to the new values on the same cartridge) as well as the "empty" one and start by telling the empty one it was actually full to see how far it would go.

Never got around to it, shelved the printer for the time being. :yawning_face:

When I was designing homes I did an incredible amount of printing. The cost of the time necessary to refill cartridges, reset the chips, and review all the documents to replace pages that printed poorly due to bad ink or clogged cartridges was considerably higher than just buying generic replacement cartridges.
At the time my 48" printer used standard HP inkjet cartridges so I bought other HP printers that used the same cartridges to keep cost down.
Now, I use a Dell color laser, the generic cartridges keep my cost per page to about 5 cents. Kodak is also a great company for inexpensive printer cartridges.