[lsm6ds] Add separate GYRO_ODR constants and fix enum ordering

This commit is contained in:
NonaSuomy committed 2026-04-11 15:43:02 -04:00
1 parent 67762e5cde
commit 67e69e7709
2 files changed
+50 -11

No files matched your search

+34 -9
View File
@@ -11,14 +11,14 @@ from .const import (
CONF_ACCEL_ODR,
CONF_GYRO_ODR,
LSM6DS_ACCEL_RANGE_2G,
LSM6DS_ACCEL_RANGE_16G,
LSM6DS_ACCEL_RANGE_4G,
LSM6DS_ACCEL_RANGE_8G,
LSM6DS_ACCEL_RANGE_16G,
LSM6DS_GYRO_RANGE_125DPS,
LSM6DS_GYRO_RANGE_250DPS,
LSM6DS_GYRO_RANGE_500DPS,
LSM6DS_GYRO_RANGE_1000DPS,
LSM6DS_GYRO_RANGE_2000DPS,
LSM6DS_GYRO_RANGE_125DPS,
LSM6DS_ACCEL_ODR_OFF,
LSM6DS_ACCEL_ODR_12_5HZ,
LSM6DS_ACCEL_ODR_26HZ,
@@ -30,6 +30,17 @@ from .const import (
LSM6DS_ACCEL_ODR_1_66KHZ,
LSM6DS_ACCEL_ODR_3_33KHZ,
LSM6DS_ACCEL_ODR_6_66KHZ,
LSM6DS_GYRO_ODR_OFF,
LSM6DS_GYRO_ODR_12_5HZ,
LSM6DS_GYRO_ODR_26HZ,
LSM6DS_GYRO_ODR_52HZ,
LSM6DS_GYRO_ODR_104HZ,
LSM6DS_GYRO_ODR_208HZ,
LSM6DS_GYRO_ODR_416HZ,
LSM6DS_GYRO_ODR_833HZ,
LSM6DS_GYRO_ODR_1_66KHZ,
LSM6DS_GYRO_ODR_3_33KHZ,
LSM6DS_GYRO_ODR_6_66KHZ,
)
DEPENDENCIES = ["i2c"]
@@ -39,20 +50,20 @@ LSM6DSI2CDevice = lsm6ds_ns.class_("LSM6DSI2CDevice", LSM6DSComponent, i2c.I2CDe
ACCEL_RANGES = {
"2G": LSM6DS_ACCEL_RANGE_2G,
"16G": LSM6DS_ACCEL_RANGE_16G,
"4G": LSM6DS_ACCEL_RANGE_4G,
"8G": LSM6DS_ACCEL_RANGE_8G,
"16G": LSM6DS_ACCEL_RANGE_16G,
}
GYRO_RANGES = {
"125DPS": LSM6DS_GYRO_RANGE_125DPS,
"250DPS": LSM6DS_GYRO_RANGE_250DPS,
"500DPS": LSM6DS_GYRO_RANGE_500DPS,
"1000DPS": LSM6DS_GYRO_RANGE_1000DPS,
"2000DPS": LSM6DS_GYRO_RANGE_2000DPS,
"125DPS": LSM6DS_GYRO_RANGE_125DPS,
}
ODRS = {
ACCEL_ODRS = {
"0HZ": LSM6DS_ACCEL_ODR_OFF,
"12.5HZ": LSM6DS_ACCEL_ODR_12_5HZ,
"26HZ": LSM6DS_ACCEL_ODR_26HZ,
@@ -66,11 +77,25 @@ ODRS = {
"6.66KHZ": LSM6DS_ACCEL_ODR_6_66KHZ,
}
GYRO_ODRS = {
"0HZ": LSM6DS_GYRO_ODR_OFF,
"12.5HZ": LSM6DS_GYRO_ODR_12_5HZ,
"26HZ": LSM6DS_GYRO_ODR_26HZ,
"52HZ": LSM6DS_GYRO_ODR_52HZ,
"104HZ": LSM6DS_GYRO_ODR_104HZ,
"208HZ": LSM6DS_GYRO_ODR_208HZ,
"416HZ": LSM6DS_GYRO_ODR_416HZ,
"833HZ": LSM6DS_GYRO_ODR_833HZ,
"1.66KHZ": LSM6DS_GYRO_ODR_1_66KHZ,
"3.33KHZ": LSM6DS_GYRO_ODR_3_33KHZ,
"6.66KHZ": LSM6DS_GYRO_ODR_6_66KHZ,
}
BASE_SCHEMA = cv.Schema({
cv.Optional(CONF_ACCEL_RANGE, default="2G"): cv.enum(ACCEL_RANGES, upper=True),
cv.Optional(CONF_GYRO_RANGE, default="250DPS"): cv.enum(GYRO_RANGES, upper=True),
cv.Optional(CONF_ACCEL_ODR, default="104HZ"): cv.enum(ODRS, upper=True),
cv.Optional(CONF_GYRO_ODR, default="104HZ"): cv.enum(ODRS, upper=True),
cv.Optional(CONF_ACCEL_ODR, default="104HZ"): cv.enum(ACCEL_ODRS, upper=True),
cv.Optional(CONF_GYRO_ODR, default="104HZ"): cv.enum(GYRO_ODRS, upper=True),
}).extend(cv.polling_component_schema("60s"))
CONFIG_SCHEMA = cv.Schema({
@@ -84,8 +109,8 @@ async def to_code(config):
accel_range = ACCEL_RANGES[config[CONF_ACCEL_RANGE]]
gyro_range = GYRO_RANGES[config[CONF_GYRO_RANGE]]
accel_odr = ODRS[config[CONF_ACCEL_ODR]]
gyro_odr = ODRS[config[CONF_GYRO_ODR]]
accel_odr = ACCEL_ODRS[config[CONF_ACCEL_ODR]]
gyro_odr = GYRO_ODRS[config[CONF_GYRO_ODR]]
cg.add(var.set_accel_range(accel_range))
cg.add(var.set_gyro_range(gyro_range))
+16 -2
View File
@@ -19,18 +19,19 @@ LSM6DSComponent = lsm6ds_ns.class_("LSM6DSComponent", cg.PollingComponent)
LSM6DSAccelRange = lsm6ds_ns.enum("LSM6DSAccelRange")
LSM6DS_ACCEL_RANGE_2G = LSM6DSAccelRange.LSM6DS_ACCEL_RANGE_2G
LSM6DS_ACCEL_RANGE_16G = LSM6DSAccelRange.LSM6DS_ACCEL_RANGE_16G
LSM6DS_ACCEL_RANGE_4G = LSM6DSAccelRange.LSM6DS_ACCEL_RANGE_4G
LSM6DS_ACCEL_RANGE_8G = LSM6DSAccelRange.LSM6DS_ACCEL_RANGE_8G
LSM6DS_ACCEL_RANGE_16G = LSM6DSAccelRange.LSM6DS_ACCEL_RANGE_16G
LSM6DSGyroRange = lsm6ds_ns.enum("LSM6DSGyroRange")
LSM6DS_GYRO_RANGE_125DPS = LSM6DSGyroRange.LSM6DS_GYRO_RANGE_125DPS
LSM6DS_GYRO_RANGE_250DPS = LSM6DSGyroRange.LSM6DS_GYRO_RANGE_250DPS
LSM6DS_GYRO_RANGE_500DPS = LSM6DSGyroRange.LSM6DS_GYRO_RANGE_500DPS
LSM6DS_GYRO_RANGE_1000DPS = LSM6DSGyroRange.LSM6DS_GYRO_RANGE_1000DPS
LSM6DS_GYRO_RANGE_2000DPS = LSM6DSGyroRange.LSM6DS_GYRO_RANGE_2000DPS
LSM6DS_GYRO_RANGE_125DPS = LSM6DSGyroRange.LSM6DS_GYRO_RANGE_125DPS
LSM6DSODR = lsm6ds_ns.enum("LSM6DSODR")
# Accelerometer ODR Values (matches ODR_XL[3:0] in CTRL1_XL)
LSM6DS_ACCEL_ODR_OFF = LSM6DSODR.LSM6DS_ODR_OFF
LSM6DS_ACCEL_ODR_12_5HZ = LSM6DSODR.LSM6DS_ODR_12_5HZ
LSM6DS_ACCEL_ODR_26HZ = LSM6DSODR.LSM6DS_ODR_26HZ
@@ -43,6 +44,19 @@ LSM6DS_ACCEL_ODR_1_66KHZ = LSM6DSODR.LSM6DS_ODR_1_66KHZ
LSM6DS_ACCEL_ODR_3_33KHZ = LSM6DSODR.LSM6DS_ODR_3_33KHZ
LSM6DS_ACCEL_ODR_6_66KHZ = LSM6DSODR.LSM6DS_ODR_6_66KHZ
# Gyroscope ODR Values (matches ODR_G[3:0] in CTRL2_G)
LSM6DS_GYRO_ODR_OFF = LSM6DSODR.LSM6DS_ODR_OFF
LSM6DS_GYRO_ODR_12_5HZ = LSM6DSODR.LSM6DS_ODR_12_5HZ
LSM6DS_GYRO_ODR_26HZ = LSM6DSODR.LSM6DS_ODR_26HZ
LSM6DS_GYRO_ODR_52HZ = LSM6DSODR.LSM6DS_ODR_52HZ
LSM6DS_GYRO_ODR_104HZ = LSM6DSODR.LSM6DS_ODR_104HZ
LSM6DS_GYRO_ODR_208HZ = LSM6DSODR.LSM6DS_ODR_208HZ
LSM6DS_GYRO_ODR_416HZ = LSM6DSODR.LSM6DS_ODR_416HZ
LSM6DS_GYRO_ODR_833HZ = LSM6DSODR.LSM6DS_ODR_833HZ
LSM6DS_GYRO_ODR_1_66KHZ = LSM6DSODR.LSM6DS_ODR_1_66KHZ
LSM6DS_GYRO_ODR_3_33KHZ = LSM6DSODR.LSM6DS_ODR_3_33KHZ
LSM6DS_GYRO_ODR_6_66KHZ = LSM6DSODR.LSM6DS_ODR_6_66KHZ
CONF_ACCEL_X = "accel_x"
CONF_ACCEL_Y = "accel_y"
CONF_ACCEL_Z = "accel_z"