Whatever is written to the register 0x41 ACC_RANGE I always get 1G readings around 4100 LSB so 8G range (default). The register was set either by API configuration like: config.cfg.acc.range = BMI2_ACC_RANGE_2G; or directly by code: const uint8_t byte0x03 = 0x03; // 16G range bmi2_set_regs(0x41, &byte0x03, 1, &bmi2); - no difference. The register is read by: bmi2_get_regs(0x41, reg_data, 1, &bmi2); Serial.print("Read 0x41 ACC_RANGE HEX (0x00 = 2g) = "); Serial.print(reg_data[0], HEX); after accelerometer readings and it corresponds to what I write, like 0x00, 0x03, so no way 0x41 ACC_RANGE is reset to default somewhere in code. But raw readings for accelerometer data for 1G never change. Tried two BMI270 boards - no difference. Any ideas how can it be possible?
... View more