10-23-2022 11:27 PM
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.
12-14-2022 08:55 AM
If you do not use the BMM150, the pull-up resistor is necessary for BHI160B.
If you do not use the BMM150, the pins(ASDA,ASCK) can be set as floating for IMU(BMI270, etc.).