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

How to Use Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing: Examples, Pinouts, and Specs

Image of Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing
Cirkit Designer LogoDesign with Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing in Cirkit Designer

Introduction

The Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing is a comprehensive sensor board designed for motion tracking and orientation sensing. It integrates a 3-axis accelerometer, a 3-axis gyroscope, and a 3-axis magnetometer, providing nine degrees of freedom (9-DoF) for precise motion and orientation data. This makes it an ideal component for applications in robotics, navigation, gesture recognition, and virtual reality, among others.

Explore Projects Built with Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing

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-Based Force Measurement System with LSM303AGR Sensor
Image of final circuit diagram: A project utilizing Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing in a practical application
This circuit features an Adafruit HUZZAH32 ESP32 Feather microcontroller connected to an Adafruit LSM303AGR sensor via I2C communication lines (SCL and SDA), a force sensing resistor (FSR) interfaced through an analog input with a pull-up resistor, and powered by a 3xAA battery pack. The LSM303AGR sensor provides acceleration and magnetic field measurements, while the FSR detects applied force. The ESP32 processes these inputs and can be programmed to respond to sensor data for applications such as motion tracking and force measurement.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Vibration Feedback System with Quad Alphanumeric Display and ADXL343 Accelerometer
Image of EC444 - Quest 3: A project utilizing Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing in a practical application
This circuit features an Adafruit HUZZAH32 ESP32 Feather board as the central microcontroller, which is connected to an Adafruit Quad AlphaNumeric Featherwing display and an Adafruit ADXL343 accelerometer via I2C communication (SCL and SDA lines). The ESP32 controls a vibration motor connected to one of its GPIO pins (A5_IO4) and shares a common power supply (3.3V) and ground (GND) with the other components. The purpose of this circuit is likely to read acceleration data, display information on the alphanumeric display, and provide haptic feedback through the vibration motor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Multi-Sensor Health Monitoring System with Adafruit Feather M0 Adalogger
Image of health tracker: A project utilizing Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing in a practical application
This circuit is designed to interface multiple sensors with an Adafruit Feather M0 Adalogger microcontroller for data logging purposes. The sensors include a MAX30205 temperature sensor, a body dehydration sensor, a MAX30102 pulse oximeter, an Adafruit LSM6DSOX 6-axis accelerometer and gyroscope, and an Adafruit BME680 environmental sensor. All sensors are connected to the microcontroller via an I2C bus, sharing the SDA and SCL lines for communication.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Controlled Multi-MPU-9250 Motion Tracking System
Image of GloveMouse: A project utilizing Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing in a practical application
This circuit integrates an Adafruit HUZZAH32 ESP32 Feather microcontroller with four MPU-9250/6500/9255 sensors. The ESP32 is configured to communicate with the sensors via a shared SPI bus, as indicated by the connections to MISO, MOSI, and SCK pins, with individual chip select lines (NCS) for each sensor. The purpose of this circuit is likely to gather motion tracking data from multiple sensors for processing or logging by the ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing

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 final circuit diagram: A project utilizing Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing in a practical application
ESP32-Based Force Measurement System with LSM303AGR Sensor
This circuit features an Adafruit HUZZAH32 ESP32 Feather microcontroller connected to an Adafruit LSM303AGR sensor via I2C communication lines (SCL and SDA), a force sensing resistor (FSR) interfaced through an analog input with a pull-up resistor, and powered by a 3xAA battery pack. The LSM303AGR sensor provides acceleration and magnetic field measurements, while the FSR detects applied force. The ESP32 processes these inputs and can be programmed to respond to sensor data for applications such as motion tracking and force measurement.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of EC444 - Quest 3: A project utilizing Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing in a practical application
ESP32-Based Vibration Feedback System with Quad Alphanumeric Display and ADXL343 Accelerometer
This circuit features an Adafruit HUZZAH32 ESP32 Feather board as the central microcontroller, which is connected to an Adafruit Quad AlphaNumeric Featherwing display and an Adafruit ADXL343 accelerometer via I2C communication (SCL and SDA lines). The ESP32 controls a vibration motor connected to one of its GPIO pins (A5_IO4) and shares a common power supply (3.3V) and ground (GND) with the other components. The purpose of this circuit is likely to read acceleration data, display information on the alphanumeric display, and provide haptic feedback through the vibration motor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of health tracker: A project utilizing Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing in a practical application
Multi-Sensor Health Monitoring System with Adafruit Feather M0 Adalogger
This circuit is designed to interface multiple sensors with an Adafruit Feather M0 Adalogger microcontroller for data logging purposes. The sensors include a MAX30205 temperature sensor, a body dehydration sensor, a MAX30102 pulse oximeter, an Adafruit LSM6DSOX 6-axis accelerometer and gyroscope, and an Adafruit BME680 environmental sensor. All sensors are connected to the microcontroller via an I2C bus, sharing the SDA and SCL lines for communication.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of GloveMouse: A project utilizing Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWing in a practical application
ESP32-Controlled Multi-MPU-9250 Motion Tracking System
This circuit integrates an Adafruit HUZZAH32 ESP32 Feather microcontroller with four MPU-9250/6500/9255 sensors. The ESP32 is configured to communicate with the sensors via a shared SPI bus, as indicated by the connections to MISO, MOSI, and SCK pins, with individual chip select lines (NCS) for each sensor. The purpose of this circuit is likely to gather motion tracking data from multiple sensors for processing or logging by the ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer

Technical Specifications

Key Technical Details

  • Accelerometer/Gyroscope (ISM330DHCX):

    • 3-axis angular rate sensor (gyroscope) with a full-scale range of ±125/±250/±500/±1000/±2000 dps
    • 3-axis linear acceleration sensor (accelerometer) with a full-scale range of ±2/±4/±8/±16 g
    • Output Data Rates (ODR) from 12.5 Hz to 6.66 kHz
  • Magnetometer (LIS3MDL):

    • 3-axis magnetometer with a full-scale range of ±4/±8/±12/±16 gauss
    • Output Data Rate (ODR) up to 155 Hz
  • Operating Voltage: 3.3V

  • Interface: I2C

Pin Configuration and Descriptions

Pin Number Name Description
1 SCL I2C clock line for communication with the microcontroller
2 SDA I2C data line for communication with the microcontroller
3 3Vo 3.3V output from the regulator
4 GND Ground connection
5 INT1 Interrupt output from ISM330DHCX
6 INTM Interrupt output from LIS3MDL
7 RST Reset line for the sensors

Usage Instructions

Integration with a Circuit

To use the Adafruit Precision 9-DoF FeatherWing, follow these steps:

  1. Connect the SCL and SDA pins to the corresponding I2C clock and data lines on your microcontroller.
  2. Connect the 3Vo pin to the 3.3V power supply if needed.
  3. Connect the GND pin to the ground on your microcontroller.
  4. Optionally, connect the INT1 and INTM pins to available digital pins on your microcontroller if you plan to use interrupt features.
  5. If you need to reset the sensors, connect the RST pin to a digital pin on your microcontroller.

Important Considerations and Best Practices

  • Ensure that the power supply is 3.3V, as higher voltages can damage the sensors.
  • Use pull-up resistors on the I2C lines if your microcontroller does not have built-in pull-ups.
  • When placing the sensor in your project, avoid close proximity to magnetic fields or metals that can distort the magnetometer readings.
  • For accurate readings, calibrate the magnetometer in your final installation environment.

Example Code for Arduino UNO

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM6DS33.h>
#include <Adafruit_LIS3MDL.h>

// Create sensor instances
Adafruit_LSM6DS33 lsm6ds33;
Adafruit_LIS3MDL lis3mdl;

void setup() {
  Serial.begin(115200);
  // Initialize the sensors
  if (!lsm6ds33.begin_I2C()) {
    Serial.println("Failed to find LSM6DS33 chip");
    while (1) {
      delay(10);
    }
  }
  if (!lis3mdl.begin_I2C()) {
    Serial.println("Failed to find LIS3MDL chip");
    while (1) {
      delay(10);
    }
  }
}

void loop() {
  // Read the accelerometer and gyroscope
  sensors_event_t accel;
  sensors_event_t gyro;
  sensors_event_t mag;
  lsm6ds33.getEvent(&accel, &gyro, NULL);
  lis3mdl.getEvent(&mag);

  // Print the values to the Serial Monitor
  Serial.print("Accel X: "); Serial.print(accel.acceleration.x); Serial.print(" m/s^2 ");
  Serial.print("Gyro X: "); Serial.print(gyro.gyro.x); Serial.print(" rad/s ");
  Serial.print("Mag X: "); Serial.print(mag.magnetic.x); Serial.println(" uT ");

  // Add a delay between reads for stability
  delay(100);
}

Troubleshooting and FAQs

Common Issues

  • Sensor not detected: Ensure that the wiring is correct and that the I2C address is not conflicting with other devices on the bus.
  • Inaccurate readings: Calibrate the sensors, especially the magnetometer, and ensure there are no magnetic interferences nearby.
  • No data from the sensor: Check the power supply and connections. Ensure that the microcontroller's I2C library is properly initialized.

Solutions and Tips for Troubleshooting

  • Double-check the wiring and soldering for any loose connections or shorts.
  • Use the I2C scanner sketch to confirm the presence of the device on the I2C bus.
  • Reset the sensor using the RST pin if the sensor is unresponsive.
  • Consult the Adafruit forums and community for help if you encounter persistent issues.

FAQs

Q: Can I use this FeatherWing with a 5V microcontroller? A: Yes, but ensure that the logic levels are shifted to 3.3V to avoid damaging the sensors.

Q: How do I calibrate the magnetometer? A: Adafruit provides a calibration sketch and guide on their website. Follow the instructions to calibrate the magnetometer for accurate readings.

Q: What is the I2C address of the sensors? A: The ISM330DHCX default I2C address is 0x6B, and the LIS3MDL default I2C address is 0x1E. Make sure these addresses are not used by other I2C devices in your project.