Question about LSM6DSO32 gyro sensitivity

I'd like to use LSM6DSO32 but I have a question bout gyro sensitivity, I want to use it with FS = 500dps (LSM6DS_GYRO_RANGE_500_DPS) If I read the datasheet page 25 I can read in fornt of FS = 500dps the number 17.50.
So this number is the brut value return for 1°/s that's right ? So I need to use this value (17.50) in my operation to have the real value ?

Or I just nedd to use getEvent, maybe this function doesn't matter dps...

dso32.getEvent(&accel, &gyro, &temp);

Sensitivity describes the gain of the sensor and can be determined by applying a defined angular velocity to it.

Your LSM6DSO32 is a 3D accelerometer and 3D gyroscope giving its result as 16 bits value.

When you set your angular rate range at ±500 dps, what you are saying is that the 16 bits will represent the full range. when the 16 bits are 0x0000 you are at -500 dps and when the bits are 0xFFFF you are at +500 dps.

So you have 65536 values representing a 1000 dps range so in theory you should have 1000 / 65535 steps so that's 15,26 milli-dps per least significant bit. But what the table says is that after "factory calibration test and trimming" the typical measured value is 17.50 not 15.26.

if you look at existing library code, they will take into account this "gyro scale" factor to perform their math.

Ok great so I don't need to use this sensitivity in my code because the library always return a good value depending on DPS setting

yes, if you use this library and not the raw registers values, you are good to go, this is taken care of for you (it's still a typical value, so if you were to calibrate your sensor you might find it's not exactly this value for your sensor - but probably close enough).

Thanks for your help :grinning: it's only remains to me to create a function for convert rad/s in deg

something like this?

inline double deg2Rad(double degrees) {
  return degrees * 0.017453292519943295; 

inline double rad2deg(double radians) {
  return radians * 57.295779513082323;  

(depending on your Arduino a double won't have more precision than a float)

Yes I did exactly the same but I did the function without inline, why are you create this function inline?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.