I setup a small system with a couple of sensors including BMI270. THe system is based on an Adafruit Feather M0. I wasn't able to get the github driver working in Arduino so I started writing my own driver following the routines from the datasheet (page 19 following). Communication test (a) works, initialization step (b) seems to work too but while checking the initialization status I get 0x2 instead of 0x1 from the init status registers (0x21).
My assumption is that the config file might be wrong. I'm using the byte sequence (const uint8_t bmi270_config_file) provided in the github repository in file "bmi270.c".
Is that the correct one?
Thanks and best regards,
Solved! Go to Solution.
I added a gist for your reference. You will need all the files in the BMI270 sensor API repository. If you need further assistance, kindly post here.
thanks for the reply. I checked your initial questions:
That looks good. Then I switched to your gist code and I got stuck somewhere in the "bmi270_init".
After some debugging I realized that there is a Wire.begin(); missing in the start of I2C configuration.
Afterwards it works fine. Thanks.
I assume the output is in LSB and not physical units, right?
Yes the outputs right now to the Serial terminal are in LSB. Depending on your configuration of the sensor's range settings, you will have to scale it accordingly.
For example, the accelerometer values need to be mutliplied by (Acc_range / 32768), where Acc_range is 2, 4, 8, 16; the resultant being in G. The gyroscope values need to be mutliplied by (Gyr_range / 32768), where Gyr_range is 125, 250, 500, 1000, 2000