Skip to Content

Accelerometer Gyro Sensor Module GY-LSM6DS3

The LSM6DS3 is a high-performance system-in-package featuring a 3D digital accelerometer and a 3D digital gyroscope. Operating at just 1.25 mA (up to 1.6 kHz ODR) in high-performance mode, this sensor enables always-on low-power features for an optimal motion experience. It's ideal for use in robotics, IoT, wearables, and consumer electronics.

Package Includes:

  • 1 x GY-LSM6DS3 6-Axis Accelerometer and Gyroscope Module

26.25 AED 26.25 AED Tax Included
26.25 AED Tax Included

Not Available For Sale

This combination does not exist.

Terms and Conditions
30-day money-back guarantee
Shipping: 2-3 Business Days

 

Features:

  • Always-on low-power consumption for both accelerometer and gyroscope
  • High-performance combo mode up to 1.6 kHz with just 1.25 mA current
  • ±2/±4/±8/±16 g full-scale acceleration range
  • ±125/±245/±500/±1000/±2000 DPS full-scale gyroscope range
  • Smart FIFO up to 8 KB
  • Analog supply voltage: 1.71V to 5V
  • SPI/I2C serial interface with processor synchronization

Important Note:

The LSM6DS3 is a 3.3V device. Supplying voltages above 3.6V can damage the IC. Use a logic level shifter for platforms operating at 5V.

Pinout:

LSM6DS3 Pinout

Pin Label Pin Function Notes
GND Ground 0V voltage supply
VDD Power Supply 1.8V – 3.6V input
SDA/SDI I2C: Serial Data, SPI: MOSI Data line for I2C or input for SPI
SCL Serial Clock Clock for I2C/SPI
SDO/SA0 I2C Address LSB, SPI MISO Data out or address config
CS Chip Select SPI select / I2C mode
INT1 / INT2 Interrupt Pins Custom triggers for data ready, motion, tap, etc.
OCS / SCX / SDX Aux SPI/I2C Slave interfaces for FIFO

Applications:

  • Motion and tilt detection
  • Gesture recognition
  • Wearables
  • Gaming and VR
  • Robotics

Arduino Code Example:

To get started, install the Arduino_LSM6DS3 library from the Library Manager.

#include "Arduino_LSM6DS3.h"

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.print("LSM6DS3 IMU initialization ");
  if (IMU.begin()) {
    Serial.println("completed successfully.");
  } else {
    Serial.println("FAILED.");
    IMU.end();
    while (1);
  }
  Serial.println();
}

void loop() {
  char buffer[8];
  float ax, ay, az;
  float gx, gy, gz;

  if (IMU.accelerationAvailable() && IMU.gyroscopeAvailable() &&
      IMU.readAcceleration(ax, ay, az) &&
      IMU.readGyroscope(gx, gy, gz)) {

    Serial.print("ax = "); Serial.print(dtostrf(ax, 4, 1, buffer)); Serial.print(" g, ");
    Serial.print("ay = "); Serial.print(dtostrf(ay, 4, 1, buffer)); Serial.print(" g, ");
    Serial.print("az = "); Serial.print(dtostrf(az, 4, 1, buffer)); Serial.print(" g, ");
    Serial.print("gx = "); Serial.print(dtostrf(gx, 7, 1, buffer)); Serial.print(" °/s, ");
    Serial.print("gy = "); Serial.print(dtostrf(gy, 7, 1, buffer)); Serial.print(" °/s, ");
    Serial.print("gz = "); Serial.print(dtostrf(gz, 7, 1, buffer)); Serial.println(" °/s");
  }

  delay(1000);
}