/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.

Primary LanguageCOtherNOASSERTION

SparkFun VR IMU BNO08X Arduino Library

SparkFun VR IMU Breakout - BNO086 (Qwiic)

SparkFun VR IMU Breakout - BNO086 (Qwiic)(SEN-22857)

An Arduino Library for the BNO08x IMU combination triple axis accelerometer/gyro/magnetometer packaged with an ARM Cortex M0+ running powerful algorithms.

The BNO08x IMU has a combination triple axis accelerometer/gyro/magnetometer packaged with an ARM© Cortex™ M0+ running powerful algorithms. This enables the BNO08x Inertial Measurement Unit (IMU) to produce accurate rotation vector headings with an error of 2 degrees or less. It's what we've been waiting for: all the sensor data is combined into meaningful, accurate IMU information.

This IC was designed to be implemented in Android based cellular phones to handle all the computations necessary for virtual reality goggles using only your phone. The sensor is quite powerful but with power comes a complex interface. We've written an I2C based library that provides the rotation vector (the reading most folks want from an IMU) as well as raw acceleration, gyro, and magnetometer readings. The sensor is capable of communicating over SPI and UART as well!

In addition the BNO08x IMU provides a built-in step counter, tap detector, activity classifier (are you running, walking, or sitting still?), and a shake detector. We are duly impressed.

This Arduino Library was built off the original library written by Nathan Seidle (SparkFun).

Thanks to all those who have helped improve this library!

This BNO086 Library - CEVA-DSP Sh2 Driver-based improvements:

  • SFSailor for providing code for Geomagnetic Rotation Vector issue #10
  • LazaroFilm for adding setReorientation() PR15
  • rah2501 for fixing an INT/RST pin bug PR13

Original BNO080 Library improvements:

  • blendmaster for adding Linear Accel report
  • per1234 for fixing our keywords file
  • fm4dd for typo - PR 19
  • tstellanova for heading accuracy correction - PR 40
  • badVibes for gyro integrated rotation vector support - PR 41
  • Filimindji for AR/VR Stabilized RotationVector and AR/VR Stabilized GameRotationVector support - PR 46
  • ya-mouse for the getreadings improvements - PR 55
  • Guillaume for the read-multiple-values helper functions and the interrupt example - PR56 & PR59
  • aedancullen for the tap detector - PR 64
  • mattbradford83 for the hasReset code and example - PR 92

Repository Contents

  • /examples - Example sketches for the library (.ino). Run these from the Arduino IDE.
  • /src - Source files for the library (.cpp, .h).
  • keywords.txt - Keywords from this library that will be highlighted in the Arduino IDE.
  • library.properties - General library properties for the Arduino package manager.
  • CONTRIBUTING.md - guidance on how to contribute to this library.

Documentation

License Information

This product is open source!

Please review the LICENSE.md file for license information.

If you have any questions or concerns on licensing, please contact technical support on our SparkFun forums.

Distributed as-is; no warranty is given.

  • Your friends at SparkFun.