I'm experiencing the same problem. The heading only gives random values.
Here are my calibration results:
magXmin = -684
magYmin = 1081
magZmin = 512
magXmax = -617
magYmax = 1131
magZmax = 1023
And in this image you can see the values I get when I try to get the HEADING and TILT COMPENSATION (I've named yawHeading and yawCompensation, but the logic of the code has not been changed):
Since I'm not an expert on hardware (I'm a software developer) and this is my first time I've soldered some circuits, is it possible that the magnetometer is broken? Is there any way to check if it's working?
Any help would be greatly appreciated. Thanks.