Hi, i am trying to interface HMC5883L with PIC16F877A using I2C. i have realised that my slave(HMC5883L) will never acknowledge whatever i send to it. i have checked the waveform, it is sending what i want it to send but the slave will never reponds to me aka the ACKT bit is high. i thought it was a chip failure so i bought another one but still no responds from the slave. i want to read the xyz heading from the slave but it will forever returns me 0XFF and my angle will be stuck at 359 degree forever. i have read on the internet that i might got QMC5883L instead of HMC5883L and i tried another slave address yet still the same outcome. can anyone give me a hints up how to continue with this problem? when i try to read from the SSPBUF it will either be 0xFF or the last data i write to the buffer.