# How can I properly measure a MEMS rate gyroscope's zero mean bias drift and are my measurements coherent?

I have been looking into Madgwick filters and fusion algorithms and on the original paper as well as some websites mentionning the subject, it is stated "The gyroscope zero bias will drift over time, with temperature and with motion.".

With this explanation and since it is measured in rad.s^-2, I assume it means that the gyroscope's reading when it is immobile, its zero-offset or bias, would change over time. I tried to measure it on one of my sensors, an MPU9250 (obsolete sensor but its just a test), and did notice a drift, although it is very, very tiny. I can't compare my values to known ones since it is not stated on its product specification sheet.

I couldn't find a proper measurement method so I came up with my own. I continually measure the sensor's output when immobile for a given period of time. Every ten seconds, or around 1200 individual readings, I average the results in a single datapoint representing the current bias and continue to do so for the given period of time. I then calculate the linear tendency curve of the obtained dataset : the equation's slope should be the drift in rad.s^-2 since my averaged datapoints are measured in rad.s^-1 on an X axis measured in seconds.

I tried periods from 1H to 7H to try and see a change. My estimations are variating a lot (around 500% of difference between them on average so it's not very consistent) but their magnitudes are consistent. This drift seem very tiny to me to be correct : this a sample from the gyroscope's X-axis with 2273 averaged datapoints over around 7H (originally more but I cut off 5000s of data at the beginning since I was around the sensor and could have affected it).

The slope being -5.81E-08*x, the measured drift is around -0.0000000581 rad.s^2, -3,33e-6 °.s^-2 : that's a hourly drift of around -0.01°/s/h. The Y and Z axes have a hourly drift of respectively +0.002°/s/h and +0.004°/s/h.

I couldn't find anything to compare them to. Are these values' magnitudes coherent with other sensors ? What would be a more consistent estimation method ?

• Initially calibration is typically 500LSB Max, test for temp and Vdd sensitivity and apply correction as needed. – Tony Stewart Sunnyskyguy EE75 Aug 21 '20 at 16:18
• @TonyStewartSunnyskyguyEE75 I'm sorry but I don't understand what you mean. I understand the bias drift have to do with temperature and is due to an accumulation of noise in the sensor over time and movement as well, which I suppose is why you need the VDD and temperature sensitivities, but I don't understand what you mean by "calibration is typically 500LSB Max" or how I can obtain nor use these sensitivities to retrieve what i need. I'm not familiar at all with the subject. – Elemyrh Aug 21 '20 at 16:43
• the spec indicates this is part of 1g null calibration meaning with no motion – Tony Stewart Sunnyskyguy EE75 Aug 21 '20 at 17:06
• @Tony Stewart Sunnyskyguy EE75 Thank you for your time. This forum is apparently way beyond my level and/or this post wasn't clear enough : I'm sorry but to me your comments are very obscure and are really confusing. I can't find any mention of a "1g null calibration" in the specifications, or anything close related to the gyroscope. I might be especially dumb on this one, but I don't want to annoy you longer. Thank you again, still, and sorry. – Elemyrh Aug 21 '20 at 18:43
• The datasheet is not very detailed on the 500 count error limit on autocal. Not your fault, it may be top secret (lol) – Tony Stewart Sunnyskyguy EE75 Aug 21 '20 at 19:04