2020-04-22 08:23 PM
Dear ST,
As I tested with, the LSM6DS drifted follow temperature. As you can image bellow, red line is temperature and green is degree (was calculated from X, Y, Z )
I'd like to confirm LSM6DS had internal temperature compensation? If NO, how to do it? Or any chip was integrated build-in this feature?
thanks and regards,
Tuyen
2020-04-24 03:45 AM
Hi Tuyen, the internal temperature sensor is calibrated at production tester level, while the ZRL and ZGL temperature variation gain is declared in the datasheet p.21. I suggest you to compensate via SW (real-time or in post-processing) the output data with the declared average temperature variation, positive for increasing temperature from 25°C, and negative for decreasing temperature.
Regards
2020-04-26 07:38 PM
Thanks Eleon BORLINI for response,
I had a concern that all chip LSM6DS impact by temperature are same as +/-0.5mg/1 degree?
We also found that, It is small effect when we put horizontal and big effect when put vertical. Any different impact through 3 axis X, Y, Z?
regards,
Tuyen
2020-04-27 03:14 AM
Hi Tuyen, +/-0.5mg/1 degree is the typical value, although max and min values are not declared, mostly because they depend on the application environment, the soldering process (e.g. offset introduction due to an unwanted bending), the process spread. In the case you are finding outliers, a post-processing / average compensation is suggested... The impact on the 3 axis is similar for each other, although Z can be slightly asymmetrical with respect to X and Y axis, for mechanichal design reasons. Regards
2020-06-09 07:54 PM
Thanks Eleon,
I'd like to temperature compensation +/-0.5mg/deg for LSM6DS. As i understand from your source
float_t lsm6dsm_from_fs2g_to_mg(int16_t lsb) {
return ((float_t)lsb * 0.061f);
}
We need add to X, Y, Z raw data value (0.5/1000)*16.394*(temperature- 25) right?
let example X = 100, Y = 200, Z = 300 at 50 deg then
X = X + (0.5/1000)*16.394*(50- 25) = 100 + 204 = 304
Y = Y + (0.5/1000)*16.394*(50- 25) = 200 + 204 = 404
Z = Z + (0.5/1000)*16.394*(50- 25) = 300 + 204 = 504
Am i correct?
thanks and regards,
Tuyen
2020-06-11 02:58 AM
Hi Tuyen, it is a linear compensation and I suggest you to compensate the value once you have changed the raw data from LSB to mg
Regards
2020-06-11 03:28 AM
Hi Eleon,
Please correct me if i am wrong. I see in datasheet LA_OffDr = +/-0.1mg/C. That mean I need
X_comp = X + (T-25)*LA_OffDr = X + (T-25)*0.1*16.394
Is it right?
thanks
2020-06-11 03:38 AM
Hi Tuyen, for the LSM6DS3 the LA_OffDr = 0.5mg/C... but yes, you are right:
Regards
2020-06-14 08:39 PM
Thanks Eleon,
I double checked my part is LSM6DSMTR so i need try compensate +/-0.1mg
regards,
Tuyen