3-Axis Gyro/Accelerometer IC - MPU-6050

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.

  • Digital-output of 6 or 9-axis MotionFusion data in rotation matrix, quaternion, Euler Angle, or raw data format
  • Tri-Axis angular rate sensor (gyro) with a sensitivity up to 131 LSBs/dps and a full-scale range of ±250, ±500, ±1000, and ±2000dps
  • Tri-Axis accelerometer with a programmable full scale range of ±2g, ±4g, ±8g and ±16g
  • Reduced settling effects and sensor drift by elimination of board-level cross-axis alignment errors between accelerometers and gyroscopes
  • Digital Motion Processing™ (DMP™) engine offloads complex MotionFusion, sensor timing synchronization and gesture detection
  • Embedded algorithms for run-time bias and compass calibration. No user intervention required
  • Digital-output temperature sensor
  • Digital input on FSYNC pin to support video Electronic Image Stabilization and GPS
  • Programmable interrupt supports gesture recognition, panning, zooming, scrolling, free fall interrupt, high-G interrupt, zero-motion detection, tap detection, and shake detection
  • VDD Supply voltage range of 2.375V–3.46V; VLOGIC at 1.8V±5% or VDD
  • On-chip timing generator with ±1% frequency variation over full temperature range
  • 10,000g shock tolerant
  • 4x4x0.9mm QFN
  • [Datasheet](http://cdn.sparkfun.com/datasheets/Components/General IC/PS-MPU-6000A.pdf)
  • Register Map

3-Axis Gyro/Accelerometer IC - MPU-6050 Product Help and Resources

Core Skill: Soldering

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.

3 Soldering

Skill Level: Competent - You will encounter surface mount components and basic SMD soldering techniques are required.
See all skill levels


Core Skill: Programming

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.

3 Programming

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


Core Skill: Electrical Prototyping

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.

3 Electrical Prototyping

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


Comments

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.

  • Member #1309737 / about 6 years ago / 1

    Hi everyone, Do you konw where I can find the capactors needed by the acceleometer? Thanks for the anwser. Alizé

  • Member #1268054 / about 6 years ago / 1

    Does anyone have an Arduino Uno code that could make this sensor work? Thank you

  • CS / about 12 years ago / 13

    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?

    • Electrical Juggernaut / about 12 years ago / 3

      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.

    • TLAlexander / about 12 years ago / 3

      +1 for helpfulness

  • Jeff Rowberg / about 12 years ago / 4

    All the info I've been able to ask for, find, or reverse-engineer on this (rather awesome) chip is available here:

    http://www.i2cdevlib.com/devices/mpu6050

    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.

    • Fabio Varesano / about 12 years ago / 2

      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.

      • Jeff Rowberg / about 12 years ago / 3

        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.

        • Fabio Varesano / about 12 years ago / 2

          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.

          • Jeff Rowberg / about 12 years ago / 2

            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.

            • TLAlexander / about 12 years ago / 2

              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:

              Hi Taylor,

              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:

              http://invensense.com/developers/index.php?_r=default

              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

              • Jeff Rowberg / about 12 years ago / 1

                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.

            • bzerk / about 12 years ago / 1

              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.

      • bzerk / about 12 years ago / 1

        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.

    • Royce / about 12 years ago / 2

      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!

    • Member #164440 / about 12 years ago / 1

      MPU-6050 info temporarily removed due to InvenSense request

      i was too late (???)

      • Jeff Rowberg / about 12 years ago / 1

        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.

  • VTGuy / about 12 years ago / 3

    When are you expecting this product to be back in stock?

  • Jeff Rowberg / about 12 years ago / 3

    For those interested, InvenSense just published the official updated Register Map on their website this morning:

    RM-MPU-6000A.pdf

    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!

  • bzerk / about 12 years ago * / 3

    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.

    • Member #345729 / about 11 years ago / 1

      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.

    • Jeff Rowberg / about 12 years ago / 1

      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.

  • Member #472740 / about 9 years ago / 1

    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.

  • Member #444951 / about 10 years ago / 1

    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?

  • Member #400316 / about 11 years ago / 1

    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. :)

  • gumush / about 11 years ago / 1

    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

    • TimZaman / about 11 years ago / 1

      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.

  • drug123 / about 11 years ago / 1

    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.

  • GyurEEE / about 12 years ago / 1

    Hi! Is thit suitable for a quadrocopter?

  • E.Soderberg / about 12 years ago / 1

    If you're comfortable with SMD work, a breakout board PCB is available at: http://www.batchpcb.com/index.php/Products/79722

  • rxe3936 / about 12 years ago / 1

    hi, any idea when these will be available on a breakout board?

  • rxe3936 / about 12 years ago / 1

    any idea when these will be back in stock? a breakout board would be neat :)

  • rxe3936 / about 12 years ago / 1

    any idea when these will be back in stock? a breakout board would be neat :)

  • Neutrinox / about 12 years ago / 1

    Are we getting this anytime soon??

  • Fabio Varesano / about 12 years ago / 1

    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

  • AndreRodrigues / about 12 years ago / 1

    Hi

    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.

  • WimL / about 12 years ago / 1

    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?

  • SlyVixsky / about 12 years ago / 1

    First step: Virtual reality headgear Second step: ???? Third Step: PROFIT!!!

  • Mathew Pottinger / about 12 years ago / 1

    Datasheet is out of date - Product Specification 3.1 can be found here:

    http://invensense.com/mems/gyro/documents/PS-MPU-6000A.pdf

Customer Reviews

No reviews yet.