Magnetic Output Drifts with Temperature Change

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Magnetic Output Drifts with Temperature Change

4,291 Views
austinrussell
Contributor I


Hello,

I am using a NXP  FXOS8700CQR1 aka "SENSOR XTRINSIC 6-AXIS QFN" a six axis magnetometer and accelerometer. My application causes the sensor to be cooled by approximately 10 degrees Celsius (25 - 10) over the time it collects data. I have noticed very bad "drift" in both the X and Y axis that correlates to the change in temperature. They drift while being cooled down and while being warmed up. Eventually they level off but it makes the calibration that I do on the in the warmer temperature incorrect as I am using this as a compass doing tilt, hard, and soft iron compensation. Is this typical of the sensor? How can I get rid of it?

Labels (2)
0 Kudos
Reply
4 Replies

3,361 Views
reyes
NXP TechSupport
NXP TechSupport

Hello,

The FXOS8700 it’s already factory calibrated for temperature drift, but despite the calibration the output is still affected by temp changes. Sensitivity will still suffer some offset due this temperature, approximately +- 0.1%/°C, and also the output would be affected by a typical hysteresis of 0.5% and a max Non-linearity of +-1%FS

A big recommendation would be to make the offset compensation before the temperature tests.

Another thing that could be causing this variations, could be the noise caused by the temperature chamber. So another big recommendation would be to make the Hard-Iron calibration also before the temperature tests to avoid or somehow isolate the noise that could cause the chamber to the magnetic field measured by the magnetometer.

Another thing that could be causing these variations that you are seen could be caused by changes of the magnetic fields caused by components around the FXOS8700. So another big recommendation would be to make the Hard-Iron and Soft -Iron calibration before the temperature tests to avoid or somehow isolate these changes in the magnetic field measured by the magnetometer.

So, right now, I just want to be sure that you are aware of the other components that could cause some extra offset to the output value and that you are correctly performing the Soft and Hard Iron Calibration.


Have a great day,
Jose

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

3,361 Views
austinrussell
Contributor I

The data that I am working with is properly Hard and soft iron compensated. (It is turned from a tilted ellipse to a circle around 0,0) I am just dealing with dips or inconsistencies in the data that I now know are temperature related. I am not using a temperature chamber. My data comes from a test where the sensor was underwater to depths of almost 500 ft. The temperature is much cooler that deep which is causing my drift. Do you have any suggestions on how to mitigate this drift other than hard and soft iron compensation? I am seeing over the maximum 8 uT /C offset shift at times.

Thanks,

Austin Russell

0 Kudos
Reply

3,361 Views
anthonyduhamel
NXP Employee
NXP Employee

Hi Austin,

We did some TCO characterizations on the FXOS8700CQ magnetometer data and we never registered values as bigger as you (8 uT/°C). Typical value is ±0.8 uT/°C.

Did you well convert the LSB to the uT?

To compensate the temperature effect, there is no other way than making a temperature calibration at the assembly line:

  • collect two magnetic data (for each axis) at two different temperatures (also store the internal FXOS8700CQ  temperature)

     Note:  using a bigger temperature gradient (ΔT) makes the TCO calibration more accurate

tco.PNG

  • compute and store the TCO coefficients (for the 3-axis) in the MCU.

pastedImage_1.png

  • and then compensate (with the MCU) the raw magnetic measurements before any HardIron and/or SoftIron calibration. Use the temperature compensated magnetic data to make the magnetic calibration.

      Note: to make the temperature calibration, you also need to get the sensor temperature at each magnetic measurement, use the TEMP register (address 0x51)

pastedImage_6.png

I hope it will be helpful for you.

Have a good day.

Anthony

0 Kudos
Reply

3,361 Views
reyes
NXP TechSupport
NXP TechSupport

Hi Austin,

Seems like the effect you are seeing is almost certainly due to temperature changes which affect the FXOS8700 sensor. It is important to mention that the FXOS8700 is normally used in a smartphone or tablet where there is a continuous orientation change which allow the capturing of new magnetic data in real time as the temperature changes and the calculation of a magnetic calibration which tracks the temperature changes. We do not recommend the use of the FXOS8700 for the type of application that you require.

When looking for an alternative supplier's part, the most important figures in the datasheet for your application are the temperature coefficients of offset and gain changes and these should be as small as possible.

If you want to use the FXOS8700 for this application, you would need to incorporate a temperature compensation using the FXOS8700’s integrated temperature sensor and an external ADC, unfortunately we do not have any example or suggestion about to make this temperature compensation.


Have a great day,
Jose

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply