I2C bus availability


#1

When working with multiple I2C devices on the same bus, can one assume that there’s never a conflict between attempts to read or write to various devices because the i2c.read and i2c.write calls are synchronous and the Imp is single threaded ?
Reason for asking is because my code does seem to suffer from bus contention one way or another…


#2

Yes. Any time an operation completes, the bus should be free.

This doesn’t mean it is free though; some devices can be badly behaved. Knowing the devices in use here - and capturing scope or logic analyzer traces of a bus lockup - would help diagnose it more.