Question 1: I am using the BMI270 in a drone application. I am sampling the gyro at 3.2kHz ODR in normal mode. Can I confirm that the low pass filter cutoff is 751Hz in this case?
Question 2: If I set gyr_bwp to OSR2 mode at 3.2kHz ODR what would the lowpass filter cutoff be?
Question 3: If I set gyr_bwp to OSR4 mode at 3.2kHz ODR what would the lowpass filter cutoff be?
Question 4: Can you confirm the type and order of the lowpass filter used in the BMI270 Gyro?
Thank you for the prompt reply!
Thanks for your inquiry.
It is true that when you configure BMI270 gyroscope ODR to 3.2KHz in normal mode the 3dB cut-off frequency is 751Hz. If you set gyr_bwp to OSR2 mode at 3.2kHz ODR the low pass filter cutoff would be 751/2 = 375.5Hz. If you set gyr_bwp to OSR4 mode at 3.2kHz ODR the low pass filter cutoff would be 751/4 = 187.75Hz. Sorry that we could not disclose the internal low pass filter information because it is confidential.
Please refer to page 21 of BMI160 datasheet at https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmi160-ds000.pdf for more information.
Thank you for your reply. Having read the BMI160 datasheet I remain confused about the implementation of OSR mode.
For the gyroscope it reads: "When the filter mode is set to OSR2 for a certain filter configuration the ODR has to be 2 times higher than in the normal filter mode"
If the normal filter mode at 800Hz ODR has a cutoff of 300Hz then OSR2 mode should provide the same filter cutoff of 300Hz at 2 times the normal data rate (1600Hz) and OSR4 mode should provide the same filter cutoff of 300Hz at 4 times the normal data rate (3200Hz). Is this not correct?
This does not agree with simply dividing the filter cutoff by 4 in this case. I expect this is why the datasheet says that the filter cutoff is only approximately 1/4 for the gyro.
The sampling rate of the ADC for BMI160 and BMI270 accel and gyro is much higher, for example 100KHz. Through the down-sampling and low pass filter BMI160 and BMI270 accel and gyro can output data at each ODR.
For example, when you set BMI160 or BMI270 gyro to 800Hz ODR, in normal mode the 3dB cutoff frequency is 300Hz. This means that the frequency of the input data to the low pass filter should be at least 1.6KHz to avoid aliasing.
When you set to OSR2 mode, the 3dB cutoff frequency becomes about 150Hz which is half of the cutoff frequency in normal mode. In order to avoid aliasing, the the frequency of input data to low pass filter should be at least 3.2KHz.
Similarly when you set to OSR4 mode, the 3dB cutoff frequency becomes about 75Hz which is one fourth of the cutoff frequency in normal mode. In order to avoid aliasing, the the frequency of input data to low pass filter should be at least 6.4KHz.
OK I understand that the raw ADC sample rate is very high and then it is downsampled before passing through the low pass filter.
I am only interested in 3.2K ODR at the moment in normal mode, OSR2 and OSR4.
Can you provide the group delay for 3.2kHz ODR in OSR2 mode and OSR4 mode?
Thank you for your help so far.