Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BMI323 Step Detector and Step Counter Functionalities

    BMI323 Step Detector and Step Counter Functionalities

    New Poster

    Hi, we want to use the BMI323 IMU for step detecting and counting purposes.We tried to understand how these functionalities work and, from what we could see during in-house testing, step detector already depends on both acceleration parameters (env_min_dist_up, env_min_dist_down) and time-related parameters (peak_min_duration, step_duration_max, step_duration_window).

    To our knowledge:

    - env_min_dist_up corresponds to the upper threshold for acceleration magnitude

    - env_min_dist_down corresponds to the lower threshold for acceleration magnitude and is associated with the moment the step from the contralateral foot (the one not using the imu) is inferred -> takes a step.

    - peak_duration_min_walking and step_duration_max are the minimum and maximum duration between consecutive steps detected

    - step_window is the time frame between consecutive steps for a missed step to be added.

    On the other hand, step counter is influenced by step detector and it further processes the steps that were initially detected using other parameters of the IMU, such as some coefficients and decays for further filtering. So, the step counter may filter the steps that were detected, i.e. possible wrong detections are eliminated. This step counter functionality also depends of the step buffer size, which is the minimum number of consecutive steps for the step counter to be triggered and start counting (otherwise, it will not consider as being an actual walking period, maybe some just random movements/steps).

    So our first question is: Can you validate the information we've said so far? Have we understand well how things are related and working?

    Second question is about watermark level: We were convinced that this parameter would help us control the interval used in the step counter (the default value is 20, so it will update this counting every  20 new steps), but we are not sure about this and would like to know how to control step counter updates.

    Third and final question: default acc values calculation: Regarding the default values for the acceleration parameters mentioned initially (minimum and maximum peak acceleration values), these are obtained considering the norm of the signal or looking only to the vertical component of the signal? (ex: env_min_dist_up = 306/2048 this peak value has to be achieved  considering all the components normalization or only in one of the components?)

    Thank you for your time and hope you can help us out!

    3 REPLIES 3

    Community Moderator
    Community Moderator

    Hi inesantunes,

    1.BMI323 data sheet describes the parameter configuration and value range of the step counter. By modifying these registers and running them, and viewing the step counter values, it can be seen that modifying these parameters has an actual impact on the results.
    2. This depends on how your application needs to calculate the step value. When you expect the interrupt method to report the step counter value, the step counter watermark reports the step count value to the host in steps of 20; If the host polling method reads the step count value, it can be read from BMI323 register at any time.
    3. You only need to set the value of the sensor correctly based on the description of the sensor register, without worrying about other information about these values, as the internal software will process it.

    Thank you for your answer!

    However, I still have some doubts since we really need to understand the default values. Although, from the in-house testing that we did, the step detector and counter seem to work correctly, we may want to use this device in a different population that potentially shows a specific walking pattern. Having this said, we need to be aware of what the parameters mean so we can correctly adjust them.

    I will focus on the most important doubt we have, which is related to the 3. question and the acceleration-related parameters:

    - env_min_dist_up corresponds to the upper threshold for acceleration magnitude

    - env_min_dist_down: lower threshold for acceleration magnitude

    These values correspond to low acceleration values, such as 0.149g, which is around 1.49 m/s² (with the approximation of g = 10 m/s²). These values can't correspond to peak acceleration values. From our experiments, the peak accelerations achieved during walking are around 10x these values.

    Thus, we want to understand what these parameters actually correspond to. Why is the default parameter equal to 0.149g and what does that mean in the acceleration signal context? We hypothesized that it could be a difference, like a threshold value, so when the difference between 2 points (ex: 2 peaks) was higher than 0.149g, the threshold would be met and possible a step would be detected (if complying with the other requirements to be a step).

    Can you please clarify what these two parameters mean?

    Thank you in advance, and hope to hear from you soon.

    Community Moderator
    Community Moderator

    Hi inesantunes,
    env_min_dist_up and env_min_dist_down are not the peak values of the acceleration signal during step counting, they are the upper and lower limits of the envelope detected during step counting.
    We have all the recommended step counter parameter settings on phones and watches. What is your end product?