DATASHEET

BMI270

Bosch Sensortec BMI270. Ultra-low power 6-axis IMU (accel + gyro) for wearables. 16-bit, 685uA typ, I2C/SPI, wrist gestures, OIS support, LGA-14. Standardized datasheet with 15 extracted diagrams.

Bosch Sensortec BMI270 BST-BMI270-DS000-07 — Rev 1.5, March 2023 Original PDF ↗
BMI270
View this datasheet

Paste this into Claude Code (VS Code panel, Adom editor, or terminal) to install:

Search the Adom Wiki for the datasheet "BMI270" (slug: bmi270) at https://wiki-ufypy5dpx93o.adom.cloud/wiki/datasheets/bmi270. Download the standardized markdown and extracted diagram images into my project's datasheets/bmi270/ directory. Show me the key specifications and pin configuration.
Overview
Pinout
Specifications
Software
Applications
Diagrams
Markdown

Source: Bosch Sensortec Datasheet (BST-BMI270-DS000-07) Manufacturer: Bosch Sensortec Part Number: BMI270 Document: BST-BMI270-DS000-07 — Rev 1.5, March 2023

Description

The BMI270 is a highly integrated, ultra-low power inertial measurement unit (IMU) optimized for wearable applications. It combines precise acceleration and angular rate (gyroscopic) measurement with intelligent on-chip motion-triggered interrupt features. The device integrates a 16-bit digital triaxial accelerometer and a 16-bit digital triaxial gyroscope in a compact 2.5 x 3.0 mm LGA package. The BMI270 includes dedicated wearable gesture recognition features such as wrist wear wakeup, step counting, activity recognition, wrist gestures (flick in/out, push arm down, pivot up, wrist jiggle), and significant motion detection. It supports I2C (Fast-mode Plus) and SPI (up to 10 MHz) primary interfaces, an auxiliary I2C master interface for connecting external sensors like magnetometers, and an OIS SPI slave interface for camera optical image stabilization with up to 6.4 kHz ODR and sub-millisecond group delay. A built-in 2 KB FIFO buffer, hardware-synchronized sensor timestamps, and a comprehensive power management unit enable efficient battery-powered system designs.

Key Specifications

1.71V to 3.6V
Supply Voltage (VDD)
1.2V to 3.6V
I/O Supply Voltage (VDDIO)
+/-2g, +/-4g, +/-8g, +/-16g
Accelerometer Range
+/-125, +/-250, +/-500, +/-1000, +/-2000 dps
Gyroscope Range
0.78 Hz to 1600 Hz
Accelerometer ODR
25 Hz to 6400 Hz
Gyroscope ODR
16-bit (accel and gyro)
Resolution
685 uA typ
Current (Full ODR, Normal)
3.5 uA typ
Current (A+G Suspend)
210 uA typ
Current (Accel-only LP, 25 Hz)
0.007 dps/sqrt(Hz)
Gyro Noise Density (Perf.)
0.16 mg/sqrt(Hz)
Accel Noise Density
2 KB
FIFO
2 ms
Gyro Startup (Fast)
I2C (Fm+), SPI (10 MHz)
Interface
LGA-14, 2.5 x 3.0 x 0.83 mm
Package
-40 to +85 degC
Operating Temperature
0x24
Chip ID

Features

  • 16-bit triaxial accelerometer with +/-2g/+/-4g/+/-8g/+/-16g selectable range
  • 16-bit triaxial gyroscope with +/-125 to +/-2000 dps selectable range
  • Ultra-low power consumption: 685 uA typical in full ODR normal mode
  • Performance mode for gyroscope with noise as low as 0.007 dps/sqrt(Hz)
  • Rapid gyroscope startup: 2 ms in fast-start mode
  • Built-in power management unit (PMU) with advanced low-power modes
  • 2 KB on-chip FIFO buffer for accel, gyro, timestamps, and auxiliary sensor data
  • Hardware synchronization of accelerometer, gyroscope, and auxiliary sensor (< 1 us)
  • Sensortime stamps for accurate host/sensor time synchronization (< 40 us)
  • I2C Fast-mode Plus master interface hub for 1 auxiliary sensor (e.g., magnetometer)
  • 10 MHz SPI slave OIS interface for camera stabilization with up to 6.4 kHz ODR
  • Programmable low-pass filters: accel BW 5.5 to 740 Hz, gyro BW 11 to 751 Hz
  • Fast offset and sensitivity error compensation (CRT reduces gyro error to typ. 0.4%)
  • Wrist wear wakeup gesture detection
  • Step counter and step detector (wrist-worn optimized)
  • Activity and activity change recognition
  • Significant motion, any-motion, and no-motion detection
  • Wrist navigation gestures: flick in/out, push arm down, pivot up, wrist jiggle
  • 2 independent programmable interrupt output pins
  • RoHS compliant, halogen-free, lead-free

Pin Configuration

1SDODigital I/O
SPI serial data output (4-wire); I2C address bit-0 select
2ASDxDigital I/O
Secondary interface: Aux I2C SDA / OIS SPI SDI
3ASCxDigital I/O
Secondary interface: Aux I2C SCL / OIS SPI SCK
4INT1Digital I/O
Interrupt output pin 1 (configurable)
5VDDIOSupply
Digital I/O supply voltage (1.2V to 3.6V)
6GNDIOSupply
Ground for digital I/O
7GNDSupply
Ground for analog and digital core
8VDDSupply
Power supply for analog and digital core (1.71V to 3.6V)
9INT2Digital I/O
Interrupt output pin 2 (configurable)
10OCSBDigital In
OIS SPI chip select (active low)
11OSDODigital Out
OIS SPI serial data output
12CSBDigital In
SPI chip select (active low); I2C mode select
13SCxDigital In
SPI serial clock (SCK) / I2C serial clock (SCL)
14SDxDigital I/O
SPI serial data input (SDI) / I2C serial data (SDA)

Source: Bosch Sensortec Datasheet (BST-BMI270-DS000-07) Manufacturer: Bosch Sensortec Part Number: BMI270 Document: BST-BMI270-DS000-07 — Rev 1.5, March 2023

Absolute Maximum Ratings

ParameterConditionMinMaxUnit
Supply Voltage (VDD)VDD Pin-0.34V
Supply Voltage (VDDIO)VDDIO Pin-0.34V
Voltage at Logic PinNon-Supply Pin-0.3VDDIO+0.3, <4V
Storage Temperature<= 65% rel. humidity-50+150degC
NVM Data RetentionT=85 degC, after 15 cycles10years
Mechanical ShockDuration <= 200 us20,000g
Mechanical ShockDuration <= 1.0 ms2,000g
Free FallOnto hard surfaces1.8m
ESD (HBM)Any pin2kV
ESD (CDM)500V
ESD (MM)JESD22A115C200V

Electrical Characteristics

Accelerometer

ParameterConditionMinTypMaxUnit
Sensitivity (+/-2g)TA=25 degC16384LSB/g
Sensitivity (+/-4g)TA=25 degC8192LSB/g
Sensitivity (+/-8g)TA=25 degC4096LSB/g
Sensitivity (+/-16g)TA=25 degC2048LSB/g
Sensitivity ErrorTA=25 degC, nominal VDD+/-0.4%
Sensitivity Temp. DriftFull TA range0.004%/K
Zero-g OffsetSoldered, over lifetime+/-20mg
Zero-g Offset Temp. DriftFull TA range+/-0.25mg/K
Noise Density (Normal)TA=25 degC, 8g range0.16mg/sqrt(Hz)
Noise RMSBW=80 Hz, ODR=200 Hz, 8g1.51mg-rms
Nonlinearity+/-2g range0.5%FS
ODR (Normal Mode)12.51600Hz
ODR (Low Power Mode)0.78400Hz
Cross-Axis SensitivityAny two axes1%
Alignment ErrorRelative to package0.5deg
Startup TimeSuspend to normal2ms

Gyroscope

ParameterConditionMinTypMaxUnit
Sensitivity (+/-2000 dps)TA=25 degC16.384LSB/dps
Sensitivity (+/-1000 dps)TA=25 degC32.768LSB/dps
Sensitivity (+/-500 dps)TA=25 degC65.536LSB/dps
Sensitivity (+/-250 dps)TA=25 degC131.072LSB/dps
Sensitivity (+/-125 dps)TA=25 degC262.144LSB/dps
Sensitivity ErrorTA=25 degC, nominal VDD+/-2%
Sensitivity Error (after CRT)TA=25 degC, after CRT+/-0.4%
Sensitivity Temp. DriftFull TA range0.02%/K
Zero-Rate OffsetSoldered, over lifetime+/-0.5dps
Zero-Rate Offset Temp. DriftNominal VDD+/-0.015dps/K
Noise Density (Performance)TA=25 degC0.007dps/sqrt(Hz)
Noise Density (Normal)TA=25 degC0.010dps/sqrt(Hz)
Noise RMS (Performance)BW=74.6 Hz, ODR=200 Hz0.07dps-rms
Noise RMS (Normal)BW=74.6 Hz, ODR=200 Hz0.09dps-rms
Nonlinearity+/-250, +/-2000 dps0.01%FS
ODR (Normal/Performance)256400Hz
ODR (Low Power)25100Hz
Cross-Axis SensitivityAny two axes0.2%
Alignment ErrorRelative to package0.5deg
g-SensitivityStatic acceleration0.1dps/g
Startup Time (Normal)Suspend to normal45ms
Startup Time (Fast)Fast start mode2ms

Temperature Sensor

ParameterConditionMinTypMaxUnit
ADC Resolution16bits
Measurement Range-4187degC
Output at 23 degC0LSB
Sensitivity512LSB/K

Power Consumption

ModeConditionTypUnit
A+G Performance ModeVDD=1.8V, TA=25 degC, ODRmax970uA
A+G Normal ModeVDD=1.8V, TA=25 degC, ODRmax685uA
A+G Low Power ModeVDD=1.8V, TA=25 degC, ODR 25 Hz420uA
Accel-only Normal ModeVDD=1.8V, TA=25 degC, ODRmax210uA
Accel-only Low Power ModeVDD=1.8V, TA=25 degC, ODR 25 HzuA
A+G Suspend ModeVDD=1.8V, TA=25 degC3.5uA
Power-On TimeSupply on to I/F operational2ms

Communication Interface

Primary Interface

The BMI270 supports I2C Fast-mode Plus and SPI (3-wire and 4-wire) as primary host interface. Protocol is auto-selected based on CSB pin state after power-up: if CSB is held at VDDIO, I2C mode is used; a rising edge on CSB switches to SPI mode.

ParameterConditionMinTypMaxUnit
SPI Clock FrequencyVDDIO >= 1.62V10MHz
I2C Address (SDO=GND)Default0x68
I2C Address (SDO=VDDIO)Alternate0x69
CSB Internal Pull-UpTo VDDIO75100140kOhm
Input Capacitance5pF
I2C Bus Load CapacitanceMax drive capability400pF

Secondary Interface

The secondary interface can operate as either an I2C master (auxiliary interface) for connecting an external sensor (e.g., BMM150 magnetometer for 9-DOF), or an SPI slave (OIS interface) for camera optical image stabilization. Only one mode can be active at a time.

OIS Interface

Provides pre-filtered gyroscope data at 6.4 kHz ODR and accelerometer data at 1.6 kHz ODR with minimum latency (group delay down to 680 us). Supports configurable low-pass filters with programmable cutoff frequencies. Available in SPI 3-wire and 4-wire modes.

Packages

PackagePinsBody SizeHeight
LGA142.5 mm x 3.0 mm0.83 mm (typ)

Package Dimensions

ReferenceMinNomMaxUnit
A (height)0.790.830.87mm
A10.110.130.15mm
A20.680.700.72mm
D (length)2.953.003.05mm
E (width)2.452.502.55mm
D11.00 BSCmm
e (pitch)0.50 BSCmm
L10.0740.100mm

Software API

Initialization Sequence

1. After power-up, read CHIP_ID register (0x00) to verify communication. Expected value: 0x24. For SPI, perform a dummy read first to switch the interface from default I2C to SPI mode. 2. Disable advanced power save: write 0x00 to PWR_CONF (0x7C), wait >= 450 us. 3. Prepare config load: write 0x00 to INIT_CTRL (0x59). 4. Burst-write the configuration file to INIT_DATA (0x5E). The config file is available at the Bosch BMI270 Sensor API GitHub repository. 5. Complete config load: write 0x01 to INIT_CTRL (0x59). 6. Wait >= 20 ms, then read INTERNAL_STATUS (0x21). Bit 0 = 1 indicates successful initialization.

Key Registers

AddressNameDescription
0x00CHIP_IDChip identification (reads 0x24)
0x02ERR_REGError status register
0x03STATUSSensor status flags
0x04-0x17DATA_0..19Aux, accel, gyro sensor data
0x18-0x1ASENSORTIME24-bit sensor timestamp
0x1C-0x1DINT_STATUSInterrupt status
0x1E-0x1FSC_OUTStep counter output
0x21INTERNAL_STATUSInit status and error codes
0x22-0x23TEMPERATURETemperature sensor data
0x24-0x25FIFO_LENGTHCurrent FIFO fill level
0x26FIFO_DATAFIFO data output
0x40ACC_CONFAccelerometer configuration (ODR, BW, filter)
0x41ACC_RANGEAccelerometer range selection
0x42GYR_CONFGyroscope configuration (ODR, BW, filter, noise)
0x43GYR_RANGEGyroscope range selection
0x53INT1_IO_CTRLINT1 pin electrical behavior
0x54INT2_IO_CTRLINT2 pin electrical behavior
0x56-0x57INT1/2_MAP_FEATFeature interrupt mapping
0x58INT_MAP_DATAData ready / FIFO interrupt mapping
0x59INIT_CTRLConfig file load control
0x7CPWR_CONFPower configuration (adv. power save, FIFO self-wake)
0x7DPWR_CTRLSensor enable control (accel, gyro, aux, temp)
0x7ECMDCommand register (soft reset, NVM prog, FIFO flush)

FIFO

The 2 KB on-chip FIFO supports headerless mode (same ODR for all sensors) and header mode (different ODRs). Header mode includes regular frames, skip frames, sensortime frames, and FIFO input config frames. Watermark and full interrupts are available for efficient DMA-style data retrieval.

Offset and Sensitivity Compensation

  • Accelerometer offset: Fast offset compensation (FOC) can be triggered via CMD register. User offsets stored in OFFSET_0 to OFFSET_2.
  • Gyroscope offset: FOC compensates zero-rate offset. User offsets stored in OFFSET_3 to OFFSET_6.
  • Gyroscope sensitivity (CRT): Component Retrimming reduces sensitivity error from +/-2% down to typ. +/-0.4% by running a built-in self-calibration routine.

Applications

  • Fitness trackers, wristbands, and smart watches
  • Earbuds and hearables (ankle bands, neck bands)
  • Smart clothing and wearable textiles
  • Augmented reality (AR) and virtual reality (VR) glasses and controllers
  • Activity and context recognition systems
  • Optical image stabilization (OIS) for wearable cameras
  • Indoor navigation and dead reckoning
  • Gesture-based user interfaces

Key Formulas

Accelerometer Data Conversion

acceleration_mg = raw_value / sensitivity_LSBperg * 1000

Where sensitivity is 16384 LSB/g (+/-2g), 8192 LSB/g (+/-4g), 4096 LSB/g (+/-8g), or 2048 LSB/g (+/-16g).

Gyroscope Data Conversion

angular_rate_dps = raw_value / sensitivity_LSBperdps

Where sensitivity is 262.144 LSB/dps (+/-125 dps), 131.072 (+/-250), 65.536 (+/-500), 32.768 (+/-1000), or 16.384 (+/-2000 dps).

Temperature Conversion

temperature_degC = (raw_value / 512) + 23

I2C Address Selection

I2C_address = 0x68 (SDO pin = GND, default)
I2C_address = 0x69 (SDO pin = VDDIO)

Sensortime to Seconds

time_seconds = sensortime_raw * 39.0625e-6

The 24-bit sensortime counter increments at 25.6 kHz (39.0625 us resolution).

Diagrams & Graphs (14)

**Source:** [Bosch Sensortec Datasheet (BST-BMI270-DS000-07)](https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmi270-ds000.pdf)
**Manufacturer:** Bosch Sensortec
**Part Number:** BMI270
**Document:** BST-BMI270-DS000-07 — Rev 1.5, March 2023

## Description

The BMI270 is a highly integrated, ultra-low power inertial measurement unit (IMU) optimized for wearable applications. It combines precise acceleration and angular rate (gyroscopic) measurement with intelligent on-chip motion-triggered interrupt features. The device integrates a 16-bit digital triaxial accelerometer and a 16-bit digital triaxial gyroscope in a compact 2.5 x 3.0 mm LGA package. The BMI270 includes dedicated wearable gesture recognition features such as wrist wear wakeup, step counting, activity recognition, wrist gestures (flick in/out, push arm down, pivot up, wrist jiggle), and significant motion detection. It supports I2C (Fast-mode Plus) and SPI (up to 10 MHz) primary interfaces, an auxiliary I2C master interface for connecting external sensors like magnetometers, and an OIS SPI slave interface for camera optical image stabilization with up to 6.4 kHz ODR and sub-millisecond group delay. A built-in 2 KB FIFO buffer, hardware-synchronized sensor timestamps, and a comprehensive power management unit enable efficient battery-powered system designs.

## Key Specifications

| Parameter | Value |
| --- | --- |
| Supply Voltage (VDD) | 1.71V to 3.6V |
| I/O Supply Voltage (VDDIO) | 1.2V to 3.6V |
| Accelerometer Range | +/-2g, +/-4g, +/-8g, +/-16g |
| Gyroscope Range | +/-125, +/-250, +/-500, +/-1000, +/-2000 dps |
| Accelerometer ODR | 0.78 Hz to 1600 Hz |
| Gyroscope ODR | 25 Hz to 6400 Hz |
| Resolution | 16-bit (accel and gyro) |
| Current (Full ODR, Normal) | 685 uA typ |
| Current (A+G Suspend) | 3.5 uA typ |
| Current (Accel-only LP, 25 Hz) | 210 uA typ |
| Gyro Noise Density (Perf.) | 0.007 dps/sqrt(Hz) |
| Accel Noise Density | 0.16 mg/sqrt(Hz) |
| FIFO | 2 KB |
| Gyro Startup (Fast) | 2 ms |
| Interface | I2C (Fm+), SPI (10 MHz) |
| Package | LGA-14, 2.5 x 3.0 x 0.83 mm |
| Operating Temperature | -40 to +85 degC |
| Chip ID | 0x24 |

## Features

- 16-bit triaxial accelerometer with +/-2g/+/-4g/+/-8g/+/-16g selectable range
- 16-bit triaxial gyroscope with +/-125 to +/-2000 dps selectable range
- Ultra-low power consumption: 685 uA typical in full ODR normal mode
- Performance mode for gyroscope with noise as low as 0.007 dps/sqrt(Hz)
- Rapid gyroscope startup: 2 ms in fast-start mode
- Built-in power management unit (PMU) with advanced low-power modes
- 2 KB on-chip FIFO buffer for accel, gyro, timestamps, and auxiliary sensor data
- Hardware synchronization of accelerometer, gyroscope, and auxiliary sensor (< 1 us)
- Sensortime stamps for accurate host/sensor time synchronization (< 40 us)
- I2C Fast-mode Plus master interface hub for 1 auxiliary sensor (e.g., magnetometer)
- 10 MHz SPI slave OIS interface for camera stabilization with up to 6.4 kHz ODR
- Programmable low-pass filters: accel BW 5.5 to 740 Hz, gyro BW 11 to 751 Hz
- Fast offset and sensitivity error compensation (CRT reduces gyro error to typ. 0.4%)
- Wrist wear wakeup gesture detection
- Step counter and step detector (wrist-worn optimized)
- Activity and activity change recognition
- Significant motion, any-motion, and no-motion detection
- Wrist navigation gestures: flick in/out, push arm down, pivot up, wrist jiggle
- 2 independent programmable interrupt output pins
- RoHS compliant, halogen-free, lead-free

## Pin Configuration

| Pin | Name | Type | Description |
| --- | --- | --- | --- |
| 1 | SDO | Digital I/O | SPI serial data output (4-wire); I2C address bit-0 select |
| 2 | ASDx | Digital I/O | Secondary interface: Aux I2C SDA / OIS SPI SDI |
| 3 | ASCx | Digital I/O | Secondary interface: Aux I2C SCL / OIS SPI SCK |
| 4 | INT1 | Digital I/O | Interrupt output pin 1 (configurable) |
| 5 | VDDIO | Supply | Digital I/O supply voltage (1.2V to 3.6V) |
| 6 | GNDIO | Supply | Ground for digital I/O |
| 7 | GND | Supply | Ground for analog and digital core |
| 8 | VDD | Supply | Power supply for analog and digital core (1.71V to 3.6V) |
| 9 | INT2 | Digital I/O | Interrupt output pin 2 (configurable) |
| 10 | OCSB | Digital In | OIS SPI chip select (active low) |
| 11 | OSDO | Digital Out | OIS SPI serial data output |
| 12 | CSB | Digital In | SPI chip select (active low); I2C mode select |
| 13 | SCx | Digital In | SPI serial clock (SCK) / I2C serial clock (SCL) |
| 14 | SDx | Digital I/O | SPI serial data input (SDI) / I2C serial data (SDA) |

## Absolute Maximum Ratings

| Parameter | Condition | Min | Max | Unit |
| --- | --- | --- | --- | --- |
| Supply Voltage (VDD) | VDD Pin | -0.3 | 4 | V |
| Supply Voltage (VDDIO) | VDDIO Pin | -0.3 | 4 | V |
| Voltage at Logic Pin | Non-Supply Pin | -0.3 | VDDIO+0.3, <4 | V |
| Storage Temperature | <= 65% rel. humidity | -50 | +150 | degC |
| NVM Data Retention | T=85 degC, after 15 cycles | 10 | — | years |
| Mechanical Shock | Duration <= 200 us | — | 20,000 | g |
| Mechanical Shock | Duration <= 1.0 ms | — | 2,000 | g |
| Free Fall | Onto hard surfaces | — | 1.8 | m |
| ESD (HBM) | Any pin | — | 2 | kV |
| ESD (CDM) | — | — | 500 | V |
| ESD (MM) | JESD22A115C | — | 200 | V |

## Electrical Characteristics

### Accelerometer

| Parameter | Condition | Min | Typ | Max | Unit |
| --- | --- | --- | --- | --- | --- |
| Sensitivity (+/-2g) | TA=25 degC | — | 16384 | — | LSB/g |
| Sensitivity (+/-4g) | TA=25 degC | — | 8192 | — | LSB/g |
| Sensitivity (+/-8g) | TA=25 degC | — | 4096 | — | LSB/g |
| Sensitivity (+/-16g) | TA=25 degC | — | 2048 | — | LSB/g |
| Sensitivity Error | TA=25 degC, nominal VDD | — | — | +/-0.4 | % |
| Sensitivity Temp. Drift | Full TA range | — | 0.004 | — | %/K |
| Zero-g Offset | Soldered, over lifetime | — | — | +/-20 | mg |
| Zero-g Offset Temp. Drift | Full TA range | — | — | +/-0.25 | mg/K |
| Noise Density (Normal) | TA=25 degC, 8g range | — | 0.16 | — | mg/sqrt(Hz) |
| Noise RMS | BW=80 Hz, ODR=200 Hz, 8g | — | 1.51 | — | mg-rms |
| Nonlinearity | +/-2g range | — | 0.5 | — | %FS |
| ODR (Normal Mode) | — | 12.5 | — | 1600 | Hz |
| ODR (Low Power Mode) | — | 0.78 | — | 400 | Hz |
| Cross-Axis Sensitivity | Any two axes | — | 1 | — | % |
| Alignment Error | Relative to package | — | 0.5 | — | deg |
| Startup Time | Suspend to normal | — | 2 | — | ms |

### Gyroscope

| Parameter | Condition | Min | Typ | Max | Unit |
| --- | --- | --- | --- | --- | --- |
| Sensitivity (+/-2000 dps) | TA=25 degC | — | 16.384 | — | LSB/dps |
| Sensitivity (+/-1000 dps) | TA=25 degC | — | 32.768 | — | LSB/dps |
| Sensitivity (+/-500 dps) | TA=25 degC | — | 65.536 | — | LSB/dps |
| Sensitivity (+/-250 dps) | TA=25 degC | — | 131.072 | — | LSB/dps |
| Sensitivity (+/-125 dps) | TA=25 degC | — | 262.144 | — | LSB/dps |
| Sensitivity Error | TA=25 degC, nominal VDD | — | — | +/-2 | % |
| Sensitivity Error (after CRT) | TA=25 degC, after CRT | — | — | +/-0.4 | % |
| Sensitivity Temp. Drift | Full TA range | — | 0.02 | — | %/K |
| Zero-Rate Offset | Soldered, over lifetime | — | — | +/-0.5 | dps |
| Zero-Rate Offset Temp. Drift | Nominal VDD | — | — | +/-0.015 | dps/K |
| Noise Density (Performance) | TA=25 degC | — | 0.007 | — | dps/sqrt(Hz) |
| Noise Density (Normal) | TA=25 degC | — | 0.010 | — | dps/sqrt(Hz) |
| Noise RMS (Performance) | BW=74.6 Hz, ODR=200 Hz | — | 0.07 | — | dps-rms |
| Noise RMS (Normal) | BW=74.6 Hz, ODR=200 Hz | — | 0.09 | — | dps-rms |
| Nonlinearity | +/-250, +/-2000 dps | — | 0.01 | — | %FS |
| ODR (Normal/Performance) | — | 25 | — | 6400 | Hz |
| ODR (Low Power) | — | 25 | — | 100 | Hz |
| Cross-Axis Sensitivity | Any two axes | — | 0.2 | — | % |
| Alignment Error | Relative to package | — | 0.5 | — | deg |
| g-Sensitivity | Static acceleration | — | 0.1 | — | dps/g |
| Startup Time (Normal) | Suspend to normal | — | 45 | — | ms |
| Startup Time (Fast) | Fast start mode | — | 2 | — | ms |

### Temperature Sensor

| Parameter | Condition | Min | Typ | Max | Unit |
| --- | --- | --- | --- | --- | --- |
| ADC Resolution | — | — | 16 | — | bits |
| Measurement Range | — | -41 | — | 87 | degC |
| Output at 23 degC | — | — | 0 | — | LSB |
| Sensitivity | — | — | 512 | — | LSB/K |

## Power Consumption

| Mode | Condition | Typ | Unit |
| --- | --- | --- | --- |
| A+G Performance Mode | VDD=1.8V, TA=25 degC, ODRmax | 970 | uA |
| A+G Normal Mode | VDD=1.8V, TA=25 degC, ODRmax | 685 | uA |
| A+G Low Power Mode | VDD=1.8V, TA=25 degC, ODR 25 Hz | 420 | uA |
| Accel-only Normal Mode | VDD=1.8V, TA=25 degC, ODRmax | 210 | uA |
| Accel-only Low Power Mode | VDD=1.8V, TA=25 degC, ODR 25 Hz | — | uA |
| A+G Suspend Mode | VDD=1.8V, TA=25 degC | 3.5 | uA |
| Power-On Time | Supply on to I/F operational | 2 | ms |

## Communication Interface

### Primary Interface

The BMI270 supports I2C Fast-mode Plus and SPI (3-wire and 4-wire) as primary host interface. Protocol is auto-selected based on CSB pin state after power-up: if CSB is held at VDDIO, I2C mode is used; a rising edge on CSB switches to SPI mode.

| Parameter | Condition | Min | Typ | Max | Unit |
| --- | --- | --- | --- | --- | --- |
| SPI Clock Frequency | VDDIO >= 1.62V | — | — | 10 | MHz |
| I2C Address (SDO=GND) | Default | — | 0x68 | — | — |
| I2C Address (SDO=VDDIO) | Alternate | — | 0x69 | — | — |
| CSB Internal Pull-Up | To VDDIO | 75 | 100 | 140 | kOhm |
| Input Capacitance | — | — | 5 | — | pF |
| I2C Bus Load Capacitance | Max drive capability | — | 400 | — | pF |

### Secondary Interface

The secondary interface can operate as either an I2C master (auxiliary interface) for connecting an external sensor (e.g., BMM150 magnetometer for 9-DOF), or an SPI slave (OIS interface) for camera optical image stabilization. Only one mode can be active at a time.

### OIS Interface

Provides pre-filtered gyroscope data at 6.4 kHz ODR and accelerometer data at 1.6 kHz ODR with minimum latency (group delay down to 680 us). Supports configurable low-pass filters with programmable cutoff frequencies. Available in SPI 3-wire and 4-wire modes.

## Packages

| Package | Pins | Body Size | Height |
| --- | --- | --- | --- |
| LGA | 14 | 2.5 mm x 3.0 mm | 0.83 mm (typ) |

### Package Dimensions

| Reference | Min | Nom | Max | Unit |
| --- | --- | --- | --- | --- |
| A (height) | 0.79 | 0.83 | 0.87 | mm |
| A1 | 0.11 | 0.13 | 0.15 | mm |
| A2 | 0.68 | 0.70 | 0.72 | mm |
| D (length) | 2.95 | 3.00 | 3.05 | mm |
| E (width) | 2.45 | 2.50 | 2.55 | mm |
| D1 | — | 1.00 BSC | — | mm |
| e (pitch) | — | 0.50 BSC | — | mm |
| L1 | 0.074 | 0.100 | — | mm |

## Software API

### Initialization Sequence

1. After power-up, read CHIP_ID register (0x00) to verify communication. Expected value: **0x24**. For SPI, perform a dummy read first to switch the interface from default I2C to SPI mode.
2. Disable advanced power save: write `0x00` to PWR_CONF (0x7C), wait >= 450 us.
3. Prepare config load: write `0x00` to INIT_CTRL (0x59).
4. Burst-write the configuration file to INIT_DATA (0x5E). The config file is available at the [Bosch BMI270 Sensor API GitHub repository](https://github.com/BoschSensortec/BMI270-Sensor-API).
5. Complete config load: write `0x01` to INIT_CTRL (0x59).
6. Wait >= 20 ms, then read INTERNAL_STATUS (0x21). Bit 0 = 1 indicates successful initialization.

### Key Registers

| Address | Name | Description |
| --- | --- | --- |
| 0x00 | CHIP_ID | Chip identification (reads 0x24) |
| 0x02 | ERR_REG | Error status register |
| 0x03 | STATUS | Sensor status flags |
| 0x04-0x17 | DATA_0..19 | Aux, accel, gyro sensor data |
| 0x18-0x1A | SENSORTIME | 24-bit sensor timestamp |
| 0x1C-0x1D | INT_STATUS | Interrupt status |
| 0x1E-0x1F | SC_OUT | Step counter output |
| 0x21 | INTERNAL_STATUS | Init status and error codes |
| 0x22-0x23 | TEMPERATURE | Temperature sensor data |
| 0x24-0x25 | FIFO_LENGTH | Current FIFO fill level |
| 0x26 | FIFO_DATA | FIFO data output |
| 0x40 | ACC_CONF | Accelerometer configuration (ODR, BW, filter) |
| 0x41 | ACC_RANGE | Accelerometer range selection |
| 0x42 | GYR_CONF | Gyroscope configuration (ODR, BW, filter, noise) |
| 0x43 | GYR_RANGE | Gyroscope range selection |
| 0x53 | INT1_IO_CTRL | INT1 pin electrical behavior |
| 0x54 | INT2_IO_CTRL | INT2 pin electrical behavior |
| 0x56-0x57 | INT1/2_MAP_FEAT | Feature interrupt mapping |
| 0x58 | INT_MAP_DATA | Data ready / FIFO interrupt mapping |
| 0x59 | INIT_CTRL | Config file load control |
| 0x7C | PWR_CONF | Power configuration (adv. power save, FIFO self-wake) |
| 0x7D | PWR_CTRL | Sensor enable control (accel, gyro, aux, temp) |
| 0x7E | CMD | Command register (soft reset, NVM prog, FIFO flush) |

### FIFO

The 2 KB on-chip FIFO supports headerless mode (same ODR for all sensors) and header mode (different ODRs). Header mode includes regular frames, skip frames, sensortime frames, and FIFO input config frames. Watermark and full interrupts are available for efficient DMA-style data retrieval.

### Offset and Sensitivity Compensation

- **Accelerometer offset**: Fast offset compensation (FOC) can be triggered via CMD register. User offsets stored in OFFSET_0 to OFFSET_2.
- **Gyroscope offset**: FOC compensates zero-rate offset. User offsets stored in OFFSET_3 to OFFSET_6.
- **Gyroscope sensitivity (CRT)**: Component Retrimming reduces sensitivity error from +/-2% down to typ. +/-0.4% by running a built-in self-calibration routine.

## Applications

- Fitness trackers, wristbands, and smart watches
- Earbuds and hearables (ankle bands, neck bands)
- Smart clothing and wearable textiles
- Augmented reality (AR) and virtual reality (VR) glasses and controllers
- Activity and context recognition systems
- Optical image stabilization (OIS) for wearable cameras
- Indoor navigation and dead reckoning
- Gesture-based user interfaces

## Key Formulas

### Accelerometer Data Conversion
```
acceleration_mg = raw_value / sensitivity_LSBperg * 1000
```
Where sensitivity is 16384 LSB/g (+/-2g), 8192 LSB/g (+/-4g), 4096 LSB/g (+/-8g), or 2048 LSB/g (+/-16g).

### Gyroscope Data Conversion
```
angular_rate_dps = raw_value / sensitivity_LSBperdps
```
Where sensitivity is 262.144 LSB/dps (+/-125 dps), 131.072 (+/-250), 65.536 (+/-500), 32.768 (+/-1000), or 16.384 (+/-2000 dps).

### Temperature Conversion
```
temperature_degC = (raw_value / 512) + 23
```

### I2C Address Selection
```
I2C_address = 0x68 (SDO pin = GND, default)
I2C_address = 0x69 (SDO pin = VDDIO)
```

### Sensortime to Seconds
```
time_seconds = sensortime_raw * 39.0625e-6
```
The 24-bit sensortime counter increments at 25.6 kHz (39.0625 us resolution).

Sub-Skills
?
What are Sub-Skills?

Sub-skills are community-contributed AI skill extensions for this component. They teach AI assistants about specific tools, configurators, or workflows.

Examples:

  • A manufacturer’s configuration tool for a motor controller
  • A community-written design guide for an amplifier circuit
  • An automated test/validation script for a sensor module

How to add one: Click Add Sub-Skill, provide the URL to your skill and a brief description. Submissions are reviewed by the Adom team before going live.

No sub-skills yet. Be the first to contribute one!