Howdy all. I’m working with a BNO086 (SEN-22857) run by a Sparkfun Thing Plus 2040 (DEV-17745). They are connected via a qwiic cable and the RSET and INT lines on the BNO086 are connected based on this note from the BNO086 hookup guide. The Thing Plus is running C++ and using a modified version of the Sparkfun BNO086 Arduino Library with the code for Wire replaced with calls to Rpi’s i2c instead.
Right now I am able to get consistent connection and good data at 100 kHz, but I am unable to get anything above that speed to work. I suspected pull-up issues, but rise times on the SDA/SCL lines appear to be within 300 ns when run at 100 kHz. I’m getting intermittent or no response from the BNO086 when the bus is run at 400, or 350 kHz, so it’s difficult to capture those rise times, but electrically it shouldn’t be any different. The logic analyzer is showing the BNO086 responding with an ACK to address read requests from the rp2040, but then the response on the SDA line is flat for the rest of the transaction. As a result, the rp2040 reads it as a bunch of 0’s. I currently have the pull-ups on the Thing Plus connected (2.2K ohm), and I have tried both with and without the pull-ups on the BNO086 breakout board (also 2.2K ohm).
Is anyone able to get BNO086 working at Fast Mode, or even 350 kHz with the rp2040? Looking for something I’m overlooking, because it seems this is working for other folks. For troubleshooting, I can send some scope shots or logic analyzer screen captures if that’s desired.