Pololu Robotics & Electronics
Menu
My account Comments or questions? About Pololu Contact Ordering information Distributors

LSM6DS33 - Failed to Initialize and Detect IMU on Arduino Uno


#1

Hello,

This is the product that I am using: MinIMU-9 v5 Gyro, Accelerometer, and Compass (LSM6DS33 and LIS3MDL Carrier).

I am trying to interface this sensor to arduino uno and implement the Serial monitor example code. I have the following connections:

LSM6DS33 Arduino Uno
SCL--------------------> A5
SDA -------------------> A4
VIN -------------------> 5V
GND -------------------> GND

I installed the LSM6 library and both LSM6 and Wire libraries are in the example code shown below:

/*
The sensor outputs provided by the library are the raw
16-bit values obtained by concatenating the 8-bit high and
low accelerometer and gyro data registers. They can be
converted to units of g and dps (degrees per second) using
the conversion factors specified in the datasheet for your
particular device and full scale setting (gain).

Example: An LSM6DS33 gives an accelerometer Z axis reading
of 16276 with its default full scale setting of +/- 2 g. The
LA_So specification in the LSM6DS33 datasheet (page 11)
states a conversion factor of 0.061 mg/LSB (least
significant bit) at this FS setting, so the raw reading of
16276 corresponds to 16276 * 0.061 = 992.8 mg = 0.9928 g.
*/

#include <Wire.h>
#include <LSM6.h>

LSM6 imu;

char report[80];

void setup()
{
  Serial.begin(9600);
  Wire.begin();

  if (!imu.init())
  {
    Serial.println("Failed to detect and initialize IMU!");
    while (1);
  }
  imu.enableDefault();
}

void loop()
{
  imu.read();

  snprintf(report, sizeof(report), "A: %6d %6d %6d    G: %6d %6d %6d",
    imu.a.x, imu.a.y, imu.a.z,
    imu.g.x, imu.g.y, imu.g.z);
  Serial.println(report);

  delay(100);
}

I am unfamiliar with the sensor and not sure on why I keep getting the “Failed to Initialize and Detect imu” message on the serial monitor. Is there any way to fix this issue? Could it be a problem with the sensor itself? Or is there another library that needs to be included?

Thank you for the help!
Namratha


#2

Hello.

I am sorry you are having trouble communicating with your MinIMU-9 v5. To interface with the LSM6DS33, you should not need to use any other Arduino libraries besides LSM6 and Wire. Can you post pictures that clearly show your soldered joints and connections?

-Jon


#3

Hi Jon,

Thank you for the response. It seems that it was a connection issue, once I soldered the pins, the arduino was able to detect the sensor!

Best,
Namratha