diff --git a/motion/src/motion_manager.c b/motion/src/motion_manager.c
index 53084cb906f797585bd28fe9863443c096252cac..7a116dcfb21bcdb14e228ece357b96d38d7aae85 100644
--- a/motion/src/motion_manager.c
+++ b/motion/src/motion_manager.c
@@ -214,7 +214,7 @@ uint8_t manager_init(uint8_t num_servos)
     else if(model==0x0C00)// Emmulated servos from the expansion board pan&tilt servos
     {
       enable_servo(id);
-      manager_servos[id].angle=300;
+      manager_servos[id].angle=180;
       manager_servos[id].max_value=1023;
       manager_servos[id].min_value=0;
       manager_servos[id].center_value=512;
diff --git a/motion/src/pan_tilt.c b/motion/src/pan_tilt.c
index 66f1ab55340aaec90197d597d212c5e1403d2075..768cef43266d87d018eaecfede18b6e009b28c62 100644
--- a/motion/src/pan_tilt.c
+++ b/motion/src/pan_tilt.c
@@ -60,14 +60,16 @@ void pan_move_angle(int8_t pan_angle)
     }
     else
     {
-      pan_current_angle=manager_servos[pan_servo_id].current_value<<7;
-      pan_target_angle=((uint32_t)(((int32_t)pan_angle*(int32_t)manager_servos[pan_servo_id].max_value)/((int32_t)manager_servos[pan_servo_id].angle))+(uint32_t)manager_servos[pan_servo_id].center_value);
+      pan_target_angle=(uint32_t)((((int32_t)pan_angle*(int32_t)manager_servos[pan_servo_id].max_value)/((int32_t)manager_servos[pan_servo_id].angle)+(int32_t)manager_servos[pan_servo_id].center_value));
       if(pan_target_angle>manager_servos[pan_servo_id].ccw_limit)
         pan_target_angle=manager_servos[pan_servo_id].ccw_limit;
       else if(pan_target_angle<manager_servos[pan_servo_id].cw_limit)
         pan_target_angle=manager_servos[pan_servo_id].cw_limit;
-      pan_target_angle=pan_target_angle<<7;
-      pan_moving=0x01;
+      if(manager_servos[pan_servo_id].current_value==pan_target_angle)
+        pan_moving=0x00;
+      else  
+        pan_moving=0x01;
+      pan_target_angle=(pan_target_angle<<7);
     }
   }
 }
@@ -99,14 +101,16 @@ void tilt_move_angle(int8_t tilt_angle)
     }
     else
     {
-      tilt_current_angle=manager_servos[tilt_servo_id].current_value<<7;
-      tilt_target_angle=(((int32_t)tilt_angle*(int32_t)manager_servos[tilt_servo_id].max_value)/((int32_t)manager_servos[tilt_servo_id].angle))+manager_servos[tilt_servo_id].center_value;
+      tilt_target_angle=(int32_t)((((int32_t)tilt_angle*(int32_t)manager_servos[tilt_servo_id].max_value)/((int32_t)manager_servos[tilt_servo_id].angle)+(int32_t)manager_servos[tilt_servo_id].center_value));
       if(tilt_target_angle>manager_servos[tilt_servo_id].ccw_limit)
         tilt_target_angle=manager_servos[tilt_servo_id].ccw_limit;
       else if(tilt_target_angle<manager_servos[tilt_servo_id].cw_limit)
         tilt_target_angle=manager_servos[tilt_servo_id].cw_limit;
-      tilt_target_angle=tilt_target_angle<<7;
-      tilt_moving=0x01;
+      if(manager_servos[tilt_servo_id].current_value==tilt_target_angle)
+        tilt_moving=0x00;
+      else
+        tilt_moving=0x01;
+      tilt_target_angle=(tilt_target_angle<<7);
     }
   }
 }
@@ -161,7 +165,7 @@ void pan_tilt_process(void)
         if(pan_current_angle<=pan_target_angle)
         {
           pan_current_angle=pan_target_angle;
-         pan_moving=0x00;
+          pan_moving=0x00;
         }
       }
     }
@@ -203,7 +207,7 @@ void pan_tilt_process(void)
           tilt_moving=0x00;
         }  
       }
-    }  
+    } 
   }
   manager_servos[tilt_servo_id].current_value=(tilt_current_angle>>7);
 }