Connecting the Bosch BNO055 Shuttleboard to the Raspberry Pi

Erle Czar Mantos
3 min readJan 28, 2018

--

I had to dig datasheets but it took me all of 10 minutes to connect this wonderful Bosch product to my raspberry pi.

To the uninitiated, the Bosch BNO055 is an all-in-one package for getting orientation. Forget 9DOF sensor fusion algorithms (rolling your own is quite error prone, trust me, been there, done that), this chip has you covered. What it has is a microcontroller inside that already does the sensor fusion for you from its own set of sensors. Please consult the datasheet for further enlightenment.

Now, let’s start.

I know of 2 ways to connect to the BNO055 — UART and i2c. I started with i2c as raspberry pi has i2c, but further research showed that this is a no-go since raspberry pi doesn’t support i2c clock stretching and this device uses clock stretching. I’ll have to make do with UART, and in raspberry pi, this means I’ll have to disable shell on rpi’s UART. That’s easy with raspi-config.

On the shell, do:

sudo raspi-config

Then go to Interfacing Options > Serial and disable shell and kernel messages.

Now, let’s connect the shuttleboard.

The Bosch BNO055 Shuttleboard

This is the connection diagram of the shuttleboard (not the BNO055 itself).

Connection Diagram of shuttleboard

And this is the pin layout of the relevant part of the raspberry pi that we need:

Pins that we need from the Raspberry Pi

First, let’s power the chip — VDD and VDDIO of the shuttleboard should connect to the 3.3V pin of the raspberry pi, and the GND of the shuttleboard should connect to the raspberry pi’s GROUND. What I did was to add a jumper between the VDD and VDDIO of the shuttleboard so I’d only need one wire from the shuttleboard to the pi. Next is to connect PS0 to GROUND and PS1 to VDD — this should enable UART connection..

Blue Wire (PS0) to GND, Brown Wire (PS1) to VDD, and a jumper between VDD and VDDIO

Now that completes the power section, let’s connect the UART section.

The raspberry pi’s TX should connect to the shuttleboard’s SCL (Pin 18, the RX of the shuttleboard), and the raspberry pi’s RX should connect to the shuttleboard’s SDA (Pin 17, the TX of the shuttleboard).

To enable RESET, connect the BCM18 pin of the raspberry pi to the nRESET pin of the shuttleboard (Pin 19).

That’s all folks.

Now, for the code and the software to test it, follow this instruction from Adafruit.

My entire setup:

Raspberry Pi connected to the shuttleboard
Adafruit’s example code running

Now for some video:

--

--