This is a classic case of trying to debug hardware connections without using the right tool. If you have access to an oscilloscope you can quickly probe the I2C clock and data lines as well as the power supplies. You can also make basic checks with a voltmeter although the voltmeter will not be able to debug more complex errors.
Connect the boards with the following directions:
- Connect BOTH grounds on the Sparkfun TXB0104 board the 410c Ground pins (pins 1 and 2 on the low speed connector)
- Connect VCCA on the TXB0104 to 1.8V from the 410c (pin 35 on the low speed connector)
- Connect I2C0-SCL (Low speed connector pin 15) to A1 on the TXB0104
- Connect I2C0-SDA (Low speed connector pin 17) to A2 on the TXB0104
- Connect GND from the pin 39 of the low speed connector to the GND pin of the BNO055 board
- Connect +5V from the 410c (Low Speed connector pin 37) to the VIN pin on the BNO055 board
- Connect the 5V from the BNO055 board to VCCB of the TBB0104 board
- Connect SCL form the BNO055 board to B1 of the TXB0104 board
- Connect SDA from the BNO055 board to B2 of the TXB055 board
WARNING! keep the wires between boards as short as possible! The TXB0104 has a tendency to burst into oscillation when long wires are connected.
Note: The signals in and out of the BNO055 board are 5V signals, and the board needs 5V to run. Fortunately the 410c can provide 5V.
Once you have everything connected correctly and powered up, check the following with a voltmeter:(depending on the accuracy of your voltmeter all readings should be within +/-10% of the nominal voltages)
- Connect the GND lead (usually black) to pin 40 on the 410c Low speed connector. Leave this connected for all measurements.
- measure the VCCA on the TXB0104, it should be 1.8V
- measure VIN at the BNO055 board it should be 5V
- measure VCCB at the TXB0104, it should be 5V
At this point you have everything powered up correctly, the last thing you can check with a voltmeter is that all of the signals are in the correct idle states.
- measure A1 and A2 at the TXB0104, they should both be 1.8V.
- measure B1 and B2 at the TXB0104, they should both be 5V. If you measure 2.5V here, then the TXB0104 is oscillating because your wires are too long.
The very last thing you can check is that the signals can go low. To do this you need to change software (device tree) so that the I2C0 pins are GPIOs and drive each GPIO low, while the GPIO is driven low it should be around 0.3V at the TXB0102 A1 and A2 pins. Ensure that you program the maximum possible drive strength on the pads, since the Adafruit boards typically have very strong pull-up resistors on the I2C lines. If you have a higher voltage (say 1.0V) then you may need to remove the pull-up resistors from the BNO055 board (R8 and R9), they are not necessary since the TXB0104 has built-in pull-up resistors.
Full Disclosure: I am an employee of Qualcomm Canada, any opinions I may have expressed in this or any other post may not reflect the opinions of my employer.