Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Adafruit LSM6DS3TR-C: Examples, Pinouts, and Specs

Image of Adafruit LSM6DS3TR-C
Cirkit Designer LogoDesign with Adafruit LSM6DS3TR-C in Cirkit Designer

Introduction

The Adafruit LSM6DS3TR-C (Part ID: 4503) is a high-performance 6-DoF (Degrees of Freedom) inertial sensor that integrates a 3-axis accelerometer and a 3-axis gyroscope. This compact sensor is designed for precise motion tracking and orientation detection, making it ideal for applications such as robotics, wearables, gaming devices, and IoT systems. Its low power consumption and high accuracy make it a versatile choice for projects requiring motion sensing.

Explore Projects Built with Adafruit LSM6DS3TR-C

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32-C3 Mini Based Health Monitoring System with LiPo Battery Power
Image of pp 2: A project utilizing Adafruit LSM6DS3TR-C in a practical application
This circuit is designed for health monitoring, featuring an ESP32-C3 Mini microcontroller that collects data from a MAX30102 heart rate and SpO2 sensor, and an Adafruit LSM303DLHC accelerometer and magnetometer. The system is powered by a 3.7V LiPo battery with a 3.3V regulator, and uses I2C communication with pull-up resistors for sensor interfacing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Ethernet with LSM303DLHC Accelerometer and Compass Interface
Image of Compass: A project utilizing Adafruit LSM6DS3TR-C in a practical application
This circuit connects an Adafruit LSM303DLHC Triple-axis Accelerometer+Magnetometer (Compass) to an Arduino Board Ethernet using I2C communication protocol. The SCL and SDA pins of the sensor are connected to the A5 and A4 pins of the Arduino, respectively, for serial clock and data transfer. The sensor is powered by the Arduino's 5V output, and both devices share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO R4 WiFi and Adafruit LIS3DH Accelerometer-Based Motion Detection System
Image of circuit: A project utilizing Adafruit LSM6DS3TR-C in a practical application
This circuit consists of an Arduino UNO R4 WiFi connected to an Adafruit LIS3DH Triple-Axis Accelerometer via I2C communication. The Arduino reads acceleration data from the LIS3DH sensor and outputs it to the serial monitor for further analysis or processing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Teensy 4.1 Based Biometric Data Acquisition System with AD8232 Heart Rate Monitor and LIS3DH Accelerometer
Image of Teensy 4.1 accelerometer: A project utilizing Adafruit LSM6DS3TR-C in a practical application
This circuit integrates a Teensy 4.1 microcontroller with an Adafruit LIS3DH Triple-Axis Accelerometer and an AD8232 Heart Rate Monitor. The accelerometer communicates with the Teensy via I2C (SCL and SDA lines), while the heart rate monitor's output and lead-off detection (LO+ and LO-) are connected to the Teensy's analog inputs. The circuit is designed to measure both acceleration and heart rate signals, likely for a wearable or health monitoring device.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Adafruit LSM6DS3TR-C

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of pp 2: A project utilizing Adafruit LSM6DS3TR-C in a practical application
ESP32-C3 Mini Based Health Monitoring System with LiPo Battery Power
This circuit is designed for health monitoring, featuring an ESP32-C3 Mini microcontroller that collects data from a MAX30102 heart rate and SpO2 sensor, and an Adafruit LSM303DLHC accelerometer and magnetometer. The system is powered by a 3.7V LiPo battery with a 3.3V regulator, and uses I2C communication with pull-up resistors for sensor interfacing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Compass: A project utilizing Adafruit LSM6DS3TR-C in a practical application
Arduino Ethernet with LSM303DLHC Accelerometer and Compass Interface
This circuit connects an Adafruit LSM303DLHC Triple-axis Accelerometer+Magnetometer (Compass) to an Arduino Board Ethernet using I2C communication protocol. The SCL and SDA pins of the sensor are connected to the A5 and A4 pins of the Arduino, respectively, for serial clock and data transfer. The sensor is powered by the Arduino's 5V output, and both devices share a common ground.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of circuit: A project utilizing Adafruit LSM6DS3TR-C in a practical application
Arduino UNO R4 WiFi and Adafruit LIS3DH Accelerometer-Based Motion Detection System
This circuit consists of an Arduino UNO R4 WiFi connected to an Adafruit LIS3DH Triple-Axis Accelerometer via I2C communication. The Arduino reads acceleration data from the LIS3DH sensor and outputs it to the serial monitor for further analysis or processing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Teensy 4.1 accelerometer: A project utilizing Adafruit LSM6DS3TR-C in a practical application
Teensy 4.1 Based Biometric Data Acquisition System with AD8232 Heart Rate Monitor and LIS3DH Accelerometer
This circuit integrates a Teensy 4.1 microcontroller with an Adafruit LIS3DH Triple-Axis Accelerometer and an AD8232 Heart Rate Monitor. The accelerometer communicates with the Teensy via I2C (SCL and SDA lines), while the heart rate monitor's output and lead-off detection (LO+ and LO-) are connected to the Teensy's analog inputs. The circuit is designed to measure both acceleration and heart rate signals, likely for a wearable or health monitoring device.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Robotics for motion and orientation tracking
  • Wearable devices for fitness and health monitoring
  • IoT devices for gesture recognition and environmental interaction
  • Gaming controllers for motion-based input
  • Drones for stabilization and navigation

Technical Specifications

The Adafruit LSM6DS3TR-C offers a range of features and specifications that make it suitable for a variety of applications. Below are the key technical details:

General Specifications

Parameter Value
Manufacturer Adafruit
Part ID 4503
Sensor Type 6-DoF (3-axis accelerometer + 3-axis gyroscope)
Communication Interface I2C, SPI
Operating Voltage 1.71V to 3.6V
Operating Temperature -40°C to +85°C
Power Consumption Ultra-low power mode available
Accelerometer Range ±2g, ±4g, ±8g, ±16g
Gyroscope Range ±125°/s, ±250°/s, ±500°/s, ±1000°/s, ±2000°/s
Output Data Rate (ODR) Up to 6.66 kHz
Package Size 2.5mm x 3mm x 0.83mm

Pin Configuration

The LSM6DS3TR-C breakout board from Adafruit includes the following pins:

Pin Name Description
VIN Power input (3.3V or 5V)
GND Ground
SCL I2C clock line (or SPI clock in SPI mode)
SDA I2C data line (or SPI data in SPI mode)
CS Chip select for SPI (leave unconnected for I2C)
INT1 Interrupt 1 output
INT2 Interrupt 2 output

Usage Instructions

The Adafruit LSM6DS3TR-C can be easily integrated into your project using I2C or SPI communication. Below are the steps to use the sensor in a circuit and some best practices.

Connecting the Sensor

  1. Power the Sensor: Connect the VIN pin to a 3.3V or 5V power source and the GND pin to ground.
  2. I2C Communication:
    • Connect the SCL pin to the I2C clock line on your microcontroller.
    • Connect the SDA pin to the I2C data line on your microcontroller.
    • Leave the CS pin unconnected.
  3. SPI Communication (optional):
    • Connect the CS pin to a GPIO pin on your microcontroller for chip select.
    • Use the SCL and SDA pins for SPI clock and data, respectively.
  4. Interrupts (optional): Connect INT1 and/or INT2 to GPIO pins on your microcontroller if you need to use interrupts.

Arduino Example Code

Below is an example of how to use the Adafruit LSM6DS3TR-C with an Arduino UNO via I2C. This example uses the Adafruit LSM6DS library, which can be installed via the Arduino Library Manager.

#include <Wire.h>
#include <Adafruit_LSM6DS3TRC.h>

// Create an instance of the LSM6DS3TR-C sensor
Adafruit_LSM6DS3TRC lsm6ds;

// Setup function to initialize the sensor
void setup() {
  Serial.begin(115200); // Start serial communication at 115200 baud
  while (!Serial) delay(10); // Wait for Serial Monitor to open

  Serial.println("Adafruit LSM6DS3TR-C Test");

  // Initialize the sensor
  if (!lsm6ds.begin_I2C()) {
    Serial.println("Failed to find LSM6DS3TR-C chip");
    while (1) delay(10); // Halt if sensor is not found
  }
  Serial.println("LSM6DS3TR-C Found!");

  // Configure the accelerometer and gyroscope ranges
  lsm6ds.setAccelRange(LSM6DS_ACCEL_RANGE_4_G); // Set accelerometer range to ±4g
  lsm6ds.setGyroRange(LSM6DS_GYRO_RANGE_250_DPS); // Set gyroscope range to ±250°/s
}

// Loop function to read and display sensor data
void loop() {
  sensors_event_t accel, gyro, temp;

  // Get sensor events
  lsm6ds.getEvent(&accel, &gyro, &temp);

  // Print accelerometer data
  Serial.print("Accel X: "); Serial.print(accel.acceleration.x); Serial.print(" m/s^2 ");
  Serial.print("Y: "); Serial.print(accel.acceleration.y); Serial.print(" m/s^2 ");
  Serial.print("Z: "); Serial.print(accel.acceleration.z); Serial.println(" m/s^2");

  // Print gyroscope data
  Serial.print("Gyro X: "); Serial.print(gyro.gyro.x); Serial.print(" rad/s ");
  Serial.print("Y: "); Serial.print(gyro.gyro.y); Serial.print(" rad/s ");
  Serial.print("Z: "); Serial.print(gyro.gyro.z); Serial.println(" rad/s");

  // Print temperature data
  Serial.print("Temperature: "); Serial.print(temp.temperature); Serial.println(" °C");

  delay(500); // Wait 500ms before the next reading
}

Best Practices

  • Use appropriate pull-up resistors (typically 4.7kΩ) on the I2C lines if they are not already included on the breakout board.
  • Ensure the operating voltage of your microcontroller matches the sensor's voltage requirements.
  • Avoid placing the sensor near sources of vibration or electromagnetic interference for accurate readings.

Troubleshooting and FAQs

Common Issues

  1. Sensor Not Detected:

    • Ensure the I2C address (default: 0x6A) matches the one in your code.
    • Check all connections for proper wiring.
    • Verify that the sensor is powered correctly.
  2. Incorrect or No Data:

    • Confirm that the accelerometer and gyroscope ranges are configured correctly.
    • Ensure the sensor is not exposed to excessive noise or vibrations.
  3. Interrupts Not Working:

    • Verify that the interrupt pins (INT1 and INT2) are connected to the correct GPIO pins.
    • Check the interrupt configuration in your code.

FAQs

Q: Can I use the LSM6DS3TR-C with a 5V microcontroller?
A: Yes, the breakout board includes a voltage regulator and level shifters, allowing it to work with both 3.3V and 5V systems.

Q: How do I switch between I2C and SPI modes?
A: By default, the sensor operates in I2C mode. To use SPI, connect the CS pin to a GPIO pin and configure it in your code.

Q: What is the maximum sampling rate of the sensor?
A: The sensor supports an output data rate (ODR) of up to 6.66 kHz for both the accelerometer and gyroscope.

Q: Can I use this sensor for gesture recognition?
A: Yes, the LSM6DS3TR-C is well-suited for gesture recognition applications due to its high sensitivity and accuracy.

For additional support, refer to the Adafruit LSM6DS3TR-C product page.