Almost. I cannot control the environment in which my device may be deployed. Why take a chance on electrical/electronic noise spoiling a measurement when for a few $ more it can be all but eliminated (or minimized).
Crosstalk between SDA and SCL is the worst. They are not two signals to go through a cable, they are both independent weak logic signals. Never put them next to each other.
See my Wiki at Github, and look for the "page 60" in bold.
There are three kinds of people: Those who do not know page 60, those who do but deliberately ignore it, and those who do and understand it. The last group is the smallest.
Do you mean twisted pair of SDA + GND and an other twisted pair for SCL + GND. Is that GND wire carrying any current ? Are you sure ? The I2C bus is weak, it is not meant to travel outside a pcb board and it is not meant for a noisy environment. Is there a LCD display at the end ? Then you have a lot more problems with electrical noise captured by the high-impedance internal circuit of the LCD.
Separate GND for both SDA and SCL I know about ground loops and how to avoid them. Aside from a I2C Mux, all the leads terminate in either a 9DOF or a 6DOF IMU.
I've read your article on "How to make..." and page 60. I might have chosen a different coms method if I had read your How to before my purchases. Noise and performance may force a coms change but since I've already spent $100+ I may as well pursue the current course until I hit the wall. As I am still at the prototype/proof of concept state, change is almost inevitable.
Which Arduino board do you use ?
The Arduino Mega 2560 ? That is the only Arduino board with 10k pullup resistors for SDA and SCL to 5V. If you connect that to a cheap sensor module, then you might push 5V into the sensor chip via its SDA and SCL pins.
If you have two level shifters in the signal path of SDA and SCL, then the signal becomes so weak, that it might no longer work. Sparkfun puts a level shifter on the main board and Adafruit puts level shifters on their modules. So if you have a Sparkfun board and Adafruit modules, than you can expect problems.
The "STEMMA", "STEMMA QT", "Qwiic", "Grove" are all wrong. That is why they have to use cables with separate wires.
A good solution is to buy a 3.3V board and buy 3.3V modules (without level shifters), perhaps with 100Ω resistors near the main board in the SDA and SCL path to lower the slew rate, and show us everything before you start making it.
All of the IMUs are Adafruit: 3x 9-DOF Orientation IMU Fusion Breakout - BNO085 and 2x Adafruit MPU-6050 6-DoF Accel and Gyro Sensor. The Mux is SparkFun Qwiic Mux Breakout - 8 Channel (TCA9548A). The largest I2C span is between the 2560 and the Mux: about 5 feet which is bridged with an Ethernet cable and two SparkFun QwiicBus - EndPoint. This breakout uses NXP’s PCA9615 IC, which converts the two default I2C signals into four differential signals, two for SCL and two for SDA. Connection between the sensors and the MUX are Qwiic cables, the longest being 12 inches.
FYI: At least one Qwiic cable from Sparkfun is a flat ribbon.
Without any multiplexers or line drivers, a Adafruit module needs 5V to connect it to a Mega board or else the level shifters don't work.
I think the BNO055 uses 13 mA maximum, the Arduino Mega can supply that current.
You did as if you would put SDA and SCL together in a twisted pair, then you did as if they are separated, each with a GND, then you have PCA9615 line drivers. You should have given the full schematic with all the used wires and distances and links to all modules in your first post.
Good on you. I could not find out this information. But can the Mega supply power to 3 Adafruit 9DOF modules + 2 Adafruit MPU-6050 6-DoF + MUX + 2 SparkFun QwiicBus - EndPoint ???
If I had that information as this point, most of my problems other and s/w would be sorted. I'm still at the proof of concept/pre-prototype stage of development. Overnight I heard from another team member that we "need" to add another Adafruit: 9-DOF Orientation IMU. It's location is divergent from the other sensors and will most likely require 2 more NXP’s PCA9615 IC breakout with and Cat 5/6/7 cable span. "Such is life"
We outgrew the Uno even before we got our first data-logger/accelerometer working. Reading between the lines in regards to the Adafruit 9-DOF Orientation IMU is suspect the Mega will soon reach it's limitations and we will be forced to switch processors yet again.