However here are my notes I made from this thread and others, during the mod and some pics....
The
image shows the following 24C02A header pinout, top to bottom: GND, SDA, SCL, WP(GND), VCC.
The notes say: GND, VCC, TEST, SCL, SDA. No matter how you look at it, these are different pinouts. Which one is correct? I connected Arduino Uno as the image says, and the chip does not respond (no data is read from I2C).
The power switch is on, the wiring had been quadruple-checked.
Here's the Arduino sketch (copied from Kerry Wong's blog post on modding UT139C). Is
I2C_ADDR = 0x50 correct for UT210E?
#include <Wire.h>
constexpr int I2C_ADDR = 0x50;
void setup() {
Serial.begin(115200);
Wire.begin();
Serial.println(F("Dumping EEPROM..."));
dumpEEPROM();
Serial.println(F("Dumping complete."));
//writeByte(I2C_ADDR, 0xFC, (byte) 0x1E); //Backlight time 30s
}
void loop() {}
void dumpEEPROM()
{
for (int i = 0; i < 256; i++) {
byte b = readByte(I2C_ADDR, i);
Serial.print(b, HEX); Serial.print(F(" "));
if ((i + 1) % 16 == 0) Serial.println();
}
Serial.println();
}
void writeByte(int i2cAddr, unsigned int addr, byte data) {
Wire.beginTransmission(i2cAddr);
Wire.write(addr);
Wire.write(data);
Wire.endTransmission();
}
byte readByte(int i2cAddr, unsigned int addr) {
Wire.beginTransmission(i2cAddr);
Wire.write(addr);
Wire.endTransmission();
Wire.requestFrom(i2cAddr, 1);
while (!Wire.available());
return Wire.read();
}
P. S. I also held pin 55 connected to ground. At first I didn't do that because I was under impression that it's not required for reading the EEPROM (only writing), but apparently you do need to keep the main chip inactive for the I2C bus to remain free at all times. So I have tried connecting 55 to GND eventually, and still couldn't read the EEPROM.
This is what my setup looks like. As you can see, I'm not providing separate power to the main battery pads because no guide said that's strictly necessary (but they do say it's the better way to do it):