# Adafruit SensorLab - Gyroscope Calibration

## Gyroscope Calibration

![](https://cdn-learn.adafruit.com/assets/assets/000/087/573/medium800thumb/sensors_Gyroscope_operation.jpg?1580023036 https://en.wikipedia.org/wiki/Gyroscope#/media/File:Gyroscope_operation.gif)

Digital gyroscopes are just like those spinner toys you've seen when you're a kid, where you pull the string and you can balance the whole thing on your fingertip easily. The ones in chips don't have metal rings, [instead they use very very small springs that help it measure rotation](https://en.wikipedia.org/wiki/Vibrating_structure_gyroscope).

Compared to accelerometers and even magnetometers, digital gyros are surprisingly complex, but thanks to their existence we can match them up with other sensors to create orientation sensors. Magnetometers are too slow and are easily messed up by magnets and accelerometers cannot measure spin along the gravitational axis (they can only measure _tilt_) so give a hand to the gyroscope!

When gyros are manufactured, they have some zero-offset error, much like magnetometer hard-offset error, that can make measurements difficult. It's easy to detect and remove this offset, we just take many measurements and look for the 'offset' from zero

For example, here's a common MPU-6050. If we put it down flat on a table, and take measurements, we will see that neither X, Y or Z (red, green, blue) are at zero. **Even though its not moving!** That's the zero offset. In this case, its about -0.43 for X, 0.32 for Y and 0.34 for Z.

![](https://cdn-learn.adafruit.com/assets/assets/000/087/574/medium800/sensors_image.png?1580023519)

Once calibrated, you can see that there's still a little noise (there always is!) but its only 10% as much as the offset, so we'll get much better measurements. We can try to improve the noisy measurements with filtering if necessary.

# Adafruit SensorLab - Gyroscope Calibration

## Install SensorLab

Since there's dozens of different sensor manufacturers out there, and we don't want to have a ton of #ifdef's in our code to manage each kind, we'll be using Adafruit SensorLab to manage detecting the various magnetometers, accelerometers, pressure sensors... etc!

Adafruit SensorLab automatically detects a wide range of sensors, over I2C, no matter what I2C address it's on. It will return an [Adafruit Unified Sensor](https://github.com/adafruit/Adafruit_Sensor) object that we can query for events. You can't do advanced stuff like manually setting ranges or internal filters, but for many projects the basics will do just fine!

We'll be assuming you have the sensor on the main I2C port, and of course use the matching Adafruit library to verify the sensor is working and powered right before you continue!

[A list of supported sensors is available here](https://github.com/adafruit/Adafruit_SensorLab/blob/master/README.md)

Info: 

# Install SensorLab

Since there are a ton of sensors, and [we also use Arcada in a few examples](https://learn.adafruit.com/adafruit-pybadge/arcada-libraries), there's **a lot of libraries to install**

No really, we have a lot of software involved here - probably 20 or so libraries total!

For that reason **we really strongly recommend you use Arduino 1.8.10 or greater** which handles automatic library dependency installation. Otherwise you will be frustrated...

Select the **Sketch -\> Include Library -\> Manage Libraries...**

![](https://cdn-learn.adafruit.com/assets/assets/000/087/571/medium800/sensors_image.png?1580020735)

Search for **Sensor Lab** and install the Adafruit library you see

![](https://cdn-learn.adafruit.com/assets/assets/000/087/570/medium800/sensors_image.png?1580020685)

# Adafruit SensorLab - Gyroscope Calibration

## Simple Gyro Calibration

If you don't want to set up a graphical interface for calibration a gyroscopic sensor, you can do a simple zero-g offset calibration using just the serial interface. The nice thing about this is it will work for any and all boards, and does not require any additional software installation!

Info: 

# Step 1 - Upload the SensorLab `zero rate simplecal` Example

We have a simple sketch that will read a few seconds of gyroscope data and calculate zero-rate offset for you

Open up the `Adafruit_SensorLab->calibration->gyro_zerorate_simplecal`

![](https://cdn-learn.adafruit.com/assets/assets/000/087/431/medium800/sensors_image.png?1579827046)

# Step 2 - Open Serial Port
Open the serial port to launch the SensorLab calibration. You should see your gyroscope detected

&nbsp;

You'll see a countdown to warn you that the gyro must be kept perfectly still during calibration

![sensors_image.png](https://cdn-learn.adafruit.com/assets/assets/000/087/598/medium640/sensors_image.png?1580087041)

Place the board on a stable flat surface and hold it down with a book or something. The board will take 5 seconds of data and print at each reading

The first three numbers are the current gyro readings

The middle three numbers are the average values (zero rate offsets) in radians/second.

The last numbers are the peak-to-peak values.

At the end, you'll get a summary:``

![](https://cdn-learn.adafruit.com/assets/assets/000/087/604/medium800/sensors_image.png?1580088991)

In this case shown above, the screenshot indicates `x = 0.0003, y = 0.01, z = 0.0004` rad/s

You may want to take a few measurements to get a couple calculations!

# Adafruit SensorLab - Gyroscope Calibration

## Gyro Calibration with Jupyter

[Jupyter Notebooks are a powerful cross-platform method for analyzing data using Python](https://jupyter.org/)

You can definitely use Jupyter to plot, analyze and calibrate your sensor data. This method is the most powerful because you can do plotting and calculations. However, we assume you already have Jupyter installed (either desktop or thru Anaconda) and have some familiarity with running 'notebook' style Python!

Warning: 

# Step 1 - Download Calibration Notebook

The gyro/magnetometer notebook lives in the [SensorLab Arduino library, in the `notebooks` folder.](https://github.com/adafruit/Adafruit_SensorLab/tree/master/notebooks)

Look for this section in the website:

[Click to download the iPython/Jupyter Notebook](https://raw.githubusercontent.com/adafruit/Adafruit_SensorLab/master/notebooks/Mag_Gyro_Calibration.ipynb)
 **You must open this notebook within Jupyter - you cannot run it direct from github or from the command line as a text file!**

Once open, your browser will look like this:

![](https://cdn-learn.adafruit.com/assets/assets/000/087/558/medium800/sensors_image.png?1580018118)

# Step 2 - Upload the SensorLab `imucal` Example

Next we have to tell the microcontroller board to send the magnetometer (and, if there is one, accelerometer and gyroscope) data out over serial in the right format.

Open up the `Adafruit_SensorLab->calibration->imucal`

![](https://cdn-learn.adafruit.com/assets/assets/000/087/418/medium800/sensors_image.png?1579825201)

Select your desired board & port from the **Tools** menu then click **Upload**

![sensors_image.png](https://cdn-learn.adafruit.com/assets/assets/000/087/420/medium640/sensors_image.png?1579825411)

Open up the serial console, you'll see SensorLab initialization and detection of whatever magnetometer is available. In this case is a LSM9DS1, but any gyroscope can be calibrated!

![sensors_findgyro.gif](https://cdn-learn.adafruit.com/assets/assets/000/087/581/medium640/sensors_findgyro.gif?1580073824)

You'll then see a stream of data that looks like:  
`Raw:-58,-815,8362,76,-121,-95,-375,-159,-24`  
`Uni:-0.07,-0.98,10.00,0.0832,-0.1327,-0.1046,-37.50,-15.93,-2.50`

The first three numbers are accelerometer data - if you don't have an accelerometer, they will be 0

The middle three numbers are gyroscope data, they should _definitely_ not be zeros!

The last three numbers are magnetometer - if you don't have an magnetometer, they will be 0

![sensors_image.png](https://cdn-learn.adafruit.com/assets/assets/000/087/424/medium640/sensors_image.png?1579826324)

# Configure the notebook
 **Close the serial port** , and go back to Jupyter. In the first cell, find where we define the **PORT** and change the port to match your serial/COM port. For windows it'll be something like **COM4** for Mac/Linux it'll be like **/dev/cu.USBSERIAL** or something

![sensors_image.png](https://cdn-learn.adafruit.com/assets/assets/000/087/559/medium640/sensors_image.png?1580018346)

Run the first cell so the serial port is set

Then run the second cell, you should see output like this - the serial port is opened and IMU raw data is output as numbers

If you get errors or no numbers, hard-reset the board (click the reset button once) then try re-running the cell again.

![sensors_image.png](https://cdn-learn.adafruit.com/assets/assets/000/087/560/medium640/sensors_image.png?1580018495)

Info: 

Skip the magnetometer cells, and find the Gyroscope offset calibration cell

Place the board down on a flat stable surface, we like to put a book on top of it to keep it flat and steady. You don't want any shifts or movement while you run the calibrator!

![sensors_image.png](https://cdn-learn.adafruit.com/assets/assets/000/087/582/medium640/sensors_image.png?1580073996)

You'll see a 3 second countdown, then the serial port is opened and data collected

![](https://cdn-learn.adafruit.com/assets/assets/000/087/583/medium800/sensors_image.png?1580074164)

Once it's done you'll see a plotting of the data output. You should see something like this with red, green and blue lines. There may be some offset as expected, but the lines should wobble around a point without big spikes or increases/decreases.

![](https://cdn-learn.adafruit.com/assets/assets/000/087/584/medium800/sensors_image.png?1580074215)

Above the graph you'll see analysis of the average value (zero-g offset) like so:

![](https://cdn-learn.adafruit.com/assets/assets/000/087/585/medium800/sensors_image.png?1580074362)

In this case, the zero-g calibration is **X = 0.044 Y = -0.0148, and Z = -0.0111**

The units are in SI units **radians / second** _not_ degree/s (dps)!

![](https://cdn-learn.adafruit.com/assets/assets/000/087/586/medium800/sensors_image.png?1580074476)

You'll also see the results of removing the offset, this should be 3 noisy but nearly-zero-centered lines. The higher the quality of the gyro, the lower the jitter in the measurements, and the lower the offset.

# Adafruit SensorLab - Gyroscope Calibration

## Comparing Gyroscopes

When making an inertial measurement unit (IMU) especially one used for orientation calculations, the quality of the gyroscope has a big impact on the jitter/speed/drift. Accelerometers are pretty good quality these days, we've figured out how to make them decades ago. And magnetometers are not as important - they don't update often and are used for orientation correction. Gyro's have the most error possibilities.

We compare two basic measurements - the zero offset and the zero noise. Zero offset is easy to correct for, and you should calibrate your gyroscope once its mounted in the final project/PCB - simply take a lot of measurements, find the offset that would bring the gyro to zero. The noise that you get when not moving can be minimized with low pass filtering (sometimes handled in-chip).

Warning: 

# ST ISM330DHC

This is an industrial 6-DoF IMU with great performance - at an expected higher price

Featured
### Adafruit ISM330DHCX - 6 DoF IMU - Accelerometer and Gyroscope

[Adafruit ISM330DHCX - 6 DoF IMU - Accelerometer and Gyroscope](https://www.adafruit.com/product/4502)
Behold, the ST ISM330DHCX: an _industrial quality_ Accelerometer+Gyroscope 6-DOF IMUs (inertial measurement unit) from ST.

This IMU sensor has 6 degrees of freedom - 3 degrees each of linear acceleration and angular velocity at varying rates within a respectable range. For the...

In Stock
[Buy Now](https://www.adafruit.com/product/4502)
[Related Guides to the Product](https://learn.adafruit.com/products/4502/guides)
![Video of a white hand moving a sensor around that connected to an OLED and a blue rectangular board. ](https://cdn-shop.adafruit.com/product-videos/640x480/4502-05.jpg)

Uncalibrated offsets are low, the one we grabbed had 0.006 rad/s ( **0.35 deg/s** ) max offset. Datasheet's Angular rate zero-rate level is typical ±1 deg/s.

No-motion observed noise was an _incredibly low_&nbsp; ±0.002 rad/s ( **±0.06 deg/sec** ) when running at 104 Hz and no filters on. Check the datasheet for more details!

![](https://cdn-learn.adafruit.com/assets/assets/000/087/544/medium800/sensors_image.png?1579995554)

# LSM6DSOX

This is an high quality 6-DoF IMU with great performance - at an expected higher price than the LSM6DS33. This is the 'commercial usage' version of the ISM330DHC

Featured
### Adafruit LSM6DSOX 6 DoF Accelerometer and Gyroscope

[Adafruit LSM6DSOX 6 DoF Accelerometer and Gyroscope](https://www.adafruit.com/product/4438)
Behold, the ST LSM6DSOX: The latest in a long line of quality Accelerometer+Gyroscope 6-DOF IMUs from ST.

This IMU sensor has 6 degrees of freedom - 3 degrees each of linear acceleration and angular velocity at varying rates within a respectable range. For the accelerometer:...

In Stock
[Buy Now](https://www.adafruit.com/product/4438)
[Related Guides to the Product](https://learn.adafruit.com/products/4438/guides)
![Video of a white hand moving a sensor around that connected to an OLED and a blue rectangular board. ](https://cdn-shop.adafruit.com/product-videos/640x480/4438-04.jpg)

Uncalibrated offsets are low, the one we grabbed had 0.007 rad/s ( **0.42 deg/s** ) max offset. Datasheet's Angular rate zero-rate level is typical ±1 deg/s.

No-motion observed noise was an _incredibly low_&nbsp; ±0.003 rad/s ( **±0.17 deg/sec** ) when running at 104 Hz and no filters on. Check the datasheet for more details!

![](https://cdn-learn.adafruit.com/assets/assets/000/087/552/medium800/sensors_image.png?1580015078)

# LSM6DS33

This basic 6-DoF IMU is inexpensive and works well for basic projects. We have it both in 6-DoF and paried with a magnetometer for 9-DoF,

Uncalibrated offsets are fair, the one we grabbed had 0.034 rad/s ( **2 deg/s** ) max offset. Datasheet's Angular rate zero-rate level is typical ±10 deg/s!

No-motion observed noise was ±0.015 rad/s ( **±0.85 deg/sec** ) when running at 104 Hz and no filters on. Check the datasheet for more details!

![](https://cdn-learn.adafruit.com/assets/assets/000/087/546/medium800/sensors_image.png?1579996592)

# LSM6DS3TR-C
The ST LSM6DS3TR-C is a great entry-level 6-DoF IMU accelerometer + gyro and&nbsp;is very similar to the now-discontinued&nbsp;LSM6DS33. We have it both in 6-DoF and paired with a magnetometer for 9-DoF

Featured
### Adafruit LSM6DS3TR-C 6-DoF Accel + Gyro IMU

[Adafruit LSM6DS3TR-C 6-DoF Accel + Gyro IMU](https://www.adafruit.com/product/4503)
Add motion and orientation&nbsp;sensing to your Arduino project with this affordable 6 Degree of Freedom (6-DoF) sensor with sensors from ST. The board includes an **ST&nbsp;LSM6DS3TR-C** , a great entry-level 6-DoF IMU accelerometer + gyro. The 3-axis accelerometer&nbsp;can tell...

In Stock
[Buy Now](https://www.adafruit.com/product/4503)
[Related Guides to the Product](https://learn.adafruit.com/products/4503/guides)
![Angled shot of small rectangular breakout board.](https://cdn-shop.adafruit.com/640x480/4503-12.jpg)

Featured
### Adafruit LSM6DS3TR-C + LIS3MDL - Precision 9 DoF IMU

[Adafruit LSM6DS3TR-C + LIS3MDL - Precision 9 DoF IMU](https://www.adafruit.com/product/5543)
Add high-quality motion,&nbsp;direction, and orientation&nbsp;sensing to your Arduino project with this all-in-one 9 Degree of Freedom (9-DoF) sensor with sensors from ST. This little breakout contains two chips that sit side-by-side to provide 9 degrees of full-motion data.

The board...

In Stock
[Buy Now](https://www.adafruit.com/product/5543)
[Related Guides to the Product](https://learn.adafruit.com/products/5543/guides)
![Angled shot of 9-DOF breakout board.](https://cdn-shop.adafruit.com/640x480/5543-06.jpg)

The one used here had 0.03 rad/s ( **1.7&nbsp;deg/s** ) max offset. Datasheet's Angular rate zero-rate level is typical ±3 deg/s.

No-motion observed noise was ±0.0015 rad/s ( **±0.085 deg/sec** ) when running at 104 Hz and no filters on. [Check the datasheet for more details!](https://cdn-shop.adafruit.com/product-files/4503/4503_LSM6DS3TR-C_datasheet.pdf)

![](https://cdn-learn.adafruit.com/assets/assets/000/113/215/medium800/sensors_jupyter.png?1657823688)

# LSM9DS1

This popular sensor is a 9-DoF all-in-one with a LIS3MDL for the magnetometer, and a 'LSM6DS-like-but-not-the-same-register-map-at-all' accelerometer/gyro IMU

Featured
### Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board - LSM9DS1

[Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board - LSM9DS1](https://www.adafruit.com/product/3387)
Add motion, direction and orientation sensing to your Arduino project with this all-in-one 9-DOF sensor. Inside the chip are three sensors, one is a classic 3-axis accelerometer, which can tell you which direction is down towards the Earth (by measuring gravity) or how fast the board is...

In Stock
[Buy Now](https://www.adafruit.com/product/3387)
[Related Guides to the Product](https://learn.adafruit.com/products/3387/guides)
![Angled shot of blue, rectangle-shaped 9-DOF breakout board.](https://cdn-shop.adafruit.com/640x480/3387-07.jpg)

Uncalibrated offsets are pretty good, the one we grabbed had 0.02 rad/s **(1.2 deg/s**) max offset. Datasheet's Angular rate zero-rate level is typical ±30 deg/s!

However, we noticed spikes of gyro data well outside the expected range. When those spikes are ignore, the no-motion observed noise was +- 0.007 rad/s ( **±0.4 deg/sec** ) at 1 KHz with the 408 Hz bandwidth filter on. Check the datasheet for more details!

![](https://cdn-learn.adafruit.com/assets/assets/000/087/580/medium800/sensors_image.png?1580073474)

![](https://cdn-learn.adafruit.com/assets/assets/000/087/579/medium800/sensors_image.png?1580073025)

# MPU-6050

This is a fairly old sensor, but very popular and low cost! The quality of the sensor is pretty good considering how old/low cost it is

Featured
### Adafruit MPU-6050 6-DoF Accel and Gyro Sensor - STEMMA QT Qwiic

[Adafruit MPU-6050 6-DoF Accel and Gyro Sensor - STEMMA QT Qwiic](https://www.adafruit.com/product/3886)
I mew, you mew we&nbsp;_all_&nbsp;mew for IMU! The MPU-6050 is what we call "an oldie but goodie" - this popular triple-axis accelerometer plus gyro combo has been a staple of electronic projects for years, and we've finally gotten around to making a breakout for...

In Stock
[Buy Now](https://www.adafruit.com/product/3886)
[Related Guides to the Product](https://learn.adafruit.com/products/3886/guides)
![Video of a white hand moving a sensor around that connected to an OLED and white breadboard.](https://cdn-shop.adafruit.com/product-videos/640x480/3886-06.jpg)

Uncalibrated offsets are fair, the one we grabbed had 0.04 rad/s **(2.3 deg/s**) max offset. Datasheet's Angular rate zero-rate level is typical ±20 deg/s!

No-motion observed noise was +- 0.05 rad/s ( **±0.29 deg/sec** ) with the 260 Hz bandwidth filter on. Check the datasheet for more details!

![](https://cdn-learn.adafruit.com/assets/assets/000/087/545/medium800/sensors_image.png?1579996083)

# NXP FXAS21002

This 3-axis gyroscope sensor is no longer available but we use it in our NXP 9-DoF (and will continue selling it until we can't get the chip anymore) At the time of release it was pretty good, since then better gyros have come out, but it's still not too bad

Uncalibrated offsets are pretty good - the one we grabbed had 0.01 rad/s **(0.57 deg/s**) max offset. Datasheet's Angular rate zero-rate level is typical post-mount ±50 LSB (NOT deg/s) - at 250 deg/s rate, that translates to ±0.4 deg/s

No-motion observed noise was +- 0.01 rad/s ( **±0.55 deg/sec** ) at 100 Hz output. Check the datasheet for more details!

![](https://cdn-learn.adafruit.com/assets/assets/000/087/547/medium800/sensors_image.png?1579997018)

# ICM-20649
Featured
### Adafruit ICM-20649 Wide Range ±30g  ±4000dps 6-DoF IMU

[Adafruit ICM-20649 Wide Range ±30g  ±4000dps 6-DoF IMU](https://www.adafruit.com/product/4464)
Most accelerometers have a similar range of measurements that they can make: often around 2G - 16G. Similarly, most gyros can measure in the range of 250 degree/s to 2000 degrees/s. That's enough for many situations, however, there are many situations where it's not quite enough. When...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4464)
[Related Guides to the Product](https://learn.adafruit.com/products/4464/guides)
![Angled shot of rectangular accelerometer-gyroscope breakout.](https://cdn-shop.adafruit.com/640x480/4464-04.jpg)

Uncalibrated offsets are not bad, the one we grabbed had 0.023 rad/s **(1.3 deg/s**) max offset. Datasheet's Angular rate zero-rate level is typical ±5 deg/s

No-motion observed noise was +- 0.015 rad/s ( **±0.86 deg/sec** ) at 1.1KHz. Check the datasheet for more details!

![](https://cdn-learn.adafruit.com/assets/assets/000/087/553/medium800/sensors_image.png?1580015410)


## Guide Products

### Adafruit ISM330DHCX - 6 DoF IMU - Accelerometer and Gyroscope

[Adafruit ISM330DHCX - 6 DoF IMU - Accelerometer and Gyroscope](https://www.adafruit.com/product/4502)
Behold, the ST ISM330DHCX: an _industrial quality_ Accelerometer+Gyroscope 6-DOF IMUs (inertial measurement unit) from ST.

This IMU sensor has 6 degrees of freedom - 3 degrees each of linear acceleration and angular velocity at varying rates within a respectable range. For the...

In Stock
[Buy Now](https://www.adafruit.com/product/4502)
[Related Guides to the Product](https://learn.adafruit.com/products/4502/guides)
### Adafruit LSM6DSOX 6 DoF Accelerometer and Gyroscope

[Adafruit LSM6DSOX 6 DoF Accelerometer and Gyroscope](https://www.adafruit.com/product/4438)
Behold, the ST LSM6DSOX: The latest in a long line of quality Accelerometer+Gyroscope 6-DOF IMUs from ST.

This IMU sensor has 6 degrees of freedom - 3 degrees each of linear acceleration and angular velocity at varying rates within a respectable range. For the accelerometer:...

In Stock
[Buy Now](https://www.adafruit.com/product/4438)
[Related Guides to the Product](https://learn.adafruit.com/products/4438/guides)
### Adafruit LSM6DS33 6-DoF Accel + Gyro IMU

[Adafruit LSM6DS33 6-DoF Accel + Gyro IMU](https://www.adafruit.com/product/4480)
Add motion and orientation&nbsp;sensing to your Arduino project with this affordable 6 Degree of Freedom (6-DoF) sensor with sensors from ST. The board includes an **LSM6DS33** , a 6-DoF IMU accelerometer + gyro. The 3-axis accelerometer, can tell you which direction is down...

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/4480)
[Related Guides to the Product](https://learn.adafruit.com/products/4480/guides)
### Adafruit LSM6DS33 + LIS3MDL - 9 DoF IMU with Accel / Gyro / Mag

[Adafruit LSM6DS33 + LIS3MDL - 9 DoF IMU with Accel / Gyro / Mag](https://www.adafruit.com/product/4485)
_This item is discontinued - **you can grab** [Adafruit LSM6DS3 + LIS3MDL - Precision 9 DoF IMU](https://adafruit.com/products/5543) **instead!&nbsp;** _

Add motion,&nbsp;direction and orientation&nbsp;sensing to your Arduino project with this all-in-one 9 Degree...

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/4485)
[Related Guides to the Product](https://learn.adafruit.com/products/4485/guides)
### Adafruit LSM6DS3TR-C 6-DoF Accel + Gyro IMU

[Adafruit LSM6DS3TR-C 6-DoF Accel + Gyro IMU](https://www.adafruit.com/product/4503)
Add motion and orientation&nbsp;sensing to your Arduino project with this affordable 6 Degree of Freedom (6-DoF) sensor with sensors from ST. The board includes an **ST&nbsp;LSM6DS3TR-C** , a great entry-level 6-DoF IMU accelerometer + gyro. The 3-axis accelerometer&nbsp;can tell...

In Stock
[Buy Now](https://www.adafruit.com/product/4503)
[Related Guides to the Product](https://learn.adafruit.com/products/4503/guides)
### Adafruit LSM6DS3TR-C + LIS3MDL - Precision 9 DoF IMU

[Adafruit LSM6DS3TR-C + LIS3MDL - Precision 9 DoF IMU](https://www.adafruit.com/product/5543)
Add high-quality motion,&nbsp;direction, and orientation&nbsp;sensing to your Arduino project with this all-in-one 9 Degree of Freedom (9-DoF) sensor with sensors from ST. This little breakout contains two chips that sit side-by-side to provide 9 degrees of full-motion data.

The board...

In Stock
[Buy Now](https://www.adafruit.com/product/5543)
[Related Guides to the Product](https://learn.adafruit.com/products/5543/guides)
### Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board - LSM9DS1

[Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board - LSM9DS1](https://www.adafruit.com/product/3387)
Add motion, direction and orientation sensing to your Arduino project with this all-in-one 9-DOF sensor. Inside the chip are three sensors, one is a classic 3-axis accelerometer, which can tell you which direction is down towards the Earth (by measuring gravity) or how fast the board is...

In Stock
[Buy Now](https://www.adafruit.com/product/3387)
[Related Guides to the Product](https://learn.adafruit.com/products/3387/guides)
### Adafruit MPU-6050 6-DoF Accel and Gyro Sensor - STEMMA QT Qwiic

[Adafruit MPU-6050 6-DoF Accel and Gyro Sensor - STEMMA QT Qwiic](https://www.adafruit.com/product/3886)
I mew, you mew we&nbsp;_all_&nbsp;mew for IMU! The MPU-6050 is what we call "an oldie but goodie" - this popular triple-axis accelerometer plus gyro combo has been a staple of electronic projects for years, and we've finally gotten around to making a breakout for...

In Stock
[Buy Now](https://www.adafruit.com/product/3886)
[Related Guides to the Product](https://learn.adafruit.com/products/3886/guides)

## Related Guides

- [MPU6050 6-DoF Accelerometer and Gyro](https://learn.adafruit.com/mpu6050-6-dof-accelerometer-and-gyro.md)
- [LSM6DSOX, ISM330DHC, & LSM6DSO32 6 DoF IMUs](https://learn.adafruit.com/lsm6dsox-and-ism330dhc-6-dof-imu.md)
- [Adafruit LSM6DS33 6-DoF IMU Breakout](https://learn.adafruit.com/lsm6ds33-6-dof-imu-accelerometer-gyro.md)
- [Adafruit ICM20649 Wide-Range 6-DoF IMU Accelerometer and Gyro](https://learn.adafruit.com/adafruit-icm20649-wide-range-6-dof-imu-accelerometer-and-gyro.md)
- [Adafruit LSM6DS3TR-C 6-DoF Accel + Gyro IMU](https://learn.adafruit.com/adafruit-lsm6ds3tr-c-6-dof-accel-gyro-imu.md)
- [Adafruit LSM6DS3TR-C + LIS3MDL - Precision 9 DoF IMU](https://learn.adafruit.com/adafruit-lsm6ds3tr-c-lis3mdl-precision-9-dof-imu.md)
- [Make It Shake, Rattle, and Roll: Accelerometer Use](https://learn.adafruit.com/make-it-shake-rattle-and-roll.md)
- [Glitter Positioning System](https://learn.adafruit.com/glitter-positioning-system.md)
- [CircuitPython Libraries and Jupyter Notebook on any Computer with MCP2221](https://learn.adafruit.com/jupyter-on-any-computer-with-circuitpython-libraries-and-mcp2221.md)
- [Controlling Objects in Unity with a 9 DoF Sensor and Arduino](https://learn.adafruit.com/controlling-objects-in-unity-with-arduino.md)
- [Adafruit Metro M4 Express featuring ATSAMD51](https://learn.adafruit.com/adafruit-metro-m4-express-featuring-atsamd51.md)
- [Introducing Gemma](https://learn.adafruit.com/introducing-gemma.md)
- [Adjustable Breadboard Power Supply Kit](https://learn.adafruit.com/adjustable-breadboard-power-supply-kit.md)
- [Adafruit INA219 Current Sensor Breakout](https://learn.adafruit.com/adafruit-ina219-current-sensor-breakout.md)
- [Adafruit SensorLab - Gyroscope Calibration](https://learn.adafruit.com/adafruit-sensorlab-gyroscope-calibration.md)
