I have multiple NCD I2C devices connected together on a single I2C bus connected to the NCD Arduino MKR I2C interface shield.
I am having intermittent communications to the devices and am wondering if I have the I2C pull-up jumpers set correctly.
Each of the NCD modules has a pair of pull-ups. The documentation for some of the modules indicates to place the jumpers on if the master I2C controller does not have them. The documentation for the MKR board does not indicate that it has the pull-up resistors or not.
Do I enable the pull-up resistors on the last connected module on the bus, for each module or none of them?
The twisted red-black pair is 12VDC to each module that needs it.
Ignore the disconnected I2C cable, it is an extra cable and is not connected at either end.
The I2C connections is as follws:
From Arduino MKR I2C shield to OLED Display I2COLED at address 0x3C
Then to Current Sensor PR28-17 at address 0x2A
Then to GPIO PR33-20 at address 0x41
Then to Light Sensor ISL25003 at address 0x44
Then to Relay board MCP23000 at address 0x20
Currently all I2C pull-ups are installed on all boards
One thing is to immediately power everything down and take it off the antistatic bag. Anti Static bags are actually conductive and can damage the components. It is perfectly fine to power them up sitting on a desk.
@Anil_Bhaskar could you take a look at this setup and advise if anything should be done differently?
Thanks Bhaskar, that was how I originally set up the system, no pull-up jumpers installed.
I will go back to that configuration. If that still does not work then I will check each board, one at a time to verify that all hardware is ok. The OLED module is acting up, even when by itself now - I’ll pull that one out (it worked fine by itself previously).