GY-BMI160 6DOF, 6 Axis Gravity/Accelerometer/Gyroscope Sensor Module

The GY-BMI160 is a highly integrated, low-power 6-axis inertial measurement unit (IMU) designed for precise motion tracking. It combines a 16-bit digital, 3-axis accelerometer and a 3-axis gyroscope into a single compact module, making it an ideal choice for space-constrained and battery-sensitive applications.
R44.90  Inc VAT
Order Quantity Price Per Item
3 R44.00
10 R43.32
Qty:
Add to wish list - You'll need to login first.

The GY-BMI160 is a highly integrated, low-power 6-axis inertial measurement unit (IMU) designed for precise motion tracking. It combines a 16-bit digital, 3-axis accelerometer and a 3-axis gyroscope into a single compact module, making it an ideal choice for space-constrained and battery-sensitive applications.

At its core lies the Bosch BMI160 sensor, which features advanced internal power management, intelligent interrupt engines, and precise synchronization capabilities, allowing it to deliver high-performance motion sensing with minimal power consumption.


Key Features

  • Integrated Sensing: Combines a 3-axis accelerometer and a 3-axis gyroscope on a single chip.

  • Low Power Consumption: Optimized for wearable devices and battery-operated electronics.

  • High Precision: 16-bit data output with selectable full-scale ranges for both the accelerometer and gyroscope.

  • Integrated Features: Includes on-chip interrupt engines for motion detection (step detection, tap/double-tap, any-motion, orientation).

  • Communication Interfaces: Supports both I2C and SPI digital interfaces for easy integration with microcontrollers like Arduino, ESP32, or STM32.

  • Compact Design: The module form factor is designed for easy breadboarding and integration into prototyping projects.

Technical Specifications

ParameterDetail
Sensor ModelBosch BMI160
Supply Voltage3.3V – 5V DC
CommunicationI2C (up to 1MHz) / SPI (up to 10MHz)
Accelerometer Range±2, ±4, ±8, ±16 g
Gyroscope Range±125, ±250, ±500, ±1000, ±2000 °/s
Interface LevelsDigital

Typical Applications

  • Wearable Technology: Smartwatches, fitness trackers, and health monitoring devices.

  • Robotics & Drones: Balancing, orientation tracking, and navigation.

  • Human-Machine Interaction: Gesture recognition and motion-controlled interfaces.

  • IoT Devices: Activity monitoring and motion-triggered logging.

Note: The GY-BMI160 is a sensitive component. When mounting the module in your project, ensure it is firmly attached to the chassis; vibrations or loose connections may introduce significant noise into the sensor data.

What's in the box?

1 x GY-BMI160 6DOF Module
1 x 12 pin header

Resources

How to use with ESPHome

Interfacing with Arduino

Using with Raspberry Pi

Using the GY-BMI160 with a Raspberry Pi is a straightforward process, as the module supports the standard I2C communication protocol, which is natively supported by the Raspberry Pi GPIO header.

Wiring Guide

You will need to connect the module to the Raspberry Pi's I2C pins. Ensure you are using the 3.3V pin on the Pi, as the BMI160 is a 3.3V device.

GY-BMI160 PinRaspberry Pi Pin (GPIO Header)
VCC3.3V (Pin 1)
GNDGND (Pin 6 or 9)
SCLSCL (Pin 5)
SDASDA (Pin 3)

Step-by-Step Setup

  1. Enable I2C:

    • Open your terminal on the Raspberry Pi.

    • Run sudo raspi-config.

    • Navigate to Interface Options > I2C and select Yes to enable it.

    • Reboot your Pi: sudo reboot.

  2. Verify Connection:

    • Install the I2C tools: sudo apt-get install i2c-tools.

    • Run the detection command: i2cdetect -y 1.

    • You should see a device address (typically 0x68 or 0x69) appear in the grid. This confirms the Pi sees the sensor.

  3. Install Python Libraries:

    • The most common way to interface with this sensor is using Python. You will need the smbus2 library or a specific BMI160 wrapper.

    • Install smbus: sudo apt-get install python3-smbus.

    • You can then search for available GitHub repositories for "BMI160 Python Raspberry Pi" to find pre-written drivers that handle the register communication for you.

  4. Reading Data:

    • Once you have the library installed, you can run a simple test script to read the acceleration and gyroscope values (X, Y, Z axes).

    • Tip: Remember that the raw data requires scaling based on the range you set (e.g., ±2g, ±250°/s) to convert the values into meaningful units like $m/s^2$ or degrees per second.


Important Considerations

  • Logic Levels: Always ensure you are using 3.3V for the signal lines. Connecting to 5V pins can damage the sensor or the Raspberry Pi.

  • Interrupts: If you need to use the advanced features like "step detection," you will need to connect the INT1 or INT2 pins of the module to one of the Raspberry Pi's GPIO input pins and configure an interrupt handler in your code.

  • Calibration: IMUs often require a calibration routine to remove "bias" or "offset" errors when the device is stationary.

  • Availability: Out of Stock
  • Model: 6DOF GY-BMI160 Accelerometer
  • Brand: Generic1