(I hope this is a good place to ask this kind of support question)
I've fully implemented an asynchronous sensors api testing app. currently i'm trying to read the compass: aka
and I find I'm getting erroneous data. I orient the laptop in various cardinal directions. I do not seem to get a reliable 360 degrees of bearing. mostly I get 60-180 (always positive, but I can get almost all 360 values if I twist it around quickly). If I tilt the UB upright (keyboard perpendicular to the floor) then for a moment, with the key's facing north, I get a correct bearing..however with a small amount of yawing back and forth, there is an obvious drift such that after a few seconds, north is now 5% to the west. If I continue yaw'ing back and forth, the drift persists until 0 degrees (ergo the keyboard) is fully facing west. I don't seem to ever get correct bearing results when the UB is sitting flat.
Is the UB compass truly this unreliable? Or perhaps the UB Intel sent me is faulty? Is there some kind of ongoing calibration I'm supposed to do? I haven't found anything online or in intel/microsoft sensor API docs that cover this kind of drift error. I would expect the compass to "just work"(tm).
Thank you for any info, suggested reading, or direction you offer.