From 911ed3fdf8a2d26b7bafa6d2856be216afbceaa3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Jan 2026 18:00:35 -1000 Subject: [PATCH 1/3] Bump docker/login-action from 3.6.0 to 3.7.0 (#6000) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index dff43d1803..77d81edbd9 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -38,13 +38,13 @@ jobs: - name: Login to DockerHub if: github.event_name != 'pull_request' - uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3 + uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Login to GitHub Container Registry if: github.event_name != 'pull_request' - uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3 + uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3 with: registry: ghcr.io username: ${{ github.repository_owner }} From fe763553d6ea3883f5fc25c026f31e583648510b Mon Sep 17 00:00:00 2001 From: iret33 Date: Thu, 29 Jan 2026 10:57:26 +0300 Subject: [PATCH 2/3] Add BNO055 9-DOF Absolute Orientation Sensor documentation Documentation for the new bno055 component in esphome/esphome#13616. Co-Authored-By: Claude Opus 4.5 --- content/components/sensor/bno055.md | 198 ++++++++++++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 content/components/sensor/bno055.md diff --git a/content/components/sensor/bno055.md b/content/components/sensor/bno055.md new file mode 100644 index 0000000000..8d89735fb6 --- /dev/null +++ b/content/components/sensor/bno055.md @@ -0,0 +1,198 @@ +--- +description: "Instructions for setting up BNO055 9-DOF Absolute Orientation Sensor." +title: "BNO055 9-DOF Absolute Orientation Sensor" +params: + seo: + description: Instructions for setting up BNO055 9-DOF Absolute Orientation Sensor. +--- + +The `bno055` sensor platform allows you to use your BNO055 9-DOF Absolute Orientation Sensor +([datasheet](https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bno055-ds000.pdf), +[Adafruit](https://www.adafruit.com/product/2472)) with ESPHome. +The [I2C Bus](/components/i2c) is required to be set up in your configuration for this sensor to work. + +The BNO055 is unique in that it features an onboard ARM Cortex-M0 processor that performs sensor fusion, +combining data from the accelerometer, gyroscope, and magnetometer to provide absolute orientation outputs +including Euler angles and quaternions. This removes the complexity of implementing sensor fusion algorithms +on the microcontroller. + +```yaml +# Minimal configuration entry +sensor: + - platform: bno055 + euler_heading: + name: "BNO055 Heading" + euler_roll: + name: "BNO055 Roll" + euler_pitch: + name: "BNO055 Pitch" +``` + +```yaml +# Full configuration entry with all sensors +sensor: + - platform: bno055 + address: 0x29 + update_interval: 1s + # Euler angles (absolute orientation) + euler_heading: + name: "BNO055 Heading" + euler_roll: + name: "BNO055 Roll" + euler_pitch: + name: "BNO055 Pitch" + # Quaternion (absolute orientation) + quaternion_w: + name: "BNO055 Quaternion W" + quaternion_x: + name: "BNO055 Quaternion X" + quaternion_y: + name: "BNO055 Quaternion Y" + quaternion_z: + name: "BNO055 Quaternion Z" + # Linear acceleration (without gravity) + linear_accel_x: + name: "BNO055 Linear Accel X" + linear_accel_y: + name: "BNO055 Linear Accel Y" + linear_accel_z: + name: "BNO055 Linear Accel Z" + # Gravity vector + gravity_x: + name: "BNO055 Gravity X" + gravity_y: + name: "BNO055 Gravity Y" + gravity_z: + name: "BNO055 Gravity Z" + # Raw accelerometer + accel_x: + name: "BNO055 Accel X" + accel_y: + name: "BNO055 Accel Y" + accel_z: + name: "BNO055 Accel Z" + # Gyroscope + gyro_x: + name: "BNO055 Gyro X" + gyro_y: + name: "BNO055 Gyro Y" + gyro_z: + name: "BNO055 Gyro Z" + # Magnetometer + mag_x: + name: "BNO055 Mag X" + mag_y: + name: "BNO055 Mag Y" + mag_z: + name: "BNO055 Mag Z" + # Temperature + temperature: + name: "BNO055 Temperature" +``` + +## Configuration variables + +### Euler Angles (Absolute Orientation) + +- **euler_heading** (*Optional*): Heading angle in degrees (0-360). All options from + [Sensor](/components/sensor). +- **euler_roll** (*Optional*): Roll angle in degrees. All options from + [Sensor](/components/sensor). +- **euler_pitch** (*Optional*): Pitch angle in degrees. All options from + [Sensor](/components/sensor). + +### Quaternion (Absolute Orientation) + +- **quaternion_w** (*Optional*): Quaternion W component. All options from + [Sensor](/components/sensor). +- **quaternion_x** (*Optional*): Quaternion X component. All options from + [Sensor](/components/sensor). +- **quaternion_y** (*Optional*): Quaternion Y component. All options from + [Sensor](/components/sensor). +- **quaternion_z** (*Optional*): Quaternion Z component. All options from + [Sensor](/components/sensor). + +### Linear Acceleration (Gravity Removed) + +- **linear_accel_x** (*Optional*): Linear acceleration X-axis in m/s². All options from + [Sensor](/components/sensor). +- **linear_accel_y** (*Optional*): Linear acceleration Y-axis in m/s². All options from + [Sensor](/components/sensor). +- **linear_accel_z** (*Optional*): Linear acceleration Z-axis in m/s². All options from + [Sensor](/components/sensor). + +### Gravity Vector + +- **gravity_x** (*Optional*): Gravity vector X-axis in m/s². All options from + [Sensor](/components/sensor). +- **gravity_y** (*Optional*): Gravity vector Y-axis in m/s². All options from + [Sensor](/components/sensor). +- **gravity_z** (*Optional*): Gravity vector Z-axis in m/s². All options from + [Sensor](/components/sensor). + +### Raw Accelerometer + +- **accel_x** (*Optional*): Raw acceleration X-axis in m/s². All options from + [Sensor](/components/sensor). +- **accel_y** (*Optional*): Raw acceleration Y-axis in m/s². All options from + [Sensor](/components/sensor). +- **accel_z** (*Optional*): Raw acceleration Z-axis in m/s². All options from + [Sensor](/components/sensor). + +### Gyroscope + +- **gyro_x** (*Optional*): Angular velocity X-axis in degrees/s. All options from + [Sensor](/components/sensor). +- **gyro_y** (*Optional*): Angular velocity Y-axis in degrees/s. All options from + [Sensor](/components/sensor). +- **gyro_z** (*Optional*): Angular velocity Z-axis in degrees/s. All options from + [Sensor](/components/sensor). + +### Magnetometer + +- **mag_x** (*Optional*): Magnetic field X-axis in microtesla (uT). All options from + [Sensor](/components/sensor). +- **mag_y** (*Optional*): Magnetic field Y-axis in microtesla (uT). All options from + [Sensor](/components/sensor). +- **mag_z** (*Optional*): Magnetic field Z-axis in microtesla (uT). All options from + [Sensor](/components/sensor). + +### Other + +- **temperature** (*Optional*): Internal temperature of the sensor in Celsius. All options from + [Sensor](/components/sensor). +- **address** (*Optional*, int): Manually specify the I2C address of the sensor. + Defaults to `0x29`. The alternative address is `0x28`. +- **update_interval** (*Optional*, [Time](/guides/configuration-types#time)): The interval to check the sensor. + Defaults to `1s`. +- **id** (*Optional*, [ID](/guides/configuration-types#id)): Manually specify the ID used for code generation. + +## ESP32 I2C Considerations + +The BNO055 uses I2C clock stretching, which can cause issues on some ESP32 variants. If you experience +communication problems, try reducing the I2C frequency to 50kHz: + +```yaml +i2c: + sda: GPIO21 + scl: GPIO22 + frequency: 50kHz +``` + +## Calibration + +The BNO055 performs automatic calibration during operation. For best results: + +1. **Gyroscope**: Keep the sensor still for a few seconds after power-on. +2. **Magnetometer**: Move the sensor in a figure-8 pattern to calibrate. +3. **Accelerometer**: Place the sensor in multiple orientations (e.g., all 6 faces of a cube). + +The sensor fusion algorithm (NDOF mode) requires all three sensors to be calibrated for optimal +absolute orientation output. + +## See Also + +- [Sensor Filters](/components/sensor#sensor-filters) +- {{< apiref "bno055/bno055.h" "bno055/bno055.h" >}} +- [Adafruit BNO055 Guide](https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor) +- [BNO055 Datasheet](https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bno055-ds000.pdf) From 942485b66b1a8e9cd9adb3425f3f5f7c2de058a5 Mon Sep 17 00:00:00 2001 From: iret33 Date: Thu, 29 Jan 2026 11:09:38 +0300 Subject: [PATCH 3/3] Fix markdown lint issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use 1/1/1 ordered list style per markdownlint rules - Use proper µT symbol for microtesla Co-Authored-By: Claude Opus 4.5 --- content/components/sensor/bno055.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/components/sensor/bno055.md b/content/components/sensor/bno055.md index 8d89735fb6..1197f96abd 100644 --- a/content/components/sensor/bno055.md +++ b/content/components/sensor/bno055.md @@ -150,11 +150,11 @@ sensor: ### Magnetometer -- **mag_x** (*Optional*): Magnetic field X-axis in microtesla (uT). All options from +- **mag_x** (*Optional*): Magnetic field X-axis in microtesla (µT). All options from [Sensor](/components/sensor). -- **mag_y** (*Optional*): Magnetic field Y-axis in microtesla (uT). All options from +- **mag_y** (*Optional*): Magnetic field Y-axis in microtesla (µT). All options from [Sensor](/components/sensor). -- **mag_z** (*Optional*): Magnetic field Z-axis in microtesla (uT). All options from +- **mag_z** (*Optional*): Magnetic field Z-axis in microtesla (µT). All options from [Sensor](/components/sensor). ### Other @@ -184,8 +184,8 @@ i2c: The BNO055 performs automatic calibration during operation. For best results: 1. **Gyroscope**: Keep the sensor still for a few seconds after power-on. -2. **Magnetometer**: Move the sensor in a figure-8 pattern to calibrate. -3. **Accelerometer**: Place the sensor in multiple orientations (e.g., all 6 faces of a cube). +1. **Magnetometer**: Move the sensor in a figure-8 pattern to calibrate. +1. **Accelerometer**: Place the sensor in multiple orientations (e.g., all 6 faces of a cube). The sensor fusion algorithm (NDOF mode) requires all three sensors to be calibrated for optimal absolute orientation output.