MPU6050 6-Axis Gyro Accelerometer
Overview
A sensor module using the MPU6050 chip that integrates a 3-axis gyroscope and 3-axis accelerometer. It uses I2C interface.

Specifications
- Power: 3.0V to 5.0V
Item | Gyroscope | Accelerometer |
---|---|---|
Interface | I2C interface | I2C interface |
Startup | 100 ms | 100 ms |
Max range | ±2000 d/s | ±16G |
Min range | ±250 d/s | ±2G |
Resolution(Max) | 16.4 LSB/(degree/s) | 2048 LSB/(degree/s) |
Resolution(Min) | 131 LSB/(degree/s) | 16384 LSB/(degree/s) |
Update rate | 4 ~ 8000 hz | 4 ~ 1000 hz |
Supported GPIO
- Raspberry Pi 0~4
- Raspberry Pi 5
- BeagleBone Black/Green
- Jetson Nano
- FT232H, FT2232H, FT4232H
- MCP2221
Commands
[INIT]
Enters initial configuration settings.
Item | Type | Description |
---|---|---|
Accel Full Scale | WRITE | Select the accelerometer measurement range (Full scale). (±2g, ±4g, ±8g, ±16g) |
Gyro Full Scale | WRITE | Select the gyroscope measurement range (Full scale). (±250dps, ±500dps, ±1000dps, ±2000dps) |
[GET_RAW_DATA]
Reads raw values of acceleration, gyroscope, and temperature.
Item | Type | Description |
---|---|---|
Accel X (g) | READ | Acceleration X-axis |
Accel Y (g) | READ | Acceleration Y-axis |
Accel Z (g) | READ | Acceleration Z-axis |
Gyro X (deg/s) | READ | Gyroscope X-axis |
Gyro Y (deg/s) | READ | Gyroscope Y-axis |
Gyro Z (deg/s) | READ | Gyroscope Z-axis |
Temperature (℃) | READ | Temperature |
[GET_YAW_PITCH_ROLL]
Calculates Yaw, Pitch, and Roll. Since the MPU6050 does not have a magnetometer, it is normal for the Yaw value to continuously drift with error.

Item | Type | Description |
---|---|---|
Yaw (º) | READ | Yaw angle |
Pitch (º) | READ | Pitch angle |
Roll (º) | READ | Roll angle |
This command becomes less accurate as the execution cycle becomes longer. Therefore, the execution cycle of the logic containing the action that executes this command should be set as small as possible (e.g., 10ms).
[CALIBRATION]
Performs calibration and outputs the measured bias.
Item | Type | Description |
---|---|---|
Accel Bias X (g) | READ | Acceleration bias X-axis |
Accel Bias Y (g) | READ | Acceleration bias Y-axis |
Accel Bias Z (g) | READ | Acceleration bias Z-axis |
Gyro Bias X (deg/s) | READ | Gyroscope bias X-axis |
Gyro Bias Y (deg/s) | READ | Gyroscope bias Y-axis |
Gyro Bias Z (deg/s) | READ | Gyroscope bias Z-axis |
[SET_BIAS]
Applies the bias values obtained through calibration to the sensor.
Item | Type | Description |
---|---|---|
Accel Bias X (g) | WRITE | Acceleration bias X-axis |
Accel Bias Y (g) | WRITE | Acceleration bias Y-axis |
Accel Bias Z (g) | WRITE | Acceleration bias Z-axis |
Gyro Bias X (deg/s) | WRITE | Gyroscope bias X-axis |
Gyro Bias Y (deg/s) | WRITE | Gyroscope bias Y-axis |
Gyro Bias Z (deg/s) | WRITE | Gyroscope bias Z-axis |
[SELF_TEST]
Performs a self-test.
Example
Objective
Display the sensor’s Yaw, Pitch, and Roll values on dashboard widgets. Move the sensor to verify that the values change.
Parts
Part | Quantity |
---|---|
Raspberry Pi 4 * | 1 |
MPU6050 | 1 |
* Other hardware can also be used. Refer to Supported GPIO.
Wiring
Connect the following pins horizontally to each other.
MPU6050 | GPIO |
---|---|
VCC | 3.3V |
GND | GND |
SCL | 3 (I2C1 SCL) |
SDA | 2 (I2C1 SDA) |
AD0 * | Not Connected |
* When not connected, I2C address is 0x68; when connected to 3.3V, it is 0x69 (may vary depending on module manufacturer)

Project Link
Calibration
- Place the module on a flat surface and perform calibration
- Record the bias values obtained through calibration
- Enter the bias values in SET_BIAS of the initial command