         guard peripheral.state == .Connected else { return false }
         guard let rebootToDFUModeCharacteristic = rebootToDFUModeCharacteristic else { return false }
         peripheral.writeValue(NSData(bytes: [UInt8(1)], length: 1), forCharacteristic: rebootToDFUModeCharacteristic, type: .WithResponse)
+        return true
+    }
+
+    public func calibrateFlySensor() -> Bool {
+        guard peripheral.state == .Connected else { return false }
+        guard let flySensorCalibrationCharacteristic = flySensorCalibrationCharacteristic else { return false }
+        peripheral.writeValue(NSData(bytes: [UInt8(1)], length: 1), forCharacteristic: flySensorCalibrationCharacteristic, type: .WithResponse)
         return true
     }
 

    public override var notificationCharacteristicUUIDs: [CBUUID] { get { return nuimoNotificationCharacteristicnUUIDs } }

    public var supportsRebootToDFUMode: Bool { return rebootToDFUModeCharacteristic != nil }
    public var heartBeatInterval: NSTimeInterval = 0.0 { didSet { writeHeartBeatInterval() } }

    private var matrixWriter: LEDMatrixWriter?
    private var connectTimeoutTimer: NSTimer?
    private var rebootToDFUModeCharacteristic: CBCharacteristic? { return peripheral.serviceWithUUID(kSensorServiceUUID)?.characteristicWithUUID(kRebootToDFUModeCharacteristicUUID) }

    public override func connect() -> Bool {
        guard super.connect() else { return false }

        kSensorRotationCharacteristicUUID,
        kSensorButtonCharacteristicUUID,
        kRebootToDFUModeCharacteristicUUID,
        kHeartBeatCharacteristicUUID,
        kFlySensorCalibrationCharacteristicUUID
    ]
]

