Sensors, Electronics and Prototyping

total calibration method

Welcome to Redshift Labs Forums UM7 Product Support total calibration method

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
  • #975
    John Mower

    Hi, I’m struggling with the UM7 and an overall calibration. I wondered what others (Caleb?) are doing for a total setup.

    What I have been doing thus far:

    (1) zero rate gyros

    (2) set magnetic reference vector

    (3) record cal data on at least 3 degrees of freedom, flash

    I have swapped 2 and 3, tried playing around with zeroing the Kalman filter in between, but I’m not getting good results.




    I’ve been having yaw (heading) drift issues like some others on this forum and I have a few questions. I’m replying to this post because some of the questions are related to how calibration should be done. Please excuse the laundry list, but if someone could help me answer all of these I’d have a much better understanding of how the magnetometer calibration works.

    Q1) Does setting the magnetic reference vector actually affect the performance (accuracy) of the yaw estimate? Or is it simply a way to reset the definition of North (that is, the zero heading point)? In my application I don’t care about heading with respect to Earth or any “absolute” frame. I only care about relative heading (how has the heading changed when my device is rotated from some prior stationary point). So do I need to be concerned with setting the magnetic reference vector?

    Q2) If it is important for me to set the magnetic reference vector, should I do it before or after magnetometer calibration?

    Q3) If I set the magnetic reference vector, should I simultaneously set the accelerometer reference vector? That is, do they both need to be updated when one of them is set at a given IMU orientation.

    Q4) Let’s say hypothetically I do the calibration inside of a building, but not right next to metal objects. Then I take the UM7 outside to an open field. Should I expect to see problems with yaw accuracy because the environment changed? If the environment changes as in this hypothetical example, would I have to redo the magnetometer calibration, would I have to reset the magnetometer reference vector, do both, or do neither?

    Q5) Let me be more specific about the exact issue I’m having in case you have ideas as to what’s going on. First off, I have the UM7 inside of a device with other electronics, wires, and batteries. I’ve done the magnetometer calibration as shown in the tutorial video. When my device is stationary the yaw estimate is stable. No drift. But let’s say I rotate my device about 90 degrees after it’s been stationary and then I bring it to a stop again. What will happen is there will be an immediate change in the yaw while my device is rotating corresponding to the fact that my device’s heading is changing. But then when my device stops rotating, the yaw will continue to change very slowly for another 10 seconds or so, by an amount of 5 to 7 degrees, in the *opposite* direction. Any ideas?



    1.The magnetic reference will definitely affect the accuracy of the yaw estimate.
    2.Set the magnetic reference after performing the magnetic calibration.
    3.I just issue the “set magnetic reference” command. The accelerometer reference vector doesn’t have a built in command for setting it.
    4.Buildings vary but if the calibration is done in an area that isn’t free of stray magnetic fields, the yaw estimate will suffer when the device is removed from the stray fields. You could test it by calibrating in a field and comparing the performance to the calibration done in the building.
    5.The behavior you describe is consistent with magnetic calibration issue (or magnetic reference). With a decent magnetic calibration, the yaw may drift after you stop rotating but the speed it settles and the amount will be minimal. For instance, with a 90 degree rotation, a 3 degree yaw drift after 10 seconds is not great but not bad, as long as the drift converges and stops after 30 seconds. I have noticed that the yaw drift can also vary based on the starting and ending heading, for the same 90 degree rotations. Less rotation also means less drift.
    good luck!


    Thank you so much for the reply. This was helpful. I just have one more quick follow up question to #1.

    So how do you orient the UM7 when setting the magnetic reference vector? Point the X axis toward magnetic north? I suppose I can use my phone’s compass app to do this.


    To set the magnetic reference, keep the UM7 level and point it north. It doesn’t have to be pointed north very precisely.


    I see. This is going to be a bit difficult because I’ll be calibrating the UM7 while it’s in my device with all the other electronics, batteries, etc since I obviously want it to compensate for all of that stuff. But my device is rounded and I also can’t see the UM7 when it’s inside, so it will be hard to keep it level and point it north when setting the magnetic reference. I assume it would be incorrect to remove the UM7 from my device to set the magnetic reference?


    You want to perform the magnetic calibration and set the magnetic reference vector after the UM7 is installed in your enclosure. This is to reduce the effect of the magnetic field of the enclosure (hard iron distortion). You might try marking your device with tape or a pen to indicate the level due north orientation.

Viewing 7 posts - 1 through 7 (of 7 total)
  • The forum ‘UM7 Product Support’ is closed to new topics and replies.