         }
     }
 
-    func write(stringValue:Dictionary<String, String>, afterWriteSucessCallback:(()->())? = nil, afterWriteFailedCallback:((error:NSError)->())? = nil) {
+    func write(value:NSData, afterWriteFailedCallback:((error:NSError)->())? = nil) {
+        if self.propertyEnabled(.WriteWithoutResponse) {
+            Logger.debug("Characteristic#write: value=\(value.hexStringValue()), uuid=\(self.uuid.UUIDString)")
+            self.afterWriteSuccessCallback = nil
+            self.afterWriteFailedCallback = afterWriteFailedCallback
+            self.service.perpheral.cbPeripheral.writeValue(value, forCharacteristic:self.cbCharacteristic, type:.WithoutResponse)
+            self.writing = true
+            ++self.writeSequence
+            self.timeoutWrite(self.writeSequence)
+        } else {
+            NSException(name:"Characteristic write error", reason: "write without response not supported by \(self.uuid.UUIDString)", userInfo: nil).raise()
+        }
+    }
+
+    func write(stringValue:Dictionary<String, String>, afterWriteSuccessCallback:()->(), afterWriteFailedCallback:((error:NSError)->())? = nil) {
         if let value = self.profile.dataValue(stringValue) {
             self.write(value, afterWriteSucessCallback:afterWriteSuccessCallback, afterWriteFailedCallback:afterWriteFailedCallback)
         } else {

    
    func didUpdateNotificationState(error:NSError!) {
        if error {
            if let notificationStateChangedFailedCallback = self.notificationStateChangedFailedCallback {
                CentralManager.asyncCallback(){notificationStateChangedFailedCallback(error:error)}
            }
        } else {
            if let notificationStateChangedSuccessCallback = self.notificationStateChangedSuccessCallback {
                CentralManager.asyncCallback(notificationStateChangedSuccessCallback)
            }

        }
    }

    func write(value:NSData, afterWriteSucessCallback:()->(), afterWriteFailedCallback:((error:NSError)->())? = nil) {
        if self.propertyEnabled(.Write) {
            Logger.debug("Characteristic#write: value=\(value.hexStringValue()), uuid=\(self.uuid.UUIDString)")
            self.afterWriteSuccessCallback = afterWriteSucessCallback
            self.afterWriteFailedCallback = afterWriteFailedCallback
            self.service.perpheral.cbPeripheral.writeValue(value, forCharacteristic:self.cbCharacteristic, type:.WithResponse)
            self.writing = true
            ++self.writeSequence
            self.timeoutWrite(self.writeSequence)
