Resetting printer cartridge chip using Arduino uno

Hello everyone,
Frist of all "THANK YOU" for looking into my post and for the Time spent on this post.
and I'm just a Mechanical student.
I have a Ricoh SP 3510 sf printer, I just wanted to know how to reset the cartridge chip.
this the link to a blog which has been tried for Samsung printer using Arduino www.lueftenegger.at: arduino
I having a Arduino Uno
Using Arduino IDE 1.8.16 windows 10
setting in Arduino software

I used this kind of wiring

And this is the chip I'm having

K-GND
C-VCC
M-SDA
Y-SDL

but the problem is I don't have much information on the EEPROM chip cause the chip is covered with come kind of coting.
when is used this code

// I2C Scanner

#include <Wire.h>

void setup() {
Serial.begin (9600);
Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;

Wire.begin();
for (byte i = 8; i < 120; i++)
{ Wire.beginTransmission (i);
if (Wire.endTransmission () == 0)
{
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
count++;
delay (1);
} // end of good response
} // end of for loop
Serial.println ("Done.");
Serial.print ("Found ");
Serial.print (count, DEC);
Serial.println (" device(s).");
}

void loop() {}

this is what i get in serial monitor

Screenshot (26)

And i tried this code

#include "Wire.h"

#define EEPROM_I2C_ADDRESS 0x53

void setup() 
{
  Wire.begin();
  Serial.begin(9600);

  int address = 0;
  byte val = 110;
  
  writeAddress(address, val); 
  byte readVal = readAddress(address);
  
  Serial.print("The returned value is ");
  Serial.println(readVal);

}

void loop() 
{

}

void writeAddress(int address, byte val)
{
  Wire.beginTransmission(EEPROM_I2C_ADDRESS);
  Wire.write((int)(address >> 83));   // MSB
  Wire.write((int)(address & 0xFF)); // LSB
  
   
  Wire.write(val);
  Wire.endTransmission();

  delay(5);
}

byte readAddress(int address)
{
  byte rData = 0xFF;
  
  Wire.beginTransmission(EEPROM_I2C_ADDRESS);
  
  Wire.write((int)(address >> 83));   // MSB
  Wire.write((int)(address & 0xFF)); // LSB
  Wire.endTransmission();  


  Wire.requestFrom(EEPROM_I2C_ADDRESS, 1);  

  rData =  Wire.read();

  return rData;
}

and this is what i got in serial monitor
Screenshot (27)

a short you tube video explained in simple

Below are the list links that can help you with this

https://bitbucket.org/Electricks/arduiono_sketches/src/d4a242e5b1cdebb4c38a5d93fbd5d17411abe3c4/EEPROM/EEPROM.ino?at=master

if you don't have much time please let me know the topics that I need to go through, i will google that topics and try to figure out.
Thank you again.

here is one link i found

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.