Ask / Submit

compass is broken

asked 2014-08-23 20:49:37 +0300

mornfall gravatar image

updated 2016-09-08 19:22:39 +0300

misc11 gravatar image

Something with compass is broken in sailfishos (or alternatively, both the compass apps in the store). Whenever the compass is enabled for the first time, it takes whatever orientation it was in as the north and stays stuck that way. You can see the result below (note that what I did was start the compass app on the phones when they were 90 degrees rotated with regards to each other). The compass used to re-orient after a minute or so to point in the actual north direction, but that doesn't seem to be the case anymore (even then, it was pretty bad to wait for a minute to get north). In other words it works more like a gyroscope than like a compass. (There is no magnetic field other than Earth's around to explain this; of course, any magnetic field would affect both phones equally...).

image description image description

update: the problem is still not fixed in SFOSv2.0.1.11

update: the problem is still not fixed in SFOSv2.0.2.51 - jolla 1

edit retag flag offensive close delete



Did you calibrate the compass with the 8-shaped figure motion?

max ( 2014-08-23 21:22:03 +0300 )edit

I have noticed the same: compass app seeing north where the phone was pointing when launching the app. Calibration (motion in 8 shape) didn't help. I didn't wait to see if the orientation corrects itself later.

ssahla ( 2014-08-23 21:30:07 +0300 )edit

'Orienteering' is another nice compass app. #offtopic

User ( 2014-08-24 10:26:02 +0300 )edit

In Sf OS the Compass gets calibrated in not more than 10 seconds, if you turn the phone around on horizontal level once.

JoHe ( 2016-06-21 13:26:51 +0300 )edit

i can not confirm that its fixed: calibrating takes up to 2min. after that - being very accurate - in the course of the next 5-10min it will deviate up to 90° from the correct value. even when correct: moving it from one wall of my livin room to the opposite one (parallel movement) the compas value will change by up to 30°.

no, the compass is still completely broken and unusable! (not so mention this bug)

misc11 ( 2016-06-21 14:03:51 +0300 )edit

3 Answers

Sort by » oldest newest most voted

answered 2016-06-18 07:02:03 +0300

zagrimsan gravatar image

updated 2016-06-20 07:19:54 +0300

In my experience using 8-shaped motion will slowly rotate the compass north (the direction perhaps depending on the direction of the motion), but if I do that when the compass north matches true magnetic north, phone compass will start to deviate from the reality. The result is the same no matter which app is being used. Basically, I've found the compass to be totally useless as it can't be relied at all. (been thinking of reporting that here but never got actually far enough to even find this Q).

However, I have now confirmed that my issues with the compass have mostly been due to using TOHKBD2 which it has magnets. The theoretical reasoning (one example from TMO) is that static magnetic field, even a strong one, shouldn't affect the electronic compass which relies upon detecting variation in the magnetic field, but reality kicks theory's butt once again (see the bottom of this post for details).

The tests I conducted:

Now that I finally did a comparison with 8-shaped motion with and without TOHKBD attached, it looks like calibration works pretty much ok without TOHKBD (although it seems not be spot on) but immediately goes south (pun intended) with it attached. Also, after deattaching TOHKBD the 8-shaped motion does return the north bearing to approximately where it should be. However, I didn't have any success using rotation around vertical axis.

Please note that in all cases shown below I was careful to place the phone so that it didn't interfere with the "old school" compass. Later on I discovered that there is some sort of interference in the magnetic field in that particular spot since moving both the compass and the phone up half a meter changes the bearing somewhat, but the difference of roughly -30 degrees between the compass needle and phone compass stayed the same. There's underfloor iron plumbing and large old radiators and stuff like that around so some variation in the bearing is probably due to those.

Initial state:

image description

After 8-shaped motion without any TOH attached:

image description

After continued 8-shaped motion without any TOH attached:

image description

After continued 8-shaped motion with now TOHKBD attached:

image description

After still continued 8-shaped motion with TOHKBD attached:

image description

So, it would seem that SFOS compass is not as crazy as I've thought it to be, I just need to "pack lighter" when I need it. Using Messwerk from OpenRepos it was rather easy to see that the readings immediately go to the bottom of the scale (which seems to be around -2 mT) when TOHKBD is attached, and don't move from there regardless of the device position. :( Too bad, but I can live with that. Just something to keep in mind as the compass reading available through the API seems to incorporate also accelometer data so that the reading is "alive" even though it has absolutely no relevance anymore soon after attaching TOHKBD2.

image description

edit flag offensive delete publish link more

answered 2014-08-23 21:37:13 +0300

mornfall gravatar image

Checking out the link from @max above, the 8-motion does nothing, but turning the phone 720 degrees horizontally does the trick.

edit flag offensive delete publish link more


Nevertheless, even though this fixes the compass (and might be a reason why the compass would “fix itself” after a while -- probably me moving around with it enough to calibrate it), something is amiss: the apps get a reading which is completely off. Either they should get an error (and tell the user to calibrate) and they don't -- the API is wrong -- or they do get an error which they disregard -- the API is right but the apps are wrong (but what's up with harbour QA then?).

mornfall ( 2014-08-23 22:39:03 +0300 )edit

Like I said, there is a bug effecting the calibration level data. It is not a bug in the API.

llornkcor ( 2014-08-24 01:54:03 +0300 )edit

Well, the system should know whether the compass is or isn't calibrated... it is, after all, returning data that is clearly bogus (and it surely has to know that the data it is returning is bogus).

mornfall ( 2014-08-24 02:23:21 +0300 )edit

answered 2014-08-23 23:35:18 +0300

llornkcor gravatar image

The compass does need to be calibrated at first.

I have had better luck doing the rotation calibration as opposed to the figure 8 calibration technique.

edit flag offensive delete publish link more
Login/Signup to Answer

Question tools



Asked: 2014-08-23 20:49:37 +0300

Seen: 1,370 times

Last updated: Sep 08 '16