MPU6050 icon indicating copy to clipboard operation
MPU6050 copied to clipboard

LSM9DS1 vs. MPU-9250 vs. BMX055

Open maziarzamani opened this issue 9 years ago • 238 comments

Hi.

I was wondering if you had made any comparison on these 3 chips, especially in terms of the magnetometer, which has been a big problem for me on the Invensense in terms of error.

maziarzamani avatar May 15 '15 09:05 maziarzamani

I am in the process of doing just that between the MAX2110X (no magnetometer), MPU9250, LSM9DS0, and BMX055. I will eventually get around to testing the LSM9DS1 and AK9912, et al. but I am starting detailed comparison testing with the four integrated motion sensors listed above.

I don't know what kind of error you are getting but my experience with the AK8963A embedded in the MPU9250 is that with proper bias calibration the data are pretty good. I have also had no problem with the LSM9DSX magnetometers nor the BMX055 but the latter is an odd duck in that the data are magnetic sense data plus a Hall resistance and the magnetic field has to be constructed out of these in software. Still, the resulting data seem OK. All qualitative. I will do quantitative comparisons in the next few weeks of accel, gyro, and mag as well as testing the different data inputs on the resulting open source sensor fusion quaternions, etc.

Right now I can tell you the MPU6500 (accel/gyro in the MPU9250) accelerometer has much lower jitter than the BMX055 accelerometer. I can't say much about the magnetometer relative performance yet but I would ask if your problem with the MPU9250 mag is that you have neglected the bias calibration; this will produce very bad results in any fusion solution.

kriswiner avatar May 15 '15 18:05 kriswiner

Sounds very exciting. I am not saying that the data is utter garbage, as i do calibrate the compass. But i tend to experience that it is not acting so stable and easily generate messy data in different environments. It could just be a downside of the MEMS technology with magnetometers.

I am trying to find a few reasons to replace the MPU-9250 with a LMS9DS1. I will be using a few hundred of them and looking at the price tag as a initial comparison we are talking 637$ (MPU-9250) vs. 471$ at 100 pieces. It is a quite significant price difference if they are quite equal in terms of performance.

maziarzamani avatar May 16 '15 08:05 maziarzamani

Well, this is a different issue. You can buy (I have) MPU9250s on www.aliexpress.com for ~$5 with free shipping and no sales tax (in US); I would highly recommend "New Hope" as I have bought several things from them many times and the service and quality are very good. The MPU9250 has the advantage in smaller footprint, much simpler design (2 die instead of the four or so in the LSM9DS1) and wider full scale ranges (+/- 16 g). I like ST products generally but in this case, there is no advantage to using the LSM9DS1 over the MPU9250 in my view. The LSM9DS0 might be a competitor for the MPU9250 and I would consider it if I were you. It is larger, a little more difficult to solder mount, but produces very good data. I'll have more quantitative results on this point in a few weeks but the prices are about the same.

kriswiner avatar May 16 '15 16:05 kriswiner

I bought the initial demo boards from aliexpress, but unfortunately i will need to buy them on tray for the next batches i will be making. I have already soldered quite a few of the MPU-9250 and they are literally a pain in the ass to paste in hand (even with a stencil) and solder in a oven without having to do a lot of post-soldering due to solderball formation under the IC, especially due to the thermal pad in the middle of the IC which causes an unwanted spacing. Besides that the chip is ok, but rumors spread that LSM9DS0 is a good replacement. In which aspects would you say that the LSM9DS0 is superior?

maziarzamani avatar May 16 '15 16:05 maziarzamani

First of all, the breakout boards offered from www.aliexpress are complete crap, I would never use them especially if they are purple. It is the MPU9250 QFN chips that are the bargain and well worth buying from "New Hope" seller.

I hope you are not soldering the thermal pad. It must remain unconnected electronically. I don't use a metallized pad underneath the QFN package in my designs and neither does Invensense. This is asking for trouble.

I said the LSM9DS0 might be comparable in performance; I haven't finished my quantitative testing yet. But it is bigger, a bit harder to use, and used to be more expensive but I think the price dropped recently so that now they are about the same price. I will just tell you that in our commercial projects we are using the MPU9250 and might switch to the MAX21105 but haven't decided. We are not considering the LSM9DSX currently.

Sounds like your stencil or the application of solder process if faulty if you are having trouble here. I have soldered hundreds of these with little trouble except the occasional solder bridge between pins.

Maybe your landp pad design is the problem?

kriswiner avatar May 16 '15 16:05 kriswiner

I will check out the seller on AliExpress!

I see what you mean with the thermal pad, i have just notified my HW guy, which has clearly made an huge mistake, thanks for the tip!

MAX21105 seems interesting. Which magnetometer will you pair it with?

maziarzamani avatar May 16 '15 17:05 maziarzamani

I plan to test both the AK8963A which I already know fairly well and the newer AK9912. BTW, I like the LIS3MDL mag from ST (I currently pair the MAX21100 with it in my breakout boards for sale at Tindie) so I will be testing this in some detail also. Lot's to do, and so little time!

kriswiner avatar May 16 '15 17:05 kriswiner

I am looking forward to see your results! :+1:

maziarzamani avatar Jun 13 '15 18:06 maziarzamani

Kris, how is testing? Are you looking at the AK8963A, AK9912, LIS3MDL?

jheissjr avatar Oct 04 '15 23:10 jheissjr

Currently I am testing the AK8963C, LIS3MDL and HMC5883L. I am going to add the HMC5983 since it is the newer Honeywell offering. I also have some samples of the AK9912 I want to test, just haven't gotten there yet.

So far I am impressed with the Honeywell mag but it only has 12-bits compared to the 16-bits of the others so its apparent stability might just be due to the lower resolution. The LSM9DS1 has the LIS3MDL embedded in it and I am testing this 9 DoF solution also. Still have a lot of work to do before I can come to any conclusions but I am working on it.

One thing I already know is that I don't like the Bosch magnetometer.

Kris

-----Original Message----- From: jheissjr [mailto:[email protected]] Sent: October 4, 2015 4:21 PM To: kriswiner/MPU-6050 Cc: Kris Winer Subject: Re: [MPU-6050] LSM9DS1 vs. MPU-9250 vs. BMX055 (#6)

Kris, how is testing? Are you looking at the AK8963A, AK9912, LIS3MDL?

Reply to this email directly or view it on GitHub https://github.com/kriswiner/MPU-6050/issues/6#issuecomment-145400698 . <https://github.com/notifications/beacon/AGY1qm_jNtUJYMx4W3VrhmEdW8ErwQg7ks5 o4au_gaJpZM4EbfGw.gif>

kriswiner avatar Oct 05 '15 02:10 kriswiner

What have you seen with the Bosh magnetometer?

jheissjr avatar Oct 05 '15 03:10 jheissjr

You can read about the detailed results on the MPU9250 Wiki at my github site, but bottom line, it is not very easy to calibrate it.

-----Original Message----- From: jheissjr [mailto:[email protected]] Sent: October 4, 2015 8:32 PM To: kriswiner/MPU-6050 Cc: Kris Winer Subject: Re: [MPU-6050] LSM9DS1 vs. MPU-9250 vs. BMX055 (#6)

What have you seen with the Bosh magnetometer?

Reply to this email directly or view it on GitHub https://github.com/kriswiner/MPU-6050/issues/6#issuecomment-145420488 . <https://github.com/notifications/beacon/AGY1qvsJB3IaWD7stvTPoXOiJXzTOSRFks5 o4eaigaJpZM4EbfGw.gif>

kriswiner avatar Oct 05 '15 04:10 kriswiner

Did you ever have the chance to try out the AK9912?

maziarzamani avatar Oct 08 '15 06:10 maziarzamani

Still on my list of things to do, but I did get some samples.

kriswiner avatar Oct 08 '15 16:10 kriswiner

I've been reading that Helmholtz coils are used for calibrating magnetometers. Do you have access to a Helmholtz coil for your testing by chance? I wish I did lol. I was also thinking it would be good to wrap the magnetometer in magnetic shielding (like MuMetal) to provide a quiet environment for taking noise measurements

jheissjr avatar Oct 11 '15 02:10 jheissjr

I don't have Helmholtz coils or Mu-metal but I don't think they are necessary for the kind of testing relevant for characterizing the quality of sensor fusion solutions, which is my interest. I have been using Honeywell's HMC5883 mag lately and I find it is pretty stable compared to the AK and ST mags. This is partly due to the fact that Honeywell's mags (the newest HMC5983 too) use a 12-bit ADC instead of a 16-bit one, but their construction is unique and I am beginning to think superior to standard MEMS Hall sensors. I need to do more testing, but I am hopeful the HMC5983 will provide the kind of sensor fusion solution capable of +/- 2 degree heading accuracy.

-----Original Message----- From: jheissjr [mailto:[email protected]] Sent: October 10, 2015 7:38 PM To: kriswiner/MPU-6050 Cc: Kris Winer Subject: Re: [MPU-6050] LSM9DS1 vs. MPU-9250 vs. BMX055 (#6)

I've been reading that Helmholtz coils are used for calibrating magnetometers. Do you have access to a Helmholtz coil for your testing by chance? I wish I did lol. I was also thinking it would be good to wrap the magnetometer in magnetic shielding (like MuMetal) for taking noise measurements to provide a quite environment.

Reply to this email directly or view it on GitHub https://github.com/kriswiner/MPU-6050/issues/6#issuecomment-147147435 . <https://github.com/notifications/beacon/AGY1qpA9RPy3cU6M7oUtSqCrWVyCjrftks5 o6cMegaJpZM4EbfGw.gif>

kriswiner avatar Oct 11 '15 06:10 kriswiner

@kriswiner,@maziarzamani have you obtained quantitative results for the MPU9250 and LSM9DS1? If so please link me to them. Regarding the MPU9250, why do you think it is not very easy to calibrate? Which one of these will you recommend for use in Miniature Aerial Vehicles? Thank you.

sarwadenj avatar Jan 23 '17 13:01 sarwadenj

The MPU9250 is straightforward to calibrate, and it is what I use for my small flying robots.

On Mon, Jan 23, 2017 at 5:29 AM, Narasing Sarwade [email protected] wrote:

@kriswiner https://github.com/kriswiner,@maziarzamani https://github.com/maziarzamani have you obtained quantitative results for the MPU9250 and LSM9DS1? If so please link me to them. Regarding the MPU9250, why do you think it is not very easy to calibrate? Which one of these will you recommend for use in Miniature Aerial Vehicles? Thank you.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kriswiner/MPU-6050/issues/6#issuecomment-274487879, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qnco4v3S3sfeT-ReshG86AMNRE9Aks5rVKtAgaJpZM4EbfGw .

kriswiner avatar Jan 23 '17 17:01 kriswiner

Hi Kris, How about Your test? Is it worth (in the meaning of data quality - jiggling, acccuracy and sensivity) to replace LSM9DS0 with MPU9250? Or there is any other alternative which gives the good readings? Bests! Adam

cavetronic avatar Mar 08 '17 09:03 cavetronic

https://github.com/kriswiner/MPU-6050/wiki/9-DoF-Motion-Sensor-Bakeoff

MPU9250 is the right choice.

On Wed, Mar 8, 2017 at 1:02 AM, cavetronic [email protected] wrote:

Hi Kris, How about Your test? Is it worth (in the meaning of data quality - jiggling, acccuracy and sensivity) to replace LSM9DS0 with MPU9250? Or there is any other alternative which gives the good readings? Bests! Adam

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kriswiner/MPU-6050/issues/6#issuecomment-284985480, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qvZZcC-2A_36f-y-pysnt0r-204dks5rjm6JgaJpZM4EbfGw .

kriswiner avatar Mar 08 '17 16:03 kriswiner

Thank You so much!

cavetronic avatar Mar 09 '17 09:03 cavetronic

Hi Kris,

Your Bakeoff is a great bit of work Kris. Practical, to the point, and just the right amount of detail. Exactly what I wanted to know. Thanks.

Well, perhaps there is one other thing I'd like to know...

I'm currently using the MPU9250 for my eldercare activity sensor. I need to do some rather specialised signal processing for my app, which at present has to be done on my host - an M4. I notice that it is claimed that one can write custom signal processing code to embed in the BMX which is an M0 I think.

Do you have any comment or experience on the feasibility/ease/benefits of that please?

Anyone else out there have an opinion.?

mik00 avatar May 19 '17 03:05 mik00

You are thinking of the BMF055, which has an M0 and can be programmed somehow. The BNO055 also has an M0 but is closed to the user. I have never successfully used the BMF055. But my opinion is the Bosch suite of sensors on the BNO055/BMF055 is subpar, and I would stick with the MPU9250 if I were you. We use the EM7180 as a motion co-processor with the MPU9250 and since we can write drivers for it we have added some specialized application code (like pressure/accelerometer fusion for better altitude estimation for flying robots for example). But the RAM is severely limited and is really not appropriate for extensive applications code.

On Thu, May 18, 2017 at 8:09 PM, mik00 [email protected] wrote:

Hi Kris,

Your Bakeoff is a great bit of work Kris. Practical, to the point, and just the right amount of detail. Exactly what I wanted to know. Thanks.

Well, perhaps there is one other thing I'd like to know...

I'm currently using the MPU9250 for my eldercare activity sensor. I need to do some rather specialised signal processing for my app, which at present has to be done on my host - an M4. I notice that it is claimed that one can write custom signal processing code to embed in the BMX which is an M0 I think.

Do you have any comment or experience on the feasibility/ease/benefits of that please?

Anyone else out there have an opinion.?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kriswiner/MPU6050/issues/6#issuecomment-302597322, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qgR2YsD-2dtTagG3YvJTMSEUGDCHks5r7Qf2gaJpZM4EbfGw .

kriswiner avatar May 19 '17 03:05 kriswiner

Thanks so much for the swift response. My head is spinning with all the different Bosch variants.
Are you connected with Pesky at all? I'd like to ask more questions about the EM7180, but I don't want to clog up this thread.

mik00 avatar May 19 '17 06:05 mik00

Yes, email me at [email protected] for more discussion.

On Thu, May 18, 2017 at 11:54 PM, mik00 [email protected] wrote:

Thanks so much for the swift response. My head is spinning with all the different Bosch variants. Are you connected with Pesky at all? I'd like to ask more questions about the EM7180, but I don't want to clog up this thread.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kriswiner/MPU6050/issues/6#issuecomment-302624496, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qnazjVwTyErqWkop6xMe1M3tIl2mks5r7Ty_gaJpZM4EbfGw .

kriswiner avatar May 19 '17 15:05 kriswiner

@kriswiner - Great information. Can you comment on the quality of the data from the MPU9250 when forward motion of the device is in excess of 10mph? I am currently experimenting with the BNO055 in an aviation application and it is utterly useless with even the slightest forward speed. This is not just drift, all of the values start producing non-sensical and erratic values. Do you have any data to suggest that the MPU9250 would fare better?

saedelman avatar Jul 16 '17 20:07 saedelman

Yes, we use the EM7180+MPU9250 in small (35 g ) quad copters and the performance is excellent with heading accuracy better than 2 degrees.

The MPU9250 sensors are significanlty beter than those on the BNO055 while the sensor fusion solution is equivalent, but good fusion cannot make up for bad sensor data.

In your case, have you elimanated calibration errors? This is the most common source of poor results. Even the BNO055 should be able to provide stabe absolute orientation estimation with proper calibration albeit with ~7 degree heading accuracy. Part of the problem is with the BNO055 dynamic mag calibration. AKA magnetic anomaly detection/correction. The EM7180 has this too but it seems to work much better on the EM7180 with much less jumping around and more predictable behavior.

On Sun, Jul 16, 2017 at 1:10 PM, saedelman [email protected] wrote:

@kriswiner https://github.com/kriswiner - Great information. Can you comment on the quality of the data from the MPU9250 when forward motion of the device is in excess of 10mph? I am currently experimenting with the BNO055 in an aviation application and it is utterly useless with even the slightest forward speed. This is not just drift, all of the values start producing non-sensical and erratic values. Do you have any data to suggest that the MPU9250 would fare better?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kriswiner/MPU6050/issues/6#issuecomment-315633888, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qvo1OXbx-4WNG_u10z5s1zv-hMUrks5sOm41gaJpZM4EbfGw .

kriswiner avatar Jul 16 '17 20:07 kriswiner

@kriswiner - Thanks for your comments. The impression I have is that their fusion model is optimized for slow movements only (e.g. applications for VR headsets, etc.). Perhaps, an interesting experiment would be to conduct the tests you previously did for the bakeoff using your 4 different types of MEMS sensors while in a moving vehicle (fixed speed and with acceleration). There is very little data available on how these sensors behave with acceleration/deceleration present.

saedelman avatar Jul 16 '17 22:07 saedelman

We do real time telemetry on our qaudcopters, which we cannot share, but i can tell you the EM7180+MPU9250 has no problem maintaining accurate absolute orientation at the (relatively small) moving velocities.

On Sun, Jul 16, 2017 at 3:20 PM, saedelman [email protected] wrote:

@kriswiner https://github.com/kriswiner - Thanks for your comments. The impression I have is that their fusion model is optimized for slow movements only (e.g. applications for VR headsets, etc.). Perhaps, an interesting experiment would be to conduct the tests you previously did for the bakeoff using your 4 different types of MEMS sensors while in a moving vehicle (fixed speed and with acceleration). There is very little data available on how these sensors behave with acceleration/deceleration present.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/kriswiner/MPU6050/issues/6#issuecomment-315641807, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qnpw-sqdtFYmoPo4RyLx_FfCqghLks5sOoyegaJpZM4EbfGw .

kriswiner avatar Jul 16 '17 22:07 kriswiner

@kriswiner Where do you buy EM7180? I couldn't find it anywhere.

didasy avatar Aug 01 '17 06:08 didasy