BMA400 Accelerometer Module
BMA400 3-axis digital accelerometer module based on the Bosch Sensortec BMA400 sensor, with ultra-low-power operation, I2C and SPI communication, selectable ±2g to ±16g ranges and built-in motion features.
Specifications
| Sensor Type | 3-Axis Accelerometer |
|---|---|
| Resolution | 12-bit |
| Accelerometer Range | ±2g / ±4g / ±8g / ±16g |
| Interface | I2C / SPI |
| I2C Address | 0x14 / 0x15 |
| Output Data Rate | 12.5 Hz to 800 Hz |
| Supply Voltage | 1.71V to 3.6V |
| I/O Voltage | 1.2V to 3.6V |
| Interrupts | 2 Programmable Interrupts |
| FIFO | 1 KB |
| Step Counter | Integrated |
| Activity Recognition | Walking / Running / Standing Still |
| Orientation Detection | Integrated |
| Tap Detection | Single / Double Tap |
| Operating Temperature | -40°C to +85°C |
Some links on this page are affiliate links. If you purchase through them, Embedded Nerd may earn a small commission at no additional cost to you. This helps support the website and allows us to continue creating free tutorials and guides. Thank you for your support!
Resources
Used in these tutorials
The BMA400 Accelerometer Module is a compact breakout based on the Bosch Sensortec BMA400 ultra-low-power 3-axis accelerometer.
The BMA400 measures acceleration along the X, Y and Z axes and supports selectable measurement ranges from ±2g to ±16g with 12-bit digital resolution.
It supports both I2C and SPI, making it suitable for Arduino, ESP32 and other embedded systems.
The sensor also includes several built-in motion features, including motion detection, orientation detection, tap and double-tap detection, step counting and activity recognition.
This makes the BMA400 particularly interesting for battery-powered projects where an accelerometer needs to remain active while consuming very little power.
Key Features
- 3-axis accelerometer
- 12-bit resolution
- ±2g / ±4g / ±8g / ±16g selectable ranges
- I2C and SPI communication
- Ultra-low-power operation
- Motion detection
- Orientation detection
- Single and double-tap detection
- Integrated step counter
- Activity recognition
- Programmable interrupts
- 1 KB FIFO
- Automatic wake-up functionality
- -40°C to +85°C operating temperature
The underlying BMA400 sensor is designed specifically for low-power applications such as wearables, IoT devices and continuously active battery-powered systems. :contentReference[oaicite:1]{index=1}
BMA400 with ESP32
The BMA400 is a particularly good match for the ESP32.
Using I2C, only SDA and SCL are required for communication, together with power and ground.
A typical ESP32 project can use:
- ESP32 GPIO21 → SDA
- ESP32 GPIO22 → SCL
- 3.3V → VCC
- GND → GND
The exact wiring depends on the breakout board used, so always check the module’s pinout before connecting it.
Our BMA400 ESP32 Tutorial provides a complete wiring guide and Arduino example.
Low-Power Motion Sensing
One of the main advantages of the BMA400 is its extremely low power consumption.
This allows the accelerometer to remain active in applications where battery life is important.
The BMA400 can detect motion and generate an interrupt without requiring the ESP32 to continuously poll the sensor.
This makes it useful for:
- Battery-powered IoT devices
- Wearables
- Security sensors
- Motion detectors
- Portable electronics
- Wake-on-motion projects
Built-In Motion Features
The BMA400 provides several motion-related features directly in the sensor.
These include:
- Motion detection
- Orientation detection
- Single-tap detection
- Double-tap detection
- Step counting
- Activity recognition
Activity recognition can distinguish between walking, running and standing still.
This allows an application to perform higher-level motion detection without implementing every algorithm on the ESP32.
Step Counter
The integrated step counter makes the BMA400 particularly interesting for wearable and activity-tracking projects.
The sensor can perform step detection internally and provide the resulting information to the host microcontroller.
This can reduce both processing requirements and power consumption.
I2C Communication
The BMA400 supports I2C communication and can use either:
0x140x15
The exact address depends on the hardware configuration.
Because I2C supports multiple devices on the same bus, the BMA400 can share the ESP32’s SDA and SCL lines with devices such as an SSD1306 OLED.
Our I2C Scanner Tutorial explains how to identify I2C devices and their addresses.
BMA400 vs MPU6050
The BMA400 and MPU6050 are useful for different types of projects.
The BMA400 provides:
- 3-axis acceleration
- Ultra-low-power operation
- Motion detection
- Orientation detection
- Tap detection
- Step counting
- Activity recognition
The MPU6050 combines:
- 3-axis acceleration
- 3-axis gyroscope
If your project needs rotational measurements, the MPU6050 is the better choice.
If you need a low-power accelerometer with built-in motion features, the BMA400 is an attractive alternative.
See our MPU6050 Accelerometer & Gyroscope product page for comparison.
Arduino and ESP32 Compatibility
The BMA400 can be used with Arduino and ESP32 boards through I2C or SPI.
For an ESP32, I2C is generally the easiest interface for a first project.
The SparkFun BMA400 Arduino Library provides support for configuring the sensor and reading acceleration data.
Our BMA400 ESP32 Tutorial provides a practical example.
OLED Projects
The BMA400 can be combined with an SSD1306 OLED to create a compact motion monitor.
For example, an ESP32 can display:
- X acceleration
- Y acceleration
- Z acceleration
- Orientation
- Motion status
- Step count
The BMA400 and OLED can share the same I2C bus when their addresses do not conflict.
See our ESP32 OLED Tutorial – Wiring, Code & Display Guide for the OLED side of the project.
Applications
The BMA400 module is suitable for projects such as:
- ESP32 motion detectors
- Tilt sensors
- Wearable electronics
- Step counters
- Activity trackers
- Motion-controlled interfaces
- Battery-powered IoT devices
- Wake-on-motion systems
- Security sensors
- OLED motion displays
- Robotics projects
Related Tutorials
- BMA400 ESP32 Tutorial
- MPU6050 Arduino Guide
- I2C Scanner Tutorial
- ESP32 OLED Tutorial – Wiring, Code & Display Guide
Buy the BMA400 Module
If you are looking for an inexpensive BMA400 breakout for an ESP32 or Arduino project, you can check the module used as the recommended hardware for this guide.
Check the BMA400 Accelerometer Module on AliExpress
This page contains an affiliate link. Embedded Nerd may earn a commission from qualifying purchases at no additional cost to you.