Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BMI085 Sync mode does not set BMI085_ACCEL_RANGE_2G

    BMI085 Sync mode does not set BMI085_ACCEL_RANGE_2G

    New Poster

    I have set up a BMI085 working in synchronised mode at 400Hz and BMI085_ACCEL_RANGE_4G, and that works fine. 

    When trying to change the range to BMI085_ACCEL_RANGE_2G or 8G, the data is still returned with BMI085_ACCEL_RANGE_4G. 

    I checked this by analysing the data at rest, where the total accel. is 1G. As an example, when setting BMI085_ACCEL_RANGE_2G (but same holds for 4G and 8G settings) the returned data at rest was (ax = -154, ay = 7388, az = -3359 -> a_tot = sqrt(ax^2 + ay^2 +az^2) = 8117, which as a fraction of a int16_t is: 8117/(2^15-1) ~= 1/4. Thus the range is 4G.

    The code used to initilized to IMU is attached in the file and always returned no error. Furthermore, I also tryed to power cycle the IMU after changing the settings, but that resulted in no success.

    I also tried to read the config on the IMU after setting the parameters using bmi08a_get_meas_conf(&bmi08dev). The reading of the data stored in the IMU returns succesfully, but the bmi08dev.accel_cfg.range stored in the IMU is still set to 1 (thus BMI085_ACCEL_RANGE_4G) even after trying to set it to other values like 2G or 8G.

    How can this behaviour be debugged best and how can I write the desired config into the IMU correctly?


    3 REPLIES 3

    Community Moderator
    Community Moderator

    Hi tizfreestyle,

    If you refer the example code, you can place the sensor horizontally and remain stationary, set 2g range, see data for the ACC x,y,z axis; set 4g range, see data on the ACC x,y,z axis; set 8g range to see data on the ACC x,y,z axis.

    That's actually what I did and also tried to explain in my question. The point is, it doesn't matter which range i try to set, the returned values are always in the BMI085_ACCEL_RANGE_4G. 

    Hi tizfreestyle,

    In read_synchronized_data_mcu.c example code, accel range can be configured. It is recommended that you refer to the example code and run it completely to see if the data output of the sensor matches the configured range.