I originally posted the following in the General forum and was advised to post to a more technical area (I couldn't see a way to just move the original). This is as close a fit as I could find on first look.
I'm trying to use the inclinometer to develop an angle-measuring app for Windows, but am running into extremely variable Roll angle readings. Pitch and Yaw generally seem better, but I'm not using these so I haven't put in time to verify that.
I am using Microsoft-recommended SensorInfo app from the Windows Store as well as calling into Windows.Sensors.Devices.Inclinometer directly in my own app to obtain these problematic readings.
From these two sources I get the same (off) readings when measuring a mechanically-measured horizontal surface. The readings are not 0. Moreover, they are not 0 to varying magnitudes (i.e. the values that are being reported can be anywhere from ~3 degrees to as much as 75 degrees. Altering (then returning) the tablet's pitch prior to checking the roll value leads to the higher deviations.
The readings persist after performing tablet calibration doing the figure-8 and rotation-along-three-axes methods.
I have seen this behavior on two separate tablets (HP and Lenovo) having Intel sensors. I have also seen this when the tablet is in different locations (i.e. home and office).
So, it seems like there are three possibilities:
1) The Microsoft libraries are not reporting correct values (which I'm making an inquiry about).
2) There need to be corrections made to the Roll, Pitch, Yaw values that I am not aware of (documentation is scarce so far as I can tell). This is certainly a possibility, but Pitch and Yaw seem to be consistent regardless of orientation of the other two axes. Then there is the fact that I can position the tablet in the same orientation (e.g. I alter the pitch and then return it to the original value) and the readings will be different.
3) The sensor itself is not providing correct data.
The other thing I've noticed is it takes Roll a long time to settle down, going to the new value by passing through all of the intervening values rather than just jumping to the new stable point. However, this is a moot point for the moment since the readings themselves are off from what I expect and not usable.
So, is there documentation describing how the inclinometer is supposed to work and/or testing software that will be more definitive about the validity of the sensor readings?