Hi all,
I am using the SparkFun VR IMU Breakout - BNO086 to determine the heading of a turntable.
I got confused by the different configurations and also as to how to put everything together for my application. I am using the sensor in an embedded system which has in its center the esp32-c3-devkitm-1 and I am using the I2C communication protocol. Shortly the problem we want to solve is figuring out the heading of the turntable because ontop of it our system is positioned and its function is to move a small plate, with the help of two stepper motors one for each axis, horizently and in a certain direction regardless of the heading of the system.
Any leads as to how to solve this issue usually and maybe if there are any similar projects I could take as reference would be amazing.
I already read through all documents related to the sensor from the data sheet to the SH-2 reference manual and the guides for the calibration and the tare function.
I have a few questions though:
1- Can we use different virtual sensors at the same time ?
2- So I understood that there are different types of calibration, dynamic calibration should be clear but the calibration that should be done before actually using the sensor is not very clear as to when it should be done, for example in our case the sensor will be placed in a 30x30x5 cm box which includes all components of our embedded system from motors to the PCB and so on, should the calibration be done to the sensor before mounting it directly to the system or before and how often should this calibration be done? I mean after assembly, or is this not necessary?
3- The tare function user guide specifies a ‘Device first time setup’ section, is this setup needed to be done regardless of the user case ? in my application, the sensor will be placed on a flat surface and only the Yaw is of interest to us.
4- based on my application, which tare procedure is recommended? I mean would it be better to tare the Z rotation (Yaw), or to tare on all axes?
5- Which of the virtual output sensors is relevant to my application ? A small explanation as to why would be much appreciated.
Thanks
-
Yep, up to 2 without a mux Hardware Overview - SparkFun VR IMU Breakout - BNO086 (Qwiic) Hookup Guide
-
Calibration AFTER mounting and with all other items powered/on is best…make it as close to the final use-case as possible
-
Yep
-
Tare set the reference angles back to 0…it would depend on how much drift you see
-
Do what?
1 Like
Thank you for your reply and clarification.
- I meant two virtual sensors from the same IMU at the same, reading the values and all.
- I see. Just one thing I want to clarify about the calibration of the magnetometer when turning it in a figure 8. Can figure 8 be on a flat surface without actually rotating the sensor but the table on which the system is mounted makes a figure 8 without changing direction and only moving in a single plane horizontally ? This concerns calibrating the magnetometer for the first time tare procedure.
- !
- !
- To accurately report the heading of the turntable whenever the system is powered on and also during the use of the system when the heading changes because of the turntable.
- I would like to ask about the code for the planer dynamic calibration feature of the accelerometer. SparkFun_BNO08x_Arduino_Library/src/SparkFun_BNO08x_Arduino_Library.cpp at main · sparkfun/SparkFun_BNO08x_Arduino_Library
Starting from the line 998 the code is commented out which should be the one I need to set this planar dynamic calibration. Could you please clarify this?
Thanks!
- Yes
- It all depends on what ends up giving you the cleanest data…but yes
- Only if you save the last-known value to NVM on a microcontroller…it might be simpler to implement an encoder setup
- I’m not an expert, but it does appear as you’ve described…I’d suggest uncommenting and testing it out