GY-521 MPU-6050 - 6-Axis Gyroscope and Accelerometer IMU Module for Motion Sensing The GY-521 MPU-6050 module is a compact 6-axis inertial measurement unit that combines a 3-axis gyroscope and a 3-axis accelerometer with an onboard temperature sensor and Digital Motion Processor. It is a practical choice for robotics, gesture control, balance platforms, motion logging, tilt detection, and learning projects that need reliable orientation and acceleration data over a simple I2C connection. Because the module communicates over I2C, it only needs SDA and SCL plus power and ground for most microcontroller builds. The AD0 pin lets you select between common I2C addresses 0x68 and 0x69, making it easier to place two MPU-6050 devices on the same bus. It pairs well with boards such as the ELAB Nano V3, the UNO R3 Prototype Expansion Board, and quick wiring setups built on an MB 102 Breadboard Kit. Inside the MPU-6050, configurable full-scale ranges allow the accelerometer to measure up to +/-16g and the gyroscope to measure up to +/-2000 degrees per second, while the 1024-byte FIFO and DMP can reduce the host processor workload in more advanced designs. For exact register definitions, electrical limits, and performance details, refer to the official TDK InvenSense MPU-6050 datasheet and register map before finalizing production hardware. Technical Specifications Parameter Value SKU TB-GY521 Module Type GY-521 MPU-6050 IMU module Sensor IC MPU-6050 Motion Axes 3-axis accelerometer + 3-axis gyroscope Additional Sensor On-chip temperature sensor Accelerometer Ranges +/-2g, +/-4g, +/-8g, +/-16g Gyroscope Ranges +/-250, +/-500, +/-1000, +/-2000 degrees/s Digital Interface I2C primary interface I2C Addresses 0x68 when AD0 is low; 0x69 when AD0 is high FIFO 1024-byte FIFO buffer Digital Motion Processor Integrated DMP for motion-processing offload Auxiliary Bus Auxiliary I2C bus for external sensors supported by MPU-6050 Sensor Supply Range 2.375V-3.46V at IC level; confirm breakout-board VCC pin before wiring Logic Compatibility Use host logic levels compatible with the breakout board and pull-up configuration Typical Applications Robot balancing, gesture sensing, vibration logging, tilt detection, attitude estimation Board Layout & Label Guide VCC - Power input for the GY-521 breakout. Confirm the exact board voltage support before connecting to 5V or 3.3V rails. GND - Common ground shared with the host microcontroller. SCL - I2C clock line connected to the host controller's I2C clock pin. SDA - I2C data line connected to the host controller's I2C data pin. AD0 - I2C address-select pin. Low selects 0x68; high selects 0x69. INT - Interrupt output for data-ready, FIFO, or motion events depending on firmware configuration. XDA / XCL - Auxiliary I2C data and clock pins for external sensors supported by the MPU-6050. MPU-6050 IC - Main motion-sensing chip; mount the board securely to reduce vibration artifacts. Axis Orientation - Confirm board silkscreen orientation in software before interpreting roll, pitch, and yaw. Calibration Note - Perform offset calibration after mounting, since tilt, vibration, and temperature can affect raw readings. Application Scenarios 1. Arduino Raw Accelerometer and Gyroscope Readout This Arduino example wakes the MPU-6050, reads raw accelerometer and gyroscope registers over I2C, and prints values for first-time wiring checks. #include const int MPU_ADDR = 0x68; void setup() { Serial.begin(115200); Wire.begin(); Wire.beginTransmission(MPU_ADDR); Wire.write(0x6B); Wire.write(0); Wire.endTransmission(true); } void loop() { Wire.beginTransmission(MPU_ADDR); Wire.write(0x3B); Wire.endTransmission(false); Wire.requestFrom(MPU_ADDR, 14, true); int16_t ax = Wire.read()