I'm using lsm9ds1 accelerometer. I retrieved row data in mg for Y, Y, Z accelerometer axes every 10 ms and calculated the magnitude sqrt(x^2 + y^2 + z^2) but this magnitude is sometimes less than 1g.

How can I get magnitude < 1g? Is that physically possible?

magnitude in mg

acceleration magnitude

  • 2
    \$\begingroup\$ Well, guess what it should be while you drop it \$\endgroup\$
    – PlasmaHH
    Jan 30, 2017 at 16:19
  • \$\begingroup\$ @PlasmaHH i didn't get it, I think when I drop it or let it on the table it would have the same value of 1g \$\endgroup\$ Jan 30, 2017 at 16:23
  • 3
    \$\begingroup\$ @MakhloufGharbi Why do we weigh less when falling? \$\endgroup\$ Jan 30, 2017 at 16:29
  • 1
    \$\begingroup\$ Then perhaps a quick look at en.wikipedia.org/wiki/Gravity_of_Earth may explain the low reading - the value of g depends where on Earth you are plus there is an assumption the chip is 100% accurate. \$\endgroup\$ Jan 30, 2017 at 16:34
  • 2
    \$\begingroup\$ Not electronics, but you need to take a bathroom scale into an elevator and stand on it as the elevator stops and starts. \$\endgroup\$ Jan 30, 2017 at 17:27

5 Answers 5


A value less than 1 g is certainly possible if the accelerometer is being accelerated downward. For example, if it were in free fall, it would read 0 g.

  • \$\begingroup\$ I tested with free fall and indeed I got less then 200mg I didnt know that \$\endgroup\$ Jan 31, 2017 at 9:56

If you are looking at individual samples or short term averages then that's perfectly reasonable.

MEMS accelerometers have 3 important characteristics, a bias offset, a drift rate and a noise level.

The bias offset is as you'd expect from the name, the average reading at the 0 point. The datasheet should be able to tell you the maximum this should be. What is a little odd is that the value can be different every time you power the sensor up.

The drift rate is how fast the bias will change over time.

And the noise level is how much random noise is added to the current measurement, this is generally large enough that for any meaningful accuracy you are typically looking at having to average a few thousand measurements.

There is also a non-linearity in the output but this is normally fairly constant and compensated for at the factory. It's never perfect but it's normally relatively small in comparison to the other errors.

Each of these parameters is different for each axis.

So yes, getting a value under 1 g is quite possible. As is getting a value over 1 g. In fact at times it's impressive when you manage to get anything usable out of the results.

  • \$\begingroup\$ even though, is it possible to get a too low magnitude like what I got there in mg x : -5.612 y : 43.92 z : 17.08 \$\endgroup\$ Jan 30, 2017 at 16:52
  • \$\begingroup\$ So a total of ~0.05 g? No you shouldn't get that if it's stationary. If it's moving then you can get virtually any number. How stable is the surface it's sitting on? Did someone with heavy footsteps walk past or did something heavy get dropped onto the desk? If doesn't take much to create a short spike. \$\endgroup\$
    – Andrew
    Jan 30, 2017 at 17:10
  • \$\begingroup\$ no it's not stationnary, in fact I simulated steps with my hands. but for my logique, no matter what you do you cant get 0.05g or you can??? is there any possible way to get 0.05g?? \$\endgroup\$ Jan 31, 2017 at 9:42
  • 1
    \$\begingroup\$ @MakhloufGharbi it's easy to get 0 or negative values. Accelerate your hand downward at 9.8m/s^2 and you'll achieve 0g. Punch it down faster and you'll get negative. An aerobatic airplane doing an outside loop is generally around -4 G vertical acceleration (reference frame of the pilot) \$\endgroup\$
    – casey
    Jan 31, 2017 at 16:22

I guess by "norm" you really mean magnitude. That would be the square root of the sum of the squares of each component.

On the surface of the earth, the measured acceleration should only be 1 g when not accelerating. There are also small differences in the earth's gravity due to altitude, what rock is beneath you, how magma is moving around near you, and latitude. However, these differences are quite small.

Every accelerometer also has some offset and gain error. That is what you are seeing at the right end of your graph. It looks like this one is reading a couple percent low. Note that this error can be orientation dependent. There are really three separate sensors in a 3-axis unit, and each can have its own gain and offset error.

Usually you deal with this by calibrating each unit during production, then saving calibration factors in non-volatile memory. You hold the sensor fixed in each of 6 axis-aligned orientations being down. From those, you can determine the gain and offset to apply to each individual axis.


A typical accelerometer measures specific force, which is non-gravitational force acting on an object. An accelerometer in free fall in a vacuum would measure 0g since there are no external forces acting upon the accelerometer, despite that fact that the gravitational acceleration would be 9.8 m/s^2.

It may help if you understand how exactly a MEMS accelerometer measures acceleration. This blurb on Wikipedia should help.

Modern accelerometers are often small micro electro-mechanical systems (MEMS), and are indeed the simplest MEMS devices possible, consisting of little more than a cantilever beam with a proof mass (also known as seismic mass). Damping results from the residual gas sealed in the device. As long as the Q-factor is not too low, damping does not result in a lower sensitivity.

Under the influence of external accelerations the proof mass deflects from its neutral position. This deflection is measured in an analog or digital manner. Most commonly, the capacitance between a set of fixed beams and a set of beams attached to the proof mass is measured.

When your accelerometer is sitting undisturbed on a surface (and is properly calibrated), the magnitude of the acceleration should be precisely 1g. Otherwise, it will output an acceleration equal to the sum of the external forces acting upon it.


Gravity isn't uniform across the earth, surprisingly. But I think this may just be a calibration issue. The datasheet says (p12)

"LA_TyOff | Linear acceleration typical zero-g level offset accuracy (2) | FS = ±8g | ±90 mg"

That (up to) 90mg offset value is consistent with your observation of values of 10-20mg below 1g.

Try measuring it at the foot of a large mountain; you may get a different result.

  • \$\begingroup\$ the smallest values of the norm I've got for 20 minutes data acquisition in mg are 47.45721593 48.25836417 49.9014302 49.94018999 50.78835237 51.01759351 53.10574658 53.91351029 58.34406856 59.13867418 60.77755441 61.51220159 61.69823583 63.44656889 64.55356523 they are far from 1g anyway. but they are less then 1% anyway \$\endgroup\$ Jan 30, 2017 at 16:27
  • \$\begingroup\$ But they're all less than 90mg? That seems to be what the manufacturer guarantees you. So it sounds like you need to work out an "average" offset and subtract it in software. \$\endgroup\$
    – pjc50
    Jan 30, 2017 at 16:31
  • \$\begingroup\$ please I didn't get it here, you said they are less then 90mg. what's the relationship? for me the 90mg offset is the max error I can get. so the norm error at max should be +-90mg but it stay arround 900, not 48 mg anyway \$\endgroup\$ Jan 30, 2017 at 16:34
  • \$\begingroup\$ here an example of my raw data in mg : x : -5.612 y : 43.92 z : 17.08 \$\endgroup\$ Jan 30, 2017 at 16:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.