Features:
- Integrated Sensor: 3-axis accelerometer + 3-axis gyroscope in a single chip
- Low Power Consumption:
- Built-in Step Counter: Smart algorithm for step detection via register access
- Multiple Measurement Ranges:
- Accelerometer: ±2g, ±4g, ±8g, ±16g
- Gyroscope: ±125°/s, ±250°/s, ±500°/s, ±1000°/s, ±2000°/s
- Programmable Output Rate: 25/32Hz to 1600Hz
- Data Output: 16-bit resolution
- FIFO Buffer: Built-in 1024-byte FIFO for efficient data access
- Interrupts: 2 programmable interrupt generators
- Voltage Compatibility: Works with 3.3V and 5V logic levels
- Interface: I2C or SPI (2.54mm header)
- Smart Power Management: Built-in LDO regulator supports VIN 3.2V–6V
Specifications:
Parameter |
Value |
Supply Voltage |
3.2V to 6V (VIN), 3.3V logic level supported |
Current Consumption |
<1 mA typical |
Accelerometer Range |
±2g, ±4g, ±8g, ±16g |
Gyroscope Range |
±125°/s to ±2000°/s |
Zero Drift (Accel) |
±40 mg |
Zero Drift (Gyro) |
±10°/s |
Data Resolution |
16-bit output |
Sampling Frequency |
25/32Hz to 1600Hz (programmable) |
Interface |
I2C/SPI, 2.54 mm pitch |
Shock Resistance |
10,000 g for 200 μs |
FIFO Buffer |
1024 bytes |
Operating Temperature |
-40°C to +85°C |
Pinout:
Pin |
Description |
VIN |
Main power supply input (3.2V–6V) |
3.3V |
Optional regulated 3.3V input |
GND |
Ground |
SCL |
I2C/SPI clock |
SDA |
I2C data or SPI MOSI |
SDO |
SPI MISO or I2C address select |
CS |
Chip select for SPI |
INT1 |
Interrupt pin 1 |
INT2 |
Interrupt pin 2 |
Applications:
- Step counting and pedometers
- Fitness tracking and wearables
- Motion and tilt detection
- Screen orientation control
- Gaming and gesture control
- Portable and mobile electronics
Typical Arduino Connection (I2C):
- VIN → 5V
- GND → GND
- SDA → A4
- SCL → A5
Library Support:
The BMI160 module is supported by libraries such as Adafruit_BMI160 and Seeed_BMI160. These can be installed via the Arduino Library Manager.
Sample Arduino Code (I2C):
#include <Wire.h>
#include <Seeed_BMI160.h>
BMI160 bmi160;
void setup() {
Serial.begin(115200);
if (bmi160.initialize() != BMI160_OK) {
Serial.println("BMI160 init failed!");
while (1);
}
Serial.println("BMI160 initialized");
}
void loop() {
bmi160.getMotion6();
Serial.print("Accel: ");
Serial.print(bmi160.ax); Serial.print(" ");
Serial.print(bmi160.ay); Serial.print(" ");
Serial.print(bmi160.az); Serial.print(" | Gyro: ");
Serial.print(bmi160.gx); Serial.print(" ");
Serial.print(bmi160.gy); Serial.print(" ");
Serial.println(bmi160.gz);
delay(500);
}
Features:
- Integrated Sensor: 3-axis accelerometer + 3-axis gyroscope in a single chip
- Low Power Consumption:
- Built-in Step Counter: Smart algorithm for step detection via register access
- Multiple Measurement Ranges:
- Accelerometer: ±2g, ±4g, ±8g, ±16g
- Gyroscope: ±125°/s, ±250°/s, ±500°/s, ±1000°/s, ±2000°/s
- Programmable Output Rate: 25/32Hz to 1600Hz
- Data Output: 16-bit resolution
- FIFO Buffer: Built-in 1024-byte FIFO for efficient data access
- Interrupts: 2 programmable interrupt generators
- Voltage Compatibility: Works with 3.3V and 5V logic levels
- Interface: I2C or SPI (2.54mm header)
- Smart Power Management: Built-in LDO regulator supports VIN 3.2V–6V
Specifications:
Parameter |
Value |
Supply Voltage |
3.2V to 6V (VIN), 3.3V logic level supported |
Current Consumption |
<1 mA typical |
Accelerometer Range |
±2g, ±4g, ±8g, ±16g |
Gyroscope Range |
±125°/s to ±2000°/s |
Zero Drift (Accel) |
±40 mg |
Zero Drift (Gyro) |
±10°/s |
Data Resolution |
16-bit output |
Sampling Frequency |
25/32Hz to 1600Hz (programmable) |
Interface |
I2C/SPI, 2.54 mm pitch |
Shock Resistance |
10,000 g for 200 μs |
FIFO Buffer |
1024 bytes |
Operating Temperature |
-40°C to +85°C |
Pinout:
Pin |
Description |
VIN |
Main power supply input (3.2V–6V) |
3.3V |
Optional regulated 3.3V input |
GND |
Ground |
SCL |
I2C/SPI clock |
SDA |
I2C data or SPI MOSI |
SDO |
SPI MISO or I2C address select |
CS |
Chip select for SPI |
INT1 |
Interrupt pin 1 |
INT2 |
Interrupt pin 2 |
Applications:
- Step counting and pedometers
- Fitness tracking and wearables
- Motion and tilt detection
- Screen orientation control
- Gaming and gesture control
- Portable and mobile electronics
Typical Arduino Connection (I2C):
- VIN → 5V
- GND → GND
- SDA → A4
- SCL → A5
Library Support:
The BMI160 module is supported by libraries such as Adafruit_BMI160 and Seeed_BMI160. These can be installed via the Arduino Library Manager.
Sample Arduino Code (I2C):
#include <Wire.h>
#include <Seeed_BMI160.h>
BMI160 bmi160;
void setup() {
Serial.begin(115200);
if (bmi160.initialize() != BMI160_OK) {
Serial.println("BMI160 init failed!");
while (1);
}
Serial.println("BMI160 initialized");
}
void loop() {
bmi160.getMotion6();
Serial.print("Accel: ");
Serial.print(bmi160.ax); Serial.print(" ");
Serial.print(bmi160.ay); Serial.print(" ");
Serial.print(bmi160.az); Serial.print(" | Gyro: ");
Serial.print(bmi160.gx); Serial.print(" ");
Serial.print(bmi160.gy); Serial.print(" ");
Serial.println(bmi160.gz);
delay(500);
}