Can you post more information on what Arduino you are using, what sensor you are using, how you have wired them, how the calibration routine runs....? Without these infos i doubt you will get any usable information.
So you have a BNO055 and the library reports no thingies. If you connected the device using I2C was the device identified?
Your actual code, formatted and posted in code tags, would be a big help. Along with an image of your device and its connections and a schematic, not FritzNuts, of some sort.
If its a BNO055 you can go on youtube and look at PaulMcWhorters IMU tutorial. Hes currently on lesson 13, but lesson 1-4 cover IMU basics and an entire lesson just on setting everything up and getting data from specifically the BNO055.
I believe that will get you set up quickly.
#include "NineAxesMotion.h" //Contains the bridge code between the API and the Arduino Environment
#include <Wire.h>
NineAxesMotion mySensor; //Object that for the sensor
unsigned long lastStreamTime = 0; //To store the last streamed time stamp
const int streamPeriod = 20; //To stream at 50Hz without using additional timers (time period(ms) =1000/frequency(Hz))
void setup() //This code is executed once
{
//Peripheral Initialization
Serial.begin(115200); //Initialize the Serial Port to view information on the Serial Monitor
I2C.begin(); //Initialize I2C communication to the let the library communicate with the sensor.
//Sensor Initialization
mySensor.initSensor(); //The I2C Address can be changed here inside this function in the library
mySensor.setOperationMode(OPERATION_MODE_NDOF); //Can be configured to other operation modes as desired
mySensor.setUpdateMode(MANUAL); //The default is AUTO. Changing to MANUAL requires calling the relevant update functions prior to calling the read functions
//Setting to MANUAL requires fewer reads to the sensor
}
void loop() //This code is looped forever
{
if ((millis() - lastStreamTime) >= streamPeriod)
{
lastStreamTime = millis();
mySensor.updateEuler(); //Update the Euler data into the structure of the object
mySensor.updateCalibStatus(); //Update the Calibration Status
Serial.print("Time: ");
Serial.print(lastStreamTime);
Serial.print("ms ");
Serial.print(" H: ");
Serial.print(mySensor.readEulerHeading()); //Heading data
Serial.print("deg ");
Serial.print(" R: ");
Serial.print(mySensor.readEulerRoll()); //Roll data
Serial.print("deg");
Serial.print(" P: ");
Serial.print(mySensor.readEulerPitch()); //Pitch data
Serial.print("deg ");
Serial.print(" A: ");
Serial.print(mySensor.readAccelCalibStatus()); //Accelerometer Calibration Status (0 - 3)
Serial.print(" M: ");
Serial.print(mySensor.readMagCalibStatus()); //Magnetometer Calibration Status (0 - 3)
Serial.print(" G: ");
Serial.print(mySensor.readGyroCalibStatus()); //Gyroscope Calibration Status (0 - 3)
Serial.print(" S: ");
Serial.print(mySensor.readSystemCalibStatus()); //System Calibration Status (0 - 3)
Serial.println();
}
}
I suspect you have a communication problem.
(Even with a breakout board, using i2c you need 4 cables....so there is a wiring. SDA, SCL, Gnd and VCC)
2 steps:
1.)run an i2c scanner with the sensor attached. See if it spits out an adress. If it does you can check in the library if the correct adress is called. If it doesnt then you either wired wrong or you grabbed a bad sensor...
2.) Try the bno library that paul mcwhorter shows. It includes an example that first checks the sensor and its outputs.