11static const uint8_t LSM6DS_REG_WHO_AM_I = 0x0F;
13static constexpr uint8_t LSM6DS_WHO_AM_I_LSM6DS3 = 0x69;
14static constexpr uint8_t LSM6DS_WHO_AM_I_LSM6DS3TR_C = 0x6A;
15static constexpr uint8_t LSM6DS_WHO_AM_I_LSM6DSO = 0x6C;
16static const uint8_t LSM6DS_REG_CTRL1_XL = 0x10;
17static const uint8_t LSM6DS_REG_CTRL2_G = 0x11;
18static const uint8_t LSM6DS_REG_CTRL3_C = 0x12;
19static const uint8_t LSM6DS_REG_CTRL6_C = 0x15;
20static const uint8_t LSM6DS_REG_CTRL7_G = 0x16;
21static const uint8_t LSM6DS_REG_STATUS = 0x1E;
22static const uint8_t LSM6DS_REG_OUT_TEMP_L = 0x20;
23static const uint8_t LSM6DS_REG_OUTX_L_G = 0x22;
24static const uint8_t LSM6DS_REG_OUTX_L_XL = 0x28;
27static const uint8_t LSM6DS_BURST_LEN = 12;
28static const uint8_t LSM6DS_ACCEL_OFFSET = 6;
31static const uint8_t CTRL3_C_SW_RESET = (1 << 0);
32static const uint8_t CTRL3_C_IF_INC = (1 << 2);
33static const uint8_t CTRL3_C_BDU = (1 << 6);
97 void setup()
override;
This Class provides the methods to read/write bytes from/to an i2c device.
void set_accel_odr(LSM6DSAccelODR o)
void add_temperature_listener(F &&cb)
void dump_config() override
LazyCallbackManager< void(float)> temperature_callback_
void set_gyro_odr(LSM6DSGyroODR o)
LSM6DSAccelODR accel_odr_
uint16_t temperature_sensitivity_
float get_setup_priority() const override
bool update_data(motion::MotionData &data) override
LSM6DSGyroRange gyro_range_
LSM6DSAccelRange accel_range_
void set_accel_range(LSM6DSAccelRange r)
const LogString * chip_name_
void set_gyro_range(LSM6DSGyroRange r)
uint16_t temperature_sensitivity_from_who_am_i(uint8_t who_am_i)
Temperature sensitivity in LSB/°C for a supported WHO_AM_I value, from the chip's datasheet.
const LogString * chip_name_from_who_am_i(uint8_t who_am_i)
Chip name for a WHO_AM_I value, or nullptr when the chip is not supported.
constexpr float DATA
For components that import data from directly connected sensors like DHT.