Understanding MPU6050 real resolution and sensitivity

Hello,

I am trying to implement MPU6050 for structural vibration sensor. U have searched around and found that professional sensors for this finality have a resolution of 0.00005g. I understand that the minimal change they can detect is 0.00005g.

So, to be able to validate MPU6050 for this use, I have to first identify if it can have a resolution of this magnitude. I have read the data sheet, and found that at scale range of +-2g it has a sensitivity factor of 16384 LSB/g. So, what I am doing is dividing 1 by 16384 to get a resolution of 0.00006g, and interpretating this as the minimal variation the accelerometer can detect. Is that correct?

If that is correct, I have to also address errors/noise/driffiting on this account. I have read the data sheet, but couldn't understand what it said. He talks about initial calibration tolerance, nonlinearity, crossaxis sensitivity, but I don't know how to use these information to asses real noise/error inherent to the system, in order to determine the resolution of the accelerometer.

Thanks a lot.

The MPU-6050 is not manufactured for this use. It is a MEMS sensor for use in balancing robots and and inside handheld devices, it is noisy and it drifts.
From what I remember, the noise of the unfiltered data can be up to 0.01g in its default setting (I forgot what the default range is).

You need a special sensor for micro-vibrations.
Google for : building structural vibration sensor

If you want to build something yourself, have a look at this : Listening To The Sounds Of The Earth | Hackaday
It contains two links for more informations. One of those links is with a sensitive piezo element, like this one : Piezo Vibration Sensor - Large with Mass - SEN-09197 - SparkFun Electronics
It can be fun to use such a sensitive piezo element, but it is a lot more sensitive for certain frequencies, so you don't get really serious data.

1 Like

I see, that was what I was afraid of.

How can I assess such information from those I mentioned I have found on the datasheet (initial calibration tolerance, non-linearity, cross-axis sensitivity)?

I could not find anything specifically saying about the magnitude of noise. Is this something I have to perform tests with to determine? This would be important to determine the next sensors I will be using.

You can't read it in the datasheet. You buy one, you test it, you scratch your head and you say: "man! that thing is noisy !".
Don't get me wrong, they are sensitive. A truck driving by can be detected, but it is very noisy.
There are newer sensors, but I don't know how better they are.
All of them are used with filtering in software to get rid of the noise, but that would filter the micro-g values that you want as well.

That why I think that geophones are better. They are a coil and a magnet, and the noise depends on the amplifier.
Do you know how MEMS sensors are made ? MEMS - Wikipedia
Sometimes an accelerometer or gyro is a vibrating micro-mechanical thing, and the change in the vibration is used to measure the acceleration or rotation.

The spectral noise density for the accelerometer in the MPU6050 is given in the datasheet as 400 micro g per sqrt(Hz) for 10 Hz bandwidth.

You can very roughly estimate the minimum expected noise from that figure as 400 x sqrt(10) or about .001 g rms for 10 Hz bandwidth. It would be correspondingly higher if you choose a higher bandwidth.

Compare that estimate with what you actually observe when you just measure the acceleration values for the accelerometer sitting still in a very quiet, vibration free location. It will probably be higher.

Further reading: http://sound.westhost.com/noise.htm

Thanks jremington. The 0.01g that I remember is the maximum peak-to-peak noise without moving the sensor. That would be the 'static' noise ? for all frequencies I guess ?

Even the 0.001 g rms for 10 Hz bandwith is way too much for ren1.

Peak-to-peak noise would be more than double rms noise.

I seem to recall that the default bandwidth is 100 Hz, so you would estimate 400 x sqrt(100) = 4 milli g rms. That could easily lead to 0.01 g peak-to-peak.

Okay, thanks.

Guys, thank you so much for all the help. Still trying to find my way though microelectronics.

Jremington, thanks for the link and the information. Data sheets are still rough for my knowledge. For example, I will look further about this bandwidth factor, i did not deal with it yet.

I will search more about micro-vibration sensor, thanks for the hint Koepel. I recal reading an article about how gyroscopes and accelerometers are made and how they work, and they are considered MEMS right? Anyway, I will perform some tests with the MPU with a real beam or other structural element, and compare with one "professional" structural accelerometer. It will be very helpful to know the expected noise values when interpretating what I've got. But I think I will move towards other sensors, as you suggested.

Thanks again for all the help.

EDIT:

Did a quick and informal test here with the MPU6050. Got acceleration from Z axys (should be measuring 1g constantly) on a quite steady surface, around 1200 Hz, completing 30000 measurements. Imported to MatLAB, and got the maximum and minimum values of acceleration. Results were: 0.9934g and 0.9558g. So this is making a variation of 0.0376g on a signal that theoretically should be constant. Is this a correct way to assess the real noise of the sensor?
Please consider accelerometer wasn't on a perfect vertical position to give 1g, although the surface was maintained as still as possible during measurements.

1 Like