Showing results for 
Search instead for 
Did you mean: 

ISM330DLC issue with sensor hub output registers 13-18



I'm currently trying out different configurations of the ISM330DLC sensor hub. Everything works as expected as long as I don't configure it to read more than 12 registers. If I do try to use more than 12 registers, I get some unexpected output in registers SENSORHUB13_REG to SENSORHUB18_REG. It seems like consecutive registers are set to identical values. This happens regardless of the type of sensor I'm trying to read.

For example, if I configure the sensor hub to read the same LPS22HH pressure sensor data (3 bytes pressure and 2 bytes temperature) three times (slaves 0-2), I would expect the sensor hub output registers to contain the same five bytes three times. However, for the second block of registers (13-18), this is not the case. Example:

External sensor:    Slave 0                        
SENSORHUB*_REG:     1     2     3     4     5      
                    0x88  0xed  0x3d  0x71  0x8    
External sensor:    Slave 1                        
SENSORHUB*_REG:     6     7     8     9     10     
                    0x88  0xed  0x3d  0x71  0x8    
External sensor:    Slave 2  
SENSORHUB*_REG:     11    12    13    14    15    16   17
                    0x88  0xed  0x3d  0x71  0x71  0x8  0x8

What could be causing this behavior?

Thanks in advance


ST Employee

Hi Yannick @yath​ ,

The issue might be related to the fact that the the SENSORHUB13_REG is not consecutive to the SENSORHUB12_REG for the ISM330DLC? There is a jump from reg address 0x39 to reg address 0c4D, and if you are using the automatic increment you should take this into account.

0693W00000KaH3YQAV.pngSENSORHUB13_REG to SENSORHUB18_REG are "normal" register as SENSORHUB12_REG and below.

If my reply answered your question, please click on Select as Best at the bottom of this post. This will help other users with the same issue to find the answer faster.


Hi Eleon,

thank you for your answer.

I am aware of the jump in register addresses. I am reading the two blocks separately: 1 to 12 in one go and 13 to 18 in one go. I have also tried to read all the registers individually, one after the other. The result was the same.



Hi Yannick @yath​ ,

did you check if you configured everything as described in the Application note AN5125, p.62?