04-10-2019 11:48 AM
To whom it may concern,
I use the bno055 sensor and i would like to calibrate it.
To do this, I use a STM32 as brain, as well as the provided bno055.c driver and I communicate in I2C between them.
And I don't know how to do to calibrate the sensor.I read the documentation of the sensor on the calibration, I watch the video on the calibration of the sensor that bosch has done. But in the video you use a software
At this time, I made this code :
u8 sys_stat = 0, accel_stat = 0, gyro_stat = 0, mag_stat = 0; bno055_reset_sensor(); //function which applies a low signal to the nReset pin for more than 20ns bno055_init(&bno055); bno055_set_power_mode(BNO055_POWER_MODE_NORMAL); bno055_set_operation_mode(BNO055_OPERATION_MODE_NDOF); BNO055_delay_msek(7); //switching time do{ if(bno055_get_all_calib_stat(&sys_stat, &accel_stat, &gyro_stat, &mag_stat) != BNO055_SUCCESS) break; BNO055_delay_msek(5000); }while(sys_stat != 3 || accel_stat != 3 || gyro_stat != 3 || mag_stat != 3);
But nothing happens when the sensor does not move (for gyro) or even if it make 8 (for mag)
Thank you in advance
Regards
04-10-2019 05:09 PM
After several test, I realized that the NDOF mode remains valid less than one second. I therfore moved it in the while loop.
So now, I get results but it seems absurd to me.
I'm not touching the sensor (it remaining motionless). I get so 3 concerning the gyroscope which is quite logical.
But I get 3 for accelerometer and magnetometer no matter what I did.
And for the last, I get always zero for the systeme..
Thank you in advance for the help
05-13-2019 03:49 PM
Hi Pegaz,
sorry to answer so late, but the bno055_get_all_calib_stat function does not even exist in our driver.