{
  "schema_version": 1,
  "type": "component",
  "slug": "bma400-1-593000",
  "title": "BMA400 (1)",
  "brief": "Compact 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.",
  "version": "1.0.0",
  "tags": [],
  "license": "MIT",
  "component": {
    "mpn": "BMA400 (1)",
    "manufacturer": "",
    "package": "",
    "pin_count": null,
    "category": "other",
    "subcategory": "",
    "body_size": null,
    "parts": {},
    "distributor_links": {},
    "molecule_id": 16934464928641593000
  },
  "readme": "# BMA400 Molecule — Hardware Reference\n\nTiny (~8×8 mm) 4-corner-pin breakout for the Bosch BMA400 ultra-low-power 3-axis accelerometer.\n\n- **Source:** [adom-inc/bosch-molecules/BMA400](https://github.com/adom-inc/bosch-molecules/tree/main/BMA400) — imported 2026-04-17\n- **KiCad project:** `BMA400.kicad_pro`\n- **Wiki page:** [molecules/bma400-1-593000](https://wiki-ufypy5dpx93o.adom.cloud/wiki/molecules/bma400-1-593000)\n- **Board:** 6 castellated contacts (4 corner mount-pins carry power/I²C, 2 side contacts carry INTs), single-sided assembly\n- **IC:** BMA400 (BOSCH_LGA-12, 2.0 × 2.0 × 0.65 mm, AC1)\n\n## Component summary (from BOM + CPL)\n\n| Ref | Part | LCSC | Function |\n|---|---|---|---|\n| AC1 | BMA400 | C437655 | 3-axis accelerometer (LGA-12) |\n| C1, C2 | 100 nF 0402 | C1525 | VDD / VDDIO decoupling |\n| R1 | 5.1 kΩ 0402 | C25905 | Power-LED current limit |\n| D1 | LED 0402 | C130725 | Power indicator |\n| JP2 | `ADOM_JUMPER_4x2` | — | **Interface-mode strap** — solder-bridged = I²C, left open = 3-wire SPI |\n| JP3 | `ADOM_JUMPER_4x2_3Way_Selector` | — | **SDO / I²C-address strap** — see below |\n\n## External contact map\n\nPositions are in mm on the PCB's front copper layer (from `.kicad_pcb`). MP pads are through-hole, MC pads are castellated.\n\n| Ref | Silk | Net on board | Kind | Role |\n|---|---|---|---|---|\n| MP1 | `3.3V` | `+3.3V` | mount | VDD / VDDIO (shared) |\n| MP2 | `GND` | `GND` | mount | Ground |\n| MP3 | `SDA` | `SDA/MOSI` | mount | I²C SDA (also SPI MOSI) |\n| MP4 | `SCK` | `SCL/SCK` | mount | I²C SCL (also SPI SCK) |\n| MC1 | `INT1` | `INT1` | contact | Interrupt output 1 |\n| MC2 | `INT2` | `INT2` | contact | Interrupt output 2 |\n\nFour corner through-hole mount-pins carry the primary interface. Two mid-side castellations carry the optional interrupt lines.\n\n## Interface strap (JP2 — I²C vs SPI)\n\n| JP2 state | Mode | CSB net |\n|---|---|---|\n| **Bridged (default for our demo)** | I²C | CSB pulled to `+3.3V` (→ I²C mode) |\n| Open | 3-wire SPI | CSB floats / externally driven |\n\nSchematic text annotation: *\"Connected = I2C mode; NC = 3-Wire SPI Mode; NC = !(CS)\"*\n\n## I²C address strap (JP3 — 3-way selector)\n\nBMA400 I²C slave address is set by SDO at power-up:\n\n| JP3 setting | SDO tied to | I²C address |\n|---|---|---|\n| 1–2 bridged | GND (`I2C_ID.0 = 0`) | **0x14** (demo firmware target ✓) |\n| 2–3 bridged | +3.3V (`I2C_ID.0 = 1`) | 0x15 |\n| Center (MISO) | Routed to external pad only | SPI 4-wire mode |\n\n**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.\n\n## Power\n\n| Rail | Voltage | Source |\n|---|---|---|\n| VDD / VDDIO (shared) | 1.71–3.6 V (3.3 V in demo) | Host, via MP1 |\n\nSingle rail; VDD and VDDIO tied on-board. Typical active current 14.5 µA in normal mode (datasheet).\n\n## Interrupts\n\n| Line | Silk | Behavior |\n|---|---|---|\n| INT1 | `INT1` | Datasheet default: any-motion / wake-up |\n| INT2 | `INT2` | Secondary — typically data-ready or step |\n\nInterrupts 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.\n\n## Wiring to the Arm RM2 I²C bus (demo configuration)\n\n```\nBMA400 MP1 (3.3V) ──── RM2 +3V3\nBMA400 MP2 (GND)  ──── RM2 GND\nBMA400 MP3 (SDA)  ──── RM2 GPIO4 (I²C0 SDA, shared pull-up on arm bus)\nBMA400 MP4 (SCK)  ──── RM2 GPIO5 (I²C0 SCL, shared pull-up on arm bus)\nBMA400 MC1 (INT1) ──── (optional — wake/interrupt GPIO, not used in stream mode)\nBMA400 MC2 (INT2) ──── (optional)\n```\n\n## Gotchas for firmware bring-up\n\n- **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.\n- **JP3 must be position 1–2 (SDO→GND)** to match the firmware's 0x14 probe.\n- **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.\n- **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.\n",
  "author": {
    "id": "695820315b5f1e4db2fcf602",
    "name": "Kyle Bergstedt",
    "email": "[email protected]"
  },
  "visibility": {
    "public": true
  },
  "hero": null,
  "sample_prompts": [],
  "discovery_triggers": [],
  "discovery_pitch": null,
  "metadata": {},
  "created_at": "2026-05-28T05:31:10.136Z",
  "updated_at": "2026-05-28T05:31:10.136Z"
}