[C] EV3 Gyro Sensor recalibration with BP3


IIRC, for the Lego EV3-G blocks the EV3 Gyro Sensor recalibrates automatically when switching the reading mode (angle, rate, angle+rate).
Is this automatic calibration still true also for BP3 C API when switching between the modes



The automatic calibration takes place when the sensor gets configured. I don’t think changing modes causes the sensor to re-calibrate; just when it gets configured to begin with.

To force re-calibration you can unconfigure the sensor (set sensor type to NONE) and then reconfigure the sensor (set sensor type to e.g. EV3_GYRO_DPS). You might need a delay of about 250ms between unconfiguring and reconfiguring (to make sure the sensor goes into inactive mode), but I’m not sure.

Note that while configuring (auto calibrating) the sensor should remain perfectly stationary to prevent an offset.

In projects that uses ABS mode as well as DPS mode, I recommend that you use the EV3_GYRO_ABS_DPS mode rather than switching modes. The exception would be if you needed the highest communication speeds possible, where e.g. EV3_GYRO_DPS would have slightly less data to transfer (minimal difference).


thank you, about the X3 procedure I meanwhile found a link: http://ev3lessons.com/translations/en-us/advanced/Gyro.pdf
here 100ms delays are used.
But I’ll be fine of course also by unconfiguring and reconfiguring by 250ms delay as you have been proposing,
JFYI, I actually need just the angles, not the rotation velocity, I just assumed that both sensor values are supposed to have the same accuracy with the lowest drift either way. I want to use the lego Gyro yaw angles as a reference to a 2nd, additional IMU sensor.