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?
... View more