Product images are for informational purposes only and may vary slightly depending on the batch and supplier. Product specifications and prices may be subject to change without notice. We do our best to provide accurate and complete product specifications, but they may not be completely accurate. If you encounter any such situation, please let us know.
The product is intended for specialists and requires qualified and authorized personnel. The product does not include assembly/use instructions . Putting the product into operation by unqualified persons leads to the loss of the warranty according to the Terms and Conditions on the site.
The specified technical parameters (current, power, etc.) represent maximum allowable values under ideal operating conditions. For safe use and optimal lifespan, it is recommended to operate the product continuously at no more than 50% of the specified maximum values.
Absolute orientation sensor module, 9 axes, GY-BNO055, IIC, Serial, 3-5V
Compact module for measuring absolute orientation on 9 axes, ideal for robotics, navigation, and wearable devices. It performs sensor fusion directly on-chip for stable and fast data, and includes an accelerometer, gyroscope, and magnetometer with an ARM Cortex-M0+ processor. It operates at 3-5V and communicates easily via I2C or UART, compatible with Arduino, ESP32, STM32, and Raspberry Pi.
Shipping by Thursday 27 August
International fast shipping within EU. Free Shipping for orders above 100 EUR in most EU countries.
We ship from our stock within 24H
You earn points with every order, worth 5%.
The GY-BNO055 module is a compact and intelligent solution for measuring absolute orientation in three-dimensional space, intended for robotics projects, navigation systems, wearable devices, and industrial applications that require high-precision motion data. What sets it apart from conventional sensors is its ability to perform sensor fusion directly on-chip, eliminating the need for complex algorithms implemented in software.
The module integrates a 14-bit triaxial accelerometer, a 16-bit triaxial gyroscope with a measurement range of up to 2000 degrees per second, a triaxial geomagnetic sensor, and an ARM Cortex-M0+ microcontroller running Bosch Sensortec fusion software, all in a single 3.8mm x 5.2mm x 1.1mm. LGA package. Power supply is flexible, supporting voltages between 3V and 5V thanks to the internal voltage regulator, making it directly compatible with Arduino UNO, Arduino Mega, STM32, ESP32, and other popular development platforms without additional voltage adaptation circuits.
Communication is carried out via standard I2C or UART protocol, and the I2C interface can be configured for HID-I2C, turning the module into a plug-and-play sensor for Windows 8.0 and 8.1. devices. The SCL\Rx and SDA\Tx pins are dual-purpose, functioning either in I2C mode or UART mode depending on the configuration of the BOOT and REST pins. The module’s compact dimensions of 12mm x 21mm make integration into tight spaces easier.
The BNO055 can provide the following types of data: absolute orientation as an Euler vector at 100Hz, absolute orientation as a quaternion at 100Hz for more precise calculations, angular velocity in rad/s at 20Hz, total acceleration vector (gravity + linear motion) in m/s² at 100Hz, magnetic field strength in microtesla at 100Hz, linear acceleration (without the gravitational component) at 100Hz, gravitational vector at 100Hz, and ambient temperature in degrees Celsius at 1Hz.
Specifications:
Main chip: BNO055 (original, new)
Power supply: 3V - 5V DC (internal LDO regulator)
Communication interface: standard I2C / UART
Accelerometer: triaxial, 14-bit
Gyroscope: triaxial, 16-bit, ±2000 °/s
Magnetometer: triaxial, geomagnetic
Internal processor: ARM Cortex-M0+ (Bosch Sensortec fusion)
Euler orientation frequency: 100Hz
Quaternion frequency: 100Hz
Angular velocity frequency: 20Hz
Acceleration frequency: 100Hz
Magnetic field frequency: 100Hz
Temperature frequency: 1Hz
Module dimensions: 12mm x 21mm
Chip dimensions: 3.8mm x 5.2mm x 1.1mm, 28-pin LGA
Compatibility: Arduino UNO/Mega, STM32, ESP32, Raspberry Pi (3.3V logic)
Pinout:
| Pin | Signal | Description |
|---|---|---|
| VIN | Power supply | 3V - 5V DC |
| GND | Ground | Common ground |
| SCL / Rx | I2C / UART | I2C clock line or RX for UART |
| SDA / Tx | I2C / UART | I2C data line or TX for UART |
| ADD | Address | I2C address selection (GND = 0x28 / VCC = 0x29) |
| INT | Interrupt | Interrupt output (active high) |
| BOOT | Boot mode | Startup operating mode selection |
| REST | Reset | Chip reset (active low) |
Usage:
Connect the VIN pin of the module to the 3.3V or 5V pin of the development board and the GND pin to common ground.
For I2C mode: connect SCL\Rx to the board’s SCL pin (e.g. A5 on Arduino UNO, GPIO22 on ESP32, PB6 on STM32) and SDA\Tx to the SDA pin (e.g. A4 on Arduino UNO, GPIO21 on ESP32, PB7 on STM32).
For UART mode: connect SCL\Rx to the development board’s TX and SDA\Tx to the board’s RX. Configure the BOOT and REST pins accordingly to enable this mode.
Leave the ADD pin unconnected or connected to GND for the default I2C address 0x28. Connect it to VIN for address 0x29 if you are using two modules on the same I2C bus.
The INT pin can be connected to a digital pin on the board to detect motion events via hardware interrupts, reducing processor load.
Install the "Adafruit BNO055" library from the Arduino IDE Library Manager (Sketch > Include Library > Manage Libraries).
Also install the "Adafruit Unified Sensor" library, which is required as a dependency.
Upload the test sketch, compile it, and upload it to the board.
Open the Serial Monitor at 115200 baud to view orientation data in real time.
Place the module on a flat surface for initial calibration. Rotate it slowly in all directions to calibrate the magnetometer (figure-eight motions in the air).
Check the calibration status using the sys, gyro, accel, and mag values returned by the getCalibration() function. A value of 3 for each indicates full calibration.
Connection example:
| Module pin | Arduino UNO | ESP32 DevKit V1 | Description |
|---|---|---|---|
| VIN | 5V | 3V3 or VIN | Module power supply |
| GND | GND | GND | Common ground |
| SCL / Rx | A5 (SCL) | GPIO22 | I2C clock / UART RX |
| SDA / Tx | A4 (SDA) | GPIO21 | I2C data / UART TX |
| ADD | GND or 5V | GND or 3V3 | I2C address selection |
| INT | D2 | GPIO4 | Optional interrupt |
| BOOT | Not connected | Not connected | Boot mode selection |
| REST | D3 or button | GPIO5 or button | Optional reset |
Produs destinat utilizarii in proiecte electronice, automatizari, prototipare, educatie si cercetare.
Produsul trebuie utilizat numai conform specificatiilor tehnice mentionate in descriere si/sau in documentatia produsului.
Avertismente generale de siguranta:
Nu utilizati produsul la tensiuni, curenti sau temperaturi peste valorile specificate.
Montajul si conectarea trebuie realizate de persoane cu cunostinte tehnice minime in domeniul electric/electronic.
Evitati scurtcircuitele, inversarea polaritatii si conectarea gresita a alimentarii.
Nu lasati produsul alimentat nesupravegheat in timpul testelor.
Produsul nu este jucarie si nu este destinat copiilor.
Pentru modulele electronice, se recomanda utilizarea in carcase, panouri sau montaje protejate, dupa caz.
Identificare produs:
Denumirea produsului, codul/SKU-ul si caracteristicile tehnice sunt mentionate in pagina produsului si/sau pe eticheta ambalajului.
Producator / Importator / Distribuitor:
Sigmanortec S.R.L.
Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania
E-mail: [email protected]
Website: www.sigmanortec.ro
Persoana responsabila in UE:
Sigmanortec S.R.L.
Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania
E-mail: [email protected]
Documentatie si siguranta:
Pentru informatii suplimentare, fise tehnice, declaratii de conformitate sau instructiuni, ne puteti contacta la [email protected].
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <utility/imumaths.h>
Adafruit_BNO055 bno = Adafruit_BNO055(55, 0x28);
void setup() {
Serial.begin(115200);
Serial.println("BNO055 Orientation Sensor Test");
if (!bno.begin()) {
Serial.println("No BNO055 detected. Check wiring!");
while (1);
}
bno.setExtCrystalUse(true);
Serial.println("Sensor initialized successfully.");
}
void loop() {
// Get Euler angles (heading, roll, pitch)
sensors_event_t event;
bno.getEvent(&event);
Serial.print("Heading: ");
Serial.print(event.orientation.x, 2);
Serial.print(" Roll: ");
Serial.print(event.orientation.y, 2);
Serial.print(" Pitch: ");
Serial.println(event.orientation.z, 2);
// Get calibration status
uint8_t sys, gyro, accel, mag = 0;
bno.getCalibration(&sys, &gyro, &accel, &mag);
Serial.print("Calibration -> SYS: ");
Serial.print(sys);
Serial.print(" GYRO: ");
Serial.print(gyro);
Serial.print(" ACCEL: ");
Serial.print(accel);
Serial.print(" MAG: ");
Serial.println(mag);
delay(100);
}