diff --git a/Code/Control/Laptop_Code/main_keyboard.py b/Code/Control/Laptop_Code/main_keyboard.py
index 373ec092b03007b17fc0e07dfac93dfa3d606050..aeb9e42a996d1821368c94afb208f0178168d05b 100644
--- a/Code/Control/Laptop_Code/main_keyboard.py
+++ b/Code/Control/Laptop_Code/main_keyboard.py
@@ -6,7 +6,7 @@ import timeit
 import pygame
 from constants import *
 from ESP32_AT.imageTread_AT import get_AT_6DOF_info
-
+import cv2
 global ml,esp_cam_on,openmv_on
 
 AT_detected_time = time.time()
@@ -648,7 +648,7 @@ def test_function():
 
     tid, tx, ty, tz, rx, ry, rz = get_AT_6DOF_info(url_AT)
     gbx, gby, gb_dist = ball_detection.detectLive(url_gb, model, minDetectionScore, showSight = True)
-    
+
     print("testing new function")
     print("-----------------------")
     print("tid:{}".format(tid))
@@ -665,7 +665,18 @@ def test_function1():
     print("tx,ty,tz:{},{},{}".format(tx,ty,tz))
     print("rx,ry,rz:{},{},{}".format(rx,ry,rz))
 
+def manual_in_auto(Ctl_com,serial_port,flag):
+    if get_key('m'):
+        flag = 12
+    while (flag == 12):
+        manual_control(Ctl_com,serial_port)
+        flag = manual_return2auto('r',flag)
+    return flag
 
+def manual_return2auto(key_press,flag_r):
+    if get_key(key_press):
+        flag_r = 1
+    return flag_r
 
 # ===== Main Function =====
 if __name__ == '__main__':
@@ -723,6 +734,8 @@ if __name__ == '__main__':
                 print('auto_control')
                 auto_control(serial_port,gbx, gby, gb_dist, tx, ty, tz, rx, ry, rz, LIDAR_dist1, LIDAR_dist2, debugM,count_h)
                 flag, print_count = keyboard_stop(flag,print_count)
+                flag = manual_in_auto(Ctl_com,serial_port,flag)
+
         elif get_key('s'):
             pwm1, pwm2, pwm3, pwm4, dir1, dir2, dir3, dir4 = stop_all()
             serial_port_out(serial_port, pwm1, pwm2, pwm3, pwm4, dir1, dir2, dir3, dir4)
@@ -747,6 +760,8 @@ if __name__ == '__main__':
                 test_function()
                 flag, print_count = keyboard_stop(flag, print_count)
 
+            cv2.destroyAllWindows()
+
         elif get_key('k'):
             break