LSM9DS1 Guide Datasheet by Adafruit Industries LLC
View All Related Products | Download PDF Datasheet
m
u
t
5
Y
s
Q
m
a
m
n
u
r
f
a
d
a
%
“ : 2;
(9
HQ
mil 0
I ntf'mmm
m a 1m m
mov-Y. 1 ow.
10m am. ow
won Wave”
, Om 9.. cm «on
mofiafil on
In] ImO
AMI] "1L.“ .Om
m
_, I.
0?-
“wamxmu
O
Adafruit LSM9DS1 Accelerometer + Gyro + Magnetometer 9-DOF
Breakout
Created by lady ada
Last updated on 2018-12-07 09:03:21 PM UTC

2
3
5
5
5
5
5
7
7
8
9
11
11
11
12
12
13
14
14
14
16
16
16
17
17
19
21
22
22
22
Guide Contents
Guide Contents
Overview
Pinouts
Power Pins
I2C Pins
SPI Pins
Interrupt & Misc Pins
Assembly
Prepare the header strip:
Add the breakout board:
And Solder!
Arduino Code
Wiring for Arduino
Download Adafruit_LSM9DS1
Download Adafruit_Sensor
Load Demo Sketch
Library Reference
Begin!
Set Ranges
Read data
Python & CircuitPython
CircuitPython Microcontroller Wiring
Python Computer Wiring
CircuitPython Installation of LSM9DS1 Library
CircuitPython & Python Usage
Full Example Code
Python Docs
Downloads
Files
Schematic and Fabrication Print
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 2 of 23
Overview
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 accelerating in 3D space. The other is a 3-axis magnetometer that can
sense where the strongest magnetic force is coming from, generally used to detect magnetic north. The third is a 3-
axis gyroscope that can measure spin and twist. By combining this data you can REALLY orient yourself.
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 3 of 23
We‘ve Carried the LSM9DSO from ST for a while, and the LSM9D51 is their \atest Offering, We thought this could reaHy
L‘SHSDS’i 9 GDP
axis Accel/r‘laq/Ggrc
12C or SDI
[0 00000 O
? 3'
cc-2s4v-o
[555755 UIN. 3_3_5U
suisayel
We've carried the LSM9DS0 from ST for a while, and the LSM9DS1 is their latest offering. We thought this could really
make for a great breakout, at a very nice price! Design your own activity or motion tracker with all the data... We spun
up a breakout board that has all the extra circuitry you'll want, for use with an Arduino (or other microcontroller)
The LSM9DS1 is not the same set of sensors as the LSM9DS0. Here are some of the differences
LSM9DS0 accelerometer has ±2/±4/±6/±8/±16
g
ranges. The LSM9DS1 has ±2/±4/±8/±16
g
(no ±6
g
range)
LSM9DS0 magnetometer has ±2/±4/±8/±12 gauss ranges. The LSM9DS1 has ±4/±8/±12/±16 gauss ranges. So the
LSM9DS0 has ±2 gauss low range where-as the LSM9DS1 has ±16 gauss high range
LSM9DS0 and LSM9DS1 gyros
both
have the same ±245/±500/±2000 dps ranges.
There are other differences, for example we noticed the LSM9DS1 has slightly worse accuracy. The gyro angular zero-
rate (±25 for the LSM9DS0 and ±30 for the LSM9DS1 at the highest sensing range). The accelerometer offset accuracy
is ±90 m
g
for the LSM9DS1 and ±60 m
g
for the LSM9DS0.
However, these offsets may not matter for most projects and the pricing of the LSM9DS1 is lower than the LSM9DS0
The breakout board version of this sensor has both I2C and SPI interfaces. Attaching it to the Arduino is simple, power
Vin and GND with 3-5VDC, and wire up I2C data on SCL and SDA, and you're ready to go! More advanced users can
use SPI, our library has support for both. The breakout comes fully assembled and tested, with some extra header so
you can use it on a breadboard. Four mounting holes make for a secure connection, and we put the popular
power+data pins on one side, and the interrupt pins on the other side for a nice & compact breakout.
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 4 of 23
l
w
!
SflSDSl
Interrupt & Misc Pins
Pinouts
Power Pins
The sensor on the breakout requires 3V power. Since many customers have 5V microcontrollers like Arduino, we
tossed a 3.3V regulator on the board. Its ultra-low dropout so you can power it from 3.3V-5V just fine.
Vin - this is the power pin. Since the chip uses 3 VDC, we have included a voltage regulator on board that will
take 3-5VDC and safely convert it down. To power the board, give it the same power as the logic level of your
microcontroller - e.g. for a 5V micro like Arduino, use 5V
3V3 - this is the 3.3V output from the voltage regulator, you can grab up to 100mA from this if you like
GND - common ground for power and logic
I2C Pins
SCL - I2C clock pin, connect to your microcontrollers I2C clock line. This pin is level shifted so you can use 3-5V
logic, and there's a 10K pullup on this pin.
SDA - I2C data pin, connect to your microcontrollers I2C data line. This pin is level shifted so you can use 3-5V
logic, and there's a 10K pullup on this pin.
SPI Pins
If you're interested in using SPI to interface with the LSM9DS1, you can!
SCL - this is also the SPI clock pin, it's level shifted so you can use 3-5V logic input
SDA - this is also the SPI MOSI pin, it's level shifted so you can use 3-5V logic input
CSAG - this is the Accelerometer+Gyro subchip Chip Select, it's level shifted so you can use 3-5V logic input
CSM - this is the Magnetometer subchip Select, it's level shifted so you can use 3-5V logic input
SDOAG - this is the Accelerometer+Gyro subchip MISO pin - it's 3V logic out, but can be read properly by 5V
logic chips.
SDOM - this is the Magnetometer subchip MISO pin - it's 3V logic out, but can be read properly by 5V logic chips.
Interrupt & Misc Pins
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 5 of 23

Interrupt & Misc Pins
Since there's so many sensors in the LSM9DS1, there's quite a number of interrupt outputs.
DEN - this is a pin that supposedly could be used to dynamically enable/disable the Gyro. There's actually no
documentation on it but we break it out for you anyways.
INT1 & INT2 - These are interrupts from the accelerometer/gyro subchip. We don't have specific library support
for these so check the datasheet for what you can make these indicate. They are 3V-logic outputs
DRDY - this is the accelerometer/gyro subchip data ready output. We don't have specific library support for these
so check the datasheet for how you can set the registers to enable this pin. It is a 3V-logic output.
INTM - This is the interrupt from the magnetometer subchip. We don't have specific library support for it so check
the datasheet for what you can make it indicate. It is a 3V-logic output.
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 6 of 23
nzu Iii: [Mrs
00000.
l mu mm a
'l' .r- H
* I: a
' a ,
snuxfl
000000000
:ua scL css suns - _
|H|||||||_||lllll
Assembly
If you have the breadboard version of this sensor, you'll want to solder some header onto the sensor so it can be used
in a breadboard. The Flora version does not require any extra assembly
Prepare the header strip:
Cut the strip to length if necessary. It will be easier to
solder if you insert it into a breadboard - long pins down
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 7 of 23
And Solder!
Be sure to solder all pins for reliable electrical contact.
Solder the longer power/data strip first
(For tips on soldering, be sure to check out our Guide to
Excellent Soldering
(https://adafru.it/aTk)
).
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 9 of 23
If you plan to use the interrupts and/or you want the
board to sit flatter in a breadboard, solder up the other
strip!
You're done! Check your solder joints visually and
continue onto the next steps
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 10 of 23
fritzing
Arduino Code
Wiring for Arduino
You can easily wire this breakout to any microcontroller, we'll be using an Arduino. For another kind of microcontroller,
just make sure it has I2C or SPI, then port the code - its pretty simple stuff!
Let's start with just I2C interfacing since it requires the fewest # of wires:
Connect Vin to the power supply, 3-5V is fine. Use the same voltage that the microcontroller logic is based off of.
For most Arduinos, that is 5V
Connect GND to common power/data ground
Connect the SCL pin to the I2C clock SCL pin on your Arduino. On an UNO & '328 based Arduino, this is also
known as A5, on a Mega it is also known as digital 21 and on a Leonardo/Micro, digital 3
Connect the SDA pin to the I2C data SDA pin on your Arduino. On an UNO & '328 based Arduino, this is also
known as A4, on a Mega it is also known as digital 20 and on a Leonardo/Micro, digital 2
Download Adafruit_LSM9DS1
To begin reading sensor data, you will need to download the Adafruit_LSM9DS1 Library from our github
repository (https://adafru.it/uaX). You can do that by visiting the github repo and manually downloading or, easier, just
click this button to download the zip
https://adafru.it/uaY
https://adafru.it/uaY
Rename the uncompressed folder Adafruit_LSM9DS1 and check that the Adafruit_LSM9DS1 folder contains
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 11 of 23
AdafruiLLSMSDSlcpp and AdalruiLLSMBDSth
' —
® lmfldsl | Mum: ”,1
A
mum
mam]
Wmim
mm Arming
mm w) W library
Main." man"
Mama mum Iibnly
Mimi mm Iibflly
Mimi MAJG‘IAES Milly
mlmlhury '. gunpuml. wry).
mammary S:nu.px)m:|‘ m-z ;
mhucm1mmu uh,» SenaLpnncln (" m»:
:
Adafruit_LSM9DS1.cpp and Adafruit_LSM9DS1.h
Place the Adafruit_LSM9DS1 library folder your arduinosketchfolder/libraries/ folder.
You may need to create the libraries subfolder if its your first library. Restart the IDE.
We also have a great tutorial on Arduino library installation at:
http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use (https://adafru.it/aYM)
Download Adafruit_Sensor
The Adafruit_LSM9DS1 library uses the Adafruit_Sensor support backend so that readings can be normalized between
sensors. You can grab Adafruit_Sensor from the github repo (https://adafru.it/aZm) or just click the button below.
https://adafru.it/cMO
https://adafru.it/cMO
Install like you did with Adafruit_LSM9DS1
Restart the IDE!
Load Demo Sketch
Now you can open up File->Examples->Adafruit_LSM9DS1->lsm9ds1 and upload to your Arduino wired up to the
sensor
Then open up the Serial console at 115200 baud to read the sensor output! You'll get 9 distinct data points,
accelerometer x/y/z in meters/s , magetometer x/y/z in gauss and gyroscope in x/y/x degrees/second
2
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 12 of 23
1319051 an read dun
mum 1.145051 smr
Anne] 11 —o.02 Il/S‘Z
HM; x 0.32 anus:
nyu x: 05.17 dy-
m) x: 0.02 .1.
M00 x 0.32 was:
syn x: ~0.07 dps
lace] x: -0.05 nus-2
Hag x 0.32 gm]:-
.17 an:
Awe] x: —o.oz n/u-z
ng 0.32 0.0::
0.4; 09:
Lane] )1: 0.04 n/rz
Hm x: 0.31 anus:
Y
Y
-1.60 n/a-z
0.16 gnu:
—1:0.20 up:
—1.GD Ill-‘2
0.17 Emu:
4-6: up-
-1.60 nus-2
0.16 gull:
-0.95 an
-1.56 u/a-z
0.16 gnu:
-1.17 09.
—1.57 nun-2
0.16 000::
z:
z:
z:
z:
z:
z:
5.10 my:
70.29 gnu:
105.60 09.
9.75 n/r2
41.29 0.0::
4.07 09.
5.75 nus-2
—0.2n gnu
-fl.67 an:
9.71 nus-2
70.29 0-0::
—0.59 a”
9.69 .1012
-0.19 0-0:: v
mum - llmhflv
We suggest using this Adafruit_Sensor interface as shown in this demo, since it will let you swap sensors without
having to worry about units compatibility. Try twisting and moving the board around to see the sensors change value.
Library Reference
The library we have is simple and easy to use
You can create the Adafruit_LSM9DS1 object with:
I2C does not have pins, as they are fixed in hardware.
If you're using "hardware" SPI, you will have to wire up the pins as follows:
SCL -> SPI CLK
SDA -> SPI MOSI
SDO_AG & SDO_M -> SPI MISO (both together)
You can determine the hardware SPI pins for your Arduino here (https://adafru.it/d5h) Then pick two pins for the CS
lines
If you don't want to use the hardware SPI, you can also try the soft SPI capability, which is bitbanged. You can basically
use any pins you like!
Adafruit_LSM9DS1 lsm = Adafruit_LSM9DS1(); // i2c sensor
Adafruit_LSM9DS1 lsm = Adafruit_LSM9DS1(LSM9DS1_XGCS, LSM9DS1_MCS);
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 13 of 23
Begin!
To initialize the sensor, call lsm.begin() which will check the sensor can be found. It returns true/false depending on
these checks. We suggest you wrap begin() in a statement that will check if the sensor was located:
Set Ranges
These chips have tons of registers, we basically provide interface code for the most useful stuff, such as setting the
range. Each subsensor has it's own range. Higher ranges have less precision but can measure larger movements!
Set up the ranges with the setup functions:
Choose whichever range you like, after you begin() the sensor!
Read data
Read data using the Adafruit_Sensor API by first creating four events, one for each sub-sensor:
Then pass these into the getEvent function
The data is snapshotted at once, so you can read and manage the data later.
Adafruit_LSM9DS1 lsm = Adafruit_LSM9DS1(LSM9DS1_SCK, LSM9DS1_MISO, LSM9DS1_MOSI, LSM9DS1_XGCS, LSM9DS1_MCS);
if(!lsm.begin())
{
/* There was a problem detecting the LSM9DS1 ... check your connections */
Serial.print(F("Ooops, no LSM9DS1 detected ... Check your wiring!"));
while(1);
}
// 1.) Set the accelerometer range
lsm.setupAccel(lsm.LSM9DS1_ACCELRANGE_2G);
//lsm.setupAccel(lsm.LSM9DS1_ACCELRANGE_4G);
//lsm.setupAccel(lsm.LSM9DS1_ACCELRANGE_8G);
//lsm.setupAccel(lsm.LSM9DS1_ACCELRANGE_16G);
// 2.) Set the magnetometer sensitivity
lsm.setupMag(lsm.LSM9DS1_MAGGAIN_4GAUSS);
//lsm.setupMag(lsm.LSM9DS1_MAGGAIN_8GAUSS);
//lsm.setupMag(lsm.LSM9DS1_MAGGAIN_12GAUSS);
//lsm.setupMag(lsm.LSM9DS1_MAGGAIN_16GAUSS);
// 3.) Setup the gyroscope
lsm.setupGyro(lsm.LSM9DS1_GYROSCALE_245DPS);
//lsm.setupGyro(lsm.LSM9DS1_GYROSCALE_500DPS);
//lsm.setupGyro(lsm.LSM9DS1_GYROSCALE_2000DPS);
sensors_event_t accel, mag, gyro, temp;
lsm.getEvent(&accel, &mag, &gyro, &temp);
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 14 of 23
For the Accelerometer event you can read accelacceleralion‘x. accel‘accelerationy or accel‘accelerationz which are
For the Accelerometer event you can read accel.acceleration.x, accel.acceleration.y or accel.acceleration.z which are
in meters/second*second.
For the Magnetometer event you can read mag.magnetic.x, mag.magnetic.y or mag.magnetic.z which are in gauss.
For the Gyro event you can read gyro.gyro.x, gyro.gyro.y or gyro.gyro.z, which are in degrees-per-second (dps)
The temperature event data is in temp.temperature, but we don't guarantee that the temperature data is in degrees C
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 15 of 23
coo.
nag-o
Python & CircuitPython
It's easy to use the LSM9DS1 sensor with Python or CircuitPython, and the Adafruit CircuitPython
LSM9DS1 (https://adafru.it/C5b) module. This module allows you to easily write Python code that reads the
accelerometer, magnetometer, and gyroscope from the sensor.
You can use this sensor with any CircuitPython microcontroller board or with a computer that has GPIO and Python
thanks to Adafruit_Blinka, our CircuitPython-for-Python compatibility library (https://adafru.it/BSN).
CircuitPython Microcontroller Wiring
First wire up a LSM9DS1 to your board exactly as shown on the previous pages for Arduino. You can use either I2C or
SPI wiring, although it's recommended to use I2C for simplicity. Here's an example of wiring a Feather M0 to the sensor
with an I2C connection:
Board 3V to sensor VIN
Board GND to sensor GND
Board SCL to sensor SCL
Board SDA to sensor SDA
And an example of a Feather M0 wired with hardware SPI:
Board 3V to sensor VIN
Board GND to sensor GND
Board SCK to sensor SCL
Board MOSI to sensor SDA
Board MISO to sensor SDOAG AND sensor
SDOM
Board D5 to sensor CSAG
Board D6 to sensor CSM
Python Computer Wiring
Since there's
dozens
of Linux computers/boards you can use we will show wiring for Raspberry Pi. For other platforms,
please visit the guide for CircuitPython on Linux to see whether your platform is supported (https://adafru.it/BSN).
Here's the Raspberry Pi wired with I2C:
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 16 of 23
o...
Pi 3V3 to sensor VIN
Pi GND to sensor GND
Pi SCL to sensor SCL
Pi SDA to sensor SDA
Here's the Raspberry Pi wired with SPI:
Pi 3V3 to sensor VIN
Pi GND to sensor GND
Pi SCLK to sensor SCL
Pi MOSI to sensor SDA
Pi MISO to sensor SDOAG AND sensor
SDOM
Pi GPIO5 to sensor CSAG
Pi GPIO6 to sensor CSM
CircuitPython Installation of LSM9DS1 Library
You'll need to install the Adafruit CircuitPython LSM9DS1 (https://adafru.it/C5b) library on your CircuitPython board.
First make sure you are running the latest version of Adafruit CircuitPython (https://adafru.it/Amd) for your board.
Next you'll need to install the necessary libraries to use the hardware--carefully follow the steps to find and install these
libraries from Adafruit's CircuitPython library bundle (https://adafru.it/zdx). Our introduction guide has a great page on
how to install the library bundle (https://adafru.it/ABU) for both express and non-express boards.
Remember for non-express boards like the, you'll need to manually install the necessary libraries from the bundle:
adafruit_lsm9ds1.mpy
adafruit_bus_device
Before continuing make sure your board's lib folder or root filesystem has
the adafruit_lsm9ds1.mpy, and adafruit_bus_device files and folders copied over.
Next connect to the board's serial REPL (https://adafru.it/Awz) so you are at the CircuitPython >>> prompt.
CircuitPython & Python Usage
To demonstrate the usage of the sensor we'll initialize it and read the accelerometer, magnetometer, and more from
the board's Python REPL.
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 17 of 23

Run the following code to import the necessary modules and initialize the I2C connection with the sensor:
If you're connected using SPI, run the following code to initialise the SPI connection with the sensor:
Now you're ready to read values from the sensor using any of these properties:
acceleromter - A 3-tuple of X, Y, Z axis accelerometer values in meters/second squared.
magnetometer - A 3-tuple of X, Y, Z axis magnetometer values in gauss.
gyroscope - A 3-tuple of X, Y, Z axis gyroscope values in degrees/second.
temperature - The sensor temperature in degrees Celsius.
In addition you can adjust some properties by getting and setting their values:
accel_range - The range of the accelerometer, should be a value of ACCELRANGE_2G, ACCELRANGE_4G,
ACCELRANGE_8G, or ACCELRANGE_16G from the adafruit_lsm9ds1 module. The default is 2G.
mag_gain - The gain of the magnetometer, should be a value of MAGGAIN_4GAUSS, MAGGAIN_8GAUSS,
MAGGAIN_12GAUSS, or MAGGAIN_16GAUSS from the adafruit_lsm9ds1 module. The default is 4 gauss.
gyro_scale - The scale of the gyroscope, should be a value of GYROSCALE_245DPS, GYROSCALE_500DPS, or
GYROSCALE_2000DPS from the adafruit_lsm9ds1 module. The default is 245 DPS.
import board
import busio
import adafruit_lsm9ds1
i2c = busio.I2C(board.SCL, board.SDA)
sensor = adafruit_lsm9ds1.LSM9DS1_I2C(i2c)
import board
import busio
from digitalio import DigitalInOut, Direction
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
csag = DigitalInOut(board.D5)
csag.direction = Direction.OUTPUT
csag.value = True
csm = DigitalInOut(board.D6)
csm.direction = Direction.OUTPUT
csm.value = True
sensor = adafruit_lsm9ds1.LSM9DS1_SPI(spi, csag, csm)
print('Acceleration (m/s^2): ({0:0.3f},{1:0.3f},{2:0.3f})'.format(*sensor.accelerometer))
print('Magnetometer (gauss): ({0:0.3f},{1:0.3f},{2:0.3f})'.format(*sensor.magnetometer))
print('Gyroscope (degrees/sec): ({0:0.3f},{1:0.3f},{2:0.3f})'.format(*sensor.gyroscope))
print('Temperature: {0:0.3f}C'.format(sensor.temperature))
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 18 of 23

See the simpletest.py example (https://adafru.it/C5d) for a complete demo of printing the accelerometer,
magnetometer, gyroscope every second. Save this as code.py on the board and examine the REPL output to see the
range printed every second.
That's all there is to using the LSM9DS1 with CircuitPython!
Full Example Code
sensor.accel_range = adafruit_lsm9ds1.ACCELRANGE_4G
sensor.mag_gain = adafruit_lsm9ds1.MAGGAIN_8GAUSS
sensor.gyro_scale = adafruit_lsm9ds1.GYROSCALE_500DPS
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 19 of 23

# Simple demo of the LSM9DS1 accelerometer, magnetometer, gyroscope.
# Will print the acceleration, magnetometer, and gyroscope values every second.
import time
import board
import busio
import adafruit_lsm9ds1
# I2C connection:
i2c = busio.I2C(board.SCL, board.SDA)
sensor = adafruit_lsm9ds1.LSM9DS1_I2C(i2c)
#SPI connection:
# from digitalio import DigitalInOut, Direction
# spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
# csag = DigitalInOut(board.D5)
# csag.direction = Direction.OUTPUT
# csag.value = True
# csm = DigitalInOut(board.D6)
# csm.direction = Direction.OUTPUT
# csm.value = True
# sensor = adafruit_lsm9ds1.LSM9DS1_SPI(spi, csag, csm)
# Main loop will read the acceleration, magnetometer, gyroscope, Temperature
# values every second and print them out.
while True:
# Read acceleration, magnetometer, gyroscope, temperature.
accel_x, accel_y, accel_z = sensor.acceleration
mag_x, mag_y, mag_z = sensor.magnetic
gyro_x, gyro_y, gyro_z = sensor.gyro
temp = sensor.temperature
# Print values.
print('Acceleration (m/s^2): ({0:0.3f},{1:0.3f},{2:0.3f})'.format(accel_x, accel_y, accel_z))
print('Magnetometer (gauss): ({0:0.3f},{1:0.3f},{2:0.3f})'.format(mag_x, mag_y, mag_z))
print('Gyroscope (degrees/sec): ({0:0.3f},{1:0.3f},{2:0.3f})'.format(gyro_x, gyro_y, gyro_z))
print('Temperature: {0:0.3f}C'.format(temp))
# Delay for a second.
time.sleep(1.0)
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 20 of 23
.
0505
Marian ninUSTIIES \a nu
.W 3
mm,” m
W mm“ mm: nu mm
mm; FILE: Limbs: REU a bani: 1/1
‘ a . . ‘
Downloads
Files
EagleCAD PCB files on GitHub (https://adafru.it/ub2)
Fritzing object available in Adafruit Fritzing library (https://adafru.it/aP3)
https://adafru.it/ub3
https://adafru.it/ub3
Schematic and Fabrication Print
© Adafruit Industries https://learn.adafruit.com/adafruit-lsm9ds1-accelerometer-plus-gyro-plus-
magnetometer-9-dof-breakout Page 22 of 23
DEN INTi INT“
7, 7, 7, 7, 7
DRDY
© Adafruit Industries Last Updated: 2018-12-07 09:03:21 PM UTC Page 23 of 23
Products related to this Datasheet
LSM9DS1 ACCEL/MAG/GYRO/TEMP BRD

