A magnetometer unit (176; 230) for electronic devices, comprising logic, including hardware logic, configured to implement a calibration process comprising the following steps: receiving first magnetic response curve data from a first magnetic sensor and second magnetic response curve data from a second magnetic sensor displaced from the first magnetic sensor, wherein the first and second magnetic response curve data are received by rotating the first magnetic sensor and the second magnetic sensor, respectively, about an axis in a constant magnetic field, generating respective magnetic response curves bounding respective first and second response surfaces; generating a composite response surface from the first response surface and the second response surface by using bounding values of the first response surface and the second response surface; and storing the composite response surface representation in a non-transitory memory; in a subsequent use of the magnetometer unit, performing the following further steps: receiving third magnetic response curve data from the first magnetic sensor and fourth magnetic response curve data from the second magnetic sensor; generating a third response surface from the third magnetic response curve data and a fourth response surface from the fourth magnetic response curve data; determining a first error by subtracting data points associated with the third response surface from corresponding data points associated with the composite response surface: determining a second error by subtracting data points associated with the fourth response surface from corresponding data points associated with the composite response surface; and if the first error is less than the second error, selecting the third magnetic response curve data as an output of the magnetometer unit, otherwise selecting the fourth magnetic response curve data as an output of the magnetometer unit. receiving first magnetic response curve data from a first magnetic sensor and second magnetic response curve data from a second magnetic sensor displaced from the first magnetic sensor, wherein the first and second magnetic response curve data are received by rotating the first magnetic sensor and the second magnetic sensor, respectively, about an axis in a constant magnetic field, generating respective magnetic response curves bounding respective first and second response surfaces; generating a composite response surface from the first response surface and the second response surface by using bounding values of the first response surface and the second response surface; and storing the composite response surface representation in a non-transitory memory; in a subsequent use of the magnetometer unit, performing the following further steps: receiving third magnetic response curve data from the first magnetic sensor and fourth magnetic response curve data from the second magnetic sensor; generating a third response surface from the third magnetic response curve data and a fourth response surface from the fourth magnetic response curve data; determining a first error by subtracting data points associated with the third response surface from corresponding data points associated with the composite response surface: determining a second error by subtracting data points associated with the fourth response surface from corresponding data points associated with the composite response surface; and if the first error is less than the second error, selecting the third magnetic response curve data as an output of the magnetometer unit, otherwise selecting the fourth magnetic response curve data as an output of the magnetometer unit. receiving third magnetic response curve data from the first magnetic sensor and fourth magnetic response curve data from the second magnetic sensor; generating a third response surface from the third magnetic response curve data and a fourth response surface from the fourth magnetic response curve data; determining a first error by subtracting data points associated with the third response surface from corresponding data points associated with the composite response surface: determining a second error by subtracting data points associated with the fourth response surface from corresponding data points associated with the composite response surface; and if the first error is less than the second error, selecting the third magnetic response curve data as an output of the magnetometer unit, otherwise selecting the fourth magnetic response curve data as an output of the magnetometer unit. determining a second error by subtracting data points associated with the fourth response surface from corresponding data points associated with the composite response surface; and if the first error is less than the second error, selecting the third magnetic response curve data as an output of the magnetometer unit, otherwise selecting the fourth magnetic response curve data as an output of the magnetometer unit.