     It's going to be read as a char but then translated
     to HEX, taking only the lower byte
   */
-  if (Serial.available() == 2) {
+
+  if (Serial.available() >= 2) {
     
-    Serial.readBytes(command, 2); // Read 16 bits
+    Serial.readBytes(control_data, 2); // Read 16 bits
 
-    /* DEBUG */
+    // DEBUG 
     if (_DEBUG) {
       Serial.print("Command : 0x");
-      Serial.print(lowByte(command[0]), HEX);
+      Serial.print(lowByte(control_data[0]), HEX);
       Serial.print(" 0x");
-      Serial.print(lowByte(command[1]), HEX);
+      Serial.print(lowByte(control_data[1]), HEX);
       Serial.println("");
     }
     
     // We store the new commands in the data_buff buffer
-    data_buff[2] = lowByte(command[0]);
-    data_buff[3] = lowByte(command[1]);
+    data_buff[2] = lowByte(control_data[0]);
+    data_buff[3] = lowByte(control_data[1]);
 
   }
 


#define _DEBUG 0

char command[2] = {0xFF,0xFF};

volatile uint8_t data_buff[DATA_LEN]={0x41,0x5A,0xFF,0xFF,0xFF}; // Reply: nothing pressed.
volatile uint8_t command_buff[DATA_LEN]={0x01,0x42,0x00,0x00,0x00};

  sei(); // Enable global interrupts.

  if (_DEBUG) {
    Serial.println("");
    Serial.println("-----------------------------------");
    Serial.println("Playstation 2 Protocol initialized.");
    Serial.println("-----------------------------------");
