             }           
             servoEnabled=false;
           }
-          servo.write((int)value);
+            prev_servo_value = servo.read();
+            if ((value - prev_servo_value) > 0) {
+                //split the movement range in 5 intervals with 20ms delay between them
+                while (servo.read() < value) {
+                    servo.write(servo.read() + (value - prev_servo_value)/10);
+                    SoftwareServo::refresh();
+                    delay(50);
+                }
+            } else {
+                while (servo.read() > value) {
+                    servo.write(servo.read() - (prev_servo_value - value)/5);
+                    SoftwareServo::refresh();
+                    delay(40);
+                }
+
+            }
         }
         break;
         

  {
    double value;
    int codenum = (int)strtod(&command[1], NULL);
    switch(codenum)
    {   
      case 18: // Disable Drives

 * Other Configuration
 */

#define DEFAULT_PEN_UP_POSITION 45
#define XAXIS_MIN_STEPCOUNT 0
#define XAXIS_MAX_STEPCOUNT 0
#define DEFAULT_ZOOM_FACTOR 1.0 // Zoom factor based on 1 px = 1 step gcode must be in px aka step (not mm)
