I use Core Motion\'s sensor fusing to get north oriented motion updates:
[motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameX
From documentation
typedef enum {
CMErrorNULL = 100,
CMErrorDeviceRequiresMovement,
CMErrorTrueNorthNotAvailable
} CMError;
It seems error 102 is CMErrorTrueNorthNotAvailable
, and its description is
CMErrorTrueNorthNotAvailable
It seems not much information is available regarding what causes this error. It can be any hardware issue with the device.