   Serial.begin(115200);
 
   // Initialize sensors
-  if (!accel.begin() || !mag.begin() || !bmp.begin()) {
+  if (!accel.begin() || !mag.begin() || !bmp.begin() || !gyro.begin()) {
     fatalError();
     while(true);
   }
+  // Enable auto-ranging
+  gyro.enableAutoRange(true);
   
   ESC1.attach(5);
   ESC2.attach(6);

  setThrottleAll(minThrottle);
  
  sensors_vec_t orientation = getOrientation();
  float altitude = getAltitude();
  Serial.print(F("Roll: "));
  Serial.print(orientation.roll);
  Serial.print(F(";\tPitch: "));
  Serial.print(orientation.pitch);
  Serial.print(F(";\tHeading: "));
  Serial.print(orientation.heading);
  Serial.print(F(";\tAltitude: "));
  Serial.println(altitude);
}

sensors_vec_t getOrientation() {
  sensors_event_t accelEvent;
  sensors_event_t magEvent;

SensorError sensorError = {0, 0, 0};
boolean calibrating = true;

struct Attitude {
  float pitch;
  float roll;
  float yaw;
};
Attitude attitude;
unsigned long lastAttitudeUpdate = 0;

Adafruit_10DOF                dof   = Adafruit_10DOF();
Adafruit_LSM303_Accel_Unified accel = Adafruit_LSM303_Accel_Unified(30301);
Adafruit_LSM303_Mag_Unified   mag   = Adafruit_LSM303_Mag_Unified(30302);
