TL;DR - even the BHI160B shuttle board 3.0 fails to send interrupts or data after uploading firmware ("firmware/Bosch_PCB_7183_di03_BMI160-7183_di03.2.1.11696_170103.h") and installing virtual sensors (been trying with BHY_VS_ACCELEROMETER) and callbacks when I desolder the BMM150 (but leave the aux pull-up resistors). Is there some MINIMUM bus capacitance needed to slow down the rise/fall times on the ASDA and ASCK lines?
I've been fighting with a custom board using the BHI160B and an ESP32S3 (programmed in Platform.IO with the Arduino framework) for a while. The behavior has been the same, I talk to the chip just fine, upload firmware just fine, install virtual sensors and callbacks just fine, but I only ever get an interrupt after firmware upload.
I ended up buying the shuttleboard to isolate my problem, and it immediately worked. Both with the stand-alone firmware and accelerometer virtual sensor, and with the BHI+BMM firmware and orientation virtual sensor. I don't have a BMM150 on my custom board so I desoldered it from the shuttle board and suddenly it started having identical behavior. I tried to add 10pf capacitors to the ASDA and ASCK lines as that is the input capacitance in the BMM150 datasheet but I ripped up a pad on the shuttleboard and so was unsuccessful. I have no other ideas for what could cause the BHI failure using firmware not talking to the BMM150 when the BMM is simply removed.
Well, we decided we needed magnetic data as well. Spun up a new board with both the BHI and BMM and it worked straight away. Part of me wants to start desoldering to figure out where the problem was, but alas - it works so I'm moving on.