Hardware Hookup
Note
Unfortunately, users are not able to use an Arduino Uno or RedBoard with an ATmega328P due the demands of the BNO086 IC. We recommend using the ESP32.
The Arduino Library was also tested to work with the SAMD51 as well! The pin connections between the microcontroller and sensor are the same, just make sure to reference the port name rather than the specific Arduino pin number. Make sure to also install the Arduino SAMD core and select the correct board definition.
Connecting via Qwiic Port, Reset, & Interrupt Pins
Note
As of v1.0.3, you will need to wire up the reset and interrupt pins. Using only the I2C port was not sufficient enough to get the BNO086 to work reliably with a microcontroller.
The I/O pins have also been changed for the reset and interrupt pins! Make sure to adjust your connections accordingly.
You will need a powerful microcontroller to process the data when using the BNO086. In this case, we used an ESP32 (we specifically tested the Arduino Library with the SparkFun IoT RedBoard - ESP32). Besides connecting a Qwiic cable, you also need to wire up the reset and interrupt pins. This is a more reliable connection and is recommended.
The table and image below shows the connections between the SparkFun IoT RedBoard - ESP32 and the BNO086. While you can use IC hooks for a temporary connection, we recommending soldering for a secure connection. You can choose between a combination of header pins and jumper wires, or stripping wire and soldering the wire directly to the board.
RedBoard IoT - ESP32 | VR IMU Breakout - BNO086 |
---|---|
3.3V (3.3V, Qwiic Port) | 3.3V |
GND (GND, Qwiic Port) | GND |
SCL (D22, Qwiic Port) | SCL |
SDA (D21, Qwiic Port) | SDA |
A4 | INT |
A5 | RST |
Note
For users using a different communication protocol, make sure to adjust the solder joints for PS0 and PS1 before connecting to a UART or SPI port.
Connecting via UART
For users interested in using the serial UART protocol to communicate with the sensor through a computer's USB port, you can connect a serial-to-USB connector directly to the board.
Before connecting, make sure to add a solder jumper on PS1 to configure the board for UART protocol as stated earlier in the Hardware Overview.
PS0 | PS1 | Interface | Note |
---|---|---|---|
0 | 0 | I2C | |
1 | 0 | UART-RVC | |
0 | 1 | UART | Add solder blob to the jumper to set to 1. |
1 | 1 | SPI |
The table below shows how to connect the VR IMU Breakout BNO086's UART port to a Serial Basic. You can angle header pins against the PTHs and hold the boards together with one hand for a temporary connection. However, we recommending soldering to the connection for a reliable and secure connection. You can choose between a combination of header pins and jumper wires, or stripping wire and soldering the wire directly to the board.
VR IMU Breakout - BNO086 | 3.3V Serial Basic | Wire Color |
---|---|---|
GND | GND | BLK |
CTS | ||
3V3 | 3.3V | |
RXI | TXO | |
TXO | RXI | |
DTR | GRN |
Note
You will need to be careful when soldering header pins to the edge pins and the UART located at the center of the board. For users that solder header pins to the edge of the board to mate with a breadboard, you will need to solder header pins facing the other way for the UART header so that the center pins do not connect to the same rails. The same goes with users that are using right angle header pins as well.
Of course, you can cut a six wire jumper wire cable and wire strip them before connecting to the 1x6 header as well.
The UART interface is in the middle of the board, with the black and green pins labeled as BLK and GRN. As stated earlier, these serial pins have been arranged to work with our Serial Basic board to make interfacing to a computer simple and fast. Once the header pins are soldered, align the GRN and BLK labels so that the serial connection is properly connected and slide the male header pins into the female header sockets.
Connecting via SPI
For users interested in using the SPI protocol to communicate with the sensor, there are few examples in the Arduino Library. You can use those examples as a basis to adjust the I2C examples to use it with SPI.
Before connecting, make sure to add a solder jumper on PS0 and PS1 to configure the board for SPI protocol as stated earlier in the Hardware Overview.
Note
As of v1.0.3, the I/O pins have also been changed for the CS, reset, interrupt pins! Make sure to adjust your connections accordingly.
PS0 | PS1 | Interface | Note |
---|---|---|---|
0 | 0 | I2C | |
1 | 0 | UART-RVC | |
0 | 1 | UART | |
1 | 1 | SPI | Add solder blob to the jumpers to set to 1. |
The table below shows how to connect the SparkFun IoT RedBoard - ESP32 to the VR IMU Breakout BNO086's SPI port. As stated earlier for the I2C, you could use IC hooks for initial testing. However, we recommending soldering to the connection for a reliable and secure connection. You can choose between a combination of header pins and jumper wires, or stripping wire and soldering the wire directly to the board.
RedBoard IoT - ESP32 | VR IMU Breakout - BNO086 |
---|---|
3.3V | 3.3V |
GND | GND |
D5 | CS |
PICO (D23) | SI |
POCI (D19) | SO |
SCK (D18) | SCK |
A4 | INT |
A5 | RST |
Note
For users that are connecting the BNO086 to a MicroMod Machine Learning Board and MicroMod Artemis Processor, you will need to redefine a few pins. We recommend redefining the following pins in the example code.
Note that SPI_CS on the MicroMod Machine Learning Board is only routed to the CS pin for the microSD card. D0 is also used as the CS pin for the on-board camera via SPI. D0 will work but if you are using a camera, then this would cause a conflict. A good alternative pin to use in this case would be PWM1.
Additionally, A0 and A1 are meant to be only used as input pins and for ADC. The MicroMod Artemis Processor has op amps and scaling from 3.3V to 3V on both of those analog pins.