Stock code: SPX-14618
First, let us apologize for the product name; it’s hard to describe everything this sensor can do. The VR IMU uses the impressive BNO080 IMU. This IC has a combination triple axis accelerometer/gyro/magnetometer packaged with an ARM Cortex M0+ running powerful algorithms. The BNO080 Inertial Measurement Unit (IMU) produces accurate rotation vector headings, excellently suited for VR and other heading applications with a static rotation error of 2 degrees or less. It’s what we’ve been waiting for: all the sensor data is combined and drift corrected 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 and 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 acceleration, gyro, and magnetometer readings, step counting, activity classifier (such as riding a bike), and calibration.
The VR IMU uses two Qwiic connectors. Qwiic cables are thin and flexible allowing you to manipulate the IMU in space unimpeded. This is especially handy when moving or calibrating the sensor. We’ve created a demo Processing app to see how the movement of the IMU can accurately manipulate a 3D object using the Quaternion output from the IMU.
There are jumpers on the board allowing the user to select between two different I2C addresses, remove the I2C pull up resistors, and select between the three different interface protocols. If I2C is not your first communication choice the sensor is capable of communicating over SPI and UART as well! If you’re using the UART we recommend the Serial Basic for an easy connection.
This version incorporates an on-board 32kHz crystal for increased precision and more accurate time stamps.
Check the documents section for a link to our Arduino library!
We do not plan to regularly produce SparkX products so get them while they’re hot!
The BNO080 can communicate through a variety of interfaces. The Qwiic VR IMU has two jumpers that allows the user to select their interface of choice.
- I2C (Default): Up to 400kHz
- SPI: Up to 3MHz
- UART: 3Mbps
- UART-RVC (Robot Vacuum Cleaners): 115200kbps
- Rotation Vector
- Dynamic Error: 3.5°
- Static Error: 2.0°
- Gaming Rotation Vector
- Dynamic Error: 2.5°
- Static Error: 1.5°
- Heading Drift: 0.5° / min
- Geomagnetic Rotation Vector
- Dynamic Rotation Error: 4.5°
- Static Rotation Error: 3.0°
- Gravity Angle Error: 1.5°
- Linear Acceleration Accuracy: 0.35m/s2
- Accelerometer Accuracy: 0.3m/s2
- Gyroscope Accuracy: 3.1° / sec
- Magnetometer Accuracy: 1.4µT
- VR IMU (Qwiic) - BNO080 Schematic
- Arduino Library - Available through the library manager. Search for ‘SparkFun BNO080’.
- Example Processing Sketch showing how to use quaternions to rotate a cube
- BNO080 Datasheet
- BNO080 Command Reference Manual
- BNO080 Transport Protocol
- Calibrating the BNO080
- Eagle Files
- Github repo with latest hardware files