The SparkFun LSM6DSO 6 Degrees of Freedom Breakout is an accelerometer and gyroscope sensor with a giant 9kB FIFO buffer and embedded processing interrupt functions. Due to the capabilities and low cost of the LSM6DSO we've created this small breakout board just for you! Each LSM6DSO breakout has been designed to be super-flexible and can be configured specifically for many applications. With the LSM6DSO breakout you will be able to detect shocks, tilt, motion, taps, count steps, and even read the temperature!
The LSM6DSO from STMicroelectronics is capable of reading accelerometer and gyroscope data up to 6.66kHz for more accurate movement sensing. As stated before this breakout also has the ability to buffer up to 9kB of data between reads, host other sensors, and drive interrupt pins all thanks to the LSM6DSO's built-in FIFO.
Utilizing our handy Qwiic system, no soldering is required to connect it to the rest of your system. However, we still have broken out 0.1"-spaced pins in case you prefer to use a breadboard. Each pin has been broken out on the LSM6DSO, with one side of the board featuring power, I2C, and SPI functionality while the other side sporting pins that control auxiliary functionality and interrupt outputs.
Note: The LSM6DSO is a 3.3V device so supplying voltages greater than ~3.6V can permanently damage the IC. A logic level shifter is required for any development platform operating at 5V.
- Power and Logic Levels
We recommend powering the board through the Qwiic connector when quickly prototyping. For a more secure connection, you can always solder to the plated through-holes labeled 3V3 and GND. The recommended input voltage when using the board with a microcontroller is 3.3V if you are using the Qwiic connector. However, you can use a regulated supply voltage between 1.71V and 3.6V to power the sensor. The logic levels will match the input voltage (e.g. if the sensor is powered at 3.3V, the logic level will be 3.3V as well).
- I2C Pins
The main method of reading the LSM6DSO is through the I2C bus. The board includes two Qwiic connectors for fast prototyping and removes the need for soldering. All you need to do is plug a Qwiic cable into the Qwiic connector and voila! You can also solder to the plated through-holes labeled as SDA and SCL as an alternative. The default address for the IC is 0x6B. However, you can adjust the jumper on the back of the board to change the address to 0x6A.
- SPI Pins
If you decide to use a SPI bus, you will need to solder header pins or wires to the board.
- SDA/SDI - Device data in. Note that the SDA pin used for I2C is also the SDI pin used for SPI. Flipping the board to the bottom side will show the label for the SPI pin.
- SCL - Serial clock for either I2C or SPI.
- SDO - Device data out. By default, the SDO pin is connected to power to set the I2C address. Make sure to cut the trace as explained below if you decide to use this sensor in SPI mode.
- CS - Chip select.
When using the board in SPI mode, you will need to cut the I2C jumper for the default address (e.g. 0x6B) on the back and leave the jumper pads unconnected when using SPI.
- Interrupt pins
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. Make sure these are connected to an INPUT pin to prevent driving 5v back into the LSM6DSO.
There are a variety of interrupts on the LSM6DSO. While connecting 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 interrupt pins are INT1 and INT2. One or both pins can be software configured and mapped to the following conditions:
- Step detected
- Step detected after delta time
- Step counter overflowed
- Significant motion (shock, drop)
- FIFO full
- FIFO overrun
- FIFO threshold reached (Datasheet calls this the "watermark")
- Boot status
- Gyroscope data ready
- Accelerometer data ready
- Single tap
- Double tap
- 6D (orientation)
- Ironing interrupt
Only a few interrupt examples are provided. See the datasheet and application guide for using the advanced interrupt features.
- Auxiliary pins
The auxiliary serial data output pins are used to attach slave I2C and auxiliary SPI 3/4-wire devices for FIFO data collection. This function is not covered in this tutorial.
- OCS - aux chip select
- SCX - aux serial clock
- SDIX - aux serial data input
- SDOX - aux serial data output
- Jumper pins
There are five jumpers on the back of the board. For more information, check out tutorial on working with jumper pads and PCB traces should you decide to cut the traces with a hobby knife.
- LED - This is connected to the PWR LED on the top of the board. Cutting this disables the LED.
- I2C - The I2C jumper is connected to the 4.7kΩ pull-up resistors for the I2C bus. Most of the time you can leave these alone unless your project requires you to disconnect the pull-up resistors. SPI works with these connected but really should be cut apart for better signal shape at high speeds and to lower power consumption.
- 0x6B/0x6A - These jumpers are used to select the address 0x6B (default) or 0x6A for I2C communication. This jumper must be opened for SPI mode or the SDO line will not supply data.
- SCX - By default, this pin is connected to GND since ST recommends pulling the unused SCX to power or ground when not in use. For most users, you can leave this jumper alone. If your project requires connecting slave devices to the auxiliary pin, cut this trace.
- SDIX - By default, this pin is connected to GND since ST recommends pulling the unused SDIX to power or ground when not in use. For most users, you can leave this jumper alone. If your project requires connecting slave devices to the auxiliary pin, cut this trace.
The board includes an LED indicator that lights up when there is power available.
- Reference Axis
For easy reference, we've documented the 6DoF's vectors with 3D Cartesian coordinate axes on the top and bottom side of the board. Make sure to orient and mount the board correctly for your application. Remember, it's all relative.
Some of the things the LSM6DSO can do:
- Read accelerometer data up to 6.66 kilosamples per second, for super accurate movement sensing
- Read gyroscope data up to 6.66 kilosamples per second
- Operates at 0.55mA for up to 6.66 ksps modes
- Read temperature
- Buffer up to 9 kbytes of data between reads (built-in FIFO)
- Count steps (Pedometer)
- Detect shocks, tilt, motion, taps, double-taps
- Host other sensors into its FIFO
- Drive interrupt pins by embedded functions or by FIFO low-capacity/overflow warning.
- 2x Qwiic connectors
- I2C Address
- 0x6B (default), 0x6A
- Accelerometer measurement range
- ±2/±4/±8/±16 g full scale
- Gyro measurement range
- ±125/±250/±500/±1000/±2000 dps full scale
- Embedded temperature sensor
- 16-bit resolution
- Operating voltage range
- 1.71V to 3.6V
- Typically 3.3V if using the Qwiic cable
Note: The LSM6DSO is a 3.3V device! Supplying voltages greater than ~3.6V can permanently damage the IC. As long as your Arduino has a 3.3V supply output, and you're ok with using I2C, you shouldn't need any extra level shifting. If you want to use SPI, you may need a level shifter.
- Power consumption @ 1.8V
- 0.55 mA in combo high-performance mode
- 0.265 mA in combo low-power mode
- “Always on” experience with low power consumption for both accelerometer and gyroscope
- I2C/SPI serial interface with main processor data synchronization feature
- Smart FIFO up to 9 kbyte based on features set
- Operating temperature range
- -40°C to +85°C
- 1 x SparkFun 6 Degrees of Freedom Breakout - LSM6DSO (Qwiic)