I'm not certain where your problem is coming from, but here are my I2C notes about I2C devices: 1. I2C devices are simple state machines. But powerup does NOT place the device in a known state. In fact, every I2C device on the bus might be in a state that seizes the SDA bus. The easiest way to initialize is to execute clocks until the SDA bus is released. The maximum number needed is 9 clocks. If the SDA cannot be freed after 9 clocks, you either have another master driving the bus, or you have a defective i2c device on the bus. 2. Synchronize the bus by performing a STOP flag, followed by a START flag then a final STOP flag. At this point, all I2C devices on the bus are initialized and will execute properly from then on. 3. I never use pullups lower than 3.3K on 5V buses, 2.2K on 3V buses. SOME I2C devices can't pull down a heavier resistor. 4. After a master has finished with the I2C bus on a multi-master system, it must release (tristate) both pins immediately. This is naturally easy to do, because the STOP flag causes both pins to be in the '1' state anyway. 5. I have heard of i2c buses being run over a meter distance, etc. This is not a good idea, because line reflections become a problem . I2C is a communication system designed to control TV components using few wires, and it works fine as long as the bus stays on the same PCB. --Bob -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist