BMA400 (1)
UnreviewedCompact 8×8 mm I²C breakout for the Bosch BMA400 ultra-low-power 3-axis accelerometer (14.5 µA, 0x14). Address + interface selected via on-board jumpers.
BMA400 Molecule — Hardware Reference
Tiny (~8×8 mm) 4-corner-pin breakout for the Bosch BMA400 ultra-low-power 3-axis accelerometer.
- Source: adom-inc/bosch-molecules/BMA400 — imported 2026-04-17
- KiCad project:
BMA400.kicad_pro - Wiki page: molecules/bma400-1-593000
- Board: 6 castellated contacts (4 corner mount-pins carry power/I²C, 2 side contacts carry INTs), single-sided assembly
- IC: BMA400 (BOSCH_LGA-12, 2.0 × 2.0 × 0.65 mm, AC1)
Component summary (from BOM + CPL)
| Ref | Part | LCSC | Function |
|---|---|---|---|
| AC1 | BMA400 | C437655 | 3-axis accelerometer (LGA-12) |
| C1, C2 | 100 nF 0402 | C1525 | VDD / VDDIO decoupling |
| R1 | 5.1 kΩ 0402 | C25905 | Power-LED current limit |
| D1 | LED 0402 | C130725 | Power indicator |
| JP2 | ADOM_JUMPER_4x2 |
— | Interface-mode strap — solder-bridged = I²C, left open = 3-wire SPI |
| JP3 | ADOM_JUMPER_4x2_3Way_Selector |
— | SDO / I²C-address strap — see below |
External contact map
Positions are in mm on the PCB's front copper layer (from .kicad_pcb). MP pads are through-hole, MC pads are castellated.
| Ref | Silk | Net on board | Kind | Role |
|---|---|---|---|---|
| MP1 | 3.3V |
+3.3V |
mount | VDD / VDDIO (shared) |
| MP2 | GND |
GND |
mount | Ground |
| MP3 | SDA |
SDA/MOSI |
mount | I²C SDA (also SPI MOSI) |
| MP4 | SCK |
SCL/SCK |
mount | I²C SCL (also SPI SCK) |
| MC1 | INT1 |
INT1 |
contact | Interrupt output 1 |
| MC2 | INT2 |
INT2 |
contact | Interrupt output 2 |
Four corner through-hole mount-pins carry the primary interface. Two mid-side castellations carry the optional interrupt lines.
Interface strap (JP2 — I²C vs SPI)
| JP2 state | Mode | CSB net |
|---|---|---|
| Bridged (default for our demo) | I²C | CSB pulled to +3.3V (→ I²C mode) |
| Open | 3-wire SPI | CSB floats / externally driven |
Schematic text annotation: "Connected = I2C mode; NC = 3-Wire SPI Mode; NC = !(CS)"
I²C address strap (JP3 — 3-way selector)
BMA400 I²C slave address is set by SDO at power-up:
| JP3 setting | SDO tied to | I²C address |
|---|---|---|
| 1–2 bridged | GND (I2C_ID.0 = 0) |
0x14 (demo firmware target ✓) |
| 2–3 bridged | +3.3V (I2C_ID.0 = 1) |
0x15 |
| Center (MISO) | Routed to external pad only | SPI 4-wire mode |
Bring-up note: confirm JP3 is in the 1–2 position before connecting the bus. Wrong strap → device acks at 0x15 instead of 0x14 and the firmware bails with a probe miss.
Power
| Rail | Voltage | Source |
|---|---|---|
| VDD / VDDIO (shared) | 1.71–3.6 V (3.3 V in demo) | Host, via MP1 |
Single rail; VDD and VDDIO tied on-board. Typical active current 14.5 µA in normal mode (datasheet).
Interrupts
| Line | Silk | Behavior |
|---|---|---|
| INT1 | INT1 |
Datasheet default: any-motion / wake-up |
| INT2 | INT2 |
Secondary — typically data-ready or step |
Interrupts are push-pull active-low by default; polarity, drive, and mapping are software-programmable. If unused, leave the MC1/MC2 contacts unconnected — the BMA400 safely drives them tri-state between events.
Wiring to the Arm RM2 I²C bus (demo configuration)
BMA400 MP1 (3.3V) ──── RM2 +3V3
BMA400 MP2 (GND) ──── RM2 GND
BMA400 MP3 (SDA) ──── RM2 GPIO4 (I²C0 SDA, shared pull-up on arm bus)
BMA400 MP4 (SCK) ──── RM2 GPIO5 (I²C0 SCL, shared pull-up on arm bus)
BMA400 MC1 (INT1) ──── (optional — wake/interrupt GPIO, not used in stream mode)
BMA400 MC2 (INT2) ──── (optional)
Gotchas for firmware bring-up
- Double-check JP2 is bridged — an open JP2 puts the BMA400 in 3-wire SPI mode and it will not respond to I²C transactions.
- JP3 must be position 1–2 (SDO→GND) to match the firmware's 0x14 probe.
- 4.7 kΩ bus pull-ups are off-board — this molecule has no I²C pull-ups of its own. The RM2 carrier provides them.
- No on-board voltage regulation — apply 3.3 V clean to MP1; the sensor will latch-up on brown-outs if an external rail sags below ~1.6 V during operation.