I'm not sure if this is the right section, as I really don't know if this is an i2c problem or an electrical one. I'll try to explain. I have a project the started out with a single i2c OLED display, so I didn't mess with pull-ups, as everything seemed to work fine. As the project grew, I added a data logger, which consisted of a second Mega with a datalogger shield, communicating with the main processor via i2c. At this point, I added a pair of 4.7k pullups. Again, everything worked fine. Then I added a compass chip, also i2c. Once more, all works as it should....
Now, here is the stinker, the data logger is no longer needed, but if I remove it, nothing works. The system hangs either during setup() or almost immediately after, and seldom in the same place in the sketch. I know this because there are a number of checks and status reports posted to the display, and the system hangs randomly during this process.
What I have done so far is try different pullups. I recently noticed the OLED display has a pair of 4.7K pullups on it, in addition to the pair I added, so I removed the ones I added. At that point, it wouldn't start at all. Next, I removed them from the OLED board, and added 2.7K pullups to the main circuit board. Again, nothing. Currently, it has only the 2, 4.7K pullups on the main circuit board, and the datalogger, compass, and OLED all connected, and it runs fine.
Obviously, I am missing something, but am at somewhat of a loss as to how to proceed. It is obvious that the data logger adds something to the circuit that is essential, but what? I tried connecting just a bare mega, but it requires the data logger attached for the system to work.
I am happy to provide any other necessary details, but don't know what is necessary at this point. Thanks in advance....