๐Ÿ“ฃ๐Ÿ“ช ๐Ÿšš Adafruit will not be shipping USPS orders Monday October 14, 2019 ๐Ÿ—“. Expedited USPS orders placed after 11am ET ๐Ÿ•š Friday October 11 will go out Tuesday October 15 ๐Ÿ“ฃ๐Ÿ“ช๐Ÿšš
0

BNO055 Stopped Working
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

BNO055 Stopped Working

by cornerstonerobotics on Wed Jun 10, 2015 4:43 pm

Hello, my BNO055 breakout board that I received June 4 just stopped working. I was told to post my problem here in hope for a refund.

I received the breakout board last Thursday June 4. I've been using it pretty regularly and have been successfully running tests on it since then. Today, I had it plugged in and it simply stopped working. Note that I was not making any changes while it stopped working. I've never dropped it, been rough with it, or done anything that could break a chip like this. I ran several tests to make sure that it is this chip that is the problem. (I quintuple-checked all the wiring, switched out the Arduino board, wires, and breadboard, etc.)

The reason I know it's not working is that the rawdata example program only returns "Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!". This code is below.

Here's a link to some images I took of the board and its wiring: http://imgur.com/a/7sW6b

This is my order number, note that I'm only requesting a refund for the BNO055: 799497-5516180929

Please let me know if any more information is required.

Thank you,
Cornerstone Robotics

Code: Select all | TOGGLE FULL SIZE
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <utility/imumaths.h>

/* This driver reads raw data from the BNO055

   Connections
   ===========
   Connect SCL to analog 5
   Connect SDA to analog 4
   Connect VDD to 3.3V DC
   Connect GROUND to common ground

   History
   =======
   2015/MAR/03  - First release (KTOWN)
*/

unsigned long time;
double zax;
double ax;
double vx = 0;
int i = 0;
int m = 0;
int m1 = 0;
int p;
int o;

/* Set the delay between fresh samples */
#define BNO055_SAMPLERATE_DELAY_MS (100)

Adafruit_BNO055 bno = Adafruit_BNO055();

/**************************************************************************/
/*
    Arduino setup function (automatically called at startup)
*/
/**************************************************************************/
void setup(void)
{
  Serial.begin(9600);
  Serial.println("Orientation Sensor Raw Data Test"); Serial.println("");
  pinMode(13,OUTPUT);
  /* Initialise the sensor */
  if (!bno.begin())
  {
    /* There was a problem detecting the BNO055 ... check your connections */
    Serial.print("Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!");
    while (1);
  }

  delay(1000);

  /* Display the current temperature */
  int8_t temp = bno.getTemp();
  Serial.print("Current Temperature: ");
  Serial.print(temp);
  Serial.println(" C");
  Serial.println("");

  bno.setExtCrystalUse(true);
  calibrate();
}

void calibrate(void) {
  time = millis();
  digitalWrite(13, LOW);
  m1 = 100;
  i = 0;
  p = 0;
  o = 1;
  Serial.println("Calibrating...");
  do{
    imu::Vector<3> accel = bno.getVector(Adafruit_BNO055::VECTOR_LINEARACCEL);
    ax = accel.x();
  } while(ax == 0);
  while (i == 0) {
    imu::Vector<3> accel = bno.getVector(Adafruit_BNO055::VECTOR_LINEARACCEL);
    Serial.println(accel.x());
    ax = accel.x();
    zax += ax;
/*   ay = accel.acceleration.y;
    zay += ay;
    az = accel.acceleration.z;
    zaz += az;
    gx = gyro.gyro.x;
    zgx += gx;
    gy = gyro.gyro.y;
    zgy += gy;
    gz = gyro.gyro.z;
    zgz += gz; */
    m = millis() - time;
    p++;
    if (m > m1) {
      if (o == 0) {
        digitalWrite(13, HIGH);
        o = 1;
      } else {
        digitalWrite(13, LOW);
        o = 0;
      }
      m1 += 100;
    }
    if (m > 9999) {
      i = 1;
      zax /= p;
   /*   zay /= p;
      zaz /= p;
      zaz -= 1;
      zgx /= p;
      zgy /= p;
      zgz /= p; */
    }
  }
}
/**************************************************************************/
/*
    Arduino loop function, called once 'setup' is complete (your own code
    should go here)
*/
/**************************************************************************/
void loop(void)
{
  // Possible vector values can be:
  // - VECTOR_ACCELEROMETER - m/s^2
  // - VECTOR_MAGNETOMETER  - uT
  // - VECTOR_GYROSCOPE     - rad/s
  // - VECTOR_EULER         - degrees
  // - VECTOR_LINEARACCEL   - m/s^2
  // - VECTOR_GRAVITY       - m/s^2
  imu::Vector<3> euler = bno.getVector(Adafruit_BNO055::VECTOR_EULER);
  imu::Vector<3> accel = bno.getVector(Adafruit_BNO055::VECTOR_LINEARACCEL);
  imu::Vector<3> accel1 = bno.getVector(Adafruit_BNO055::VECTOR_ACCELEROMETER);
  int8_t temp = bno.getTemp();
  /* Display the floating point data */
  Serial.print("X: ");
  Serial.print(euler.x(), 4);
  Serial.print(" Y: ");
  Serial.print(euler.y(), 4);
  Serial.print(" Z: ");
  Serial.print(euler.z(), 4);
  Serial.print("");
  Serial.print("\tX: ");
  ax = accel.x() - zax;
  vx += ax;
  Serial.print(vx, 4);
  Serial.print(" Y: ");
  Serial.print(ax, 4);
  Serial.print(" Z: ");
  Serial.print(accel.x(), 4);
  Serial.print("");
  Serial.print("\tCurrent Temperature: ");
  Serial.print(temp);
  Serial.println(" C");
  Serial.println("");

  /*
  // Quaternion data
  imu::Quaternion quat = bno.getQuat();
  Serial.print("\tqW: ");
  Serial.print(quat.w(), 4);
  Serial.print(" qX: ");
  Serial.print(quat.y(), 4);
  Serial.print(" qY: ");
  Serial.print(quat.x(), 4);
  Serial.print(" qZ: ");
  Serial.print(quat.z(), 4);
  Serial.println("");
  */

  //delay(BNO055_SAMPLERATE_DELAY_MS);
}

cornerstonerobotics
 
Posts: 8
Joined: Mon Oct 20, 2014 3:35 pm

Re: BNO055 Stopped Working

by adafruit_support_mike on Thu Jun 11, 2015 12:16 am

Your soldering looks good and the connections are correct.

As a sanity check, test the voltages at the 3vo, SDA, and SCL pins.

adafruit_support_mike
 
Posts: 59116
Joined: Thu Feb 11, 2010 2:51 pm

Re: BNO055 Stopped Working

by cornerstonerobotics on Thu Jun 11, 2015 11:29 am

I get 3.28 V from 3vo and 4.86 V from SDA and SCL when it's all plugged in. When I remove the SDA and SCL wires, I get 4.83 V, so not much of a difference.

cornerstonerobotics
 
Posts: 8
Joined: Mon Oct 20, 2014 3:35 pm

Re: BNO055 Stopped Working

by adafruit_support_mike on Thu Jun 11, 2015 8:55 pm

Those are the expected values.

It could be a problem with the chip, or with one of the mosfets in the level shifter. Either way, it's not a highly DIY-able issue to fix.

Send a note to support@adafruit.com with a link to this thread and the folks there will get you a replacement BNO055 breakout. (#2472)

adafruit_support_mike
 
Posts: 59116
Joined: Thu Feb 11, 2010 2:51 pm

Please be positive and constructive with your questions and comments.