Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BMI270 Re-Trimming (CRT)

    BMI270 Re-Trimming (CRT)

    Established Member

    I'm trying to introduce the re-trimming (CRT) feature to improve our production calibration process, but I have a problem with it.

    To perform the CRT process described on the datasheet at page 75 I'm using the `bmi2_do_crt` available in the SDK.

    The problem is that the function always returns the error `BMI2_E_ST_ALREADY_RUNNING` (-23) and I cannot understand what it means and why that happens, the only thing that I noticed is that if I debug the function step-by-step I can complete the processing without any issue.
    It seems like the timings are not correct...

    Any suggestion?

    Thank you

    4 REPLIES 4

    Established Member

    Ok, I solved. I post the correct command sequence to make it working:


    // Reset and Initialize bmi270
    // Enable Accelerometer
    uint8_t sens_list = BMI2_ACCEL;
    bmi2_sensor_enable(&sens_list, 1, &bmi270_dev);
    // Perform CRT process (sensor must not move!)
    // Restart the device
    // TODO you own initialization code


    This works for me without any issue.


    Thanks for reporting this back here !

    Indeed the accelerometer must be enabled for CRT. It is used to validate that the sensor was indeed at rest during the CRT calculation and that the data is valid.

    In the datasheet, this is described in the "Sensitivity Error Compensation" chapter, p.75 of the current version.

    Established Member

    After CRT I cannot see any effects on my data, the bias on X axis and Y axis  are still the same.

    What result should I expect after performing CRT?
    Is the gain saving to NVM necessary to get the calibration back after reset?

    Thank you

    Hi Myzhar,

    CRT is a trimming of the sensitivity. Therefore at rest, it will not change the data.
    FOC is the trimming of the zero-rate offset.

    And the answer to both is yes: They do need to be written to NVM if you want the change to be applied automatically at power-on.