The SparkFun MPU-9250 IMU Breakout features the latest 9-axis MEMS sensor from InvenSense. Each of these 9DoF breakouts feature an MPU-9250 with a System in Package (SiP) that combines two chips: the MPU-6500, which contains a 3-axis gyroscope as well as a 3-axis accelerometer, and the AK8963, which features a 3-axis magnetometer. This breakout has been designed to be smaller than some of our other offerings to fit in smaller projects. However, if you plan to use a breadboard, or secure the IMU board to a project with something like epoxy, the mounting holes can be easily snapped off.
To achieve its smaller size, the MPU-9250 Breakout features PTH pins that have been wrapped around the border of the PCB in three rows of three or four. The top row (J1) is all one needs to get the most functionality out of the IMU. These include the I2C and power interface. The second most likely to be used set of PTHs are found along the bottom (J3). This includes the address pin, the interrupt pin, and the IO voltage supply for easy interface with a more modern 1.8V processor. The third, a non-breadboard-compatible row (J2), is used for features like running other I2C devices as slaves to this one. For prototyping with these connections, throw your connections on top as you would with an Arduino Pro Mini or similar product.
The MPU-9250 replaces the popular EOL MPU-9150 and decreases power consumption by 44 percent. According to InvenSense, “Gyro noise performance is 3x better, and compass full-scale range is over 4x better than competitive offerings.” The MPU-9250 uses 16-bit Analog-to-Digital Converters (ADCs) for digitizing all nine axes, making it a very stable 9 Degrees of Freedom board.
If you're having trouble with the SparkFun library and sample code, give this library a try. It's been tested with I2C but not SPI. Many thanks to Brian R Taylor for the library.
If you are having address conflict issues running the Basic I2C sketch, try editing this line of code:
if (d != 0x48)
if (d != 0xFF)
It seems certain versions of Arduino do not agree with the syntax but changing this line in the example sketch should fix the I2C address issue.
There is Python example code for the MPU-9250 for a Raspberry Pi.
Try looking at this tutorial http://kingtidesailing.blogspot.com/2016/02/how-to-setup-mpu-9250-on-raspberry-pi_25.html . Also, try looking at this blog [ http://blog.pistuffing.co.uk/mpu-9250-first-impressions/ ].
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels
Based on 15 ratings:
1 of 1 found this helpful:
Just apply a kalman filter and this'll give you near perfect orientation data.
Y-axis accel sensitivity only 35% of X and Z right out of the box.
Sorry to hear that, sounds like it may be a borked chip. If you contact our tech support team, they should be able to help you resolve the issue.
I am still experimenting with combining all the accelerometers and gyros together, but testing just the X axis for 2 1/2 minutes with the bias dialed in I got less than an inch of error when it was strapped down. I did not believe that you could buy that much stability for such a low price!
This breakout board allows you to connect an MPU-9250 to a microporcessor or microcontroller board without having to create your own printed circuit board to mount the chip on. Good job.
We needed to collect some accelerometer data and liked that these had adjustable G ranges. The I2C interface requires a level shifter if you want to use this board with an Arduino Uno (it would be nice if this were explicitly mentioned up front! I ordered the SparkFun Logic Level Converter - Bi-Directional BOB-12009 once I figured this out and it worked great). I used the code from http://playground.arduino.cc/Main/MPU-6050#short to get the data collection going. We've gotten a 4kHz data rate out of the system and the data had low noise until we tried to move the IMU about 3 meters away - didn't work even with shielded cable. Keep the IMU and mpu close!. All in all a very good sensor.
I ordered 7 of these. Of the 7 one of them was orientated the wrong way, or at least appeared to be. Changing the SJ2 jumper was tricky and a little bit scary to do. Worked well for our project.
We are not able to reach pitch and yaw correctly. Too much wring reading. We need 0.1 degree accuracy. How can we fix it?
Sorry to hear about the issues with the sensor.
Have you reached out to our technical support department? They're the best line of communication to use to get support for the product.
The product works great and the code works out of the box. However, compared to other SparkFun break outs, this one has some issues. So it is "Okay" relative to the other SparkFun offerings. And please; maybe my expectations are off base.
The example code is not 100% straight forward. There are definitions for pins that are not used, comments that refer to deleted code, and "ifdef" sections for non-standard parts. I am used to there being an example code that gets the system started and demonstrates how to get data from the sensor. Granted that the additional implementation of the features in "quaternionFilters.h" are awesome. But, this is not the simplest demo code as I would expect.
With regard to the board, it would be nice to have labels for the pins on the top of the board. It's a small board, so that would be a challenge, but it would be nice. Since there are no labels on the top of the board, the connection diagrams in the "Getting Started" pages are harder to follow than examples for other SparkFun products.
Very fast shipment and a good sensor!
Small size, I2C capability, easy to use, and relatively cheap
I needed fast data readout (I2C is too slow) so I went with this breakout because of the ability to read all of the data from the SPI interface. This breakout is very good with small form factor. You just de-solder one jumper and you can switch from I2C to SPI. The datasheet for the MPU-9250 however is pretty horrendous (I know this is not sparkfun's fault but it is soooo bad I had to ding the board one star)
Very good product, working well. I do recommend MPU-9250 to others.
Wow, couldn't have been easier. Hooked it up to a Teensy, and presto, everything worked! Nice sensor and great price.
The device provided is now Not Recommended for New Development and Obsolete. The manufacturer has been acquired by TDK, who now (God knows why...) recommend you use their product that's inferior to this IMU. TDK does not sell any IMUs that are as good as the MPU-9250 unless you can supply 1.8v power and don't mind a slight hit to sensor quality and a considerable hit to SPI communications speed. I looked around for a device that is similar in quality and price to the MPU9250 and found the Bosch BMX160.