         return updateLed(values[0], values[1], values[2], values[3], values[4]);
       }
     }
+  } else if(command[0] == 'P') {
+    // Power update
+    char *seperator = strchr(command, ':');
+    if(seperator != NULL) {
+      seperator++;      
+      int powerState = atoi(seperator);
+      powerOn = powerState == 1 ? true : false;
+      updatePower();
+    }    
   } else if(command[0] == 'S') {
     // Output status - currently for debugging but could be adapted for bidirectional communication
     outputLedState(currentLedCount);

// Last read byte from serial
char readByte;

/**
 * Init code
 */
void setup() {
  Serial.begin(115200);
  SPI.begin();  
  allocateMemory();
  updateLeds();
}

/**

}

/**
 * Update Power PIN state
 */
 void updatePower() {
  Serial.print("Updating power to: ");
  Serial.println(powerOn);
  digitalWrite(POWER_PIN, powerOn);
 }

/**
 * Output the current LED state to the serial port
 * Limit with count, or pass currentLedCount for all LEDs
 */
