 //led string stuff:
 const int ledsNumber = 80; //number of leds on the strip
 CRGB leds[ledsNumber];
+boolean idleStart[ledsNumber];
 
 //color data
 uint32_t distanceColor = 0xFF0000; //start off with the color being red

void readSidecar(){
  //reads the data coming from the sidecar when the interrupt is detected
  delayMicroseconds(5000);
  dataRecieved[0] = digitalRead(3);
  delayMicroseconds(10000);
  dataRecieved[1] = digitalRead(3);
  delayMicroseconds(10000);
  dataRecieved[2] = digitalRead(3);
  delayMicroseconds(100000);
  dataRecieved[3] = digitalRead(3);
  delayMicroseconds(100000);

  Serial.print(dataRecieved[0]);
  Serial.print(dataRecieved[1]);

  if (Serial.available() > 0) {
    // read the incoming byte:
    incomingByte = Serial.read();

    if (incomingByte == 97){ //a
      dataRecieved[0] = false;
      dataRecieved[1] = false;
      dataRecieved[2] = false;
      dataRecieved[3] = false;
      //    clearLeds();
    }
    else if (incomingByte == 98){ //b
      dataRecieved[0] = true;
      dataRecieved[1] = true;
      dataRecieved[2] = false;
      dataRecieved[3] = true;
      //    setRed();
    }
    else if (incomingByte == 99){ //c
      dataRecieved[0] = false;
      dataRecieved[1] = false;
      dataRecieved[2] = false;
      dataRecieved[3] = true;
      //    setGreen();
    }
    else if (incomingByte == 100){ //d
      dataRecieved[0] = false;
      dataRecieved[1] = false;
      dataRecieved[2] = true;
      dataRecieved[3] = true;
      //    shootAndCollect();
    }
    else if (incomingByte == 101){ //e
      dataRecieved[0] = false;
      dataRecieved[1] = true;
      dataRecieved[2] = false;
      dataRecieved[3] = false;
    }
    else if (incomingByte == 102){ //f
      dataRecieved[0] = true;
      dataRecieved[1] = false;
      dataRecieved[2] = true;
      dataRecieved[3] = false;
    }
  }
  //Possible cases
  if (dataRecieved[0] == false && dataRecieved[1] == false && dataRecieved[2] == false && dataRecieved[3] == false){
    //clears the strip
