Professional Documents
Culture Documents
BST Bmi323 ds000
BST Bmi323 ds000
BMI323 Datasheet
Document revision 1.3
Document release date June 14th 2023
Document number BST-BMI323-DS000-09
Sales part numbers 0 273 017 028
Notes Data and descriptions in this document are subject to change without notice.
Product photos and pictures are for illustration purposes only and may differ from the
real product appearance.
Bosch Sensortec | BMI323 Datasheet 2 | 239
1 Basic Description
The BMI323 is a highly integrated, low power inertial measurement unit (IMU) that combines precise acceleration and
angular rate (gyroscopic) measurement with intelligent on-chip motion-triggered interrupt features. The BMI323 inte-
grates
Key Features
Compact standard size 2.5 × 3 mm2 LGA overmold package, 14 pins, height 0.83 mm
Primary digital interface with 10 M Hz SPI slave (4-wire, 3-wire), 12.5 M Hz I3C and up to 1 M Hz I²C (Fm+)
Sample rates (ODR): 0.78125 Hz . . . 6.4 k Hz (nominal)
Programmable low-pass filtering
Wide power supply range: analog VDD 1.71 V ... 3.63 V and VDDIO 1.08 V ... 3.63 V, both independent
Ultra low current consumption: typ. 790 µA (in full ODR and aliasing free operation)
Built-in power management unit (PMU) for advanced power management and low power modes
Rapid startup time: 2.5 ms for accelerometer and gyroscope (fast start mode)
< 1 ms group delay
2 KB on-chip FIFO data buffer for accelerometer, gyroscope, temperature, and sensor timestamps
Fast offset error compensation for accelerometer and gyroscope
Gyroscope: fast sensitivity error compensation for the gyroscope (max. sensitivity error < 1 )
Hardware synchronization of accelerometer, gyroscope and temperature (< 1 µs)
Sensor time stamps for accurate system (host) and sensor (IMU) time synchronization (< 40 µs)
Two independent programmable I/O pins for interrupt and synchronization events
On-chip interrupt engine and integrated smart features for always-on applications (e.g. activity, action, and gesture
recognition) using the IMU ultra-low power domain
motion detection,
step detector
plug ’n’ play step counter
orientation and flat detection
single tap, double tap, and triple tap detection
Feature set can be optimized for wearable, hearable and mobile applications via API
RoHS compliant, halogen and lead free
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 3 | 239
Table of Contents
1 Basic Description 2
2 Specification 8
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 4 | 239
6 Memory Map 62
6.1 Register Map Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.1.1 Register Map Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1.2 Register Map Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.2 Extended Register Map Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.2.1 Extended Register Map Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.2.2 Extended Register Map Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9 Package 229
9.1 Sensing Axis Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
9.2 Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
9.3 Landing Pattern Recommendation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
9.4 Marking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
9.5 Soldering Guidelines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
9.6 Handling Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
9.7 Environmental Safety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 5 | 239
List of Figures
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 6 | 239
List of Tables
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 7 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 8 | 239
2 Specification
This chapter provides the specifications for the BMI323. Minimum values and maximum values are provided for standard
distributed quantities as ±3σ. Unless stated otherwise, the specifications provide the characteristics for a nominal supply
voltage of VDD = VDDIO = 1.8V either at an ambient temperature of TA = 25◦ C or, if the characteristic is specified with
respect to temperature, for the performance temperature range TP from −10◦ C to +70◦ C.
Table 1 provides the electrical characteristics for the device.
The Tables 2, 3 and 4 provide the operating conditions for the accelerometer and the related performance and mechan-
ical characteristics.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 9 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 10 | 239
The Tables 5, 6 and 7 provide the operating conditions for the gyroscope and the corresponding performance and
mechanical characteristics.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 11 | 239
◦
ωFS = 2000 /s 16.384
◦
ωFS = 1000 /s 32.768 LSB
Sensitivity SG ◦ ◦
/s
ωFS = 500 /s 65.536
◦
ωFS = 250 /s 131.072
◦
ωFS = 125 /s 262.144
SG,err soldered, over life time, ±0.7
Sensitivity error %
after self-calibration
SG,err,SC soldered, over life time, ±3
without self-calibration
∆SG,err %
Sensitivity error ∆T TP range, best fit straight ±0.02 K
change over (TCSG ) line
temperature
◦
Zero rate offset OG,over-life Soldered, over life time ±1 /s
◦
∆OG,over-life /s
Zero rate offset ∆T TP range, best fit straight ±0.04 K
change over (TCOG ) line
temperature
◦
/s
Noise density nG,density High performance mode 0.007 √
Hz
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 12 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 13 | 239
Stress above limits stated in Table 9 may cause damage to the device. Exceeding the specified limits may affect the
reliability of the device or can cause malfunction.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 14 | 239
The purpose of this section is to provide developers, who want to start working with the device, with some very basic
hands-on examples to get started for an application. Before starting the test, the device has to be properly connected to
the host and powered up. For more information about it, please find details in Chapters 7 and 8.2.
Notes on the Serial Interface Support The communication between application processor and the device will happen
over one of the interfaces I3C, I²C or SPI. Each register read operation includes the following number of inserted dummy
bytes before the payload:
I²C: 2
I3C: 2
SPI: 1
For simplicity the dummy bytes are not shown in the examples below. For more information about the interfaces and the
protocol selection, see Chapter 7.
The device is configured for suspend mode after Power On Reset (POR) or soft reset. In this device operation mode,
reading and writing to the registers is possible without requiring to switch the operation mode of the device.
First Application Setup Example Procedures After proper power up by applying the stable supply voltage to the
corresponding device pins, the device enters automatically into the POR sequence. To ensure proper use of the device,
certain configuration steps from the host are a mandatory prerequisite. The most typical operations will be explained in
the following application examples by flow diagrams:
1. Testing communication and initializing the device
a. Reading the chip identifier to ensure correct communication. The default serial interface configuration is I3C and
I²C. One initial dummy read configures it to SPI.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 15 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 16 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 17 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 18 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 19 | 239
Figure 6 : Configure the accelerometer and gyroscope in high performance operation mode
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 20 | 239
Further Steps: The device has many more capabilities that are described in this document and include FIFO data
buffering, power saving modes, synchronization capabilities with the host processor, sample/data synchronization, etc.
Notes on the Data Protocol The host operates the device through the register map with 8-bit addressing to 16-bit
data. Data is retrieved from the device by sending one adress byte and then reading the required number of dummy
bytes followed by two bytes for each register file to be read. If only the least significant byte of an register file is needed,
only the first byte has to be read and the second one will be discarded automatically by the device. Data is written to
the device by sending one address byte followed two bytes for each register file to be updated. Note: if only one byte
is sent, the device will discard the received data and not update the targeted register file. If an odd number of bytes is
sent, the device will discard the last received byte and not update the last targeted register file.
For more information about the data protocol and the register map including its special addresses, please refer to the
Chapters 6 and 7.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 21 | 239
This section contains references to the registers of the device. A detailed description of the registers including addresses,
bit fields, and values is given in Chapter 6.
The device includes the two sensors accelerometer and gyroscope. The accelerometer measures the direction and
magnitude of the force applied to the sensor. In a free fall scenario, an accelerometer will report a vector of zeros. The
gyroscope measures the rotational rate and is reporting a vector zeros when the device is at rest. In addition, the device
includes as auxiliary sensor a temperature sensor. All samples are reported synchronously with a unique time value.
The Figure 7 details the signal view of the device from analog sensing through analog digital conversion, compensation,
filtering and feature computation to the data and the protocol interfaces.
the main power supply via the VDD pin with the corresponding GND pin, and
the digital communication interface driven by a separate power supply via the VDDIO pin with the corresponding
GNDIO pin.
There are no limitations with respect to the voltage levels supplied to the VDD and VDDIO pins as long as the absolute
minimum and maximum ratings are met, respectively, see Chapter 3 and Section 7.1. Furthermore, the device can
be completely switched off, that is VDD = 0 V, while keeping the VDDIO supply within the operating range or vice
versa. If the VDDIO supply is switched off, all digital interface pins, that is CSB, SDX and SCX, must be kept close to
GNDIO potential. The device is reset when the supply voltage provided to at least one of the supply pins VDD or VDDIO
drops below the corresponding specified minimum values. No constraints exist for the minimum slew-rate of the voltage
applied to the VDD and VDDIO pins.
During Power on Reset (POR), the voltages VDD and VDDIO are ramped to their respective target levels. After the
supply voltages reach their target levels, registers are accessible after the start-up time. After every power on reset or
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 22 | 239
soft reset, the device enters the suspend power operation mode. All registers of the device can be read and written
without switching the device operation mode.
Suspend mode: lowest possible power consumption, while the device still maintains its configuration. All device
registers are accessible at full digital interface speed, see Section 7.1
Low power mode: motion sensing at lowest possible power consumption
High performance mode: motion sensing at maximum performance
Table 10 below shows the required configurations for these power operation modes.
GYR_CONF.gyr_mode
The power state of the device is controlled through the configuration of the accelerometer, the gyroscope and the feature
engine. The registers ACC_CONF.acc_mode, GYR_CONF.gyr_mode and FEATURE_CTRL.engine_en enable and disable the
accelerometer, the gyroscope, the temperature sensor and the feature engine. The registers ACC_CONF.acc_mode and
GYR_CONF.gyr_mode control directly the power state of the sensors. When setting a new configuration, the start-up time
of the sensor depends on the prior configuration of the sensor. The performance of the new device configuration does
not depend on the prior device configuration.
The sensor characteristics and performance is controlled for the accelerometer via the registers ACC_CONF.acc_range,
ACC_CONF.acc_bw and ACC_CONF.acc_avg_num and for the register GYR_CONF.gyr_range, GYR_CONF.gyr_bw and
GYR_CONF.gyr_avg_num. This means, that the selected filtering configuration for accelerometer and gyroscope influ-
5 Thehigh performance power operation mode is the preferred continuous power operation mode with specification as stated in 2.
3 Depends on the accelerometer configuration in ACC_CONF.
4 Depends on the gyroscope configuration in GYR_CONF.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 23 | 239
ences the noise power and the latency of the acceleration and angular rate, respectively. In all configurations, register
settings as well as FIFO data are retained.
ACC_CONF.acc_mode and GYR_CONF.gyr_mode settings are used to enable and disable the accelerometer, gy-
roscope and temperature sensing of the device depending on the chosen power mode. After Power on Reset (POR)
and soft reset, all sensors of the device are per default disabled. The temperature sensor is automatically enabled and
disabled with the either accelerometer or the gyroscope being enabled or disabled. For operation of the device after
enabling a sensor, please check before disabling a sensor for the availability of the corresponding sample ready (DRDY)
event either by polling the corresponding register or configuring the corresponding interrupt(s). In case the sample ready
event is not available after the start-up time for each sensor, the user should check the content of ERR_REG.fatal_err.
For the gyroscope, the timeout until an error will be reported in ERR_REG.fatal_err is max 350 ms. Please note, that a
user should check that no error is reported in ERR_REG.fatal_err before enabling a sensor.
The sensor outputs the three signals acceleration, angular rate and temperature along with the time of the device when
the sensors captured the samples. A burst read on the register set of data output from the sensors always provides self
contained and therefore consistent values for acceleration, angular rate, temperature and sensor time.
5.6.1 Accelerometer
The three dimensional acceleration data is provided with 16 bits width in two’s complement representation. The 16 bits
of each axis are available within one 16 bit wide register from ACC_DATA_X to ACC_DATA_Z. Reading byte-wise the 16 bit
acceleration data registers always returns first the least significant byte, then the most significant byte. The default
value for each axis is invalid value with 0x8000. Note: the accelerometer axis can be re-mapped affecting the actual
content of ACC_DATA_X, ACC_DATA_Y and ACC_DATA_Z. If the device detects an overflow in the signal path, the saturation of
acceleration values in the data registers and the FIFO data buffer is reported for each axis individually with SAT_FLAGS.
satf_acc_x, SAT_FLAGS.satf_acc_y, and SAT_FLAGS.satf_acc_z.
Accelerometer Power Operation Modes ACC_CONF.acc_mode enables the accelerometer with desired power modes
or disables the accelerometer. After power-on and soft-reset, the accelerometer is disabled with 0b000. The temperature
sensor is automatically enabled and disabled in conjunction the accelerometer with characteristics depending on the
accelerometer power mode and, if the gyroscope is enabled, also depending on the gyroscope power mode.
Accelerometer Range Settings The measurement range of the accelerometer can be configured to the ranges 2g,
4g, 8g and 16g. After power up and soft reset, the range is per default range 8g.
Accelerometer Data Processing in High Performance Mode and Normal Mode These two modes can be enabled
by setting ACC_CONF.acc_mode to 0band self-test 111 for high performance mode and 0b100 for normal mode. The
data processing for this mode is configured using ACC_CONF.acc_bw. The rate of data available to the host (ODR) can
be configured in one of ten different valid ODR configurations going from 12.5 Hz up to 6400 Hz through ACC_CONF.
acc_odr. Sample rates less than 12.5 Hz are only supported in low power mode. Note: ACC_CONF.acc_avg_num has no
effect in these modes.
In this power mode, the accelerometer data is output continuously at equidistant points in the time defined by the
accelerometer output data rate parameter ACC_CONF.acc_odr.
The filtering of the acceleration in these modes is configurable through ACC_CONF.acc_bw to either 0b0 for ODR/2 or 0b1
for ODR/4. The filter modes influence the characteristics of the low pass filter applied to the signal, in particular the 3 dB
cutoff frequency, the noise suppression, and the group delay. The group delay induced by a filter setting is provided in
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 24 | 239
Table 11. The cut-off frequencies corresponding to the sample rates and filtering are stated in Table 3. The default is
0b0 for ODR/2. Note: the filter settings have no effect when the synchronous timing control mode of I3C is enabled.
Accelerometer Data Processing in Low Power Mode This modes can be enabled by setting ACC_CONF.acc_mode
to 0b011 for low power mode. The data processing for this mode is configured using ACC_CONF.acc_avg_num. The rate
of signal available to the host (ODR) can be configured as one of ten different valid sample rate configurations from
0.78 Hz up to 400 Hz through ACC_CONF.acc_odr. Sample rates greater than 400 Hz are only supported in normal and
high performance mode5 .
In this power mode, the accelerometer alternates between an idle phase, where no measurements are performed, and an
active phase, where data is acquired. The data output to the host is the average of all samples acquired during the active
phase. The number of averaged samples is configured through ACC_CONF.acc_avg_num. A larger number of averaged
samples will result in a lower noise level of the signal. Since the active phase is increased, the power consumption
will also rise. The period for changing between active and idle mode, also known as duty cycle period, is determined
automatically by the value configured through ACC_CONF.acc_odr and ACC_CONF.acc_avg_num. Valid combinations for
these two configurations stated in Table 12. Note: these filter settings have no effect in the time control synchronous
mode of I3C is enabled.
Accelerometer Data Ready Notification The host or another device can be notified about the availability of a new
set of sampled data from the accelerometer is available in the registers ACC_DATA_X to ACC_DATA_Z either
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 25 | 239
5.6.2 Gyroscope
The three dimensional angular rate data is provided with 16 bits width in two’s complement representation. The 16 bits
of each axis are available within one 16 bit wide register from GYR_DATA_X to GYR_DATA_Z. Reading byte-wise the 16 bit
gyroscope data registers always returns first the least significant byte, then the most significant byte. The default value
for each axis is invalid value with 0x8000. Note: the gyroscope axis can be re-mapped affecting the actual content
of GYR_DATA_X, GYR_DATA_Y and GYR_DATA_Z. If the device detects an overflow in the signal path, the saturation of
angular rate values in the data registers and the FIFO data buffer is reported for each axis individually with SAT_FLAGS.
satf_gyr_x, SAT_FLAGS.satf_gyr_y, and SAT_FLAGS.satf_gyr_z.
Gyroscope Power Operation Modes GYR_CONF.gyr_mode enables the gyroscope with desired power modes or dis-
ables the gyroscope. Per default, the gyroscope is disabled with 0b000. The temperature sensor is automatically enabled
and disabled in conjunction with the gyroscope with characteristics depending only the gyroscope power mode. As long
as the gyroscope is enabled, the temperature sensor power operation mode is not dependent on the accelerometer
power mode, see sub-section 5.6.3.
◦
Gyroscope Range Settings The measurement range of the gyroscope can be configured to the ranges 125 /s,
◦ ◦ ◦ ◦ ◦
250 /s, 500 /s, 1000 /s and 2000 /s. After power up and soft reset, the default range is 2000 /s.
Gyroscope Data Processing in High Performance Mode and Normal Mode These two modes can be enabled by
setting GYR_CONF.gyr_mode to 0b111 for high performance mode and 0b100 for normal mode5 . The data processing for
this mode is configured using GYR_CONF.gyr_bw. The rate of signal available to the host (ODR) can be configured in one
of ten different valid sample rate configurations starting at 12.5 Hz up to 6400 Hz. Sample rates less than 12.5 Hz are
only supported in low power mode. Note: GYR_CONF.gyr_avg_num has no effect in these modes.
In this power mode, the gyroscope data is output continuously at equidistant points in the time defined by the gyroscope
output data rate parameter GYR_CONF.gyr_odr.
The filtering of the angular rate in these modes is configurable through GYR_CONF.gyr_bw to either 0b0 for ODR/2 or 0b1
for ODR/4. The filter modes influence the characteristics of the low pass filter applied to the signal, in particular the 3 dB
cutoff frequency, the noise suppression, and the group delay. The group delay induced by a filter setting is provided in
Table 13. The cut-off frequencies corresponding to the sample rates and filtering are stated in Table 6. The default is
0b0 for ODR/2. Note: the filter settings have no effect in the time control synchronous mode of I3C is enabled.
Gyroscope Data Processing in Low Power Mode This modes can be enabled by setting GYR_CONF.gyr_mode to
0b011 for low power mode. The data processing for this mode is configured using GYR_CONF.gyr_avg_num. The rate of
data available to the host (ODR) can be configured as one of ten different valid ODR configurations from 0.78 Hz up to
400 Hz. Sample rates greater than 400 Hz are only supported in normal and high performance mode5 .
In this power mode, the gyroscope alternates between an idle phase, where no measurements are performed, and an
active phase, where data is acquired. The data output to the host is the average of all samples acquired during the active
phase. The number of averaged samples is configured through GYR_CONF.gyr_avg_num. A larger number of averaged
samples will result in a lower noise level of the signal. Since the active phase is increased, the power consumption
will also rise. The period for changing between active and idle mode, also known as duty cycle period, is determined
automatically by the value configured through GYR_CONF.gyr_odr and GYR_CONF.gyr_avg_num. Valid combinations for
these two configurations are the same as stated for the accelerometer in Table 12 in Subsection 5.6.1. Note: these filter
settings have no effect in the time control synchronous mode of I3C is enabled.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 26 | 239
Gyroscope Data Ready Notification The host or another device can be notified about the availability of a new set of
sampled data from the gyroscope is available in the registers GYR_DATA_X to GYR_DATA_Z either
Temperature Sensor The data from the temperature sensor is provided with 16 bits width in two’s complement repre-
sentation in the 16 bit wide register TEMP_DATA. Reading byte-wise the 16 bit data registers always returns first the least
significant byte, then the most significant byte. The range of the temperature sensor output is from −41 ◦ C to +87 ◦ C.
The temperature sensor is automatically enabled with enabling either the accelerometer or the gyroscope. It is auto-
matically disabled when both accelerometer and gyroscope are being disabled. The register contains the invalid value
0x8000 until the first temperature measurement is completed. The rate of data available to the host (ODR) depends
on the hand on which sensors of the device are enabled and on the other hand to which power mode of a sensor is
configured, see Table 14.
Sensor Time The device provides the time of the sensors synchronized to any sample acquired from the accelerom-
eter, gyroscope and temperature sensor. The value of the timer is provided with 32 bits width in the registers
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 27 | 239
SENSOR_TIME_1 and SENSOR_TIME_0. The most significant word is stored in SENSOR_TIME_1 and the least significant
word in SENSOR_TIME_0. The minimum increment of the timer is 39.0625 µs per LSB of SENSOR_TIME_0. A burst read
on the registers always provides self contained and therefore consistent values. The sensor time will wrap around after
approximately 11 hours and 39 minutes. Table 15 details the resolution and update rate of the bits in the sensor time
register.
If the configuration of the device in the registers ACC_CONF or GYR_CONF is altered while the sensors are enabled, the
changes are not immediately applied to the sensors. The configuration becomes effective when a sampling event for
the currently active ODR coincides with a sampling event for the newly requested ODR on the sensor time sampling
grid. In the case where the currently active ODR equals the newly requested ODR, the configuration changes become
effective at the next sampling event. This behavior is detailed in the Figure 8.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 28 | 239
The FIFO data buffer collects and stores data from selected sensors to minimize transfers between device and host.
The device supports the following FIFO operating modes for the FIFO data buffer:
Streaming mode:
Behaviour: overwrite oldest data on buffer full condition
Configuration: set FIFO_CONF.fifo_stop_on_full to 0b0
Stop-on-full mode:
Behaviour: discard newest data on buffer full condition
Configuration FIFO_CONF.fifo_stop_on_full to 0b1
The FIFO data buffer has a size of 2048 bytes. It can trigger the following interrupts to the host for the conditions of
FIFO data buffer filled and FIFO data buffer watermark level reached, see details in section 5.7.3. The FIFO data buffer
is enabled to store
5.7.1 Frames
The data is stored in the FIFO data buffer with frames. The frames have no header. The total width of a buffer frame
depends on the signal sources configured for storage in the buffer. When the sources to be stored in the FIFO data
buffer are set, the width one frame is constant until the configuration for sources to be stored in the FIFO is changed.
Each source adds its own specific width to the total width of a frame. The order of sources for any possible configuration
of a buffer frame is fixed, see Table 16. A lower ordering number of a source means that data appears prior in a buffer
frame compared to a higher ordering numer of a source. Disabled sources do not add any data to the buffer frame. Any
change in configuration that have an impact on the width of a buffer frame or the order of sources within a frame causes
an instant flush of the FIFO data buffer and a restart of storing signals with the new settings.
Example: gyroscope, time, and acceleration is enabled, then the order within the buffer frame is (accel:gyro:time)
The format of the fields in a FIFO data frame is stated in Table 17.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 29 | 239
Changes to the configuration of the FIFO data buffer can cause a flush of the buffer, see details in subsection 5.7.4.
A change of the configuration of the sensor, e.g. measurement range, ODR, etc, will restart the signal processing in
the device causing invalid data until the data path is settled. The invalid data is not inserted into the buffer frames and
skipped automatically. Instead, to keep the width of a frame constant, special dummy-data is inserted. This dummy-data
can also be used to distinguish frames with old and new settings in place. The dummy data has a fixed signature for
each signal source as shown in Table 18.
Enabling FIFO Data Buffering The FIFO data buffer has to be enabled before enabling any sensor, that is the
accelerometer or the gyroscope. If the FIFO data buffering was not enabled before and is needed in any low power
mode, the device must be switched to high performance mode or normal mode to activate then the FIFO data buffer
and switch back to the low power mode.
Buffer Frame Reads A buffer frame is deleted from the FIFO data buffer after being fully read through the register
FIFO_DATA. If a frame is read only partially, it will be repeated completely with the next read of the FIFO data buffer.
In the case of a buffer overflow between the first partial read and the second read attempt, the frame is kept only if
FIFO_CONF.fifo_stop_on_full is set to 0b1.
Buffer Overreads When more data is read from the FIFO buffer than valid data is available, a value of 0x8000 is
returned for each word read exceeding the valid data.
Frame Rates The sampling rate of buffer frames in the FIFO buffer is defined by the maximum output data rate of the
sensors enabled for storage in the FIFO buffer.
Buffer Overflow In case of an overflow, the FIFO buffer can either stop recording data or overwrite the oldest data.
This behavior is controlled by the register FIFO_CONF.fifo_stop_on_full. If FIFO_CONF.fifo_stop_on_full is set to
0b0, the FIFO logic will delete the oldest frames. If FIFO_CONF.fifo_stop_on_full is set to 0b1, the newest frame may
be discarded when the remaining free space in the FIFO buffer is less than the maximum size frame. During a read
operation from the FIFO buffer by the host, no data at the FIFO buffer tail may be dropped. If the host reads the FIFO
buffer with a slower rate than it is filled, it may happen that the sensor needs to drop new data, even if FIFO_CONF.
fifo_stop_on_full is set to 0b0.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 30 | 239
A flush of the FIFO data buffer can be triggered by the user directly or indirectly by a re-configuration of the device. The
user can directly trigger a flush of the FIFO buffer by writing 0b1 to FIFO_CTRL.fifo_flush. An indirect, automated flash
of the FIFO data buffer is caused by:
measurement range,
sample rate of providing data to the host (ODR), and
filter configuration.
The advanced features of the device can be activated after enabling the feature engine. The feature engine has to be
enabled following the steps also detailed in Fig. 9:
1. disable all sensors except enabling the feature engine directly after power on or soft reset, then
2. first writing 0x012C to FEATURE_IO2 followed by 0x0001 to FEATURE_IO_STATUS, then
3. setting FEATURE_CTRL.engine_en to 0b1, and then
4. waiting for the feature engine to be initialized by polling FEATURE_IO1.error_status for the value 0b001.
Note: the advanced features may be incorrectly interpreted if the accelerometer and/or gyroscope are enabled before
feature engine.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 31 | 239
The feature engine may be disabled by setting FEATURE_CTRL.engine_en to 0b0, however, a soft reset or power cycle
is required to re-enable the feature engine. Configuration, state toggling and the data input/output of the features is
possible via
the register interface through the registers FEATURE_IO0 to FEATURE_IO3 and the input/output synchronization register
FEATURE_IO_STATUS for
enabling and disabling of features and
data and status output of advanced features, or
the command interface via the register CMD for initiating non-continuously running features, and
the configuration interface for features through the registers FEATURE_DATA_ADDR, FEATURE_DATA_TX and
FEATURE_DATA_STATUS, see Section 6.2.
The configuration of the sensor through FEATURE_IO0 must be executed following this procedure:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 32 | 239
Table 19 : Overview of supported sample rates per feature in the low power operation mode
The device adjusts the sample rate dependent parameters of the features to the configured reduced sample rate. Thresh-
old values are not dependent on the sample rate and therefore not modified. All user configurations are retained and not
modified until soft-reset or power down. Hence, you do not need to update the configuration when changing the sample
rate (ODR) of the accelerometer.
The feature any-motion detects changes in motion of one axis. It uses the slope between adjacent samples of the accel-
eration signal to trigger this event. With a different behaviour in interrupt frequency and interrupt hold time, this feature
can be configured to the generate an interrupt for motion detect with EXT.GEN_SET_1.event_report_mode set to 0b1.
The interrupt is enabled for each axis independently by writing 0b1 to FEATURE_IO0.any_motion_x_en, FEATURE_IO0.
any_motion_y_en, and FEATURE_IO0.any_motion_z_en.
The difference between the current acceleration sample and the reference sample gives the slope. The computation of
the slope depends on the setting of EXT.ANYMO_1.acc_ref_up. In the default configuration of EXT.ANYMO_1.acc_ref_up
being 0b1, the reference sample is the previous acceleration sample. When EXT.ANYMO_1.acc_ref_up is set to 0b0, the
reference sample is set to the acceleration sample when the interrupt was generated.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 33 | 239
The feature generates an interrupt when the absolute value of the slope exceeds the preset EXT.ANYMO_1.slope_thres
for a certain number of consecutive samples defined by EXT.ANYMO_3.duration. The reference sample is updated when
the condition is fulfilled. In other words, this means that the reference for the detection is the last state when sensor
detected an any-motion event. The generated interrupt will be cleared as soon as the slope value drops below the
threshold and after the duration EXT.ANYMO_3.wait_time elapsed. The sensitivity of this interrupt to be rethrown when
the slope increases again after dropping below the threshold is controlled with EXT.ANYMO_2.hysteresis. This feature
is supported in the high performance power operation mode for all sample rates and in the low power operation mode
for the sample rates from 12.5 Hz to the maximum supported sample rate, see Table 19.
Configuration settings
1. FEATURE_IO0.any_motion_x_en – enable the feature for the x-axis
2. FEATURE_IO0.any_motion_y_en – enable the feature for the y-axis
3. FEATURE_IO0.any_motion_z_en – enable the feature for the z-axis
4. EXT.ANYMO_1.slope_thres – the threshold for the slope
5. EXT.ANYMO_1.acc_ref_up – update mode of the acceleration reference when an event was detected or always
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 34 | 239
The feature no-motion detection evaluates the slope between adjacent samples of the acceleration signal in all selected
axes to detect a stationary state. The interrupt is enabled for each axis independently by writing 0b1 to FEATURE_IO0.
no_motion_x_en, FEATURE_IO0.no_motion_y_en, and FEATURE_IO0.no_motion_z_en. With a different behaviour in
interrupt frequency and interrupt hold time, this feature can be configured to the generate an interrupt for stationary
detect with EXT.GEN_SET_1.event_report_mode set to 0b1.
The difference between the current acceleration sample and the reference sample gives the slope. An interrupt is
generated when the slope for all selected axis remains smaller than the programmable threshold value EXT.NOMO_1.
slope_thres for the configurable duration value in EXT.NOMO_3.duration. This feature is supported in the high per-
formance power operation mode for all sample rates and in the low power operation mode for the sample rates from
12.5 Hz to the maximum supported sample rate, see Table 19.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 35 | 239
Configuration Settings
1. FEATURE_IO0.no_motion_x_en – enable the feature for the x-axis
2. FEATURE_IO0.no_motion_y_en – enable the feature for the y-axis
3. FEATURE_IO0.no_motion_z_en – enable the feature for the z-axis
4. EXT.NOMO_1.slope_thres – the threshold for the slope
5. EXT.NOMO_1.acc_ref_up – update mode of the acceleration reference when an event was detected or always
6. EXT.NOMO_2.hysteresis – hysteresis for the slope of the acceleration
7. EXT.NOMO_3.duration – the number of consecutive samples for which the threshold condition must be respected for
interrupt assertion
8. EXT.NOMO_3.wait_time – wait time for clearing the event after the slope is below the configured threshold value
EXT.NOMO_1.slope_thres
The significant motion detection provides the interrupt raised on detection of a significant motion as defined in Android1 :
https://source.android.com/devices/sensors/sensor-types.html#significant_motion.
This feature is supported in the high performance power operation mode for all sample rates and in the low power
operation mode for the sample rates from 50 Hz to the maximum supported sample rate, see Table 19. It can be
enabled by setting FEATURE_IO0.sig_motion_en to 0b1.
In Android, a significant motion is a motion due to a change in the user location. Examples of such significant motions
are walking or biking, sitting in a moving car, coach or train, etc. Examples of situations that does typically not trigger
significant motion include phone in pocket and person is stationary or phone is at rest on a table which is in normal
office use. Upon detection of a user movement classified as significant according to the aforementioned examples, an
interrupt is triggered indicating the probable change of an user location. Classification of movement as significant motion
or not is based on the analysis of acceleration signal over the time duration configured by EXT.SIGMO_1.block_size.
Time segments are assumed to be non-overlapping. If the significant motion condition is evaluated as true for greater
than 50% of the configured duration, an interrupt is reported. The condition is based on the peak-to-peak (P2P) value
and mean crossing rate (MCR) of the magnitude of the acceleration signal. The conditions for a significant motion are:
P2P magnitude is greater than EXT.SIGMO_2.peak_2_peak_min and MCR is greater than EXT.SIGMO_2.mcr_min, or
P2P magnitude is greater than EXT.SIGMO_3.peak_2_peak_max and MCR is less than EXT.SIGMO_3.mcr_max.
The feature can be configured to output only the first detected event and ignoring the following events, also known as
one-shot behavior, by setting EXT.GEN_SET_1.event_report_mode as 0b1. When this configuration is enabled, internally
the block size is set to 5 seconds and changes to the user configurable value of EXT.SIGMO_1.block_size are ignored.
Example An example for the behavior of the significant motion detection for a walking scenario is depicted in Fig. 12,
where EXT.SIGMO_1.block_size is set to 5 seconds (0x00FA).
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 36 | 239
This example contains 3 scenarios of motion within the configured block size time interval:
1. Large initial part of segment as STILL with small part of segment as WALKING.
2. Full segment as WALKING.
3. Initial large part of segment as WALKING with remaining being STILL.
Segment 1 encompasses the user movement for less than 50% of EXT.SIGMO_1.block_size, hence no interrupt is
reported. In contrast to that, segments 2 and 3 include the user movement for greater than 50% for which the interrupts
are reported at end of the segment.
Configuration Settings Significant motion offers configuration parameters for enabling/disabling of feature and to
optimize the functional behavior based on use-case. Parameters available are described in Table 20.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 37 | 239
The Step Counter provides the function required for counting of steps as defined for Android2 : https://source.andro
id.com/devices/sensors/sensor-types.html#step_counter. The Step Detector implements the function required
for step counting in Android: https://source.android.com/devices/sensors/sensor-types.html#step_detector.
The algorithm for counting of steps is designed for smartphone usecases and optimized on high accuracy, while the
algorithm for the detection of steps is optimized for low latency reporting of detection events. Each event can be enabled
independently. This feature is supported in the high performance power operation mode for all sample rates and in the
low power operation mode for the sample rates from 50 Hz to the maximum supported sample rate, see Table 19.
Configuration Settings
1. FEATURE_IO0.step_counter_en – indicates if the step counter feature is enabled or not.
2. FEATURE_IO0.step_detector_en – indicates if the step detector feature is enabled or not.
3. FEATURE_IO2.step_counter_out_0 – Step counter value, lower 16bit of the 32bit value
4. FEATURE_IO3.step_counter_out_1 – Step counter value, higher 16bit of the 32bit value
5. EXT.SC_1.watermark_level – the Step Counter will trigger output every time this number of steps are counted. Holds
implicitly a 20x factor, so the range is 0 to 1023 (without the implicit factor), with resolution of 20 steps. If 0, the Step
Counter watermark is disabled. If the Step Detector is enabled, the watermark interrupt is disabled (as being mutually
exclusive).
6. EXT.SC_1.reset_counter – trigger to reset the counted steps. Resets the step count value, if any one of step counter,
step detector or activity feature is enabled.
Step Counter The Step Counter accumulates the steps detected by the step detector interrupt, and provides the
current value of the 32bit wide step count in the two registers FEATURE_IO2.step_counter_out_0 (lower word) and
FEATURE_IO3.step_counter_out_1 (higher word). By setting the flag EXT.SC_1.reset_counter to 0b1, the value of
accumulated steps is reset. Afterwards, the value of this flag is automatically reset and counting is restarted. The
accumulated step count value can be reset when any of the features Step Counter or Step Detector is enabled.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 38 | 239
The watermark option can be useful if the host needs to receive an interrupt every time a certain number of steps occured.
When the watermark level is reached, the corresponding interrupt bit is asserted for the mapped interrupt channel, that is
INT_STATUS_INT1.int1_step_counter, INT_STATUS_INT2.int2_step_counter or INT_STATUS_IBI.ibi_step_counter.
If EXT.SC_1.watermark_level is set to 10 (holding an implicit factor of 20x), after every interval of 200 steps an interrupt
will be raised. As the steps are buffered internally, the output may be triggered between 200 to 210 steps.
Note: in case the watermark interrupt for the step counter is required for the application to be set to a level greater
than 65535, an upload of the configuration file is mandatory before enabling the feature engine and executing this
feature, see section 5.8.1. The configuration file is provided through the sensor API, available in GitHub, and can
be extracted from there. Please refer to the function bmi3x0_configure_enhanced_flexibility of the sensor driver
API for a reference implementation.
Step Detector When FEATURE_IO0.step_detector_en is set to 0b1, an interrupt is triggered for every detected step.
Every time a new step is detected, the configured corresponding interrupt output is triggered and the corresponding
status bit is set. The Step Detector feature is optimized for low latency to ensure for such events a fast reaction by the
host . Hence, when a step is detected, it is immediately signaled. Due to this behaviour, there may exist situations when
the sum of the detected steps is different than the Step Counter value.
This interrupt detects a Flat orientation based on the acceleration signal. The interrupt is triggered when the sensor
in the device gets close to a horizontal orientation. Note: the interpretation of the sensor orientation as horizontal is
dependent on the configured axis re-mapping, see section 5.11. A horizontal orientation is detected by the angle among
the orientation of the gravitational force and the axis of the sensor configured as z-axis. The condition for activating the
interrupt reads
Θ · az · az − ∆ahysteresis ≥ ax · ax + ay · ay . (5.1)
The condition for deactivating the interrupt is given by
If one of the inequalities does not become true, then the state of interrupt is not changed. The state of the interrupt
is actually changed, that is set or reset, when the device remains in one of the conditions for the configured period
EXT.FLAT_1.hold_time. This feature is supported in the high performance power operation mode for all sample rates
and in the low power operation mode for the sample rates from 12.5 Hz to the maximum supported sample rate, see
Table 19.
Theta Angle The threshold angle Θ for detecting a Flat orientation can be configured via EXT.FLAT_1.theta where
1 LSB equals 64 · (tan (Θ))2 . Some important values of EXT.FLAT_1.theta are depicted in Table 21. The value of the
hysteresis value EXT.FLAT_2.hysteresis is set according to the following graphic, with values between 0 and 63, which
corresponds to hysteresis angle between 0 and 5 degrees. In the following graphic, 4 usual cases are depicted: 0, 1,
2.5 and 5 degrees. The hysteresis is symmetric, used for both going into and out of Flat state. For the default value of
9, the actual interval around the angle of 20 degrees is +/-2.5 degrees; so a 5 degree interval is used for total hysteresis
filtering.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 39 | 239
Hysteresis The threshold angle Θ for Flat detection is associated to a hysteresis to ensure a true flat detection and
avoid the oscillation the feature status. The hysteresis value EXT.FLAT_2.hysteresis is used according to Fig. 13. The
hysteresis can be configured with values between 0 and 63 that correspond to a hysteresis angle between 0 and 5
degrees. In the following graphs of Fig. 14 and Fig. 15, four typical cases are depicted for the case of the hysteresis
configured to 0, 1, 2.5 and 5 degrees. The effect of the hysteresis is symmetric and used for both cases of entering
and lesving the Flat state. For the default hystereis configuration value of 9, the actual interval around the Theta
angle Θ = 20 deg is ±2.5 deg. Hence, a total interval for the hysteresis filtering is 5 deg.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 40 | 239
Blocking Mode The Flat detection can be suppressed for the case of a motion with a large magnitude of the acceler-
ation to avoid a change of the Flat detection status. The blocking feature for the Flat detection interrupt is configurable
via the EXT.FLAT_1.blocking and has the meaning as defined in Table 22.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 41 | 239
Configuration Settings
1. FEATURE_IO0.flat_en – Switch indicating if this feature is enabled or not
2. EXT.FLAT_1.theta – Value corresponding to the hysteresis angle Θ for flat detection
3. EXT.FLAT_1.blocking – Sets the blocking mode, see Table 22.
4. EXT.FLAT_1.hold_time – Duration for which the current state is held before an interrupt can be raised again.
5. EXT.FLAT_2.slope_thres – Minimum slope between consecutive acceleration samples to prevent a change of the
flat status during large movement
6. EXT.FLAT_2.hysteresis – Control the hysteresis to achieve the desired detection sensitivity
The Orientation Detection feature informs on an orientation change of the sensor with respect to the Earth gravitational
force. There are the orientations face up and face down and orthogonal to them portrait upright, landscape left, portrait
downside, and landscape right. The interrupt for face up/face down may be enabled separately by setting EXT.ORIENT_1.
ud_en to 0b1. The sensor orientation is defined by the angles ϕ and θ. ϕ is the rotation around the stationary z-axis and
θ is the rotation around the stationary y-axis before the ϕ rotation. This feature is supported in the high performance
power operation mode for all sample rates and in the low power operation mode for the sample rates from 12.5 Hz to
the maximum supported sample rate, see Table 19.
Figure 16 : Definition of the default coordinate system with respect to pin 1 marker
The measured acceleration vector components for the default configuration reads as follows:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 42 | 239
The orientation value is stored in the output register. There are three orientation calculation modes: symmetrical,
high-asymmetrical and low-asymmetrical. The mode can be configured through the EXT.ORIENT_1.mode as denoted in
Table 23.
The output has the meanings depending on the switching mode as stated in the Tables 24, 25 and 26.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 43 | 239
For upside or downside orientation, the output has to be interpreted according to Table 27.
Both orientation detections, the portrait/landscape and upside/downside detection, use a hysteresis to avoid frequent
interrupts due to the non-stable states of an assumed orientation, e.g. by hand tremor or noisy environments. The hys-
teresis for orientation detection except portrait upside and portrait downside is configurable and applies to all conditions
as detailed in Tables 28, 29, and 30. The corresponding hysteresis regions are depicted in the Figures 18, 19, and 20.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 44 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 45 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 46 | 239
The hysteresis for detection of portrait upside and portrait downside is fixed to 11.5◦ which is corresponds to approxi-
mately 200 mg.
Blocking Mode It is be possible to block the notification of an Orientation Detection, that means no orientation change
will be done. The orientation interrupt blocking feature is configurable via the EXT.ORIENT_1.blocking, and has the
meaning defined in Table 31.
Note: in case the 100 ms interrupt blocking is enabled, the interrupt will be triggered only when the device remains in
the same (stable) orientation until the timer expires after ~100 ms. The timer starts to run when no change between
two consecutive samples are detected. If there are changes while the timer count down is still running, the timer will be
restarted.
The flat angle blocking, that is the device is close to the horizontal orientation, is defined by inequality presented in the
Flat Detection section. The flat detection used for the blocking mode is based on the 2g acceleration measurement
range. If any other measurement range than 2g range is selected for the acceleration, the acceleration samples are
saturated before the Flat Detection.
Configuration Settings
1. FEATURE_IO0.orientation_en – Indicates if this feature is enabled or not
2. EXT.ORIENT_1.ud_en – Face upside/downside enable, in addition to landscape/portrait detection
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 47 | 239
3. EXT.ORIENT_1.mode – Used for setting which of the following modes are being used: symmetrical, high or low asym-
metrical
4. EXT.ORIENT_1.blocking – Used for setting the blocking mode
5. EXT.ORIENT_1.theta – Coded value of the threshold angle with horizontal used in blocking modes; 1 LSB corresponds
to 64 · (tan (Θ))2
6. EXT.ORIENT_2.hysteresis – Acceleration hysteresis for Orientation detection
The device allows the detection of different tap gestures. Supported tap gestures include the single-tap, double-tap and
triple-tap. Each gesture can be individually enabled and disabled as well as reported. Tap gestures can be enabled
or disabled individually by writing 0b1 or 0b0 respectively to dedicated bits FEATURE_IO0.tap_detector_s_tap_en,
FEATURE_IO0.tap_detector_d_tap_en and FEATURE_IO0.tap_detector_t_tap_en. When a tap gesture is detected,
an event is reported with an interrupt common for single-tap, double-tap and triple-tap. The actual tap gesture reported
can be obtained from the register FEATURE_EVENT_EXT with the bit encoded field values: FEATURE_EVENT_EXT.s_tap,
FEATURE_EVENT_EXT.d_tap, and FEATURE_EVENT_EXT.t_tap. The value of a detected tap gesture is retained in the
FEATURE_EVENT_EXT register until the next gesture detection.
The dominant sensing axis, along which the tap gesture has to be detected, can be configured using EXT.TAP_1.
axis_sel. By default, EXT.TAP_1.axis_sel is selected to be the z-axis with a value set as 0b10. Depending on the tap
impact and direction, it is also possible to detect performed tap gestures not strictly aligned with the selected axis.
A tap event is a subsequent crossing of a threshold within a configured maximum time limit between the crossings. The
absolute value of the threshold for tap detection is programmable via EXT.TAP_2.tap_peak_thres. The maximum time
window between the threshold crossings is defined by the parameter EXT.TAP_3.max_dur_between_peaks. To suppress
or enable tap detection under noisy operating conditions, the limit on the number of threshold crossings acceptable for
a tap can be configured using EXT.TAP_1.max_peaks_for_tap.
The classification of a tap gesture as a double-tap or triple-tap gesture is dependent on the time window in which the 2nd
or 3rd tap occurs after the first tap. The time boundary is set by EXT.TAP_2.max_gesture_dur. In case of a double-tap
to be detected, the 2nd tap event have to occur within this limit after the first tap. In case of a triple-tap to be detected,
the 2nd and 3rd tap events has to occur within this limit after the first tap.
On detection of a tap gesture, the reporting behavior of the event by the device is determined by the value configured in
EXT.TAP_1.wait_for_timeout:
EXT.TAP_1.wait_for_timeout set to 0b0: the tap gesture event is reported after EXT.TAP_3.
tap_shock_settling_dur. For a performed triple-tap gesture, the single-tap, double-tap and triple-tap event,
when enabled, are all reported.
EXT.TAP_1.wait_for_timeout set to 0b1: depending on the number of taps detected after EXT.TAP_2.
max_gesture_dur duration since the first tap and the tap gesture to be detected, the corresponding tap gesture
is reported. If the performed tap gesture corresponding to the number of taps detected is disabled or the number of
performed taps is greater than three, no event is reported.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 48 | 239
Once a tap gesture is reported, the detection of a further gesture is suspended for the “quiet” time requested by the
parameter EXT.TAP_3.quite_time_after_gesture.
The tap detector offers the selection of a detection mode for a tap event with EXT.TAP_1.mode. The detection modes
enable a simple selection of sensitivity levels for tap detection while keeping the values of other configuration parameters
unchanged. Details are given in the memory map at EXT.TAP_1.mode.
The behavior of the tap detector with all supported tap gestures enabled and with EXT.TAP_1.wait_for_timeout set
to 0b0 is shown in Fig. 21. For every detected tap, the corresponding interrupt is reported if the taps occur within
EXT.TAP_2.max_gesture_dur since the first tap.
The tap detector behavior in case of enabling all supported tap gestures and with EXT.TAP_1.wait_for_timeout set to
0b1 is depicted in the graphs in Fig. 22. As can be seen there, only the tap detected within EXT.TAP_2.max_gesture_dur
after the first tap is reported.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 49 | 239
This feature is supported in the high performance power operation mode for all sample rates and in the low power
operation mode for the sample rates from 200 Hz to the maximum supported sample rate, see Table 19.
Configuration Settings The configuration parameters for enabling/disabling of feature and adjustment of the behavior
to the application and context are summarized in Table 32.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 50 | 239
The function and behavior of the Tilt Detector is derived from the Android3 specification available via the link https:
//source.android.com/devices/sensors/sensor-types.html#tilt_detector. A tilt interrupt is reported when
the attitude angle of the device changes by a value greater than configured angle threshold. The detection of a tilt of
the device can be enabled by writing 0b1 to FEATURE_IO0.tilt_en, otherwise the feature is disabled. This feature is
supported in the high performance power operation mode for all sample rates and in the low power operation mode for
the sample rates from 50 Hz to the maximum supported sample rate, see Table 19.
The minimum angle of tilt for event detection can be configured using EXT.TILT_1.min_tilt_angle. The value for the
threshold for tilt angle set is computed as 256·cos θ. The time interval, in which the gravity acceleration signal vector has
to be estimated, is configured via the parameter EXT.TILT_1.segment_size. The lowpass filtering for the continuous
estimation of the gravity acceleration vector can be configured with parameter EXT.TILT_2.beta_acc_mean.
The feature can be configured to output only the first detected event and ignoring the following events, also known
as one-shot behavior, by setting EXT.GEN_SET_1.event_report_mode as 0b1. When this configuration is enabled, the
configuration values of EXT.TILT_1.min_tilt_angle are set to 35 degrees and the EXT.TILT_1.segment_size to 2
seconds. When EXT.GEN_SET_1.event_report_mode is set to 0b1, changes to the values of this user configuration have
no impact on the behavior this algorithm.
Example The functional behavior of the tilt detector for default configuration settings is shown in Figure 23.
3 Android is a trademark of Google LLC.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 51 | 239
The tilt interrupt is triggered when the change of the angle is greater than set threshold independent of the direction of
movement.
Configuration Settings Configuration parameters for enabling and disabling of feature as well as to adapt the behavior
to the application. The available parameters are described in Table 33.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 52 | 239
The signalling of interrupts to the host is possible via the I3C feature in-band interrupt (IBI) and two electrical pins. When
the protocols SPI and I²C are used, signalling of interrupts to the host is only possible via the INT1 and INT2 pin. IBI can
only be used when the device is connected to the host via I3C. When using the protocol I3C, the IBI feature as well as
the two interrupt pins can be used at the same time to signal interrupts to the host.
Interrupt Mapping and Acknowledgement The mapping of a feature interrupt to a signalling channel can be con-
figured through the registers INT_MAP1 and INT_MAP2. Each feature is mapped exclusively to one of these signalling
channels using the scheme stated in Table 34.
Once an interrupt is notified to the host via a configured signalling channel, the host can determine the source of
the interrupt through the status bits of the corresponding signalling interface. For each interrupt signalling channel, a
dedicated interrupt status register is present in the register map of the device:
Electrical Interrupt Pin Behavior The interrupt pins can be enabled via IO_INT_CTRL.int1_output_en and
IO_INT_CTRL.int2_output_en, respectively. Note: this is not applicable to the I3C IBI feature. Both interrupt pins
INT1 and INT2 can be configured to have the desired
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 53 | 239
for the feature engine based interrupts, the INT1 and INT2 pins are reset after the hold time selected by the host. In
case of the features any-motion, no-motion, flat, orientation, single-tap, double-tap and triple-tap, the INT1/2 pin will
be reset and set again if the hold time is configured to a value less than 20 ms even though the condition is true.
The interrupt status bits are active until read by the host.
The auto-operation mode change is a built-in feature to support the smart power management of the device. The
function provides automatic switching among two sets of operation modes for its accelerometer and gyroscope. The
switching is initiated by events of enabled advanced features or by commands sent from the host. In the following,
the one set of configurations consists of ACC_CONF and GYR_CONF for the accelerometer and gyroscope and is called
user configuration. The other set sensor of configurations consists of ALT_ACC_CONF and ALT_GYR_CONF, and is called
alternative configuration.
Switching between the user and alternative configuration is enabled through ALT_CONF.alt_acc_en and ALT_CONF.
alt_gyr_en for the accelerometer and gyroscope, respectively. The conditions to switch from the operation mode
configured can be configured through EXT.ALT_CONFIG_CHG. By selecting one of the advanced features described in
Section 5.8, it can be configure independently
on the one hand through EXT.ALT_CONFIG_CHG.alt_conf_alt_switch_src_select to switch from the user configu-
ration to the alternative configuration by selecting one of the advanced features with source IDs in Table 35, and
on the other hand through EXT.ALT_CONFIG_CHG.alt_conf_user_switch_src_select to switch from the alternative
configuration to the user configuration by selecting one of the advanced features with source IDs in Table 35.
Table 35 details the selectable advanced features with respect to the index letter. Please be aware, that if advanced
features are configured for both transitions, that means for the switch from the user to the alternative configuration and
for the switch from the alternative to the user configuration, not the same advanced feature is enabled. If ALT_CONF.
alt_rst_conf_write_en is enabled, the configurations of the sensors can be instantly reset to the user configuration by
directly writing from the host to either ACC_CONF or GYR_CONF.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 54 | 239
The device supports the re-mapping of the axis and inversion of the sign within the data path. This feature of the device
ensures consistent usage of the acceleration and angular rate signal in the algorithms on the device as well as in the
processing on the host. The re-mapping and sign inversion for the device axis must only be done when the device is
not acquiring data nor computing any advanced feature, e.g. after power up or after a soft reset. The re-mapping and
sign inversion of the device axis is a volatile configuration and, hence, has to be performed always after power up or soft
reset to ensure the same output by the device.
The desired configuration for the axis re-mapping and sign inversion has to be written to EXT.AXIS_MAP_1 before sending
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 55 | 239
the command 0x0300 to the register CMD. The mapping of the default axis configuration to the desired axis configuration
can be done writing the map code to EXT.AXIS_MAP_1.axis_map. The sign inversion of the axis, which can be interpreted
as an axis flip, can be configured for each axis individually by toggling the default value 0b0 to 0b1 in EXT.AXIS_MAP_1.
invert_x, EXT.AXIS_MAP_1.invert_y or EXT.AXIS_MAP_1.invert_z, respectively. After the update of this configuration,
the desired axis re-mapping and sign inversion can be activated by sending the command 0x0300 to the register CMD.
The success or failure of the axis re-mapping can be determined by
monitoring the interrupt err_status via an interrupt pin or I3C IBI, and
polling the register FEATURE_IO1 and checking the values in the fields FEATURE_IO1.axis_map_complete and
FEATURE_IO1.error_status.
Any configuration of the device must not be changed until the completion of the axis re-mapping and sign inversion is
signalled. This procedure will clear the data path gain and offset values. The gain and offset for accelerometer and
gyroscope have to be saved before power down or soft-reset, and they can only be re-applied after power-up and after
performing again an axis re-mapping and sign inversion.
Configuration Settings
1. CMD – perform the axis re-mapping and sign inversion by sending the code 0x0300
2. EXT.AXIS_MAP_1.axis_map – mapping of the default axes configuration to the user configuration
3. EXT.AXIS_MAP_1.invert_x – inversion of the x axis in user configuration
4. EXT.AXIS_MAP_1.invert_y – inversion of the y axis in user configuration
5. EXT.AXIS_MAP_1.invert_z – inversion of the z axis in user configuration
The compensation of the offset and sensitivity error observed in the field, e.g. due to soldering, is strongly recommended
to be applied on the host. Values for compensation have to be determined on the host except for the case of using
gyroscope self-calibration provided from within the device. Compensation on the host is recommended because the
values must be stored on the host since the device does not provide means to store these within non-volatile memory of
the device. In case it is desired to output the calibrated signal of the accelerometer and gyroscope by the device itself,
the device provides the user with dedicated means to perform compensation with values provided by the user. To obtain
the expected output signal scal , where s is either the acceleration a or the angular rate w, the offset and sensitivity error
must be estimated on the host according to the model
It is strongly recommended to update the registers only when the sensors, that means accelerometer and gyroscope,
are disabled to avoid settling of the respective signal, that means either accelerometer or gyroscope, after the values
are updated.
Note: the self-calibration for the gyroscope described in section 5.13 can write, depending on the configuration, directly
into the registers for compensation of user offset and/or user sensitivity error for the gyroscope. The user must take
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 56 | 239
care of saving these values on the host and either perform compensation on the host or by the device through writing
the values for user sensitivity error and user offset registers for the gyroscope after each power-on-reset and soft-reset.
The device offers self-calibration for the gyroscope sensitivity error and the gyroscope offset. Self-calibration to reduce
the gyroscope sensitivity error is also known as component re-trim (CRT).
Configuration of the Self Calibration The self-calibration sequence can be configured with EXT.GYR_SC_SELECT.
sens_en and EXT.GYR_SC_SELECT.offs_en to calibrate either both gyroscope sensitivity error and gyroscope offset
or only one of them. If both gyroscope characteristics are desired to be calibrated, the device is calibrated first for
the gyroscope sensitivity error followed by the gyroscope offset. The default configuration of calibrating both gyro-
scope characteristics can be changed by writing 0b0 to EXT.GYR_SC_SELECT.sens_en or EXT.GYR_SC_SELECT.offs_en.
By default, the results of the self-calibration are written to data path registers GYR_DP_DGAIN_X, GYR_DP_DGAIN_Y and
GYR_DP_DGAIN_Z for the sensitivity error and GYR_DP_OFF_X, GYR_DP_OFF_Y and GYR_DP_OFF_Z for the offset. By setting
EXT.GYR_SC_SELECT.apply_corr to 0b0, the update of the data path registers can be suppressed.
The device monitors the motion that is imposed by the context onto the device. The sensitivity of this motion detection
can be configured through EXT.GYR_MOT_DET.slope. Note: this configuration of the detection of any motion is also used
by the device self test.
Prerequisites for the Self Calibration Before initiating the self-calibration, it should be checked for an on-going self-
calibration or self-test by reading FEATURE_IO1.state. When the value is 0b00, a self-calibration can be initiated. As
long as FEATURE_IO1.state is not 0b00, this bit shall be polled by re-reading until the value turns to 0b00. To start
a self-calibration, the accelerometer is required to be enabled (already) in high performance mode with a sample rate
ACC_CONF.acc_odr preferred in the range of 25 Hz up to 200 Hz. The alternative sensor configurations for accelerometer
and gyroscope must be disabled by setting ALT_ACC_CONF.alt_acc_mode and ALT_GYR_CONF.alt_gyr_mode to 0b0,
respectively. Then, a self-calibration can be initiated. Note: if the command for a self-calibration is sent once or multiple
times while FEATURE_IO1.state has the value 0b01, 0b10 and 0b11, the command is ignored.
Execution of the Self Calibration The device shall be kept in a still orientation while the self-calibration is running and
shall not be exposed to noise and distortion. The self calibration can be started by writing 0x0101 to the register CMD.
After initiating the self-calibration, the device shall not be re-configured until the end of self-calibration procedure is
reported.
The start of the self-calibration disables immediately the output of gyroscope sensor samples (data). During the execu-
tion of the self-calibration, the gyroscope sensor output in the data registers as well as in the FIFO data buffer is invalid,
however, accelerometer output is still valid. The output of any previously enabled advanced features of Section 5.8 will
still be provided during self-calibration. The duration of the self-calibration for standard settings is approximately 350 ms
for the measurement of the re-scaling for the angular rate and 80 ms for the gyroscope offset measurement.
The state of the self-calibration can be determined by checking FEATURE_IO1.sc_st_complete. An ongoing self-
calibration is reflected by 0b0 while 0b1 is reported when it is completed. An ongoing self-calibration is also reflected
in the register field FEATURE_IO1.state with the value 0b01. The completion of the self-calibration is also reported
in FEATURE_IO1.error_status with the value 0x5. The success of the self-calibration is reported in the register field
FEATURE_IO1.gyro_sc_result with 0b1, a failure with 0b0. Depending on the configuration EXT.GYR_SC_SELECT.
apply_corr of the self-calibration, the data path registers are updated automatically. The sequence of executing the
self-calibration is summarized in Figure 25.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 57 | 239
Note: the results of the self-calibration in the data path registers should to be saved by the host to a non-volatile storage
to allow restoring them after a power down or soft reset of the device.
Abort the Self Calibration A running self-calibration can be aborted by sending the command 0x0200 to CMD.
Then, FEATURE_IO1.state can be checked for any state different than 0b01 and the device reports in FEATURE_IO1.
error_status the value 0x9. The sequence to abort the self-calibration is detailed in Figure 26.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 58 | 239
The self-test of the device checks for a correct function of the accelerometer as well as the gyroscope. The execution of
the self-test expects the following prerequisites to be fulfilled:
for the gyroscope self-test, the accelerometer must be configured to high performance mode at least, and
the alternative sensor configurations for accelerometer and gyroscope must be disabled by setting ALT_ACC_CONF.
alt_acc_mode and ALT_GYR_CONF.alt_gyr_mode to 0b0, respectively.
The self-test for the accelerometer and the gyroscope is initiated by writing the command 0x0100 to the register CMD. It is
possible to configure the self test to check only the accelerometer or the gyroscope by disabling either the gyroscope with
EXT.ST_SELECT.gyr_st_en to 0b0 or the accelerometer with EXT.ST_SELECT.acc_st_en to 0b0, respectively. Depending
on the configuration, the self test takes from 100 ms for the only the accelerometer up to 350 ms for both sensors.
Once a self test is initiated, the output of data of the device to the registers and FIFO data buffer as well as all features
are disabled. While the self-test is in progress, the host is not allowed to modify the configuration of the device. The
device reports in the register field FEATURE_IO1.sc_st_complete with 0b1 when the self-test is completed. The result
of the self-test can be determined by evaulating the register field FEATURE_IO1.st_result. In case the self-test failed,
detailed information about the sensor and axis causing the failure can be obtained by reading from EXT.ST_RESULT. After
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 59 | 239
a completed self test, a soft reset or power cycle of the device is not required.
The device monitors the motion the device is exposed to while executing the self-test. The sensitivity of this motion
detection can be configured through EXT.GYR_MOT_DET.slope. Note: this configuration of the detection of any motion is
also used by the device self calibration.
The device supports time control modes as defined by the MIPI I3CSM standard. As defined by the I3C specification,
the device supports timing control for both synchronous systems and events called synchronous mode as well as for
asynchronous systems and events called asynchronous basic mode. The modes can be configured, entered, and left
using I3C common command codes (CCCs).
Mode for Asynchronous Systems and Events The device supports the asynchronous basic mode of timing con-
trol (asynchronous mode 0) as defined in the MIPI I3CSM specification. For entering the asynchronous mode 0, the
host sends the CCC SETXTIME with the defining byte 0xDF. For exiting the asynchronous mode 0, the host sends the
CCC SETXTIME with sub-command 0xFF.
Mode for Synchronous Systems and Events The main idea of the synchronous mode is to configure the sensor for
synchronization first and then issue periodically synchonization messages to keep the sensor device synchonized with
the host device. The data ready interrupts of accelerometer, gyroscope and temperature sensor are aligned with respect
to sample rate and phase. The synchronization process is divided into the two phases configuration and run-time. Note:
this mode
cannot be used together with when the automatic operation mode switch is enabled,
cannot be enabled while a self-test is ongoing, and
aborts an on-going self-calibration when this mode is enabled.
Note: if a self-test is in progress while this mode is requested to be enabled, the synchronous timing control will be
enabled only after the self-test is finished.
The mode for synchronous systems and events has to be configured for the serial interface with the CCC SETXTIME, and
the data processing control FEATURE_IO0.i3c_sync_en. To have the serial interface entering the synchronous mode,
the host sends the CCC SETXTIME with any of the sub-command 0x3F, 0x9F, or 0x8F. The argument of the subcommand
is ignored, if the device is not in the synchronous mode. To enter the timing control in synchronous mode and to set the
time period and the phase value 0xABCD, the host needs to send the two CCCs SETXTIME 0x3F|0x9F|0x8F followed by
two dummy bytes and then SETXTIME 0x3F 0xABCD. Another possibility for the host to configure the synchronous mode
is to read or write the synchronous mode parameters T_Ph, TU, and ODR directly via the registers I3C_TC_SYNC_TPH,
I3C_TC_SYNC_TU, and I3C_TC_SYNC_ODR, respectively. Before sending I3C synchonization messages, the synchronous
mode needs to be enabled for the data processing by setting FEATURE_IO0.i3c_sync_en to 0b1. For exiting the syn-
chronous mode, the host sets FEATURE_IO0.i3c_sync_en to 0b0 to disable the I3C data processing and sends the CCC
SETXTIME with sub-command 0xFF to control the serial interface of the device.
Configuration During the configuration phase the parameters sample rate (ODR), time period and phase (T_Ph)
and time unit (TU) have to be configured by the host:
ODR The ODR command selects the enforced ODR. The payload of this command consists of one byte. The format of
the ODR payload equals the ACC_CONF.acc_odr register. The minimum and maximum configurable sample rate
for synchronous timing control is in the range of 6.25 Hz up to 800 Hz. If the configuration is selected beyond this
range, the default sample rate of 100 Hz is configured. Example: ODR payload = 0x8 means 100 Hz.
T_ph The time period and phase (T_ph) command provides the number of samples that are included between two
successive synchronization messages.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 60 | 239
TU The TU command configures the resolution ratio of the delay, given by DT command.
During the configuration phase the command ODR, TPH and TU are updated by the CCC SETXTIME in I3C mode.
The host is allowed to alter I3C_TC_SYNC_TPH, I3C_TC_SYNC_TU, and I3C_TC_SYNC_ODR whenever required at any time.
However, the new values take effect only active after sending configuration change command 0x201 for synchronous
timing control to the register CMD. With a ST or DT message, any change of the confguration will become effective for
this device.
Before entering the Runtime phase, the sync for sensor feature must be enabled by FEATURE_IO0.i3c_sync_en.
Note: while timing control synchronous is enabled, the configuration of the sample rate of the accelerometer and gy-
roscope must not be modified through ACC_CONF.acc_odr and GYR_CONF.gyr_odr, respectively. Any change to these
values is ignored and will be overwritten by the device, and this is reported in FEATURE_IO1.error_status with a value
of 0xF. The configuration of the sample rate has to be done either through the register I3C_TC_SYNC_ODR or the corre-
sponding CCC.
Run Time Operation In the run-time phase, the host issues periodically synchronization messages to the sensor.
These messages consist of two inter-related commands. First, the ST command selects a START event as reference
for calculating the next synchronization period. Afterwards the DT command is sent by the host validating the ST and
providing a delay time information to adjust the START event. If both commands are received, the sensor can update its
clock parameters.
ST The sync tick command identifies the transaction START event. It has no payload.
DT The DT command delivers the delay time between the ST message and the correct START moment. It has one byte
of payload. The MSB of the payload indicates that the delay time is valid (0) or that this sync procedure is aborted
(1). If the delay is valid, the remaining 7 bits indicate the number of resolution steps between ST and the correct
START event, see the description of TU.
For a more detailed description of the synchronization protocol see the MIPI I3CSM specification.
ODR Configuration Error The synchronous mode feature will operate in the correct manner only when the user
follows the constraints on the supported sample rates. The device checks continuously for matching values of sample
rates. If the value for one of the signals acceleration, angular rate or temperature is not within the limits, the i3c_error bit
is set. The conditions for return an I3C error for an invalid sample rate (ODR) is detailed in Figure 27.
Output Details After enabling the synchronous timing control feature for I3C, the sensor data is available in the
FIFO data buffer. Furthermore, the current valid sample set can be obtained via the extended register map from
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 61 | 239
EXT.SYNC_ACC_X to EXT.SYNC_TIME. No valid data will be available in data registers ACC_DATA_X to TEMP_DATA. The
format of the data in the FIFO data buffer is the same as in any other mode. That means, sensors that are not enabled
will not appear in the FIFO data frame, see Section. 5.7.
A soft reset can be initiated at any time by writing the command softreset 0xDEAF to the register CMD. The softreset
performs a fundamental reset to the device which is largely equivalent to a power cycle. Following a delay, all user
configuration settings are overwritten with their default state wherever applicable. To access the serial interface with any
of the protocols SPI, I3C or I²C after a soft reset, the same timing constraints apply as for power on, see Chapter 3 for
details.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 62 | 239
6 Memory Map
The device can be operated for all standard features directly through registers. The registers are described in the register
map in Section 6.1. The configuration and extended outputs of the advanced features provided by the feature engine
can be accessed through the extended register map. The layout of the extended registers is described in Section 6.2.
For all data read from registers, content marked as reserved must be ignored. If only the first byte of a register contains
non-reserved data, the upper byte is not required to be read.
When performing an update of a register with fields marked as reserved (partial update), a read-modify-write approach
has to be followed to write the content of a register. That means, for a write access to a register with reserved content,
the whole register must be read, then the desired content must be updated and the content written (back) to the register
to avoid overwriting the reserved part with undefined content. This is especially important for the extended register map
where many configurations are located.
The description of the register map is split into the overview of the register map and a detailed description for each regis-
ter. The usage of the registers FEATURE_IO0 to FEATURE_IO3 together with the register FEATURE_IO_STATUS is explained
in Section. 5.8. The access to the extended register map through the registers FEATURE_DATA_ADDR, FEATURE_DATA_TX
and FEATURE_DATA_STATUS is explained in Section 6.2.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 63 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMI323-DS000-09
Bosch Sensortec | BMI323 Datasheet 64 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMI323-DS000-09
Bosch Sensortec | BMI323 Datasheet 65 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMI323-DS000-09
Bosch Sensortec | BMI323 Datasheet 66 | 239
Description: Device identification code. Only bits 0 to 7 contain valid information, the contents of bits 8 to 15 must be
ignored.
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 1 0 0 0 0 1 1
Value
Content chip_id
reserved:write 0x0.
CHIP_ID.chip_id: (bit offset: 0, bit width: 8) Chip identifier
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 67 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R/W R R R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved i3c_er... reserved i3c_er...
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R/W R R/W R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved gyr_co... acc_co... feat_e... reserved feat_e... reserved fatal_err
reserved:write 0x0.
ERR_REG.fatal_err: (bit offset: 0, bit width: 1) Fatal Error, chip is not in operational state (Boot-, power-system).
This flag will be reset only by power-on-reset or softreset.
ERR_REG.feat_eng_ovrld: (bit offset: 2, bit width: 1) Overload of the feature engine detected. This flag is clear-on-
read.
ERR_REG.feat_eng_wd: (bit offset: 4, bit width: 1) Watchdog timer of the feature engine triggered. This flag is
clear-on-read.
ERR_REG.acc_conf_err: (bit offset: 5, bit width: 1) Unsupported accelerometer configuration set by user. This flag
will be reset when configuration has been corrected.
ERR_REG.gyr_conf_err: (bit offset: 6, bit width: 1) Unsupported gyroscope configuration set by user. This flag will
be reset when configuration has been corrected.
ERR_REG.i3c_error0: (bit offset: 8, bit width: 1) SDR parity error or read abort condition (maximum clock stall time
for I3C Read Trasfer) occurred. This flag is a clear-on-read type. It is cleared automatically once read. Refer to the
MIPI I3C specification chapter ’Master Clock Stalling’ for detail info regarding the read abort condition.
ERR_REG.i3c_error3: (bit offset: 11, bit width: 1) S0/S1 error occurred. When S0/S1 error occurs, the slave will
recover automatically after 60 us as if we see a HDR-exit pattern on the bus while the flag will persist for notification
purpose. This flag is clear-on-read type. It is cleared automatically once read.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 68 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R R R R R/W
Reset
0 0 0 0 0 0 0 1
Value
Content drdy_acc drdy_gyr drdy_temp reserved por_de...
reserved:write 0x0.
STATUS.por_detected: (bit offset: 0, bit width: 1) ’1’ after device power up or soft-reset. This flag is clear-on-read.
STATUS.drdy_temp: (bit offset: 5, bit width: 1) Data ready for Temperature. This flag is clear-on-read.
STATUS.drdy_gyr: (bit offset: 6, bit width: 1) Data ready for Gyroscope. This flag is clear-on-read.
STATUS.drdy_acc: (bit offset: 7, bit width: 1) Data ready for Accelerometer. This flag is clear-on-read.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 69 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
1 0 0 0 0 0 0 0
Value
Content acc_x
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content acc_x
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 70 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
1 0 0 0 0 0 0 0
Value
Content acc_y
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content acc_y
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 71 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
1 0 0 0 0 0 0 0
Value
Content acc_z
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content acc_z
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 72 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
1 0 0 0 0 0 0 0
Value
Content gyr_x
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_x
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 73 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
1 0 0 0 0 0 0 0
Value
Content gyr_y
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_y
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 74 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
1 0 0 0 0 0 0 0
Value
Content gyr_z
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_z
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 75 | 239
Description: Temperature Data. The resolution is 512 LSB/K. 0x0000 -> 23◦ C 0x8000 -> invalid
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
1 0 0 0 0 0 0 0
Value
Content temp_data
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content temp_data
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 76 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content sensor_time_15_0
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content sensor_time_15_0
SENSOR_TIME_0.sensor_time_15_0: (bit offset: 0, bit width: 16) Least significant word of the sensor time (15:0)
where 1 LSB corresponds to 39.0625 us
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 77 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content sensor_time_31_16
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content sensor_time_31_16
SENSOR_TIME_1.sensor_time_31_16: (bit offset: 0, bit width: 16) Most significant word of the sensor time (31:16)
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 78 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved satf_g... satf_g... satf_g... satf_a... satf_a... satf_a...
reserved:write 0x0.
SAT_FLAGS.satf_acc_x: (bit offset: 0, bit width: 1) Saturation flag for the accelerometer x axis in the default axes
configuration
SAT_FLAGS.satf_acc_y: (bit offset: 1, bit width: 1) Saturation flag for the accelerometer y axis in the default axes
configuration
SAT_FLAGS.satf_acc_z: (bit offset: 2, bit width: 1) Saturation flag for the accelerometer z axis in the default axes
configuration
SAT_FLAGS.satf_gyr_x: (bit offset: 3, bit width: 1) Saturation flag for the gyroscope x axis in the default axes
configuration
SAT_FLAGS.satf_gyr_y: (bit offset: 4, bit width: 1) Saturation flag for the gyroscope y axis in the default axes
configuration
SAT_FLAGS.satf_gyr_z: (bit offset: 5, bit width: 1) Saturation flag for the gyroscope z axis in the default axes
configuration
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 79 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content int1_f... int1_fwm int1_a... int1_g... int1_t... int1_e... int1_i3c int1_tap
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content int1_tilt int1_s... int1_s... int1_s... int1_o... int1_flat int1_a... int1_n...
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 80 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content int2_f... int2_fwm int2_a... int2_g... int2_t... int2_e... int2_i3c int2_tap
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content int2_tilt int2_s... int2_s... int2_s... int2_o... int2_flat int2_a... int2_n...
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 81 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content ibi_ffull ibi_fwm ibi_ac... ibi_gy... ibi_te... ibi_er... ibi_i3c ibi_tap
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content ibi_tilt ibi_si... ibi_st... ibi_st... ibi_or... ibi_flat ibi_an... ibi_no...
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 82 | 239
Description: Feature engine configuration, before setting/changing an active configuration the register must be cleared
(set to 0)
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content i3c_sy... tap_de... tap_de... tap_de... tilt_en sig_mo... step_c... step_d...
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content orienta... flat_en any_mo... any_mo... any_mo... no_mot... no_mot... no_mot...
FEATURE_IO0.no_motion_x_en: (bit offset: 0, bit width: 1) Enables no motion feature for X-axis
FEATURE_IO0.no_motion_y_en: (bit offset: 1, bit width: 1) Enables no motion feature for Y-axis
FEATURE_IO0.no_motion_z_en: (bit offset: 2, bit width: 1) Enables no motion feature for Z-axis
FEATURE_IO0.any_motion_x_en: (bit offset: 3, bit width: 1) Enables any motion feature for X-axis
FEATURE_IO0.any_motion_y_en: (bit offset: 4, bit width: 1) Enables any motion feature for Y-axis
FEATURE_IO0.any_motion_z_en: (bit offset: 5, bit width: 1) Enables any motion feature for Z-axis
FEATURE_IO0.flat_en: (bit offset: 6, bit width: 1) Enables flat feature
FEATURE_IO0.orientation_en: (bit offset: 7, bit width: 1) Enables orientation feature
FEATURE_IO0.step_detector_en: (bit offset: 8, bit width: 1) Enables step detector feature
FEATURE_IO0.step_counter_en: (bit offset: 9, bit width: 1) Enables step counter feature
FEATURE_IO0.sig_motion_en: (bit offset: 10, bit width: 1) Enables significant motion feature
FEATURE_IO0.tilt_en: (bit offset: 11, bit width: 1) Enables tilt feature
FEATURE_IO0.tap_detector_s_tap_en: (bit offset: 12, bit width: 1) Enables single tap feature
FEATURE_IO0.tap_detector_d_tap_en: (bit offset: 13, bit width: 1) Enables double tap feature
FEATURE_IO0.tap_detector_t_tap_en: (bit offset: 14, bit width: 1) Enables triple tap feature
FEATURE_IO0.i3c_sync_en: (bit offset: 15, bit width: 1) Enables I3C TC-sync feature.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 83 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved state axis_m... reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content sample˙.. st_result gyro_s... sc_st˙.. error_status
reserved:write 0x0.
FEATURE_IO1.error_status: (bit offset: 0, bit width: 4) Error and status information
Following values can be set to or read from the field error_status:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 84 | 239
Value Description
0b0000 (0x0) Feature engine still inactive
0b0001 (0x1) Feature engine activated
0b0011 (0x3) Configuration string download failed
0b0101 (0x5) No error
Axis map command was not processed because either a sensor was active or
0b0110 (0x6)
self-calibration or self-test was ongoing
I3C TC-sync error because either I3C TC-sync enable request was sent while
auto-low-power feature was active or I3C TC-sync configuration command
0b1000 (0x8)
was sent with invalid TPH, TU and ODR values. For later case, invalid
configuration parameters TPH, TU and ODR will not be used.
Ongoing self-calibration (gyroscope only) or self-test (gyroscope only) was
aborted. The command was aborted either due to device movements or due
0b1001 (0x9)
to the abort command (self-calibration only) or due to a request to enable I3C
TC-sync feature (self-calibration only).
Self-calibration (gyroscope only) command ignored because either
0b1010 (0xA)
self-calibration or self-test or I3C TC-sync was ongoing
Self-test (accelerometer and/or gyroscope) command ignored because either
0b1011 (0xB)
self-calibration or self-test or I3C TC-sync was ongoing
Self-calibration (gyroscope only) or self-test (accelerometer and/or gyroscope)
command was not processed because pre-conditions were not met. Either
0b1100 (0xC)
accelerometer was not configured correctly (self-test and self-calibration
gyroscope only) or auto-low-power feature was active.
Auto-mode change feature was enabled or illegal sensor configuration change
0b1101 (0xD) detected in ACC_CONF/GYR_CONF while self-calibration or self-test was
ongoing. Self-calibration and self-test results may be inaccurate.
I3C TC-sync enable request was sent while self-test (accelerometer and/or
0b1110 (0xE)
gyroscope) was ongoing. I3C TC-sync will be enabled at the end of self-test.
Illegal sensor configuration change detected in ACC_CONF/GYR_CONF
0b1111 (0xF) while I3C TC-sync was active. Sensors are re-configured is to requested I3C
TC-sync ODR.
FEATURE_IO1.sc_st_complete: (bit offset: 4, bit width: 1) Self-calibration (gyroscope only) or self-test (accelerome-
ter and/or gyroscope) execution status. 0 indicates that the procedure is ongoing. 1 indicates that the procedure is
completed.
FEATURE_IO1.gyro_sc_result: (bit offset: 5, bit width: 1) Gyroscope self-calibration result (1=OK, 0=Not OK). Bit
sc_st_complete should be 1 prior to reading this bit.
FEATURE_IO1.st_result: (bit offset: 6, bit width: 1) Accelerometer and/or gyroscope self-test result (1=OK, 0=Not
OK). Bit sc_st_complete should be 1 prior to reading this bit.
FEATURE_IO1.sample_rate_err: (bit offset: 7, bit width: 1) Insufficient sample rate for either 50Hz or 200Hz or I3C
TC-sync feature
FEATURE_IO1.axis_map_complete: (bit offset: 10, bit width: 1) Axis mapping completed
FEATURE_IO1.state: (bit offset: 11, bit width: 2) Current state of the system
Following values can be set to or read from the field state:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 85 | 239
Value Description
0b00 (0x0) System in feature mode
0b01 (0x1) System is executing self-calibration of gyroscope in feature mode
0b10 (0x2) System in self-test mode
0b11 (0x3) System in error mode
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 86 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content step_counter_out_0
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content step_counter_out_0
FEATURE_IO2.startup_config_0: (bit offset: 0, bit width: 16) Before feature engine enable: Feature engine start-up
configuration
FEATURE_IO2.step_counter_out_0: (bit offset: 0, bit width: 16) After feature engine enable: Step counter value
word-0 (low word)
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 87 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content step_counter_out_1
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content step_counter_out_1
FEATURE_IO3.startup_config_1: (bit offset: 0, bit width: 16) Before feature engine enable: Feature engine start-up
configuration
FEATURE_IO3.step_counter_out_1: (bit offset: 0, bit width: 16) After feature engine enable: Step counter value
word-1 (high word)
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 88 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved feature...
reserved:write 0x0.
FEATURE_IO_STATUS.feature_io_status: (bit offset: 0, bit width: 1) On read: data has been written by the feature
engine On write: data written by the host shall be sent to the feature engine
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 89 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved fifo_fill_level
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content fifo_fill_level
reserved:write 0x0.
FIFO_FILL_LEVEL.fifo_fill_level: (bit offset: 0, bit width: 11) Current fill level of FIFO buffer An empty FIFO
corresponds to 0x000. The word counter may be reset by reading out all frames from the FIFO buffer or when the
FIFO is reset through fifo_flush. The word counter is updated each time a complete frame was read or written.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 90 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content fifo_data
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content fifo_data
FIFO_DATA.fifo_data: (bit offset: 0, bit width: 16) FIFO read data (16 bits) Data format depends on the setting of
register FIFO_CONF. The FIFO data are organized in frames. The new data flag is preserved. Read burst access
must be used, the address will not increment when the read burst reads at the address of FIFO_DATA. When a
frame is only partially read out it is retransmitted including the header at the next readout.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 91 | 239
Description: Sets the output data rate, bandwidth, range and the mode of the accelerometer
Bit 15 14 13 12 11 10 9 8
Read/Write R R/W R/W R/W R R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved acc_mode reserved acc_avg_num
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 1 0 1 0 0 0
Value
Content acc_bw acc_range acc_odr
reserved:write 0x0.
ACC_CONF.acc_odr: (bit offset: 0, bit width: 4) Sample rate (ODR) in Hz
Following values can be set to or read from the field acc_odr:
Value Description
0b0001 (0x1) ODR = 0.78125Hz
0b0010 (0x2) ODR = 1.5625Hz
0b0011 (0x3) ODR = 3.125Hz
0b0100 (0x4) ODR = 6.25Hz
0b0101 (0x5) ODR = 12.5Hz
0b0110 (0x6) ODR = 25Hz
0b0111 (0x7) ODR = 50Hz
0b1000 (0x8) ODR = 100Hz
0b1001 (0x9) ODR = 200Hz
0b1010 (0xA) ODR = 400Hz
0b1011 (0xB) ODR = 800Hz
0b1100 (0xC) ODR = 1.6kHz
0b1101 (0xD) ODR = 3.2kHz
0b1110 (0xE) ODR = 6.4kHz
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 92 | 239
Value Description
0b000 (0x0) +/-2g, 16.38 LSB/mg
0b001 (0x1) +/-4g, 8.19 LSB/mg
0b010 (0x2) +/-8g, 4.10 LSB/mg
0b011 (0x3) +/-16g, 2.05 LSB/mg
ACC_CONF.acc_bw: (bit offset: 7, bit width: 1) Configure the -3dB cut-off frequency for the accelerometer
Following values can be set to or read from the field acc_bw:
Value Description
0b0 (0x0) BW = acc_odr/2
0b1 (0x1) BW = acc_odr/4
Value Description
0b000 (0x0) No averaging; pass sample without filtering
0b001 (0x1) Averaging of 2 samples
0b010 (0x2) Averaging of 4 samples
0b011 (0x3) Averaging of 8 samples
0b100 (0x4) Averaging of 16 samples
0b101 (0x5) Averaging of 32 samples
0b110 (0x6) Averaging of 64 samples
ACC_CONF.acc_mode: (bit offset: 12, bit width: 3) Operation modes for the accelerometer
Following values can be set to or read from the field acc_mode:
Value Description
0b000 (0x0) Disables the accelerometer
0b011 (0x3) Enables the accelerometer with sensing operated in duty-cycling
Enables the accelerometer in a continuous operation mode with reduced
0b100 (0x4)
current
0b111 (0x7) Enables the accelerometer in high performance mode
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 93 | 239
Description: Sets the output data rate, bandwidth, range and the mode of the Gyroscope in the sensor
Bit 15 14 13 12 11 10 9 8
Read/Write R R/W R/W R/W R R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved gyr_mode reserved gyr_avg_num
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 0 0 1 0 0 0
Value
Content gyr_bw gyr_range gyr_odr
reserved:write 0x0.
GYR_CONF.gyr_odr: (bit offset: 0, bit width: 4) Sample rate (ODR) in Hz
Following values can be set to or read from the field gyr_odr:
Value Description
0b0001 (0x1) ODR = 0.78125Hz
0b0010 (0x2) ODR = 1.5625Hz
0b0011 (0x3) ODR = 3.125Hz
0b0100 (0x4) ODR = 6.25Hz
0b0101 (0x5) ODR = 12.5Hz
0b0110 (0x6) ODR = 25Hz
0b0111 (0x7) ODR = 50Hz
0b1000 (0x8) ODR = 100Hz
0b1001 (0x9) ODR = 200Hz
0b1010 (0xA) ODR = 400Hz
0b1011 (0xB) ODR = 800Hz
0b1100 (0xC) ODR = 1.6kHz
0b1101 (0xD) ODR = 3.2kHz
0b1110 (0xE) ODR = 6.4kHz
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 94 | 239
Value Description
0b000 (0x0) +/-125 /s, 262.144 LSB/◦ /s
◦
GYR_CONF.gyr_bw: (bit offset: 7, bit width: 1) Configure the -3dB cut-off frequency for the gyroscope
Following values can be set to or read from the field gyr_bw:
Value Description
0b0 (0x0) BW = gyr_odr/2
0b1 (0x1) BW = gyr_odr/4
Value Description
0b000 (0x0) No averaging; pass sample without filtering
0b001 (0x1) averaging of 2 samples
0b010 (0x2) Averaging of 4 samples
0b011 (0x3) Averaging of 8 samples
0b100 (0x4) Averaging of 16 samples
0b101 (0x5) Averaging of 32 samples
0b110 (0x6) Averaging of 64 samples
GYR_CONF.gyr_mode: (bit offset: 12, bit width: 3) Operation modes for the gyroscope
Following values can be set to or read from the field gyr_mode:
Value Description
0b000 (0x0) Disables the gyroscope
0b001 (0x1) Disables the gyroscope but keep the gyroscope drive enabled
0b011 (0x3) Enables the gyroscope with sensing operated in duty-cycling
0b100 (0x4) Enables the gyroscope in a continuous operation mode with reduced current
0b111 (0x7) Enables the gyroscope in high performance mode
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 95 | 239
Description: Sets the alternative output data rate, bandwidth, range and the mode of the accelerometer
Bit 15 14 13 12 11 10 9 8
Read/Write R R/W R/W R/W R R/W R/W R/W
Reset
0 0 1 1 0 0 1 0
Value
Content reserved alt_acc_mode reserved alt_acc_avg_num
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R/W R/W R/W R/W
Reset
0 0 0 0 0 1 1 0
Value
Content reserved alt_acc_odr
reserved:write 0x0.
ALT_ACC_CONF.alt_acc_odr: (bit offset: 0, bit width: 4) Sample rate (ODR) in Hz
Following values can be set to or read from the field alt_acc_odr:
Value Description
0b0001 (0x1) ODR = 0.78125Hz
0b0010 (0x2) ODR = 1.5625Hz
0b0011 (0x3) ODR = 3.125Hz
0b0100 (0x4) ODR = 6.25Hz
0b0101 (0x5) ODR = 12.5Hz
0b0110 (0x6) ODR = 25Hz
0b0111 (0x7) ODR = 50Hz
0b1000 (0x8) ODR = 100Hz
0b1001 (0x9) ODR = 200Hz
0b1010 (0xA) ODR = 400Hz
0b1011 (0xB) ODR = 800Hz
0b1100 (0xC) ODR = 1.6kHz
0b1101 (0xD) ODR = 3.2kHz
0b1110 (0xE) ODR = 6.4kHz
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 96 | 239
Value Description
0b000 (0x0) No averaging; pass sample without filtering
0b001 (0x1) Averaging of 2 samples
0b010 (0x2) Averaging of 4 samples
0b011 (0x3) Averaging of 8 samples
0b100 (0x4) Averaging of 16 samples
0b101 (0x5) Averaging of 32 samples
0b110 (0x6) Averaging of 64 samples
ALT_ACC_CONF.alt_acc_mode: (bit offset: 12, bit width: 3) Operation modes for the accelerometer
Following values can be set to or read from the field alt_acc_mode:
Value Description
0b000 (0x0) Disables the accelerometer
0b011 (0x3) Enables the accelerometer with sensing operated in duty-cycling
Enables the accelerometer in a continuous operation mode with reduced
0b100 (0x4)
current
0b111 (0x7) Enables the accelerometer in high performance mode
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 97 | 239
Description: Sets the alternative output data rate, bandwidth, range and the mode of the gyroscope
Bit 15 14 13 12 11 10 9 8
Read/Write R R/W R/W R/W R R/W R/W R/W
Reset
0 0 0 1 0 0 1 0
Value
Content reserved alt_gyr_mode reserved alt_gyr_avg_num
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R/W R/W R/W R/W
Reset
0 0 0 0 0 1 1 0
Value
Content reserved alt_gyr_odr
reserved:write 0x0.
ALT_GYR_CONF.alt_gyr_odr: (bit offset: 0, bit width: 4) Sample rate (ODR) in Hz
Following values can be set to or read from the field alt_gyr_odr:
Value Description
0b0001 (0x1) ODR = 0.78125Hz
0b0010 (0x2) ODR = 1.5625Hz
0b0011 (0x3) ODR = 3.125Hz
0b0100 (0x4) ODR = 6.25Hz
0b0101 (0x5) ODR = 12.5Hz
0b0110 (0x6) ODR = 25Hz
0b0111 (0x7) ODR = 50Hz
0b1000 (0x8) ODR = 100Hz
0b1001 (0x9) ODR = 200Hz
0b1010 (0xA) ODR = 400Hz
0b1011 (0xB) ODR = 800Hz
0b1100 (0xC) ODR = 1.6kHz
0b1101 (0xD) ODR = 3.2kHz
0b1110 (0xE) ODR = 6.4kHz
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 98 | 239
Value Description
0b000 (0x0) No averaging; pass sample without filtering
0b001 (0x1) Averaging of 2 samples
0b010 (0x2) Averaging of 4 samples
0b011 (0x3) Averaging of 8 samples
0b100 (0x4) Averaging of 16 samples
0b101 (0x5) Averaging of 32 samples
0b110 (0x6) Averaging of 64 samples
ALT_GYR_CONF.alt_gyr_mode: (bit offset: 12, bit width: 3) Operation modes for the gyroscope
Following values can be set to or read from the field alt_gyr_mode:
Value Description
0b000 (0x0) Disables the gyroscope
0b001 (0x1) Disables the gyroscope but keep the gyroscope drive enabled
0b011 (0x3) Enables the gyroscope with sensing operated in duty-cycling
0b100 (0x4) Enables the gyroscope in a continuous operation mode with reduced current
0b111 (0x7) Enables the gyroscope in high performance mode
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 99 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved alt_rs...
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R/W R R R R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved alt_gy... reserved alt_ac...
reserved:write 0x0.
ALT_CONF.alt_acc_en: (bit offset: 0, bit width: 1) Enables switching possiblility to alternate configuration for ac-
celerometer.
ALT_CONF.alt_gyr_en: (bit offset: 4, bit width: 1) Enables switching possiblility to alternate configuration for gyro-
scope.
ALT_CONF.alt_rst_conf_write_en: (bit offset: 8, bit width: 1) If enabled, any write to ACC_CONF or GYR_CONF
will instanly switch back to associated user configuration.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 100 | 239
Description: Reports the active configuration for the accelerometer and gyroscope
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved alt_gy... reserved alt_ac...
reserved:write 0x0.
ALT_STATUS.alt_acc_active: (bit offset: 0, bit width: 1) accel is using ALT_ACC_CONF if set; ACC_CONF other-
wise
ALT_STATUS.alt_gyr_active: (bit offset: 4, bit width: 1) gyro is using ALT_GYR_CONF if set; GYR_CONF other-
wise
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 101 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved fifo_watermark
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content fifo_watermark
reserved:write 0x0.
FIFO_WATERMARK.fifo_watermark: (bit offset: 0, bit width: 10) Trigger an interrupt when FIFO contains
fifo_watermark words
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 102 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved fifo_t... fifo_g... fifo_a... fifo_t...
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved fifo_s...
reserved:write 0x0.
FIFO_CONF.fifo_stop_on_full: (bit offset: 0, bit width: 1) Configure whether to overwrite oldest samples when the
FIFO data buffer is full
Following values can be set to or read from the field fifo_stop_on_full:
Value Description
0b0 (0x0) Continue writing to the data buffer by overwriting oldest samples
0b1 (0x1) Stop writing into the FIFO data buffer when full
FIFO_CONF.fifo_time_en: (bit offset: 8, bit width: 1) Write the sensor time into the FIFO data buffer.
Following values can be set to or read from the field fifo_time_en:
Value Description
0b0 (0x0) No sensortime is written
0b1 (0x1) Sensortime is written
FIFO_CONF.fifo_acc_en: (bit offset: 9, bit width: 1) Write 3D acceleration samples from the accelerometer into the
FIFO data buffer
Following values can be set to or read from the field fifo_acc_en:
Value Description
0b0 (0x0) No accelerometer data is written
0b1 (0x1) Accelerometer data is written
FIFO_CONF.fifo_gyr_en: (bit offset: 10, bit width: 1) Write 3D angular rate samples from the gyroscope into the
FIFO data buffer
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 103 | 239
Value Description
0b0 (0x0) No gyroscope data is written
0b1 (0x1) Gyroscope data is written
FIFO_CONF.fifo_temp_en: (bit offset: 11, bit width: 1) Write temperature samples into the FIFO data buffer
Following values can be set to or read from the field fifo_temp_en:
Value Description
0b0 (0x0) No temperature data is written
0b1 (0x1) Temperature data is written
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 104 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved fifo_f...
reserved:write 0x0.
FIFO_CTRL.fifo_flush: (bit offset: 0, bit width: 1) Writing 0b1 clears the FIFO data buffer.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 105 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved int2_o... int2_od int2_lvl
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved int1_o... int1_od int1_lvl
reserved:write 0x0.
IO_INT_CTRL.int1_lvl: (bit offset: 0, bit width: 1) Configure level of INT1 pin
Following values can be set to or read from the field int1_lvl:
Value Description
0b0 (0x0) active low
0b1 (0x1) active high
Value Description
0b0 (0x0) push-pull
0b1 (0x1) open drain
IO_INT_CTRL.int1_output_en: (bit offset: 2, bit width: 1) Output enable for INT1 pin
IO_INT_CTRL.int2_lvl: (bit offset: 8, bit width: 1) Configure level of INT2 pin
Following values can be set to or read from the field int2_lvl:
Value Description
0b0 (0x0) active low
0b1 (0x1) active high
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 106 | 239
Value Description
0b0 (0x0) push-pull
0b1 (0x1) open drain
IO_INT_CTRL.int2_output_en: (bit offset: 10, bit width: 1) Output enable for INT2 pin
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 107 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved int_latch
reserved:write 0x0.
INT_CONF.int_latch: (bit offset: 0, bit width: 1) Configuration of the interrupt clear behaviour as not latched or
permanently latched.
Following values can be set to or read from the field int_latch:
Value Description
0b0 (0x0) non latched
0b1 (0x1) permanent latched
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 108 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content tilt_out sig_motion_out step_counter_out step_detector_out
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content orientation_out flat_out any_motion_out no_motion_out
INT_MAP1.no_motion_out: (bit offset: 0, bit width: 2) Map no motion output to either INT1 or INT2 or IBI
Following values can be set to or read from the field no_motion_out:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP1.any_motion_out: (bit offset: 2, bit width: 2) Map any motion output to either INT1 or INT2 or IBI
Following values can be set to or read from the field any_motion_out:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP1.flat_out: (bit offset: 4, bit width: 2) Map flat output to either INT1 or INT2 or IBI
Following values can be set to or read from the field flat_out:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 109 | 239
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP1.orientation_out: (bit offset: 6, bit width: 2) Map orientation output to either INT1 or INT2 or IBI
Following values can be set to or read from the field orientation_out:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP1.step_detector_out: (bit offset: 8, bit width: 2) Map step_detector output to either INT1 or INT2 or IBI
Following values can be set to or read from the field step_detector_out:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP1.step_counter_out: (bit offset: 10, bit width: 2) Map step_counter watermark output to either INT1 or
INT2 or IBI
Following values can be set to or read from the field step_counter_out:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP1.sig_motion_out: (bit offset: 12, bit width: 2) Map sigmotion output to either INT1 or INT2 or IBI
Following values can be set to or read from the field sig_motion_out:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 110 | 239
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP1.tilt_out: (bit offset: 14, bit width: 2) Map tilt output to either INT1 or INT2 or IBI
Following values can be set to or read from the field tilt_out:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 111 | 239
Description: Mapping of feature engine interrupts, data ready interrupts for signals and FIFO buffer interrupts to outputs
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content fifo_full_int fifo_watermark_int acc_drdy_int gyr_drdy_int
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content temp_drdy_int err_status i3c_out tap_out
INT_MAP2.tap_out: (bit offset: 0, bit width: 2) Map tap output to either INT1 or INT2 or IBI
Following values can be set to or read from the field tap_out:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP2.i3c_out: (bit offset: 2, bit width: 2) Map i3c output to either INT1 or INT2 or IBI
Following values can be set to or read from the field i3c_out:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP2.err_status: (bit offset: 4, bit width: 2) Map feature engine’s error or status change to either INT1 or INT2
or IBI
Following values can be set to or read from the field err_status:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 112 | 239
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP2.temp_drdy_int: (bit offset: 6, bit width: 2) Map temperature data ready interrupt to either INT1 or INT2 or
IBI
Following values can be set to or read from the field temp_drdy_int:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP2.gyr_drdy_int: (bit offset: 8, bit width: 2) Map gyro data ready interrupt to either INT1 or INT2 or IBI
Following values can be set to or read from the field gyr_drdy_int:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP2.acc_drdy_int: (bit offset: 10, bit width: 2) Map accel data ready interrupt to either INT1 or INT2 or IBI
Following values can be set to or read from the field acc_drdy_int:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP2.fifo_watermark_int: (bit offset: 12, bit width: 2) Map FIFO watermark interrupt to either INT1 or INT2 or
IBI
Following values can be set to or read from the field fifo_watermark_int:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 113 | 239
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
INT_MAP2.fifo_full_int: (bit offset: 14, bit width: 2) Map FIFO full interrupt to either INT1 or INT2 or IBI
Following values can be set to or read from the field fifo_full_int:
Value Description
0b00 (0x0) Interrupt disabled
0b01 (0x1) Mapped to INT1
0b10 (0x2) Mapped to INT2
0b11 (0x3) Mapped to I3C IBI
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 114 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved engine_en
reserved:write 0x0.
FEATURE_CTRL.engine_en: (bit offset: 0, bit width: 1) Enable or disable the feature engine. Note: a soft-reset is
required to re-enable the feature engine.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 115 | 239
Description: Adress register for feature data: configurations and extended output
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved data_address
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content data_address
reserved:write 0x0.
FEATURE_DATA_ADDR.data_address: (bit offset: 0, bit width: 11) Start address for the feature data, that is feature
configurations and extended feature output
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 116 | 239
Description: I/O port for the data values of the feature engine
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content data_tx_value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content data_tx_value
FEATURE_DATA_TX.data_tx_value: (bit offset: 0, bit width: 16) Data port for DMA transfers.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 117 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved data_t... data_o...
reserved:write 0x0.
FEATURE_DATA_STATUS.data_outofbound_err: (bit offset: 0, bit width: 1) Too much data read or written to the
feature engine. Bit will be reset upon next data transfer to or from the feature engine.
FEATURE_DATA_STATUS.data_tx_ready: (bit offset: 1, bit width: 1) Data is writeable to the feature engine or readable
from the feature engine.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 118 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved watchdo... disable... data_t... reserved overload sleep
reserved:write 0x0.
FEATURE_ENGINE_STATUS.sleep: (bit offset: 0, bit width: 1) Feature engine halted or sleeping.
FEATURE_ENGINE_STATUS.overload: (bit offset: 1, bit width: 1) Transfer of data to or from the feature engine is
ongoing.
FEATURE_ENGINE_STATUS.data_tx_active: (bit offset: 3, bit width: 1) DMA controller has started DMA and DMA
transactions are ongoing
FEATURE_ENGINE_STATUS.disabled_by_host: (bit offset: 4, bit width: 1) Feature engine was disabled by the host.
Perform a soft-reset to re-enable the feature engine.
FEATURE_ENGINE_STATUS.watchdog_not_ack: (bit offset: 5, bit width: 1) The feature engine did not acknowledge its
internal watchdog in time. Perform a soft-reset to re-enable the feature engine.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 119 | 239
Description: Register of extended data on feature events. The register content is valid in combination with an active bit
in INT_STATUS_INT1/2
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved t_tap d_tap s_tap orienta... orientation_portrait_landscape
reserved:write 0x0.
FEATURE_EVENT_EXT.orientation_portrait_landscape: (bit offset: 0, bit width: 2) Output value of the orientation
detection feature. Value after device initialization is 0b00 i.e. Portrait upright
Following values can be set to or read from the field orientation_portrait_landscape:
Value Description
0b00 (0x0) Portrait upright orientation
0b01 (0x1) Landscape left orientation
0b10 (0x2) Portrait upside down orientation
0b11 (0x3) Landscape right orientation
FEATURE_EVENT_EXT.orientation_faceup_down: (bit offset: 2, bit width: 1) Output value of face down face up
orientation (only if ud_en is enabled). Value after device initialization is 0b0 i.e. Face up
Following values can be set to or read from the field orientation_faceup_down:
Value Description
0b0 (0x0) Face up orientation
0b1 (0x1) Face down orientation
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 120 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved anaio_...
reserved:write 0x0.
IO_PDN_CTRL.anaio_pdn_dis: (bit offset: 0, bit width: 1) Disable the pull down on the PIN2 and PIN3
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 121 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved spi3_en
reserved:write 0x0.
IO_SPI_IF.spi3_en: (bit offset: 0, bit width: 1) Enable or disable the 3-wire SPI interface. 0b0 enables the default
4-wire configuration, 0b1 enables the 3-wire configuration.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 122 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R/W R/W R/W R/W
Reset
0 0 0 0 1 0 1 0
Value
Content reserved if_i2c... if_drv
reserved:write 0x0.
IO_PAD_STRENGTH.if_drv: (bit offset: 0, bit width: 3) Generic drive strength control for the output pads: 0:=weakest;
7:=strongest
IO_PAD_STRENGTH.if_i2c_boost: (bit offset: 3, bit width: 1) Enable or disable the drive strength for SDX when
interfacing via I2C. 0b1 enables the default increased drive strength, 0b0 does not increase the drive strength.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 123 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved watchdo... watchdo...
reserved:write 0x0.
IO_I2C_IF.watchdog_timer_sel: (bit offset: 0, bit width: 1) Select the timer period for the I2C watchdog
Following values can be set to or read from the field watchdog_timer_sel:
Value Description
0b0 (0x0) I2C watchdog timeout after 1.25 ms
0b1 (0x1) I2C watchdog timeout after 40 ms
IO_I2C_IF.watchdog_timer_en: (bit offset: 1, bit width: 1) Enable or disable the watchdog for the I2C interface.
Disable this feature when using I3C or SPI
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 124 | 239
Description: ODR Deviation Trim Register (OTP backed) - User mirror register
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved odr_deviation
reserved:write 0x0.
IO_ODR_DEVIATION.odr_deviation: (bit offset: 0, bit width: 5) ODR clock deviation
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 125 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved acc_dp_off_x
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_dp_off_x
reserved:write 0x0.
ACC_DP_OFF_X.acc_dp_off_x: (bit offset: 0, bit width: 14) Data path register for the temperature independent ac-
celerometer offset of axis x: 1 LSB = 30.52ug; 0x1000 -> invalid
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 126 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_dp_dgain_x
reserved:write 0x0.
ACC_DP_DGAIN_X.acc_dp_dgain_x: (bit offset: 0, bit width: 8) Data path register for the temperature independent
accelerometer re-scale of axis x: covers ±3.125% of sensitivity
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 127 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved acc_dp_off_y
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_dp_off_y
reserved:write 0x0.
ACC_DP_OFF_Y.acc_dp_off_y: (bit offset: 0, bit width: 14) Data path register for the temperature independent ac-
celerometer offset of axis y: 1 LSB = 30.52ug; 0x1000 -> invalid
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 128 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_dp_dgain_y
reserved:write 0x0.
ACC_DP_DGAIN_Y.acc_dp_dgain_y: (bit offset: 0, bit width: 8) Data path register for the temperature independent
accelerometer re-scale of axis y: covers ±3.125% of sensitivity
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 129 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved acc_dp_off_z
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_dp_off_z
reserved:write 0x0.
ACC_DP_OFF_Z.acc_dp_off_z: (bit offset: 0, bit width: 14) Data path register for the temperature independent ac-
celerometer offset of axis z: 1 LSB = 30.52ug; 0x1000 -> invalid
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 130 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_dp_dgain_z
reserved:write 0x0.
ACC_DP_DGAIN_Z.acc_dp_dgain_z: (bit offset: 0, bit width: 8) Data path register for the temperature independent
accelerometer re-scale of axis z: covers ±3.125% of sensitivity
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 131 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved gyr_dp_off_x
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_dp_off_x
reserved:write 0x0.
GYR_DP_OFF_X.gyr_dp_off_x: (bit offset: 0, bit width: 10) Data path register for the temperature independent gyro-
scope offset of axis x: 1 LSB = 0.061◦ /s; 0x200 -> invalid
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 132 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved gyr_dp_dgain_x
reserved:write 0x0.
GYR_DP_DGAIN_X.gyr_dp_dgain_x: (bit offset: 0, bit width: 7) Data path register for the temperature independent
gyroscope re-scale of axis x: covers ±12.5% of sensitivity
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 133 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved gyr_dp_off_y
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_dp_off_y
reserved:write 0x0.
GYR_DP_OFF_Y.gyr_dp_off_y: (bit offset: 0, bit width: 10) Data path register for the temperature independent gyro-
scope offset of axis y: 1 LSB = 0.061◦ /s; 0x200 -> invalid
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 134 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved gyr_dp_dgain_y
reserved:write 0x0.
GYR_DP_DGAIN_Y.gyr_dp_dgain_y: (bit offset: 0, bit width: 7) Data path register for the temperature independent
gyroscope re-scale of axis y: covers ±12.5% of sensitivity
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 135 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved gyr_dp_off_z
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_dp_off_z
reserved:write 0x0.
GYR_DP_OFF_Z.gyr_dp_off_z: (bit offset: 0, bit width: 10) Data path register for the temperature independent gyro-
scope offset of axis z: 1 LSB = 0.061◦ /s; 0x200 -> invalid
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 136 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved gyr_dp_dgain_z
reserved:write 0x0.
GYR_DP_DGAIN_Z.gyr_dp_dgain_z: (bit offset: 0, bit width: 7) Data path register for the temperature independent
gyroscope re-scale of axis z: covers ±12.5% of sensitivity
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 137 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content i3c_tc_sync_tph
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content i3c_tc_sync_tph
I3C_TC_SYNC_TPH.i3c_tc_sync_tph: (bit offset: 0, bit width: 16) I3C Timing Control Sync TPH Register
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 138 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content i3c_tc_sync_tu
reserved:write 0x0.
I3C_TC_SYNC_TU.i3c_tc_sync_tu: (bit offset: 0, bit width: 8) I3C Timing Control Sync TU Register
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 139 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content i3c_tc_sync_odr
reserved:write 0x0.
I3C_TC_SYNC_ODR.i3c_tc_sync_odr: (bit offset: 0, bit width: 8) I3C Timing Control Sync ODR Register
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 140 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write W W W W W W W W
Reset
0 0 0 0 0 0 0 0
Value
Content cmd
Bit 7 6 5 4 3 2 1 0
Read/Write W W W W W W W W
Reset
0 0 0 0 0 0 0 0
Value
Content cmd
CMD.cmd: (bit offset: 0, bit width: 16) Available commands (Note: Register will always return 0x00 as read result)
Following values can be set to or read from the field cmd:
Value Description
Trigger the self-test of the device. Default scope of the self-test is a test of the
0x100 accelerometer and gyroscope. Notes: an enabled feature engine is required;
further settings are possible via the feature engine data interface.
Trigger the self-calibration of the gyroscope. Notes: an enabled feature engine
0x101
is required; further settings are possible via the feature engine data interface.
0x200 Abort a running self-calibration of the gyroscope.
Update the configuration of the I3C timing control synchonronous feature
0x201 written to all or any of I3C_TC_SYNC_TPH, I3C_TC_SYNC_TU and
I3C_TC_SYNC_ODR.
0x300 Axis mapping gets updated
Triggers a soft reset, that is all user configurations data registers are
0xDEAF
overwritten with their default state and the feature engine is reset.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 141 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content value_two reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved value_one
reserved:write 0x0.
CFG_RES.value_one: (bit offset: 0, bit width: 5) value
CFG_RES.value_two: (bit offset: 14, bit width: 2) value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 142 | 239
The extended configuration and input/output of the feature engine has to be done through the feature engine data
interface. The data can be read from or written through FEATURE_DATA_TX to an address in the extended register map
configured in FEATURE_DATA_ADDR by a data exchange transaction. A transaction consists of writing the address to
FEATURE_DATA_ADDR and then continuously reading all data from or writing all data to FEATURE_DATA_TX, see Fig. 28.
When reading and writing data via this interface, there must be no communication to any other register before the read
or write transaction is complete.
Otherwise, the written or received data is invalid. The status of the data transfer is reported in the register
FEATURE_DATA_STATUS:
FEATURE_DATA_STATUS.data_tx_ready is set by the device to 0b1, if data can be read from or written to the device
FEATURE_DATA_STATUS.data_outofbound_err is set by the device to 0b1, if data is tried to be read from or written to
outside the specified register address range
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 143 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMI323-DS000-09
Bosch Sensortec | BMI323 Datasheet 144 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well as in the event of applications for industrial property rights Document number: BST-BMI323-DS000-09
Bosch Sensortec | BMI323 Datasheet 145 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 1 1 0
Value
Content reserved sw_lock int_hold_dur event_...
reserved:write 0x0.
GEN_SET_1.event_report_mode: (bit offset: 0, bit width: 1) Configuration of the reporting mode
Following values can be set to or read from the field event_report_mode:
Value Description
0b0 (0x0) All detected events are reported.
0b1 (0x1) Report first detected event, then keep silent.
GEN_SET_1.int_hold_dur: (bit offset: 1, bit width: 4) Interrupt hold time duration. Range 0 to 13. Hold time =
0.625ms * ( 2 ^interrupt_hold_duration) i.e 0.625ms to 5120ms. If set above 13, then hold time input is considered
as 13. Default is 5ms. The hold time is only applicable for interrupts A..I in non-latched mode. Deviation up to
+/- 1.25ms + ODR accuracy deviation. If tap detector is active the hold time MUST NOT be 5ms if not applied the
enhanced configuration prior via ’bmi3x0_configure_enhanced_flexibility’ (sensor driver API)
GEN_SET_1.sw_lock: (bit offset: 5, bit width: 1) Reserved
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 146 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved invert_z invert_y invert_x axis_map
reserved:write 0x0.
AXIS_MAP_1.axis_map: (bit offset: 0, bit width: 3) Map accelerometer and gyroscope axis to desired configuration
Following values can be set to or read from the field axis_map:
Value Description
0b000 (0x0) x=x; y=y; z=z;
0b001 (0x1) x=y; y=x; z=z;
0b010 (0x2) x=x; y=z; z=y;
0b011 (0x3) x=z; y=x; z=y;
0b100 (0x4) x=y; y=z; z=x;
0b101 (0x5) x=z; y=y; z=x;
AXIS_MAP_1.invert_x: (bit offset: 3, bit width: 1) Invert the x axis of accelerometer and gyroscope
Following values can be set to or read from the field invert_x:
Value Description
0b0 (0x0) Clear this bit to not invert the x axis
0b1 (0x1) Set this bit to invert the x axis
AXIS_MAP_1.invert_y: (bit offset: 4, bit width: 1) Invert the y axis of accelerometer and gyroscope
Following values can be set to or read from the field invert_y:
Value Description
0b0 (0x0) Clear this bit to not invert the y axis
0b1 (0x1) Set this bit to invert the y axis
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 147 | 239
AXIS_MAP_1.invert_z: (bit offset: 5, bit width: 1) Invert the z axis of accelerometer and gyroscope
Following values can be set to or read from the field invert_z:
Value Description
0b0 (0x0) Clear this bit to not invert the z axis
0b1 (0x1) Set this bit to invert the z axis
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 148 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R/W R/W R/W R/W R/W
Reset
0 0 0 1 0 0 0 0
Value
Content reserved acc_re... slope_thres
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 1 0 1 0
Value
Content slope_thres
reserved:write 0x0.
ANYMO_1.slope_thres: (bit offset: 0, bit width: 12) Minimum slope of acceleration signal for motion detection The
field slope_thres has the following properties:
Property Value
Bitwidth 12
Sign unsigned
Unit g
Scaling 512
Default value 10/512
Range Min=0.0, Max=7.998046875
ANYMO_1.acc_ref_up: (bit offset: 12, bit width: 1) Mode of the acceleration reference update.
Following values can be set to or read from the field acc_ref_up:
Value Description
0b0 (0x0) On detection of the event
0b1 (0x1) On update of acceleration signal
Property Value
Bitwidth 1
Default value 1
Range Min=0, Max=1
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 149 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved hysteresis
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 1 0
Value
Content hysteresis
reserved:write 0x0.
ANYMO_2.hysteresis: (bit offset: 0, bit width: 10) Hysteresis for the slope of the acceleration signal The field
hysteresis has the following properties:
Property Value
Bitwidth 10
Sign unsigned
Unit g
Scaling 512
Default value 2/512
Range Min=0.0, Max=1.998046875
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 150 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 1 0 0 0 0 0
Value
Content wait_time duration
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 1 0 1 0
Value
Content duration
ANYMO_3.duration: (bit offset: 0, bit width: 13) Minimum duration for which the slope shall be greater than threshold
for motion detection The field duration has the following properties:
Property Value
Bitwidth 13
Sign unsigned
Unit s
Scaling 50
Default value 0.2
Range Min=0.0, Max=163.82
ANYMO_3.wait_time: (bit offset: 13, bit width: 3) Wait time for clearing the event after slope is below threshold The
field wait_time has the following properties:
Property Value
Bitwidth 3
Sign unsigned
Unit s
Scaling 50
Default value 0.06
Range Min=0.0, Max=0.14
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 151 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R/W R/W R/W R/W R/W
Reset
0 0 0 1 0 0 0 0
Value
Content reserved acc_re... slope_thres
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 1 0 1 0
Value
Content slope_thres
reserved:write 0x0.
NOMO_1.slope_thres: (bit offset: 0, bit width: 12) Maximum slope of acceleration signal for stationary state detection
The field slope_thres has the following properties:
Property Value
Bitwidth 12
Sign unsigned
Unit g
Scaling 512
Default value 10/512
Range Min=0.0, Max=7.998046875
NOMO_1.acc_ref_up: (bit offset: 12, bit width: 1) Mode of the acceleration reference update.
Following values can be set to or read from the field acc_ref_up:
Value Description
0b0 (0x0) On detection of the event
0b1 (0x1) On update of acceleration signal
Property Value
Bitwidth 1
Default value 1
Range Min=0, Max=1
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 152 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved hysteresis
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 1 0
Value
Content hysteresis
reserved:write 0x0.
NOMO_2.hysteresis: (bit offset: 0, bit width: 10) Hysteresis for the slope of the acceleration signal The field hystere-
sis has the following properties:
Property Value
Bitwidth 10
Sign unsigned
Unit g
Scaling 512
Default value 2/512
Range Min=0.0, Max=1.998046875
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 153 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 1 0 0 0 0 0
Value
Content wait_time duration
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 1 0 1 0
Value
Content duration
NOMO_3.duration: (bit offset: 0, bit width: 13) Minimum duration for which the slope shall be less than threshold for
stationary detection
The field duration has the following properties:
Property Value
Bitwidth 13
Sign unsigned
Unit s
Scaling 50
Default value 0.2
Range Min=0.0, Max=163.82
NOMO_3.wait_time: (bit offset: 13, bit width: 3) Wait time for clearing the event after slope is below threshold The
field wait_time has the following properties:
Property Value
Bitwidth 3
Sign unsigned
Unit s
Scaling 50
Default value 0.06
Range Min=0.0, Max=0.14
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 154 | 239
Description: Settings for maximum tilt angle for flat state, blocking mode and minimum duration in state for event
detection
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 1 0 0 0 0 0
Value
Content hold_time
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 0 0 0 1 0 0 0
Value
Content blocking theta
FLAT_1.theta: (bit offset: 0, bit width: 6) Maximum allowed tilt angle for device to be in flat state The field theta has
the following properties:
Property Value
Bitwidth 6
Sign unsigned
Unit degrees
Scaling 64.0
Default value 20
Range Min=0, Max=44.8
Interpretation (tan(x))^2
FLAT_1.blocking: (bit offset: 6, bit width: 2) Blocking mode to prevent change of flat status during large movement
of device.
Following values can be set to or read from the field blocking:
Value Description
0b00 (0x0) Blocking is disabled
0b01 (0x1) Block if acceleration on any axis is greater than 1.5g
Block if acceleration on any axis is greater than 1.5g or slope is greater than
0b10 (0x2)
half of slope_thres
Block if acceleration on any axis is greater than 1.5g or slope is greater than
0b11 (0x3)
slope_thres
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 155 | 239
Property Value
Bitwidth 2
Default value 2
Range Min=0, Max=3
FLAT_1.hold_time: (bit offset: 8, bit width: 8) Minimum duration the device shall be in flat position for status to be
asserted The field hold_time has the following properties:
Property Value
Bitwidth 8
Sign unsigned
Unit s
Scaling 50.0
Default value 0.64
Range Min=0.0, Max=5.10
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 156 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 1 0 0 1
Value
Content hysteresis
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 0 0 1 1 0 1
Value
Content slope_thres
FLAT_2.slope_thres: (bit offset: 0, bit width: 8) Minimum slope between consecutive acceleration samples to
pervent the change of flat status during large movement The field slope_thres has the following properties:
Property Value
Bitwidth 8
Sign unsigned
Unit g
Scaling 512
Default value 0.400390625
Range Min=0.0, Max=0.498046875
FLAT_2.hysteresis: (bit offset: 8, bit width: 8) Angle of hysteresis for flat detection.
The field hysteresis has the following properties:
Property Value
Bitwidth 8
Sign unsigned
Unit degrees
Scaling 512
Default value 2.5
Range Min=0, Max=44.8
Interpretation ((tand(z)^2) - (tand(z - x)^2))/((tand(z)^2) + 1)
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 157 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content block_size
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 1 1 1 0 1 0
Value
Content block_size
SIGMO_1.block_size: (bit offset: 0, bit width: 16) Size of the segment for detection of significant motion of the device
The field block_size has the following properties:
Property Value
Bitwidth 16
Sign unsigned
Unit s
Scaling 50
Default value 5.0
Range Min=0.0, Max=1310.7
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 158 | 239
Description: Configuration of minimum value of peak to peak acceleration magnitude and mean crossing rate
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 0 0 0 1 0 0
Value
Content mcr_min peak_2_peak_min
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 1 0 0 1 1 0
Value
Content peak_2_peak_min
SIGMO_2.peak_2_peak_min: (bit offset: 0, bit width: 10) Minimum value of the peak to peak acceleration magnitude
The field peak_2_peak_min has the following properties:
Property Value
Bitwidth 10
Sign unsigned
Unit g
Scaling 512
Default value 38/512
Range Min=0.0, Max=1.998046875
SIGMO_2.mcr_min: (bit offset: 10, bit width: 6) Minimum number of mean crossing per second in acceleration
magnitude
The field mcr_min has the following properties:
Property Value
Bitwidth 6
Default value 17
Range Min=0, Max=63
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 159 | 239
Description: Configuration of maximum value of peak to peak acceleration magnitude and mean crossing rate
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 0 0 0 1 1 0
Value
Content mcr_max peak_2_peak_max
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 0 1 0 0 1 1
Value
Content peak_2_peak_max
SIGMO_3.peak_2_peak_max: (bit offset: 0, bit width: 10) Maximum value of the peak to peak acceleration magnitude
The field peak_2_peak_max has the following properties:
Property Value
Bitwidth 10
Sign unsigned
Unit g
Scaling 512
Default value 595/512
Range Min=0.0, Max=1.998046875
SIGMO_3.mcr_max: (bit offset: 10, bit width: 6) Maximum number of mean crossing per second in acceleration
magnitude
The field mcr_max has the following properties:
Property Value
Bitwidth 6
Default value 17
Range Min=0, Max=63
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 160 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved reset_... watermark_level
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content watermark_level
reserved:write 0x0.
SC_1.watermark_level: (bit offset: 0, bit width: 10) An interrupt will be triggered every time the difference in number
of steps counted from last event is equal to set value. If 0, the interrupt is disabled.
The field watermark_level has the following properties:
Property Value
Bitwidth 10
Sign unsigned
Scaling 20
Default value 0
Range Min=0, Max=1023
SC_1.reset_counter: (bit offset: 10, bit width: 1) Reset the accumulated step count value The field reset_counter
has the following properties:
Property Value
Bitwidth 1
Sign unsigned
Default value 0
Range Min=0, Max=1
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 161 | 239
Description: Threshold for upper peak of acceleration magnitude for step detection
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 1
Value
Content env_min_dist_up
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 1 1 0 0 1 0
Value
Content env_min_dist_up
SC_2.env_min_dist_up: (bit offset: 0, bit width: 16) Threshold for upper peak of acceleration magnitude for step
detection
The field env_min_dist_up has the following properties:
Property Value
Bitwidth 16
Sign unsigned
Unit g
Scaling 2048.0
Default value 306/2048
Range Min=0.0, Max=15.99951171875
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 162 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 1 1 0 0 0 1
Value
Content env_coef_up
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 0 0 1 1 0 0
Value
Content env_coef_up
SC_3.env_coef_up: (bit offset: 0, bit width: 16) Adaptive upper peak threshold decay coefficient
The field env_coef_up has the following properties:
Property Value
Bitwidth 16
Sign unsigned
Scaling 65536.0
Default value 61900/65536
Range Min=0.0, Max=0.999984741210938
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 163 | 239
Description: Threshold for lower peak of acceleration magnitude for step detection
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content env_min_dist_down
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 0 0 0 0 1 0 0
Value
Content env_min_dist_down
SC_4.env_min_dist_down: (bit offset: 0, bit width: 16) Threshold for lower peak of acceleration magnitude for step
detection
The field env_min_dist_down has the following properties:
Property Value
Bitwidth 16
Sign unsigned
Unit g
Scaling 2048.0
Default value 132/2048
Range Min=0.0, Max=15.99951171875
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 164 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 0 1 1 0 0 1
Value
Content env_coef_down
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 1 1 1 0 0 0
Value
Content env_coef_down
SC_5.env_coef_down: (bit offset: 0, bit width: 16) Adaptive lower peak threshold decay coefficient
The field env_coef_down has the following properties:
Property Value
Bitwidth 16
Sign unsigned
Scaling 65536.0
Default value 55608/65536
Range Min=0.0, Max=0.999984741210938
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 165 | 239
Description: Exponential smoothing filter coefficient for computing mean of acceleration magnitude
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 1 0 1 0 1 0
Value
Content mean_val_decay
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 0 0 1 0 0 0
Value
Content mean_val_decay
SC_6.mean_val_decay: (bit offset: 0, bit width: 16) Exponential smoothing filter coefficient for computing mean of
acceleration magnitude
The field mean_val_decay has the following properties:
Property Value
Bitwidth 16
Sign unsigned
Scaling 65536.0
Default value 60104/65536
Range Min=0.0, Max=0.999984741210938
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 166 | 239
Description: Exponential smoothing filter coefficient for computing mean duration between steps
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 1 1 1 1 0 1
Value
Content mean_step_dur
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 0 1 0 1 0 0
Value
Content mean_step_dur
SC_7.mean_step_dur: (bit offset: 0, bit width: 16) Exponential smoothing filter coefficient for computing mean dura-
tion between steps
The field mean_step_dur has the following properties:
Property Value
Bitwidth 16
Sign unsigned
Scaling 65536.0
Default value 64852/65536
Range Min=0.0, Max=0.999984741210938
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 167 | 239
Description: Configuration of step buffer size, filter cascading and step counter increment factor
Bit 15 14 13 12 11 10 9 8
Read/Write R R R/W R/W R/W R/W R/W R/W
Reset
0 0 1 0 0 0 0 0
Value
Content reserved step_counter_increment
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 1 0 1 1 1
Value
Content step_counter_increment filter˙.. step_buffer_size
reserved:write 0x0.
SC_8.step_buffer_size: (bit offset: 0, bit width: 4) Minimum number of consecutive steps to be detected for
updating step count
The field step_buffer_size has the following properties:
Property Value
Bitwidth 4
Default value 7
Range Min=0, Max=15
Property Value
Bitwidth 1
Default value 1
Range Min=0, Max=1
SC_8.step_counter_increment: (bit offset: 5, bit width: 9) Scale factor for the step count to handle overcounting to
undercounting
The field step_counter_increment has the following properties:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 168 | 239
Property Value
Bitwidth 9
Scaling 256
Default value 1
Range Min=0, Max=1.99609375
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 169 | 239
Description: Configuration of minimum duration between two consecutive steps while walking and running
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 1 1 0 0
Value
Content peak_duration_min_running
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 1 1 0 0
Value
Content peak_duration_min_walking
SC_9.peak_duration_min_walking: (bit offset: 0, bit width: 8) Minimum duration between two consecutive steps
while walking
The field peak_duration_min_walking has the following properties:
Property Value
Bitwidth 8
Sign unsigned
Unit s
Scaling 50
Default value 0.24
Range Min=0.0, Max=5.10
SC_9.peak_duration_min_running: (bit offset: 8, bit width: 8) Minimum duration between two consecutive steps
while running
The field peak_duration_min_running has the following properties:
Property Value
Bitwidth 8
Sign unsigned
Unit s
Scaling 50
Default value 0.24
Range Min=0.0, Max=5.10
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 170 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 1 1 0 0 1 1
Value
Content activity_detection_thres
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 0 0 0 0 1 1
Value
Content activity_detection_thres activity_detection_factor
SC_10.activity_detection_factor: (bit offset: 0, bit width: 4) Ratio of acceleration magnitude variance during
running to walking
The field activity_detection_factor has the following properties:
Property Value
Bitwidth 4
Default value 3
Range Min=0, Max=15
SC_10.activity_detection_thres: (bit offset: 4, bit width: 12) Acceleration magnitude variance threshold for
activity classification
The field activity_detection_thres has the following properties:
Property Value
Bitwidth 12
Sign unsigned
Unit g
Scaling 2048.0
Default value 3900/2048
Range Min=0.0, Max=1.99951171875
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 171 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 0 1 0 0 0 0 0
Value
Content step_duration_window
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 0 0 1 0 1 0
Value
Content step_duration_max
SC_11.step_duration_max: (bit offset: 0, bit width: 8) Maximum duration between two consecutive step occurance
The field step_duration_max has the following properties:
Property Value
Bitwidth 8
Sign unsigned
Unit s
Scaling 50
Default value 1.48
Range Min=0.0, Max=5.10
SC_11.step_duration_window: (bit offset: 8, bit width: 8) Maximum duration since last step where next step shall
be detected to add missed step, if any
The field step_duration_window has the following properties:
Property Value
Bitwidth 8
Sign unsigned
Unit s
Scaling 50
Default value 3.2
Range Min=0.0, Max=5.10
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 172 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved device_context mcr_threshold
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content mcr_threshold mean_c... step_duration_thres step_d...
reserved:write 0x0.
SC_12.step_duration_pp_enabled: (bit offset: 0, bit width: 1) Enable or disable post-processing for duration be-
tween steps
The field step_duration_pp_enabled has the following properties:
Property Value
Bitwidth 1
Default value 0
Range Min=0, Max=1
SC_12.step_duration_thres: (bit offset: 1, bit width: 3) Scale factor for mean step duration for step processing
The field step_duration_thres has the following properties:
Property Value
Bitwidth 3
Sign unsigned
Default value 0
Range Min=0, Max=7
SC_12.mean_crossing_pp_enabled: (bit offset: 4, bit width: 1) Enable or disable post-processing of step based on
mean crossing
The field mean_crossing_pp_enabled has the following properties:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 173 | 239
Property Value
Bitwidth 1
Default value 0
Range Min=0, Max=1
SC_12.mcr_threshold: (bit offset: 5, bit width: 5) Threshold for number of mean crossings between two consecutive
steps
The field mcr_threshold has the following properties:
Property Value
Bitwidth 5
Sign unsigned
Default value 0
Range Min=0, Max=31
Value Description
0b00 (0x0) Context of the device as smart-phone
0b01 (0x1) Unused
0b10 (0x2) Context of the device as hearable
0b11 (0x3) Context of the device as wrist wearable
Property Value
Bitwidth 2
Sign unsigned
Default value 0
Range Min=0, Max=3
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 174 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 1 0 1 1 0 0
Value
Content hold_time theta
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 1 1 1 1 0 0
Value
Content theta blocking mode ud_en
ORIENT_1.ud_en: (bit offset: 0, bit width: 1) Selection of upside down orientation detection
Following values can be set to or read from the field ud_en:
Value Description
0b0 (0x0) Disable detection of upside-down position
0b1 (0x1) Enable detection of upside-down position
Property Value
Bitwidth 1
Default value 0
Range Min=0, Max=1
ORIENT_1.mode: (bit offset: 1, bit width: 2) Selection of mode for orientation spread in the detection plane
Following values can be set to or read from the field mode:
Value Description
0b00 (0x0) Symmetrical spread of area for portrait and landscape orientations
0b01 (0x1) Area of landscape is more compared to portrait orientation
0b10 (0x2) Area of portrait is more compared to landscape orientation
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 175 | 239
Property Value
Bitwidth 2
Default value 2
Range Min=0, Max=2
ORIENT_1.blocking: (bit offset: 3, bit width: 2) Blocking allows to prevent change of orientation during large move-
ment of device
Following values can be set to or read from the field blocking:
Value Description
0b00 (0x0) Blocking is disabled
0b01 (0x1) Block if acceleration on any axis is greater than 1.5g
Block if acceleration on any axis is greater than 1.5g or slope is greater than
0b10 (0x2)
half of slope_thres
Block if acceleration on any axis is greater than 1.5g or slope is greater than
0b11 (0x3)
slope_thres
Property Value
Bitwidth 2
Default value 3
Range Min=0, Max=3
ORIENT_1.theta: (bit offset: 5, bit width: 6) Maximum allowed tilt angle for device to be in flat state The field theta
has the following properties:
Property Value
Bitwidth 6
Sign unsigned
Unit degrees
Scaling 64.0
Default value 37.9764794968186
Range Min=0, Max=44.77442373390876
Interpretation (tan(x))^2
ORIENT_1.hold_time: (bit offset: 11, bit width: 5) Minimum duration the device shall be in new orientation for change
detection The field hold_time has the following properties:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 176 | 239
Property Value
Bitwidth 5
Sign unsigned
Unit s
Scaling 50
Default value 0.1
Range Min=0.0, Max=0.62
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 177 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 1 0 0 0 0 0
Value
Content hysteresis
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 0 0 1 1 0 1
Value
Content slope_thres
ORIENT_2.slope_thres: (bit offset: 0, bit width: 8) Minimum slope between consecutive acceleration samples to
prevent the change of orientation during large movement The field slope_thres has the following properties:
Property Value
Bitwidth 8
Sign unsigned
Unit g
Scaling 512
Default value 205/512
Range Min=0.0, Max=0.498046875
ORIENT_2.hysteresis: (bit offset: 8, bit width: 8) Hysteresis of acceleration for orientation change detection The
field hysteresis has the following properties:
Property Value
Bitwidth 8
Sign unsigned
Unit g
Scaling 512
Default value 32/512
Range Min=0.0, Max=0.498046875
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 178 | 239
Description: Selection of the tap detection axis, gesture reporting approach, detection mode
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 1 1 0 1 1 0
Value
Content mode max_peaks_for_tap wait_f... axis_sel
reserved:write 0x0.
TAP_1.axis_sel: (bit offset: 0, bit width: 2) Dominant sensing axis of accelerometer along which tap gesture is
performed
Following values can be set to or read from the field axis_sel:
Value Description
0b00 (0x0) Use x-axis for tap detection
0b01 (0x1) Use y-axis for tap detection
0b10 (0x2) Use z-axis for tap detection
Property Value
Bitwidth 2
Default value 2
Range Min=0, Max=2
TAP_1.wait_for_timeout: (bit offset: 2, bit width: 1) Perform gesture confirmation with wait time set by
max_gesture_dur
Following values can be set to or read from the field wait_for_timeout:
Value Description
0b0 (0x0) Report the gesture when detected
0b1 (0x1) Report the gesture after confirmation
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 179 | 239
Property Value
Bitwidth 1
Default value 1
Range Min=0, Max=1
TAP_1.max_peaks_for_tap: (bit offset: 3, bit width: 3) Maximum number of threshold crossing expected around a
tap The field max_peaks_for_tap has the following properties:
Property Value
Bitwidth 3
Default value 6
Range Min=0, Max=7
TAP_1.mode: (bit offset: 6, bit width: 2) Mode for detection of tap gesture. Default value = Normal. In stable position
of device, to improve detection accuracy, sensitive mode can be used. Under noisy scenarios, the false detection
can be suppressed with Robust mode
Following values can be set to or read from the field mode:
Value Description
0b00 (0x0) Sensitive detection mode
0b01 (0x1) Normal detection mode
0b10 (0x2) Robust detection mode
Property Value
Bitwidth 2
Default value 1
Range Min=0, Max=2
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 180 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 0 0 0 0 0 0
Value
Content max_gesture_dur tap_peak_thres
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 1 0 1 1 0 1
Value
Content tap_peak_thres
TAP_2.tap_peak_thres: (bit offset: 0, bit width: 10) Minimum threshold for peak resulting from the tap The field
tap_peak_thres has the following properties:
Property Value
Bitwidth 10
Sign unsigned
Unit g
Scaling 512
Default value 45/512
Range Min=0.0, Max=1.998046875
TAP_2.max_gesture_dur: (bit offset: 10, bit width: 6) Maximum duration from first tap within the second and/or third
tap is expected to happen The field max_gesture_dur has the following properties:
Property Value
Bitwidth 6
Sign unsigned
Unit s
Scaling 25
Default value 0.64
Range Min=0.0, Max=2.52
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 181 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 1 0 1 0 0 0
Value
Content quite_time_after_gesture min_quite_dur_between_taps
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 1 0 0 1 0 0
Value
Content tap_shock_settling_dur max_dur_between_peaks
TAP_3.max_dur_between_peaks: (bit offset: 0, bit width: 4) Maximum duration between positive and negative peaks
to tap The field max_dur_between_peaks has the following properties:
Property Value
Bitwidth 4
Sign unsigned
Unit s
Scaling 200
Default value 0.02
Range Min=0.0, Max=0.075
TAP_3.tap_shock_settling_dur: (bit offset: 4, bit width: 4) Maximum duration for which tap impact is observed The
field tap_shock_settling_dur has the following properties:
Property Value
Bitwidth 4
Sign unsigned
Unit s
Scaling 200
Default value 0.03
Range Min=0.0, Max=0.075
TAP_3.min_quite_dur_between_taps: (bit offset: 8, bit width: 4) Mimimum duration between two consecutive tap
impact The field min_quite_dur_between_taps has the following properties:
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 182 | 239
Property Value
Bitwidth 4
Sign unsigned
Unit s
Scaling 200
Default value 0.04
Range Min=0.0, Max=0.075
TAP_3.quite_time_after_gesture: (bit offset: 12, bit width: 4) Minimum quite duration between two gestures
The field quite_time_after_gesture has the following properties:
Property Value
Bitwidth 4
Sign unsigned
Unit s
Scaling 25
Default value 0.24
Range Min=0.0, Max=0.6
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 183 | 239
Description: Configuration for averaging duration of reference vector and minimum tilt angle
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 0 1 0 0 1 0
Value
Content min_tilt_angle
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 1 0 0 1 0 0
Value
Content segment_size
TILT_1.segment_size: (bit offset: 0, bit width: 8) Duration for which the acceleration vector is averaged to be
reference vector
The field segment_size has the following properties:
Property Value
Bitwidth 8
Sign unsigned
Unit s
Scaling 50
Default value 2.0
Range Min=0.0, Max=5.10
TILT_1.min_tilt_angle: (bit offset: 8, bit width: 8) Minimum angle by which the device shall be tilted for event
detection
The field min_tilt_angle has the following properties:
Property Value
Bitwidth 8
Sign unsigned
Unit degrees
Scaling 256
Default value 35.0
Range Min=0.0, Max=90.0
Interpretation cos(x)
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 184 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
1 1 1 1 0 0 0 0
Value
Content beta_acc_mean
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 1 1 0 1 0 0 1
Value
Content beta_acc_mean
TILT_2.beta_acc_mean: (bit offset: 0, bit width: 16) Exponential smoothing coefficient for computing low-pass mean
of acceleration vector
The field beta_acc_mean has the following properties:
Property Value
Bitwidth 16
Sign unsigned
Scaling 65536
Default value 2.0
Range Min=0.0, Max=5.1
Interpretation exp(2*pi/(50*x))
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 185 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content alt_conf_user_switch_src_select alt_conf_alt_switch_src_select
reserved:write 0x0.
ALT_CONFIG_CHG.alt_conf_alt_switch_src_select: (bit offset: 0, bit width: 4) Selection of int (none = 0,
A..I) for switch to alternate configuration mode for both accel and gyro. Invalid values will be ignored and
the last valid configuration will remain. Note: Based on the selection in ’alt_conf_alt_switch_src_select’ and
’alt_conf_user_switch_src_select’ the state transition may happen immediately into the selected mode according
to the events detected by the feature engine.
ALT_CONFIG_CHG.alt_conf_user_switch_src_select: (bit offset: 4, bit width: 4) Selection of interrupt (none
= 0, A..I) for switch to user configuration mode for both accel and gyro. Invalid values will be ignored and
the last valid configuration will remain. Note: Based on the selection in ’alt_conf_alt_switch_src_select’ and
’alt_conf_user_switch_src_select’ the state transition may happen immediately into the selected mode according
to the events detected by the feature engine.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 186 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved gyr_dr... gyr_se... gyr_se... gyr_se... acc_se... acc_se... acc_se...
reserved:write 0x0.
ST_RESULT.acc_sens_x_ok: (bit offset: 0, bit width: 1) Self-test of accelerometer X-axis
ST_RESULT.acc_sens_y_ok: (bit offset: 1, bit width: 1) Self-test of accelerometer Y-axis
ST_RESULT.acc_sens_z_ok: (bit offset: 2, bit width: 1) Self-test of accelerometer Z-axis
ST_RESULT.gyr_sens_x_ok: (bit offset: 3, bit width: 1) Self-test of gyroscope X-axis
ST_RESULT.gyr_sens_y_ok: (bit offset: 4, bit width: 1) Self-test of gyroscope Y-axis
ST_RESULT.gyr_sens_z_ok: (bit offset: 5, bit width: 1) Self-test of gyroscope Z-axis
ST_RESULT.gyr_drive_ok: (bit offset: 6, bit width: 1) Self-test of gyroscope drive
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 187 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R/W R/W
Reset
0 0 0 0 0 0 1 1
Value
Content reserved gyr_st... acc_st...
reserved:write 0x0.
ST_SELECT.acc_st_en: (bit offset: 0, bit width: 1) Enable self-test of accelerometer
ST_SELECT.gyr_st_en: (bit offset: 1, bit width: 1) Enable self-test of gyroscope
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 188 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R/W R/W R/W
Reset
0 0 0 0 0 1 1 1
Value
Content reserved apply_... offs_en sens_en
reserved:write 0x0.
GYR_SC_SELECT.sens_en: (bit offset: 0, bit width: 1) Enable gyroscope self-calibration of sensitivity
GYR_SC_SELECT.offs_en: (bit offset: 1, bit width: 1) Enable gyroscope self-calibration of offset
GYR_SC_SELECT.apply_corr: (bit offset: 2, bit width: 1) Apply correction of offset and/or sensitivity error calculated
by gyroscope self-calibration feature
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 189 | 239
Description: Self-calibration (gyroscope only) and self-test (gyroscope only) configuration and result register.
Bit 15 14 13 12 11 10 9 8
Read/Write R R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 1 0 1 1
Value
Content reserved gyr_sc_st_conf_res offs_filtercoeff sens_filtercoeff
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R R R R R R
Reset
0 1 0 0 0 0 0 0
Value
Content sens_filtercoeff reserved
reserved:write 0x0.
GYR_SC_ST_CONF.sens_filtercoeff: (bit offset: 6, bit width: 3) Filter coefficient of low pass filter used during
gyroscope sensitivity self-calibration and self-test. Range = 3 to 6. Number of gyroscope samples (@1600Hz)
averaged = 2*(2^(sens_filtercoeff+2)).
GYR_SC_ST_CONF.offs_filtercoeff: (bit offset: 9, bit width: 4) Filter coefficient of low pass filter used dur-
ing gyroscope offset self-calibration. Range = 3 to 11. Number of gyroscope samples (@1600Hz) averaged =
2^(offs_filtercoeff+2).
GYR_SC_ST_CONF.gyr_sc_st_conf_res: (bit offset: 13, bit width: 2) res
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 190 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 191 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 192 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 193 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 194 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 195 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 196 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 197 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 198 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 199 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 200 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 201 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content value
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 202 | 239
Description: res
Bit 15 14 13 12 11 10 9 8
Read/Write R R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved ref_z ref_y
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content ref_y ref_x
reserved:write 0x0.
SC_ST_VALUE12.ref_x: (bit offset: 0, bit width: 5) Reference value for X-axis
SC_ST_VALUE12.ref_y: (bit offset: 5, bit width: 5) Reference value for Y-axis
SC_ST_VALUE12.ref_z: (bit offset: 10, bit width: 5) Reference value for Z-axis
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 203 | 239
Description: Motion detection threshold common for both gyroscope self-calibration and gyroscope self-test
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved slope
reserved:write 0x0.
GYR_MOT_DET.slope: (bit offset: 0, bit width: 5) Maximum acceptable acceleration change between two accelerom-
eter samples. Range = 0 to 31. Value = 10mg + slope*5mg.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 204 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R R R R R R R R
Reset
0 0 0 0 0 0 0 0
Value
Content reserved
Bit 7 6 5 4 3 2 1 0
Read/Write R R R R R R R R/W
Reset
0 0 0 0 0 0 0 0
Value
Content reserved i3c_tc...
reserved:write 0x0.
I3C_TC.i3c_tc_res: (bit offset: 0, bit width: 1) reserved
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 205 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_x
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_x
SYNC_ACC_X.acc_x: (bit offset: 0, bit width: 16) Synchronized acceleration sample, x channel in the default axes
configuration
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 206 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_y
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_y
SYNC_ACC_Y.acc_y: (bit offset: 0, bit width: 16) Synchronized acceleration sample, y channel in the default axes
configuration
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 207 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_z
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content acc_z
SYNC_ACC_Z.acc_z: (bit offset: 0, bit width: 16) Synchronized acceleration sample, z channel in the default axes
configuration
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 208 | 239
Description: Synchronized angular rate sample, x channel in the default axes configuration
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_x
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_x
SYNC_GYR_X.gyr_x: (bit offset: 0, bit width: 16) Synchronized angular rate sample, x channel in the default axes
configuration
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 209 | 239
Description: Synchronized angular rate sample, y channel in the default axes configuration
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_y
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_y
SYNC_GYR_Y.gyr_y: (bit offset: 0, bit width: 16) Synchronized angular rate sample, y channel in the default axes
configuration
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 210 | 239
Description: Synchronized angular rate sample, z channel in the default axes configuration
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_z
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content gyr_z
SYNC_GYR_Z.gyr_z: (bit offset: 0, bit width: 16) Synchronized angular rate sample, z channel in the default axes
configuration
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 211 | 239
Description: description
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content temp
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content temp
SYNC_TEMP.temp: (bit offset: 0, bit width: 16) Synchronized temperature sample, only available after using
bmi3x0_configure_enhanced_flexibility of sensor driver API
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 212 | 239
Bit 15 14 13 12 11 10 9 8
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content time_lsw
Bit 7 6 5 4 3 2 1 0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Reset
0 0 0 0 0 0 0 0
Value
Content time_lsw
SYNC_TIME.time_lsw: (bit offset: 0, bit width: 16) Synchronized time stamp, least significant word
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 213 | 239
7 Digital Interfaces
The device provides one serial interface to the host. It acts as a slave to the host. The serial interface is configurable to
the interface protocols SPI, I3C and I²C.
By default, the device operates in I²C mode. The interface of the device can be configured to operate in a SPI 4-wire
configuration as well. It can also be re-configured by software to work in 3-wire mode instead of 4-wire mode. All
three possible digital interfaces share partly the same pins. The mapping for the primary interface of device is given in
Table 38.
In Table 39, the electrical specifications of the interface pins are given.
The protocol is automatically selected based on the behavior of the signal on the chip select pin CSB after power-up.
After soft reset or power-up, the primary interface of the device is in I²C mode. If the CSB is connected to VDDIO during
power-up and not changed, the primary interface works in I²C or I3C mode. The possible switches among the modes on
the digital interface are summarized in Table 40.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 214 | 239
For using I²C and I3C, it is recommended to hard-wire the CSB line to VDDIO. Since power-on-reset is only executed
when both VDD and VDDIO are stable, there is no risk of an incorrect protocol detection due to the power-up sequence.
If a rising edge is detected on CSB after power-up, the device interface switches after 200 µs to SPI until a soft reset or
until the next power-up occurs. Therefore, a rising edge on CSB is needed before starting the SPI communication. It
is recommended to perform a single read from a register, e.g. from CHIP_ID.chip_id, before the actual data exchange
with the device. Note: the content of the retrieved data will be invalid.
The switch from I²C to I3C follows the MIPI I3CSM specification. Upon power up, the chip stays in I²C mode and once
the dedicated Broadcast I3C Address (7’h7E) is seen on the bus, the chip will disable its I²C feature and the interface
stays in the I3C mode until a soft reset or the next power-up occurs.
The maximum ratings valid for all serial protocols supported by the device are given in Table 41. For SPI, the additional
specifications are given in the corresponding sub-section 7.2.3.
The dedicated timing specifications for SPI of the device in addition to Table 41 are stated in Table 42. Figure 29 shows
the definition of the SPI timings.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 215 | 239
sck
sdi A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 D15 D14 D13 D12 D11 D10 D9 D8
sdo
The basic read operation waveform for 4-wire configuration is depicted in Figure 31. Please note, that the first
byte received from the device via the SDO line corresponds to a dummy byte and the 2nd byte corresponds to the
value read out of the specified register address. That means, for a basic read operation, at least two bytes have
to be read and the first byte has to be dropped and all following bytes can be interpreted.
csb
sck
sdi A6 A5 A4 A3 A2 A1 A0
sdo D7 D6 D5 D4 D3 D2 D1 D0 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 D15 D14 D13 D12 D11 D10 D9 D8
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 216 | 239
csb
sck
sdx A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 D15 D14 D13 D12 D11 D10 D9 D8
csb
sck
sdx A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 D15 D14 D13 D12 D11 D10 D9 D8
I3C single data rate (SDR) mode with up to 12.5 MHz data rate
I²C compatibility
In-Band Interrupt (IBI)
Timing control asynchronous 0 mode
Timing control synchronous mode
The I3C bus uses the pin SCX as SCL for serial clock and SDX as SDA for serial data input and output for the signal
lines. Both lines are connected to VDDIO externally via pull-up resistors so that they are pulled high when the bus is
free.
The I3C interface of the device is compatible with the I3CSM Improved Inter Integrated Circuit Version 1.0 from 23 De-
cember 2016, and the Frequently Asked Questions (FAQ) for MIPI I3CSM Version 1.0 from 08 December 2017 available
at http://www.mipi.org/specifications/i3c-sensor-specification.
The protocol used on the serial interface for writing data to the device consists of
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 217 | 239
The protocol used on the serial interface for reading data from the device consists of
The timing specification for I3C can be retrieved from the I3C specification refered to above.
Address Range The master can assign Dynamic Addresses from an allowed set of values to the device. In addition to
the I3C Slave Address Restrictions defined in Table 9 in the section 5.1.2.2.5 of the I3CSM specification “Improved Inter
Integrated Circuit Version 1.0 – 23 December 2016”, the address 7’h7D is reserved for this device as well.
Bus Configuration The I3C protocol uses several identifiers and codes to handle communication between several
masters and slaves. For communication with this device, there are defined
Bit 12 is controlled by the level on the SDO pin, that is GND for 0b0 and VDDIO for 0b1
Bit 13 to 15 are the so-called instance ID and defined as “0b000”.
10
11
of
9
8
7
6
5
4
3
2
1
0
word
De-
Bosch Instance
IDT
Bit
0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
value
Hex
0 7 7 0 1 0 4 3 0 or 1 0 0 0
value
The value of the Device Characteristics Register (DCR) is fixed to 0xEF. The value of the Bus Characteristics Register
(BCR) is fixed to 0x26. This has the following meanings:
Bit 5 of the BCR is set to 0b0, that is the device supports solely SDR.
Bit 2 of the BCR is set to 0b1, that means that an accepted IBI is followed by the so-called mandatory byte. For
details on the mandatory byte, please refere to the IBI description in the paragraph 7.2.4.1.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 218 | 239
The timing requirement is defined in Table 74 “I3C Open Drain Timing Parameters” and Table 75 “I3C Push-Pull Timing
Parameters for SDR and HDR-DDR Modes” in the I3CSM specification “Improved Inter Integrated Circuit Version 1.0 –
23 December 2016”.
The SDR read and write access follows the I3C specification. In the following examples are given for write operations
with Tables. 44 and 45 for single-word and multi-word writes, respectively, and for read operations with Tables. 46 and
47 for single-word and multi-word reads. For the diagrams/tables, the following color coding is applied:
transfer from the host to the device is indicated by green coloured normal text
transfer from the device to the host is indicated by orange coloured text in italics
acknowledgement from the device to the host:
with hand-off is indicated by orange coloured text in italics
without hand-off is indicated by brown coloured text in italics
drives from either host or device are indicated by magenta bold text.
In the diagrams, these abbreviations are used:
S Start
Sr Repeated start
P Stop
ACK Acknowledge
T Transition
For the examples of reading data from the device in Tables. 46 and 47, the stop (P) can be removed and replaced by a
repeated start (Sr).
... Register N-1 Data [7:0] Register N-1 Data [15:8] Register N Data [7:0] Register N Data [15:8]
... Data N-1 low word T Data N-1 low word T Data N low word T Data N high word T P/Sr
Broadcast Address Specified Slave DAA dummy byte dummy byte ...
S 7’h7E+’0’ ACK Sr 7’hDAA+’0’ ACK 0x00 T 0x00 T ...
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 219 | 239
Broadcast Address Specified Slave DAA dummy byte dummy byte ...
S 7’h7E+’0’ ACK Sr 7’hDAA+’0’ ACK 0x00 T 0x00 T ...
In-Band Interrupt The device supports the IBI feature as defined in the section 5.1.6.2 of the I3CSM specification
“Improved Inter Integrated Circuit Version 1.0 – 23 December 2016”.
Upon power up, the feature is disabled by default. The IBI feature can be enabled by the Common Command Code
(CCC) ENEC with the ENINT bit set to 0b1, and can be disabled by the CCC DISEC with the DISINT bit set to 0b1. Please
note, that prior to sending the CCC RSTDAA, sending of an IBI by the device has to be disabled by sending the direct
CCC DISEC to the device.
If no START is forthcoming within the Bus Available Condition, then the chip will actively pull down the SDA line to issue
a START. In case there is an IBI event, the device will emit its address into the arbitrated address header following
a START (but not following a repeated START). The payload of the device specific IBI mandatory byte is defined in
Table 48.
List of Common Command Codes Table 49 lists the Common Command Codes (CCC) supported by the device.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 220 | 239
Master Clock Stalling The I3C specification defines master clock stalling. This allows the master to stall the clock for
at most 100 µs. After this stall time, the slave may release the bus. The device releases the bus after 100 µs if a sensor
is enabled in the registers ACC_CONF or GYR_CONF. In all other cases, the device does not automatically release the bus.
In these cases, the watchdog intended for the I²C protocol may be used to detect a master hang situation. If the device
drives the SDA line for more than 1.25 or 40 ms, the device resets its interface, if the watchdog is enabled in IO_I2C_IF.
watchdog_timer_en. For details on the watchdog, see Section 7.2.4.2.
The I²C interface of the device is compatible with the legacy support of the I²C of the standard “I3CSM Improved Inter
Integrated Circuit Version 1.0” from 23 December 2016, and the “Frequently Asked Questions (FAQ) for MIPI I3CSM
Version 1.0” from 08 December 2017 available at http://www.mipi.org/specifications/i3c-sensor-specificati
on. The timing specification and diagrams for I²C can be retrieved from this specification.
The I3C timing requirements table and I3C Legacy Mode Timing diagram on page in Table 50 and Fig 34 on the next
page are Copyright 2016 by MIPI Alliance, Inc. and reprinted with their permission10 .
7 These features are optional for the slave, see section Section 5.1.9.3.5 "Set/Get Max Write Length" in the MIPI I3CSM specification "Improved Inter
Integrated Circuit Version 1.0 - 23 December 2016".
8 ENTHDR0 is recognized, but the device does not support HDR operations.
9 Prior to sending the CCC RSTDAA, sending of an IBI by the device has to be disabled by sending the direct CCC DISEC to the device.
10 This material may not be disclosed, reproduced or used for any purpose other than as needed to support the use of the products of Bosch Sensortec
GmbH. MIPI provides all such material on an AS IS basis, without warranty of any kind.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 222 | 239
Following the compatible mode defined in the I3C specification, the device supports fast mode (400 kHz fm) and fast
mode plus (1 MHz Fm+). Only the 7-bit address mode is supported.
The default I²C legacy address of the device is 7h’0b1101000 (0x68). It is used if the SDO pin is pulled to ’GND’. The
alternative address 7h’0b1101001 (0x69) is selected by pulling the SDO pin to ’VDDIO’.
The I²C legacy protocol works as follows:
START: Data transmission on the bus begins with a high to low transition on the SDA line while SCL is held high
(start condition (S) indicated by I²C bus master). Once the START signal is transferred by the master, the bus is
considered busy.
STOP: Each data transfer should be terminated by a Stop signal (P) generated by master. The STOP condition is a low
to high transition on SDA line while SCL is held high.
ACKNOWLEDGE: Each byte of data transferred must be acknowledged. It is indicated by an acknowledge bit sent by
the receiver. The transmitter must release the SDA line (no pull down) during the acknowledge pulse while the
receiver must then pull the SDA line low so that it remains stable low during the high period of the acknowledge
clock cycle.
A START immediately followed by a STOP (without SCL toggling from ’VDDIO’ to ’GND’) is not supported. If such a
combination occurs, the STOP is not recognized by the device. In the following diagrams/tables, these abbreviations
are used:
S Start
P Stop
ACK Acknowledge
RW Read / Write
In the diagrams/tables, a transfer from the host to the device is indicated by green coloured normal text while transfer
from the device to the host is indicated by orange coloured text in italics.
I²C write access I²C write access can be used to write a data word in one sequence.
The sequence begins with start condition generated by the master, followed by 7 bits slave address and a write
bit (RW = 0). The slave sends an acknowledge bit (ACK = 0) and releases the bus. Then the master sends the
one byte register address. The slave again acknowledges the transmission and waits for the two times 8 bits of
data which shall be written to the specified register address. After the slave has acknowledged the data bytes, the
master generates a stop signal and terminates the writing protocol. An example of an I²C write access is stated in
Table 51.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 223 | 239
Multi-word writes are supported without restriction on normal registers with auto-increment as well as on special
registers with address trap. An example of an I²C multi-word write access is stated in Table 52.
I²C read access I²C read access can be used to read one or multiple data bytes or words in one sequence.
A read sequence consists of a one-byte I²C write phase followed by the I²C read phase to read a single byte,
a single 16bit word of two bytes or multiple 16bit words. The two parts of the transmission must be separated
by a repeated start condition (S). The I²C write phase addresses the slave and sends the register address to
be read. After slave acknowledges the transmission, the master generates again a start condition and sends
the slave address together with a read bit (RW = 1). Then, the master releases the bus and waits for the data
bytes to be read out from slave. After each data byte the master has to generate an acknowledge bit (ACK = 0)
to enable further data transfer. A non-ACK by the master (NACKM) (ACK = 1) from the master stops the data
being transferred from the slave. The slave releases the bus so that the master can generate a STOP condition
and terminate the transmission. The register address is automatically incremented and, therefore, more than one
word can be sequentially read out. Once a new data read transmission starts, the start address will be set to the
register address specified since the latest I²C write command. By default the start address is set at 0x00. In this
way repetitive reads of words from the same starting address are possible.
An example of an I²C single-word read access is provided in Table 53.
Start Slave Address RW ACK dummy byte ACK dummy byte ACK
¬
S 001100 0 1 0 0000000 0 0 0 000000 0 0
A further example of an I²C single byte read access is provided in Table 54.
Start Slave Address RW ACK dummy byte ACK dummy byte ACK
¬
S 001100 0 1 0 0000000 0 0 0 0000000 0
In order to prevent the I²C slave of the device to lock-up the I²C bus, a watchdog timer (WDT) is implemented.
The WDT observes internal I²C signals and resets the I²C interface if the bus is locked-up by the BMI323. The
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 224 | 239
activity and the timer period of the WDT can be configured through the bits IO_I2C_IF.watchdog_timer_en and
IO_I2C_IF.watchdog_timer_sel.
An example of an I²C read access for multiple words is given in Table. 55.
Start Slave Address RW ACK dummy byte ACK dummy byte ACK
¬
S 001100 0 1 0 0000000 0 0 0 000000 0 0
... Register N Data [7:0] ACK Register N Data [15:8] ACK Stop
... x x x x x x x x 0 x xxxxxx x 0 P
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 225 | 239
The Figures 36 and 37 shows the pin-out of the device from top and bottom view, respectively.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 226 | 239
The Table 56 details the pin out and the connections of the individual pins of the device.
It is recommended to use 100nF capacitors for decoupling at pin 5 (VDDIO) and pin 8 (VDD).
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 227 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 228 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 229 | 239
9 Package
If the sensor is accelerated and/or rotated in the indicated directions, the corresponding channels of the device will
deliver a positive acceleration and/or yaw rate signal (dynamic acceleration). If the sensor is at rest without any rotation
and the force of gravity is acting contrary to the indicated directions, the output of the corresponding acceleration channel
will be positive and the corresponding gyroscope channel will be “zero” (static acceleration).
Example: if the sensor is at rest or at uniform motion in a gravity field according to the figure given below, the output
signals are:
◦
±0g for the ax accelerometer channel and ±0 /s for the Ωx gyroscope channel
◦
±0g for the ay accelerometer channel and ±0 /s for the Ωy gyroscope channel
◦
+1g for the az accelerometer channel and ±0 /s for the Ωz gyroscope channel
Figure 42 : Definition of the sensing axes orientation for the raw device
For reference, Figure 43 below shows the smartphone device orientation with an integrated device.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 230 | 239
Sensor Orientation
(gravity vector ↓)
Table 57 lists all corresponding output signals on X, Y, and Z while the sensor is at rest or at uniform motion in a gravity
field under assumption of a ±8g range setting, a 16 bit resolution, and a top down gravity vector as shown above.
If the sensor axes coordinates do not match the axes coordinates of the platform, then a remapping of the axis is
required. For the accelerometer and gyroscope data, the axes remapping may be done by the sensor internal axis
remapping feature, see Section 5.11, or may be implemented in the driver of the application processor. To ensure
expected function of the advanced features according to the desired coordinate system, the remapping of the axes as
described in Section 5.11.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 231 | 239
9.2 Dimensions
Figure 44 depicts the view from the top and the side of the package. The bottom view of the package is shown in
Figure 45.
Please note, that the Pin 1 marker must not be electrically connected.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 232 | 239
Figure 46 provides the recommendation for the landing pads to ensure maximum stability of the solder connections. The
Pin 1 marker must not be electrically connected. Vias underneath the package have to be avoided.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 233 | 239
9.4 Marking
Mass Production
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 234 | 239
The moisture sensitivity level of the device corresponds to JEDEC Level 1, see also
IPC/JEDEC J-STD-020E “Joint Industry Standard: Moisture/Reflow Sensitivity Classification for non-hermetic Solid
State Surface Mount Devices”
IPC/JEDEC J-STD-033D “Joint Industry Standard: Handling, Packing, Shipping and Use of Moisture/Reflow Sensi-
tive Surface Mount Devices”
Both documents are available on the JEDEC website https://www.jedec.org/.
The sensor fulfils the lead-free soldering requirements of the above-mentioned IPC/JEDEC standard, that means reflow
soldering with a peak temperature Tp up to 260◦ C.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 235 | 239
Micromechanical sensors are designed to sense acceleration with high accuracy even at low amplitudes and contain
highly sensitive structures inside the sensor element. The MEMS sensor can tolerate mechanical shocks up to several
thousand g. However, these limits might be exceeded in conditions with extreme shock loads such as e.g. hammer blow
on or next to the sensor, dropping of the sensor onto hard surfaces etc.
We recommend to avoid accelerations beyond the specified limits during transport, handling and mounting of the sensors
in a defined and qualified installation process.
This device has built-in protections against high electrostatic discharges or electric fields (e.g. 2kV HBM); however, anti-
static precautions should be taken as for any other CMOS component. Unless otherwise specified, proper operation can
only occur when all terminal voltages are kept within the supply voltage range. Unused inputs must always be tied to a
defined logic voltage level.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 236 | 239
The BMI323 meets the requirements of the EC restriction of hazardous substances (RoHS) directive, see also:
RoHS–Directive 2011/65/EU and its amendments, including the amendment 2015/863/EU, on the restriction of the use
of certain hazardous substances in electrical and electronic equipment.
Halogen content The device is halogen-free. For more details on the corresponding analysis results please contact
your Bosch Sensortec representative.
Internal package structure Within the scope of Bosch Sensortec’s ambition to improve its products and secure the
mass product supply, Bosch Sensortec qualifies additional sources (e.g. 2nd source) for the package of the device.
While Bosch Sensortec took care that all of the package parameters as described above are 100% identical for all
sources, there can be differences in the chemical content and the internal structure between the different package
sources.
However, as secured by the extensive product qualification process of Bosch Sensortec, this has no impact to the usage
or to the quality of the device.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 237 | 239
10 Legal Disclaimer
i. Engineering samples
Engineering Samples are marked with an asterisk (*), (E) or (e). Samples may vary from the valid technical specifications
of the product series contained in this data sheet. They are therefore not intended or fit for resale to third parties or for
use in end products. Their sole purpose is internal client testing. The testing of an engineering sample may in no way
replace the testing of a product series. Bosch Sensortec assumes no liability for the use of engineering samples. The
Purchaser shall indemnify Bosch Sensortec from all claims arising from the use of engineering samples.
Bosch Sensortec products are developed for the consumer goods industry. They may only be used within the parameters
of this product data sheet. They are not fit for use in life-sustaining or safety-critical systems. Safety-critical systems are
those for which a malfunction is expected to lead to bodily harm, death or severe property damage. In addition, they
shall not be used directly or indirectly for military purposes (including but not limited to nuclear, chemical or biological
proliferation of weapons or development of missile technology), nuclear power, deep sea or space applications (including
but not limited to satellite technology).
Bosch Sensortec products are released on the basis of the legal and normative requirements relevant to the Bosch
Sensortec product for use in the following geographical target market: BE, BG, DK, DE, EE, FI, FR, GR, IE, IT, HR, LV,
LT, LU, MT, NL, AT, PL, PT, RO, SE, SK, SI, ES, CZ, HU, CY, US, CN, JP, KR, TW. If you need further information or
have further requirements, please contact your local sales contact.
The resale and/or use of Bosch Sensortec products are at the purchaser’s own risk and his own responsibility. The
examination of fitness for the intended use is the sole responsibility of the purchaser.
The purchaser shall indemnify Bosch Sensortec from all third party claims arising from any product use not covered by
the parameters of this product data sheet or not approved by Bosch Sensortec and reimburse Bosch Sensortec for all
costs in connection with such claims.
The purchaser accepts the responsibility to monitor the market for the purchased products, particularly with regard to
product safety, and to inform Bosch Sensortec without delay of all safety-critical incidents.
With respect to any examples or hints given herein, any typical values stated herein and/or any information regarding the
application of the device, Bosch Sensortec hereby disclaims any and all warranties and liabilities of any kind, including
without limitation warranties of non-infringement of intellectual property rights or copyrights of any third party. The
information given in this document shall in no event be regarded as a guarantee of conditions or characteristics. They
are provided for illustrative purposes only and no evaluation regarding infringement of intellectual property rights or
copyrights or regarding functionality, performance or error has been made.
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec | BMI323 Datasheet 238 | 239
© Bosch Sensortec GmbH 2023 | All rights reserved, also regarding any disposal, exploitation, reproduction, editing, distribution, as well Document number: BST-BMI323-DS000-09
as in the event of applications for industrial property rights
Bosch Sensortec GmbH
Gerhard-Kindler-Strasse 9
72770 Reutlingen / Germany
contact@bosch-sensortec.com
www.bosch-sensortec.com
Modifications reserved
Document number: BST-BMI323-DS000-09