BMA580 Molecule — Hardware Reference
Tiny (~8×8 mm) 4-corner-pin breakout for the Bosch BMA580 next-gen 3-axis accelerometer with hardware AI step counter.
- Source: adom-inc/bosch-molecules/BMA580 — imported 2026-04-17
- KiCad project:
BMA580.kicad_pro - Wiki page: molecules/bma580-561000
- Board: 7 contacts (4 corner mount-pins carry power/I²C, 3 side contacts carry INTs + extra V+ tap), single-sided assembly, silk revision
V1.0 8/29/25 - IC: BMA580 (Bosch BMA580 LGA, 2.0 × 2.0 × 0.65 mm, AC1)
Component summary
| Ref | Part | Function |
|---|---|---|
| AC1 | BMA580 | 3-axis accelerometer — I²C only on this breakout (no SPI jumper) |
| C1 | 100 nF 0402 | V+ decoupling |
| D1 | LED 0402 | Power indicator |
| R1 | LED current-limit 0402 | — |
No address-select jumper. Silk on the PCB calls out BMA580 I2C: 0x18 — the address is fixed at 0x18 on this molecule (SDO strap hard-tied on-board).
External contact map
| Ref | Silk | Net | Kind | Role |
|---|---|---|---|---|
| MP1 | V+ | V+ | mount | VDD / VDDIO (shared 3.3 V) |
| MP2 | GND | GND | mount | Ground |
| MP3 | SDA | SDA | mount | I²C SDA |
| MP4 | SCL | SCL | mount | I²C SCL |
| MC1 | INT2 (silk typo — actually INT2) | INT2 | contact | Interrupt output 2 |
| MC2 | INT2 (silk typo — actually INT1) | INT1 | contact | Interrupt output 1 |
| MC3 | V+ | V+ | contact | Extra V+ tap (power distribution, useful when daisy-chaining) |
Silk misprint on v1
Both interrupt castellations are silk-labelled INT2, but the netlist (and the IC pin map) confirm MC1 is INT2 and MC2 is INT1. The BMA580 pinout is: pin 2 = INT1, pin 3 = INT2. Use the position in the .kicad_pcb coordinate frame to disambiguate:
- MC1 @ (24.0, 20.0) → Y = 20 → upper edge (near V+ silk) = INT2
- MC2 @ (24.0, 28.0) → Y = 28 → lower edge (near GND silk) = INT1
Worth taping a small label onto physical boards if you end up actually using the INT lines.
Power
| Rail | Voltage | Source |
|---|---|---|
| V+ (VDD = VDDIO tied) | 1.71–3.6 V (3.3 V in demo) | Host, via MP1 (or MC3 as an alternate tap) |
Single rail. Typical active current 145 µA in normal mode (datasheet).
Interrupts
INT1 and INT2 are push-pull active-low by default; both are software-configurable for features like any-motion, data-ready, FIFO watermark, or the BMA580's hardware step counter / classifier. Unused → leave MC1/MC2 floating.
Wiring to the Arm RM2 I²C bus
BMA580 MP1 (V+) ──── RM2 +3V3
BMA580 MP2 (GND) ──── RM2 GND
BMA580 MP3 (SDA) ──── RM2 GPIO4 (I²C0 SDA)
BMA580 MP4 (SCL) ──── RM2 GPIO5 (I²C0 SCL)
BMA580 MC1 (INT2) ──── (optional)
BMA580 MC2 (INT1) ──── (optional) ← silk says INT2, it's INT1
BMA580 MC3 (V+) ──── (optional — second power tap)
Gotchas for firmware bring-up
- Address is fixed at 0x18 — no jumper to mis-set. If the bus doesn't see 0x18 it's a wiring / pull-up problem, not an address problem.
- Silk misprint on both INT contacts (see above). If interrupts matter for your use case, trust the netlist / board position rather than the silk.
- 4.7 kΩ bus pull-ups are off-board — provided by the RM2 carrier.
- The BMA580 has a stricter VDD minimum (1.71 V) than the BMA400 (1.2 V). If you're running the whole bus on 1.8 V for some reason, the BMA580 still works but has less margin.