The compass is working as well as we think it can. The compass in mobile devices is notoriously variable. Sometimes it is accurate and sometimes it can be off by many degrees. There is nothing we can do about this. We have spent a lot of time on this code and think it works as well as it can.