Skip to main content
Visitor
August 11, 2026
Question

Sensorhub LSM6DSO with H3LIS331DLTR

  • August 11, 2026
  • 0 replies
  • 9 views

Hi ST community,

Below is what I have setup for the sensorhub interface between LSM6DSO and H3LIS331DL
 

Goal: Read H3LIS331DL WHO_AM_I (0x0F → expect 0x32) via LSM6DSO Mode 2 sensor hub (MCU ↔ LSM on main I²C; H3LIS on SCX/SDX).

Setup

  • H3LIS: CS→VDD (I²C), SA0→GND (addr 0x18), SCL/SDA→LSM SCX/SDX
  • Hub: 1 slave, MASTER_CONFIG = 0x4C (WRITE_ONCE | SHUB_PU_EN | MASTER_ON), SLV0 read of 0x0F
  • Trigger: internal (XL ODR ~104 Hz, START_CONFIG = 0) — not using INT2 / H3LIS_DRDY for this
  • Readback from SENSOR_HUB_1 with embedded-page access (SHUB_REG_ACCESS=1)

What we see

  • LSM6DSO itself is OK (WHO = 0x6C)
  • After arming the hub: STATUS_MASTER ends as 0x09 → ENDOP=1, SLAVE0_NACK=1
  • SENSOR_HUB_1 = 0x00 (expected 0x32)
  • Scope on SCX/SDX: lines go from low → high when hub pull-ups enable, then stay high — no visible I²C clock/data bursts
  • Same result after resoldering / swapping H3LIS; also tried addr 0x19

Question: With Mode 2 + internal XL trigger, why would we get SENSOR_HUB_1 =0x00 . It seems that the sensorhub from the master perspective is setup correctly, but I am unable to talk to the slave.
Is there something else I could try to identify the source of the issue? I also tried soldering and resoldering multiple times to no avail.

I would appreciate your suggestions.