Skip to content

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

License

Notifications You must be signed in to change notification settings

sparkfun/SparkFun_BNO080_Arduino_Library

Repository files navigation

SparkFun BNO080 IMU Library

SparkFun Inertial Measurement Unit - BNO080

SparkFun IMU BNO080 (SEN-14686)

The BNO080/BNO085 IMU has a combination triple axis accelerometer/gyro/magnetometer packaged with an ARM Cortex M0+ running powerful algorithms. This enables the BNO080 Inertial Measurement Unit (IMU) to produce accurate rotation vector headings with an error of 5 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 BNO080 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.

Library written by Nathan Seidle (SparkFun).

Thanks to all those who have helped improve the library:

  • 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 techsupport@sparkfun.com.

Please use, reuse, and modify these files as you see fit. Please maintain attribution to SparkFun Electronics and release any derivative under the same license.

Distributed as-is; no warranty is given.

  • Your friends at SparkFun.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages