   delay(250);
   if(currentX < UPPERBOUND_X / 2) requestedX = 0;
   else requestedX = UPPERBOUND_X - 1;
+  if(currentY < UPPERBOUND_Y / 2) requestedY = 0;
+  else requestedY = UPPERBOUND_Y - 1;
+  requestedR = 0;
   MoveXYR();  
   
 }

        delay(500); 
      }

      if(sensorsEnabled)
      {
    
      if(yDir == -1 && digitalRead(YMIN_PIN) == 0) //YMIN endstop hit 
      {
        currentY = 0;

      {
        digitalWrite(R_STEP_PIN, LOW);
        currentR += rDir;
      }
    
      if(abs(currentX-requestedX) < SLOWSTEP && currentX-requestedX != 0) delayMicroseconds(MICRODELAY*(abs(currentX-requestedX)*((1.0-2.0)/SLOWSTEP)+SLOWRATE));
      else if(speedUp < SLOWSTEP) delayMicroseconds(MICRODELAY*(speedUp*((1.0-2.0)/SLOWSTEP)+SLOWRATE));
      else delayMicroseconds(MICRODELAY);

