cancel
Showing results for 
Search instead for 
Did you mean: 

Can LSM6DS3 measure absolute angle or Static angle?

MLy
Associate II

Dear Sir,

Can we use LSM6DS3H measure a tilt angle referenced to Earth?

It has 6DOF angular velocity and velocity measurement. Can we combined these 2, do some calculation to measure its tilt angle / static angle. Which mean when unit turn on or start from reset, can it see its angle?

We urgently need to know this because we already put this chip in our design and don't want to change it. We need to measure absolute angle.

Thanks so much!

Martin

4 REPLIES 4
MLy
Associate II

Dear Sir,

When reading value of X and Y velocity value from LSM6DS3 chip, it does show a value referenced to its tilt angle. Should I assume the tilt angle can be calculated from that?

Should I also involve the angular velocity X and Y values too?

Do you have any equations to do that?

Thanks a lot!

Martin

Eleon BORLINI
ST Employee

Hi Martin @Community member​ ,

yes, you can calculate the tilt angle (absolute, in the sense of referenced to Earth) using the acceleration data of the LSM6DS3.

You can refer to these two application notes (this one and this other one) for an explanation on how to do it, but essentially you have to calculate the following formula, controlling the environmental noise as much as possible:

0693W000005Cc5NQAS.pngPlease note however that the best ST device for the inclinometer application is for example the IIS3DHHC.

-Eleon

MLy
Associate II

Hi Eleon,

Thanks for your reply.

The question is when the value of acceleration X and Y is range from around 0 to 0x2000 when tilt it from 0 to 90 degree. should I convert to degree like

x = ( 16 bit acceleration X value ) * 90/0x2000 ?

its apec. do not have detail reference table from its value of the curve?

Thanks!

Best regards,

Martin

Hi Martin @Community member​ ,

if you are referring to the LSB to physical units conversion (that has to), you can refer to the formula available for example on LSM6DS3 Github drivers (link lsm6ds3_reg.c), depending on the full scale and the mode you have set. For example, in the FS = +-2g case:

float_t lsm6ds3_from_fs2g_to_mg(int16_t lsb)
{
  return ((float_t)lsb * 61.0f / 1000.0f);
}

-Eleon