Hi everyone 🙂
I have a question regarding the calibration of the BNO055 9DoF sensor. How exactly do I calibrate my BNO055? I want to use it in NDOF mode and read out the Euler angles. I have already written a part in my code so that it checks if the system (i.e. all three sensors) are calibrated. However, I am not sure if that is everything that I need to do to ensure that the BNO055 is fully calibrated, because in the datasheet it says something about reading out and writing the offsets in the corresponding registers. Do I need to do that for calibration?
Also, if I read out the Euler angles, in the pitch and roll "direction" it gives me values up to 4000 degrees which can't be right!? I am confused :$
I would really appreciate if someone could explain this to me 🙂
Solved! Go to Solution.
Once you receive the calibration status 3 on all 3 sensors, the device is fully calibrated. The calibration procedure is documented in this video.
The offsets are updated once the calibration procedure is complete. These offsets can be saved on the hosts non-volatile memory like an EEPROM or Flash and during the next boot, loaded into the BNO055 so as to already be calibrated without needing to perform the complete calibration procedure. Note that these offsets will be continously updated as the BNO055 adapts the offsets based on the environment.
The procedure that is used to convert raw register values to angles may be incorrect. Table 3-13 Rotation angle conventions in the datasheet documents the limits for the various Euler angles.
After calibration I read the sensor offsets from the BNO055 and store them. Next time when I want to use the sensor without calibrating it first, I write the read offsets into the appropriate registers. But how does the status of the BNO055 behaves? Is the status set to 3 directly, when I write to the resgisters?