 
 // Arm positioning routine utilizing inverse kinematics in cylindrical coordinates
 // (r = radius, h = height, b = azimuth = base servo angle, handAngle = angle of hand from horizontal)
-int moveArmCoord( double radius_mm, double height_mm, double basAngle_d, double handAngle_d )
+int moveArmCoord( double radius_mm, double height_mm, double basAngle_d, double handAngle_d, int delay_ms )
 {
    if ( radius_mm < 0 ) return -4;
    DEBUG("moveArmCoord("); DEBUG(radius_mm); DEBUG(","); DEBUG(height_mm); DEBUG(","); DEBUG(basAngle_d); DEBUG(","); DEBUG(handAngle_d); DEBUGln(")");

         case 'p':
            servoWrite(GRI,GRI_MICROPLATE); Serial.println("Gripped Microplate"); break;
         case 'r':
            g_moveDelay = 1000;
            if( ( ret_val = slowMoveArm(BAS_PARK,SHL_PARK,ELB_PARK,WRI_PARK) ) == 0 ) Serial.println("Arm returned to park position");
            else Serial.println(ret_val);
            break;
         case 'R':
            moveArm(degToPulse(BAS, BAS_PARK), degToPulse(SHL, SHL_PARK), degToPulse(ELB, ELB_PARK), degToPulse(WRI, WRI_PARK)); Serial.println("ARM PARKED!"); break;
            
         case 'l': //start of setting light PWM value
            i=0; buf[i] = Serial.read(); delay(1);

#define ELB_PARK 180
#define WRI_PARK 90

#define DELAY_MAX 25

/*****************/
/* SERVO OBJECTS */
