Hi there, Does anyhow know how to used PIC C18 language to fix the start address = of the EEPROM. The first 2 line of the data in the EEPROM is as follow: :1000000064617461B9170000808080808180808085 :1000100080808080808080807F80807F7F7F7F7FE6 This is how i write to test the EEPROM. But the return value to 'err' is = FF (Bus collision). Does anyone know how can I let the PIC read the data = from the EEPROM starting from address 0x00 to the end. void main(void){ int a, b, c, d, e, f, g, h, i, j; unsigned char *rdptr, err; TRISC =3D 0X18; //Set SDA & SCL as input. Activate I2C port SSPADD =3D 24; //400KHz Baud clock @ 40MHz SSPCON1 =3D 0x28; //set up SCL & SDA OpenI2C(MASTER, SLEW_ON); //Initialize I2C module =20 err =3D EESequentialRead(0xA1, 0x00, rdptr, 1); //make current address = at EEPROM address 0xA1 a =3D EECurrentAddRead(0xA1); //Read a single byte EEPROM and store in = a b =3D EECurrentAddRead(0xA1); //Read a single byte EEPROM and store in = b c =3D EECurrentAddRead(0xA1); d =3D EECurrentAddRead(0xA1); e =3D EECurrentAddRead(0xA1); f =3D EECurrentAddRead(0xA1); g =3D EECurrentAddRead(0xA1); h =3D EECurrentAddRead(0xA1); i =3D EECurrentAddRead(0xA1); j =3D EECurrentAddRead(0xA1); }//end of main Thank you, Nicholas -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.