diff --git a/src/examples/bno055_imu_driver_test.cpp b/src/examples/bno055_imu_driver_test.cpp
index bcfaf2315ff86e6965a2ce40777a64bdde4eaa11..3ed06681f26cdd591b8ff40720bfe2f729e3cb15 100644
--- a/src/examples/bno055_imu_driver_test.cpp
+++ b/src/examples/bno055_imu_driver_test.cpp
@@ -14,40 +14,35 @@ int main(int argc, char *argv[])
     std::vector<double> accel,mag,gyro;
     std::vector<double> quat,euler,linear_acc,gravity;
     unsigned int i;
-    unsigned char range,bandwidth,mode,rate,op_mode,power_mode;
 
     imu.open("/dev/ttyUSB2");
     try{
       imu.load_calibration("bno055.cal");
+      imu.set_operation_mode(ndof_mode);
     }catch(CException &e){
       std::cout << e.what() << std::endl;
+      imu.set_operation_mode(acc_mag_gyro_mode);
+    }
+
+    if(imu.get_operation_mode()==ndof_mode)
+    {
+      do{
+        accel_cal=imu.is_accelerometer_calibrated();
+        std::cout << "Accelerometer calibrated: " << accel_cal << std::endl;
+        mag_cal=imu.is_magnetometer_calibrated();
+        std::cout << "Magnetometer calibrated: " << mag_cal << std::endl;
+        gyro_cal=imu.is_gyroscope_calibrated();
+        std::cout << "Gyroscope calibrated: " << gyro_cal << std::endl;
+        usleep(100000);
+      }while(!accel_cal || ! mag_cal || !gyro_cal);
     }
-//    do{
-//      accel_cal=imu.is_accelerometer_calibrated();
-//      std::cout << "Accelerometer calibrated: " << accel_cal << std::endl;
-//      mag_cal=imu.is_magnetometer_calibrated();
-//      std::cout << "Magnetometer calibrated: " << mag_cal << std::endl;
-//      gyro_cal=imu.is_gyroscope_calibrated();
-//      std::cout << "Gyroscope calibrated: " << gyro_cal << std::endl;
-//    }while(!accel_cal || ! mag_cal || !gyro_cal);
     events.push_back(imu.get_new_data_event_id()); 
-    imu.get_accel_config(&range,&bandwidth,&mode);
-    bandwidth=ACCEL_125_BW;
-    imu.set_accel_config(range,bandwidth,mode);
-    imu.get_mag_config(&rate,&op_mode,&power_mode);
-    rate=MAG_30_RATE;
-    imu.set_mag_config(rate,op_mode,power_mode);
-    imu.get_gyro_config(&range,&bandwidth,&mode);
-    bandwidth=GYRO_116_BW;
-    imu.set_gyro_config(range,bandwidth,mode);
-    imu.set_operation_mode(acc_mag_gyro_mode);
     imu.set_data_rate(100);
 
     for(i=0;i<1000;i++)
     {
       auto t1 = std::chrono::high_resolution_clock::now();
       event_server->wait_all(events,1000);
-/*
       quat=imu.get_orientation_quat();      
       std::cout << "Quaternion: X: " << quat[0] << ", Y: " << quat[1] << ", Z: " << quat[2] << ", W: " << quat[3] << std::endl;
       euler=imu.get_orientation_euler();      
@@ -62,7 +57,6 @@ int main(int argc, char *argv[])
       std::cout << "Magnetometer: X: " << mag[0] << ", Y: " << mag[1] << ", Z: " << mag[2] << std::endl;
       gyro=imu.get_raw_gyroscope();      
       std::cout << "Gyroscope: X: " << gyro[0] << ", Y: " << gyro[1] << ", Z: " << gyro[2] << std::endl;
-*/
       auto t2 = std::chrono::high_resolution_clock::now();
       auto duration = std::chrono::duration_cast<std::chrono::microseconds>( t2 - t1 ).count();
       std::cout << duration << std::endl;