I2C multiple ADS1115s and pullup resistors

Shouldn't this be easier?

Trying to connect 4-ADS1115s via I2C to Arduino Uno. Also have a data logging shield with RTC on the i2c. Please see attached

With one ADS1115 works totally fine. Running the i2c_scanner ...it finds all 4 ads1115s and the RTC and all will basically work now but still too many errors.

I think it is possibly a pullup resistor or maybe a power problem...but maybe there is something else.

I've been told that, "Both the shield and the ADS1115 breakout board have pullup resistors installed." ...but without additional resistors multiple ads1115s are just not working.

Have tried with multiple different size pullup resistors. Seems most people recommend 4k7 or 10k...tried both not so much...finally thought maybe they mean 10k per device so I tried 47k's and that works BETTER! ...but still errors. The most common error is "address send, NACK received" which from what I can find is SCL held low and STP not cleared.

...and yes it's soldered, and yes I have 0.1uF decoupling capacitors on each and also some 47uf capacitors on v+/gnd.

So without an ocilliscope how can I determine the correct size pullups?

...or is this pushing the envelope of how much can be powered from the Arduino? I say this because I get fewer errors from the ads1115s that have shorter power wire length to the Arduino regardless of the i2c length.

Thanks for checking it out!

The Adafruit modules should work just fine without extra decoupling capacitors and without extra pullup resistors.
There should be no errors at all.
Do you use short wires ? No longer than 50cm, and no flat ribbon cable ? Flat ribbon cable is the worst for the I2C bus.

In the Playground secton is the i2c_scanner. There is a link to a Multi Speed I2C test sketch. Try to run that, it tells about the I2C bus at different speeds. You have to find those links yourself, I'm using my tablet now.

It is possible that the breadboard has a bad contact. A single bad GND connection can cause all of this.
Are only the sensors on the breadboard ? Nothing else that requires high currents I hope.

You could try another breadboard, or move the sensors to other pins, or re-attach all wires.

To measure the total pullup resistors, it is possible to measure the shortcut current with an idle I2C bus.
Call Wire.begin() and nothing else. Measure the current of SDA to GND and the current of SCL to GND. About 1mA is okay (0.2 to 2mA), the maximum is 3mA.

Excuse my ignorance, but wouldn't this be a problem with two (or more) lithium cells and their total difference of ~7.4V which is greater than the GND-to-VDD limits of the ADS1115? Will it properly treat each voltage differential in an isolated manner?

The absolute voltage limits of the ADS1115 are -.3V to 5.5V

Chagrin,
That is the purpose of the voltage divider circuit...the ADS1115 only sees a portion of the voltage.

Sorry I didn't realize those resistors were arranged as voltage dividers. But assuming those cells are in series that's still (3.7 + 3.7 * 1/2 =) 5.55V at their nominal voltage or (4.2 + 4.2 * 1/2 =) 6.3V at their charged voltage between the battery negative (green?) and positive (white?). What you want are three voltage dividers between the battery negative and each of the red, white, and purple wires to keep everything under the 5.5V limit.

I also think you need a common ground with the battery and ADS1115 chips.

Hoping an expert here will chime in.

If you want to use the ADS1115 to measure a voltage, please make a schematic.
If you want to make the I2C bus working without problem, remove the battery and everything else that is not needed.