BHI385_Molecule v12
Unreviewed16×16 mm BHI385 + BMM350 combo breakout (9-DOF fusion hub + aux-bus mag). Identical layout to BHI360 combo; I²C at 0x29 via MC11↔MC3 strap.
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).
- Source: adom-inc/bosch-molecules/Molecule_BHI385-BMM350_bosch_v1 — imported 2026-04-17
- KiCad project:
Molecule_BHI385-BMM350_bosch_v1.kicad_pro - Wiki page: molecules/bhi385-molecule-v12-607000
- Board: 17 contacts, silk revision
V1: 2025-09-10, silkscreen titleBHI385+BMM350 - ICs: U1 = BHI385 (Bosch LGA-20, 2.5 × 3.0 × 0.95 mm), U2 = BMM350 (Bosch BGA-9 WLCSP)
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(not2025-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) | 0x29 ← required 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.