Tuve un Nexus S y experimenté el mismo problema, que no estaba presente en el Nexus One.
A pesar de mi investigación en línea, la postura no oficial fue que se trata de un defecto de hardware en la línea de productos que Samsung y Google no notaron o se dieron cuenta demasiado tarde para hacer algo al respecto. El lugar más apropiado para quejarse de esto sería los foros de productos de Google. Aquí hay un hilo en el que se discute este problema.
http://groups.google.com/a/googleproductforums.com/forum/m/#!topic/mobile/8ODgVdPy5Wk
...una alternativa sería llamar a Samsung y ver si reconocen que es un fallo de hardware.
Lamentablemente, no conozco ninguna solución para el problema, y he comprobado que, aunque la solución (calibración) ayuda, el problema no desaparece por completo o se repite poco después. Sólo para confirmar, el comportamiento que noté fue:
-
En los programas que muestran los datos de la brújula (como Marine Compass), al girar el teléfono se produce una rotación parcial en los datos del sensor, seguida de una rotación fantasma inesperada de 90 grados, según el teléfono. Esto hace que el compás mostrado no coincida con la verdadera dirección a la que apunta el teléfono.
-
En los programas que intentan mostrar la orientación completa del teléfono, incluida la dirección a la que apunta (como Sky Map), la visualización es inestable y rara vez ofrece una indicación real de hacia dónde apunta el teléfono. Las opciones de suavizado reducen ligeramente las vibraciones, pero la diferencia es marginal.
-
A pesar de ello, los juegos que dependían únicamente de los cambios de orientación (como esos juegos con bolas metálicas que hay que guiar a través de un laberinto, el Laberinto, si no me equivoco) funcionaban perfectamente.
Decidí actualizar a un Galaxy Nexus, y noté que la brújula funciona como debería, y los juegos del Laberinto siguen funcionando. Sky Map, sin embargo, sigue dando saltos.