 }
 
 void loop() {
-  Serial.println("Looping");
-  readingFromADK();
+  Serial.print(".");
+  Usb.Task();
+  // Starting listening when ADK is available
+  if (adk.isReady()) {
+    readFromADK();
+    sendingToADK();
+  }
+
 }
 
 void stopEngine() {

USBHost Usb;
ADK adk(&Usb, manufacturer, model, accessoryName, versionNumber, url, serialNumber);
// End ADK configuration

int randomint;
int last_send = 0;
uint8_t buffer[BUFFSIZE];
char bufNew[BUFFSIZE];
char charBuf[2000];
uint32_t bytesRead = 0;

DualMC33926MotorShield tank;

void setup() {

  tank.setM2Speed(0);
}

char* readFromADK() {
  adk.read(&bytesRead, BUFFSIZE, inBuffer);
  if (bytesRead > 0) {
    memset(inStringBuffer, 0, BUFFSIZE);
    memcpy(inStringBuffer, inBuffer, bytesRead);
    if (DEBUG_MODE) {
      Serial.print("\nReceiving | ");
      Serial.print(inStringBuffer);
      Serial.print(" | ");
      Serial.print(strlen(inStringBuffer));
      Serial.println(" bytes incoming");      
    }
    delay(DELAY/10);
    return inStringBuffer;   
  }return {0}; // 0 is the command for NOP
}


void sendingToADK() {
  int time = millis();
