kriswiner / BNO055

Teensiduino sketch for 9-axis BNO055 motion sensor + MS5637 pressure sensor
54 stars 22 forks source link

Clarifications on BNO055 and its calibration. #9

Closed mrrobles09 closed 6 years ago

mrrobles09 commented 6 years ago

Good day sir kris winer,

As I was strolling your code here for BNO055 I notice that in your set up for "initBNO055", your OPRMode was modified in CONFIGMODE then set your own values like e.g: Ascale = 2g and Abw =ABW_31_25Hz. After that, you set your OPRMode in NDOF Mode at the end of the routine which NDOF Mode is under fusion mode.

You've also done the same with getting the calibration for accel/gyro/mag.

Questions:

  1. How are you sure that the settled values before proceeding to NDOF Mode is not overwritten by its default sensor configuration?
  2. How are you also sure that the settled offsets gathered in calibration routines is not overwritten by the sensors auto calibration nature when in NDOF mode?

I've set my calibration before and would like to use this values so that I won't have to recalibrate the sensor every time it is powered on and perhaps use the NDOF feature of BNO055 but this limitations makes my goal hard in getting the navigational position in my project.

Regards, mrrobles09

kriswiner commented 6 years ago
  1. When using NDOF mode all sensor settings are overwritten, nothing can be done about that with the BNO055.
  2. This is somewhat mysterious, since the NDOF mode also has continuous calibration and there is no way to turn this off either. So one could simply choose to use some other mode if you want to choose your own settings and calibration values and then perform fusion on the host MCU.

On Wed, Mar 7, 2018 at 12:23 AM, mrrobles09 notifications@github.com wrote:

Good day sir kris winer,

As I was strolling your code here for BNO055 I notice that in your set up for "initBNO055", your OPRMode was modified in CONFIGMODE then set your own values like e.g: Ascale = 2g and Abw =ABW_31_25Hz. After that, you set your OPRMode in NDOF Mode at the end of the routine which NDOF Mode is under fusion mode.

You've also done the same with getting the calibration for accel/gyro/mag.

Questions:

  1. How are you sure that the settled values before proceeding to NDOF Mode is not overwritten by its default sensor configuration?
  2. How are you also sure that the settled offsets gathered in calibration routines is not overwritten by the sensors auto calibration nature when in NDOF mode?

I've set my calibration before and would like to use this values so that I won't have to recalibrate the sensor every time it is powered on and perhaps use the NDOF feature of BNO055 but this limitations makes my goal hard in getting the navigational position in my project.

Regards, mrrobles09

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kriswiner/BNO055/issues/9, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qg5dMXY03l_6HSApo50yRFlePqJ7ks5tb5kTgaJpZM4SgCQn .

mrrobles09 commented 6 years ago

Thanks for the quick reply sir!

So you mean to say that changing the settings in NDOF or any fusion modes is impossible right? How about the ACC_Config,Gyro_Config, and Mag_Config registers? The data sheet says here that these guys are in "readonly" command and cannot be rewritten? How am I supposed to change the settings when I am in non-fusion modes? Also, is it saving in EEPROM be an option so that I can save my offsets in the sensors internal memory or microcontrollers memory?

This is my routine in saving my offsets which I followed the steps in the data sheet and then put the routine in my void setup. (page 48, "Setting up Calibration profile")

setcal setcal1

Data sheet link: www.mouser.com/ds/2/783/BST_BNO055_DS000_13-838248.pdf . (page 53, "Register Map page 1")

kriswiner commented 6 years ago

All I can tell you is what you can read for yourself in the data sheet. In fusion mode the sensor conditions are fixed. Out of the fusion modes you can configure the sensors anyway allowed. This is done by writing the various control registers as per the data sheet.

On Wed, Mar 7, 2018 at 10:03 PM, mrrobles09 notifications@github.com wrote:

Thanks for the quick reply sir!

So you mean to say that changing the settings in NDOF or any fusion modes is impossible right? How about the ACC_Config,Gyro_Config, and Mag_Config registers? The data sheet says here that these guys are in "readonly" command and cannot be rewritten? How am I supposed to change the settings when I am in non-fusion modes? Also, is it saving in EEPROM be an option so that I can save my offsets in the sensors internal memory or microcontrollers memory?

This is my routine in saving my offsets which I followed the steps in the data sheet and then put the routine in my void setup. (page 48, "Setting up Calibration profile")

[image: setcal] https://user-images.githubusercontent.com/32480279/37135669-44d44ee4-22d9-11e8-8abe-b973831324fa.JPG [image: setcal1] https://user-images.githubusercontent.com/32480279/37135670-4510f880-22d9-11e8-94ee-87f06f3678b7.JPG

Data sheet link: www.mouser.com/ds/2/783/BST_BNO055_DS000_13-838248.pdf . (page 53, "Register Map page 1")

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/kriswiner/BNO055/issues/9#issuecomment-371388865, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qr9bNyIUl_t4lCeN1C-wuj5wyDggks5tcMmqgaJpZM4SgCQn .

mrrobles09 commented 6 years ago

Oh okay so about that one. I think that your script here is somewhat questionable especially in its routine where your initBNO055 and Calibration routine for accel/mag/gyro sets up in config mode first then ends with NDOF mode. Also, with regards on how you writeByte the accel,gyro, and mag config, the data sheet displays that the accel,gyro and mag configs are available only in "readonly" modes and not in "read/write only" modes.

mrrobles09 commented 6 years ago

Sorry for pointing that upfront sir. It seems to me that this observation could lead to better understanding on how should the device work and its specified application to which we user must know for it to be fully use. Thank you sir for providing the knowledge to us beginners and God Bless you!

kriswiner commented 6 years ago

OK, not sure what you are asking here. The sketches in the repository work well enough but I am not claiming they are perfect. If you find a better way of doing it please let me know.

On Wed, Mar 7, 2018 at 11:00 PM, mrrobles09 notifications@github.com wrote:

Sorry for pointing that upfront sir. It seems to me that this observation could lead to better understanding on how should the device work and its specified application to which we user must know for it to be fully use. Thank you sir for providing the knowledge to us beginners and God Bless you!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/kriswiner/BNO055/issues/9#issuecomment-371398355, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qo666bHSgM5A3sRpp49abKShdPHxks5tcNb0gaJpZM4SgCQn .

mrrobles09 commented 6 years ago

All I am asking is a clarifications on how does the code work and the following questions below.

  1. How are you sure that the settled values before proceeding to NDOF Mode is not overwritten by its default sensor configuration?

  2. How are you also sure that the settled offsets gathered in calibration routines is not overwritten by the sensors auto calibration nature when in NDOF mode?

Because as I have read the data sheet for BNO055 it doesn't adds up to what is expected. I'm pointing out the following pictures that made me question what is happening here?

setup proof

This images is the code for setting up the users own range and is I think a flaw (referring to the highlighted yellow)

regconfig readonly

This images are from the data sheet of the BNO055 which is also related to the above images(referring to the highlighted yellow of Acc,Gyro and mag config)

All I am saying is that with the set up on the code and based on the data sheet, "NDOF fusion mode" is the one being followed which it is auto calibrated and its default sensor config are used. Meaning all those setting up values and offsets/radius are meaningless if you take a good look at it.

kriswiner commented 6 years ago

Good questions for Bosch.

On Thu, Mar 8, 2018 at 8:17 PM, mrrobles09 notifications@github.com wrote:

All I am asking is a clarifications on how does the code work and the following questions below.

1.

How are you sure that the settled values before proceeding to NDOF Mode is not overwritten by its default sensor configuration? 2.

How are you also sure that the settled offsets gathered in calibration routines is not overwritten by the sensors auto calibration nature when in NDOF mode?

Because as I have read the data sheet for BNO055 it doesn't adds up to what is expected. I'm pointing out the following pictures that made me question what is happening here?

[image: setup] https://user-images.githubusercontent.com/32480279/37189901-af7d5dd6-2391-11e8-8d7d-a6063a0e8f22.JPG [image: proof] https://user-images.githubusercontent.com/32480279/37190040-7ae52684-2392-11e8-81a2-6b2d6e61eac9.JPG

This images is the code for setting up the users own range and is I think a flaw (referring to the highlighted yellow)

[image: regconfig] https://user-images.githubusercontent.com/32480279/37190085-ca33aa44-2392-11e8-82d5-735830fd4af5.JPG [image: readonly] https://user-images.githubusercontent.com/32480279/37190091-ce88b742-2392-11e8-8c34-662f997c2720.JPG

This images are from the data sheet of the BNO055 which is also related to the above images(referring to the highlighted yellow of Acc,Gyro and mag config)

All I am saying is that with the set up on the code and based on the data sheet, "NDOF fusion mode" is the one being followed which it is auto calibrated and its default sensor config are used. Meaning all those setting up values and offsets/radius are meaningless if you take a good look at it.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/kriswiner/BNO055/issues/9#issuecomment-371708956, or mute the thread https://github.com/notifications/unsubscribe-auth/AGY1qowqgnQLZ7E6PuykbNbnROs4gsW3ks5tcgJagaJpZM4SgCQn .