LSM6DSL datasheet, application note & Arduino
- Resolution: -
- Sensor Type: -
- Output Type: -
- Package: -

FREE delivery for orders over HK$250.00

Quick response, quick quotaton

Flash shipment,no worries after sales

Original channel,guarantee of the authentic products
IMU ST LSM6DSL getting boiling hot (i2c)
LSM6DSL
When you’re building a portable project like a smartwatch or drone, the LSM6DSL sensor is a great choice. It combines a 3-axis accelerometer and 3-axis gyroscope, letting you accurately track both linear acceleration and rotational speed. Its sensitivity is impressive, measuring acceleration down to 0.061 mg and angular velocity as precise as 4.375 mdps.
It’s also super low-power—less than 0.65 mA under typical operation, ideal for battery-powered devices. You can easily communicate via I²C or SPI, and the built-in 4KB FIFO buffer lets you efficiently manage data batches.
Plus, it includes built-in motion features like free-fall detection, tap sensing, and step counting, saving you from extra development. Its internal temperature compensation ensures stable and accurate readings, even in tricky environments. Lastly, it’s very compact at just 2.5mm by 3mm, making your PCB layout neat and efficient.
LSM6DSL Pinout And Interface

| Pin Number | Pin Name | Function Description |
|---|---|---|
| 1 | VDD | Analog Power Supply (1.71 ~ 3.6 V) |
| 2 | GND | Ground |
| 3 | VDDIO | Digital Interface Power Supply (1.71 ~ 3.6 V) |
| 4 | SCL/SPC | I²C Clock Line or SPI Clock Line |
| 5 | SDA/SDI/SDO | I²C Data Line / SPI Data Input (4-wire SPI) or SPI Data Output (3-wire SPI) |
| 6 | SDO/SA0 | SPI Data Output or I²C Address Selection |
| 7 | CS | SPI Chip Select (Active Low) |
| 8 | INT1 | Interrupt Output Pin 1 (Motion/Event Notification) |
| 9 | INT2 | Interrupt Output Pin 2 (Motion/Event Notification) |
| 10 | NC | No Connection, leave floating |
| 11 | NC | No Connection, leave floating |
| 12 | NC | No Connection, leave floating |
| 13 | NC | No Connection, leave floating |
| 14 | NC | No Connection, leave floating |
When using the LSM6DSL sensor, you can pick either I²C or SPI mode.
In I²C mode, just connect SCL (clock) and SDA (data) lines. The SA0 pin sets your I²C address: connect it to ground for 0x6A, or VDDIO for 0x6B.
In SPI mode, you’ll need to connect a few extra pins: CS for chip selection (active low), SCL/SPC for the clock line, SDA/SDI for data input (MOSI), and SDO for data output (MISO).
Make sure VDD is powered by a clean, stable voltage source. Match VDDIO with your MCU logic levels, typically 1.8V or 3.3V.
INT pins trigger event notifications—leave them floating or grounded if unused. NC pins should remain unconnected.
SPI offers higher speed and reliability for demanding applications, while I²C is simpler for basic setups.
LSM6DSL Equivalent IMU Sensor

| Parameter / Model | LSM6DSL | LSM6DS3 | ICM-20602 | BMI160 | MPU-6050 |
|---|---|---|---|---|---|
| Package Type | LGA-14 | LGA-14 | LGA-16 | LGA-14 | QFN-24 |
| Acceleration Range | ±2/4/8/16g | ±2/4/8/16g | ±2/4/8/16g | ±2/4/8/16g | ±2/4/8/16g |
| Gyroscope Range | ±125 ~ ±2000 dps | ±125 ~ ±2000 dps | ±250 ~ ±2000 dps | ±125 ~ ±2000 dps | ±250 ~ ±2000 dps |
| Interface | I²C/SPI | I²C/SPI | I²C/SPI | I²C/SPI | I²C |
| Operating Voltage | 1.71 ~ 3.6V | 1.71 ~ 3.6V | 1.71 ~ 3.45V | 1.71 ~ 3.6V | 2.375 ~ 3.46V |
| Typical Power Consumption | 0.65mA | 0.9mA | 2.8mA | 0.95mA | 3.9mA |
| FIFO Size | 4KB | 8KB | 512 Bytes | 1KB | 1024 Bytes |
| Temperature Range | -40 ~ 85°C | -40 ~ 85°C | -40 ~ 85°C | -40 ~ 85°C | -40 ~ 85°C |
When choosing replacements for your LSM6DSL sensor, go for options like the LSM6DS3 or BMI160—they’re pin-compatible and share the same packaging, so you won’t need any PCB redesign. The ICM-20602 is similar but uses an LGA-16 package, meaning you’ll need to tweak your board layout slightly. The MPU-6050 is even trickier, as it has a completely different QFN package and only supports I²C, so it requires a complete board redesign.
If power consumption is a concern, stick with the LSM6DSL or BMI160; they’re better suited for low-power applications. ICM-20602 and MPU-6050 typically draw more current, not ideal for battery-powered devices. Also, remember the MPU-6050 only works with I²C, so skip it if you’re using SPI.
Finally, if you need more FIFO storage, the LSM6DS3’s 8KB FIFO offers the most capacity.
LSM6DSL Arduino Example Project
If you want to easily read motion data using Arduino and the LSM6DSL sensor, it’s actually quite straightforward. The LSM6DSL has a built-in accelerometer and gyroscope. The accelerometer lets you measure movement along the X, Y, and Z axes, handy for tilt or motion detection, while the gyroscope measures angular velocity, useful for rotation or orientation tracking.
You just need your Arduino (like Uno or Mega), an LSM6DSL sensor module, and a few jumper wires. Use Arduino’s 3.3V for power (don’t use 5V!), and connect the sensor via I²C (pins A4 and A5 on Uno).
After installing the Adafruit LSM6DSL library in your Arduino IDE and uploading the sample sketch, you’ll instantly see real-time acceleration and gyro data in the serial monitor.
This simple project helps you quickly grasp sensor basics, making it easy to expand into more complex tasks like orientation tracking or advanced motion sensing later on.
LSM6DSL Sensor Fusion Example
If you’re using Arduino with an LSM6DSL sensor and want accurate orientation angles, Sensor Fusion is your best bet. The LSM6DSL has an accelerometer that’s great for detecting tilt but sensitive to vibrations. Its gyro precisely tracks rotations but drifts over time.
You can combine both using a simple method called “Complementary Filter.” Basically, you trust gyro data in short bursts but correct drift with the accelerometer over time, blending the strengths of both.
Wiring is straightforward: just use 3.3V power and connect I²C lines (A4/SDA, A5/SCL). After uploading your sketch and opening the serial monitor, you’ll see stable Roll and Pitch angles update as you tilt or move the sensor.
This approach is perfect for drone flight controllers, self-balancing robots, or AR/VR tracking systems. It’s precise, stable, and incredibly versatile.
LSM6DSL Motion Tracking Circuit
![]()
When you’re using an LSM6DSL sensor for motion tracking, there are a few simple tips for wiring. First, power the VDD and VDDIO pins with a stable source and add two small 100nF capacitors to filter out noise.
Usually, you’d communicate via the I²C interface—just hook up the SDA (data) and SCL (clock) lines. If you prefer SPI, you’ll also use the CS and SDO/SA0 pins. The INT1 and INT2 pins are handy for signaling your microcontroller when to read data.
The sensor itself combines a 3-axis accelerometer and gyroscope, providing real-time motion data. Using an Arduino and some sensor fusion algorithms like Complementary or Kalman filtering, you’ll accurately track movement and orientation.
Ensure good filtering for your power and communication lines to maintain high signal quality, which makes a big difference in real-world applications.
LSM6DSL SPI I2C Wiring Guide
I²C:
| LSM6DSL Pin | Arduino Pin | Function |
|---|---|---|
| VDD | 3.3V | Main power supply |
| VDDIO | 3.3V | Interface logic level power supply |
| GND | GND | Ground |
| SDA | A4 (Uno) | I²C data line |
| SCL | A5 (Uno) | I²C clock line |
| SDO/SA0 | GND/VDDIO | Address selection (typically connected to GND) |
| CS | VDDIO | Must be connected to a high level to activate I²C mode |
When you’re using the LSM6DSL sensor with I²C, keep in mind you’ll usually need pull-up resistors (around 4.7kΩ) on the SDA and SCL lines connected to VDDIO—unless your module already has built-in resistors.
Also, the SDO/SA0 pin sets your I²C address: connect it to ground (GND) for address 0x6A, or to VDDIO for address 0x6B. Choose the setting that fits your design best.
SPI:
| LSM6DSL Pin | Arduino Pin | Function Description |
|---|---|---|
| VDD | 3.3V | Main power supply |
| VDDIO | 3.3V | Interface logic level power supply |
| GND | GND | Ground |
| SDO | MISO (11) | Master Input Slave Output data |
| SDA | MOSI (12) | Master Output Slave Input data |
| SCL | SCK (13) | SPI Clock Signal |
| CS | Any Digital Pin | SPI Chip Select signal, active low |
When you’re using SPI to connect the LSM6DSL sensor, make sure you use SPI mode 0 or 3. To communicate, your controller needs to pull the CS pin low to initiate communication, and pull it high again once you’re done.
It’s also a good idea to add a weak pull-up resistor (about 10kΩ) on the CS pin. This ensures the CS pin stays high when the sensor isn’t in use, preventing accidental data interference.






