
MPU6050 6-Axis Gyroscope & Accelerometer Module (GY-521)
The MPU6050 is a 6-axis motion sensor that combines a 3-axis gyroscope and a 3-axis accelerometer on a single chip from InvenSense (TDK). This GY-521 breakout board adds an on-board voltage regulator and I2C pull-up… Read more
2 in stock
Description
The MPU6050 is a 6-axis motion sensor that combines a 3-axis gyroscope and a 3-axis accelerometer on a single chip from InvenSense (TDK). This GY-521 breakout board adds an on-board voltage regulator and I2C pull-up resistors, so you can connect it straight to an Arduino, ESP32 or Raspberry Pi with just four wires. It's the go-to sensor for measuring tilt, rotation and movement — from self-balancing robots to drone flight controllers.
Features
- 6 degrees of freedom — measures rotation (gyro) and acceleration (accel) on X, Y and Z
- 16-bit resolution on every axis for precise, low-noise readings
- Selectable ranges — gyro ±250 / ±500 / ±1000 / ±2000 °/s, accel ±2 / ±4 / ±8 / ±16 g
- Digital Motion Processor (DMP) on the chip does sensor fusion for you and outputs ready-made orientation (quaternions, yaw / pitch / roll)
- I2C interface (up to 400 kHz) with selectable address — use two MPU6050s on the same bus
- On-board 3.3V regulator — power it from 3.3V or 5V (Arduino, ESP32, Raspberry Pi, STM32)
- Built-in temperature sensor, 1024-byte FIFO buffer and interrupt output
- Auxiliary I2C port (XDA / XCL) to attach an external magnetometer for full 9-axis tracking
Pinout
| Pin | Function |
|---|---|
| VCC | Power input, 3.3–5V |
| GND | Ground |
| SCL | I2C clock |
| SDA | I2C data |
| XDA | Auxiliary I2C data (for an external magnetometer) |
| XCL | Auxiliary I2C clock (for an external magnetometer) |
| AD0 | I2C address select — LOW / unconnected = 0x68, HIGH = 0x69 |
| INT | Interrupt output (data ready / motion detected) |
Wiring
| MPU6050 | Arduino UNO / Nano | ESP32 | Raspberry Pi |
|---|---|---|---|
| VCC | 5V | 3.3V | 3.3V (pin 1) |
| GND | GND | GND | GND (pin 6) |
| SCL | A5 | GPIO 22 | GPIO 3 (pin 5) |
| SDA | A4 | GPIO 21 | GPIO 2 (pin 3) |
Popular Arduino libraries: Adafruit MPU6050 (easiest to start with), MPU6050_light (simple angle readings) and I2Cdevlib MPU6050 by Jeff Rowberg (for DMP / quaternion output).
Tips
- Calibrate first. Every sensor has small offsets — keep it flat and still for a few seconds at start-up and subtract the average readings.
- Use sensor fusion for angles. The gyro drifts over time and the accelerometer is noisy; combine them with a complementary or Kalman filter, or use the built-in DMP.
- Yaw will drift without a magnetometer — pitch and roll are stable, but for an absolute heading add a magnetometer (e.g. QMC5883L) on the XDA / XCL pins.
- Mount the board firmly and keep it away from motors — vibration shows up as noise in the readings.
- Keep I2C wires short (under about 30 cm) for reliable communication.
Use it for
Self-balancing robots · drone and quadcopter flight controllers · gimbals and camera stabilisers · gesture-controlled projects · step counters and fitness trackers · tilt and vibration monitoring · VR / motion-tracking projects
Specifications
| Sensor IC | InvenSense (TDK) MPU-6050 |
|---|---|
| Module | GY-521 breakout board |
| Axes | 6-axis (3-axis gyroscope + 3-axis accelerometer) |
| Gyroscope Range | ±250, ±500, ±1000, ±2000 °/s |
| Accelerometer Range | ±2, ±4, ±8, ±16 g |
| ADC Resolution | 16-bit per axis |
| Interface | I2C, up to 400 kHz |
| I2C Address | 0x68 (AD0 LOW) / 0x69 (AD0 HIGH) |
| Supply Voltage | 3.3–5V (on-board 3.3V regulator) |
| Motion Processing | On-chip Digital Motion Processor (DMP) |
| Extra Features | Temperature sensor, 1024-byte FIFO, interrupt output, auxiliary I2C |
| Board Size | approx. 21 × 16 mm |