BHI385 + BMM350 Combo Molecule — Hardware Reference

16×16 mm combo breakout carrying a Bosch BHI385 smart-sensor hub (9-DOF fusion engine) and a BMM350 magnetometer on the BHI's internal auxiliary I²C bus. This is the target board for fw_arm's BHI385 combo sensor (sensor_id 0x31 in the wire protocol).

Mechanical/electrical twin of the BHI360 combo. Netlist, component placement, silk, and all strap options are identical. The only real differences: the U1 part number is BHI385 (not BHI360), the date stamp is 2025-09-10 (not 2025-09-03), and the demo firmware expects this board at I²C address 0x29 (not 0x28) — which you achieve via the opposite strap bridge. See ../molecule_bhi360_bmm350/README.md for the full component table, aux-bus wiring, power architecture, and bring-up flow — all of those apply identically. This file documents only the BHI385-specific differences.

What's different vs the BHI360 combo

Silkscreen title + date stamp

  • BHI360 molecule: BHI360+BMM350, V1: 2025-09-03
  • BHI385 molecule: BHI385+BMM350, V1: 2025-09-10

If two unlabeled boards sit side-by-side on the bench, that is the easiest way to tell them apart without pulling out a loupe.

Target I²C address: 0x29

Demo firmware (fw_arm) expects this molecule at 0x29. The address strap works the same way, but you bridge the other option:

Strap HSDO tied to I²C address
Bridge MC12 ↔ MC3 (silk 0x28) +VDDIO (HIGH — via R5) 0x28 (this would be the BHI360 sibling)
Bridge MC11 ↔ MC3 (silk 0x29) GND (LOW) 0x29required for this molecule

Schematic annotation on the board: "HSDO (I2C ADD Select). Jumper to GND (LOW): 0x29. Jumper to VDDIO (HIGH): 0x28. Reset Active-LOW."

Firmware blob

Upload uses Bosch_Shuttle3_BHI385_bsxsam_lite.fw (vendored as firmware/sensors/bhi385_sdk/Bosch_Shuttle3_BHI385_bsxsam_lite.fw.h) — the BHI385 BSX-SAM-Lite fusion firmware. This is a different blob than the BHI360's Bosch_Shuttle3_BHI360_BMM350C.fw; do not cross-load.

Wiring to the Arm RM2 I²C bus

Identical to the BHI360 combo, with the address-strap swap:

Combo MP3 (VDD)  ──── +1.8 V rail
Combo MP2 (VDDIO)──── RM2 +3V3
Combo MP1 (GND)  ──── RM2 GND
Combo MC4 (HSDA) ──── RM2 GPIO4 (I²C0 SDA, shared bus)
Combo MC5 (HSCL) ──── RM2 GPIO5 (I²C0 SCL, shared bus)
Combo MC2 (HIRQ) ──── (optional)
Combo MC1 (RST)  ──── (optional; if driven, pull high through 10 kΩ)

Solder-bridge MC11 ↔ MC3 (strap to GND / silk 0x29). Do not bridge MC12 — that is the BHI360's strap.

BHI360 / BHI385 coexistence check

Both molecules share I²C lines on the arm bus with:

  • BMI270 @ 0x68, BMA400 @ 0x14, BMA580 @ 0x18, standalone BMM350 @ 0x15
  • This BHI385 @ 0x29 and the sibling BHI360 @ 0x28

No collisions. But if either BHI combo's address strap is mis-set, you'll either (a) see a duplicate at 0x28 or 0x29, or (b) find the BHI385 missing while the BHI360 scans fine. Verify both straps under magnification before powering the bus.