Datasheet
Bosch Sensortec
| BMI088 Data sheet
16 |
48
Modifications reserved | Data subject to change without notice
Document number: BST-BMI088-DS001-1
3
Revision_1.3_05201
8
4.6.1 Accelerometer
The self-test feature allows for checking the sensor functionality by applying electrostatic forces to the
sensor core instead of external accelerations. By physically deflecting the seismic mass, the entire signal
path of the sensor is tested. Activation of the self-test results in a static offset in the acceleration data.
Any external acceleration or gravitational force, which is applied to the sensor during a self-test, will be
observed in the sensor output as a superposition of the acceleration and the self-test signal. This means
that the self-test signal depends on the orientation of the sensor. To overcome this, the full self-test
procedure should be performed under static circumstances, e.g. when the part is not excited to any
acceleration except gravity.
The recommended self-test procedure is as follows:
1) Set ±24g range by writing 0x03 to register ACC_RANGE (0x41)
2) Set ODR=1.6kHz, continuous sampling mode, “normal mode” (norm_avg4) by writing 0xA7 to
register ACC_CONF (0x40)
• Continuous filter function: set bit7 in ACC_CONF
• “normal avg4 mode”: ACC_CONF |= 0x02<<4
• ODR=1.6kHz: ACC_CONF |= 0x0C
3) Wait for > 2 ms
4) Enable the positive self-test polarity (i.e. write 0x0D to register ACC_SELF_TEST (0x6D))
5) Wait for > 50ms
6) Read the accelerometer offset values for each axis (positive self-test response)
7) Enable the negative self-test polarity (i.e. write 0x09 to register ACC_SELF_TEST (0x6D))
8) Wait for > 50ms
9) Read the accelerometer offset values for each axis (negative self-test response)
10) Disable the self-test (i.e. write 0x00 to register ACC_SELF_TEST (0x6D))
11) Calculate difference of positive and negative self-test response and compare with the expected
values (see table below)
12) Wait for > 50ms to let the sensor settle to normal mode steady state operation
Table 9: Accelerometer self-test: resulting minimum difference signal between positive and negative
self-test signal
x-axis signal
y-axis signal
z-axis signal
≥1000 mg
≥1000 mg
≥500 mg
It is recommended to perform a reset of the device after a self-test has been performed, since the self-
test response also affects the interrupt generation. If the reset cannot be performed, the following
sequence must be kept to prevent unwanted interrupt generation: disable interrupts, change parameters
of interrupts, wait for at least 50ms, and enable desired interrupts.
4.6.2 Gyroscope
A built-in self-test facility of the gyro does not deflect the mechanical MEMS structure (as the
accelerometer self-test does), but this test also provides a quick way to determine if the gyroscope is
operational within the specified conditions.
To trigger the self-test, bit #0 (‘bite_trig’) in address GYRO_SELF_TEST must be set. When the test is
finished, bit #1 (‘bist_rdy’) will be set by the gyro and the test result can then be found in bit #2 (‘bist_fail’).
A ‘0’ indicates that the test was passed without issues. If a failure occurred, the bit ‘bist_fail’ will be set
to ‘1’.
A further test which is running continuously in the background can be checked by reading bit #4 in
address GYRO_SELF_TEST. Proper sensor function is indicated if the bit is set to ‘1’.










