 {
   if (!responseStr)
   { 
+    /* There will be problems using I2C if we don't respond within a fixed period of time
+     * so send a zero, which we program the master to ignore. This makes sure we have
+     * enough time to do some computation. */
+    Wire.write(0);
+        
     float responseNum;
     
     for (int i = 0; i < LENGTH(sensors); i++)

        responseStr = "ERR"; 
      }
    }
    
    if (strcmp(request, "TEST") == 0) {
      responseStr = "HELLO";
    } else {
      responseStr = "ERR";
    }
      
    Serial.print("Received ");
    Serial.println(request);
    posIn = posOut = 0;
    request[0] = 0;
    
    Wire.write(0);
  }
  else
  {
    if (responseStr[posOut] != '\0') {
      Wire.write(responseStr[posOut++]);
    } else
    {
      Wire.write("\n");
      Serial.println(responseStr);

  for (int i = 0; i < LENGTH(sensors); i++)
  {
    strcat(sensorList, sensors[i].name);
    strcat(sensorList, "\t");
  }
  
  // Now call the user's code
