       }
       else if (inputString == "99") {        // 'c' unidentified pile
         stepperArm.moveTo(secondArmPos);
-        destinationArmPos = firstArmPos;
+        destinationArmPos = secondArmPos;
       }
       else if (inputString == "100") {       // 'd' Reset into loading mode until another character sent
         stepperArm.moveTo(firstArmPos);

}

void loop() {
    if (DEBUG) {  
      digitalWrite(GREENLED, digitalState(LIMIT_SW));     // glow when free. in loop 
      digitalWrite(REDLED, digitalState(LIMIT_ARM));      // glow when free. in loop
    }
    
    // only handles limiting if bin is mostly empty
    if ((liftState == HIGH) && (stepperLift.targetPosition() < 0)) {
      delay(5);                                    // de-bounce the switch hopefully
      if (digitalState(LIMIT_SW)) {
        stepperLift.setCurrentPosition(0);
        delay(3);                                 // deceleration 
        stepperLift.moveTo(liftBackOff);
        BACKINGOFF = true;
        timeStart = millis();
        UPDATE = true;
        liftState = LOW;
      }
    }
    else if ((!liftState) && ((timeStart - millis()) > 1900))    // deals with limit-switch hysterysis
      BACKINGOFF = false;
    else if ((liftState == HIGH) && (!BACKINGOFF)) {          // stopping for unforseen reasons
      delay(4);                                               // de-bounce
      if (digitalState(LIMIT_SW)) {
        stepperLift.stop();                                  // stop at maximum deceleration
        UPDATE = true;                                      // report position
        liftState = LOW;
      }
    }
    
    // arm starts off moving towards limit switch in setup(), hits it, moves to ready-to-load         
    if ((armState == HIGH) && (stepperArm.targetPosition() < 0)){

  armState = digitalState(LIMIT_ARM);
}

// trying for non-blocking non-repetitive servo with delay between actuation attempts...
void fanDown(byte suck, byte drop, long int dropZone) {
  // go down to get card only if stopped in hover position over bin
  currentTime = millis();
  currentServoPos = myserv.read();
  
  // after allowing time for travel, check stress levels...
  if (((timeStart - currentTime) > 900)) {
    if (currentServoPos == (drop + extraServoBump)) {
      stressedServo = true;
      restServoPos = drop;
    }
    else if (currentServoPos == (suck - extraServoBump)) {
      restServoPos = suck;
      stressedServo = true;
    }
    else if ((currentServoPos == suck) || (currentServoPos == drop))
      stressedServo = false;
  } 
  
  if ((stepperArm.currentPosition() == hoverArmPos) && 
      (newAnalog2 > proxSense2) && 
      !stressedServo) {
        myserv.write(drop + extraServoBump);
        timeStart = currentTime;
    }
  else if ((stepperArm.currentPosition() == dropZone) && 
            (newAnalog2 < proxSense2) &&
            !stressedServo) {
              myserv.write(suck - extraServoBump);
              timeStart = currentTime;
   }
  else if (stressedServo && ((timeStart - currentTime) > 900)) {
    myserv.write(restServoPos);
    if (DEBUG)
      Serial.println("de-stressed to position: " + String(restServoPos));
  }
}

  
  
