I2C library for Bosch BNO055 sensor

Dependents:   BNO055_HelloWorld robfish_test_IMU_and_hallsensor SCRIBE_stepper SCRIBE_servo ... more

Based off the Bosch Sensortec driver stored at GitHub. I've broken out the main control functions out as separate functions, save for the interrupt setting up, Configuration for the separate sensors not yet enabled.

Revision:
1:2c3322a8d417
Parent:
0:24f23c36dd24
Child:
2:695c6e5d239a
--- a/BNO055.h	Thu May 28 19:22:25 2015 +0000
+++ b/BNO055.h	Sat May 30 18:36:36 2015 +0000
@@ -122,9 +122,11 @@
 #define DEG_PER_SEC 0x00
 #define RAD_PER_SEC 0x02
 #define DEGREES     0x00
-#define RADIANS     0x40
+#define RADIANS     0x04
 #define CENTIGRADE  0x00
-#define FAHRENHEIT  0x80
+#define FAHRENHEIT  0x10
+#define WINDOWS     0x00
+#define ANDROID     0x80
 
 //Definitions for power mode
 #define POWER_MODE_NORMAL   0x00 
@@ -132,7 +134,7 @@
 #define POWER_MODE_SUSPEND  0x02 
 
 //Definitions for operating mode
-#define OPERATION_MODE_CONFIG       0x00 
+#define OPERATION_MODE_CONFIG        0x00 
 #define OPERATION_MODE_ACCONLY       0x01 
 #define OPERATION_MODE_MAGONLY       0x02 
 #define OPERATION_MODE_GYRONLY       0x03 
@@ -170,7 +172,6 @@
     char bootload;
     char serial[16];
     }chip;
-        
 
 class BNO055 
 { 
@@ -188,13 +189,20 @@
     void set_anglerate_units(char units);
     void set_angle_units(char units);
     void set_temp_units(char units);
+    void set_orientation(char units);
+    void set_mapping(char orient);
+    
     void get_accel(void);
     void get_gyro(void);
     void get_mag(void);
     void get_lia(void);
     void get_grv(void);
     void get_quat(void);
+    void get_temp(void);
+
     void get_calib(void);
+    void read_calibration_data(void);
+    void write_calibration_data(void);
     
     values accel,gyro,mag,lia,gravity;
     angles euler;
@@ -203,14 +211,17 @@
     char status;
     char calibration[22];
     chip ID;
+    int temperature;
+    
     private:
     
         I2C _i2c;
         char rx,tx[2],address;  //I2C variables
-        char rawdata[16]; //Temporary array for input data values
+        char rawdata[22]; //Temporary array for input data values
         char op_mode;
         char pwr_mode;
-        float accel_scale,rate_scale,angle_scale,temp_scale;
+        float accel_scale,rate_scale,angle_scale;
+        int temp_scale;
         
 void readchar(char location){
     tx[0] = location;