Faulty compass on Windows Phones... will there be a fix?
I have looked at two Windows Phones (Lumia 800 and HTC Titan) and both have the same problem. It appears as though Windows is reading the binary code from the internal compass and casting it to a byte value (0-255), but as people know, compasses have readings
up to 360. On our phones we have looked at the magnetic heading and it seems that we can't get a reading over 255. We have even written our own software to grab the compass values to confirm this issue.
If you want to try and recreate it (don't just take my word for it), download Jack of Tools (or any other compass app) and set the heading to "magnetic". Then simply rotate your phone and see if it will display a number over 255. Neither of mine did.
To explain further: The magnetic heading is the heading the internal compass is feeding to the operating system. Then the operating system grabs that value and does some (or should do some) calculations to give you the "true" heading for where you are
on earth. For example, for me in New Zealand, the compass might say my magnetic heading is 315 degrees, but then the operating system should say "no his GPS coordinates are xxxx,xxxx so he has a declination of -20 and therefore his "true" heading is 295.
I've been experimenting with the WP7 compass API for some time now.
The issue is very location specific. If you are in the Northern Hemisphere you most likely won't see the issue. Here in New Zealand there is an overflow on the reported magnetic north heading at 255 degrees and the true north bearing is out by 255/104
degrees depending on which rotation you take.
Please, if you know of any way to get this issue in front of the WP7 development team let me know. I have examples and data to demonstrate the issue, I just haven't been able to get in touch with the right people.
Was this reply helpful?
Sorry this didn't help.
Great! Thanks for your feedback.
How satisfied are you with this reply?
Thanks for your feedback, it helps us improve the site.