The MPU-6050 is a serious little piece of motion processing tech! By combining a MEMS 3-axis gyroscope and a 3-axis accelerometer on the same silicon die together with an onboard Digital Motion Processor™ (DMP™) capable of processing complex 9-axis MotionFusion algorithms, the MPU-6050 does away with the cross-axis alignment problems that can creep up on discrete parts. The parts’ integrated 9-axis MotionFusion algorithms can even access external magnetometers or other sensors through an auxiliary master I2C bus, allowing the devices to gather a full set of sensor data without intervention from the system processor.
For precision tracking of both fast and slow motions, the MPU-6050 features a user-programmable gyro full-scale range of ±250, ±500, ±1000, and ±2000°/sec (dps) and a user-programmable accelerometer full-scale range of ±2g, ±4g, ±8g, and ±16g.
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: Competent - You will encounter surface mount components and basic SMD soldering techniques are required.
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
No reviews yet.
Looking for answers to technical questions?
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Log in or register to post comments.
Hi everyone, Do you konw where I can find the capactors needed by the acceleometer? Thanks for the anwser. Alizé
Does anyone have an Arduino Uno code that could make this sensor work? Thank you
I really like the fact that you include a photo with X and Y scales for most of your products, but lately it seems like a number of products (this one included) have been posted without.
Can we talk you into making that a standard feature for all new products?
Yes, that was a great feature. I could see how much room the thing would take on a board without having to read through the whole datasheet.
+1 for helpfulness
All the info I've been able to ask for, find, or reverse-engineer on this (rather awesome) chip is available here:
Example Arduino sketch for raw reads, and some DMP stuff as well, though I'm still working on that. I really, really wish InvenSense was more forthcoming with documentation.
Jeff, I'm sure that if we would have an email address with @nintendo.com or @sony.com you woudn't have any problems getting 1st class documentation and support from Invensense.
The truth so far with this sensor is that it's really badly documented. Product specification it's really just useful to design a PCB. No publicly available register or DMP documentations are currently available. In order to access register infos (no DMP) you have to sign an NDA.. WTF???
So far, I've been quite disappointed by the sensor. Awesome on paper but without good docs available to anyone.. its more cool features are simply unaccessible.
All the info I have so far, including the Register Map PDF straight from an InvenSense employee, was provided without an NDA or even so much as a "don't spread this around" caution. I still hesitate to post that particular PDF because it says "proprietary" on it though. Despite repeatedly asking them why they are so secretive with information that would only boost interest and sales, I still have no real answers. The hobbyist community would think much more highly of them even if all they did was give out the docs without any promise of support. We're fine with figuring stuff out on our own. The whole "no public info at all" thing is really annoying.
Incidentally, on the linked i2cdevlib.com page, you can pretty much work out the entire register map and behavior from the table and Doxygen comments in the MPU6050.cpp source file. The I2C analyzer results combined with the released InvenSense developer code has provided all the DMP structure info in place, which is not insignificant. The only missing piece is how to compile code for the DMP memory banks. Directly programming the captured dump from the logic analyzer does provide working quaternion output at this time, at least.
Are you able to use the 9DOM sensor fusion internal algorithm? Are you able to setup the chip to fuse data from a 3rd party magnetometer of your choice? No. No.
I don't know how you value your time but spending hours reverse enginering a device I paid for looks like a big no sense to me.
This is true. They could be way, way better about this than they are. I'm hoping we'll eventually be able to beat them at their own game if they don't start being more helpful though. A $15 device that can really do full motion computations onboard is worth the effort to me--though I admit I don't know everything that "effort" might entail yet.
Hey Guys, I shot Invensense an e-mail letting them know about some of your frustrations, since I wanted to use this chip myself, and the issues you were having concerned me. The response was good and it seems like they may just be a bit slow to provide documentation, but it doesn't look like they're purposefully witholding anything from the hobby community. And more specifically they do seem to care, so even if they are bad at providing documentation, maybe they will be receptive to questions on their developer portal? Here's what they said:
Thank you for bringing this to our attention. As announced, MPU-60X0 is now in full production and the Register Map will be finalized and post on the website by the end of this week. I hope this will reduce the hassle and frustration.
And to prove you that we appreciate not only our big name customers, but the hobbyist communities out there, we put together for some time now a developers’ corner. We have a lot of students, professionals, researchers, etc that are registered and have access to a discussion forum, support center also live web seminars, etc. Please see below the link:
I will appreciate if you can let us know if you find this useful and what recommendation you may have regarding our developers’ corner. I will pass all of these to the department in charge.
Let me know if I can be of any help and thank you again for your feedback. By the way, Sparkfun is one of our oldest customer and it is a pleasure working with them.
Best regards, Camelia Bobic Inside Sales Sr.Manager
This is good news, if they follow through as promised. The Developer's Corner area is definitely helpful, but there are a remarkable number of posts where someone asks a very good question, and then one of the InvenSense employee users posts a "We have responded to you in an email" message. Kind of defeats the purpose of the forums. Even so, I'm glad to see them promising to release the register map.
Heh... I guess I'm a little late the this party. I think you know where I stand on whether or not it's worth the effort. We'll get there.
Hey Fabio, while I'm sure Nintendo, LG, etc are getting much better support than we are, I really don't think that Invensense has a working 9-axis solution using any magnetometer other than the AK8975. Why they chose to develop the one solution that they have using that chip, I can't fathom, though it may have had to do with that being the magnetometer in the iPhone 4. I share all of your complaints, am deeply frustrated, and have sunk dozens of hours into this, but there simply isn't anything comparable from anyone else.
Invensense does have a 9-axis, so I am sure they have been working on it for some time. Not quite released yet, some data showing up here: http://invensense.com/mems/gyro/mpu9150.html
So the motion fusion processor functionality is proprietary then? That baggage sure makes the chip a lot less attractive. Particularly for a $20 chip.
Nonetheless, thanks for the reverse engineering efforts!
MPU-6050 info temporarily removed due to InvenSense request
i was too late (???)
It's back up as of Nov. 18, 2011 since they published the official register map on their own site here. Hopefully it will stay that way.
When are you expecting this product to be back in stock?
For those interested, InvenSense just published the official updated Register Map on their website this morning:
It doesn't have DMP info, so I'm still trying to figure that part out by hand, but it's a big step forward for them to finally release this. SparkFun guys, feel free to add the link to the product description!
Here's an Arduino sketch to get precomputed quaternions out of the MPU6050. It just reproduces the behavior of the Invensense example firmware for the Atmel UC3 Xplained board. I still haven't gotten calibration saving and loading working, so it still drifts for a bit, but stabilizes if you leave the sensor in a no-motion state for a little bit. You can use it with the Invensense Teapot/Mouse Demo app (here's a video), or modify the packet structure for your own app like Fabio did here.
Jeff Rowberg's i2cdevlib is by far the best way to configure the chip and get raw data at the moment. With his code, at least you've got a nice 6-axis solution in a tiny footprint, and there's a lot to be said for that.
I've heard from Invensense that they are at least talking to Honeywell about getting their help on implementing HMC5883L support for the 9-axis DMP.
I don't like how Invensense is handling things any more than the next guy, but I think that until a developer-friendly competitor releases some comparable silicon, this is the best inertial sensor you can buy.
I see a lot of frustration here! Why not use the iNemo solution from ST micro? Then you can have real source code running on a real processor. Better company, better support, better documentation, and a better product.
Still waiting on info and documentation about WHY this works, but I just finished a DMP example with lots of comments and debug output built around the I2Cdevlib class library (and based heavily on the procedural structure of Noah's code). This mimics the 6-axis DMP-based traffic from the InvenSense eval board. It really does use the DMP though, no doubt about it. I'm sure the example does a lot more than it needs to, but it does get the job done.
MPU-6050 6-axis DMP-based Arduino sketch
Feedback and code contributions welcome.
I've designed a PCB for the ITG-3200 gyro also from Invensense . Has the exact same QFN package, works over I2C, wants the same caps for stabilising etc... It looks to me like I can directly sub in this guy instead and get the extra accelerometer sensing on each axis too (with some additional code). Anyone see any reason why it wouldn't work? I've ordered a few anyway to give it a punt.
Is there a way to zero calibrate the MPU6050? I've been storing a quaternion at calibration time and subtracting it from the readings. That takes a bit of CPU time. I noticed that Jeff Rowberg’s code shows 6 bit offsets in the registers in the 6050 for all 6 axes but no information on how to use them. Invensense seems to skip these registers in their register map. Is there some way to zero the readings using these registers?
Does anyone know how to use two MPU-6050 simultaneously using the same Arduino board. I want to use multiple IMUs for my project to get minimal error for getting position. It seems impossible to change anything in the header files without messing it up! Any help would be much appreciated. Thanks. :)
Eagle Library for MPU-9150 ( i draw to component and thats my first draw , if posible please test first ) http://web.deu.edu.tr/sbt/files/mpu9150.lbr
Ehh, you do know that it is pin-by-pin compatible (verified) with the ITG-3200? (e.g. use the ITG-3200 part), i just soldered the MPU on that footprint and works fine.
I'm having a trouble finding this part in your Eagle library despite it is marked as available in library. Could you please point where it could be found? Thanks.
Got it, same as ITG-320x
Hi! Is thit suitable for a quadrocopter?
If you're comfortable with SMD work, a breakout board PCB is available at: http://www.batchpcb.com/index.php/Products/79722
hi, any idea when these will be available on a breakout board?
any idea when these will be back in stock? a breakout board would be neat :)
any idea when these will be back in stock? a breakout board would be neat :)
Are we getting this anytime soon??
People out there looking for a breakout board for this chip. See LibreBB MPU6050 open hardware designs http://www.varesano.net/blog/fabio/libre-breakout-board-invensense-mpu6050 Schematics of recent FreeIMU v0.4 may be of help when sorting out connections: http://www.varesano.net/projects/hardware/FreeIMU#v0.4
I have a PCB that uses the ITG3200 and an ADXL345 and would like to change the ITG3200 by this one. First they were not available, now they are available, but there is no register description....
Can Sparkfun help us, and post the registers documented mentioned in the datasheet?
I would like to point out that ST electronics have a similar product and the register information is in the datasheet. But I would like to use this one because of the sensor fusion support.
if you wait for a breakout, we should have everything taken care of.
do you have a breakout board for this?
This seems like it's probably a great chip, but is there more information on it available? The PS-MPU-6000A.pdf spends pages and pages describing I2C timing but says nothing about what settings, modes, data the chip might send, what its registers are, etc... do I really need to go through the whole request-information-from-Invensense dance to get some basic datasheets?
See my discussion with Jeff below.
First step: Virtual reality headgear Second step: ???? Third Step: PROFIT!!!
And by ???? you mean putting that surface transducer surround sound in and selling the design to Sony.
Datasheet is out of date - Product Specification 3.1 can be found here:
oh and are you going to carry the MPU-6000 which does SPI?
I am looking for MPU-6000. I2C is too slow for my project (model rocket logger). Do you have a plan to sell MPU-6000 now?
ok - thanks Rob.
Excellent! I want one! When is the breakout board comming?
now.... it's here NOW! http://www.sparkfun.com/products/11028
yes, no ETA.
+1 for a breakout board. Or, even better, a 9DOF sensor stick with this and a compass.
isn't this part almost completely pin compatible with the ITG-3200? you guys already have a breakout board for that, so it shouldn't take too long.