I have Fossil G6. I tried to integrate crude “point to specific place” dial, and stumbled upon the fact, that #CMP# returns tilt, instead of heading, making any compass-related stuff impossible. I dug around expressions and found gyroX(), which seems tied to tilt side to side (for example), gyroY(), which is tied with tilt front/back and there is no gyroZ() - which should perhaps return something tied to spinning myself around. Why it is the case?
I used the #CMP# tag in MAG 2085 for a working compass and had no problems. The expression I used is (round(-#CMP#)). If you want to look inside the face and see how it’s done, inspection is open. The element is named “Compass-4-Points.png”.
It SHOULD work. It’s simply has wrong source data. Sadly, your face behaves the same - compass spins around with how I tilt my hand, instead of real heading. This may be watch specific issue.
The first thing you have to do is wave your watch around in a figure 8 pattern so the compass can align with north. After that happens it will be pretty close, but I’m not sure what position the magnetic sensor is inside a watch. You might only get correct readings if you are holding the watch’s face on a horizontal plane or on a vertical plane. I’ve found even after the watch gets the north bearing it’s still a little on the jumpy side. I don’t do hardly any watchfaces with the compass function just due to those drawbacks.