Accurate heading information is crucial for many mobile services such as navigation, autonomous vehicles, and robot applications. The standard way to obtain heading information is by using a tri-axis magnetometer, which can measure the signal intensity of the magnetic field in three orthogonal directions. However, a magnetometer is known to be highly susceptible to environmental interferences that may easily generate error up to thousands of nano-tesla, causing unacceptable errors (e.g., 40 degrees) in the direction output and rendering the mobile service useless. We present a novel design for interference resistant heading measurement using multiple magnetometers. In this design, multiple magnetometers are placed around a circle, imitating the manual rotation of a single magnetometer. This arrangement allows us to automatically calibrate the devices against external interference, using the classic ellipse fitting method. We have implemented a system consisting of a STM32F103RC microcontroller and six AKM8975 magnetic sensors. Evaluation in realistic environments shows that our design can adaptively update the calibration parameters, reducing the original heading error from 150 degrees to below 2.5 degrees, and the heading error remains stable in environments with different patterns of magnetic perturbation.