{
  "usage_notes": "BMA400 is a bare 2x2x0.95 mm 12-pin LGA IC — not a ready-to-wire breakout. Use it on a custom PCB that supports the Bosch LGA-12 footprint, local decoupling, and 1.2-3.6 V logic. For minimum BOM, run a single rail (VDD = VDDIO) between 1.62 V and 3.6 V. The auto-wakeup mode draws roughly 800 nA at 25 Hz ODR, making the part attractive as an always-on wake source for sleeping microcontrollers. The primary interface pins are shared between I2C and SPI, so choose one host protocol per design unless the host firmware can re-strap CSB and the bus electrically.",
  "design_rules": [
    "Tie CSB to VDDIO before power-up to select I2C mode; the first falling CSB edge after power-up latches the BMA400 into SPI mode.",
    "For I2C mode, pull SDO to GND for 7-bit address 0x14 or to VDDIO for 0x15.",
    "I2C SDA and SCL require external pull-up resistors to VDDIO (typical 4.7 kOhm at 100 kHz; smaller at higher bus rates).",
    "Place 100 nF decoupling capacitors close to pin 3 (VDDIO) and pin 7 (VDD); share a common ground plane between GND (pin 9) and GNDIO (pin 8).",
    "Leave NC pins (pins 4 and 11) unconnected or tie to GND; do not drive them.",
    "If INT1 or INT2 are unused, leave them unconnected or configure them as Hi-Z in firmware.",
    "Maximum SPI clock is 10 MHz; maximum I2C clock is 3.4 MHz (High-speed mode). Verify host controller compatibility before targeting HS-mode I2C."
  ],
  "application_examples": [
    "Always-on wake-on-motion source for low-power wearables and hearables.",
    "Step counting and activity classification (walking, running, standing) in fitness trackers and IoT badges.",
    "Tap and double-tap user-interface gestures on small sealed enclosures.",
    "Orientation detection for portrait/landscape switching or simple gesture inputs.",
    "Vibration and fall-detection in battery-powered asset trackers."
  ],
  "metadata": {
    "version": "1.0",
    "part_number": "BMA400",
    "name": "Bosch BMA400 3-axis Ultra-Low-Power Accelerometer",
    "datasheet_url": "https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bma400-ds000.pdf",
    "description": "Bosch Sensortec BMA400 is a 12-bit triaxial accelerometer optimized for ultra-low-power applications such as wearables, hearables, and IoT motion-triggered devices. It combines an always-on auto-wakeup mode (~800 nA @ 25 Hz ODR), built-in step counter and activity recognition (walking/running/standing), orientation and tap/double-tap detection, and a 1 kB FIFO. Hosts can talk to it over I2C (Standard/Fast/HS up to 3.4 MHz) or SPI (3-wire or 4-wire, up to 10 MHz). Two configurable interrupt outputs (INT1, INT2) drive motion-triggered processors. This part is the bare 12-pin LGA chip (2.0 x 2.0 x 0.95 mm) — not a breakout — for use on custom PCBs.",
    "schema_version": "1.5.0",
    "type": "sensor",
    "thumbnail": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/bma400/thumbnail.png",
    "taxonomy": [
      "sensor.motion"
    ],
    "id": "BMA400",
    "tags": [
      "bma400",
      "bosch",
      "bosch-sensortec",
      "accelerometer",
      "3-axis",
      "triaxial",
      "ultra-low-power",
      "wearable",
      "step-counter",
      "activity-recognition",
      "tap-detection",
      "i2c",
      "spi",
      "lga-12"
    ],
    "manufacturer": "Bosch Sensortec"
  },
  "previewArtifactId": "art_thumbnail",
  "compatibility_notes": "Logic thresholds scale with VDDIO (VIH >= 0.7*VDDIO, VIL <= 0.3*VDDIO). The I2C address space is fixed to 0x14 and 0x15. Primary interface pins are shared between I2C and SPI; choose one host protocol per design. SPI supports both 3-wire and 4-wire modes via the SPI3 control bit.",
  "artifacts": [
    {
      "name": "Bosch BMA400 Datasheet (BST-BMA400-DS000)",
      "id": "art_datasheet",
      "url": "https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bma400-ds000.pdf",
      "type": "datasheet"
    },
    {
      "type": "link",
      "url": "https://www.bosch-sensortec.com/products/motion-sensors/accelerometers/bma400/",
      "name": "Bosch Sensortec BMA400 product page",
      "id": "art_product_page"
    },
    {
      "url": "https://www.digikey.com/en/products/detail/bosch-sensortec/BMA400/8634935",
      "type": "link",
      "name": "DigiKey BMA400 listing",
      "id": "art_digikey_listing"
    },
    {
      "name": "Mouser BMA400 listing",
      "id": "art_mouser_listing",
      "type": "link",
      "url": "https://www.mouser.com/ProductDetail/Bosch-Sensortec/BMA400?qs=f9yNj16SXrKBoguHUc32eQ%3D%3D"
    },
    {
      "size": 29902,
      "name": "BMA400 product photo (DigiKey)",
      "id": "art_product_image",
      "mimeType": "image/jpeg",
      "storagePath": "protoparts/bma400/artifacts/art_product_image.jpg",
      "url": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/bma400/artifacts/art_product_image.jpg",
      "type": "image"
    },
    {
      "url": "https://storage.googleapis.com/protoboard-delta.firebasestorage.app/protoparts/bma400/thumbnail.png",
      "type": "image",
      "name": "Bosch BMA400 3-axis Ultra-Low-Power Accelerometer thumbnail",
      "id": "art_thumbnail"
    }
  ],
  "domains": [
    {
      "metadata": {
        "fifo_size_bytes": 1024,
        "odr_hz": [
          12.5,
          800
        ],
        "acceleration_ranges_g": [
          2,
          4,
          8,
          16
        ],
        "i2c_max_frequency_hz": 3400000,
        "package_type": "LGA-12",
        "current_typ_uA": {
          "low_power_mode": 0.85,
          "normal_mode": 14.5,
          "auto_wakeup_25Hz_ODR_nA": 800,
          "sleep_mode": 0.16
        },
        "resolution_bits": 12,
        "i2c_addresses_7bit": [
          "0x14",
          "0x15"
        ],
        "logic_levels": {
          "vih_min": "0.7*VDDIO",
          "vil_max": "0.3*VDDIO"
        },
        "spi_max_frequency_hz": 10000000,
        "spi_modes_supported": [
          "3-wire",
          "4-wire"
        ]
      },
      "domain": "electrical",
      "power_consumption_mW": 0.0261,
      "pin_count": 12,
      "supply_voltage_V": [
        1.2,
        3.6
      ],
      "interfaces": [
        {
          "description": "I2C slave interface (datasheet p.110 connection diagram). Pin 12 = SCL, pin 2 = SDA, pin 1 = address-select strap (GND for the default 7-bit I2C address 0x14, VDDIO for 0x15). Pin 10 (CSB) must be tied to VDDIO before power-up to keep the part in I2C mode. Pull-ups on SDA/SCL to VDDIO are external. Supports Standard, Fast, and High-speed modes up to 3.4 MHz. Mutually exclusive with the SPI 3-wire and SPI 4-wire interfaces.",
          "requires": [
            {
              "count": 1,
              "function": "SCL"
            },
            {
              "function": "SDA",
              "count": 1
            },
            {
              "count": 1,
              "function": "Addr"
            }
          ],
          "name": "I2C Slave",
          "id": "i2c_slave",
          "constraints": {
            "requires_matching_voltage_domain": true,
            "max_lane_rate_mbps": 3,
            "max_connections": 1
          },
          "protocol": {
            "role": "slave",
            "type": "i2c"
          }
        },
        {
          "description": "SPI 4-wire slave interface (datasheet p.109 connection diagram). Pin 10 = CSB, pin 12 = SCK, pin 2 = MOSI/SDI (master->slave), pin 1 = MISO/SDO (slave->master). SPI mode is latched by the first falling edge of CSB after power-up; 4-wire vs 3-wire is then selected by clearing the SPI3 control bit. Maximum clock frequency 10 MHz. Mutually exclusive with the SPI 3-wire and I2C interfaces.",
          "requires": [
            {
              "function": "CSB",
              "count": 1
            },
            {
              "function": "SCK",
              "count": 1
            },
            {
              "function": "MOSI",
              "count": 1
            },
            {
              "function": "MISO",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1,
            "requires_matching_voltage_domain": true,
            "max_lane_rate_mbps": 10
          },
          "protocol": {
            "role": "slave",
            "type": "spi"
          },
          "name": "SPI 4-Wire Slave",
          "id": "spi_4wire_slave"
        },
        {
          "requires": [
            {
              "count": 1,
              "function": "CSB"
            },
            {
              "count": 1,
              "function": "SCK"
            },
            {
              "count": 1,
              "function": "MOSI/MISO"
            }
          ],
          "name": "SPI 3-Wire Slave",
          "id": "spi_3wire_slave",
          "constraints": {
            "requires_matching_voltage_domain": true,
            "max_lane_rate_mbps": 10,
            "max_connections": 1
          },
          "protocol": {
            "role": "slave",
            "type": "spi"
          },
          "description": "SPI 3-wire slave interface (datasheet p.109 connection diagram). Pin 10 = CSB, pin 12 = SCK, pin 2 = bidirectional combined MOSI/MISO data line (SDX carries both directions on a single wire). Pin 1 (SDO) is unused and must be left floating in 3-wire mode. SPI mode is latched by the first falling edge of CSB after power-up; 3-wire is then selected by setting the SPI3 control bit. Maximum clock frequency 10 MHz. Mutually exclusive with the SPI 4-wire and I2C interfaces."
        },
        {
          "requires": [
            {
              "count": 1,
              "function": "INT1"
            }
          ],
          "name": "INT1 Output",
          "id": "int1_if",
          "constraints": {
            "max_connections": 1
          },
          "protocol": {
            "role": "output",
            "type": "digital"
          },
          "description": "Interrupt output 1 (default) — pin 5 of the LGA-12 package per datasheet pin table (p.108). Output stage is programmable as push-pull or open-drain and active-high or active-low. Source events include data-ready, FIFO watermark/full, wake-up, generic motion, activity change, step counter, tap/double-tap, and orientation change."
        },
        {
          "requires": [
            {
              "function": "INT2",
              "count": 1
            }
          ],
          "constraints": {
            "max_connections": 1
          },
          "protocol": {
            "role": "output",
            "type": "digital"
          },
          "name": "INT2 Output",
          "id": "int2_if",
          "description": "Interrupt output 2 (default) — pin 6 of the LGA-12 package per datasheet pin table (p.108). Independent of INT1 and uses the same event-source map and programmable push-pull/open-drain, active-high/active-low output stage."
        },
        {
          "description": "VDD supply input — pin 7 (power supply for analog & digital domain) and pin 9 (GND for digital & analog) per datasheet pin table (p.108). 1.62 V to 3.6 V. A 100 nF decoupling capacitor is recommended close to pin 7 (datasheet p.109-110).",
          "requires": [
            {
              "function": "VDD",
              "count": 1
            },
            {
              "function": "GND",
              "count": 1
            }
          ],
          "name": "VDD Power Input",
          "id": "vdd_power_in",
          "protocol": {
            "role": "input",
            "type": "power"
          }
        },
        {
          "name": "VDDIO Power Input",
          "id": "vddio_power_in",
          "protocol": {
            "role": "input",
            "type": "power"
          },
          "requires": [
            {
              "count": 1,
              "function": "VDDIO"
            },
            {
              "function": "GND",
              "count": 1
            }
          ],
          "description": "VDDIO supply input — pin 3 (digital I/O supply voltage) and pin 8 (GND for I/O) per datasheet pin table (p.108). 1.2 V to 3.6 V. A 100 nF decoupling capacitor is recommended close to pin 3 (datasheet p.109-110)."
        }
      ],
      "power_domains": [
        {
          "ground_reference": "common",
          "max_current_mA": 1,
          "description": "Analog and digital core supply, 1.62 V to 3.6 V. Typical current draw at normal mode is 14.5 uA; 0.85 uA in low-power mode; 160 nA in sleep mode. Returns to GND.",
          "nominal_voltage_V": 1.8,
          "isolation_type": "non_isolated",
          "name": "VDD Core/Analog Supply",
          "id": "vdd",
          "voltage_range_V": [
            1.62,
            3.6
          ]
        },
        {
          "nominal_voltage_V": 1.8,
          "ground_reference": "common",
          "max_current_mA": 1,
          "description": "Digital I/O supply for SDx/SCx/SDO/CSB/INT1/INT2, 1.2 V to 3.6 V. Returns to GNDIO.",
          "name": "VDDIO I/O Supply",
          "id": "vddio",
          "voltage_range_V": [
            1.2,
            3.6
          ],
          "isolation_type": "non_isolated"
        }
      ],
      "resources": [
        {
          "description": "SDO — SPI 4-wire serial data output (MISO), Do-Not-Connect in SPI 3-wire mode, I2C address-select input in I2C mode.",
          "power_domain_id": "vddio",
          "notes": "Address-select: GND -> 0x14, VDDIO -> 0x15. In SPI 3-wire mode, leave unconnected.",
          "name": "Pin 1",
          "id": "pin_1",
          "connector_type": "surface_pad",
          "functions": [
            {
              "signal_class": "data",
              "description": "MISO for SPI 4-Wire Mode",
              "direction": "source",
              "name": "MISO"
            },
            {
              "description": "Do Not Connect",
              "name": "DNC"
            },
            {
              "direction": "sink",
              "name": "Addr",
              "signal_class": "data",
              "description": "Ground for default I2C Address"
            }
          ]
        },
        {
          "description": "SDX — primary serial data pin. SPI 4-wire: MOSI (master->slave, sink). SPI 3-wire: combined bidirectional data line carrying both MOSI and MISO on the same wire. I2C: SDA.",
          "power_domain_id": "vddio",
          "notes": "External pull-up resistor required when used as I2C SDA. In SPI 3-wire mode this single pin handles both MOSI and MISO.",
          "name": "Pin 2",
          "id": "pin_2",
          "connector_type": "surface_pad",
          "functions": [
            {
              "signal_class": "data",
              "description": "MOSI for SPI 4-Wire Mode",
              "direction": "sink",
              "name": "MOSI"
            },
            {
              "signal_class": "data",
              "description": "MOSI/MISO for SPI 3-Wire Mode",
              "direction": "bidirectional",
              "name": "MOSI/MISO"
            },
            {
              "name": "SDA",
              "direction": "bidirectional",
              "signal_class": "data",
              "description": "I2C Serial Data Line"
            }
          ]
        },
        {
          "power_domain_id": "vddio",
          "description": "VDDIO — digital I/O supply input, 1.2 V to 3.6 V.",
          "name": "Pin 3",
          "id": "pin_3",
          "connector_type": "surface_pad",
          "functions": [
            {
              "signal_class": "power",
              "description": "VDDIO Supply Voltage",
              "name": "VDDIO",
              "direction": "sink"
            }
          ],
          "notes": "Place a 100 nF decoupling capacitor close to this pin (per datasheet section 7.2). Return current is via GNDIO (pin 8)."
        },
        {
          "connector_type": "surface_pad",
          "functions": [
            {
              "description": "Not Connected",
              "name": "NC"
            }
          ],
          "name": "Pin 4",
          "id": "pin_4",
          "description": "NC — internally not connected. Leave floating or tie to GND; do not drive.",
          "power_domain_id": "vddio"
        },
        {
          "connector_type": "surface_pad",
          "functions": [
            {
              "direction": "source",
              "name": "INT1",
              "signal_class": "data",
              "description": "Interrupt Output 1"
            }
          ],
          "name": "Pin 5",
          "id": "pin_5",
          "description": "INT1",
          "power_domain_id": "vddio"
        },
        {
          "power_domain_id": "vddio",
          "description": "INT2",
          "name": "Pin 6",
          "id": "pin_6",
          "connector_type": "surface_pad",
          "functions": [
            {
              "name": "INT2",
              "direction": "source",
              "signal_class": "data",
              "description": "Interrupt Output 2"
            }
          ]
        },
        {
          "notes": "Place a 100 nF decoupling capacitor close to this pin (per datasheet section 7.2). Return current is via GND (pin 9).",
          "connector_type": "surface_pad",
          "functions": [
            {
              "signal_class": "power",
              "description": "VDD Supply Voltage",
              "direction": "sink",
              "name": "VDD"
            }
          ],
          "name": "Pin 7",
          "id": "pin_7",
          "description": "VDD — analog and digital core supply input, 1.62 V to 3.6 V.",
          "power_domain_id": "vdd"
        },
        {
          "name": "Pin 8",
          "id": "pin_8",
          "connector_type": "surface_pad",
          "functions": [
            {
              "signal_class": "ground",
              "description": "Ground",
              "direction": "sink",
              "name": "GND"
            }
          ],
          "description": "GNDIO — return for the VDDIO digital I/O supply.",
          "power_domain_id": "vddio"
        },
        {
          "power_domain_id": "vdd",
          "description": "GND — return for the VDD analog/digital core supply.",
          "name": "Pin 9",
          "id": "pin_9",
          "connector_type": "surface_pad",
          "functions": [
            {
              "name": "GND",
              "direction": "sink",
              "signal_class": "ground",
              "description": "Ground"
            }
          ]
        },
        {
          "power_domain_id": "vddio",
          "description": "CSB — active-low Chip Select Bar for both SPI 3-wire and SPI 4-wire modes. Also acts as the host-protocol strap at power-up: held high through power-up = I2C mode; first falling edge after power-up latches the part into SPI mode.",
          "connector_type": "surface_pad",
          "functions": [
            {
              "signal_class": "data",
              "description": "Chip Select Bar for SPI Mode (3-Wire or 4-Wire)",
              "direction": "sink",
              "name": "CSB"
            },
            {
              "direction": "sink",
              "name": "VDDIO",
              "signal_class": "power",
              "description": "VDDIO Supply Voltage"
            }
          ],
          "name": "Pin 10",
          "id": "pin_10",
          "notes": "CSB high at power-up -> I2C mode (tie to VDDIO); first falling edge of CSB after power-up latches into SPI mode."
        },
        {
          "description": "NC — internally not connected. Leave floating or tie to GND; do not drive.",
          "power_domain_id": "vddio",
          "connector_type": "surface_pad",
          "functions": [
            {
              "name": "NC",
              "description": "Not Connected"
            }
          ],
          "name": "Pin 11",
          "id": "pin_11"
        },
        {
          "description": "SCX — serial clock input. Acts as SPI clock (SCK) in both SPI 3-wire and SPI 4-wire modes, and as the I2C clock (SCL) in I2C mode. Maximum 10 MHz SPI / 3.4 MHz I2C HS-mode.",
          "power_domain_id": "vddio",
          "notes": "External pull-up resistor required when used as I2C SCL.",
          "connector_type": "surface_pad",
          "functions": [
            {
              "signal_class": "clock",
              "description": "SPI Clock",
              "direction": "sink",
              "name": "SCK"
            },
            {
              "signal_class": "clock",
              "description": "I2C Clock",
              "name": "SCL",
              "direction": "sink"
            }
          ],
          "name": "Pin 12",
          "id": "pin_12"
        }
      ]
    },
    {
      "interfaces": [
        {
          "name": "PCB Surface Mount",
          "id": "pcb_mount",
          "protocol": {
            "role": "mounting_point",
            "type": "mechanical_connection"
          },
          "requires": [
            {
              "function": "MECHANICAL_MOUNT",
              "count": 1
            }
          ],
          "description": "Surface-mount LGA solder attachment to host PCB land pattern."
        }
      ],
      "resources": [
        {
          "description": "Surface-mount 12-pin LGA package body, 2.0 x 2.0 x 0.95 mm.",
          "name": "LGA-12 Package",
          "id": "pkg",
          "connector_type": "surface_mount",
          "functions": [
            {
              "signal_class": "mechanical_drive",
              "direction": "bidirectional",
              "name": "MECHANICAL_MOUNT"
            }
          ]
        }
      ],
      "metadata": {
        "field_serviceable": false,
        "mounting_method": "surface_mount",
        "requires_special_tools": false
      },
      "package_type": "LGA-12",
      "domain": "mechanical",
      "dimensions_mm": {
        "height": 0.95,
        "length": 2,
        "width": 2
      }
    },
    {
      "metadata": {
        "requires_thermal_management": false,
        "thermal_monitoring_available": false
      },
      "domain": "thermal",
      "interfaces": [],
      "operating_temperature_C": [
        -40,
        85
      ],
      "resources": []
    }
  ],
  "warnings": [
    "This is a fine-pitch 2x2 mm surface-mount LGA IC and is not suitable for solderless breadboard use without a breakout board.",
    "Absolute maximum supply voltage on VDD and VDDIO is 4.25 V (per BMA400 datasheet absolute-maximum table); never exceed 3.6 V in normal operation.",
    "Current, noise, and timing specifications vary with selected power mode, ODR, and VDDIO level.",
    "Storage temperature range is -50 to +150 C; operating range is -40 to +85 C."
  ]
}