sparkfun / SparkFun_BNO08x_Arduino_Library

An Arduino Library for the BNO08x IMU combination triple axis accelerometer/gyro/magnetometer packaged with an ARM Cortex M0+ running powerful algorithms.
Other
14 stars 7 forks source link

Enable GeoMagnetic Rotation Vector - Code reference provided #10

Closed SFSailor closed 9 months ago

SFSailor commented 10 months ago

Subject of the issue

The Sparkfun library does not expose the geomagnetic rotation vector, needed to access the IMU's native compass calculation

Your workbench

BNO086 + MEGA

Steps to reproduce

Run the Euler example. Note the yaw. Rotate the unit. Note the non-zero yaw. Restart unit. Yaw is now 0, not mag heading.

Expected behavior

Should be mag heading

Actual behavior

Resets to zero

I have documented small changes needed to fix this in the Sparkfun forum

https://forum.sparkfun.com/viewtopic.php?f=83&t=60523&p=245145#p245145

lewispg228 commented 10 months ago

Hi @SFSailor , Thank you for bringing this to our attention. We have implemented your idea in a 19th I2C example on a new branch of the library located here:

https://github.com/sparkfun/SparkFun_BNO08x_Arduino_Library/tree/geomagnetic_rotation_vector

From our initial tests (using an ESP32 IoT Redboard), it seems to be performing properly and holding a consistent yaw reading through resets/power-cycles.

Would you mind reviewing this code branch and possibly verifying it on your setup?

We would also like to give you proper attribution for this work. Currently, we have put your github username in the top header comment. Please let us know if that is sufficient.

Thanks again and we look forward to your reply, -Pete

SFSailor commented 9 months ago

Thanks!

I have been out of town and will give it a shot!

Michael

On Fri, Nov 17, 2023 at 12:38 PM Pete Lewis @.***> wrote:

Hi @SFSailor https://github.com/SFSailor , Thank you for bringing this to our attention. We have implemented your idea in a 19th I2C example on a new branch of the library located here:

https://github.com/sparkfun/SparkFun_BNO08x_Arduino_Library/tree/geomagnetic_rotation_vector

From our initial tests (using an ESP32 IoT Redboard), it seems to be performing properly and holding a consistent yaw reading through resets/power-cycles.

Would you mind reviewing this code branch https://github.com/sparkfun/SparkFun_BNO08x_Arduino_Library/blob/geomagnetic_rotation_vector/examples/Example_19_GeomagneticRotationVector_to_EulerAngles/Example_19_GeomagneticRotationVector_to_EulerAngles.ino and possibly verifying it on your setup?

We would also like to give you proper attribution for this work. Currently, we have put your github username in the top header comment https://github.com/sparkfun/SparkFun_BNO08x_Arduino_Library/blob/geomagnetic_rotation_vector/examples/Example_19_GeomagneticRotationVector_to_EulerAngles/Example_19_GeomagneticRotationVector_to_EulerAngles.ino#L7. Please let us know if that is sufficient.

Thanks again and we look forward to your reply, -Pete

— Reply to this email directly, view it on GitHub https://github.com/sparkfun/SparkFun_BNO08x_Arduino_Library/issues/10#issuecomment-1817074932, or unsubscribe https://github.com/notifications/unsubscribe-auth/AH7U5KH4XHNTQCBDEVLCIG3YE7DN3AVCNFSM6AAAAAA7DAZEN2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJXGA3TIOJTGI . You are receiving this because you were mentioned.Message ID: @.***>

lewispg228 commented 9 months ago

Hi @SFSailor , Hope you are doing well.

As we have verified this on our setup (ESP32 IoT Readboard using QWIIC/INT/RST), we have decided to move forward with this example. We just pulled the branch into main and will be closing out this issue.

If you do get a chance to verify this example on your setup, please let us know. Thanks and have a great weekend! -Pete