Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use I2C BMI160: Examples, Pinouts, and Specs

Image of I2C BMI160
Cirkit Designer LogoDesign with I2C BMI160 in Cirkit Designer

Introduction

The I2C BMI160 is a state-of-the-art 6-Axis Inertial Motion Sensor that combines a 3-axis accelerometer and a 3-axis gyroscope into a single package. Manufactured by DFRobot, this sensor is designed for motion tracking in a wide array of applications including robotics, drones, wearable devices, and gaming. Its small form factor and low power consumption make it ideal for battery-powered or space-constrained devices.

Explore Projects Built with I2C BMI160

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino UNO Weather Station with BME280 Sensor
Image of UNO_MBE280: A project utilizing I2C BMI160 in a practical application
This circuit uses an Arduino UNO to read temperature, pressure, and humidity data from a BME/BMP280 sensor via I2C communication. The sensor is powered by the Arduino's 5V and GND pins, and the data is printed to the Serial Monitor.
Cirkit Designer LogoOpen Project in Cirkit Designer
SparkFun Pro Micro Based Motion Tracking System with BMI160 and EEPROM Data Logging
Image of Basic Arduino Sparkfun Pro Micro + BMI160: A project utilizing I2C BMI160 in a practical application
This circuit is designed for motion sensing and data logging applications. It features a SparkFun Pro Micro microcontroller interfaced with a BMI160 6DOF sensor for motion detection and two 24LC512 EEPROM chips for extended data storage. The microcontroller reads gyroscopic and accelerometer data from the BMI160 sensor, processes it, and stores it in the EEPROM, with power supplied by a Polymer Lithium Ion Battery.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP-8266 Based Environmental Monitoring System
Image of PHD: A project utilizing I2C BMI160 in a practical application
This circuit features an ESP-8266 microcontroller connected to a BMP180 barometric pressure sensor, a BH1750 light intensity sensor, and a DHT22 temperature and humidity sensor. The ESP-8266 uses its I2C interface, with pins D1 and D2 connected to the SCL and SDA lines of both the BMP180 and BH1750, to communicate with the sensors. The DHT22 sensor is connected to a digital pin (D4) for direct signal reading, and all sensors share common power (3V3) and ground (GND) connections with the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Weather Station with MPU-6050 and BMP280 Sensors
Image of LAB Ubicomp: A project utilizing I2C BMI160 in a practical application
This circuit integrates an MPU-6050 accelerometer and gyroscope sensor and a BMP280 barometric pressure sensor with an ESP32 microcontroller. The ESP32 reads data from both sensors via I2C communication to potentially monitor environmental conditions and motion.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with I2C BMI160

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of UNO_MBE280: A project utilizing I2C BMI160 in a practical application
Arduino UNO Weather Station with BME280 Sensor
This circuit uses an Arduino UNO to read temperature, pressure, and humidity data from a BME/BMP280 sensor via I2C communication. The sensor is powered by the Arduino's 5V and GND pins, and the data is printed to the Serial Monitor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Basic Arduino Sparkfun Pro Micro + BMI160: A project utilizing I2C BMI160 in a practical application
SparkFun Pro Micro Based Motion Tracking System with BMI160 and EEPROM Data Logging
This circuit is designed for motion sensing and data logging applications. It features a SparkFun Pro Micro microcontroller interfaced with a BMI160 6DOF sensor for motion detection and two 24LC512 EEPROM chips for extended data storage. The microcontroller reads gyroscopic and accelerometer data from the BMI160 sensor, processes it, and stores it in the EEPROM, with power supplied by a Polymer Lithium Ion Battery.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of PHD: A project utilizing I2C BMI160 in a practical application
ESP-8266 Based Environmental Monitoring System
This circuit features an ESP-8266 microcontroller connected to a BMP180 barometric pressure sensor, a BH1750 light intensity sensor, and a DHT22 temperature and humidity sensor. The ESP-8266 uses its I2C interface, with pins D1 and D2 connected to the SCL and SDA lines of both the BMP180 and BH1750, to communicate with the sensors. The DHT22 sensor is connected to a digital pin (D4) for direct signal reading, and all sensors share common power (3V3) and ground (GND) connections with the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of LAB Ubicomp: A project utilizing I2C BMI160 in a practical application
ESP32-Based Weather Station with MPU-6050 and BMP280 Sensors
This circuit integrates an MPU-6050 accelerometer and gyroscope sensor and a BMP280 barometric pressure sensor with an ESP32 microcontroller. The ESP32 reads data from both sensors via I2C communication to potentially monitor environmental conditions and motion.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

Key Features

  • Accelerometer: 3-axis, ±2g/±4g/±8g/±16g selectable
  • Gyroscope: 3-axis, ±125°/s to ±2000°/s selectable
  • Interface: I2C (up to 3.4 MHz)
  • Supply Voltage (VDD): 2.4V to 3.6V
  • Input Voltage (VDDIO): 1.2V to 3.6V
  • Current Consumption: 950 μA (full operation)
  • Temperature Range: -40°C to +85°C
  • Sensitivity (configurable):
    • Accelerometer: 16384 LSB/g @ ±2g to 2048 LSB/g @ ±16g
    • Gyroscope: 16.4 LSB/°/s @ ±125°/s to 131 LSB/°/s @ ±2000°/s

Pin Configuration and Descriptions

Pin Number Name Description
1 VDD Power supply voltage (2.4V to 3.6V)
2 GND Ground reference for power supply
3 SCL I2C clock line
4 SDA I2C data line
5 INT1 Interrupt output 1 (configurable)
6 INT2 Interrupt output 2 (configurable)
7 CS Chip select for SPI interface (not used for I2C)
8 AD0/SDO I2C address selection or SPI data output

Usage Instructions

Integration into a Circuit

To use the I2C BMI160 sensor in a circuit:

  1. Connect VDD to a 2.4V to 3.6V power supply.
  2. Connect GND to the ground of the power supply.
  3. Connect SCL and SDA to the I2C clock and data lines, respectively.
  4. Optionally, connect INT1 and INT2 to microcontroller pins if interrupt features are needed.

Best Practices

  • Use pull-up resistors on the SCL and SDA lines, typically 4.7kΩ to 10kΩ.
  • Keep the I2C lines as short as possible to reduce noise and improve communication reliability.
  • Ensure that the power supply is stable and within the specified voltage range.
  • If multiple I2C devices are on the same bus, ensure that each device has a unique address.

Arduino UNO Example Code

#include <Wire.h>

// BMI160 I2C address (check AD0/SDO pin for address configuration)
const int BMI160_I2C_ADDR = 0x68;

void setup() {
  Wire.begin(); // Initialize I2C
  Serial.begin(9600); // Start serial communication at 9600 baud rate

  // Initialize BMI160 (basic initialization code, further configuration may be required)
  Wire.beginTransmission(BMI160_I2C_ADDR);
  // Write to a register, for example, to reset the device
  Wire.write(0x7E); // Command register address
  Wire.write(0xB6); // Command to reset the device
  Wire.endTransmission();
  delay(100); // Wait for the reset to complete
}

void loop() {
  // Code to read data from the sensor
  // This is a placeholder for actual data reading and processing
}

Troubleshooting and FAQs

Common Issues

  • No Data or Erratic Readings: Ensure that the I2C connections are secure and that the correct pull-up resistors are in place. Check for proper power supply voltage.
  • Device Not Detected: Verify that the I2C address is correct and that there are no address conflicts on the I2C bus.
  • Inaccurate Readings: Calibrate the sensor as per the manufacturer's instructions and ensure that it is placed on a stable surface away from magnetic fields.

FAQs

Q: Can the BMI160 be used with both 3.3V and 5V microcontrollers? A: Yes, the BMI160 can interface with both 3.3V and 5V systems, but ensure that VDDIO is within the specified range for logic levels.

Q: How can I change the I2C address of the BMI160? A: The I2C address can be changed by connecting the AD0/SDO pin to either high or low voltage levels.

Q: What is the purpose of the INT1 and INT2 pins? A: These pins can be configured to output interrupt signals for various events detected by the sensor, such as motion detection or data ready signals.

For further assistance, consult the manufacturer's datasheet and technical support resources.