HMC6343 heading problems

Hello all,

I'm using the HMC6343 with Arduino mini to control an avatar's head rotation in 3D gamespace. Everything's wired up correctly, the code is uploaded successfully, and I'm getting stable heading data. Here's the problem:

The heading data (0 - 3600) seems non-linear, skewed more towards the upper area of the range, strangely. As I rotate from 0 to 90 degrees, the data corresponds - giving 0 - 900. But after that it starts to get inaccurate. When I'm actually at a rotation of 180 degrees, it gives me 1400, and 270 degrees gives me 2400 or so. Then the rest of the data gets scrunched into that last 90 degrees. It does end up back at 3600 (0) in the correct spot though.

Could this be magnetic interference? I've been sure to hold it several feet away from speakers, etc. just in case. Does it sound like I need to recalibrate, or is this behavior indicative of a broken sensor?

If I do need to re-calibrate, can someone describe the process in Arduino - I'm not the most experienced at this, obviously. The spec sheet says sending the 0x71 command permits entry into the calibration mode, and 0x7E exits calibration mode. Could I just send these commands using the send button while using Serial Monitor?

Thanks for the help.

best,
Zachary