Introduction
The Fermion BMI323+BMM350 Low-Power 9DOF IMU Sensor combines a Bosch BMI323 accelerometer and gyroscope with a Bosch BMM350 magnetometer for compact, heading-aware motion sensing. It provides acceleration, angular velocity and magnetic field data for embedded robots, wearable devices, electronic compass prototypes and sensor evaluation. High-rate motion sampling, magnetometer output rates up to 400 Hz and a 0.37 mA low-power mode support performance and power optimization in integrated products. Arduino library support simplifies evaluation with Arduino-compatible boards, including ESP32.
Choose Fermion for compact product integration and direct access to the individual sensors. Choose the Gravity 9DOF version when the project needs I2C/UART, wider voltage compatibility, one integrated library, easier wiring or GUI visualization.
6400 Hz BMI323 Motion Data
BMI323 combines a 16-bit 3-axis accelerometer and gyroscope with acceleration ranges from ±2 g to ±16 g, angular-rate ranges from ±125 °/s to ±2000 °/s and output rates up to 6400 Hz. A 2048-byte FIFO buffers high-rate data, while hardware step, tap, tilt, free-fall and activity functions support event-driven motion applications.
400 Hz BMM350 Magnetic Sensing
BMM350 adds 3-axis magnetic field measurement with a ±2000 μT range, approximately 0.1 μT resolution and selectable output rates up to 400 Hz. Its specified zero-field offset drift is ±2 μT from -40 °C to +85 °C after calibration, supporting custom heading and electronic-compass algorithms when correctly installed and calibrated.
0.37 mA Low-Power 9DOF Operation
The complete IMU module draws 0.92 mA under the listed operating condition and 0.37 mA in Low Power mode. Sleep, Low Power, Normal and High Performance modes let developers adjust performance for battery-powered heading, motion and wearable applications.
Compact 24 × 19 mm Fermion Board
BMI323 and BMM350 are integrated on a 24 × 19 mm PCB with an SH1.0-5P connector and 2.54 mm pin holes. Each sensor offers two I2C address choices, and Arduino/Python libraries expose the original sensor data for calibration, fusion and embedded product development.
Features
Designed based on Bosch BMI323 6-axis IMU + BMM350 3-axis magnetometer for 9-axis sensing
High-accuracy, high-stability output with built-in low-noise architecture and on-chip temperature compensation
Built-in hardware motion algorithms including step counting, tap detection, tilt sensing, free-fall, and activity recognition
Integrated 2048-byte FIFO buffer ensures high-speed data transmission without loss
Magnetometer employs 3rd-generation TMR technology with enhanced interference immunity and fast recovery
Supports multiple operating modes including Sleep, Low Power, Normal, and High Performance – Low Power mode consumes only 0.37 mA
Onboard I²C interface supports both soldered and plug-in connection methods for flexible integration
Compatible with mainstream development boards including Arduino, Raspberry Pi, and ESP32 with complete development libraries
Specification
Basic Parameters
Operating Voltage: 3.3 V
Operating Current: 0.92 mA
Low Power Current: 0.37 mA
Communication Interface: I²C
Connector Type: SH1.0-5P connector / 2.54 mm pin header holes
I²C Addresses:
BMI323: 0x69 (default), 0x68
BMM350: 0x15 (default), 0x14
Programmable Interrupt Pins: ×3
BMI323 Parameters
Accelerometer Measurement Ranges: ±2 g, ±4 g, ±8 g, ±16 g
Accelerometer ADC Resolution: 16-bit
Accelerometer Sensitivity:
±2 g range: 16384 LSB/g
±4 g range: 8192 LSB/g
±8 g range: 4096 LSB/g
±16 g range: 2048 LSB/g
Accelerometer Sensitivity Error: ±0.5%
Accelerometer Zero-g Offset: ±50 mg
Accelerometer Output Data Rate (ODR):
High Performance / Normal mode: 12.5 Hz ~ 6400 Hz
Low Power mode: 0.78125 Hz ~ 400 Hz
Gyroscope Angular Rate Ranges: ±125, ±250, ±500, ±1000, ±2000 °/s
Gyroscope ADC Resolution: 16-bit
Gyroscope Sensitivity:
±2000 °/s range: 16.384 LSB/(°/s)
±1000 °/s range: 32.768 LSB/(°/s)
±500 °/s range: 65.536 LSB/(°/s)
±250 °/s range: 131.072 LSB/(°/s)
Gyroscope Sensitivity Error: ±3% (without self-calibration), ±0.7% (after self-calibration)
Gyroscope Zero-Rate Offset: ±1 °/s
Gyroscope Output Data Rate (ODR):
High Performance / Normal mode: 12.5 Hz ~ 6400 Hz
Low Power mode: 0.78125 Hz ~ 400 Hz
BMM350 Parameters
Operating Modes: Normal periodic measurement, triggered forced measurement, low-power sleep standby
Measurement Range: ±2000 µT
Magnetic Field Resolution: approx. 0.1 µT
Zero-Field Offset Drift: ±2 µT (-40 °C ~ +85 °C, after calibration)
X/Y-Axis Gain Error: ±1% (25 °C, after API compensation)
Z-Axis Gain Error: ±3% (25 °C, after API compensation)
Sensitivity Temperature Drift: ±0.010 %/K
Offset Temperature Error: ±200 nT/K
Normal Mode Output Data Rate: 400/200/100/50/25/12.5/6.25/3.125/1.5625 Hz, typical deviation ±2%
Forced Mode Maximum Trigger Frequency: 200 Hz (avg=0 only)
X/Y-Axis Output Noise: 190 nTrms
Z-Axis Output Noise: 450 nTrms
Physical Dimensions
PCB Size: 24 mm × 19 mm
Mounting Hole Spacing: 19 mm
Mounting Hole Diameter: 2 mm
Compatible Development Boards
ESP32 Development Boards:
FireBeetle 2 ESP32-E IoT Microcontroller,
FireBeetle 2 ESP32-C5 IoT Development Board,
FireBeetle 2 ESP32-C5 Development Kit for Smart Home,
FireBeetle 2 ESP32-C6 IoT Development Board,
FireBeetle 2 ESP32-P4 AI Vision Board
Arduino-Compatible Development Boards:
DFRduino UNO R3,
DFRduino Mega2560,
DFRduino Leonardo with XBee Socket
Raspberry Pi Development Boards:
Raspberry Pi 5 Single Board Computer – 8GB,
Raspberry Pi Pico
Shipping List
Fermion: BMI323+BMM350 High Precision 9 DOF IMU Sensor ×1
SH1.0-5P Sensor Cable ×1
2.54 mm Black Single Row Pin Header – 10-Pin ×1
Applications
Electronic compass prototypes
Mobile robot direction feedback
Handheld orientation controllers
Wearable heading and movement devices