Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

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

Image of Adafruit Precision 9-DoF ISM330DHCX + LIS3MDL FeatherWingDesign 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!
Image of ESP32-Based Force Measurement System with LSM303AGR Sensor: 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.

Open Project in Cirkit Designer
Image of ESP32-Based Vibration Feedback System with Quad Alphanumeric Display and ADXL343 Accelerometer: 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.

Open Project in Cirkit Designer
Image of Multi-Sensor Health Monitoring System with Adafruit Feather M0 Adalogger: 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.

Open Project in Cirkit Designer
Image of ESP32-Controlled Multi-MPU-9250 Motion Tracking System: 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.

Open Project in Cirkit Designer

Technical Specifications

Key Technical Details

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

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

Solutions and Tips for Troubleshooting

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.