I modified the wti.c library to disconnect the internal pull ups.
I have 4.7k pull ups external to 3.3V outside of the arduino.
I am sending one byte to the Si570, looking at the SDA line with a scope. See attachment.
The chip address is 55 Dec.
I have also tried 110 Dec, 55 left justified.
The start (SCL Hi, SDA goes low) and stop (SCL Hi, SDA goes High) bits are correct.
The data address looks OK. 0110111=55 DEC.
Bit 8 is a zero, so Write.
Bit 9 is a 1= NACK.
Why am I getting a NACK?
Should not the slave drive the SDA line low on the 9th bit is the data was received properly?
Why is it not ACK?
Buy the way; reg_7=226 Dec
Wire.beginTransmission(55); // transmit to device #55 (0x2c)
Wire.write(byte(0x07)); // write to register 7 on the Si570
Wire.write(byte (reg_7)); // sends data values
Wire.endTransmission(55); // stop transmitting