while(1) { i2c_data.data_len = 1; if (i2c_master_rx(0x2, 0x1, i2c_data, i2c_master) != 1) { printf("Failed"); } else { printf("Succeeded"); } // wait for 1 second } Only works every 4 attempts.