diff --git a/ArduCopter/control_modes.pde b/ArduCopter/control_modes.pde
index f03d4b3d2007f31cab66852d62a3148374152fef..781457cf51512f48695eb66e9ffb5a9a31db0200 100644
--- a/ArduCopter/control_modes.pde
+++ b/ArduCopter/control_modes.pde
@@ -164,6 +164,11 @@ static void read_trim_switch()
             }
             break;
 #endif
+
+        case CH7_SONAR:
+            // enable or disable the sonar
+            g.sonar_enabled = ap_system.CH7_flag;
+            break;
     }
 }
 
diff --git a/ArduCopter/defines.h b/ArduCopter/defines.h
index 053e2f8a79995f0e5f0013a833dc37e1198b0408..8fe53cb9361a3f17b97e4b8974fd72ce9b533876 100644
--- a/ArduCopter/defines.h
+++ b/ArduCopter/defines.h
@@ -64,6 +64,7 @@
 #define CH7_SAVE_WP 7
 #define CH7_MULTI_MODE 8
 #define CH7_CAMERA_TRIGGER 9
+#define CH7_SONAR 10            // allow enabling or disabling sonar in flight which helps avoid surface tracking when you are far above the ground
 
 
 
diff --git a/ArduCopter/options.cmake b/ArduCopter/options.cmake
index a0c899bff500d10493437943015d0edf933e99d6..b96c270673009965ff7fb2192c2ebba7d4eae55d 100644
--- a/ArduCopter/options.cmake
+++ b/ArduCopter/options.cmake
@@ -159,7 +159,8 @@ apm_option("CH7_OPTION" TYPE STRING
         "CH7_DO_NOTHING"
         "CH7_SAVE_WP"
         "CH7_DO_NOTHING"
-        "CH7_CAMERA_TRIGGER")
+        "CH7_CAMERA_TRIGGER"
+        "CH7_SONAR")
 
 apm_option("ACCEL_ALT_HOLD" TYPE BOOL ADVANCED
     DESCRIPTION "Disabled by default, work in progress."