Skip to content

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
Hookup with ESP32 between the BNO086 using the Qwiic Port, Interrupt, and Reset Pins

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.

Fritzing Diagram with FTDI Connected to BNO086 Breakout via UART Port

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
Fritzing Diagram with ESP32 Connected to BNO086 Breakout via SPI Port