LSM9DS0 Hookup Guide
The LSM9DS0 is a versatile, motion-sensing system-in-a-chip. It houses a 3-axis accelerometer, 3-axis gyroscope, and 3-axis magnetometer -- nine degrees of freedom (9DOF) in a single IC! Each sensor in the LSM9DS0 supports a wide range of...ranges: the accelerometer's scale can be set to ± 2, 4, 6, 8, or 16 g, the gyroscope supports ± 245, 500, and 2000 °/s, and the magnetometer has full-scale ranges of ± 2, 4, 8, or 12 gauss. The IMU-in-a-chip is so cool we put it on a breakout board.
The LSM9DS0 is equipped with a digital interface, but even that is flexible: it supports both I2C and SPI, so you'll be hard-pressed to find a microcontroller it doesn't work with.
Covered In This Tutorial
This tutorial is devoted to all things LSM9DS0. We'll introduce you to the chip itself, then the breakout board. Then we'll switch over to example code, and show you how to interface with the board using an Arduino and our SFE_LSM9DS0 Arduino library.
The tutorial is split into the following pages:
- About the LSM9DS0 -- An overview of the LSM9DS0, examining its features and capabilities.
- Breakout Overview -- This page covers the LSM9DS0 Breakout Board -- topics like the pinout, jumpers, and schematic.
- Hardware Assembly -- Assembly tips and tricks, plus some information about the breakout's dimensions.
- Basic Arduino Example -- How to install the Arduino library, and use a simple example sketch.
- Advanced Arduino Example -- A more advanced Arduino sketch -- using the library -- showing off features like switch the sensors' scales and data rates.
- Using the Arduino Library -- An overview of the SFE_LSM9DS0 Arduino library.
This tutorial explains how to use the LSM9DS0 Breakout Board with an Arduino. To follow along, you'll need the following materials:
- LSM9DS0 Breakout Board
- Arduino UNO, RedBoard, or another Arduino-compatible board
- Straight Male Headers -- Or wire. Something to connect between the breakout and a breadboard.
- Breadboard -- Any size (even mini) should do.
- M/M Jumper Wires -- To connect between Arduino and breadboard.
- Logic Level Converter (any of the following could work)
- Bi-Directional Logic Level Converter -- MOSFET-based level shifter (this is what the tutorial uses).
- PCA9306 Bi-Directional Voltage Translator -- Solid I2C-focused level shifter.
A logic level shifter is required for any 5V-operating Arduino (UNO, RedBoard, Leonardo, etc). If you use a 3.3V-based 'duino -- like the Arduino Pro 3.3V or 3.3V Pro Mini -- there is no need for level shifting.
If you're not familiar with some of the concepts below, we recommend checking out that tutorial before continuing on.
- Accelerometer Basics
- Serial Peripheral Interface (SPI)
- Inter-IC Communication (I2C)
- Logic Levels
- Bi-Directional Level Shifter Hookup Guide