SparkFun
SparkFun 9DoF IMU Breakout - ISM330DHCX, MMC5983MA (Qwiic)
The SparkFun 9DoF IMU Breakout combines the high-performance ISM330DHCX 3D accelerometer and gyroscope from STMicroelectronics with the MMC5983MA triple-axis...
Get notified when back in stock
The SparkFun 9DoF IMU Breakout combines the high-performance ISM330DHCX 3D accelerometer and gyroscope from STMicroelectronics with the MMC5983MA triple-axis magnetometer from MEMSIC, delivering nine degrees of freedom on a single Qwiic-enabled board.
Using the SparkFun Qwiic Connect System, no soldering is required — just plug in via the 1mm pitch, 4-pin JST connectors. Standard 0.1″-spaced header pins are also broken out for breadboard use.
Key Features
- 9 Degrees of Freedom – Combined accelerometer, gyroscope, and magnetometer on one board
- Qwiic Enabled – Two horizontal Qwiic connectors for solderless I2C daisy-chaining
- ISM330DHCX 6DoF IMU – ±2/±4/±8/±16g accelerometer and ±125 to ±4000 dps gyroscope with embedded Machine Learning Core
- MMC5983MA Magnetometer – ±8 Gauss range, 18-bit operation, 0.4 mG RMS noise, ±0.5° heading accuracy
- Smart Embedded Functions – Tilt detection, free-fall, wake-up, 6D/4D orientation, click detection, pedometer, and programmable FSM
- Breadboard Friendly – 0.1″-spaced pins broken out for traditional wiring
ISM330DHCX Specifications
- Supply Voltage – 1.71V to 3.6V
- Accelerometer Range – ±2/±4/±8/±16g (selectable)
- Gyroscope Range – ±125/±250/±500/±1000/±2000/±4000 dps
- Temperature Range – -40°C to +105°C with embedded compensation
- Embedded FIFO – Up to 9 kB
- I2C Address – 0x6B (default), 0x6A (alternate)
MMC5983MA Specifications
- Supply Voltage – 2.8V to 3.6V (1 µA power-down current)
- Full Scale Range – ±8 Gauss
- Resolution – 0.0625 mG/LSB at 18-bit operation
- Noise – 0.4 mG total RMS
- Max Output Rate – 1000 Hz
- I2C Address – 0x30
Ideal For
- Inertial navigation and motion tracking
- Robotics orientation and stabilisation
- Drone and gimbal control systems
- Wearable motion sensing and activity detection
Package Contents
- 1× SparkFun 9DoF IMU Breakout (ISM330DHCX, MMC5983MA)
Resources
Jargon buster
Plain-language definitions for the technical terms used above.
- breakout
- A breakout board carries a small or fine-pitched component and brings its connections out to standard, breadboard- and header-friendly pins. Describing a part as a breakout means it can be wired into a project without soldering directly to the component's tiny contacts.
- FIFO
- FIFO stands for "first in, first out", a way of handling stored items so the oldest one is read out first, like a queue. In electronics a FIFO is usually a small buffer that temporarily holds data, such as sensor samples or serial bytes, so a processor can collect it in batches instead of reading continuously.
- Gyroscope
- A gyroscope measures rotation, such as how fast a board is turning around its X, Y, and Z axes. This matters for projects like gesture controls, balancing robots, and motion tracking where tilt or rotation changes need to be detected.
- I2C
- I2C is a two-wire communication bus used by many sensors and small modules. It matters because several I2C devices can share the same two wires, but each device needs a compatible address and your controller must support I2C.
- I2C address
- An I2C address is the number a device uses so a microcontroller can tell it apart from other devices on the same I2C bus. It matters because two devices with the same fixed address may conflict if used together.
- IMU
- An IMU (Inertial Measurement Unit) combines motion sensors, typically an accelerometer and gyroscope and sometimes a magnetometer, to measure movement and orientation. It can sense motion, tilt, vibration, rotation, and changes in direction, which is useful for tasks such as navigation, stabilisation, gesture detection, and asset tracking.
- LSB
- Least significant bit (LSB) is the lowest-order bit in a binary number, the bit that some serial protocols send first or last. In analogue-to-digital and digital-to-analogue converters, one LSB also means the smallest step the device can resolve, equal to its full-scale range divided by the number of steps.
- magnetometer
- A sensor that measures magnetic fields, often used to work out compass direction. It matters because nearby magnets, motors, or metal objects can affect readings and may require calibration.
- Qwiic
- Qwiic is a plug-in connector system for I2C devices that uses small 4-pin cables, so you can connect compatible sensors without soldering. It matters because your controller or adapter also needs Qwiic, or you will need a cable or breakout to wire it up.
- RMS
- RMS is a way of describing the effective level of an AC signal, such as an audio output voltage. It helps compare audio output levels more meaningfully than a peak voltage number.
Find this product in
Brands
Sensors & Input
SparkFun 9DoF IMU Breakout Schematic
Schematic · 91.0 KB · Click any page to view full size
ISM330DHCX Datasheet
Datasheet · 2.5 MB · Click any page to view full size
MMC5983MA Datasheet
Datasheet · 574.2 KB · Click any page to view full size
Supplier page — sparkfun.com
Supplier Description · 824.2 KB · Click any page to view full size
Resources & Downloads
Guides, code examples, and more
Source Code
Open-source libraries, firmware & example projects for this product
31c9ca3
almost 2 years ago
· 118 commits
- .github Adds two new functions, accidentally formats files - would have done this separately almost 2 years ago
- Documentation Adds documentation and many functions about 4 years ago
- examples Create example5_faster_I2C.ino over 3 years ago
- src Adds two new functions, accidentally formats files - would have done this separately almost 2 years ago
- keywords.txt Adds keywords about 4 years ago
- library.properties Correct setAccelSlopeFilter over 3 years ago
- License.md Create License.md about 4 years ago
- README.md Update README.md almost 4 years ago
Qwiic 3 axis High Performance Magnetometer.
6e5c914
about 1 month ago
· 57 commits
- .github Create add_issue_to_project.yml over 2 years ago
- documents Initial version upload. over 4 years ago
- examples Update examples: replace "normalized" with "scaled"; add extra comments about 3 years ago
- firmware Added SPI support - partial over 4 years ago
- src clear shadow registers during softReset about 1 month ago
- .gitattributes Initial version upload. over 4 years ago
- keywords.txt Add readFieldsXYZ and clearMeasDoneInterrupt. Improved error reporting over 3 years ago
- library.properties v1.1.5 about 1 month ago
- LICENSE.md Initial version upload. over 4 years ago
- README.md Update README.md almost 4 years ago
9c8121b
almost 4 years ago
· 32 commits
- Documentation Initial commit about 4 years ago
- Hardware Revert "Qwiic 9dof TB board update to match design changes" about 4 years ago
- Production Adds version to production zip file about 4 years ago
- README.md Update README.md almost 4 years ago
This repository implements a Python package for the SparkFun Qwiic ISM330DHCX.
53b6940
over 1 year ago
· 16 commits
- .github Update doxygen deploy branch to master over 1 year ago
- docs Convert PyPi packaging and add Readme Updates over 1 year ago
- examples Add links for exmaple readme over 1 year ago
- .readthedocs.yml Initial commit over 1 year ago
- DESCRIPTION.rst Autogenerated: Bump version number to 2.0.0 over 1 year ago
- DOCUMENTATION.md Initial commit over 1 year ago
- LICENSE Initial commit over 1 year ago
- package.json Autogenerated: Bump version number to 2.0.0 over 1 year ago
- pyproject.toml Autogenerated: Bump version number to 2.0.0 over 1 year ago
- qwiic_ism330dhcx.py Convert to doxygen style comments over 1 year ago
- README.md Autogenerated: Update supported boards. over 1 year ago
- requirements.txt Fix requirements.txt over 1 year ago
This repository implements a Python package for the SparkFun Qwiic MMC5983MA.
2e669fa
over 1 year ago
· 24 commits
- .github Update workflow branches over 1 year ago
- docs Autogenerated. Convert PyPi packaging and add Readme Updates over 1 year ago
- examples Update links over 1 year ago
- .readthedocs.yml Initial commit over 2 years ago
- DESCRIPTION.rst Autogenerated: Bump version number to 2.0.0 over 1 year ago
- DOCUMENTATION.md Initial commit over 2 years ago
- LICENSE Initial commit over 2 years ago
- package.json Autogenerated: Bump version number to 2.0.0 over 1 year ago
- pyproject.toml Autogenerated: Bump version number to 2.0.0 over 1 year ago
- qwiic_mmc5983ma.py Autogenerated: Convert comments to doxygen and add doxygen configs over 1 year ago
- README.md Autogenerated: Update supported boards. over 1 year ago
- requirements.txt Autogenerated: Add requirements.txt for circup packaging dependencies over 1 year ago
Related Tutorials
Free guides on learn.littlebird.com.au