Mais alors comment expliqué cette correction ?
La correction s'explique par le fait que l'on compense par un décalage du zéro car le capteur a visiblement un problème! Je n'ai jamais vu une telle correction d'offset !
l'erreur de 4% sur le gain, elle, n'était pas trop critique.
Si tu veux t'affranchir de la compensation d'offset du soft, tu peux rentrer ces valeurs dans les registres du capteur:
la correction X dans 05h (lsb) et 06h (msb) avec un codage en complément à 2 !
idem sur Y dans 07h et 08h
il n'y a pas de registre de compensation de gain apparemment. Donc il faut le faire en soft.
Pour le GPS avec boussole de Paul, à priori ton programme devrait être le même, sans offset à priori.
La puce est un HMC5883L avec Xmsb en 03h, Xlsb en 04h Ymsb en 07h et Ylsb en 08h
Attention toutefois que l'idéal est de faire ces compensations d'offset quand le module est dans son environnement définitif.
Mais ce n'est pas ça encore, car après avoir appliqué l'offset sur X en particulier, tu derais avoir beaucoup plus de valeurs négatives...