Yaw BNO055 with no drift to be stored

Hi,
I would like to have some suggestions for my problem. I am using the adafruit bno055 sensor.
I understood that if i drive the board via Bluetooth, setting It to different modes the calibration loses itself and has to be redone. This Is something that i read It Is possible to change and then to solve. Even if the documents of Bosch are not clear totally for me. I am afraid thus that maybe the adafruit library Is not good for my AIM.
I would like to record the yaw of the hip during a gait. After a First Total calibration (3,3,3,3) the Imu works properly. When the Walk starts, the sys Cal has some fall between 3 and 2. After a more bit the drift yaw appears caused by vibrations of Walk i Guess. There Is no eletromagnetic field. Indeed during the gait the Cal Is at least 2,3,3,3.
How can i solve my problem? In this Moment i am using the output of vector_euler. Shall i put a kalman filter? Quaternion?
Thank you for amy reply.

The BNO055 simply does not work very well. The gyro sensor calibration is obscure, unstable and cannot be controlled. Likewise for the magnetometer.

Hence, the sensor drifts.

You would be much better off using a more modern 9DOF sensor, and a good 3D fusion filter like Mahony or Madgwick, where you have complete control over the essential step of sensor calibration. The LSM9DS1, with careful calibration and a good fusion filter, works much better than the BNO005.