BNO055 — i2c address & wiring
9-axis IMU with on-chip sensor fusion — outputs absolute orientation directly.
Key facts
BNO055 at a glance
| i2c address | 0x280x29 address-selectable via pins/jumpers |
|---|---|
| Logic voltage | 2.4–3.6 V |
| Type | sensor |
| Part | Bosch BNO055 |
| Ships with | STEMMA QT |
| Datasheet | Bosch BNO055 — manufacturer documentation ↗ |
The chip
What the Bosch BNO055 actually is
Absolute-orientation sensor combining a 3-axis accelerometer, gyroscope and magnetometer with a 32-bit microcontroller running Bosch's sensor-fusion firmware, so it reports orientation as Euler angles or quaternions instead of raw readings you fuse yourself. The COM3 pin selects 0x29 (high) or 0x28 (low). Supply runs 2.4–3.6 V, with a 1.7–3.6 V I/O supply.
Watch out: Bosch's datasheet states its i2c uses clock stretching, which the Raspberry Pi's hardware i2c handles badly — on a Pi, slow the bus right down or use a software i2c overlay. And the datasheet calls 0x29 the default, but Adafruit's breakout ships at 0x28 — scan rather than assume.
Wiring
How to connect the BNO055
The BNO055 talks i2c at address 0x28 (up to 2 selectable addresses, handy when you need more than one on the same bus). It runs at 2.4–3.6 V, so match your host's logic level — if your host is 5 V and a board on the bus is 3.3 V-only, add a level shifter. Use the compatibility checker to confirm the exact cable for your setup.
Because the address is selectable, you can run several BNO055 boards on one bus by setting each to a different address — no extra wiring beyond the shared SDA/SCL.
Wiring is the usual four: power, ground, SDA and SCL, plus pull-up resistors — almost always already fitted on the breakout. Nothing showing up? Run an i2c scanner first; if the bus is silent, the 7-step checklist finds it faster than guessing.
Ecosystems
Plug-together options for the BNO055
BNO055 breakouts ship with STEMMA QT — keyed 4-pin cables carrying power, ground, SDA and SCL, so there's nothing to solder and nothing to wire backwards. Chain it to the next board and keep going.
Running a mixed bench? Those ecosystems interoperate more than their marketing suggests — see every connector pairing for the cable or adapter you need, or the standards overview for how they compare.
Alternatives
Other motion boards
Watch the bus
Boards that clash with the BNO055
These want an address the BNO055 also answers (0x29), so they can't share a bus with it untouched. If one is address-selectable, strap it elsewhere; if not, the conflict guide covers the multiplexer and second-bus routes, and the collision roundup explains why a scan won't warn you.
Get one
Questions
BNO055 i2c FAQ
What is the BNO055's i2c address?
The BNO055 uses 0x28 or 0x29, selected with an address pin or solder jumper on the board. If a scan turns up something unexpected, our i2c address list names the usual suspect for every address.
What voltage does the BNO055 run at?
The BNO055 runs from 2.4–3.6 V (I/O 1.7–3.6 V). Adafruit's breakout adds a regulator and accepts 3 V or 5 V logic; a bare module may not, so check yours before connecting a 5 V Arduino.
Can I use two BNO055s on one i2c bus?
Yes — set each one to a different address (0x28, 0x29) using its address pin or jumper, then wire both to the same SDA/SCL. That gives you up to 2 on a single bus before you need a multiplexer.
Does the BNO055 work with STEMMA QT?
Yes — BNO055 breakouts ship with STEMMA QT, so it plugs straight in with no soldering. Mixing ecosystems? The compatibility checker gives you the exact cable or adapter.
What should I watch out for with the BNO055?
Bosch's datasheet states its i2c uses clock stretching, which the Raspberry Pi's hardware i2c handles badly — on a Pi, slow the bus right down or use a software i2c overlay. And the datasheet calls 0x29 the default, but Adafruit's breakout ships at 0x28 — scan rather than assume.