The MPU-9250 board an internal measurement unit (IMU) with a 3-axis accelerometer, a 3-axis gyroscope, and a 3-axis magnetometer. The MPU-9250 is actually the name of the chip made by InvenSense which includes the gyroscope and accelerometer part. The magnetometer (or electronic compass) is housed inside a separate chip on the board. There is a number of such IMU boards where gyro and accelerometer measurements are provided by one chip while magnetometer measurements are provided by another. In the case of the MPU-9250 the magnetometer is the AK8963 chip by Asahi Kasei Microdevices.
- An introduction to this family of sensors by Kris Winer
- Detailed code example for Arduino boards by Kris Winer
- Simple code example for Arduino boards by Philippe Lucidarme
- Documentation provided by Hao Yu Electronics, a manufacturer of inexpensive MPU-9250 units.
- Magnetometer (AK8963) datasheet
- MPU-9250 supports the I2C (at up to 400 kHz) and SPI (up to 1MHz) data interfaces.
- It is recommended to use 10 kΩ resistors as pull-up resistors for the SDA and SCL pins.
- The I2C slave address of the MPU-9250 is b110100X (i.e., 0x68 or 0x69). The LSB bit is determined by the logic level on pin AD0. This allows MPU-9250s to be configured for two different I2 addresses. You can therefore connect two of them to the same I2C bus.
- The MPU-9250 can run a self test for the gyro and accelerometer. You can then check the results of the self test that you ran against factory test results stored inside the chip. There is a problem if the results differ considerably.
- You can set various scale ranges and sensitivity settings for the individual sensors.