Skip to main content
Visitor II
April 30, 2026
Question

LSM6DSO Pedometer Algorithm Settings

  • April 30, 2026
  • 1 reply
  • 105 views

Hello,

I know there are already other threads on this topic, but none of the replies have convinced me.
Perhaps someone can help me.

My real problem is with the pedometer in the LSM6DSO.

I am setting the following values in the registers:

ODR = 52 Hz
LOW_POWER_MODE

PEDO_CMD_REG -----> FP_REJECTION_EN = 1
EMB_FUNC_EN_A -----> PEDO_EN = 1
EMB_FUNC_EN_B -----> PEDO_ADV_EN = 1
PEDO_DEB_STEPS_CONF = 0x0A (default value)
PEDO_SC_DELTAT_H = 0 (default value)
PEDO_SC_DELTAT_L = 0 (default value)

I am not using the interrupt for the pedometer, I am polling the value in the register STEP_COUNTER_H | STEP_COUNTER_L

Setting AD_DET_EN = 1 in PEDO_CMD_REG didn't make any difference for me.

I have 2 question about the pedometer:

1 - Do I need to configure anything else to improve the performance of the pedomter ? Is possible to improve it ?

2 - What is the STEP_DET_INIT bit in the EMB_FUNC_INIT_A register used for? Should I use it at any point?

Thanks,
Adrian

1 reply

Federica Bossi
ST Technical Moderator
June 10, 2026

Hi ​@AdrianRamirez ,

Before tuning the pedometer, I would first clarify whether the main issue is missed steps (TP) or extra steps (FP).

If the goal is to improve true-positive performance, one option is to try the regression tool available in MEMS Studio. It is meant to optimize the step counting algorithm using a real walking dataset provided by the user.

If the goal is to reduce false positives, I would suggest disabling the advanced detection block by setting AD_DET_EN = 0. In our experience, this feature can improve sensitivity for very low-intensity walking patterns, but it may also lead to overcounting in more typical use cases.

Another way to improve robustness against false positives is to increase the debounce step value. Of course, the trade-off is that very short walking sequences shorter than the debounce threshold may not be counted.

Regarding STEP_DET_INIT in EMB_FUNC_INIT_A, this bit is used to initialize the step detector internal state. It should be used during the initialization phase of the pedometer rather than as a regular runtime setting.

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question.