In Handys wird wohl lediglich die "hard-iron"-Kalibrierung gemacht.
Heisst nix anderes, als dass der Sensor auf die Umgebungsbedingungen "kalibriert" wird, Nötig ist das dann, wenn sich magnetfeldmässig andere Bedingungen ergeben, z.B. nen Lautsprecher in der Nähe ist, oder ne Freileitung.
In meinem Monstertruck (der hat nen HMC 5883l drin) hab ich die auch gemacht, da sich dort in der Umgebung ansonsten zu viele Störungen ergäben, beispielsweise ist einer der Antriebsmotoren nicht mal 20 cm entfernt.

http://forum.arduino.cc/index.php?PH...opic=201453.15 dort die ganze Geschichte dazu. Seinerzeit war er noch in nem Spielzeugauto am werkeln, aber mit der selben Vorgehensweise läuft er nun im Monstertruck -ausreichend- genau (nur ausreichend heisst, dass etwa drei bis fünf Grad Genauigkeit erreicht werden, das genügt mir, da es nen unverhältnismässig hoher Aufwand wäre, es genauer zu bekommen und ich ja fürs Grobe ohnehin noch nen GPS an Bord habe).
Diese Kalibrierung muss immer wieder gemacht werden, wenn man am Aufbau was ändert- schon nen strom führendes Käbelchen in der Umgebung beeinflusst den Kompass spürbar- genau das aber kann man so weg"kalibrieren".