Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BMA400 Step Counter Application

    BMA400 Step Counter Application



    I am trying to use BMA400 for step counter and activity tracker features in my demo application,
    I get faced some problems,
    I need help about solving and understanding these problems.

    Sensor connected to mcu with I2C interface,

    ==> i2c_read(BMA400_I2C_ADDRESS,0x00,&regval,1); // Ask Chip ID

    regval = 0x90, It is OK

    ==> tmp = 0xB6;

    i2c_write(BMA400_I2C_ADDRESS ,0x7E, &tmp, 0x01); //Soft Reset


    regval = 0x00, It is OK

    ==> tmp = 0x02;

    i2c_write(BMA400_I2C_ADDRESS ,0x19, &tmp, 0x01); //Set Power mode = Normal Mode
    regval = 0x02, It is OK

    ==> tmp = 0x11;

    i2c_write(BMA400_I2C_ADDRESS ,0x20, &tmp, 0x01); //Set step interrupt


    regval = 0x11, It is OK

    When i am doing below settings,
    I get faced these problems,

    1) When i taking step <10, it is not give response. For example when i taking 8 steps. It still says No step, When i taking 10 or more than 10 steps. It will start to counting correct steps.

    Why it is ignore steps less than 10 ? How i can solve,

    2) When i change my activity from one to another, activity status is not updated real time, it wiil comeafter 5-8 sec.

    3) When i compare steps resolution with some of smart band ( Just like a Xiaomi, Vestel …) our resolution is worst according to them.

    There is many selectable options (ODR, OSR, acc_filter1, acc_filter2 etc…) These options can effect my accuracy ?

    Power consumption is not important i just want to get real time Step count and real time Activity.

    4) Placing sensor any of Axis is important ? It can effect step accuracy to place x axis or y axis or z axis ?

    5) There is STEP_COUNTER_CONFIG register (0x59 – 0x70) there is no explanition about it. How we can configure it ?

    I need help and example about it.

    I just want to get real time step counter and real time activity

    I need help about it,

    10 REPLIES 10

    Dear  o_O,

    Thank you for your fast reply.
    Your answer about step_counter and step_detector is acceptable. I will try to explain event i will do step less than 10 what will be condition step_counter and step_detector interrupt count.

    I need help about other questions,
    Which datasheet parameters is valid for step_counter register (July2018 or July2019).

    Also, i need help about understanding OSR,ODR, acc_filter_1,acc_filter_2 (which value will effect accuracy)

    Best regards,


    I am still waiting your valuable reply.


    Also, i am trying to measure Still, walk and run time.

    So i need to catch transition from one to another.


    I tried actch_int for catching, it is working as a axis interrupt. When ever i shake sensor it gives interrupt.
    Is it possible to measure still, walk and run time ?
    Is it possible to adapt INT stat to actch_int ?

    BEst regards


    Community Moderator
    Community Moderator

    Please always use the lastest datasheet version which contains the latest parameters we set as default value.

    You can follow latest datasheet to change the parameters to see if it can meet your requirement