I encountered the problem of increasing drift at rest.
At an ambient temperature of 25 degrees, the raw values of the drift along the axes are as follows:
x 3
y 0
z 5
in terms of angular speeds, at 2000 range (gyro_Deg = gyro_xRaw * 0.07; // deg/s)
x 0.21 dps
y 0.0 dps
z 0.35 dps
When the ambient temperature decreases, then at -9 degrees the drift values along the axes are as follows:
x -22
y 13
z 57
in terms of angular speeds, at 2000 range (gyro_Deg = gyro_xRaw * 0.07; // deg/s)
x 1.54 dps
y 0.91 dps
z 3.99 dps
Moreover, my board is not oriented horizontally, as usual, but vertically - the Y axis points upward.
In the screenshots, the green line is the X-axis, the light blue line is the Y-axis, the blue line is the Z-axis, and the orange line is the temperature.
Temp.: +25
Temp.: -9
The Y-axis remains almost at the center(about zero), and the Z-axis goes up, and the X-axis goes down.
As the temperature decreases, not only the median part of the angular velocity shifts, but also the drift amplitude increases.
In general, the zero offset has two components - the initial zero offset and the zero drift. The physical cause of zero drift is a change in the size of the silicon elements and pressure inside the sensor case due to temperature changes
I can’t imagine how to compensate for this.
UPD: Looks like there is a problem with the sensor.
Now I conducted a temperature experiment with another BMI160 sensor and the drift and median component are more stable with decreasing and increasing temperatures.
Apparently the sensor software from Bosch Sensortec contains temperature correction.
Temp.: +26
Temp.: -10
At sub-zero temperatures there is even less noise and drift.











