LSM9DS1 Breakout Hookup Guide
Breakout Board Overview
Now that you know everything you need to about the LSM9DS1 IC, let's talk a bit about the breakout board it's resting on. On this page we'll discuss the pins that are broken out, and some of the other features on the board.
The Pinout
In total, the LSM9DS1 Breakout breaks out 13 pins.
The bare-minimum connections required are broken out on the left side of the board. These are the power and I2C pins (the communication interface the board defaults to):
Pin Label | Pin Function | Notes |
---|---|---|
GND | Ground | 0V voltage supply |
VDD | Power Supply | Supply voltage to the chip. Should be regulated between 2.4V and 3.6V. |
SDA | SPI: MOSI I2C: Serial Data | SPI: Device data in (MOSI) I2C: Serial data (bi-directional) |
SCL | Serial Clock | I2C and SPI serial clock. |
The remaining pins are broken out on the other side. These pins break out SPI functionality and interrupt outputs:
Pin Label | Pin Function | Notes |
---|---|---|
DEN | Gyroscope Data Enable | Mostly unknown. The LSM9DS1 datasheet doesn't have much to say about this pin. |
INT2 | Accel/Gyro Interrupt 2 | INT1 and INT2 are programmable interrupts for the accelerometer and gyroscope. They can be set to alert on over/under thresholds, data ready, or FIFO overruns. |
INT1 | Accel/Gyro Interrupt 1 | |
INTM | Magnetometer Interrupt | A programmable interrupt for the magnetometer. Can be set to alert on over-under thresholds. |
RDY | Magnetometer Data Ready | An interrupt indicating new magnetometer data is available. Non-programmable. |
CS M | Magnetometer Chip Select | This pin selects between I2C and SPI on the magnetometer. Keep it HIGH for I2C, or use it as an (active-low) chip select for SPI. HIGH (1): SPI idle mode / I2C enabled LOW (0): SPI enabled / I2C disabled. |
CS AG | Accel/Gyro Chip Select | This pin selects between I2C and SPI on the accel/gyro. Keep it HIGH for I2C, or use it as an (active-low) chip select for SPI. HIGH (1): SPI idle mode / I2C enabled LOW (0): SPI enabled / I2C disabled. |
SDO M | SPI: Magnetometer MISO I2C: Magnetometer Address Select | In SPI mode, this is the magnetometer data output (SDO_M). In I2C mode, this selects the LSb of the I2C address (SA0_M) |
SDO AG | SPI: Accel/Gyro MISO I2C: Accel/Gryo Address Select | In SPI mode, this is the accel/gryo data output (SDO_AG). In I2C mode, this selects the LSb of the I2C address (SA0_AG) |
Power Supply
The VDD and GND pins are where you'll supply a voltage and 0V reference to the IC. The breakout board does not regulate this voltage, so make sure it falls within the allowed supply voltage range of the LSM9DS1: 2.4V to 3.6V. Below is the electrical characteristics table from the datasheet.
The communication pins are not 5V tolerant, so they'll need to be regulated to within a few mV of VDD.
Another very cool thing about this sensor is how low-power it is. In normal operation -- with every sensor turned on -- it'll pull around 4.5mA.
Communication
CS_AG, CS_M, SDO_AG, SDO_M, SCL, and SDA are all used for the I2C and SPI interfaces. The function of these pins depends upon which of the two interfaces you're using.
If you're using using I2C here's how you might configure these pins:
- Pull CS_AG and CS_M HIGH. This will set both the accel/gyro and magnetometer to I2C mode.
- Set SDO_AG and SDO_M either HIGH or LOW. These pins set the I2C address of the gyro and accel/mag sensors.
- Connect SCL to your microcontroller's SCL pin.
- Connect SDA to your microcontroller's SDA pin.
- The board has a built-in 10kΩ pull-up resistor on both SDA and SCL lines. If that value is too high, you can add a second resistor in parallel to divide the pull-up resistance down (another 10kΩ in parallel, for example, would create an equivalent 5kΩ resistance).
Or, if you're using SPI:
- Connect CS_AG and CS_M to two individually controllable pins on your microcontroller. These chip-selects are active-low -- when the pin goes LOW, SPI communication with either the accel/gyro (CS_AG) or magnetometer (CS_M) is enabled.
- SDO_AG and SDO_M are the serial data out pins. In many cases you'll want to connect them together, and wire them to your microcontroller's MISO (master-in, slave-out) pin.
- Connect SCL to your microcontroller's SCLK (serial clock) pin.
- Connect SDA to your microcontroller's MOSI (master-out, slave-in) pin.
Interrupts
There are a variety of interrupts on the LSM9DS1. While connecting up to these is not as critical as the communication or power supply pins, using them will help you get the most out of the chip.
The accelerometer- and gyroscope-specific interrupts are INT1 and INT2. These can both be programmed to interrupt as either active-high or active-low, triggering on events like data ready or when an acceleration or angular rotation exceeds a set threshold.
DRDY and INTM are devoted magnetometer interrupts. DRDY will go low when new magnetometer readings are available. INTM is a little more customizable -- it can be used to trigger whenever magnetic field readings exceed a threshold on a set axis.
The Jumpers
Flipping the LSM9DS1 breakout over reveals a trio of two-way, surface mount jumpers. Each of these jumpers comes closed. Their purpose is to automatically put the LSM9DS1 into I2C mode.
Each of these jumpers pulls a pair of pins up to VDD, through a 10kΩ resistor. The middle pad of the jumper connects to the resistor, and the edge pads connect to a pin (follow the labels to find out which one). You can see how those jumpers match up on the schematic:
The top jumper connects CS_AG and CS_M to a pull-up -- this'll set the LSM9DS1 to I2C mode. The middle jumper pulls up SDO_AG and SDO_M, which sets the I2C address of the chip. Finally, the far-left jumper adds pull-up resistors to the I2C communication pins -- SDA and SCL.
The intention of these jumpers is to make it as easy-as-possible to use the board; using as few wires as possible. If you're using the breakout with I2C, you can ignore the four SDO and CS pins.
To disable any of these jumpers, whip out your handy hobby knife, and carefully cut the small traces between middle pad and edge pads. Even if you're using SPI, though, the jumpers shouldn't hinder your ability to communicate with the chip.