CircuitPython helper library for the MPU6050 6-DoF Accelerometer and Gyroscope

  • Author(s): Bryan Siepert

Implementation Notes


Software and Dependencies:

class adafruit_mpu6050.Bandwidth

Allowed values for filter_bandwidth.

  • Bandwidth.BAND_260_HZ
  • Bandwidth.BAND_184_HZ
  • Bandwidth.BAND_94_HZ
  • Bandwidth.BAND_44_HZ
  • Bandwidth.BAND_21_HZ
  • Bandwidth.BAND_10_HZ
  • Bandwidth.BAND_5_HZ
class adafruit_mpu6050.GyroRange

Allowed values for gyro_range.

  • GyroRange.RANGE_250_DPS
  • GyroRange.RANGE_500_DPS
  • GyroRange.RANGE_1000_DPS
  • GyroRange.RANGE_2000_DPS
class adafruit_mpu6050.MPU6050(i2c_bus, address=104)

Driver for the MPU6050 6-DoF accelerometer and gyroscope.

  • i2c_bus (I2C) – The I2C bus the device is connected to
  • address (int) – The I2C device address. Defaults to 0x68

Quickstart: Importing and using the device

Here is an example of using the MPU6050 class. First you will need to import the libraries to use the sensor

import board
import adafruit_mpu6050

Once this is done you can define your board.I2C object and define your sensor object

i2c = board.I2C()  # uses board.SCL and board.SDA
mpu = adafruit_mpu6050.MPU6050(i2c)

Now you have access to the acceleration, gyro and temperature attributes

acc_x, acc_y, acc_z = sensor.acceleration
gyro_x, gyro_y, gyro_z = sensor.gyro
temperature = sensor.temperature

Acceleration X, Y, and Z axis data in \(m/s^2\)


The measurement range of all accelerometer axes. Must be a Range


Enable or disable periodic measurement at a rate set by cycle_rate(). If the sensor was in sleep mode, it will be waken up to cycle


The rate that measurements are taken while in cycle mode. Must be a Rate


The bandwidth of the gyroscope Digital Low Pass Filter. Must be a GyroRange


Gyroscope X, Y, and Z axis data in \(º/s\)


The measurement range of all gyroscope axes. Must be a GyroRange


Reinitialize the sensor


The sample rate divisor. See the datasheet for additional detail


Shuts down the accelerometers and gyroscopes, saving power. No new data will be recorded until the sensor is taken out of sleep by setting to False


The current temperature in º Celsius

class adafruit_mpu6050.Range

Allowed values for accelerometer_range.

  • Range.RANGE_2_G
  • Range.RANGE_4_G
  • Range.RANGE_8_G
  • Range.RANGE_16_G
class adafruit_mpu6050.Rate

Allowed values for cycle_rate.

  • Rate.CYCLE_1_25_HZ
  • Rate.CYCLE_5_HZ
  • Rate.CYCLE_20_HZ
  • Rate.CYCLE_40_HZ