     let matrixCharacteristic: CBCharacteristic
     var brightness: Float
 
-    //TODO: Remove when we don't have devices with old firmware any more
-    private var firmwareVersion: Double
     private var currentMatrix: NuimoLEDMatrix?
     private var currentMatrixDisplayInterval: NSTimeInterval = 0.0
     private var lastWrittenMatrix: NuimoLEDMatrix?

    public var batteryLevel: Int = -1 { didSet { if self.batteryLevel != oldValue { delegate?.nuimoController?(self, didUpdateBatteryLevel: self.batteryLevel) } } }
    public var defaultMatrixDisplayInterval: NSTimeInterval = 2.0
    public var matrixBrightness: Float = 1.0 { didSet { matrixWriter?.brightness = self.matrixBrightness } }
    public var firmwareVersion = 0.1 { didSet { matrixWriter?.firmwareVersion = self.firmwareVersion } }
    
    public override var serviceUUIDs: [CBUUID] { get { return nuimoServiceUUIDs } }
    public override var charactericUUIDsForServiceUUID: [CBUUID : [CBUUID]] { get { return nuimoCharactericUUIDsForServiceUUID } }

    // Minimum interval before a matrix, that has already been sent, can be send again. This improves user experience when a lot of matrices are sent with a high rate.
    private let minSameMatrixResendInterval: NSTimeInterval = 0.2

    init(peripheral: CBPeripheral, matrixCharacteristic: CBCharacteristic, brightness: Float) {
        self.peripheral = peripheral
        self.matrixCharacteristic = matrixCharacteristic
        self.brightness = brightness
    }

    func writeMatrix(matrix: NuimoLEDMatrix, interval: NSTimeInterval) {
        currentMatrix = matrix
        currentMatrixDisplayInterval = interval
