From f40406106073c6384371cd0357d453c4d603f2aa Mon Sep 17 00:00:00 2001 From: NonaSuomy Date: Sat, 11 Apr 2026 15:58:49 -0400 Subject: [PATCH] [lsm6ds] Add support for LSM6DSO32TR (WHO_AM_I 0x69) --- esphome/components/lsm6ds/const.py | 1 + esphome/components/lsm6ds/lsm6ds.cpp | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/esphome/components/lsm6ds/const.py b/esphome/components/lsm6ds/const.py index dd3184a67..2ea4cba10 100644 --- a/esphome/components/lsm6ds/const.py +++ b/esphome/components/lsm6ds/const.py @@ -13,6 +13,7 @@ LSM6DS_OUTX_L_A = 0x28 # WHO_AM_I Values for different variants LSM6DSOX_WHO_AM_I_VALUE = 0x6C LSM6DS3TR_WHO_AM_I_VALUE = 0x6A +LSM6DSO32TR_WHO_AM_I_VALUE = 0x69 lsm6ds_ns = cg.esphome_ns.namespace("lsm6ds") LSM6DSComponent = lsm6ds_ns.class_("LSM6DSComponent", cg.PollingComponent) diff --git a/esphome/components/lsm6ds/lsm6ds.cpp b/esphome/components/lsm6ds/lsm6ds.cpp index df21c1087..f6b6ac6b6 100644 --- a/esphome/components/lsm6ds/lsm6ds.cpp +++ b/esphome/components/lsm6ds/lsm6ds.cpp @@ -19,6 +19,8 @@ void LSM6DSComponent::setup() { ESP_LOGI(TAG, "Detected LSM6DSOX"); } else if (who_am_i == 0x6A) { ESP_LOGI(TAG, "Detected LSM6DS3TR-C"); + } else if (who_am_i == 0x69) { + ESP_LOGI(TAG, "Detected LSM6DSO32TR"); } else { this->mark_failed(); ESP_LOGE(TAG, "Unknown chip ID: 0x%02X", who_am_i); @@ -110,7 +112,7 @@ void LSM6DSComponent::update() { } void LSM6DSComponent::dump_config() { - ESP_LOGCONFIG(TAG, "LSM6DS (LSM6DSOX/LSM6DS3TR-C):"); + ESP_LOGCONFIG(TAG, "LSM6DS (LSM6DSOX/LSM6DS3TR-C/LSM6DSO32TR):"); LOG_UPDATE_INTERVAL(this); if (this->is_failed()) { ESP_LOGCONFIG(TAG, " Connection failed!");