Adafruit 9-DOF Orientation IMU Fusion Breakout - BNO085 (BNO080) - STEMMA QT / Qwiic

AdafruitSKU: ADA4754
Price:
Sale price £24
incl. VAT
excl. VAT
Stock:
Sold out
Notify me

Awesome Extras

STEMMA QT / Qwiic Compatible JST-SH 4-Pin Cable (50mm) - The Pi HutSTEMMA QT / Qwiic Compatible JST-SH 4-Pin Cable (50mm) - The Pi Hut
Half-Size Breadboard - WhiteHalf-Size Breadboard - White
The Pi HutHalf-Size Breadboard - White
Sale price £3 incl. VAT excl. VAT
STEMMA QT / Qwiic JST SH 4-pin to Premium Male Headers Cable - The Pi HutSTEMMA QT / Qwiic JST SH 4-pin to Premium Male Headers Cable - The Pi Hut

Here it is, the motion sensor you were looking for: the one that just gives you directly usable information without requiring you to first consult with a PhD to learn the arcane arts of Sensor Fusion. The BNO085 takes the life's work of multiple people who have spent their entire careers focused on how to get useful information from direct motion sensor measurements and then squeezes that information down into a 5.2 x 3.8mm box, along with the sensors to go along with it.

Please note that the BNO085 is the 'upgrade fix' to BNO080 - it is completely back-compatible with the BNO-080 and, in addition, fixes an SPI timeout bug that made SPI difficult to use. The '085 is the same price and you can use any existing '080 code so we are only going to carry the '085!

The BNO085 by the motion sensing experts at CEVA Hillcrest Laboratories takes the familiar 3-axis accelerometers, gyroscopes, and magnetometers and packages them alongside an Arm Cortex M0 processor running CEVA's SH-2 firmware that handles the work of reading the sensors, fusing the measurements into data that you can use directly, and packaging that data and delivering it to you. If the name and description of the BNO085 sounds strikingly similar to those of the BNO055 by Bosch Sensortec, there is a good reason why: they're the same thing, but also they're not. Thanks to a unique agreement between Bosch and CEGA, the BNO085 uses the same hardware as the BNO055 but very different firmware running on it.

"How different?" you might ask. Well my friend, pull up a chair and grab a box of popcorn because it's quite a list. First let's list the similarities. The BNO055 and BNO085 can both deliver the following types of sensor data and sensor fusion products:

  • Acceleration Vector / Accelerometer
    Three axes of acceleration (gravity + linear motion) in m/s^2
  • Angular Velocity Vector / Gyro
    Three axes of 'rotation speed' in rad/s
  • Magnetic Field Strength Vector / Magnetometer
    Three axes of magnetic field sensing in micro Tesla (uT)
  • Linear Acceleration Vector
    Three axes of linear acceleration data (acceleration minus gravity) in m/s^2
  • Gravity Vector
    Three axes of gravitational acceleration (minus any movement) in m/s^2
  • Absolute Orientation/ Rotation Vector
    Four-point quaternion output for accurate data manipulation

Thanks to the sensor fusion and signal processing wizards from CEVA, with the BNO085 you also get:

  • Application Optimized Rotation Vectors
    For AR/VR, low latency, and low power consumption
  • Additional Base Sensor Reports
    Separate and simultaneous outputs of Calibrated, Uncalibrated + Correction, and Raw ADC outputs for the Accelerometer, Gyro, and Magnetometer
  • Detection and Classification reports:
    • Stability Detection and Classification
    • Significant Motion Detector
    • Tap, Step, and Shake Detectors
    • Activity Classification

As if the above wasn't enough, the BNO085 also provides an impressive suite of detection and classification products by further analysing the measured motion:

  • Stability Detection and Classification
  • Tap Detector
  • Step Detector
  • Step Counter
  • Activity Classification
  • Significant Motion Detector
  • Shake Detector

More information about the various report types is available on the Report Types page

A Firehose of Information in a Human-Friendly Package

The BNO085 is a supremely capable sensor, practically overflowing with useful information. It is also very small. As the Ideal Gas Law tells us, when you shove a lot of stuff into a small space, things are going to get a bit spicy. Worry not fellow scientist, we here at Adafruit have done our part to make the BNO085 as approachable as possible. It's a pretty familiar recipe:

Take the following and mix in Eagle CAD:

  • One part raw unprocessed CEVA Hillcrest Labs brand BNO085
  • One voltage regulator for flexible input voltage
  • One part Level shifting circuitry for use with 3.3V (RPi/Feather) or 5V(Arduino) logic levels
  • Two handy dandy Stemma QT connectors for solderless connection
  • One, 32.768kHz crystal to provide a stable reference oscillation
  • One breakout PCB with breadboard friendly headers

Prepare in the pick and place and bake in a reflow oven on High for about 5 minutes and you get the Adafruit BNO085 IMU breakout (part of a complete breakfast!)

With the physical hardware tamed and made approachable, that leaves the software. If it wasn't already very obvious, the BNO085 can generate a wide selection of data and as a result, it has a slightly complex and unique way of delivering that information. To save you the effort of figuring out how to decode and organise all those measurements, we've written libraries for you to use with CircuitPython and Arduino. Just plug in the sensor to your favourite device using our wiring examples, and install the library for your chosen platform and you're ready to start building your very own Robot Friend.

As an alternative to the cornucopia of vectors and classifications that the standard sensor hub modes provide, the BN0085 also provides a simple but useful and well-executed UART-based mode that provides calibrated heading and acceleration measurements. The UART-RVC mode takes its acronym from one of its potential applications: Robot Vacuum Cleaners. This mode is exceedingly simple to interface with and based on my limited testing it performs astoundingly well. The ease of use to utility ratio here is off the charts.

We've written libraries for the UART RVC mode for both Arduino and CircuitPython/Python. Check out the UART RVC pages for Arduino and Python for wiring diagrams and example code.

Note: QT Cable is NOT included, but we have a variety in the shop

Revision History

  • As of Dec 22, 2023 – We've updated this PCB with Adafruit Pinguin to make a lovely and legible silkscreen.

Specifications

  • Dimensions: 25.6mm x 22.7mm x 4.6mm
  • Weight: 2.5g

Resources

Payment & Accreditations

Payment methods
Visa Mastercard Maestro PayPal Amazon Klarna

Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

Accreditations