0

BNO055 Arduino Modes
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

BNO055 Arduino Modes

by juandediosyanez on Sun Aug 01, 2021 4:25 am

Hello everyone, I want to use the IMU BNO055 without autocalibration every so often. Looking at the code of the Arduino library https://github.com/adafruit/Adafruit_BN ... BNO055.cpp I think it is possible, but I do not find any within the library examples that shows how to change the mode of functioning.

Could someone help me and tell me how to change the mode? https://github.com/adafruit/Adafruit_BN ... 55.cpp#L53

juandediosyanez
 
Posts: 4
Joined: Tue Dec 31, 2019 11:41 am

Re: BNO055 Arduino Modes

by sj_remington on Sun Aug 01, 2021 3:37 pm

The most current version of the device data sheet is by far your best source of advice.

The last time I looked, which was several years ago, it was not possible to turn off the autocalibration procedure. That seemed a shame, because the procedure is overly simplistic and did not work very well.

So, I gave up using the sensor. Perhaps Bosch has improved it since.

sj_remington
 
Posts: 133
Joined: Mon Jul 27, 2020 4:51 pm

Re: BNO055 Arduino Modes

by juandediosyanez on Thu Aug 05, 2021 10:57 am

I have read the library and i find that there are differents modes for setup.

Code: Select all | TOGGLE FULL SIZE
  /** Operation mode settings **/
  typedef enum {
    OPERATION_MODE_CONFIG = 0X00,
    OPERATION_MODE_ACCONLY = 0X01,
    OPERATION_MODE_MAGONLY = 0X02,
    OPERATION_MODE_GYRONLY = 0X03,
    OPERATION_MODE_ACCMAG = 0X04,
    OPERATION_MODE_ACCGYRO = 0X05,
    OPERATION_MODE_MAGGYRO = 0X06,
    OPERATION_MODE_AMG = 0X07,
    OPERATION_MODE_IMUPLUS = 0X08,
    OPERATION_MODE_COMPASS = 0X09,
    OPERATION_MODE_M4G = 0X0A,
    OPERATION_MODE_NDOF_FMC_OFF = 0X0B,
    OPERATION_MODE_NDOF = 0X0C
  } adafruit_bno055_opmode_t;

The problem is i don't know if the mode really changes, although i don't think so. But the program compile with:

Code: Select all | TOGGLE FULL SIZE
bno.setMode(Adafruit_BNO055::OPERATION_MODE_NDOF_FMC_OFF);

Any idea?

juandediosyanez
 
Posts: 4
Joined: Tue Dec 31, 2019 11:41 am

Re: BNO055 Arduino Modes

by sj_remington on Thu Aug 05, 2021 11:53 am

bno.setMode(Adafruit_BNO055::OPERATION_MODE_NDOF_FMC_OFF) turns off "fast magnetometer calibration", which is not described in the data sheet. Presumably, "slow" magnetometer calibration is performed.

In any case, the magnetometer calibration that IS performed is unacceptably poor.

Bosch evidently hired another company write the firmware, and it seems very unlikely that there will ever be an upgrade. So, if the sensor does not do what you want, look for a better one that does.

sj_remington
 
Posts: 133
Joined: Mon Jul 27, 2020 4:51 pm

Please be positive and constructive with your questions and comments.