From 96c9c0041f0d6c2771cc2b2e0ac38b934616a061 Mon Sep 17 00:00:00 2001
From: Michael Oborne <mich146@hotmail.com>
Date: Fri, 6 Apr 2012 08:50:04 +0800
Subject: [PATCH] APM Planner 1.1.61 update message definitions fix radio
 screen

---
 .../ArdupilotMegaPlanner/ArdupilotMega.csproj |    9 +
 Tools/ArdupilotMegaPlanner/Common.cs          |   10 +-
 .../Controls/BackstageView/BackstageView.cs   |   12 +-
 Tools/ArdupilotMegaPlanner/CurrentState.cs    |   42 +-
 ...ConfigAccelerometerCalibration.Designer.cs |  134 +
 .../ConfigAccelerometerCalibration.cs         |   24 +
 .../ConfigAccelerometerCalibration.resx       |  120 +
 .../ConfigArducopter.Designer.cs              | 1247 ++++++
 .../ConfigurationView/ConfigArducopter.cs     |   19 +
 .../ConfigurationView/ConfigArducopter.resx   |  120 +
 .../ConfigArduplane.Designer.cs               | 1270 +++++++
 .../ConfigurationView/ConfigArduplane.cs      |   19 +
 .../ConfigurationView/ConfigArduplane.resx    |  120 +
 .../ConfigBatteryMonitoring.Designer.cs       |  300 ++
 .../ConfigBatteryMonitoring.cs                |   19 +
 .../ConfigBatteryMonitoring.resx              |  126 +
 .../ConfigFlightModes.Designer.cs             |  450 +++
 .../ConfigurationView/ConfigFlightModes.cs    |  215 ++
 .../ConfigurationView/ConfigFlightModes.resx  |  126 +
 .../ConfigHardwareOptions.Designer.cs         |  248 ++
 .../ConfigHardwareOptions.cs                  |   49 +
 .../ConfigHardwareOptions.resx                |  120 +
 .../ConfigPlanner.Designer.cs                 |  677 ++++
 .../ConfigurationView/ConfigPlanner.cs        |  372 ++
 .../ConfigurationView/ConfigPlanner.resx      |  120 +
 .../ConfigRadioInput.Designer.cs              |  366 ++
 .../ConfigurationView/ConfigRadioInput.cs     |  357 ++
 .../ConfigurationView/ConfigRadioInput.resx   |  123 +
 .../ConfigRawParams.Designer.cs               |  205 +
 .../ConfigurationView/ConfigRawParams.cs      |  287 ++
 .../ConfigurationView/ConfigRawParams.resx    |  132 +
 .../ConfigTradHeli.Designer.cs                |  857 +++++
 .../ConfigurationView/ConfigTradHeli.cs       |   21 +
 .../ConfigurationView/ConfigTradHeli.resx     |  120 +
 .../Configuration.Designer.cs                 |   59 +
 .../ConfigurationView/Configuration.cs        |   31 +
 .../ConfigurationView/Configuration.resx      |  197 +
 .../ConfigurationView/Setup.Designer.cs       |   59 +
 .../GCSViews/ConfigurationView/Setup.cs       |   27 +
 .../GCSViews/ConfigurationView/Setup.resx     |  197 +
 .../GCSViews/FlightData.cs                    |    3 +-
 .../GCSViews/Simulation.cs                    |   22 +-
 Tools/ArdupilotMegaPlanner/HIL/QuadCopter.cs  |   10 +-
 Tools/ArdupilotMegaPlanner/JoystickSetup.cs   |    2 +-
 Tools/ArdupilotMegaPlanner/MAVLink.cs         |   98 +-
 Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs    | 3361 ++++++++++-------
 Tools/ArdupilotMegaPlanner/MAVLinkTypes0.9.cs | 2912 ++++++++------
 Tools/ArdupilotMegaPlanner/MagCalib.cs        |   38 +-
 Tools/ArdupilotMegaPlanner/MainV2.cs          |   12 +-
 Tools/ArdupilotMegaPlanner/MavlinkLog.cs      |   22 +-
 Tools/ArdupilotMegaPlanner/Msi/installer.wxs  |  168 +-
 Tools/ArdupilotMegaPlanner/Msi/wix.pdb        |  Bin 13824 -> 19968 bytes
 .../Properties/AssemblyInfo.cs                |    2 +-
 .../Radio/3DRradio.Designer.cs                |   41 +-
 Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs  |   10 +-
 .../ArdupilotMegaPlanner/Radio/3DRradio.resx  |    3 -
 Tools/ArdupilotMegaPlanner/Script.cs          |    2 +-
 Tools/ArdupilotMegaPlanner/Setup/Setup.resx   | 2613 +++----------
 .../bin/Release/ArdupilotMegaPlanner.pdb      |  Bin 1156608 -> 1172992 bytes
 .../bin/Release/aircraft/Rascal/Rascal.xml    |    2 +-
 Tools/ArdupilotMegaPlanner/wix/Program.cs     |   55 +-
 .../wix/Properties/Resources.Designer.cs      |   63 +
 .../wix/Properties/Resources.resx             |  101 +
 .../wix/Properties/Settings.Designer.cs       |   26 +
 .../wix/Properties/Settings.settings          |    6 +
 .../wix/Properties/app.manifest               |   47 +
 Tools/ArdupilotMegaPlanner/wix/wix.csproj     |   33 +-
 67 files changed, 13676 insertions(+), 4982 deletions(-)
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/wix/Properties/Resources.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/wix/Properties/Resources.resx
 create mode 100644 Tools/ArdupilotMegaPlanner/wix/Properties/Settings.Designer.cs
 create mode 100644 Tools/ArdupilotMegaPlanner/wix/Properties/Settings.settings
 create mode 100644 Tools/ArdupilotMegaPlanner/wix/Properties/app.manifest

diff --git a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
index 3f859b180..f8c6bbcc0 100644
--- a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
+++ b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
@@ -308,6 +308,12 @@
     <Compile Include="GCSViews\ConfigurationView\ConfigRawParams.Designer.cs">
       <DependentUpon>ConfigRawParams.cs</DependentUpon>
     </Compile>
+    <Compile Include="GCSViews\ConfigurationView\Setup.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="GCSViews\ConfigurationView\Setup.Designer.cs">
+      <DependentUpon>Setup.cs</DependentUpon>
+    </Compile>
     <Compile Include="MagCalib.cs" />
     <Compile Include="PIDTunning.cs" />
     <Compile Include="Radio\3DRradio.cs">
@@ -569,6 +575,9 @@
     <EmbeddedResource Include="GCSViews\ConfigurationView\Configuration.resx">
       <DependentUpon>Configuration.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\Setup.resx">
+      <DependentUpon>Setup.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="Radio\3DRradio.resx">
       <DependentUpon>3DRradio.cs</DependentUpon>
     </EmbeddedResource>
diff --git a/Tools/ArdupilotMegaPlanner/Common.cs b/Tools/ArdupilotMegaPlanner/Common.cs
index 03e53b26b..2840e9b7c 100644
--- a/Tools/ArdupilotMegaPlanner/Common.cs
+++ b/Tools/ArdupilotMegaPlanner/Common.cs
@@ -429,9 +429,9 @@ namespace ArdupilotMega
        
 		#if MAVLINK10
 		
-        public static bool translateMode(string modein, ref MAVLink.__mavlink_set_mode_t mode)
+        public static bool translateMode(string modein, ref MAVLink.mavlink_set_mode_t mode)
         {
-            //MAVLink.__mavlink_set_mode_t mode = new MAVLink.__mavlink_set_mode_t();
+            //MAVLink.mavlink_set_mode_t mode = new MAVLink.mavlink_set_mode_t();
             mode.target_system = MainV2.comPort.sysid;
 
             try
@@ -483,14 +483,14 @@ namespace ArdupilotMega
         }
 		
 		#else
-        public static bool translateMode(string modein, ref  MAVLink.__mavlink_set_nav_mode_t navmode, ref MAVLink.__mavlink_set_mode_t mode)
+        public static bool translateMode(string modein, ref  MAVLink.mavlink_set_nav_mode_t navmode, ref MAVLink.mavlink_set_mode_t mode)
         {
 
-            //MAVLink.__mavlink_set_nav_mode_t navmode = new MAVLink.__mavlink_set_nav_mode_t();
+            //MAVLink.mavlink_set_nav_mode_t navmode = new MAVLink.mavlink_set_nav_mode_t();
             navmode.target = MainV2.comPort.sysid;
             navmode.nav_mode = 255;
 
-            //MAVLink.__mavlink_set_mode_t mode = new MAVLink.__mavlink_set_mode_t();
+            //MAVLink.mavlink_set_mode_t mode = new MAVLink.mavlink_set_mode_t();
             mode.target = MainV2.comPort.sysid;
 
             try
diff --git a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs
index 2970e499b..edde25fc4 100644
--- a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs
+++ b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs
@@ -21,6 +21,17 @@ namespace ArdupilotMega.Controls.BackstageView
         private BackstageViewPage _activePage;
         private const int ButtonSpacing = 30;
         private const int ButtonHeight = 30;
+        public BackstageViewPage SelectedPage { get { return _activePage; } }
+
+        ~BackstageView()
+        {
+            foreach (BackstageViewPage ctl in _pages)
+            {
+                if (ctl.Page != null)
+                    ctl.Page.Dispose();
+            }
+            this.Dispose();
+        }
 
         public BackstageView()
         {
@@ -160,7 +171,6 @@ namespace ArdupilotMega.Controls.BackstageView
                 _activePage = page;
 
             ActivatePage(page);
-            // Todo: set the link button to be selected looking 
         }
 
         private void CreateLinkButton(BackstageViewPage page)
diff --git a/Tools/ArdupilotMegaPlanner/CurrentState.cs b/Tools/ArdupilotMegaPlanner/CurrentState.cs
index 420b4544b..e3e24d9bf 100644
--- a/Tools/ArdupilotMegaPlanner/CurrentState.cs
+++ b/Tools/ArdupilotMegaPlanner/CurrentState.cs
@@ -334,7 +334,7 @@ namespace ArdupilotMega
 
                 if (bytearray != null) // hil
                 {
-                    var hil = bytearray.ByteArrayToStructure<MAVLink.__mavlink_rc_channels_scaled_t>(6);
+                    var hil = bytearray.ByteArrayToStructure<MAVLink.mavlink_rc_channels_scaled_t>(6);
 
                     hilch1 = hil.chan1_scaled;
                     hilch2 = hil.chan2_scaled;
@@ -352,7 +352,7 @@ namespace ArdupilotMega
 
                 if (bytearray != null)
                 {
-                    var nav = bytearray.ByteArrayToStructure<MAVLink.__mavlink_nav_controller_output_t>(6);
+                    var nav = bytearray.ByteArrayToStructure<MAVLink.mavlink_nav_controller_output_t>(6);
 
                     nav_roll = nav.nav_roll;
                     nav_pitch = nav.nav_pitch;
@@ -371,7 +371,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_HEARTBEAT];
                 if (bytearray != null)
                 {
-                    var hb = bytearray.ByteArrayToStructure<MAVLink.__mavlink_heartbeat_t>(6);
+                    var hb = bytearray.ByteArrayToStructure<MAVLink.mavlink_heartbeat_t>(6);
 
                     string oldmode = mode;
 
@@ -463,7 +463,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[ArdupilotMega.MAVLink.MAVLINK_MSG_ID_SYS_STATUS];
                 if (bytearray != null)
                 {
-                    var sysstatus = bytearray.ByteArrayToStructure<MAVLink.__mavlink_sys_status_t>(6);
+                    var sysstatus = bytearray.ByteArrayToStructure<MAVLink.mavlink_sys_status_t>(6);
 
                     battery_voltage = sysstatus.voltage_battery;
                     battery_remaining = sysstatus.battery_remaining;
@@ -478,7 +478,7 @@ namespace ArdupilotMega
 
                 if (bytearray != null)
                 {
-                    var sysstatus = bytearray.ByteArrayToStructure<MAVLink.__mavlink_sys_status_t>(6);
+                    var sysstatus = bytearray.ByteArrayToStructure<MAVLink.mavlink_sys_status_t>(6);
 
                     armed = sysstatus.status;
 
@@ -595,7 +595,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_SCALED_PRESSURE];
                 if (bytearray != null)
                 {
-                    var pres = bytearray.ByteArrayToStructure<MAVLink.__mavlink_scaled_pressure_t>(6);
+                    var pres = bytearray.ByteArrayToStructure<MAVLink.mavlink_scaled_pressure_t>(6);
                     press_abs = pres.press_abs;
                     press_temp = pres.temperature;
                 }
@@ -603,7 +603,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_SENSOR_OFFSETS];
                 if (bytearray != null)
                 {
-                    var sensofs = bytearray.ByteArrayToStructure<MAVLink.__mavlink_sensor_offsets_t>(6);
+                    var sensofs = bytearray.ByteArrayToStructure<MAVLink.mavlink_sensor_offsets_t>(6);
 
                     mag_ofs_x = sensofs.mag_ofs_x;
                     mag_ofs_y = sensofs.mag_ofs_y;
@@ -627,7 +627,7 @@ namespace ArdupilotMega
 
                 if (bytearray != null)
                 {
-                    var att = bytearray.ByteArrayToStructure<MAVLink.__mavlink_attitude_t>(6);
+                    var att = bytearray.ByteArrayToStructure<MAVLink.mavlink_attitude_t>(6);
 
                     roll = att.roll * rad2deg;
                     pitch = att.pitch * rad2deg;
@@ -641,7 +641,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_GPS_RAW_INT];
                 if (bytearray != null)
                 {
-                    var gps = bytearray.ByteArrayToStructure<MAVLink.__mavlink_gps_raw_int_t>(6);
+                    var gps = bytearray.ByteArrayToStructure<MAVLink.mavlink_gps_raw_int_t>(6);
 
                     lat = gps.lat * 1.0e-7f;
                     lng = gps.lon * 1.0e-7f;
@@ -662,7 +662,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_GPS_RAW];
                 if (bytearray != null)
                 {
-                    var gps = bytearray.ByteArrayToStructure<MAVLink.__mavlink_gps_raw_t>(6);
+                    var gps = bytearray.ByteArrayToStructure<MAVLink.mavlink_gps_raw_t>(6);
 
                     lat = gps.lat;
                     lng = gps.lon;
@@ -683,7 +683,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_GPS_STATUS];
                 if (bytearray != null)
                 {
-                    var gps = bytearray.ByteArrayToStructure<MAVLink.__mavlink_gps_status_t>(6);
+                    var gps = bytearray.ByteArrayToStructure<MAVLink.mavlink_gps_status_t>(6);
                     satcount = gps.satellites_visible;
                 }
 
@@ -691,7 +691,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_GLOBAL_POSITION_INT];
                 if (bytearray != null)
                 {
-                    var loc = bytearray.ByteArrayToStructure<MAVLink.__mavlink_global_position_int_t>(6);
+                    var loc = bytearray.ByteArrayToStructure<MAVLink.mavlink_global_position_int_t>(6);
 
                     //alt = loc.alt / 1000.0f;
                     lat = loc.lat / 10000000.0f;
@@ -701,7 +701,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_MISSION_CURRENT];
                 if (bytearray != null)
                 {
-                    var wpcur = bytearray.ByteArrayToStructure<MAVLink.__mavlink_mission_current_t>(6);
+                    var wpcur = bytearray.ByteArrayToStructure<MAVLink.mavlink_mission_current_t>(6);
               
                     int oldwp = (int)wpno;
 
@@ -719,7 +719,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_GLOBAL_POSITION];
                 if (bytearray != null)
                 {
-                    var loc = bytearray.ByteArrayToStructure<MAVLink.__mavlink_global_position_t>(6);
+                    var loc = bytearray.ByteArrayToStructure<MAVLink.mavlink_global_position_t>(6);
                     alt = loc.alt;
                     lat = loc.lat;
                     lng = loc.lon;
@@ -728,7 +728,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_WAYPOINT_CURRENT];
                 if (bytearray != null)
                 {
-                    var wpcur = bytearray.ByteArrayToStructure<MAVLink.__mavlink_waypoint_current_t>(6);
+                    var wpcur = bytearray.ByteArrayToStructure<MAVLink.mavlink_waypoint_current_t>(6);
 
                     int oldwp = (int)wpno;
 
@@ -746,7 +746,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_RC_CHANNELS_RAW];
                 if (bytearray != null)
                 {
-                    var rcin = bytearray.ByteArrayToStructure<MAVLink.__mavlink_rc_channels_raw_t>(6);
+                    var rcin = bytearray.ByteArrayToStructure<MAVLink.mavlink_rc_channels_raw_t>(6);
 
                     ch1in = rcin.chan1_raw;
                     ch2in = rcin.chan2_raw;
@@ -763,7 +763,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_SERVO_OUTPUT_RAW];
                 if (bytearray != null)
                 {
-                    var servoout = bytearray.ByteArrayToStructure<MAVLink.__mavlink_servo_output_raw_t>(6);
+                    var servoout = bytearray.ByteArrayToStructure<MAVLink.mavlink_servo_output_raw_t>(6);
 
                     ch1out = servoout.servo1_raw;
                     ch2out = servoout.servo2_raw;
@@ -781,7 +781,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_RAW_IMU];
                 if (bytearray != null)
                 {
-                    var imu = bytearray.ByteArrayToStructure<MAVLink.__mavlink_raw_imu_t>(6);
+                    var imu = bytearray.ByteArrayToStructure<MAVLink.mavlink_raw_imu_t>(6);
 
                     gx = imu.xgyro;
                     gy = imu.ygyro;
@@ -801,7 +801,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_SCALED_IMU];
                 if (bytearray != null)
                 {
-                    var imu = bytearray.ByteArrayToStructure<MAVLink.__mavlink_scaled_imu_t>(6);
+                    var imu = bytearray.ByteArrayToStructure<MAVLink.mavlink_scaled_imu_t>(6);
 
                     gx = imu.xgyro;
                     gy = imu.ygyro;
@@ -818,7 +818,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_VFR_HUD];
                 if (bytearray != null)
                 {
-                    var vfr = bytearray.ByteArrayToStructure<MAVLink.__mavlink_vfr_hud_t>(6);
+                    var vfr = bytearray.ByteArrayToStructure<MAVLink.mavlink_vfr_hud_t>(6);
 
                     groundspeed = vfr.groundspeed;
                     airspeed = vfr.airspeed;
@@ -843,7 +843,7 @@ namespace ArdupilotMega
                 bytearray = mavinterface.packets[MAVLink.MAVLINK_MSG_ID_MEMINFO];
                 if (bytearray != null)
                 {
-                    var mem = bytearray.ByteArrayToStructure<MAVLink.__mavlink_meminfo_t>(6);
+                    var mem = bytearray.ByteArrayToStructure<MAVLink.mavlink_meminfo_t>(6);
                     freemem = mem.freemem;
                     brklevel = mem.brkval;
                 }
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.Designer.cs
new file mode 100644
index 000000000..24df58eb8
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.Designer.cs
@@ -0,0 +1,134 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigAccelerometerCalibration
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.label28 = new System.Windows.Forms.Label();
+            this.label16 = new System.Windows.Forms.Label();
+            this.label15 = new System.Windows.Forms.Label();
+            this.pictureBoxQuadX = new System.Windows.Forms.PictureBox();
+            this.pictureBoxQuad = new System.Windows.Forms.PictureBox();
+            this.BUT_levelac2 = new ArdupilotMega.MyButton();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuad)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // label28
+            // 
+            this.label28.AutoSize = true;
+            this.label28.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label28.Location = new System.Drawing.Point(124, 13);
+            this.label28.Name = "label28";
+            this.label28.Size = new System.Drawing.Size(210, 13);
+            this.label28.TabIndex = 15;
+            this.label28.Text = "Level your quad to set default accel offsets";
+            // 
+            // label16
+            // 
+            this.label16.AutoSize = true;
+            this.label16.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label16.Location = new System.Drawing.Point(124, 308);
+            this.label16.Name = "label16";
+            this.label16.Size = new System.Drawing.Size(192, 26);
+            this.label16.TabIndex = 13;
+            this.label16.Text = "NOTE: images are for presentation only\r\nwill work with hexa\'s etc";
+            // 
+            // label15
+            // 
+            this.label15.AutoSize = true;
+            this.label15.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label15.Location = new System.Drawing.Point(167, 99);
+            this.label15.Name = "label15";
+            this.label15.Size = new System.Drawing.Size(102, 13);
+            this.label15.TabIndex = 12;
+            this.label15.Text = "Frame Setup (+ or x)";
+            // 
+            // pictureBoxQuadX
+            // 
+            this.pictureBoxQuadX.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.pictureBoxQuadX.Image = global::ArdupilotMega.Properties.Resources.quadx;
+            this.pictureBoxQuadX.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.pictureBoxQuadX.Location = new System.Drawing.Point(226, 115);
+            this.pictureBoxQuadX.Name = "pictureBoxQuadX";
+            this.pictureBoxQuadX.Size = new System.Drawing.Size(190, 190);
+            this.pictureBoxQuadX.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+            this.pictureBoxQuadX.TabIndex = 11;
+            this.pictureBoxQuadX.TabStop = false;
+            this.pictureBoxQuadX.Click += new System.EventHandler(this.pictureBoxQuadX_Click);
+            // 
+            // pictureBoxQuad
+            // 
+            this.pictureBoxQuad.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.pictureBoxQuad.Image = global::ArdupilotMega.Properties.Resources.quad;
+            this.pictureBoxQuad.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.pictureBoxQuad.Location = new System.Drawing.Point(19, 115);
+            this.pictureBoxQuad.Name = "pictureBoxQuad";
+            this.pictureBoxQuad.Size = new System.Drawing.Size(190, 190);
+            this.pictureBoxQuad.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
+            this.pictureBoxQuad.TabIndex = 10;
+            this.pictureBoxQuad.TabStop = false;
+            // 
+            // BUT_levelac2
+            // 
+            this.BUT_levelac2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_levelac2.Location = new System.Drawing.Point(181, 42);
+            this.BUT_levelac2.Name = "BUT_levelac2";
+            this.BUT_levelac2.Size = new System.Drawing.Size(75, 23);
+            this.BUT_levelac2.TabIndex = 14;
+            this.BUT_levelac2.Text = "Level";
+            this.BUT_levelac2.UseVisualStyleBackColor = true;
+            // 
+            // ConfigAccelerometerCalibration
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.label28);
+            this.Controls.Add(this.label16);
+            this.Controls.Add(this.label15);
+            this.Controls.Add(this.pictureBoxQuadX);
+            this.Controls.Add(this.pictureBoxQuad);
+            this.Controls.Add(this.BUT_levelac2);
+            this.Name = "ConfigAccelerometerCalibration";
+            this.Size = new System.Drawing.Size(439, 356);
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuad)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label label28;
+        private System.Windows.Forms.Label label16;
+        private System.Windows.Forms.Label label15;
+        private System.Windows.Forms.PictureBox pictureBoxQuadX;
+        private System.Windows.Forms.PictureBox pictureBoxQuad;
+        private MyButton BUT_levelac2;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.cs
new file mode 100644
index 000000000..fe4fe96bd
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigAccelerometerCalibration : UserControl
+    {
+        public ConfigAccelerometerCalibration()
+        {
+            InitializeComponent();
+        }
+
+        private void pictureBoxQuadX_Click(object sender, EventArgs e)
+        {
+
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.resx
new file mode 100644
index 000000000..7080a7d11
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibration.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.Designer.cs
new file mode 100644
index 000000000..2bcd2ea55
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.Designer.cs
@@ -0,0 +1,1247 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigArducopter
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.myLabel3 = new ArdupilotMega.MyLabel();
+            this.TUNE_LOW = new System.Windows.Forms.NumericUpDown();
+            this.TUNE_HIGH = new System.Windows.Forms.NumericUpDown();
+            this.myLabel2 = new ArdupilotMega.MyLabel();
+            this.TUNE = new System.Windows.Forms.ComboBox();
+            this.myLabel1 = new ArdupilotMega.MyLabel();
+            this.CH7_OPT = new System.Windows.Forms.ComboBox();
+            this.groupBox5 = new System.Windows.Forms.GroupBox();
+            this.THR_RATE_D = new System.Windows.Forms.NumericUpDown();
+            this.label29 = new System.Windows.Forms.Label();
+            this.label14 = new System.Windows.Forms.Label();
+            this.THR_RATE_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.THR_RATE_I = new System.Windows.Forms.NumericUpDown();
+            this.label20 = new System.Windows.Forms.Label();
+            this.THR_RATE_P = new System.Windows.Forms.NumericUpDown();
+            this.label25 = new System.Windows.Forms.Label();
+            this.CHK_lockrollpitch = new System.Windows.Forms.CheckBox();
+            this.groupBox4 = new System.Windows.Forms.GroupBox();
+            this.NAV_LAT_D = new System.Windows.Forms.NumericUpDown();
+            this.label27 = new System.Windows.Forms.Label();
+            this.WP_SPEED_MAX = new System.Windows.Forms.NumericUpDown();
+            this.label9 = new System.Windows.Forms.Label();
+            this.NAV_LAT_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label13 = new System.Windows.Forms.Label();
+            this.NAV_LAT_I = new System.Windows.Forms.NumericUpDown();
+            this.label15 = new System.Windows.Forms.Label();
+            this.NAV_LAT_P = new System.Windows.Forms.NumericUpDown();
+            this.label16 = new System.Windows.Forms.Label();
+            this.groupBox6 = new System.Windows.Forms.GroupBox();
+            this.XTRK_GAIN_SC1 = new System.Windows.Forms.NumericUpDown();
+            this.label18 = new System.Windows.Forms.Label();
+            this.groupBox7 = new System.Windows.Forms.GroupBox();
+            this.THR_ALT_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label19 = new System.Windows.Forms.Label();
+            this.THR_ALT_I = new System.Windows.Forms.NumericUpDown();
+            this.label21 = new System.Windows.Forms.Label();
+            this.THR_ALT_P = new System.Windows.Forms.NumericUpDown();
+            this.label22 = new System.Windows.Forms.Label();
+            this.groupBox19 = new System.Windows.Forms.GroupBox();
+            this.HLD_LAT_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label28 = new System.Windows.Forms.Label();
+            this.HLD_LAT_I = new System.Windows.Forms.NumericUpDown();
+            this.label30 = new System.Windows.Forms.Label();
+            this.HLD_LAT_P = new System.Windows.Forms.NumericUpDown();
+            this.label31 = new System.Windows.Forms.Label();
+            this.groupBox20 = new System.Windows.Forms.GroupBox();
+            this.STB_YAW_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label32 = new System.Windows.Forms.Label();
+            this.STB_YAW_I = new System.Windows.Forms.NumericUpDown();
+            this.label34 = new System.Windows.Forms.Label();
+            this.STB_YAW_P = new System.Windows.Forms.NumericUpDown();
+            this.label35 = new System.Windows.Forms.Label();
+            this.groupBox21 = new System.Windows.Forms.GroupBox();
+            this.STAB_D = new System.Windows.Forms.NumericUpDown();
+            this.lblSTAB_D = new System.Windows.Forms.Label();
+            this.STB_PIT_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label36 = new System.Windows.Forms.Label();
+            this.STB_PIT_I = new System.Windows.Forms.NumericUpDown();
+            this.label41 = new System.Windows.Forms.Label();
+            this.STB_PIT_P = new System.Windows.Forms.NumericUpDown();
+            this.label42 = new System.Windows.Forms.Label();
+            this.groupBox22 = new System.Windows.Forms.GroupBox();
+            this.STB_RLL_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label43 = new System.Windows.Forms.Label();
+            this.STB_RLL_I = new System.Windows.Forms.NumericUpDown();
+            this.label45 = new System.Windows.Forms.Label();
+            this.STB_RLL_P = new System.Windows.Forms.NumericUpDown();
+            this.label46 = new System.Windows.Forms.Label();
+            this.groupBox23 = new System.Windows.Forms.GroupBox();
+            this.RATE_YAW_D = new System.Windows.Forms.NumericUpDown();
+            this.label10 = new System.Windows.Forms.Label();
+            this.RATE_YAW_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label47 = new System.Windows.Forms.Label();
+            this.RATE_YAW_I = new System.Windows.Forms.NumericUpDown();
+            this.label77 = new System.Windows.Forms.Label();
+            this.RATE_YAW_P = new System.Windows.Forms.NumericUpDown();
+            this.label82 = new System.Windows.Forms.Label();
+            this.groupBox24 = new System.Windows.Forms.GroupBox();
+            this.RATE_PIT_D = new System.Windows.Forms.NumericUpDown();
+            this.label11 = new System.Windows.Forms.Label();
+            this.RATE_PIT_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label84 = new System.Windows.Forms.Label();
+            this.RATE_PIT_I = new System.Windows.Forms.NumericUpDown();
+            this.label86 = new System.Windows.Forms.Label();
+            this.RATE_PIT_P = new System.Windows.Forms.NumericUpDown();
+            this.label87 = new System.Windows.Forms.Label();
+            this.groupBox25 = new System.Windows.Forms.GroupBox();
+            this.RATE_RLL_D = new System.Windows.Forms.NumericUpDown();
+            this.label17 = new System.Windows.Forms.Label();
+            this.RATE_RLL_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label88 = new System.Windows.Forms.Label();
+            this.RATE_RLL_I = new System.Windows.Forms.NumericUpDown();
+            this.label90 = new System.Windows.Forms.Label();
+            this.RATE_RLL_P = new System.Windows.Forms.NumericUpDown();
+            this.label91 = new System.Windows.Forms.Label();
+            ((System.ComponentModel.ISupportInitialize)(this.TUNE_LOW)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.TUNE_HIGH)).BeginInit();
+            this.groupBox5.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_RATE_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_RATE_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_RATE_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_RATE_P)).BeginInit();
+            this.groupBox4.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.NAV_LAT_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.WP_SPEED_MAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.NAV_LAT_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.NAV_LAT_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.NAV_LAT_P)).BeginInit();
+            this.groupBox6.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.XTRK_GAIN_SC1)).BeginInit();
+            this.groupBox7.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_ALT_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_ALT_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_ALT_P)).BeginInit();
+            this.groupBox19.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.HLD_LAT_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HLD_LAT_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HLD_LAT_P)).BeginInit();
+            this.groupBox20.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_YAW_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_YAW_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_YAW_P)).BeginInit();
+            this.groupBox21.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.STAB_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_PIT_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_PIT_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_PIT_P)).BeginInit();
+            this.groupBox22.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_RLL_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_RLL_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_RLL_P)).BeginInit();
+            this.groupBox23.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_YAW_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_YAW_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_YAW_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_YAW_P)).BeginInit();
+            this.groupBox24.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_PIT_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_PIT_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_PIT_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_PIT_P)).BeginInit();
+            this.groupBox25.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_RLL_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_RLL_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_RLL_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_RLL_P)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // myLabel3
+            // 
+            this.myLabel3.Location = new System.Drawing.Point(540, 302);
+            this.myLabel3.Name = "myLabel3";
+            this.myLabel3.resize = false;
+            this.myLabel3.Size = new System.Drawing.Size(29, 23);
+            this.myLabel3.TabIndex = 42;
+            this.myLabel3.Text = "Min";
+            // 
+            // TUNE_LOW
+            // 
+            this.TUNE_LOW.Location = new System.Drawing.Point(575, 305);
+            this.TUNE_LOW.Name = "TUNE_LOW";
+            this.TUNE_LOW.Size = new System.Drawing.Size(51, 20);
+            this.TUNE_LOW.TabIndex = 41;
+            // 
+            // TUNE_HIGH
+            // 
+            this.TUNE_HIGH.Location = new System.Drawing.Point(665, 305);
+            this.TUNE_HIGH.Name = "TUNE_HIGH";
+            this.TUNE_HIGH.Size = new System.Drawing.Size(46, 20);
+            this.TUNE_HIGH.TabIndex = 40;
+            // 
+            // myLabel2
+            // 
+            this.myLabel2.Location = new System.Drawing.Point(540, 277);
+            this.myLabel2.Name = "myLabel2";
+            this.myLabel2.resize = false;
+            this.myLabel2.Size = new System.Drawing.Size(53, 23);
+            this.myLabel2.TabIndex = 39;
+            this.myLabel2.Text = "Ch6 Opt";
+            // 
+            // TUNE
+            // 
+            this.TUNE.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.TUNE.DropDownWidth = 150;
+            this.TUNE.FormattingEnabled = true;
+            this.TUNE.Items.AddRange(new object[] {
+            "CH6_NONE",
+            "CH6_STABILIZE_KP",
+            "CH6_STABILIZE_KI",
+            "CH6_YAW_KP",
+            "CH6_RATE_KP",
+            "CH6_RATE_KI",
+            "CH6_YAW_RATE_KP",
+            "CH6_THROTTLE_KP",
+            "CH6_TOP_BOTTOM_RATIO",
+            "CH6_RELAY",
+            "CH6_TRAVERSE_SPEED",
+            "CH6_NAV_P",
+            "CH6_LOITER_P",
+            "CH6_HELI_EXTERNAL_GYRO",
+            "CH6_THR_HOLD_KP",
+            "CH6_Z_GAIN",
+            "CH6_DAMP",
+            "CH6_OPTFLOW_KP",
+            "CH6_OPTFLOW_KI",
+            "CH6_OPTFLOW_KD",
+            "CH6_NAV_I",
+            "CH6_RATE_KD"});
+            this.TUNE.Location = new System.Drawing.Point(599, 277);
+            this.TUNE.Name = "TUNE";
+            this.TUNE.Size = new System.Drawing.Size(112, 21);
+            this.TUNE.TabIndex = 38;
+            // 
+            // myLabel1
+            // 
+            this.myLabel1.Location = new System.Drawing.Point(540, 329);
+            this.myLabel1.Name = "myLabel1";
+            this.myLabel1.resize = false;
+            this.myLabel1.Size = new System.Drawing.Size(53, 23);
+            this.myLabel1.TabIndex = 37;
+            this.myLabel1.Text = "Ch7 Opt";
+            // 
+            // CH7_OPT
+            // 
+            this.CH7_OPT.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CH7_OPT.DropDownWidth = 150;
+            this.CH7_OPT.FormattingEnabled = true;
+            this.CH7_OPT.Items.AddRange(new object[] {
+            "Do Nothing",
+            "",
+            "",
+            "Simple Mode",
+            "RTL",
+            "",
+            "",
+            "Save WP"});
+            this.CH7_OPT.Location = new System.Drawing.Point(599, 329);
+            this.CH7_OPT.Name = "CH7_OPT";
+            this.CH7_OPT.Size = new System.Drawing.Size(112, 21);
+            this.CH7_OPT.TabIndex = 36;
+            // 
+            // groupBox5
+            // 
+            this.groupBox5.Controls.Add(this.THR_RATE_D);
+            this.groupBox5.Controls.Add(this.label29);
+            this.groupBox5.Controls.Add(this.label14);
+            this.groupBox5.Controls.Add(this.THR_RATE_IMAX);
+            this.groupBox5.Controls.Add(this.THR_RATE_I);
+            this.groupBox5.Controls.Add(this.label20);
+            this.groupBox5.Controls.Add(this.THR_RATE_P);
+            this.groupBox5.Controls.Add(this.label25);
+            this.groupBox5.Location = new System.Drawing.Point(12, 267);
+            this.groupBox5.Name = "groupBox5";
+            this.groupBox5.Size = new System.Drawing.Size(170, 110);
+            this.groupBox5.TabIndex = 35;
+            this.groupBox5.TabStop = false;
+            this.groupBox5.Text = "Throttle Rate";
+            // 
+            // THR_RATE_D
+            // 
+            this.THR_RATE_D.Location = new System.Drawing.Point(80, 60);
+            this.THR_RATE_D.Name = "THR_RATE_D";
+            this.THR_RATE_D.Size = new System.Drawing.Size(78, 20);
+            this.THR_RATE_D.TabIndex = 14;
+            // 
+            // label29
+            // 
+            this.label29.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label29.Location = new System.Drawing.Point(6, 63);
+            this.label29.Name = "label29";
+            this.label29.Size = new System.Drawing.Size(10, 13);
+            this.label29.TabIndex = 15;
+            this.label29.Text = "D";
+            // 
+            // label14
+            // 
+            this.label14.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label14.Location = new System.Drawing.Point(6, 86);
+            this.label14.Name = "label14";
+            this.label14.Size = new System.Drawing.Size(65, 13);
+            this.label14.TabIndex = 16;
+            this.label14.Text = "IMAX";
+            // 
+            // THR_RATE_IMAX
+            // 
+            this.THR_RATE_IMAX.Location = new System.Drawing.Point(80, 83);
+            this.THR_RATE_IMAX.Name = "THR_RATE_IMAX";
+            this.THR_RATE_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.THR_RATE_IMAX.TabIndex = 11;
+            // 
+            // THR_RATE_I
+            // 
+            this.THR_RATE_I.Location = new System.Drawing.Point(80, 37);
+            this.THR_RATE_I.Name = "THR_RATE_I";
+            this.THR_RATE_I.Size = new System.Drawing.Size(78, 20);
+            this.THR_RATE_I.TabIndex = 7;
+            // 
+            // label20
+            // 
+            this.label20.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label20.Location = new System.Drawing.Point(6, 40);
+            this.label20.Name = "label20";
+            this.label20.Size = new System.Drawing.Size(10, 13);
+            this.label20.TabIndex = 14;
+            this.label20.Text = "I";
+            // 
+            // THR_RATE_P
+            // 
+            this.THR_RATE_P.Location = new System.Drawing.Point(80, 13);
+            this.THR_RATE_P.Name = "THR_RATE_P";
+            this.THR_RATE_P.Size = new System.Drawing.Size(78, 20);
+            this.THR_RATE_P.TabIndex = 5;
+            // 
+            // label25
+            // 
+            this.label25.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label25.Location = new System.Drawing.Point(6, 16);
+            this.label25.Name = "label25";
+            this.label25.Size = new System.Drawing.Size(14, 13);
+            this.label25.TabIndex = 15;
+            this.label25.Text = "P";
+            // 
+            // CHK_lockrollpitch
+            // 
+            this.CHK_lockrollpitch.AutoSize = true;
+            this.CHK_lockrollpitch.Checked = true;
+            this.CHK_lockrollpitch.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.CHK_lockrollpitch.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_lockrollpitch.Location = new System.Drawing.Point(9, 247);
+            this.CHK_lockrollpitch.Name = "CHK_lockrollpitch";
+            this.CHK_lockrollpitch.Size = new System.Drawing.Size(154, 17);
+            this.CHK_lockrollpitch.TabIndex = 34;
+            this.CHK_lockrollpitch.Text = "Lock Pitch and Roll Values";
+            this.CHK_lockrollpitch.UseVisualStyleBackColor = true;
+            // 
+            // groupBox4
+            // 
+            this.groupBox4.Controls.Add(this.NAV_LAT_D);
+            this.groupBox4.Controls.Add(this.label27);
+            this.groupBox4.Controls.Add(this.WP_SPEED_MAX);
+            this.groupBox4.Controls.Add(this.label9);
+            this.groupBox4.Controls.Add(this.NAV_LAT_IMAX);
+            this.groupBox4.Controls.Add(this.label13);
+            this.groupBox4.Controls.Add(this.NAV_LAT_I);
+            this.groupBox4.Controls.Add(this.label15);
+            this.groupBox4.Controls.Add(this.NAV_LAT_P);
+            this.groupBox4.Controls.Add(this.label16);
+            this.groupBox4.Location = new System.Drawing.Point(540, 133);
+            this.groupBox4.Name = "groupBox4";
+            this.groupBox4.Size = new System.Drawing.Size(170, 131);
+            this.groupBox4.TabIndex = 24;
+            this.groupBox4.TabStop = false;
+            this.groupBox4.Text = "Nav WP";
+            // 
+            // NAV_LAT_D
+            // 
+            this.NAV_LAT_D.Location = new System.Drawing.Point(80, 60);
+            this.NAV_LAT_D.Name = "NAV_LAT_D";
+            this.NAV_LAT_D.Size = new System.Drawing.Size(78, 20);
+            this.NAV_LAT_D.TabIndex = 18;
+            // 
+            // label27
+            // 
+            this.label27.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label27.Location = new System.Drawing.Point(6, 63);
+            this.label27.Name = "label27";
+            this.label27.Size = new System.Drawing.Size(10, 13);
+            this.label27.TabIndex = 19;
+            this.label27.Text = "D";
+            // 
+            // WP_SPEED_MAX
+            // 
+            this.WP_SPEED_MAX.Location = new System.Drawing.Point(80, 107);
+            this.WP_SPEED_MAX.Name = "WP_SPEED_MAX";
+            this.WP_SPEED_MAX.Size = new System.Drawing.Size(78, 20);
+            this.WP_SPEED_MAX.TabIndex = 16;
+            // 
+            // label9
+            // 
+            this.label9.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label9.Location = new System.Drawing.Point(6, 110);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(54, 13);
+            this.label9.TabIndex = 17;
+            this.label9.Text = "m/s";
+            // 
+            // NAV_LAT_IMAX
+            // 
+            this.NAV_LAT_IMAX.Location = new System.Drawing.Point(80, 84);
+            this.NAV_LAT_IMAX.Name = "NAV_LAT_IMAX";
+            this.NAV_LAT_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.NAV_LAT_IMAX.TabIndex = 11;
+            // 
+            // label13
+            // 
+            this.label13.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label13.Location = new System.Drawing.Point(6, 87);
+            this.label13.Name = "label13";
+            this.label13.Size = new System.Drawing.Size(65, 13);
+            this.label13.TabIndex = 12;
+            this.label13.Text = "IMAX";
+            // 
+            // NAV_LAT_I
+            // 
+            this.NAV_LAT_I.Location = new System.Drawing.Point(80, 37);
+            this.NAV_LAT_I.Name = "NAV_LAT_I";
+            this.NAV_LAT_I.Size = new System.Drawing.Size(78, 20);
+            this.NAV_LAT_I.TabIndex = 7;
+            // 
+            // label15
+            // 
+            this.label15.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label15.Location = new System.Drawing.Point(6, 40);
+            this.label15.Name = "label15";
+            this.label15.Size = new System.Drawing.Size(10, 13);
+            this.label15.TabIndex = 14;
+            this.label15.Text = "I";
+            // 
+            // NAV_LAT_P
+            // 
+            this.NAV_LAT_P.Location = new System.Drawing.Point(80, 13);
+            this.NAV_LAT_P.Name = "NAV_LAT_P";
+            this.NAV_LAT_P.Size = new System.Drawing.Size(78, 20);
+            this.NAV_LAT_P.TabIndex = 5;
+            // 
+            // label16
+            // 
+            this.label16.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label16.Location = new System.Drawing.Point(6, 16);
+            this.label16.Name = "label16";
+            this.label16.Size = new System.Drawing.Size(14, 13);
+            this.label16.TabIndex = 15;
+            this.label16.Text = "P";
+            // 
+            // groupBox6
+            // 
+            this.groupBox6.Controls.Add(this.XTRK_GAIN_SC1);
+            this.groupBox6.Controls.Add(this.label18);
+            this.groupBox6.Location = new System.Drawing.Point(364, 267);
+            this.groupBox6.Name = "groupBox6";
+            this.groupBox6.Size = new System.Drawing.Size(170, 43);
+            this.groupBox6.TabIndex = 25;
+            this.groupBox6.TabStop = false;
+            this.groupBox6.Text = "Crosstrack Correction";
+            // 
+            // XTRK_GAIN_SC1
+            // 
+            this.XTRK_GAIN_SC1.Location = new System.Drawing.Point(80, 13);
+            this.XTRK_GAIN_SC1.Name = "XTRK_GAIN_SC1";
+            this.XTRK_GAIN_SC1.Size = new System.Drawing.Size(78, 20);
+            this.XTRK_GAIN_SC1.TabIndex = 5;
+            // 
+            // label18
+            // 
+            this.label18.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label18.Location = new System.Drawing.Point(6, 16);
+            this.label18.Name = "label18";
+            this.label18.Size = new System.Drawing.Size(38, 13);
+            this.label18.TabIndex = 15;
+            this.label18.Text = "Gain";
+            // 
+            // groupBox7
+            // 
+            this.groupBox7.Controls.Add(this.THR_ALT_IMAX);
+            this.groupBox7.Controls.Add(this.label19);
+            this.groupBox7.Controls.Add(this.THR_ALT_I);
+            this.groupBox7.Controls.Add(this.label21);
+            this.groupBox7.Controls.Add(this.THR_ALT_P);
+            this.groupBox7.Controls.Add(this.label22);
+            this.groupBox7.Location = new System.Drawing.Point(188, 267);
+            this.groupBox7.Name = "groupBox7";
+            this.groupBox7.Size = new System.Drawing.Size(170, 110);
+            this.groupBox7.TabIndex = 26;
+            this.groupBox7.TabStop = false;
+            this.groupBox7.Text = "Altitude Hold";
+            // 
+            // THR_ALT_IMAX
+            // 
+            this.THR_ALT_IMAX.Location = new System.Drawing.Point(80, 63);
+            this.THR_ALT_IMAX.Name = "THR_ALT_IMAX";
+            this.THR_ALT_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.THR_ALT_IMAX.TabIndex = 11;
+            // 
+            // label19
+            // 
+            this.label19.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label19.Location = new System.Drawing.Point(6, 66);
+            this.label19.Name = "label19";
+            this.label19.Size = new System.Drawing.Size(65, 13);
+            this.label19.TabIndex = 12;
+            this.label19.Text = "IMAX";
+            // 
+            // THR_ALT_I
+            // 
+            this.THR_ALT_I.Location = new System.Drawing.Point(80, 37);
+            this.THR_ALT_I.Name = "THR_ALT_I";
+            this.THR_ALT_I.Size = new System.Drawing.Size(78, 20);
+            this.THR_ALT_I.TabIndex = 7;
+            // 
+            // label21
+            // 
+            this.label21.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label21.Location = new System.Drawing.Point(6, 40);
+            this.label21.Name = "label21";
+            this.label21.Size = new System.Drawing.Size(10, 13);
+            this.label21.TabIndex = 14;
+            this.label21.Text = "I";
+            // 
+            // THR_ALT_P
+            // 
+            this.THR_ALT_P.Location = new System.Drawing.Point(80, 13);
+            this.THR_ALT_P.Name = "THR_ALT_P";
+            this.THR_ALT_P.Size = new System.Drawing.Size(78, 20);
+            this.THR_ALT_P.TabIndex = 5;
+            // 
+            // label22
+            // 
+            this.label22.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label22.Location = new System.Drawing.Point(6, 16);
+            this.label22.Name = "label22";
+            this.label22.Size = new System.Drawing.Size(14, 13);
+            this.label22.TabIndex = 15;
+            this.label22.Text = "P";
+            // 
+            // groupBox19
+            // 
+            this.groupBox19.Controls.Add(this.HLD_LAT_IMAX);
+            this.groupBox19.Controls.Add(this.label28);
+            this.groupBox19.Controls.Add(this.HLD_LAT_I);
+            this.groupBox19.Controls.Add(this.label30);
+            this.groupBox19.Controls.Add(this.HLD_LAT_P);
+            this.groupBox19.Controls.Add(this.label31);
+            this.groupBox19.Location = new System.Drawing.Point(537, 13);
+            this.groupBox19.Name = "groupBox19";
+            this.groupBox19.Size = new System.Drawing.Size(170, 95);
+            this.groupBox19.TabIndex = 27;
+            this.groupBox19.TabStop = false;
+            this.groupBox19.Text = "Loiter";
+            // 
+            // HLD_LAT_IMAX
+            // 
+            this.HLD_LAT_IMAX.Location = new System.Drawing.Point(80, 61);
+            this.HLD_LAT_IMAX.Name = "HLD_LAT_IMAX";
+            this.HLD_LAT_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.HLD_LAT_IMAX.TabIndex = 11;
+            // 
+            // label28
+            // 
+            this.label28.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label28.Location = new System.Drawing.Point(6, 64);
+            this.label28.Name = "label28";
+            this.label28.Size = new System.Drawing.Size(65, 13);
+            this.label28.TabIndex = 12;
+            this.label28.Text = "IMAX";
+            // 
+            // HLD_LAT_I
+            // 
+            this.HLD_LAT_I.Location = new System.Drawing.Point(80, 37);
+            this.HLD_LAT_I.Name = "HLD_LAT_I";
+            this.HLD_LAT_I.Size = new System.Drawing.Size(78, 20);
+            this.HLD_LAT_I.TabIndex = 7;
+            // 
+            // label30
+            // 
+            this.label30.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label30.Location = new System.Drawing.Point(6, 40);
+            this.label30.Name = "label30";
+            this.label30.Size = new System.Drawing.Size(10, 13);
+            this.label30.TabIndex = 14;
+            this.label30.Text = "I";
+            // 
+            // HLD_LAT_P
+            // 
+            this.HLD_LAT_P.Location = new System.Drawing.Point(80, 13);
+            this.HLD_LAT_P.Name = "HLD_LAT_P";
+            this.HLD_LAT_P.Size = new System.Drawing.Size(78, 20);
+            this.HLD_LAT_P.TabIndex = 5;
+            // 
+            // label31
+            // 
+            this.label31.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label31.Location = new System.Drawing.Point(6, 16);
+            this.label31.Name = "label31";
+            this.label31.Size = new System.Drawing.Size(14, 13);
+            this.label31.TabIndex = 15;
+            this.label31.Text = "P";
+            // 
+            // groupBox20
+            // 
+            this.groupBox20.Controls.Add(this.STB_YAW_IMAX);
+            this.groupBox20.Controls.Add(this.label32);
+            this.groupBox20.Controls.Add(this.STB_YAW_I);
+            this.groupBox20.Controls.Add(this.label34);
+            this.groupBox20.Controls.Add(this.STB_YAW_P);
+            this.groupBox20.Controls.Add(this.label35);
+            this.groupBox20.Location = new System.Drawing.Point(364, 13);
+            this.groupBox20.Name = "groupBox20";
+            this.groupBox20.Size = new System.Drawing.Size(170, 95);
+            this.groupBox20.TabIndex = 28;
+            this.groupBox20.TabStop = false;
+            this.groupBox20.Text = "Stabilize Yaw";
+            // 
+            // STB_YAW_IMAX
+            // 
+            this.STB_YAW_IMAX.Location = new System.Drawing.Point(80, 63);
+            this.STB_YAW_IMAX.Name = "STB_YAW_IMAX";
+            this.STB_YAW_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.STB_YAW_IMAX.TabIndex = 11;
+            // 
+            // label32
+            // 
+            this.label32.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label32.Location = new System.Drawing.Point(6, 66);
+            this.label32.Name = "label32";
+            this.label32.Size = new System.Drawing.Size(65, 13);
+            this.label32.TabIndex = 12;
+            this.label32.Text = "IMAX ";
+            // 
+            // STB_YAW_I
+            // 
+            this.STB_YAW_I.Location = new System.Drawing.Point(80, 37);
+            this.STB_YAW_I.Name = "STB_YAW_I";
+            this.STB_YAW_I.Size = new System.Drawing.Size(78, 20);
+            this.STB_YAW_I.TabIndex = 7;
+            // 
+            // label34
+            // 
+            this.label34.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label34.Location = new System.Drawing.Point(6, 40);
+            this.label34.Name = "label34";
+            this.label34.Size = new System.Drawing.Size(10, 13);
+            this.label34.TabIndex = 14;
+            this.label34.Text = "I";
+            // 
+            // STB_YAW_P
+            // 
+            this.STB_YAW_P.Location = new System.Drawing.Point(80, 13);
+            this.STB_YAW_P.Name = "STB_YAW_P";
+            this.STB_YAW_P.Size = new System.Drawing.Size(78, 20);
+            this.STB_YAW_P.TabIndex = 5;
+            // 
+            // label35
+            // 
+            this.label35.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label35.Location = new System.Drawing.Point(6, 16);
+            this.label35.Name = "label35";
+            this.label35.Size = new System.Drawing.Size(14, 13);
+            this.label35.TabIndex = 15;
+            this.label35.Text = "P";
+            // 
+            // groupBox21
+            // 
+            this.groupBox21.Controls.Add(this.STAB_D);
+            this.groupBox21.Controls.Add(this.lblSTAB_D);
+            this.groupBox21.Controls.Add(this.STB_PIT_IMAX);
+            this.groupBox21.Controls.Add(this.label36);
+            this.groupBox21.Controls.Add(this.STB_PIT_I);
+            this.groupBox21.Controls.Add(this.label41);
+            this.groupBox21.Controls.Add(this.STB_PIT_P);
+            this.groupBox21.Controls.Add(this.label42);
+            this.groupBox21.Location = new System.Drawing.Point(188, 13);
+            this.groupBox21.Name = "groupBox21";
+            this.groupBox21.Size = new System.Drawing.Size(170, 114);
+            this.groupBox21.TabIndex = 29;
+            this.groupBox21.TabStop = false;
+            this.groupBox21.Text = "Stabilize Pitch";
+            // 
+            // STAB_D
+            // 
+            this.STAB_D.Location = new System.Drawing.Point(80, 88);
+            this.STAB_D.Name = "STAB_D";
+            this.STAB_D.Size = new System.Drawing.Size(78, 20);
+            this.STAB_D.TabIndex = 16;
+            // 
+            // lblSTAB_D
+            // 
+            this.lblSTAB_D.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.lblSTAB_D.Location = new System.Drawing.Point(6, 91);
+            this.lblSTAB_D.Name = "lblSTAB_D";
+            this.lblSTAB_D.Size = new System.Drawing.Size(65, 13);
+            this.lblSTAB_D.TabIndex = 17;
+            this.lblSTAB_D.Text = "Stabilize D";
+            // 
+            // STB_PIT_IMAX
+            // 
+            this.STB_PIT_IMAX.Location = new System.Drawing.Point(80, 63);
+            this.STB_PIT_IMAX.Name = "STB_PIT_IMAX";
+            this.STB_PIT_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.STB_PIT_IMAX.TabIndex = 11;
+            // 
+            // label36
+            // 
+            this.label36.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label36.Location = new System.Drawing.Point(6, 66);
+            this.label36.Name = "label36";
+            this.label36.Size = new System.Drawing.Size(65, 13);
+            this.label36.TabIndex = 12;
+            this.label36.Text = "IMAX";
+            // 
+            // STB_PIT_I
+            // 
+            this.STB_PIT_I.Location = new System.Drawing.Point(80, 37);
+            this.STB_PIT_I.Name = "STB_PIT_I";
+            this.STB_PIT_I.Size = new System.Drawing.Size(78, 20);
+            this.STB_PIT_I.TabIndex = 7;
+            // 
+            // label41
+            // 
+            this.label41.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label41.Location = new System.Drawing.Point(6, 40);
+            this.label41.Name = "label41";
+            this.label41.Size = new System.Drawing.Size(10, 13);
+            this.label41.TabIndex = 14;
+            this.label41.Text = "I";
+            // 
+            // STB_PIT_P
+            // 
+            this.STB_PIT_P.Location = new System.Drawing.Point(80, 13);
+            this.STB_PIT_P.Name = "STB_PIT_P";
+            this.STB_PIT_P.Size = new System.Drawing.Size(78, 20);
+            this.STB_PIT_P.TabIndex = 5;
+            // 
+            // label42
+            // 
+            this.label42.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label42.Location = new System.Drawing.Point(6, 16);
+            this.label42.Name = "label42";
+            this.label42.Size = new System.Drawing.Size(14, 13);
+            this.label42.TabIndex = 15;
+            this.label42.Text = "P";
+            // 
+            // groupBox22
+            // 
+            this.groupBox22.Controls.Add(this.STB_RLL_IMAX);
+            this.groupBox22.Controls.Add(this.label43);
+            this.groupBox22.Controls.Add(this.STB_RLL_I);
+            this.groupBox22.Controls.Add(this.label45);
+            this.groupBox22.Controls.Add(this.STB_RLL_P);
+            this.groupBox22.Controls.Add(this.label46);
+            this.groupBox22.Location = new System.Drawing.Point(12, 13);
+            this.groupBox22.Name = "groupBox22";
+            this.groupBox22.Size = new System.Drawing.Size(170, 95);
+            this.groupBox22.TabIndex = 30;
+            this.groupBox22.TabStop = false;
+            this.groupBox22.Text = "Stabilize Roll";
+            // 
+            // STB_RLL_IMAX
+            // 
+            this.STB_RLL_IMAX.Location = new System.Drawing.Point(80, 63);
+            this.STB_RLL_IMAX.Name = "STB_RLL_IMAX";
+            this.STB_RLL_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.STB_RLL_IMAX.TabIndex = 11;
+            // 
+            // label43
+            // 
+            this.label43.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label43.Location = new System.Drawing.Point(6, 66);
+            this.label43.Name = "label43";
+            this.label43.Size = new System.Drawing.Size(65, 13);
+            this.label43.TabIndex = 12;
+            this.label43.Text = "IMAX";
+            // 
+            // STB_RLL_I
+            // 
+            this.STB_RLL_I.Location = new System.Drawing.Point(80, 37);
+            this.STB_RLL_I.Name = "STB_RLL_I";
+            this.STB_RLL_I.Size = new System.Drawing.Size(78, 20);
+            this.STB_RLL_I.TabIndex = 7;
+            // 
+            // label45
+            // 
+            this.label45.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label45.Location = new System.Drawing.Point(6, 40);
+            this.label45.Name = "label45";
+            this.label45.Size = new System.Drawing.Size(10, 13);
+            this.label45.TabIndex = 14;
+            this.label45.Text = "I";
+            // 
+            // STB_RLL_P
+            // 
+            this.STB_RLL_P.Location = new System.Drawing.Point(80, 13);
+            this.STB_RLL_P.Name = "STB_RLL_P";
+            this.STB_RLL_P.Size = new System.Drawing.Size(78, 20);
+            this.STB_RLL_P.TabIndex = 5;
+            // 
+            // label46
+            // 
+            this.label46.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label46.Location = new System.Drawing.Point(6, 16);
+            this.label46.Name = "label46";
+            this.label46.Size = new System.Drawing.Size(14, 13);
+            this.label46.TabIndex = 15;
+            this.label46.Text = "P";
+            // 
+            // groupBox23
+            // 
+            this.groupBox23.Controls.Add(this.RATE_YAW_D);
+            this.groupBox23.Controls.Add(this.label10);
+            this.groupBox23.Controls.Add(this.RATE_YAW_IMAX);
+            this.groupBox23.Controls.Add(this.label47);
+            this.groupBox23.Controls.Add(this.RATE_YAW_I);
+            this.groupBox23.Controls.Add(this.label77);
+            this.groupBox23.Controls.Add(this.RATE_YAW_P);
+            this.groupBox23.Controls.Add(this.label82);
+            this.groupBox23.Location = new System.Drawing.Point(364, 133);
+            this.groupBox23.Name = "groupBox23";
+            this.groupBox23.Size = new System.Drawing.Size(170, 108);
+            this.groupBox23.TabIndex = 31;
+            this.groupBox23.TabStop = false;
+            this.groupBox23.Text = "Rate Yaw";
+            // 
+            // RATE_YAW_D
+            // 
+            this.RATE_YAW_D.Location = new System.Drawing.Point(80, 60);
+            this.RATE_YAW_D.Name = "RATE_YAW_D";
+            this.RATE_YAW_D.Size = new System.Drawing.Size(78, 20);
+            this.RATE_YAW_D.TabIndex = 8;
+            // 
+            // label10
+            // 
+            this.label10.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label10.Location = new System.Drawing.Point(6, 63);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(10, 13);
+            this.label10.TabIndex = 9;
+            this.label10.Text = "D";
+            // 
+            // RATE_YAW_IMAX
+            // 
+            this.RATE_YAW_IMAX.Location = new System.Drawing.Point(80, 84);
+            this.RATE_YAW_IMAX.Name = "RATE_YAW_IMAX";
+            this.RATE_YAW_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.RATE_YAW_IMAX.TabIndex = 0;
+            // 
+            // label47
+            // 
+            this.label47.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label47.Location = new System.Drawing.Point(6, 87);
+            this.label47.Name = "label47";
+            this.label47.Size = new System.Drawing.Size(65, 13);
+            this.label47.TabIndex = 1;
+            this.label47.Text = "IMAX";
+            // 
+            // RATE_YAW_I
+            // 
+            this.RATE_YAW_I.Location = new System.Drawing.Point(80, 37);
+            this.RATE_YAW_I.Name = "RATE_YAW_I";
+            this.RATE_YAW_I.Size = new System.Drawing.Size(78, 20);
+            this.RATE_YAW_I.TabIndex = 4;
+            // 
+            // label77
+            // 
+            this.label77.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label77.Location = new System.Drawing.Point(6, 40);
+            this.label77.Name = "label77";
+            this.label77.Size = new System.Drawing.Size(10, 13);
+            this.label77.TabIndex = 5;
+            this.label77.Text = "I";
+            // 
+            // RATE_YAW_P
+            // 
+            this.RATE_YAW_P.Location = new System.Drawing.Point(80, 13);
+            this.RATE_YAW_P.Name = "RATE_YAW_P";
+            this.RATE_YAW_P.Size = new System.Drawing.Size(78, 20);
+            this.RATE_YAW_P.TabIndex = 6;
+            // 
+            // label82
+            // 
+            this.label82.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label82.Location = new System.Drawing.Point(6, 16);
+            this.label82.Name = "label82";
+            this.label82.Size = new System.Drawing.Size(14, 13);
+            this.label82.TabIndex = 7;
+            this.label82.Text = "P";
+            // 
+            // groupBox24
+            // 
+            this.groupBox24.Controls.Add(this.RATE_PIT_D);
+            this.groupBox24.Controls.Add(this.label11);
+            this.groupBox24.Controls.Add(this.RATE_PIT_IMAX);
+            this.groupBox24.Controls.Add(this.label84);
+            this.groupBox24.Controls.Add(this.RATE_PIT_I);
+            this.groupBox24.Controls.Add(this.label86);
+            this.groupBox24.Controls.Add(this.RATE_PIT_P);
+            this.groupBox24.Controls.Add(this.label87);
+            this.groupBox24.Location = new System.Drawing.Point(188, 133);
+            this.groupBox24.Name = "groupBox24";
+            this.groupBox24.Size = new System.Drawing.Size(170, 108);
+            this.groupBox24.TabIndex = 32;
+            this.groupBox24.TabStop = false;
+            this.groupBox24.Text = "Rate Pitch";
+            // 
+            // RATE_PIT_D
+            // 
+            this.RATE_PIT_D.Location = new System.Drawing.Point(80, 60);
+            this.RATE_PIT_D.Name = "RATE_PIT_D";
+            this.RATE_PIT_D.Size = new System.Drawing.Size(78, 20);
+            this.RATE_PIT_D.TabIndex = 10;
+            // 
+            // label11
+            // 
+            this.label11.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label11.Location = new System.Drawing.Point(6, 63);
+            this.label11.Name = "label11";
+            this.label11.Size = new System.Drawing.Size(10, 13);
+            this.label11.TabIndex = 11;
+            this.label11.Text = "D";
+            // 
+            // RATE_PIT_IMAX
+            // 
+            this.RATE_PIT_IMAX.Location = new System.Drawing.Point(80, 83);
+            this.RATE_PIT_IMAX.Name = "RATE_PIT_IMAX";
+            this.RATE_PIT_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.RATE_PIT_IMAX.TabIndex = 0;
+            // 
+            // label84
+            // 
+            this.label84.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label84.Location = new System.Drawing.Point(6, 86);
+            this.label84.Name = "label84";
+            this.label84.Size = new System.Drawing.Size(65, 13);
+            this.label84.TabIndex = 1;
+            this.label84.Text = "IMAX";
+            // 
+            // RATE_PIT_I
+            // 
+            this.RATE_PIT_I.Location = new System.Drawing.Point(80, 37);
+            this.RATE_PIT_I.Name = "RATE_PIT_I";
+            this.RATE_PIT_I.Size = new System.Drawing.Size(78, 20);
+            this.RATE_PIT_I.TabIndex = 4;
+            // 
+            // label86
+            // 
+            this.label86.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label86.Location = new System.Drawing.Point(6, 40);
+            this.label86.Name = "label86";
+            this.label86.Size = new System.Drawing.Size(10, 13);
+            this.label86.TabIndex = 5;
+            this.label86.Text = "I";
+            // 
+            // RATE_PIT_P
+            // 
+            this.RATE_PIT_P.Location = new System.Drawing.Point(80, 13);
+            this.RATE_PIT_P.Name = "RATE_PIT_P";
+            this.RATE_PIT_P.Size = new System.Drawing.Size(78, 20);
+            this.RATE_PIT_P.TabIndex = 6;
+            // 
+            // label87
+            // 
+            this.label87.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label87.Location = new System.Drawing.Point(6, 16);
+            this.label87.Name = "label87";
+            this.label87.Size = new System.Drawing.Size(14, 13);
+            this.label87.TabIndex = 7;
+            this.label87.Text = "P";
+            // 
+            // groupBox25
+            // 
+            this.groupBox25.Controls.Add(this.RATE_RLL_D);
+            this.groupBox25.Controls.Add(this.label17);
+            this.groupBox25.Controls.Add(this.RATE_RLL_IMAX);
+            this.groupBox25.Controls.Add(this.label88);
+            this.groupBox25.Controls.Add(this.RATE_RLL_I);
+            this.groupBox25.Controls.Add(this.label90);
+            this.groupBox25.Controls.Add(this.RATE_RLL_P);
+            this.groupBox25.Controls.Add(this.label91);
+            this.groupBox25.Location = new System.Drawing.Point(12, 133);
+            this.groupBox25.Name = "groupBox25";
+            this.groupBox25.Size = new System.Drawing.Size(170, 108);
+            this.groupBox25.TabIndex = 33;
+            this.groupBox25.TabStop = false;
+            this.groupBox25.Text = "Rate Roll";
+            // 
+            // RATE_RLL_D
+            // 
+            this.RATE_RLL_D.Location = new System.Drawing.Point(80, 60);
+            this.RATE_RLL_D.Name = "RATE_RLL_D";
+            this.RATE_RLL_D.Size = new System.Drawing.Size(78, 20);
+            this.RATE_RLL_D.TabIndex = 12;
+            // 
+            // label17
+            // 
+            this.label17.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label17.Location = new System.Drawing.Point(6, 63);
+            this.label17.Name = "label17";
+            this.label17.Size = new System.Drawing.Size(10, 13);
+            this.label17.TabIndex = 13;
+            this.label17.Text = "D";
+            // 
+            // RATE_RLL_IMAX
+            // 
+            this.RATE_RLL_IMAX.Location = new System.Drawing.Point(80, 83);
+            this.RATE_RLL_IMAX.Name = "RATE_RLL_IMAX";
+            this.RATE_RLL_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.RATE_RLL_IMAX.TabIndex = 0;
+            // 
+            // label88
+            // 
+            this.label88.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label88.Location = new System.Drawing.Point(6, 86);
+            this.label88.Name = "label88";
+            this.label88.Size = new System.Drawing.Size(68, 13);
+            this.label88.TabIndex = 1;
+            this.label88.Text = "IMAX";
+            // 
+            // RATE_RLL_I
+            // 
+            this.RATE_RLL_I.Location = new System.Drawing.Point(80, 37);
+            this.RATE_RLL_I.Name = "RATE_RLL_I";
+            this.RATE_RLL_I.Size = new System.Drawing.Size(78, 20);
+            this.RATE_RLL_I.TabIndex = 4;
+            // 
+            // label90
+            // 
+            this.label90.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label90.Location = new System.Drawing.Point(6, 40);
+            this.label90.Name = "label90";
+            this.label90.Size = new System.Drawing.Size(10, 13);
+            this.label90.TabIndex = 5;
+            this.label90.Text = "I";
+            // 
+            // RATE_RLL_P
+            // 
+            this.RATE_RLL_P.Location = new System.Drawing.Point(80, 13);
+            this.RATE_RLL_P.Name = "RATE_RLL_P";
+            this.RATE_RLL_P.Size = new System.Drawing.Size(78, 20);
+            this.RATE_RLL_P.TabIndex = 6;
+            // 
+            // label91
+            // 
+            this.label91.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label91.Location = new System.Drawing.Point(6, 16);
+            this.label91.Name = "label91";
+            this.label91.Size = new System.Drawing.Size(14, 13);
+            this.label91.TabIndex = 7;
+            this.label91.Text = "P";
+            // 
+            // ConfigArducopter
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.myLabel3);
+            this.Controls.Add(this.TUNE_LOW);
+            this.Controls.Add(this.TUNE_HIGH);
+            this.Controls.Add(this.myLabel2);
+            this.Controls.Add(this.TUNE);
+            this.Controls.Add(this.myLabel1);
+            this.Controls.Add(this.CH7_OPT);
+            this.Controls.Add(this.groupBox5);
+            this.Controls.Add(this.CHK_lockrollpitch);
+            this.Controls.Add(this.groupBox4);
+            this.Controls.Add(this.groupBox6);
+            this.Controls.Add(this.groupBox7);
+            this.Controls.Add(this.groupBox19);
+            this.Controls.Add(this.groupBox20);
+            this.Controls.Add(this.groupBox21);
+            this.Controls.Add(this.groupBox22);
+            this.Controls.Add(this.groupBox23);
+            this.Controls.Add(this.groupBox24);
+            this.Controls.Add(this.groupBox25);
+            this.Name = "ConfigArducopter";
+            this.Size = new System.Drawing.Size(728, 393);
+            ((System.ComponentModel.ISupportInitialize)(this.TUNE_LOW)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.TUNE_HIGH)).EndInit();
+            this.groupBox5.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.THR_RATE_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_RATE_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_RATE_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_RATE_P)).EndInit();
+            this.groupBox4.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.NAV_LAT_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.WP_SPEED_MAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.NAV_LAT_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.NAV_LAT_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.NAV_LAT_P)).EndInit();
+            this.groupBox6.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.XTRK_GAIN_SC1)).EndInit();
+            this.groupBox7.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.THR_ALT_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_ALT_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_ALT_P)).EndInit();
+            this.groupBox19.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.HLD_LAT_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HLD_LAT_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HLD_LAT_P)).EndInit();
+            this.groupBox20.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.STB_YAW_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_YAW_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_YAW_P)).EndInit();
+            this.groupBox21.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.STAB_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_PIT_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_PIT_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_PIT_P)).EndInit();
+            this.groupBox22.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.STB_RLL_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_RLL_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.STB_RLL_P)).EndInit();
+            this.groupBox23.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_YAW_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_YAW_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_YAW_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_YAW_P)).EndInit();
+            this.groupBox24.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_PIT_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_PIT_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_PIT_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_PIT_P)).EndInit();
+            this.groupBox25.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_RLL_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_RLL_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_RLL_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RATE_RLL_P)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private MyLabel myLabel3;
+        private System.Windows.Forms.NumericUpDown TUNE_LOW;
+        private System.Windows.Forms.NumericUpDown TUNE_HIGH;
+        private MyLabel myLabel2;
+        private System.Windows.Forms.ComboBox TUNE;
+        private MyLabel myLabel1;
+        private System.Windows.Forms.ComboBox CH7_OPT;
+        private System.Windows.Forms.GroupBox groupBox5;
+        private System.Windows.Forms.NumericUpDown THR_RATE_D;
+        private System.Windows.Forms.Label label29;
+        private System.Windows.Forms.Label label14;
+        private System.Windows.Forms.NumericUpDown THR_RATE_IMAX;
+        private System.Windows.Forms.NumericUpDown THR_RATE_I;
+        private System.Windows.Forms.Label label20;
+        private System.Windows.Forms.NumericUpDown THR_RATE_P;
+        private System.Windows.Forms.Label label25;
+        private System.Windows.Forms.CheckBox CHK_lockrollpitch;
+        private System.Windows.Forms.GroupBox groupBox4;
+        private System.Windows.Forms.NumericUpDown NAV_LAT_D;
+        private System.Windows.Forms.Label label27;
+        private System.Windows.Forms.NumericUpDown WP_SPEED_MAX;
+        private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.NumericUpDown NAV_LAT_IMAX;
+        private System.Windows.Forms.Label label13;
+        private System.Windows.Forms.NumericUpDown NAV_LAT_I;
+        private System.Windows.Forms.Label label15;
+        private System.Windows.Forms.NumericUpDown NAV_LAT_P;
+        private System.Windows.Forms.Label label16;
+        private System.Windows.Forms.GroupBox groupBox6;
+        private System.Windows.Forms.NumericUpDown XTRK_GAIN_SC1;
+        private System.Windows.Forms.Label label18;
+        private System.Windows.Forms.GroupBox groupBox7;
+        private System.Windows.Forms.NumericUpDown THR_ALT_IMAX;
+        private System.Windows.Forms.Label label19;
+        private System.Windows.Forms.NumericUpDown THR_ALT_I;
+        private System.Windows.Forms.Label label21;
+        private System.Windows.Forms.NumericUpDown THR_ALT_P;
+        private System.Windows.Forms.Label label22;
+        private System.Windows.Forms.GroupBox groupBox19;
+        private System.Windows.Forms.NumericUpDown HLD_LAT_IMAX;
+        private System.Windows.Forms.Label label28;
+        private System.Windows.Forms.NumericUpDown HLD_LAT_I;
+        private System.Windows.Forms.Label label30;
+        private System.Windows.Forms.NumericUpDown HLD_LAT_P;
+        private System.Windows.Forms.Label label31;
+        private System.Windows.Forms.GroupBox groupBox20;
+        private System.Windows.Forms.NumericUpDown STB_YAW_IMAX;
+        private System.Windows.Forms.Label label32;
+        private System.Windows.Forms.NumericUpDown STB_YAW_I;
+        private System.Windows.Forms.Label label34;
+        private System.Windows.Forms.NumericUpDown STB_YAW_P;
+        private System.Windows.Forms.Label label35;
+        private System.Windows.Forms.GroupBox groupBox21;
+        private System.Windows.Forms.NumericUpDown STAB_D;
+        private System.Windows.Forms.Label lblSTAB_D;
+        private System.Windows.Forms.NumericUpDown STB_PIT_IMAX;
+        private System.Windows.Forms.Label label36;
+        private System.Windows.Forms.NumericUpDown STB_PIT_I;
+        private System.Windows.Forms.Label label41;
+        private System.Windows.Forms.NumericUpDown STB_PIT_P;
+        private System.Windows.Forms.Label label42;
+        private System.Windows.Forms.GroupBox groupBox22;
+        private System.Windows.Forms.NumericUpDown STB_RLL_IMAX;
+        private System.Windows.Forms.Label label43;
+        private System.Windows.Forms.NumericUpDown STB_RLL_I;
+        private System.Windows.Forms.Label label45;
+        private System.Windows.Forms.NumericUpDown STB_RLL_P;
+        private System.Windows.Forms.Label label46;
+        private System.Windows.Forms.GroupBox groupBox23;
+        private System.Windows.Forms.NumericUpDown RATE_YAW_D;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.NumericUpDown RATE_YAW_IMAX;
+        private System.Windows.Forms.Label label47;
+        private System.Windows.Forms.NumericUpDown RATE_YAW_I;
+        private System.Windows.Forms.Label label77;
+        private System.Windows.Forms.NumericUpDown RATE_YAW_P;
+        private System.Windows.Forms.Label label82;
+        private System.Windows.Forms.GroupBox groupBox24;
+        private System.Windows.Forms.NumericUpDown RATE_PIT_D;
+        private System.Windows.Forms.Label label11;
+        private System.Windows.Forms.NumericUpDown RATE_PIT_IMAX;
+        private System.Windows.Forms.Label label84;
+        private System.Windows.Forms.NumericUpDown RATE_PIT_I;
+        private System.Windows.Forms.Label label86;
+        private System.Windows.Forms.NumericUpDown RATE_PIT_P;
+        private System.Windows.Forms.Label label87;
+        private System.Windows.Forms.GroupBox groupBox25;
+        private System.Windows.Forms.NumericUpDown RATE_RLL_D;
+        private System.Windows.Forms.Label label17;
+        private System.Windows.Forms.NumericUpDown RATE_RLL_IMAX;
+        private System.Windows.Forms.Label label88;
+        private System.Windows.Forms.NumericUpDown RATE_RLL_I;
+        private System.Windows.Forms.Label label90;
+        private System.Windows.Forms.NumericUpDown RATE_RLL_P;
+        private System.Windows.Forms.Label label91;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.cs
new file mode 100644
index 000000000..772230d33
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigArducopter : UserControl
+    {
+        public ConfigArducopter()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.resx
new file mode 100644
index 000000000..7080a7d11
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArducopter.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.Designer.cs
new file mode 100644
index 000000000..a6928f5b2
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.Designer.cs
@@ -0,0 +1,1270 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigArduplane
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.groupBox3 = new System.Windows.Forms.GroupBox();
+            this.THR_FS_VALUE = new System.Windows.Forms.NumericUpDown();
+            this.label5 = new System.Windows.Forms.Label();
+            this.THR_MAX = new System.Windows.Forms.NumericUpDown();
+            this.label6 = new System.Windows.Forms.Label();
+            this.THR_MIN = new System.Windows.Forms.NumericUpDown();
+            this.label7 = new System.Windows.Forms.Label();
+            this.TRIM_THROTTLE = new System.Windows.Forms.NumericUpDown();
+            this.label8 = new System.Windows.Forms.Label();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.ARSPD_RATIO = new System.Windows.Forms.NumericUpDown();
+            this.label1 = new System.Windows.Forms.Label();
+            this.ARSPD_FBW_MAX = new System.Windows.Forms.NumericUpDown();
+            this.label2 = new System.Windows.Forms.Label();
+            this.ARSPD_FBW_MIN = new System.Windows.Forms.NumericUpDown();
+            this.label3 = new System.Windows.Forms.Label();
+            this.TRIM_ARSPD_CM = new System.Windows.Forms.NumericUpDown();
+            this.label4 = new System.Windows.Forms.Label();
+            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.LIM_PITCH_MIN = new System.Windows.Forms.NumericUpDown();
+            this.label39 = new System.Windows.Forms.Label();
+            this.LIM_PITCH_MAX = new System.Windows.Forms.NumericUpDown();
+            this.label38 = new System.Windows.Forms.Label();
+            this.LIM_ROLL_CD = new System.Windows.Forms.NumericUpDown();
+            this.label37 = new System.Windows.Forms.Label();
+            this.groupBox15 = new System.Windows.Forms.GroupBox();
+            this.XTRK_ANGLE_CD = new System.Windows.Forms.NumericUpDown();
+            this.label79 = new System.Windows.Forms.Label();
+            this.XTRK_GAIN_SC = new System.Windows.Forms.NumericUpDown();
+            this.label80 = new System.Windows.Forms.Label();
+            this.groupBox16 = new System.Windows.Forms.GroupBox();
+            this.KFF_PTCH2THR = new System.Windows.Forms.NumericUpDown();
+            this.label83 = new System.Windows.Forms.Label();
+            this.KFF_RDDRMIX = new System.Windows.Forms.NumericUpDown();
+            this.label78 = new System.Windows.Forms.Label();
+            this.KFF_PTCHCOMP = new System.Windows.Forms.NumericUpDown();
+            this.label81 = new System.Windows.Forms.Label();
+            this.groupBox14 = new System.Windows.Forms.GroupBox();
+            this.ENRGY2THR_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label73 = new System.Windows.Forms.Label();
+            this.ENRGY2THR_D = new System.Windows.Forms.NumericUpDown();
+            this.label74 = new System.Windows.Forms.Label();
+            this.ENRGY2THR_I = new System.Windows.Forms.NumericUpDown();
+            this.label75 = new System.Windows.Forms.Label();
+            this.ENRGY2THR_P = new System.Windows.Forms.NumericUpDown();
+            this.label76 = new System.Windows.Forms.Label();
+            this.groupBox13 = new System.Windows.Forms.GroupBox();
+            this.ALT2PTCH_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label69 = new System.Windows.Forms.Label();
+            this.ALT2PTCH_D = new System.Windows.Forms.NumericUpDown();
+            this.label70 = new System.Windows.Forms.Label();
+            this.ALT2PTCH_I = new System.Windows.Forms.NumericUpDown();
+            this.label71 = new System.Windows.Forms.Label();
+            this.ALT2PTCH_P = new System.Windows.Forms.NumericUpDown();
+            this.label72 = new System.Windows.Forms.Label();
+            this.groupBox12 = new System.Windows.Forms.GroupBox();
+            this.ARSP2PTCH_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label65 = new System.Windows.Forms.Label();
+            this.ARSP2PTCH_D = new System.Windows.Forms.NumericUpDown();
+            this.label66 = new System.Windows.Forms.Label();
+            this.ARSP2PTCH_I = new System.Windows.Forms.NumericUpDown();
+            this.label67 = new System.Windows.Forms.Label();
+            this.ARSP2PTCH_P = new System.Windows.Forms.NumericUpDown();
+            this.label68 = new System.Windows.Forms.Label();
+            this.groupBox11 = new System.Windows.Forms.GroupBox();
+            this.HDNG2RLL_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label61 = new System.Windows.Forms.Label();
+            this.HDNG2RLL_D = new System.Windows.Forms.NumericUpDown();
+            this.label62 = new System.Windows.Forms.Label();
+            this.HDNG2RLL_I = new System.Windows.Forms.NumericUpDown();
+            this.label63 = new System.Windows.Forms.Label();
+            this.HDNG2RLL_P = new System.Windows.Forms.NumericUpDown();
+            this.label64 = new System.Windows.Forms.Label();
+            this.groupBox10 = new System.Windows.Forms.GroupBox();
+            this.YW2SRV_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label57 = new System.Windows.Forms.Label();
+            this.YW2SRV_D = new System.Windows.Forms.NumericUpDown();
+            this.label58 = new System.Windows.Forms.Label();
+            this.YW2SRV_I = new System.Windows.Forms.NumericUpDown();
+            this.label59 = new System.Windows.Forms.Label();
+            this.YW2SRV_P = new System.Windows.Forms.NumericUpDown();
+            this.label60 = new System.Windows.Forms.Label();
+            this.groupBox9 = new System.Windows.Forms.GroupBox();
+            this.PTCH2SRV_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label53 = new System.Windows.Forms.Label();
+            this.PTCH2SRV_D = new System.Windows.Forms.NumericUpDown();
+            this.label54 = new System.Windows.Forms.Label();
+            this.PTCH2SRV_I = new System.Windows.Forms.NumericUpDown();
+            this.label55 = new System.Windows.Forms.Label();
+            this.PTCH2SRV_P = new System.Windows.Forms.NumericUpDown();
+            this.label56 = new System.Windows.Forms.Label();
+            this.groupBox8 = new System.Windows.Forms.GroupBox();
+            this.RLL2SRV_IMAX = new System.Windows.Forms.NumericUpDown();
+            this.label49 = new System.Windows.Forms.Label();
+            this.RLL2SRV_D = new System.Windows.Forms.NumericUpDown();
+            this.label50 = new System.Windows.Forms.Label();
+            this.RLL2SRV_I = new System.Windows.Forms.NumericUpDown();
+            this.label51 = new System.Windows.Forms.Label();
+            this.RLL2SRV_P = new System.Windows.Forms.NumericUpDown();
+            this.label52 = new System.Windows.Forms.Label();
+            this.groupBox3.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_FS_VALUE)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_MAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_MIN)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.TRIM_THROTTLE)).BeginInit();
+            this.groupBox1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSPD_RATIO)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSPD_FBW_MAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSPD_FBW_MIN)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.TRIM_ARSPD_CM)).BeginInit();
+            this.groupBox2.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.LIM_PITCH_MIN)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.LIM_PITCH_MAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.LIM_ROLL_CD)).BeginInit();
+            this.groupBox15.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.XTRK_ANGLE_CD)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.XTRK_GAIN_SC)).BeginInit();
+            this.groupBox16.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.KFF_PTCH2THR)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.KFF_RDDRMIX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.KFF_PTCHCOMP)).BeginInit();
+            this.groupBox14.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.ENRGY2THR_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ENRGY2THR_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ENRGY2THR_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ENRGY2THR_P)).BeginInit();
+            this.groupBox13.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.ALT2PTCH_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ALT2PTCH_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ALT2PTCH_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ALT2PTCH_P)).BeginInit();
+            this.groupBox12.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSP2PTCH_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSP2PTCH_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSP2PTCH_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSP2PTCH_P)).BeginInit();
+            this.groupBox11.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.HDNG2RLL_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HDNG2RLL_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HDNG2RLL_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HDNG2RLL_P)).BeginInit();
+            this.groupBox10.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.YW2SRV_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.YW2SRV_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.YW2SRV_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.YW2SRV_P)).BeginInit();
+            this.groupBox9.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.PTCH2SRV_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.PTCH2SRV_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.PTCH2SRV_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.PTCH2SRV_P)).BeginInit();
+            this.groupBox8.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.RLL2SRV_IMAX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RLL2SRV_D)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RLL2SRV_I)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RLL2SRV_P)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // groupBox3
+            // 
+            this.groupBox3.Controls.Add(this.THR_FS_VALUE);
+            this.groupBox3.Controls.Add(this.label5);
+            this.groupBox3.Controls.Add(this.THR_MAX);
+            this.groupBox3.Controls.Add(this.label6);
+            this.groupBox3.Controls.Add(this.THR_MIN);
+            this.groupBox3.Controls.Add(this.label7);
+            this.groupBox3.Controls.Add(this.TRIM_THROTTLE);
+            this.groupBox3.Controls.Add(this.label8);
+            this.groupBox3.Location = new System.Drawing.Point(413, 231);
+            this.groupBox3.Name = "groupBox3";
+            this.groupBox3.Size = new System.Drawing.Size(195, 108);
+            this.groupBox3.TabIndex = 12;
+            this.groupBox3.TabStop = false;
+            this.groupBox3.Text = "Throttle 0-100%";
+            // 
+            // THR_FS_VALUE
+            // 
+            this.THR_FS_VALUE.Location = new System.Drawing.Point(111, 82);
+            this.THR_FS_VALUE.Name = "THR_FS_VALUE";
+            this.THR_FS_VALUE.Size = new System.Drawing.Size(78, 20);
+            this.THR_FS_VALUE.TabIndex = 11;
+            // 
+            // label5
+            // 
+            this.label5.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label5.Location = new System.Drawing.Point(6, 86);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(50, 13);
+            this.label5.TabIndex = 12;
+            this.label5.Text = "FS Value";
+            // 
+            // THR_MAX
+            // 
+            this.THR_MAX.Location = new System.Drawing.Point(111, 59);
+            this.THR_MAX.Name = "THR_MAX";
+            this.THR_MAX.Size = new System.Drawing.Size(78, 20);
+            this.THR_MAX.TabIndex = 9;
+            // 
+            // label6
+            // 
+            this.label6.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label6.Location = new System.Drawing.Point(6, 63);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(27, 13);
+            this.label6.TabIndex = 13;
+            this.label6.Text = "Max";
+            // 
+            // THR_MIN
+            // 
+            this.THR_MIN.Location = new System.Drawing.Point(111, 36);
+            this.THR_MIN.Name = "THR_MIN";
+            this.THR_MIN.Size = new System.Drawing.Size(78, 20);
+            this.THR_MIN.TabIndex = 7;
+            // 
+            // label7
+            // 
+            this.label7.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label7.Location = new System.Drawing.Point(6, 40);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(24, 13);
+            this.label7.TabIndex = 14;
+            this.label7.Text = "Min";
+            // 
+            // TRIM_THROTTLE
+            // 
+            this.TRIM_THROTTLE.Location = new System.Drawing.Point(111, 13);
+            this.TRIM_THROTTLE.Name = "TRIM_THROTTLE";
+            this.TRIM_THROTTLE.Size = new System.Drawing.Size(78, 20);
+            this.TRIM_THROTTLE.TabIndex = 5;
+            // 
+            // label8
+            // 
+            this.label8.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label8.Location = new System.Drawing.Point(6, 17);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(36, 13);
+            this.label8.TabIndex = 15;
+            this.label8.Text = "Cruise";
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.ARSPD_RATIO);
+            this.groupBox1.Controls.Add(this.label1);
+            this.groupBox1.Controls.Add(this.ARSPD_FBW_MAX);
+            this.groupBox1.Controls.Add(this.label2);
+            this.groupBox1.Controls.Add(this.ARSPD_FBW_MIN);
+            this.groupBox1.Controls.Add(this.label3);
+            this.groupBox1.Controls.Add(this.TRIM_ARSPD_CM);
+            this.groupBox1.Controls.Add(this.label4);
+            this.groupBox1.Location = new System.Drawing.Point(414, 339);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(195, 108);
+            this.groupBox1.TabIndex = 13;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "Airspeed m/s";
+            // 
+            // ARSPD_RATIO
+            // 
+            this.ARSPD_RATIO.Location = new System.Drawing.Point(111, 82);
+            this.ARSPD_RATIO.Name = "ARSPD_RATIO";
+            this.ARSPD_RATIO.Size = new System.Drawing.Size(78, 20);
+            this.ARSPD_RATIO.TabIndex = 0;
+            // 
+            // label1
+            // 
+            this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label1.Location = new System.Drawing.Point(6, 87);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(32, 13);
+            this.label1.TabIndex = 1;
+            this.label1.Text = "Ratio";
+            // 
+            // ARSPD_FBW_MAX
+            // 
+            this.ARSPD_FBW_MAX.Location = new System.Drawing.Point(111, 59);
+            this.ARSPD_FBW_MAX.Name = "ARSPD_FBW_MAX";
+            this.ARSPD_FBW_MAX.Size = new System.Drawing.Size(78, 20);
+            this.ARSPD_FBW_MAX.TabIndex = 2;
+            // 
+            // label2
+            // 
+            this.label2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label2.Location = new System.Drawing.Point(6, 59);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(53, 13);
+            this.label2.TabIndex = 3;
+            this.label2.Text = "FBW max";
+            // 
+            // ARSPD_FBW_MIN
+            // 
+            this.ARSPD_FBW_MIN.Location = new System.Drawing.Point(111, 36);
+            this.ARSPD_FBW_MIN.Name = "ARSPD_FBW_MIN";
+            this.ARSPD_FBW_MIN.Size = new System.Drawing.Size(78, 20);
+            this.ARSPD_FBW_MIN.TabIndex = 4;
+            // 
+            // label3
+            // 
+            this.label3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label3.Location = new System.Drawing.Point(6, 40);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(50, 13);
+            this.label3.TabIndex = 5;
+            this.label3.Text = "FBW min";
+            // 
+            // TRIM_ARSPD_CM
+            // 
+            this.TRIM_ARSPD_CM.Location = new System.Drawing.Point(111, 13);
+            this.TRIM_ARSPD_CM.Name = "TRIM_ARSPD_CM";
+            this.TRIM_ARSPD_CM.Size = new System.Drawing.Size(78, 20);
+            this.TRIM_ARSPD_CM.TabIndex = 5;
+            // 
+            // label4
+            // 
+            this.label4.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label4.Location = new System.Drawing.Point(6, 17);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(64, 13);
+            this.label4.TabIndex = 6;
+            this.label4.Text = "Cruise";
+            // 
+            // groupBox2
+            // 
+            this.groupBox2.Controls.Add(this.LIM_PITCH_MIN);
+            this.groupBox2.Controls.Add(this.label39);
+            this.groupBox2.Controls.Add(this.LIM_PITCH_MAX);
+            this.groupBox2.Controls.Add(this.label38);
+            this.groupBox2.Controls.Add(this.LIM_ROLL_CD);
+            this.groupBox2.Controls.Add(this.label37);
+            this.groupBox2.Location = new System.Drawing.Point(213, 339);
+            this.groupBox2.Name = "groupBox2";
+            this.groupBox2.Size = new System.Drawing.Size(195, 108);
+            this.groupBox2.TabIndex = 14;
+            this.groupBox2.TabStop = false;
+            this.groupBox2.Text = "Navigation Angles";
+            // 
+            // LIM_PITCH_MIN
+            // 
+            this.LIM_PITCH_MIN.Location = new System.Drawing.Point(111, 59);
+            this.LIM_PITCH_MIN.Name = "LIM_PITCH_MIN";
+            this.LIM_PITCH_MIN.Size = new System.Drawing.Size(78, 20);
+            this.LIM_PITCH_MIN.TabIndex = 9;
+            // 
+            // label39
+            // 
+            this.label39.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label39.Location = new System.Drawing.Point(6, 63);
+            this.label39.Name = "label39";
+            this.label39.Size = new System.Drawing.Size(51, 13);
+            this.label39.TabIndex = 10;
+            this.label39.Text = "Pitch Min";
+            // 
+            // LIM_PITCH_MAX
+            // 
+            this.LIM_PITCH_MAX.Location = new System.Drawing.Point(111, 36);
+            this.LIM_PITCH_MAX.Name = "LIM_PITCH_MAX";
+            this.LIM_PITCH_MAX.Size = new System.Drawing.Size(78, 20);
+            this.LIM_PITCH_MAX.TabIndex = 7;
+            // 
+            // label38
+            // 
+            this.label38.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label38.Location = new System.Drawing.Point(6, 40);
+            this.label38.Name = "label38";
+            this.label38.Size = new System.Drawing.Size(54, 13);
+            this.label38.TabIndex = 11;
+            this.label38.Text = "Pitch Max";
+            // 
+            // LIM_ROLL_CD
+            // 
+            this.LIM_ROLL_CD.Location = new System.Drawing.Point(111, 13);
+            this.LIM_ROLL_CD.Name = "LIM_ROLL_CD";
+            this.LIM_ROLL_CD.Size = new System.Drawing.Size(78, 20);
+            this.LIM_ROLL_CD.TabIndex = 5;
+            // 
+            // label37
+            // 
+            this.label37.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label37.Location = new System.Drawing.Point(6, 17);
+            this.label37.Name = "label37";
+            this.label37.Size = new System.Drawing.Size(55, 13);
+            this.label37.TabIndex = 12;
+            this.label37.Text = "Bank Max";
+            // 
+            // groupBox15
+            // 
+            this.groupBox15.Controls.Add(this.XTRK_ANGLE_CD);
+            this.groupBox15.Controls.Add(this.label79);
+            this.groupBox15.Controls.Add(this.XTRK_GAIN_SC);
+            this.groupBox15.Controls.Add(this.label80);
+            this.groupBox15.Location = new System.Drawing.Point(12, 339);
+            this.groupBox15.Name = "groupBox15";
+            this.groupBox15.Size = new System.Drawing.Size(195, 108);
+            this.groupBox15.TabIndex = 15;
+            this.groupBox15.TabStop = false;
+            this.groupBox15.Text = "Xtrack Pids";
+            // 
+            // XTRK_ANGLE_CD
+            // 
+            this.XTRK_ANGLE_CD.Location = new System.Drawing.Point(111, 36);
+            this.XTRK_ANGLE_CD.Name = "XTRK_ANGLE_CD";
+            this.XTRK_ANGLE_CD.Size = new System.Drawing.Size(78, 20);
+            this.XTRK_ANGLE_CD.TabIndex = 7;
+            // 
+            // label79
+            // 
+            this.label79.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label79.Location = new System.Drawing.Point(6, 40);
+            this.label79.Name = "label79";
+            this.label79.Size = new System.Drawing.Size(61, 13);
+            this.label79.TabIndex = 8;
+            this.label79.Text = "Entry Angle";
+            // 
+            // XTRK_GAIN_SC
+            // 
+            this.XTRK_GAIN_SC.Location = new System.Drawing.Point(111, 13);
+            this.XTRK_GAIN_SC.Name = "XTRK_GAIN_SC";
+            this.XTRK_GAIN_SC.Size = new System.Drawing.Size(78, 20);
+            this.XTRK_GAIN_SC.TabIndex = 5;
+            // 
+            // label80
+            // 
+            this.label80.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label80.Location = new System.Drawing.Point(6, 17);
+            this.label80.Name = "label80";
+            this.label80.Size = new System.Drawing.Size(52, 13);
+            this.label80.TabIndex = 9;
+            this.label80.Text = "Gain (cm)";
+            // 
+            // groupBox16
+            // 
+            this.groupBox16.Controls.Add(this.KFF_PTCH2THR);
+            this.groupBox16.Controls.Add(this.label83);
+            this.groupBox16.Controls.Add(this.KFF_RDDRMIX);
+            this.groupBox16.Controls.Add(this.label78);
+            this.groupBox16.Controls.Add(this.KFF_PTCHCOMP);
+            this.groupBox16.Controls.Add(this.label81);
+            this.groupBox16.Location = new System.Drawing.Point(213, 231);
+            this.groupBox16.Name = "groupBox16";
+            this.groupBox16.Size = new System.Drawing.Size(195, 108);
+            this.groupBox16.TabIndex = 16;
+            this.groupBox16.TabStop = false;
+            this.groupBox16.Text = "Other Mix\'s";
+            // 
+            // KFF_PTCH2THR
+            // 
+            this.KFF_PTCH2THR.Location = new System.Drawing.Point(111, 13);
+            this.KFF_PTCH2THR.Name = "KFF_PTCH2THR";
+            this.KFF_PTCH2THR.Size = new System.Drawing.Size(78, 20);
+            this.KFF_PTCH2THR.TabIndex = 13;
+            // 
+            // label83
+            // 
+            this.label83.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label83.Location = new System.Drawing.Point(6, 17);
+            this.label83.Name = "label83";
+            this.label83.Size = new System.Drawing.Size(36, 13);
+            this.label83.TabIndex = 14;
+            this.label83.Text = "P to T";
+            // 
+            // KFF_RDDRMIX
+            // 
+            this.KFF_RDDRMIX.Location = new System.Drawing.Point(111, 59);
+            this.KFF_RDDRMIX.Name = "KFF_RDDRMIX";
+            this.KFF_RDDRMIX.Size = new System.Drawing.Size(78, 20);
+            this.KFF_RDDRMIX.TabIndex = 9;
+            // 
+            // label78
+            // 
+            this.label78.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label78.Location = new System.Drawing.Point(6, 63);
+            this.label78.Name = "label78";
+            this.label78.Size = new System.Drawing.Size(61, 13);
+            this.label78.TabIndex = 15;
+            this.label78.Text = "Rudder Mix";
+            // 
+            // KFF_PTCHCOMP
+            // 
+            this.KFF_PTCHCOMP.Location = new System.Drawing.Point(111, 36);
+            this.KFF_PTCHCOMP.Name = "KFF_PTCHCOMP";
+            this.KFF_PTCHCOMP.Size = new System.Drawing.Size(78, 20);
+            this.KFF_PTCHCOMP.TabIndex = 7;
+            // 
+            // label81
+            // 
+            this.label81.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label81.Location = new System.Drawing.Point(6, 40);
+            this.label81.Name = "label81";
+            this.label81.Size = new System.Drawing.Size(61, 13);
+            this.label81.TabIndex = 16;
+            this.label81.Text = "Pitch Comp";
+            // 
+            // groupBox14
+            // 
+            this.groupBox14.Controls.Add(this.ENRGY2THR_IMAX);
+            this.groupBox14.Controls.Add(this.label73);
+            this.groupBox14.Controls.Add(this.ENRGY2THR_D);
+            this.groupBox14.Controls.Add(this.label74);
+            this.groupBox14.Controls.Add(this.ENRGY2THR_I);
+            this.groupBox14.Controls.Add(this.label75);
+            this.groupBox14.Controls.Add(this.ENRGY2THR_P);
+            this.groupBox14.Controls.Add(this.label76);
+            this.groupBox14.Location = new System.Drawing.Point(12, 231);
+            this.groupBox14.Name = "groupBox14";
+            this.groupBox14.Size = new System.Drawing.Size(195, 108);
+            this.groupBox14.TabIndex = 17;
+            this.groupBox14.TabStop = false;
+            this.groupBox14.Text = "Energy/Alt Pid";
+            // 
+            // ENRGY2THR_IMAX
+            // 
+            this.ENRGY2THR_IMAX.Location = new System.Drawing.Point(111, 82);
+            this.ENRGY2THR_IMAX.Name = "ENRGY2THR_IMAX";
+            this.ENRGY2THR_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.ENRGY2THR_IMAX.TabIndex = 11;
+            // 
+            // label73
+            // 
+            this.label73.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label73.Location = new System.Drawing.Point(6, 86);
+            this.label73.Name = "label73";
+            this.label73.Size = new System.Drawing.Size(54, 13);
+            this.label73.TabIndex = 12;
+            this.label73.Text = "INT_MAX";
+            // 
+            // ENRGY2THR_D
+            // 
+            this.ENRGY2THR_D.Location = new System.Drawing.Point(111, 59);
+            this.ENRGY2THR_D.Name = "ENRGY2THR_D";
+            this.ENRGY2THR_D.Size = new System.Drawing.Size(78, 20);
+            this.ENRGY2THR_D.TabIndex = 9;
+            // 
+            // label74
+            // 
+            this.label74.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label74.Location = new System.Drawing.Point(6, 63);
+            this.label74.Name = "label74";
+            this.label74.Size = new System.Drawing.Size(15, 13);
+            this.label74.TabIndex = 13;
+            this.label74.Text = "D";
+            // 
+            // ENRGY2THR_I
+            // 
+            this.ENRGY2THR_I.Location = new System.Drawing.Point(111, 36);
+            this.ENRGY2THR_I.Name = "ENRGY2THR_I";
+            this.ENRGY2THR_I.Size = new System.Drawing.Size(78, 20);
+            this.ENRGY2THR_I.TabIndex = 7;
+            // 
+            // label75
+            // 
+            this.label75.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label75.Location = new System.Drawing.Point(6, 40);
+            this.label75.Name = "label75";
+            this.label75.Size = new System.Drawing.Size(10, 13);
+            this.label75.TabIndex = 14;
+            this.label75.Text = "I";
+            // 
+            // ENRGY2THR_P
+            // 
+            this.ENRGY2THR_P.Location = new System.Drawing.Point(111, 13);
+            this.ENRGY2THR_P.Name = "ENRGY2THR_P";
+            this.ENRGY2THR_P.Size = new System.Drawing.Size(78, 20);
+            this.ENRGY2THR_P.TabIndex = 5;
+            // 
+            // label76
+            // 
+            this.label76.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label76.Location = new System.Drawing.Point(6, 17);
+            this.label76.Name = "label76";
+            this.label76.Size = new System.Drawing.Size(14, 13);
+            this.label76.TabIndex = 15;
+            this.label76.Text = "P";
+            // 
+            // groupBox13
+            // 
+            this.groupBox13.Controls.Add(this.ALT2PTCH_IMAX);
+            this.groupBox13.Controls.Add(this.label69);
+            this.groupBox13.Controls.Add(this.ALT2PTCH_D);
+            this.groupBox13.Controls.Add(this.label70);
+            this.groupBox13.Controls.Add(this.ALT2PTCH_I);
+            this.groupBox13.Controls.Add(this.label71);
+            this.groupBox13.Controls.Add(this.ALT2PTCH_P);
+            this.groupBox13.Controls.Add(this.label72);
+            this.groupBox13.Location = new System.Drawing.Point(414, 123);
+            this.groupBox13.Name = "groupBox13";
+            this.groupBox13.Size = new System.Drawing.Size(195, 108);
+            this.groupBox13.TabIndex = 18;
+            this.groupBox13.TabStop = false;
+            this.groupBox13.Text = "Nav Pitch Alt Pid";
+            // 
+            // ALT2PTCH_IMAX
+            // 
+            this.ALT2PTCH_IMAX.Location = new System.Drawing.Point(111, 82);
+            this.ALT2PTCH_IMAX.Name = "ALT2PTCH_IMAX";
+            this.ALT2PTCH_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.ALT2PTCH_IMAX.TabIndex = 0;
+            // 
+            // label69
+            // 
+            this.label69.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label69.Location = new System.Drawing.Point(6, 86);
+            this.label69.Name = "label69";
+            this.label69.Size = new System.Drawing.Size(54, 13);
+            this.label69.TabIndex = 1;
+            this.label69.Text = "INT_MAX";
+            // 
+            // ALT2PTCH_D
+            // 
+            this.ALT2PTCH_D.Location = new System.Drawing.Point(111, 59);
+            this.ALT2PTCH_D.Name = "ALT2PTCH_D";
+            this.ALT2PTCH_D.Size = new System.Drawing.Size(78, 20);
+            this.ALT2PTCH_D.TabIndex = 2;
+            // 
+            // label70
+            // 
+            this.label70.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label70.Location = new System.Drawing.Point(6, 63);
+            this.label70.Name = "label70";
+            this.label70.Size = new System.Drawing.Size(15, 13);
+            this.label70.TabIndex = 3;
+            this.label70.Text = "D";
+            // 
+            // ALT2PTCH_I
+            // 
+            this.ALT2PTCH_I.Location = new System.Drawing.Point(111, 36);
+            this.ALT2PTCH_I.Name = "ALT2PTCH_I";
+            this.ALT2PTCH_I.Size = new System.Drawing.Size(78, 20);
+            this.ALT2PTCH_I.TabIndex = 4;
+            // 
+            // label71
+            // 
+            this.label71.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label71.Location = new System.Drawing.Point(6, 40);
+            this.label71.Name = "label71";
+            this.label71.Size = new System.Drawing.Size(10, 13);
+            this.label71.TabIndex = 5;
+            this.label71.Text = "I";
+            // 
+            // ALT2PTCH_P
+            // 
+            this.ALT2PTCH_P.Location = new System.Drawing.Point(111, 13);
+            this.ALT2PTCH_P.Name = "ALT2PTCH_P";
+            this.ALT2PTCH_P.Size = new System.Drawing.Size(78, 20);
+            this.ALT2PTCH_P.TabIndex = 6;
+            // 
+            // label72
+            // 
+            this.label72.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label72.Location = new System.Drawing.Point(6, 17);
+            this.label72.Name = "label72";
+            this.label72.Size = new System.Drawing.Size(14, 13);
+            this.label72.TabIndex = 7;
+            this.label72.Text = "P";
+            // 
+            // groupBox12
+            // 
+            this.groupBox12.Controls.Add(this.ARSP2PTCH_IMAX);
+            this.groupBox12.Controls.Add(this.label65);
+            this.groupBox12.Controls.Add(this.ARSP2PTCH_D);
+            this.groupBox12.Controls.Add(this.label66);
+            this.groupBox12.Controls.Add(this.ARSP2PTCH_I);
+            this.groupBox12.Controls.Add(this.label67);
+            this.groupBox12.Controls.Add(this.ARSP2PTCH_P);
+            this.groupBox12.Controls.Add(this.label68);
+            this.groupBox12.Location = new System.Drawing.Point(213, 123);
+            this.groupBox12.Name = "groupBox12";
+            this.groupBox12.Size = new System.Drawing.Size(195, 108);
+            this.groupBox12.TabIndex = 19;
+            this.groupBox12.TabStop = false;
+            this.groupBox12.Text = "Nav Pitch AS Pid";
+            // 
+            // ARSP2PTCH_IMAX
+            // 
+            this.ARSP2PTCH_IMAX.Location = new System.Drawing.Point(111, 82);
+            this.ARSP2PTCH_IMAX.Name = "ARSP2PTCH_IMAX";
+            this.ARSP2PTCH_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.ARSP2PTCH_IMAX.TabIndex = 0;
+            // 
+            // label65
+            // 
+            this.label65.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label65.Location = new System.Drawing.Point(6, 86);
+            this.label65.Name = "label65";
+            this.label65.Size = new System.Drawing.Size(54, 13);
+            this.label65.TabIndex = 1;
+            this.label65.Text = "INT_MAX";
+            // 
+            // ARSP2PTCH_D
+            // 
+            this.ARSP2PTCH_D.Location = new System.Drawing.Point(111, 59);
+            this.ARSP2PTCH_D.Name = "ARSP2PTCH_D";
+            this.ARSP2PTCH_D.Size = new System.Drawing.Size(78, 20);
+            this.ARSP2PTCH_D.TabIndex = 2;
+            // 
+            // label66
+            // 
+            this.label66.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label66.Location = new System.Drawing.Point(6, 63);
+            this.label66.Name = "label66";
+            this.label66.Size = new System.Drawing.Size(15, 13);
+            this.label66.TabIndex = 3;
+            this.label66.Text = "D";
+            // 
+            // ARSP2PTCH_I
+            // 
+            this.ARSP2PTCH_I.Location = new System.Drawing.Point(111, 36);
+            this.ARSP2PTCH_I.Name = "ARSP2PTCH_I";
+            this.ARSP2PTCH_I.Size = new System.Drawing.Size(78, 20);
+            this.ARSP2PTCH_I.TabIndex = 4;
+            // 
+            // label67
+            // 
+            this.label67.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label67.Location = new System.Drawing.Point(6, 40);
+            this.label67.Name = "label67";
+            this.label67.Size = new System.Drawing.Size(10, 13);
+            this.label67.TabIndex = 5;
+            this.label67.Text = "I";
+            // 
+            // ARSP2PTCH_P
+            // 
+            this.ARSP2PTCH_P.Location = new System.Drawing.Point(111, 13);
+            this.ARSP2PTCH_P.Name = "ARSP2PTCH_P";
+            this.ARSP2PTCH_P.Size = new System.Drawing.Size(78, 20);
+            this.ARSP2PTCH_P.TabIndex = 6;
+            // 
+            // label68
+            // 
+            this.label68.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label68.Location = new System.Drawing.Point(6, 17);
+            this.label68.Name = "label68";
+            this.label68.Size = new System.Drawing.Size(14, 13);
+            this.label68.TabIndex = 7;
+            this.label68.Text = "P";
+            // 
+            // groupBox11
+            // 
+            this.groupBox11.Controls.Add(this.HDNG2RLL_IMAX);
+            this.groupBox11.Controls.Add(this.label61);
+            this.groupBox11.Controls.Add(this.HDNG2RLL_D);
+            this.groupBox11.Controls.Add(this.label62);
+            this.groupBox11.Controls.Add(this.HDNG2RLL_I);
+            this.groupBox11.Controls.Add(this.label63);
+            this.groupBox11.Controls.Add(this.HDNG2RLL_P);
+            this.groupBox11.Controls.Add(this.label64);
+            this.groupBox11.Location = new System.Drawing.Point(12, 123);
+            this.groupBox11.Name = "groupBox11";
+            this.groupBox11.Size = new System.Drawing.Size(195, 108);
+            this.groupBox11.TabIndex = 20;
+            this.groupBox11.TabStop = false;
+            this.groupBox11.Text = "Nav Roll Pid";
+            // 
+            // HDNG2RLL_IMAX
+            // 
+            this.HDNG2RLL_IMAX.Location = new System.Drawing.Point(111, 82);
+            this.HDNG2RLL_IMAX.Name = "HDNG2RLL_IMAX";
+            this.HDNG2RLL_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.HDNG2RLL_IMAX.TabIndex = 11;
+            // 
+            // label61
+            // 
+            this.label61.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label61.Location = new System.Drawing.Point(6, 86);
+            this.label61.Name = "label61";
+            this.label61.Size = new System.Drawing.Size(54, 13);
+            this.label61.TabIndex = 12;
+            this.label61.Text = "INT_MAX";
+            // 
+            // HDNG2RLL_D
+            // 
+            this.HDNG2RLL_D.Location = new System.Drawing.Point(111, 59);
+            this.HDNG2RLL_D.Name = "HDNG2RLL_D";
+            this.HDNG2RLL_D.Size = new System.Drawing.Size(78, 20);
+            this.HDNG2RLL_D.TabIndex = 9;
+            // 
+            // label62
+            // 
+            this.label62.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label62.Location = new System.Drawing.Point(6, 63);
+            this.label62.Name = "label62";
+            this.label62.Size = new System.Drawing.Size(15, 13);
+            this.label62.TabIndex = 13;
+            this.label62.Text = "D";
+            // 
+            // HDNG2RLL_I
+            // 
+            this.HDNG2RLL_I.Location = new System.Drawing.Point(111, 36);
+            this.HDNG2RLL_I.Name = "HDNG2RLL_I";
+            this.HDNG2RLL_I.Size = new System.Drawing.Size(78, 20);
+            this.HDNG2RLL_I.TabIndex = 7;
+            // 
+            // label63
+            // 
+            this.label63.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label63.Location = new System.Drawing.Point(6, 40);
+            this.label63.Name = "label63";
+            this.label63.Size = new System.Drawing.Size(10, 13);
+            this.label63.TabIndex = 14;
+            this.label63.Text = "I";
+            // 
+            // HDNG2RLL_P
+            // 
+            this.HDNG2RLL_P.Location = new System.Drawing.Point(111, 13);
+            this.HDNG2RLL_P.Name = "HDNG2RLL_P";
+            this.HDNG2RLL_P.Size = new System.Drawing.Size(78, 20);
+            this.HDNG2RLL_P.TabIndex = 5;
+            // 
+            // label64
+            // 
+            this.label64.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label64.Location = new System.Drawing.Point(6, 17);
+            this.label64.Name = "label64";
+            this.label64.Size = new System.Drawing.Size(14, 13);
+            this.label64.TabIndex = 15;
+            this.label64.Text = "P";
+            // 
+            // groupBox10
+            // 
+            this.groupBox10.Controls.Add(this.YW2SRV_IMAX);
+            this.groupBox10.Controls.Add(this.label57);
+            this.groupBox10.Controls.Add(this.YW2SRV_D);
+            this.groupBox10.Controls.Add(this.label58);
+            this.groupBox10.Controls.Add(this.YW2SRV_I);
+            this.groupBox10.Controls.Add(this.label59);
+            this.groupBox10.Controls.Add(this.YW2SRV_P);
+            this.groupBox10.Controls.Add(this.label60);
+            this.groupBox10.Location = new System.Drawing.Point(414, 15);
+            this.groupBox10.Name = "groupBox10";
+            this.groupBox10.Size = new System.Drawing.Size(195, 108);
+            this.groupBox10.TabIndex = 21;
+            this.groupBox10.TabStop = false;
+            this.groupBox10.Text = "Servo Yaw Pid";
+            // 
+            // YW2SRV_IMAX
+            // 
+            this.YW2SRV_IMAX.Location = new System.Drawing.Point(111, 82);
+            this.YW2SRV_IMAX.Name = "YW2SRV_IMAX";
+            this.YW2SRV_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.YW2SRV_IMAX.TabIndex = 11;
+            // 
+            // label57
+            // 
+            this.label57.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label57.Location = new System.Drawing.Point(6, 86);
+            this.label57.Name = "label57";
+            this.label57.Size = new System.Drawing.Size(54, 13);
+            this.label57.TabIndex = 12;
+            this.label57.Text = "INT_MAX";
+            // 
+            // YW2SRV_D
+            // 
+            this.YW2SRV_D.Location = new System.Drawing.Point(111, 59);
+            this.YW2SRV_D.Name = "YW2SRV_D";
+            this.YW2SRV_D.Size = new System.Drawing.Size(78, 20);
+            this.YW2SRV_D.TabIndex = 9;
+            // 
+            // label58
+            // 
+            this.label58.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label58.Location = new System.Drawing.Point(6, 63);
+            this.label58.Name = "label58";
+            this.label58.Size = new System.Drawing.Size(15, 13);
+            this.label58.TabIndex = 13;
+            this.label58.Text = "D";
+            // 
+            // YW2SRV_I
+            // 
+            this.YW2SRV_I.Location = new System.Drawing.Point(111, 36);
+            this.YW2SRV_I.Name = "YW2SRV_I";
+            this.YW2SRV_I.Size = new System.Drawing.Size(78, 20);
+            this.YW2SRV_I.TabIndex = 7;
+            // 
+            // label59
+            // 
+            this.label59.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label59.Location = new System.Drawing.Point(6, 40);
+            this.label59.Name = "label59";
+            this.label59.Size = new System.Drawing.Size(10, 13);
+            this.label59.TabIndex = 14;
+            this.label59.Text = "I";
+            // 
+            // YW2SRV_P
+            // 
+            this.YW2SRV_P.Location = new System.Drawing.Point(111, 13);
+            this.YW2SRV_P.Name = "YW2SRV_P";
+            this.YW2SRV_P.Size = new System.Drawing.Size(78, 20);
+            this.YW2SRV_P.TabIndex = 5;
+            // 
+            // label60
+            // 
+            this.label60.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label60.Location = new System.Drawing.Point(6, 17);
+            this.label60.Name = "label60";
+            this.label60.Size = new System.Drawing.Size(14, 13);
+            this.label60.TabIndex = 15;
+            this.label60.Text = "P";
+            // 
+            // groupBox9
+            // 
+            this.groupBox9.Controls.Add(this.PTCH2SRV_IMAX);
+            this.groupBox9.Controls.Add(this.label53);
+            this.groupBox9.Controls.Add(this.PTCH2SRV_D);
+            this.groupBox9.Controls.Add(this.label54);
+            this.groupBox9.Controls.Add(this.PTCH2SRV_I);
+            this.groupBox9.Controls.Add(this.label55);
+            this.groupBox9.Controls.Add(this.PTCH2SRV_P);
+            this.groupBox9.Controls.Add(this.label56);
+            this.groupBox9.Location = new System.Drawing.Point(213, 15);
+            this.groupBox9.Name = "groupBox9";
+            this.groupBox9.Size = new System.Drawing.Size(195, 108);
+            this.groupBox9.TabIndex = 22;
+            this.groupBox9.TabStop = false;
+            this.groupBox9.Text = "Servo Pitch Pid";
+            // 
+            // PTCH2SRV_IMAX
+            // 
+            this.PTCH2SRV_IMAX.Location = new System.Drawing.Point(111, 82);
+            this.PTCH2SRV_IMAX.Name = "PTCH2SRV_IMAX";
+            this.PTCH2SRV_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.PTCH2SRV_IMAX.TabIndex = 11;
+            // 
+            // label53
+            // 
+            this.label53.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label53.Location = new System.Drawing.Point(6, 86);
+            this.label53.Name = "label53";
+            this.label53.Size = new System.Drawing.Size(54, 13);
+            this.label53.TabIndex = 12;
+            this.label53.Text = "INT_MAX";
+            // 
+            // PTCH2SRV_D
+            // 
+            this.PTCH2SRV_D.Location = new System.Drawing.Point(111, 59);
+            this.PTCH2SRV_D.Name = "PTCH2SRV_D";
+            this.PTCH2SRV_D.Size = new System.Drawing.Size(78, 20);
+            this.PTCH2SRV_D.TabIndex = 9;
+            // 
+            // label54
+            // 
+            this.label54.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label54.Location = new System.Drawing.Point(6, 63);
+            this.label54.Name = "label54";
+            this.label54.Size = new System.Drawing.Size(15, 13);
+            this.label54.TabIndex = 13;
+            this.label54.Text = "D";
+            // 
+            // PTCH2SRV_I
+            // 
+            this.PTCH2SRV_I.Location = new System.Drawing.Point(111, 36);
+            this.PTCH2SRV_I.Name = "PTCH2SRV_I";
+            this.PTCH2SRV_I.Size = new System.Drawing.Size(78, 20);
+            this.PTCH2SRV_I.TabIndex = 7;
+            // 
+            // label55
+            // 
+            this.label55.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label55.Location = new System.Drawing.Point(6, 40);
+            this.label55.Name = "label55";
+            this.label55.Size = new System.Drawing.Size(10, 13);
+            this.label55.TabIndex = 14;
+            this.label55.Text = "I";
+            // 
+            // PTCH2SRV_P
+            // 
+            this.PTCH2SRV_P.Location = new System.Drawing.Point(111, 13);
+            this.PTCH2SRV_P.Name = "PTCH2SRV_P";
+            this.PTCH2SRV_P.Size = new System.Drawing.Size(78, 20);
+            this.PTCH2SRV_P.TabIndex = 5;
+            // 
+            // label56
+            // 
+            this.label56.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label56.Location = new System.Drawing.Point(6, 17);
+            this.label56.Name = "label56";
+            this.label56.Size = new System.Drawing.Size(14, 13);
+            this.label56.TabIndex = 15;
+            this.label56.Text = "P";
+            // 
+            // groupBox8
+            // 
+            this.groupBox8.Controls.Add(this.RLL2SRV_IMAX);
+            this.groupBox8.Controls.Add(this.label49);
+            this.groupBox8.Controls.Add(this.RLL2SRV_D);
+            this.groupBox8.Controls.Add(this.label50);
+            this.groupBox8.Controls.Add(this.RLL2SRV_I);
+            this.groupBox8.Controls.Add(this.label51);
+            this.groupBox8.Controls.Add(this.RLL2SRV_P);
+            this.groupBox8.Controls.Add(this.label52);
+            this.groupBox8.Location = new System.Drawing.Point(12, 15);
+            this.groupBox8.Name = "groupBox8";
+            this.groupBox8.Size = new System.Drawing.Size(195, 108);
+            this.groupBox8.TabIndex = 23;
+            this.groupBox8.TabStop = false;
+            this.groupBox8.Text = "Servo Roll Pid";
+            // 
+            // RLL2SRV_IMAX
+            // 
+            this.RLL2SRV_IMAX.Location = new System.Drawing.Point(111, 82);
+            this.RLL2SRV_IMAX.Name = "RLL2SRV_IMAX";
+            this.RLL2SRV_IMAX.Size = new System.Drawing.Size(78, 20);
+            this.RLL2SRV_IMAX.TabIndex = 11;
+            // 
+            // label49
+            // 
+            this.label49.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label49.Location = new System.Drawing.Point(6, 86);
+            this.label49.Name = "label49";
+            this.label49.Size = new System.Drawing.Size(54, 13);
+            this.label49.TabIndex = 12;
+            this.label49.Text = "INT_MAX";
+            // 
+            // RLL2SRV_D
+            // 
+            this.RLL2SRV_D.Location = new System.Drawing.Point(111, 59);
+            this.RLL2SRV_D.Name = "RLL2SRV_D";
+            this.RLL2SRV_D.Size = new System.Drawing.Size(78, 20);
+            this.RLL2SRV_D.TabIndex = 9;
+            // 
+            // label50
+            // 
+            this.label50.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label50.Location = new System.Drawing.Point(6, 63);
+            this.label50.Name = "label50";
+            this.label50.Size = new System.Drawing.Size(15, 13);
+            this.label50.TabIndex = 13;
+            this.label50.Text = "D";
+            // 
+            // RLL2SRV_I
+            // 
+            this.RLL2SRV_I.Location = new System.Drawing.Point(111, 36);
+            this.RLL2SRV_I.Name = "RLL2SRV_I";
+            this.RLL2SRV_I.Size = new System.Drawing.Size(78, 20);
+            this.RLL2SRV_I.TabIndex = 7;
+            // 
+            // label51
+            // 
+            this.label51.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label51.Location = new System.Drawing.Point(6, 40);
+            this.label51.Name = "label51";
+            this.label51.Size = new System.Drawing.Size(10, 13);
+            this.label51.TabIndex = 14;
+            this.label51.Text = "I";
+            // 
+            // RLL2SRV_P
+            // 
+            this.RLL2SRV_P.Location = new System.Drawing.Point(111, 13);
+            this.RLL2SRV_P.Name = "RLL2SRV_P";
+            this.RLL2SRV_P.Size = new System.Drawing.Size(78, 20);
+            this.RLL2SRV_P.TabIndex = 5;
+            // 
+            // label52
+            // 
+            this.label52.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label52.Location = new System.Drawing.Point(6, 17);
+            this.label52.Name = "label52";
+            this.label52.Size = new System.Drawing.Size(14, 13);
+            this.label52.TabIndex = 15;
+            this.label52.Text = "P";
+            // 
+            // ConfigArduplane
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.groupBox3);
+            this.Controls.Add(this.groupBox1);
+            this.Controls.Add(this.groupBox2);
+            this.Controls.Add(this.groupBox15);
+            this.Controls.Add(this.groupBox16);
+            this.Controls.Add(this.groupBox14);
+            this.Controls.Add(this.groupBox13);
+            this.Controls.Add(this.groupBox12);
+            this.Controls.Add(this.groupBox11);
+            this.Controls.Add(this.groupBox10);
+            this.Controls.Add(this.groupBox9);
+            this.Controls.Add(this.groupBox8);
+            this.Name = "ConfigArduplane";
+            this.Size = new System.Drawing.Size(621, 456);
+            this.groupBox3.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.THR_FS_VALUE)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_MAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.THR_MIN)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.TRIM_THROTTLE)).EndInit();
+            this.groupBox1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.ARSPD_RATIO)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSPD_FBW_MAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSPD_FBW_MIN)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.TRIM_ARSPD_CM)).EndInit();
+            this.groupBox2.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.LIM_PITCH_MIN)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.LIM_PITCH_MAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.LIM_ROLL_CD)).EndInit();
+            this.groupBox15.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.XTRK_ANGLE_CD)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.XTRK_GAIN_SC)).EndInit();
+            this.groupBox16.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.KFF_PTCH2THR)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.KFF_RDDRMIX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.KFF_PTCHCOMP)).EndInit();
+            this.groupBox14.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.ENRGY2THR_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ENRGY2THR_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ENRGY2THR_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ENRGY2THR_P)).EndInit();
+            this.groupBox13.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.ALT2PTCH_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ALT2PTCH_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ALT2PTCH_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ALT2PTCH_P)).EndInit();
+            this.groupBox12.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.ARSP2PTCH_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSP2PTCH_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSP2PTCH_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ARSP2PTCH_P)).EndInit();
+            this.groupBox11.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.HDNG2RLL_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HDNG2RLL_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HDNG2RLL_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HDNG2RLL_P)).EndInit();
+            this.groupBox10.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.YW2SRV_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.YW2SRV_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.YW2SRV_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.YW2SRV_P)).EndInit();
+            this.groupBox9.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.PTCH2SRV_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.PTCH2SRV_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.PTCH2SRV_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.PTCH2SRV_P)).EndInit();
+            this.groupBox8.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.RLL2SRV_IMAX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RLL2SRV_D)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RLL2SRV_I)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.RLL2SRV_P)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox groupBox3;
+        private System.Windows.Forms.NumericUpDown THR_FS_VALUE;
+        private System.Windows.Forms.Label label5;
+        private System.Windows.Forms.NumericUpDown THR_MAX;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.NumericUpDown THR_MIN;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.NumericUpDown TRIM_THROTTLE;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.NumericUpDown ARSPD_RATIO;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.NumericUpDown ARSPD_FBW_MAX;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.NumericUpDown ARSPD_FBW_MIN;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.NumericUpDown TRIM_ARSPD_CM;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.GroupBox groupBox2;
+        private System.Windows.Forms.NumericUpDown LIM_PITCH_MIN;
+        private System.Windows.Forms.Label label39;
+        private System.Windows.Forms.NumericUpDown LIM_PITCH_MAX;
+        private System.Windows.Forms.Label label38;
+        private System.Windows.Forms.NumericUpDown LIM_ROLL_CD;
+        private System.Windows.Forms.Label label37;
+        private System.Windows.Forms.GroupBox groupBox15;
+        private System.Windows.Forms.NumericUpDown XTRK_ANGLE_CD;
+        private System.Windows.Forms.Label label79;
+        private System.Windows.Forms.NumericUpDown XTRK_GAIN_SC;
+        private System.Windows.Forms.Label label80;
+        private System.Windows.Forms.GroupBox groupBox16;
+        private System.Windows.Forms.NumericUpDown KFF_PTCH2THR;
+        private System.Windows.Forms.Label label83;
+        private System.Windows.Forms.NumericUpDown KFF_RDDRMIX;
+        private System.Windows.Forms.Label label78;
+        private System.Windows.Forms.NumericUpDown KFF_PTCHCOMP;
+        private System.Windows.Forms.Label label81;
+        private System.Windows.Forms.GroupBox groupBox14;
+        private System.Windows.Forms.NumericUpDown ENRGY2THR_IMAX;
+        private System.Windows.Forms.Label label73;
+        private System.Windows.Forms.NumericUpDown ENRGY2THR_D;
+        private System.Windows.Forms.Label label74;
+        private System.Windows.Forms.NumericUpDown ENRGY2THR_I;
+        private System.Windows.Forms.Label label75;
+        private System.Windows.Forms.NumericUpDown ENRGY2THR_P;
+        private System.Windows.Forms.Label label76;
+        private System.Windows.Forms.GroupBox groupBox13;
+        private System.Windows.Forms.NumericUpDown ALT2PTCH_IMAX;
+        private System.Windows.Forms.Label label69;
+        private System.Windows.Forms.NumericUpDown ALT2PTCH_D;
+        private System.Windows.Forms.Label label70;
+        private System.Windows.Forms.NumericUpDown ALT2PTCH_I;
+        private System.Windows.Forms.Label label71;
+        private System.Windows.Forms.NumericUpDown ALT2PTCH_P;
+        private System.Windows.Forms.Label label72;
+        private System.Windows.Forms.GroupBox groupBox12;
+        private System.Windows.Forms.NumericUpDown ARSP2PTCH_IMAX;
+        private System.Windows.Forms.Label label65;
+        private System.Windows.Forms.NumericUpDown ARSP2PTCH_D;
+        private System.Windows.Forms.Label label66;
+        private System.Windows.Forms.NumericUpDown ARSP2PTCH_I;
+        private System.Windows.Forms.Label label67;
+        private System.Windows.Forms.NumericUpDown ARSP2PTCH_P;
+        private System.Windows.Forms.Label label68;
+        private System.Windows.Forms.GroupBox groupBox11;
+        private System.Windows.Forms.NumericUpDown HDNG2RLL_IMAX;
+        private System.Windows.Forms.Label label61;
+        private System.Windows.Forms.NumericUpDown HDNG2RLL_D;
+        private System.Windows.Forms.Label label62;
+        private System.Windows.Forms.NumericUpDown HDNG2RLL_I;
+        private System.Windows.Forms.Label label63;
+        private System.Windows.Forms.NumericUpDown HDNG2RLL_P;
+        private System.Windows.Forms.Label label64;
+        private System.Windows.Forms.GroupBox groupBox10;
+        private System.Windows.Forms.NumericUpDown YW2SRV_IMAX;
+        private System.Windows.Forms.Label label57;
+        private System.Windows.Forms.NumericUpDown YW2SRV_D;
+        private System.Windows.Forms.Label label58;
+        private System.Windows.Forms.NumericUpDown YW2SRV_I;
+        private System.Windows.Forms.Label label59;
+        private System.Windows.Forms.NumericUpDown YW2SRV_P;
+        private System.Windows.Forms.Label label60;
+        private System.Windows.Forms.GroupBox groupBox9;
+        private System.Windows.Forms.NumericUpDown PTCH2SRV_IMAX;
+        private System.Windows.Forms.Label label53;
+        private System.Windows.Forms.NumericUpDown PTCH2SRV_D;
+        private System.Windows.Forms.Label label54;
+        private System.Windows.Forms.NumericUpDown PTCH2SRV_I;
+        private System.Windows.Forms.Label label55;
+        private System.Windows.Forms.NumericUpDown PTCH2SRV_P;
+        private System.Windows.Forms.Label label56;
+        private System.Windows.Forms.GroupBox groupBox8;
+        private System.Windows.Forms.NumericUpDown RLL2SRV_IMAX;
+        private System.Windows.Forms.Label label49;
+        private System.Windows.Forms.NumericUpDown RLL2SRV_D;
+        private System.Windows.Forms.Label label50;
+        private System.Windows.Forms.NumericUpDown RLL2SRV_I;
+        private System.Windows.Forms.Label label51;
+        private System.Windows.Forms.NumericUpDown RLL2SRV_P;
+        private System.Windows.Forms.Label label52;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.cs
new file mode 100644
index 000000000..8a4ac7a73
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigArduplane : UserControl
+    {
+        public ConfigArduplane()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.resx
new file mode 100644
index 000000000..7080a7d11
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigArduplane.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.Designer.cs
new file mode 100644
index 000000000..268186208
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.Designer.cs
@@ -0,0 +1,300 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigBatteryMonitoring
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigBatteryMonitoring));
+            this.groupBox4 = new System.Windows.Forms.GroupBox();
+            this.label31 = new System.Windows.Forms.Label();
+            this.label32 = new System.Windows.Forms.Label();
+            this.label33 = new System.Windows.Forms.Label();
+            this.TXT_ampspervolt = new System.Windows.Forms.TextBox();
+            this.label34 = new System.Windows.Forms.Label();
+            this.TXT_divider = new System.Windows.Forms.TextBox();
+            this.label35 = new System.Windows.Forms.Label();
+            this.TXT_voltage = new System.Windows.Forms.TextBox();
+            this.TXT_inputvoltage = new System.Windows.Forms.TextBox();
+            this.TXT_measuredvoltage = new System.Windows.Forms.TextBox();
+            this.label47 = new System.Windows.Forms.Label();
+            this.CMB_batmonsensortype = new System.Windows.Forms.ComboBox();
+            this.textBox3 = new System.Windows.Forms.TextBox();
+            this.label29 = new System.Windows.Forms.Label();
+            this.label30 = new System.Windows.Forms.Label();
+            this.TXT_battcapacity = new System.Windows.Forms.TextBox();
+            this.CMB_batmontype = new System.Windows.Forms.ComboBox();
+            this.pictureBox5 = new System.Windows.Forms.PictureBox();
+            this.groupBox4.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // groupBox4
+            // 
+            this.groupBox4.Controls.Add(this.label31);
+            this.groupBox4.Controls.Add(this.label32);
+            this.groupBox4.Controls.Add(this.label33);
+            this.groupBox4.Controls.Add(this.TXT_ampspervolt);
+            this.groupBox4.Controls.Add(this.label34);
+            this.groupBox4.Controls.Add(this.TXT_divider);
+            this.groupBox4.Controls.Add(this.label35);
+            this.groupBox4.Controls.Add(this.TXT_voltage);
+            this.groupBox4.Controls.Add(this.TXT_inputvoltage);
+            this.groupBox4.Controls.Add(this.TXT_measuredvoltage);
+            this.groupBox4.Location = new System.Drawing.Point(14, 172);
+            this.groupBox4.Name = "groupBox4";
+            this.groupBox4.Size = new System.Drawing.Size(238, 131);
+            this.groupBox4.TabIndex = 50;
+            this.groupBox4.TabStop = false;
+            this.groupBox4.Text = "Calibration";
+            // 
+            // label31
+            // 
+            this.label31.AutoSize = true;
+            this.label31.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label31.Location = new System.Drawing.Point(5, 16);
+            this.label31.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label31.Name = "label31";
+            this.label31.Size = new System.Drawing.Size(110, 13);
+            this.label31.TabIndex = 29;
+            this.label31.Text = "1. APM Input voltage:";
+            // 
+            // label32
+            // 
+            this.label32.AutoSize = true;
+            this.label32.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label32.Location = new System.Drawing.Point(5, 38);
+            this.label32.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label32.Name = "label32";
+            this.label32.Size = new System.Drawing.Size(142, 13);
+            this.label32.TabIndex = 30;
+            this.label32.Text = "2. Measured battery voltage:";
+            // 
+            // label33
+            // 
+            this.label33.AutoSize = true;
+            this.label33.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label33.Location = new System.Drawing.Point(5, 60);
+            this.label33.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label33.Name = "label33";
+            this.label33.Size = new System.Drawing.Size(135, 13);
+            this.label33.TabIndex = 31;
+            this.label33.Text = "3. Battery voltage (Calced):";
+            // 
+            // TXT_ampspervolt
+            // 
+            this.TXT_ampspervolt.Location = new System.Drawing.Point(149, 100);
+            this.TXT_ampspervolt.Margin = new System.Windows.Forms.Padding(2);
+            this.TXT_ampspervolt.Name = "TXT_ampspervolt";
+            this.TXT_ampspervolt.Size = new System.Drawing.Size(76, 20);
+            this.TXT_ampspervolt.TabIndex = 38;
+            // 
+            // label34
+            // 
+            this.label34.AutoSize = true;
+            this.label34.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label34.Location = new System.Drawing.Point(5, 81);
+            this.label34.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label34.Name = "label34";
+            this.label34.Size = new System.Drawing.Size(134, 13);
+            this.label34.TabIndex = 32;
+            this.label34.Text = "4. Voltage divider (Calced):";
+            // 
+            // TXT_divider
+            // 
+            this.TXT_divider.Location = new System.Drawing.Point(149, 78);
+            this.TXT_divider.Margin = new System.Windows.Forms.Padding(2);
+            this.TXT_divider.Name = "TXT_divider";
+            this.TXT_divider.Size = new System.Drawing.Size(76, 20);
+            this.TXT_divider.TabIndex = 37;
+            // 
+            // label35
+            // 
+            this.label35.AutoSize = true;
+            this.label35.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label35.Location = new System.Drawing.Point(6, 103);
+            this.label35.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
+            this.label35.Name = "label35";
+            this.label35.Size = new System.Drawing.Size(101, 13);
+            this.label35.TabIndex = 33;
+            this.label35.Text = "5. Amperes per volt:";
+            // 
+            // TXT_voltage
+            // 
+            this.TXT_voltage.Location = new System.Drawing.Point(149, 57);
+            this.TXT_voltage.Margin = new System.Windows.Forms.Padding(2);
+            this.TXT_voltage.Name = "TXT_voltage";
+            this.TXT_voltage.ReadOnly = true;
+            this.TXT_voltage.Size = new System.Drawing.Size(76, 20);
+            this.TXT_voltage.TabIndex = 36;
+            // 
+            // TXT_inputvoltage
+            // 
+            this.TXT_inputvoltage.Location = new System.Drawing.Point(149, 13);
+            this.TXT_inputvoltage.Margin = new System.Windows.Forms.Padding(2);
+            this.TXT_inputvoltage.Name = "TXT_inputvoltage";
+            this.TXT_inputvoltage.Size = new System.Drawing.Size(76, 20);
+            this.TXT_inputvoltage.TabIndex = 34;
+            // 
+            // TXT_measuredvoltage
+            // 
+            this.TXT_measuredvoltage.Location = new System.Drawing.Point(149, 35);
+            this.TXT_measuredvoltage.Margin = new System.Windows.Forms.Padding(2);
+            this.TXT_measuredvoltage.Name = "TXT_measuredvoltage";
+            this.TXT_measuredvoltage.Size = new System.Drawing.Size(76, 20);
+            this.TXT_measuredvoltage.TabIndex = 35;
+            // 
+            // label47
+            // 
+            this.label47.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label47.Location = new System.Drawing.Point(106, 71);
+            this.label47.Name = "label47";
+            this.label47.Size = new System.Drawing.Size(42, 13);
+            this.label47.TabIndex = 49;
+            this.label47.Text = "Sensor";
+            // 
+            // CMB_batmonsensortype
+            // 
+            this.CMB_batmonsensortype.FormattingEnabled = true;
+            this.CMB_batmonsensortype.Items.AddRange(new object[] {
+            "0: Other",
+            "1: AttoPilot 45A",
+            "2: AttoPilot 90A",
+            "3: AttoPilot 180A"});
+            this.CMB_batmonsensortype.Location = new System.Drawing.Point(160, 68);
+            this.CMB_batmonsensortype.Name = "CMB_batmonsensortype";
+            this.CMB_batmonsensortype.Size = new System.Drawing.Size(121, 21);
+            this.CMB_batmonsensortype.TabIndex = 48;
+            // 
+            // textBox3
+            // 
+            this.textBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);
+            this.textBox3.Location = new System.Drawing.Point(282, 172);
+            this.textBox3.Margin = new System.Windows.Forms.Padding(2);
+            this.textBox3.Multiline = true;
+            this.textBox3.Name = "textBox3";
+            this.textBox3.ReadOnly = true;
+            this.textBox3.Size = new System.Drawing.Size(219, 131);
+            this.textBox3.TabIndex = 47;
+            this.textBox3.Text = resources.GetString("textBox3.Text");
+            // 
+            // label29
+            // 
+            this.label29.AutoSize = true;
+            this.label29.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label29.Location = new System.Drawing.Point(288, 45);
+            this.label29.Name = "label29";
+            this.label29.Size = new System.Drawing.Size(48, 13);
+            this.label29.TabIndex = 43;
+            this.label29.Text = "Capacity";
+            // 
+            // label30
+            // 
+            this.label30.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label30.Location = new System.Drawing.Point(106, 45);
+            this.label30.Name = "label30";
+            this.label30.Size = new System.Drawing.Size(42, 13);
+            this.label30.TabIndex = 44;
+            this.label30.Text = "Monitor";
+            // 
+            // TXT_battcapacity
+            // 
+            this.TXT_battcapacity.Location = new System.Drawing.Point(349, 42);
+            this.TXT_battcapacity.Name = "TXT_battcapacity";
+            this.TXT_battcapacity.Size = new System.Drawing.Size(83, 20);
+            this.TXT_battcapacity.TabIndex = 45;
+            // 
+            // CMB_batmontype
+            // 
+            this.CMB_batmontype.FormattingEnabled = true;
+            this.CMB_batmontype.Items.AddRange(new object[] {
+            "0: Disabled",
+            "3: Battery Volts",
+            "4: Volts & Current"});
+            this.CMB_batmontype.Location = new System.Drawing.Point(160, 41);
+            this.CMB_batmontype.Name = "CMB_batmontype";
+            this.CMB_batmontype.Size = new System.Drawing.Size(121, 21);
+            this.CMB_batmontype.TabIndex = 46;
+            // 
+            // pictureBox5
+            // 
+            this.pictureBox5.BackColor = System.Drawing.Color.White;
+            this.pictureBox5.BackgroundImage = global::ArdupilotMega.Properties.Resources.attocurrent;
+            this.pictureBox5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.pictureBox5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.pictureBox5.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.pictureBox5.Location = new System.Drawing.Point(14, 16);
+            this.pictureBox5.Name = "pictureBox5";
+            this.pictureBox5.Size = new System.Drawing.Size(75, 75);
+            this.pictureBox5.TabIndex = 42;
+            this.pictureBox5.TabStop = false;
+            // 
+            // ConfigBatteryMonitoring
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.groupBox4);
+            this.Controls.Add(this.label47);
+            this.Controls.Add(this.CMB_batmonsensortype);
+            this.Controls.Add(this.textBox3);
+            this.Controls.Add(this.label29);
+            this.Controls.Add(this.label30);
+            this.Controls.Add(this.TXT_battcapacity);
+            this.Controls.Add(this.CMB_batmontype);
+            this.Controls.Add(this.pictureBox5);
+            this.Name = "ConfigBatteryMonitoring";
+            this.Size = new System.Drawing.Size(518, 322);
+            this.groupBox4.ResumeLayout(false);
+            this.groupBox4.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox groupBox4;
+        private System.Windows.Forms.Label label31;
+        private System.Windows.Forms.Label label32;
+        private System.Windows.Forms.Label label33;
+        private System.Windows.Forms.TextBox TXT_ampspervolt;
+        private System.Windows.Forms.Label label34;
+        private System.Windows.Forms.TextBox TXT_divider;
+        private System.Windows.Forms.Label label35;
+        private System.Windows.Forms.TextBox TXT_voltage;
+        private System.Windows.Forms.TextBox TXT_inputvoltage;
+        private System.Windows.Forms.TextBox TXT_measuredvoltage;
+        private System.Windows.Forms.Label label47;
+        private System.Windows.Forms.ComboBox CMB_batmonsensortype;
+        private System.Windows.Forms.TextBox textBox3;
+        private System.Windows.Forms.Label label29;
+        private System.Windows.Forms.Label label30;
+        private System.Windows.Forms.TextBox TXT_battcapacity;
+        private System.Windows.Forms.ComboBox CMB_batmontype;
+        private System.Windows.Forms.PictureBox pictureBox5;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.cs
new file mode 100644
index 000000000..9ad384538
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigBatteryMonitoring : UserControl
+    {
+        public ConfigBatteryMonitoring()
+        {
+            InitializeComponent();
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.resx
new file mode 100644
index 000000000..94b1ff7c8
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigBatteryMonitoring.resx
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>Voltage sensor calibration:
+To calibrate your sensor, use a multimeter to measure the voltage coming out of your ESC's battery-elimination circuit (these are black and red wires in the three-wire cable that is powering your APM board).
+Then subtract 0.3v from that value and enter it in field #1 at left.
+</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.Designer.cs
new file mode 100644
index 000000000..829ad3689
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.Designer.cs
@@ -0,0 +1,450 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigFlightModes
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            this.CB_simple6 = new System.Windows.Forms.CheckBox();
+            this.CB_simple5 = new System.Windows.Forms.CheckBox();
+            this.CB_simple4 = new System.Windows.Forms.CheckBox();
+            this.CB_simple3 = new System.Windows.Forms.CheckBox();
+            this.CB_simple2 = new System.Windows.Forms.CheckBox();
+            this.CB_simple1 = new System.Windows.Forms.CheckBox();
+            this.label14 = new System.Windows.Forms.Label();
+            this.LBL_flightmodepwm = new System.Windows.Forms.Label();
+            this.label13 = new System.Windows.Forms.Label();
+            this.lbl_currentmode = new System.Windows.Forms.Label();
+            this.label12 = new System.Windows.Forms.Label();
+            this.label11 = new System.Windows.Forms.Label();
+            this.label10 = new System.Windows.Forms.Label();
+            this.label9 = new System.Windows.Forms.Label();
+            this.label8 = new System.Windows.Forms.Label();
+            this.label7 = new System.Windows.Forms.Label();
+            this.label6 = new System.Windows.Forms.Label();
+            this.CMB_fmode6 = new System.Windows.Forms.ComboBox();
+            this.label5 = new System.Windows.Forms.Label();
+            this.CMB_fmode5 = new System.Windows.Forms.ComboBox();
+            this.label4 = new System.Windows.Forms.Label();
+            this.CMB_fmode4 = new System.Windows.Forms.ComboBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.CMB_fmode3 = new System.Windows.Forms.ComboBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.CMB_fmode2 = new System.Windows.Forms.ComboBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.CMB_fmode1 = new System.Windows.Forms.ComboBox();
+            this.BUT_SaveModes = new ArdupilotMega.MyButton();
+            this.currentStateBindingSource = new System.Windows.Forms.BindingSource(this.components);
+            ((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // CB_simple6
+            // 
+            this.CB_simple6.AutoSize = true;
+            this.CB_simple6.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CB_simple6.Location = new System.Drawing.Point(232, 200);
+            this.CB_simple6.Margin = new System.Windows.Forms.Padding(2);
+            this.CB_simple6.Name = "CB_simple6";
+            this.CB_simple6.Size = new System.Drawing.Size(87, 17);
+            this.CB_simple6.TabIndex = 148;
+            this.CB_simple6.Text = "Simple Mode";
+            this.CB_simple6.UseVisualStyleBackColor = true;
+            // 
+            // CB_simple5
+            // 
+            this.CB_simple5.AutoSize = true;
+            this.CB_simple5.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CB_simple5.Location = new System.Drawing.Point(232, 173);
+            this.CB_simple5.Margin = new System.Windows.Forms.Padding(2);
+            this.CB_simple5.Name = "CB_simple5";
+            this.CB_simple5.Size = new System.Drawing.Size(87, 17);
+            this.CB_simple5.TabIndex = 147;
+            this.CB_simple5.Text = "Simple Mode";
+            this.CB_simple5.UseVisualStyleBackColor = true;
+            // 
+            // CB_simple4
+            // 
+            this.CB_simple4.AutoSize = true;
+            this.CB_simple4.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CB_simple4.Location = new System.Drawing.Point(232, 146);
+            this.CB_simple4.Margin = new System.Windows.Forms.Padding(2);
+            this.CB_simple4.Name = "CB_simple4";
+            this.CB_simple4.Size = new System.Drawing.Size(87, 17);
+            this.CB_simple4.TabIndex = 146;
+            this.CB_simple4.Text = "Simple Mode";
+            this.CB_simple4.UseVisualStyleBackColor = true;
+            // 
+            // CB_simple3
+            // 
+            this.CB_simple3.AutoSize = true;
+            this.CB_simple3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CB_simple3.Location = new System.Drawing.Point(232, 119);
+            this.CB_simple3.Margin = new System.Windows.Forms.Padding(2);
+            this.CB_simple3.Name = "CB_simple3";
+            this.CB_simple3.Size = new System.Drawing.Size(87, 17);
+            this.CB_simple3.TabIndex = 145;
+            this.CB_simple3.Text = "Simple Mode";
+            this.CB_simple3.UseVisualStyleBackColor = true;
+            // 
+            // CB_simple2
+            // 
+            this.CB_simple2.AutoSize = true;
+            this.CB_simple2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CB_simple2.Location = new System.Drawing.Point(232, 92);
+            this.CB_simple2.Margin = new System.Windows.Forms.Padding(2);
+            this.CB_simple2.Name = "CB_simple2";
+            this.CB_simple2.Size = new System.Drawing.Size(87, 17);
+            this.CB_simple2.TabIndex = 144;
+            this.CB_simple2.Text = "Simple Mode";
+            this.CB_simple2.UseVisualStyleBackColor = true;
+            // 
+            // CB_simple1
+            // 
+            this.CB_simple1.AutoSize = true;
+            this.CB_simple1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CB_simple1.Location = new System.Drawing.Point(232, 65);
+            this.CB_simple1.Margin = new System.Windows.Forms.Padding(2);
+            this.CB_simple1.Name = "CB_simple1";
+            this.CB_simple1.Size = new System.Drawing.Size(87, 17);
+            this.CB_simple1.TabIndex = 143;
+            this.CB_simple1.Text = "Simple Mode";
+            this.CB_simple1.UseVisualStyleBackColor = true;
+            // 
+            // label14
+            // 
+            this.label14.AutoSize = true;
+            this.label14.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label14.Location = new System.Drawing.Point(94, 32);
+            this.label14.Name = "label14";
+            this.label14.Size = new System.Drawing.Size(74, 13);
+            this.label14.TabIndex = 142;
+            this.label14.Text = "Current PWM:";
+            // 
+            // LBL_flightmodepwm
+            // 
+            this.LBL_flightmodepwm.AutoSize = true;
+            this.LBL_flightmodepwm.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.LBL_flightmodepwm.Location = new System.Drawing.Point(174, 32);
+            this.LBL_flightmodepwm.Name = "LBL_flightmodepwm";
+            this.LBL_flightmodepwm.Size = new System.Drawing.Size(13, 13);
+            this.LBL_flightmodepwm.TabIndex = 141;
+            this.LBL_flightmodepwm.Text = "0";
+            // 
+            // label13
+            // 
+            this.label13.AutoSize = true;
+            this.label13.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label13.Location = new System.Drawing.Point(94, 15);
+            this.label13.Name = "label13";
+            this.label13.Size = new System.Drawing.Size(74, 13);
+            this.label13.TabIndex = 140;
+            this.label13.Text = "Current Mode:";
+            // 
+            // lbl_currentmode
+            // 
+            this.lbl_currentmode.AutoSize = true;
+            this.lbl_currentmode.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.currentStateBindingSource, "mode", true));
+            this.lbl_currentmode.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.lbl_currentmode.Location = new System.Drawing.Point(174, 15);
+            this.lbl_currentmode.Name = "lbl_currentmode";
+            this.lbl_currentmode.Size = new System.Drawing.Size(42, 13);
+            this.lbl_currentmode.TabIndex = 139;
+            this.lbl_currentmode.Text = "Manual";
+            // 
+            // label12
+            // 
+            this.label12.AutoSize = true;
+            this.label12.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label12.Location = new System.Drawing.Point(358, 66);
+            this.label12.Name = "label12";
+            this.label12.Size = new System.Drawing.Size(76, 13);
+            this.label12.TabIndex = 138;
+            this.label12.Text = "PWM 0 - 1230";
+            // 
+            // label11
+            // 
+            this.label11.AutoSize = true;
+            this.label11.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label11.Location = new System.Drawing.Point(358, 201);
+            this.label11.Name = "label11";
+            this.label11.Size = new System.Drawing.Size(70, 13);
+            this.label11.TabIndex = 137;
+            this.label11.Text = "PWM 1750 +";
+            // 
+            // label10
+            // 
+            this.label10.AutoSize = true;
+            this.label10.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label10.Location = new System.Drawing.Point(358, 174);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(94, 13);
+            this.label10.TabIndex = 136;
+            this.label10.Text = "PWM 1621 - 1749";
+            // 
+            // label9
+            // 
+            this.label9.AutoSize = true;
+            this.label9.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label9.Location = new System.Drawing.Point(358, 147);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(94, 13);
+            this.label9.TabIndex = 135;
+            this.label9.Text = "PWM 1491 - 1620";
+            // 
+            // label8
+            // 
+            this.label8.AutoSize = true;
+            this.label8.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label8.Location = new System.Drawing.Point(358, 120);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(94, 13);
+            this.label8.TabIndex = 134;
+            this.label8.Text = "PWM 1361 - 1490";
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label7.Location = new System.Drawing.Point(358, 93);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(94, 13);
+            this.label7.TabIndex = 133;
+            this.label7.Text = "PWM 1231 - 1360";
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label6.Location = new System.Drawing.Point(20, 201);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(71, 13);
+            this.label6.TabIndex = 131;
+            this.label6.Text = "Flight Mode 6";
+            // 
+            // CMB_fmode6
+            // 
+            this.CMB_fmode6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
+            this.CMB_fmode6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
+            this.CMB_fmode6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_fmode6.FormattingEnabled = true;
+            this.CMB_fmode6.Location = new System.Drawing.Point(97, 198);
+            this.CMB_fmode6.Name = "CMB_fmode6";
+            this.CMB_fmode6.Size = new System.Drawing.Size(121, 21);
+            this.CMB_fmode6.TabIndex = 130;
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label5.Location = new System.Drawing.Point(20, 174);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(71, 13);
+            this.label5.TabIndex = 129;
+            this.label5.Text = "Flight Mode 5";
+            // 
+            // CMB_fmode5
+            // 
+            this.CMB_fmode5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
+            this.CMB_fmode5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
+            this.CMB_fmode5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_fmode5.FormattingEnabled = true;
+            this.CMB_fmode5.Location = new System.Drawing.Point(97, 171);
+            this.CMB_fmode5.Name = "CMB_fmode5";
+            this.CMB_fmode5.Size = new System.Drawing.Size(121, 21);
+            this.CMB_fmode5.TabIndex = 128;
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label4.Location = new System.Drawing.Point(20, 147);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(71, 13);
+            this.label4.TabIndex = 127;
+            this.label4.Text = "Flight Mode 4";
+            // 
+            // CMB_fmode4
+            // 
+            this.CMB_fmode4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
+            this.CMB_fmode4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
+            this.CMB_fmode4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_fmode4.FormattingEnabled = true;
+            this.CMB_fmode4.Location = new System.Drawing.Point(97, 144);
+            this.CMB_fmode4.Name = "CMB_fmode4";
+            this.CMB_fmode4.Size = new System.Drawing.Size(121, 21);
+            this.CMB_fmode4.TabIndex = 126;
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label3.Location = new System.Drawing.Point(20, 120);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(71, 13);
+            this.label3.TabIndex = 125;
+            this.label3.Text = "Flight Mode 3";
+            // 
+            // CMB_fmode3
+            // 
+            this.CMB_fmode3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
+            this.CMB_fmode3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
+            this.CMB_fmode3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_fmode3.FormattingEnabled = true;
+            this.CMB_fmode3.Location = new System.Drawing.Point(97, 117);
+            this.CMB_fmode3.Name = "CMB_fmode3";
+            this.CMB_fmode3.Size = new System.Drawing.Size(121, 21);
+            this.CMB_fmode3.TabIndex = 124;
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label2.Location = new System.Drawing.Point(20, 93);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(71, 13);
+            this.label2.TabIndex = 123;
+            this.label2.Text = "Flight Mode 2";
+            // 
+            // CMB_fmode2
+            // 
+            this.CMB_fmode2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
+            this.CMB_fmode2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
+            this.CMB_fmode2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_fmode2.FormattingEnabled = true;
+            this.CMB_fmode2.Location = new System.Drawing.Point(97, 90);
+            this.CMB_fmode2.Name = "CMB_fmode2";
+            this.CMB_fmode2.Size = new System.Drawing.Size(121, 21);
+            this.CMB_fmode2.TabIndex = 122;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label1.Location = new System.Drawing.Point(20, 66);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(71, 13);
+            this.label1.TabIndex = 121;
+            this.label1.Text = "Flight Mode 1";
+            // 
+            // CMB_fmode1
+            // 
+            this.CMB_fmode1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
+            this.CMB_fmode1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
+            this.CMB_fmode1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_fmode1.FormattingEnabled = true;
+            this.CMB_fmode1.Location = new System.Drawing.Point(97, 63);
+            this.CMB_fmode1.Name = "CMB_fmode1";
+            this.CMB_fmode1.Size = new System.Drawing.Size(121, 21);
+            this.CMB_fmode1.TabIndex = 120;
+            // 
+            // BUT_SaveModes
+            // 
+            this.BUT_SaveModes.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_SaveModes.Location = new System.Drawing.Point(97, 225);
+            this.BUT_SaveModes.Name = "BUT_SaveModes";
+            this.BUT_SaveModes.Size = new System.Drawing.Size(121, 23);
+            this.BUT_SaveModes.TabIndex = 132;
+            this.BUT_SaveModes.Text = "Save Modes";
+            this.BUT_SaveModes.UseVisualStyleBackColor = true;
+            this.BUT_SaveModes.Click += new System.EventHandler(this.BUT_SaveModes_Click);
+            // 
+            // ConfigFlightModes
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.CB_simple6);
+            this.Controls.Add(this.CB_simple5);
+            this.Controls.Add(this.CB_simple4);
+            this.Controls.Add(this.CB_simple3);
+            this.Controls.Add(this.CB_simple2);
+            this.Controls.Add(this.CB_simple1);
+            this.Controls.Add(this.label14);
+            this.Controls.Add(this.LBL_flightmodepwm);
+            this.Controls.Add(this.label13);
+            this.Controls.Add(this.lbl_currentmode);
+            this.Controls.Add(this.label12);
+            this.Controls.Add(this.label11);
+            this.Controls.Add(this.label10);
+            this.Controls.Add(this.label9);
+            this.Controls.Add(this.label8);
+            this.Controls.Add(this.label7);
+            this.Controls.Add(this.label6);
+            this.Controls.Add(this.CMB_fmode6);
+            this.Controls.Add(this.label5);
+            this.Controls.Add(this.CMB_fmode5);
+            this.Controls.Add(this.label4);
+            this.Controls.Add(this.CMB_fmode4);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.CMB_fmode3);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.CMB_fmode2);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.CMB_fmode1);
+            this.Controls.Add(this.BUT_SaveModes);
+            this.Name = "ConfigFlightModes";
+            this.Size = new System.Drawing.Size(500, 270);
+            this.Load += new System.EventHandler(this.ConfigFlightModes_Load);
+            ((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.CheckBox CB_simple6;
+        private System.Windows.Forms.CheckBox CB_simple5;
+        private System.Windows.Forms.CheckBox CB_simple4;
+        private System.Windows.Forms.CheckBox CB_simple3;
+        private System.Windows.Forms.CheckBox CB_simple2;
+        private System.Windows.Forms.CheckBox CB_simple1;
+        private System.Windows.Forms.Label label14;
+        private System.Windows.Forms.Label LBL_flightmodepwm;
+        private System.Windows.Forms.Label label13;
+        private System.Windows.Forms.Label lbl_currentmode;
+        private System.Windows.Forms.Label label12;
+        private System.Windows.Forms.Label label11;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.ComboBox CMB_fmode6;
+        private System.Windows.Forms.Label label5;
+        private System.Windows.Forms.ComboBox CMB_fmode5;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.ComboBox CMB_fmode4;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.ComboBox CMB_fmode3;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.ComboBox CMB_fmode2;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.ComboBox CMB_fmode1;
+        private MyButton BUT_SaveModes;
+        private System.Windows.Forms.BindingSource currentStateBindingSource;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.cs
new file mode 100644
index 000000000..d9acf7002
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.cs
@@ -0,0 +1,215 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigFlightModes : UserControl
+    {
+        Timer timer = new Timer();
+
+        public ConfigFlightModes()
+        {
+            InitializeComponent();
+
+            timer.Tick += new EventHandler(timer_Tick);
+
+            timer.Enabled = true;
+            timer.Interval = 100;
+            timer.Start();
+        }
+
+        void timer_Tick(object sender, EventArgs e)
+        {
+            try
+            {
+                MainV2.cs.UpdateCurrentSettings(currentStateBindingSource);
+            }
+            catch { }
+
+            float pwm = 0;
+
+            if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane) // APM 
+            {
+                if (MainV2.comPort.param.ContainsKey("FLTMODE_CH"))
+                {
+                    switch ((int)(float)MainV2.comPort.param["FLTMODE_CH"])
+                    {
+                        case 5:
+                            pwm = MainV2.cs.ch5in;
+                            break;
+                        case 6:
+                            pwm = MainV2.cs.ch6in;
+                            break;
+                        case 7:
+                            pwm = MainV2.cs.ch7in;
+                            break;
+                        case 8:
+                            pwm = MainV2.cs.ch8in;
+                            break;
+                        default:
+
+                            break;
+                    }
+
+                    LBL_flightmodepwm.Text = MainV2.comPort.param["FLTMODE_CH"].ToString() + ": " + pwm.ToString();
+                }
+            }
+
+            if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2) // ac2
+            {
+                pwm = MainV2.cs.ch5in;
+                LBL_flightmodepwm.Text = "5: " + MainV2.cs.ch5in.ToString();
+            }
+
+            Control[] fmodelist = new Control[] { CMB_fmode1, CMB_fmode2, CMB_fmode3, CMB_fmode4, CMB_fmode5, CMB_fmode6 };
+
+            foreach (Control ctl in fmodelist)
+            {
+                ctl.BackColor = Color.FromArgb(0x43, 0x44, 0x45);
+            }
+
+            byte no = readSwitch(pwm);
+
+            fmodelist[no].BackColor = Color.Green;
+        }
+
+        // from arducopter code
+        byte readSwitch(float inpwm)
+        {
+            int pulsewidth = (int)inpwm;			// default for Arducopter
+
+            if (pulsewidth > 1230 && pulsewidth <= 1360) return 1;
+            if (pulsewidth > 1360 && pulsewidth <= 1490) return 2;
+            if (pulsewidth > 1490 && pulsewidth <= 1620) return 3;
+            if (pulsewidth > 1620 && pulsewidth <= 1749) return 4;	// Software Manual
+            if (pulsewidth >= 1750) return 5;	// Hardware Manual
+            return 0;
+        }
+
+        private void BUT_SaveModes_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane) // APM
+                {
+                    MainV2.comPort.setParam("FLTMODE1", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode1.Text));
+                    MainV2.comPort.setParam("FLTMODE2", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode2.Text));
+                    MainV2.comPort.setParam("FLTMODE3", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode3.Text));
+                    MainV2.comPort.setParam("FLTMODE4", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode4.Text));
+                    MainV2.comPort.setParam("FLTMODE5", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode5.Text));
+                    MainV2.comPort.setParam("FLTMODE6", (float)(int)Enum.Parse(typeof(Common.apmmodes), CMB_fmode6.Text));
+                }
+                if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2) // ac2
+                {
+                    MainV2.comPort.setParam("FLTMODE1", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode1.Text));
+                    MainV2.comPort.setParam("FLTMODE2", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode2.Text));
+                    MainV2.comPort.setParam("FLTMODE3", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode3.Text));
+                    MainV2.comPort.setParam("FLTMODE4", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode4.Text));
+                    MainV2.comPort.setParam("FLTMODE5", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode5.Text));
+                    MainV2.comPort.setParam("FLTMODE6", (float)(int)Enum.Parse(typeof(Common.ac2modes), CMB_fmode6.Text));
+
+                    float value = (float)(CB_simple1.Checked ? (int)SimpleMode.Simple1 : 0) + (CB_simple2.Checked ? (int)SimpleMode.Simple2 : 0) + (CB_simple3.Checked ? (int)SimpleMode.Simple3 : 0)
+                        + (CB_simple4.Checked ? (int)SimpleMode.Simple4 : 0) + (CB_simple5.Checked ? (int)SimpleMode.Simple5 : 0) + (CB_simple6.Checked ? (int)SimpleMode.Simple6 : 0);
+                    if (MainV2.comPort.param.ContainsKey("SIMPLE"))
+                        MainV2.comPort.setParam("SIMPLE", value);
+                }
+            }
+            catch { CustomMessageBox.Show("Failed to set Flight modes"); }
+            BUT_SaveModes.Text = "Complete";
+        }
+
+        [Flags]
+        public enum SimpleMode
+        {
+            None = 0,
+            Simple1 = 1,
+            Simple2 = 2,
+            Simple3 = 4,
+            Simple4 = 8,
+            Simple5 = 16,
+            Simple6 = 32,
+        }
+
+        private void ConfigFlightModes_Load(object sender, EventArgs e)
+        {
+            if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane) // APM
+            {
+                CB_simple1.Visible = false;
+                CB_simple2.Visible = false;
+                CB_simple3.Visible = false;
+                CB_simple4.Visible = false;
+                CB_simple5.Visible = false;
+                CB_simple6.Visible = false;
+
+                CMB_fmode1.Items.Clear();
+                CMB_fmode2.Items.Clear();
+                CMB_fmode3.Items.Clear();
+                CMB_fmode4.Items.Clear();
+                CMB_fmode5.Items.Clear();
+                CMB_fmode6.Items.Clear();
+
+                CMB_fmode1.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
+                CMB_fmode2.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
+                CMB_fmode3.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
+                CMB_fmode4.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
+                CMB_fmode5.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
+                CMB_fmode6.Items.AddRange(Enum.GetNames(typeof(Common.apmmodes)));
+
+                try
+                {
+                    CMB_fmode1.Text = Enum.Parse(typeof(Common.apmmodes), MainV2.comPort.param["FLTMODE1"].ToString()).ToString();
+                    CMB_fmode2.Text = Enum.Parse(typeof(Common.apmmodes), MainV2.comPort.param["FLTMODE2"].ToString()).ToString();
+                    CMB_fmode3.Text = Enum.Parse(typeof(Common.apmmodes), MainV2.comPort.param["FLTMODE3"].ToString()).ToString();
+                    CMB_fmode4.Text = Enum.Parse(typeof(Common.apmmodes), MainV2.comPort.param["FLTMODE4"].ToString()).ToString();
+                    CMB_fmode5.Text = Enum.Parse(typeof(Common.apmmodes), MainV2.comPort.param["FLTMODE5"].ToString()).ToString();
+                    CMB_fmode6.Text = Common.apmmodes.MANUAL.ToString();
+                    CMB_fmode6.Enabled = false;
+                }
+                catch { }
+            }
+            if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2) // ac2
+            {
+                CMB_fmode1.Items.Clear();
+                CMB_fmode2.Items.Clear();
+                CMB_fmode3.Items.Clear();
+                CMB_fmode4.Items.Clear();
+                CMB_fmode5.Items.Clear();
+                CMB_fmode6.Items.Clear();
+
+                CMB_fmode1.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
+                CMB_fmode2.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
+                CMB_fmode3.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
+                CMB_fmode4.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
+                CMB_fmode5.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
+                CMB_fmode6.Items.AddRange(Enum.GetNames(typeof(Common.ac2modes)));
+
+                try
+                {
+                    CMB_fmode1.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE1"].ToString()).ToString();
+                    CMB_fmode2.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE2"].ToString()).ToString();
+                    CMB_fmode3.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE3"].ToString()).ToString();
+                    CMB_fmode4.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE4"].ToString()).ToString();
+                    CMB_fmode5.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE5"].ToString()).ToString();
+                    CMB_fmode6.Text = Enum.Parse(typeof(Common.ac2modes), MainV2.comPort.param["FLTMODE6"].ToString()).ToString();
+                    CMB_fmode6.Enabled = true;
+
+                    int simple = int.Parse(MainV2.comPort.param["SIMPLE"].ToString());
+
+                    CB_simple1.Checked = ((simple >> 0 & 1) == 1);
+                    CB_simple2.Checked = ((simple >> 1 & 1) == 1);
+                    CB_simple3.Checked = ((simple >> 2 & 1) == 1);
+                    CB_simple4.Checked = ((simple >> 3 & 1) == 1);
+                    CB_simple5.Checked = ((simple >> 4 & 1) == 1);
+                    CB_simple6.Checked = ((simple >> 5 & 1) == 1);
+                }
+                catch { }
+            }
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.resx
new file mode 100644
index 000000000..ff1f88db6
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigFlightModes.resx
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="currentStateBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="currentStateBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.Designer.cs
new file mode 100644
index 000000000..909cb7731
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.Designer.cs
@@ -0,0 +1,248 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigHardwareOptions
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.BUT_MagCalibration = new ArdupilotMega.MyButton();
+            this.label27 = new System.Windows.Forms.Label();
+            this.CMB_sonartype = new System.Windows.Forms.ComboBox();
+            this.CHK_enableoptflow = new System.Windows.Forms.CheckBox();
+            this.pictureBox2 = new System.Windows.Forms.PictureBox();
+            this.linkLabelmagdec = new System.Windows.Forms.LinkLabel();
+            this.label100 = new System.Windows.Forms.Label();
+            this.TXT_declination = new System.Windows.Forms.TextBox();
+            this.CHK_enableairspeed = new System.Windows.Forms.CheckBox();
+            this.CHK_enablesonar = new System.Windows.Forms.CheckBox();
+            this.CHK_enablecompass = new System.Windows.Forms.CheckBox();
+            this.pictureBox4 = new System.Windows.Forms.PictureBox();
+            this.pictureBox3 = new System.Windows.Forms.PictureBox();
+            this.pictureBox1 = new System.Windows.Forms.PictureBox();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // BUT_MagCalibration
+            // 
+            this.BUT_MagCalibration.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_MagCalibration.Location = new System.Drawing.Point(340, 13);
+            this.BUT_MagCalibration.Name = "BUT_MagCalibration";
+            this.BUT_MagCalibration.Size = new System.Drawing.Size(75, 23);
+            this.BUT_MagCalibration.TabIndex = 47;
+            this.BUT_MagCalibration.Text = "Calibration";
+            this.BUT_MagCalibration.UseVisualStyleBackColor = true;
+            // 
+            // label27
+            // 
+            this.label27.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label27.Location = new System.Drawing.Point(445, 45);
+            this.label27.Name = "label27";
+            this.label27.Size = new System.Drawing.Size(150, 20);
+            this.label27.TabIndex = 46;
+            this.label27.Text = "in Degrees eg 2° 3\' W is -2.3";
+            // 
+            // CMB_sonartype
+            // 
+            this.CMB_sonartype.FormattingEnabled = true;
+            this.CMB_sonartype.Items.AddRange(new object[] {
+            "XL-EZ0",
+            "LV-EZ0",
+            "XL-EZL0"});
+            this.CMB_sonartype.Location = new System.Drawing.Point(243, 122);
+            this.CMB_sonartype.Name = "CMB_sonartype";
+            this.CMB_sonartype.Size = new System.Drawing.Size(121, 21);
+            this.CMB_sonartype.TabIndex = 45;
+            // 
+            // CHK_enableoptflow
+            // 
+            this.CHK_enableoptflow.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_enableoptflow.Location = new System.Drawing.Point(97, 285);
+            this.CHK_enableoptflow.Name = "CHK_enableoptflow";
+            this.CHK_enableoptflow.Size = new System.Drawing.Size(134, 19);
+            this.CHK_enableoptflow.TabIndex = 44;
+            this.CHK_enableoptflow.Text = "Enable Optical Flow";
+            this.CHK_enableoptflow.UseVisualStyleBackColor = true;
+            // 
+            // pictureBox2
+            // 
+            this.pictureBox2.BackColor = System.Drawing.Color.White;
+            this.pictureBox2.BackgroundImage = global::ArdupilotMega.Properties.Resources.opticalflow;
+            this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.pictureBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.pictureBox2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.pictureBox2.Location = new System.Drawing.Point(13, 259);
+            this.pictureBox2.Name = "pictureBox2";
+            this.pictureBox2.Size = new System.Drawing.Size(75, 75);
+            this.pictureBox2.TabIndex = 43;
+            this.pictureBox2.TabStop = false;
+            // 
+            // linkLabelmagdec
+            // 
+            this.linkLabelmagdec.AutoSize = true;
+            this.linkLabelmagdec.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.linkLabelmagdec.Location = new System.Drawing.Point(325, 68);
+            this.linkLabelmagdec.Name = "linkLabelmagdec";
+            this.linkLabelmagdec.Size = new System.Drawing.Size(104, 13);
+            this.linkLabelmagdec.TabIndex = 42;
+            this.linkLabelmagdec.TabStop = true;
+            this.linkLabelmagdec.Text = "Declination WebSite";
+            // 
+            // label100
+            // 
+            this.label100.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label100.Location = new System.Drawing.Point(240, 45);
+            this.label100.Name = "label100";
+            this.label100.Size = new System.Drawing.Size(72, 16);
+            this.label100.TabIndex = 38;
+            this.label100.Text = "Declination";
+            // 
+            // TXT_declination
+            // 
+            this.TXT_declination.Location = new System.Drawing.Point(318, 45);
+            this.TXT_declination.Name = "TXT_declination";
+            this.TXT_declination.Size = new System.Drawing.Size(121, 20);
+            this.TXT_declination.TabIndex = 37;
+            // 
+            // CHK_enableairspeed
+            // 
+            this.CHK_enableairspeed.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_enableairspeed.Location = new System.Drawing.Point(97, 202);
+            this.CHK_enableairspeed.Name = "CHK_enableairspeed";
+            this.CHK_enableairspeed.Size = new System.Drawing.Size(103, 17);
+            this.CHK_enableairspeed.TabIndex = 39;
+            this.CHK_enableairspeed.Text = "Enable Airspeed";
+            this.CHK_enableairspeed.UseVisualStyleBackColor = true;
+            // 
+            // CHK_enablesonar
+            // 
+            this.CHK_enablesonar.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_enablesonar.Location = new System.Drawing.Point(94, 124);
+            this.CHK_enablesonar.Name = "CHK_enablesonar";
+            this.CHK_enablesonar.Size = new System.Drawing.Size(90, 17);
+            this.CHK_enablesonar.TabIndex = 40;
+            this.CHK_enablesonar.Text = "Enable Sonar";
+            this.CHK_enablesonar.UseVisualStyleBackColor = true;
+            // 
+            // CHK_enablecompass
+            // 
+            this.CHK_enablecompass.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_enablecompass.Location = new System.Drawing.Point(97, 44);
+            this.CHK_enablecompass.Name = "CHK_enablecompass";
+            this.CHK_enablecompass.Size = new System.Drawing.Size(105, 17);
+            this.CHK_enablecompass.TabIndex = 41;
+            this.CHK_enablecompass.Text = "Enable Compass";
+            this.CHK_enablecompass.UseVisualStyleBackColor = true;
+            // 
+            // pictureBox4
+            // 
+            this.pictureBox4.BackColor = System.Drawing.Color.White;
+            this.pictureBox4.BackgroundImage = global::ArdupilotMega.Properties.Resources.airspeed;
+            this.pictureBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.pictureBox4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.pictureBox4.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.pictureBox4.Location = new System.Drawing.Point(13, 176);
+            this.pictureBox4.Name = "pictureBox4";
+            this.pictureBox4.Size = new System.Drawing.Size(75, 75);
+            this.pictureBox4.TabIndex = 36;
+            this.pictureBox4.TabStop = false;
+            // 
+            // pictureBox3
+            // 
+            this.pictureBox3.BackColor = System.Drawing.Color.White;
+            this.pictureBox3.BackgroundImage = global::ArdupilotMega.Properties.Resources.sonar;
+            this.pictureBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.pictureBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.pictureBox3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.pictureBox3.Location = new System.Drawing.Point(13, 94);
+            this.pictureBox3.Name = "pictureBox3";
+            this.pictureBox3.Size = new System.Drawing.Size(75, 75);
+            this.pictureBox3.TabIndex = 35;
+            this.pictureBox3.TabStop = false;
+            // 
+            // pictureBox1
+            // 
+            this.pictureBox1.BackgroundImage = global::ArdupilotMega.Properties.Resources.compass;
+            this.pictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+            this.pictureBox1.ErrorImage = null;
+            this.pictureBox1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.pictureBox1.InitialImage = null;
+            this.pictureBox1.Location = new System.Drawing.Point(13, 13);
+            this.pictureBox1.Name = "pictureBox1";
+            this.pictureBox1.Size = new System.Drawing.Size(75, 75);
+            this.pictureBox1.TabIndex = 34;
+            this.pictureBox1.TabStop = false;
+            // 
+            // ConfigHardwareOptions
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.BUT_MagCalibration);
+            this.Controls.Add(this.label27);
+            this.Controls.Add(this.CMB_sonartype);
+            this.Controls.Add(this.CHK_enableoptflow);
+            this.Controls.Add(this.pictureBox2);
+            this.Controls.Add(this.linkLabelmagdec);
+            this.Controls.Add(this.label100);
+            this.Controls.Add(this.TXT_declination);
+            this.Controls.Add(this.CHK_enableairspeed);
+            this.Controls.Add(this.CHK_enablesonar);
+            this.Controls.Add(this.CHK_enablecompass);
+            this.Controls.Add(this.pictureBox4);
+            this.Controls.Add(this.pictureBox3);
+            this.Controls.Add(this.pictureBox1);
+            this.Name = "ConfigHardwareOptions";
+            this.Size = new System.Drawing.Size(602, 351);
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private MyButton BUT_MagCalibration;
+        private System.Windows.Forms.Label label27;
+        private System.Windows.Forms.ComboBox CMB_sonartype;
+        private System.Windows.Forms.CheckBox CHK_enableoptflow;
+        private System.Windows.Forms.PictureBox pictureBox2;
+        private System.Windows.Forms.LinkLabel linkLabelmagdec;
+        private System.Windows.Forms.Label label100;
+        private System.Windows.Forms.TextBox TXT_declination;
+        private System.Windows.Forms.CheckBox CHK_enableairspeed;
+        private System.Windows.Forms.CheckBox CHK_enablesonar;
+        private System.Windows.Forms.CheckBox CHK_enablecompass;
+        private System.Windows.Forms.PictureBox pictureBox4;
+        private System.Windows.Forms.PictureBox pictureBox3;
+        private System.Windows.Forms.PictureBox pictureBox1;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs
new file mode 100644
index 000000000..ed884a1ae
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigHardwareOptions : UserControl
+    {
+        public ConfigHardwareOptions()
+        {
+            InitializeComponent();
+        }
+
+        private void CHK_enableoptflow_CheckedChanged(object sender, EventArgs e)
+        {
+
+        }
+
+        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+        {
+
+        }
+
+        private void TXT_declination_Validated(object sender, EventArgs e)
+        {
+
+        }
+
+        private void CHK_enableairspeed_CheckedChanged(object sender, EventArgs e)
+        {
+
+        }
+
+        private void CHK_enablesonar_CheckedChanged(object sender, EventArgs e)
+        {
+
+        }
+
+        private void CHK_enablecompass_CheckedChanged(object sender, EventArgs e)
+        {
+
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.resx
new file mode 100644
index 000000000..7080a7d11
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.Designer.cs
new file mode 100644
index 000000000..ec5a15499
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.Designer.cs
@@ -0,0 +1,677 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigPlanner
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.label33 = new System.Windows.Forms.Label();
+            this.CMB_ratesensors = new System.Windows.Forms.ComboBox();
+            this.label26 = new System.Windows.Forms.Label();
+            this.CMB_videoresolutions = new System.Windows.Forms.ComboBox();
+            this.label12 = new System.Windows.Forms.Label();
+            this.CHK_GDIPlus = new System.Windows.Forms.CheckBox();
+            this.label24 = new System.Windows.Forms.Label();
+            this.CHK_loadwponconnect = new System.Windows.Forms.CheckBox();
+            this.label23 = new System.Windows.Forms.Label();
+            this.NUM_tracklength = new System.Windows.Forms.NumericUpDown();
+            this.CHK_speechaltwarning = new System.Windows.Forms.CheckBox();
+            this.label108 = new System.Windows.Forms.Label();
+            this.CHK_resetapmonconnect = new System.Windows.Forms.CheckBox();
+            this.CHK_mavdebug = new System.Windows.Forms.CheckBox();
+            this.label107 = new System.Windows.Forms.Label();
+            this.CMB_raterc = new System.Windows.Forms.ComboBox();
+            this.label104 = new System.Windows.Forms.Label();
+            this.label103 = new System.Windows.Forms.Label();
+            this.label102 = new System.Windows.Forms.Label();
+            this.label101 = new System.Windows.Forms.Label();
+            this.CMB_ratestatus = new System.Windows.Forms.ComboBox();
+            this.CMB_rateposition = new System.Windows.Forms.ComboBox();
+            this.CMB_rateattitude = new System.Windows.Forms.ComboBox();
+            this.label99 = new System.Windows.Forms.Label();
+            this.label98 = new System.Windows.Forms.Label();
+            this.label97 = new System.Windows.Forms.Label();
+            this.CMB_speedunits = new System.Windows.Forms.ComboBox();
+            this.CMB_distunits = new System.Windows.Forms.ComboBox();
+            this.label96 = new System.Windows.Forms.Label();
+            this.label95 = new System.Windows.Forms.Label();
+            this.CHK_speechbattery = new System.Windows.Forms.CheckBox();
+            this.CHK_speechcustom = new System.Windows.Forms.CheckBox();
+            this.CHK_speechmode = new System.Windows.Forms.CheckBox();
+            this.CHK_speechwaypoint = new System.Windows.Forms.CheckBox();
+            this.label94 = new System.Windows.Forms.Label();
+            this.CMB_osdcolor = new System.Windows.Forms.ComboBox();
+            this.CMB_language = new System.Windows.Forms.ComboBox();
+            this.label93 = new System.Windows.Forms.Label();
+            this.CHK_enablespeech = new System.Windows.Forms.CheckBox();
+            this.CHK_hudshow = new System.Windows.Forms.CheckBox();
+            this.label92 = new System.Windows.Forms.Label();
+            this.CMB_videosources = new System.Windows.Forms.ComboBox();
+            this.BUT_Joystick = new ArdupilotMega.MyButton();
+            this.BUT_videostop = new ArdupilotMega.MyButton();
+            this.BUT_videostart = new ArdupilotMega.MyButton();
+            ((System.ComponentModel.ISupportInitialize)(this.NUM_tracklength)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // label33
+            // 
+            this.label33.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label33.Location = new System.Drawing.Point(517, 246);
+            this.label33.Name = "label33";
+            this.label33.Size = new System.Drawing.Size(43, 13);
+            this.label33.TabIndex = 87;
+            this.label33.Text = "Sensor";
+            // 
+            // CMB_ratesensors
+            // 
+            this.CMB_ratesensors.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_ratesensors.FormattingEnabled = true;
+            this.CMB_ratesensors.Items.AddRange(new object[] {
+            "0",
+            "1",
+            "3",
+            "10",
+            "50"});
+            this.CMB_ratesensors.Location = new System.Drawing.Point(564, 243);
+            this.CMB_ratesensors.Name = "CMB_ratesensors";
+            this.CMB_ratesensors.Size = new System.Drawing.Size(40, 21);
+            this.CMB_ratesensors.TabIndex = 88;
+            // 
+            // label26
+            // 
+            this.label26.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label26.Location = new System.Drawing.Point(15, 52);
+            this.label26.Name = "label26";
+            this.label26.Size = new System.Drawing.Size(100, 23);
+            this.label26.TabIndex = 86;
+            this.label26.Text = "Video Format";
+            // 
+            // CMB_videoresolutions
+            // 
+            this.CMB_videoresolutions.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_videoresolutions.FormattingEnabled = true;
+            this.CMB_videoresolutions.Location = new System.Drawing.Point(124, 49);
+            this.CMB_videoresolutions.Name = "CMB_videoresolutions";
+            this.CMB_videoresolutions.Size = new System.Drawing.Size(408, 21);
+            this.CMB_videoresolutions.TabIndex = 44;
+            // 
+            // label12
+            // 
+            this.label12.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label12.Location = new System.Drawing.Point(15, 342);
+            this.label12.Name = "label12";
+            this.label12.Size = new System.Drawing.Size(61, 13);
+            this.label12.TabIndex = 84;
+            this.label12.Text = "HUD";
+            // 
+            // CHK_GDIPlus
+            // 
+            this.CHK_GDIPlus.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_GDIPlus.Location = new System.Drawing.Point(124, 342);
+            this.CHK_GDIPlus.Name = "CHK_GDIPlus";
+            this.CHK_GDIPlus.Size = new System.Drawing.Size(177, 17);
+            this.CHK_GDIPlus.TabIndex = 85;
+            this.CHK_GDIPlus.Text = "GDI+ (old type)";
+            this.CHK_GDIPlus.UseVisualStyleBackColor = true;
+            this.CHK_GDIPlus.CheckedChanged += new System.EventHandler(this.CHK_GDIPlus_CheckedChanged);
+            // 
+            // label24
+            // 
+            this.label24.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label24.Location = new System.Drawing.Point(15, 320);
+            this.label24.Name = "label24";
+            this.label24.Size = new System.Drawing.Size(61, 13);
+            this.label24.TabIndex = 82;
+            this.label24.Text = "Waypoints";
+            // 
+            // CHK_loadwponconnect
+            // 
+            this.CHK_loadwponconnect.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_loadwponconnect.Location = new System.Drawing.Point(124, 319);
+            this.CHK_loadwponconnect.Name = "CHK_loadwponconnect";
+            this.CHK_loadwponconnect.Size = new System.Drawing.Size(177, 17);
+            this.CHK_loadwponconnect.TabIndex = 83;
+            this.CHK_loadwponconnect.Text = "Load Waypoints on connect?";
+            this.CHK_loadwponconnect.UseVisualStyleBackColor = true;
+            this.CHK_loadwponconnect.CheckedChanged += new System.EventHandler(this.CHK_loadwponconnect_CheckedChanged);
+            // 
+            // label23
+            // 
+            this.label23.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label23.Location = new System.Drawing.Point(15, 294);
+            this.label23.Name = "label23";
+            this.label23.Size = new System.Drawing.Size(103, 18);
+            this.label23.TabIndex = 81;
+            this.label23.Text = "Track Length";
+            // 
+            // NUM_tracklength
+            // 
+            this.NUM_tracklength.Increment = new decimal(new int[] {
+            100,
+            0,
+            0,
+            0});
+            this.NUM_tracklength.Location = new System.Drawing.Point(124, 293);
+            this.NUM_tracklength.Maximum = new decimal(new int[] {
+            2000,
+            0,
+            0,
+            0});
+            this.NUM_tracklength.Minimum = new decimal(new int[] {
+            100,
+            0,
+            0,
+            0});
+            this.NUM_tracklength.Name = "NUM_tracklength";
+            this.NUM_tracklength.Size = new System.Drawing.Size(67, 20);
+            this.NUM_tracklength.TabIndex = 80;
+            this.NUM_tracklength.Value = new decimal(new int[] {
+            200,
+            0,
+            0,
+            0});
+            this.NUM_tracklength.ValueChanged += new System.EventHandler(this.NUM_tracklength_ValueChanged);
+            // 
+            // CHK_speechaltwarning
+            // 
+            this.CHK_speechaltwarning.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_speechaltwarning.Location = new System.Drawing.Point(564, 109);
+            this.CHK_speechaltwarning.Name = "CHK_speechaltwarning";
+            this.CHK_speechaltwarning.Size = new System.Drawing.Size(102, 17);
+            this.CHK_speechaltwarning.TabIndex = 79;
+            this.CHK_speechaltwarning.Text = "Alt Warning";
+            this.CHK_speechaltwarning.UseVisualStyleBackColor = true;
+            this.CHK_speechaltwarning.CheckedChanged += new System.EventHandler(this.CHK_speechaltwarning_CheckedChanged);
+            // 
+            // label108
+            // 
+            this.label108.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label108.Location = new System.Drawing.Point(15, 271);
+            this.label108.Name = "label108";
+            this.label108.Size = new System.Drawing.Size(61, 13);
+            this.label108.TabIndex = 45;
+            this.label108.Text = "APM Reset";
+            // 
+            // CHK_resetapmonconnect
+            // 
+            this.CHK_resetapmonconnect.Checked = true;
+            this.CHK_resetapmonconnect.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.CHK_resetapmonconnect.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_resetapmonconnect.Location = new System.Drawing.Point(124, 269);
+            this.CHK_resetapmonconnect.Name = "CHK_resetapmonconnect";
+            this.CHK_resetapmonconnect.Size = new System.Drawing.Size(163, 17);
+            this.CHK_resetapmonconnect.TabIndex = 46;
+            this.CHK_resetapmonconnect.Text = "Reset APM on USB Connect";
+            this.CHK_resetapmonconnect.UseVisualStyleBackColor = true;
+            this.CHK_resetapmonconnect.CheckedChanged += new System.EventHandler(this.CHK_resetapmonconnect_CheckedChanged);
+            // 
+            // CHK_mavdebug
+            // 
+            this.CHK_mavdebug.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+            this.CHK_mavdebug.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_mavdebug.Location = new System.Drawing.Point(15, 378);
+            this.CHK_mavdebug.Name = "CHK_mavdebug";
+            this.CHK_mavdebug.Size = new System.Drawing.Size(144, 17);
+            this.CHK_mavdebug.TabIndex = 47;
+            this.CHK_mavdebug.Text = "Mavlink Message Debug";
+            this.CHK_mavdebug.UseVisualStyleBackColor = true;
+            this.CHK_mavdebug.CheckedChanged += new System.EventHandler(this.CHK_mavdebug_CheckedChanged);
+            // 
+            // label107
+            // 
+            this.label107.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label107.Location = new System.Drawing.Point(439, 246);
+            this.label107.Name = "label107";
+            this.label107.Size = new System.Drawing.Size(22, 13);
+            this.label107.TabIndex = 48;
+            this.label107.Text = "RC";
+            // 
+            // CMB_raterc
+            // 
+            this.CMB_raterc.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_raterc.FormattingEnabled = true;
+            this.CMB_raterc.Items.AddRange(new object[] {
+            "0",
+            "1",
+            "3",
+            "10"});
+            this.CMB_raterc.Location = new System.Drawing.Point(470, 242);
+            this.CMB_raterc.Name = "CMB_raterc";
+            this.CMB_raterc.Size = new System.Drawing.Size(40, 21);
+            this.CMB_raterc.TabIndex = 49;
+            this.CMB_raterc.SelectedIndexChanged += new System.EventHandler(this.CMB_raterc_SelectedIndexChanged);
+            // 
+            // label104
+            // 
+            this.label104.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label104.Location = new System.Drawing.Point(319, 246);
+            this.label104.Name = "label104";
+            this.label104.Size = new System.Drawing.Size(69, 13);
+            this.label104.TabIndex = 50;
+            this.label104.Text = "Mode/Status";
+            // 
+            // label103
+            // 
+            this.label103.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label103.Location = new System.Drawing.Point(219, 246);
+            this.label103.Name = "label103";
+            this.label103.Size = new System.Drawing.Size(44, 13);
+            this.label103.TabIndex = 51;
+            this.label103.Text = "Position";
+            // 
+            // label102
+            // 
+            this.label102.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label102.Location = new System.Drawing.Point(121, 246);
+            this.label102.Name = "label102";
+            this.label102.Size = new System.Drawing.Size(43, 13);
+            this.label102.TabIndex = 52;
+            this.label102.Text = "Attitude";
+            // 
+            // label101
+            // 
+            this.label101.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label101.Location = new System.Drawing.Point(12, 246);
+            this.label101.Name = "label101";
+            this.label101.Size = new System.Drawing.Size(84, 13);
+            this.label101.TabIndex = 53;
+            this.label101.Text = "Telemetry Rates";
+            // 
+            // CMB_ratestatus
+            // 
+            this.CMB_ratestatus.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_ratestatus.FormattingEnabled = true;
+            this.CMB_ratestatus.Items.AddRange(new object[] {
+            "0",
+            "1",
+            "3",
+            "10"});
+            this.CMB_ratestatus.Location = new System.Drawing.Point(393, 242);
+            this.CMB_ratestatus.Name = "CMB_ratestatus";
+            this.CMB_ratestatus.Size = new System.Drawing.Size(40, 21);
+            this.CMB_ratestatus.TabIndex = 54;
+            this.CMB_ratestatus.SelectedIndexChanged += new System.EventHandler(this.CMB_ratestatus_SelectedIndexChanged);
+            // 
+            // CMB_rateposition
+            // 
+            this.CMB_rateposition.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_rateposition.FormattingEnabled = true;
+            this.CMB_rateposition.Items.AddRange(new object[] {
+            "0",
+            "1",
+            "3",
+            "10"});
+            this.CMB_rateposition.Location = new System.Drawing.Point(273, 242);
+            this.CMB_rateposition.Name = "CMB_rateposition";
+            this.CMB_rateposition.Size = new System.Drawing.Size(40, 21);
+            this.CMB_rateposition.TabIndex = 55;
+            this.CMB_rateposition.SelectedIndexChanged += new System.EventHandler(this.CMB_rateposition_SelectedIndexChanged);
+            // 
+            // CMB_rateattitude
+            // 
+            this.CMB_rateattitude.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_rateattitude.FormattingEnabled = true;
+            this.CMB_rateattitude.Items.AddRange(new object[] {
+            "0",
+            "1",
+            "3",
+            "10"});
+            this.CMB_rateattitude.Location = new System.Drawing.Point(173, 242);
+            this.CMB_rateattitude.Name = "CMB_rateattitude";
+            this.CMB_rateattitude.Size = new System.Drawing.Size(40, 21);
+            this.CMB_rateattitude.TabIndex = 56;
+            this.CMB_rateattitude.SelectedIndexChanged += new System.EventHandler(this.CMB_rateattitude_SelectedIndexChanged);
+            // 
+            // label99
+            // 
+            this.label99.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label99.Location = new System.Drawing.Point(268, 211);
+            this.label99.Name = "label99";
+            this.label99.Size = new System.Drawing.Size(402, 13);
+            this.label99.TabIndex = 57;
+            this.label99.Text = "NOTE: The Configuration Tab will NOT display these units, as those are raw values" +
+    ".\r\n";
+            // 
+            // label98
+            // 
+            this.label98.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label98.Location = new System.Drawing.Point(15, 219);
+            this.label98.Name = "label98";
+            this.label98.Size = new System.Drawing.Size(65, 13);
+            this.label98.TabIndex = 58;
+            this.label98.Text = "Speed Units";
+            // 
+            // label97
+            // 
+            this.label97.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label97.Location = new System.Drawing.Point(15, 191);
+            this.label97.Name = "label97";
+            this.label97.Size = new System.Drawing.Size(52, 13);
+            this.label97.TabIndex = 59;
+            this.label97.Text = "Dist Units";
+            // 
+            // CMB_speedunits
+            // 
+            this.CMB_speedunits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_speedunits.FormattingEnabled = true;
+            this.CMB_speedunits.Location = new System.Drawing.Point(124, 216);
+            this.CMB_speedunits.Name = "CMB_speedunits";
+            this.CMB_speedunits.Size = new System.Drawing.Size(138, 21);
+            this.CMB_speedunits.TabIndex = 60;
+            this.CMB_speedunits.SelectedIndexChanged += new System.EventHandler(this.CMB_speedunits_SelectedIndexChanged);
+            // 
+            // CMB_distunits
+            // 
+            this.CMB_distunits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_distunits.FormattingEnabled = true;
+            this.CMB_distunits.Location = new System.Drawing.Point(124, 189);
+            this.CMB_distunits.Name = "CMB_distunits";
+            this.CMB_distunits.Size = new System.Drawing.Size(138, 21);
+            this.CMB_distunits.TabIndex = 61;
+            this.CMB_distunits.SelectedIndexChanged += new System.EventHandler(this.CMB_distunits_SelectedIndexChanged);
+            // 
+            // label96
+            // 
+            this.label96.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label96.Location = new System.Drawing.Point(15, 164);
+            this.label96.Name = "label96";
+            this.label96.Size = new System.Drawing.Size(45, 13);
+            this.label96.TabIndex = 62;
+            this.label96.Text = "Joystick";
+            // 
+            // label95
+            // 
+            this.label95.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label95.Location = new System.Drawing.Point(15, 113);
+            this.label95.Name = "label95";
+            this.label95.Size = new System.Drawing.Size(44, 13);
+            this.label95.TabIndex = 63;
+            this.label95.Text = "Speech";
+            // 
+            // CHK_speechbattery
+            // 
+            this.CHK_speechbattery.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_speechbattery.Location = new System.Drawing.Point(456, 109);
+            this.CHK_speechbattery.Name = "CHK_speechbattery";
+            this.CHK_speechbattery.Size = new System.Drawing.Size(102, 17);
+            this.CHK_speechbattery.TabIndex = 64;
+            this.CHK_speechbattery.Text = "Battery Warning";
+            this.CHK_speechbattery.UseVisualStyleBackColor = true;
+            this.CHK_speechbattery.CheckedChanged += new System.EventHandler(this.CHK_speechbattery_CheckedChanged);
+            // 
+            // CHK_speechcustom
+            // 
+            this.CHK_speechcustom.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_speechcustom.Location = new System.Drawing.Point(363, 109);
+            this.CHK_speechcustom.Name = "CHK_speechcustom";
+            this.CHK_speechcustom.Size = new System.Drawing.Size(87, 17);
+            this.CHK_speechcustom.TabIndex = 65;
+            this.CHK_speechcustom.Text = "Time Interval";
+            this.CHK_speechcustom.UseVisualStyleBackColor = true;
+            this.CHK_speechcustom.CheckedChanged += new System.EventHandler(this.CHK_speechcustom_CheckedChanged);
+            // 
+            // CHK_speechmode
+            // 
+            this.CHK_speechmode.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_speechmode.Location = new System.Drawing.Point(307, 109);
+            this.CHK_speechmode.Name = "CHK_speechmode";
+            this.CHK_speechmode.Size = new System.Drawing.Size(56, 17);
+            this.CHK_speechmode.TabIndex = 66;
+            this.CHK_speechmode.Text = "Mode ";
+            this.CHK_speechmode.UseVisualStyleBackColor = true;
+            this.CHK_speechmode.CheckedChanged += new System.EventHandler(this.CHK_speechmode_CheckedChanged);
+            // 
+            // CHK_speechwaypoint
+            // 
+            this.CHK_speechwaypoint.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_speechwaypoint.Location = new System.Drawing.Point(230, 109);
+            this.CHK_speechwaypoint.Name = "CHK_speechwaypoint";
+            this.CHK_speechwaypoint.Size = new System.Drawing.Size(71, 17);
+            this.CHK_speechwaypoint.TabIndex = 67;
+            this.CHK_speechwaypoint.Text = "Waypoint";
+            this.CHK_speechwaypoint.UseVisualStyleBackColor = true;
+            this.CHK_speechwaypoint.CheckedChanged += new System.EventHandler(this.CHK_speechwaypoint_CheckedChanged);
+            // 
+            // label94
+            // 
+            this.label94.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label94.Location = new System.Drawing.Point(15, 85);
+            this.label94.Name = "label94";
+            this.label94.Size = new System.Drawing.Size(57, 13);
+            this.label94.TabIndex = 68;
+            this.label94.Text = "OSD Color";
+            // 
+            // CMB_osdcolor
+            // 
+            this.CMB_osdcolor.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
+            this.CMB_osdcolor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_osdcolor.FormattingEnabled = true;
+            this.CMB_osdcolor.Location = new System.Drawing.Point(124, 82);
+            this.CMB_osdcolor.Name = "CMB_osdcolor";
+            this.CMB_osdcolor.Size = new System.Drawing.Size(138, 21);
+            this.CMB_osdcolor.TabIndex = 69;
+            this.CMB_osdcolor.SelectedIndexChanged += new System.EventHandler(this.CMB_osdcolor_SelectedIndexChanged);
+            // 
+            // CMB_language
+            // 
+            this.CMB_language.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_language.FormattingEnabled = true;
+            this.CMB_language.Location = new System.Drawing.Point(124, 133);
+            this.CMB_language.Name = "CMB_language";
+            this.CMB_language.Size = new System.Drawing.Size(138, 21);
+            this.CMB_language.TabIndex = 70;
+            this.CMB_language.SelectedIndexChanged += new System.EventHandler(this.CMB_language_SelectedIndexChanged);
+            // 
+            // label93
+            // 
+            this.label93.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label93.Location = new System.Drawing.Point(15, 137);
+            this.label93.Name = "label93";
+            this.label93.Size = new System.Drawing.Size(69, 13);
+            this.label93.TabIndex = 71;
+            this.label93.Text = "UI Language";
+            // 
+            // CHK_enablespeech
+            // 
+            this.CHK_enablespeech.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_enablespeech.Location = new System.Drawing.Point(124, 109);
+            this.CHK_enablespeech.Name = "CHK_enablespeech";
+            this.CHK_enablespeech.Size = new System.Drawing.Size(99, 17);
+            this.CHK_enablespeech.TabIndex = 72;
+            this.CHK_enablespeech.Text = "Enable Speech";
+            this.CHK_enablespeech.UseVisualStyleBackColor = true;
+            this.CHK_enablespeech.CheckedChanged += new System.EventHandler(this.CHK_enablespeech_CheckedChanged);
+            // 
+            // CHK_hudshow
+            // 
+            this.CHK_hudshow.Checked = true;
+            this.CHK_hudshow.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.CHK_hudshow.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_hudshow.Location = new System.Drawing.Point(537, 17);
+            this.CHK_hudshow.Name = "CHK_hudshow";
+            this.CHK_hudshow.Size = new System.Drawing.Size(125, 17);
+            this.CHK_hudshow.TabIndex = 73;
+            this.CHK_hudshow.Text = "Enable HUD Overlay";
+            this.CHK_hudshow.UseVisualStyleBackColor = true;
+            this.CHK_hudshow.Click += new System.EventHandler(this.CHK_hudshow_CheckedChanged);
+            // 
+            // label92
+            // 
+            this.label92.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label92.Location = new System.Drawing.Point(15, 18);
+            this.label92.Name = "label92";
+            this.label92.Size = new System.Drawing.Size(100, 23);
+            this.label92.TabIndex = 74;
+            this.label92.Text = "Video Device";
+            // 
+            // CMB_videosources
+            // 
+            this.CMB_videosources.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.CMB_videosources.FormattingEnabled = true;
+            this.CMB_videosources.Location = new System.Drawing.Point(124, 15);
+            this.CMB_videosources.Name = "CMB_videosources";
+            this.CMB_videosources.Size = new System.Drawing.Size(245, 21);
+            this.CMB_videosources.TabIndex = 75;
+            this.CMB_videosources.SelectedIndexChanged += new System.EventHandler(this.CMB_videosources_SelectedIndexChanged);
+            // 
+            // BUT_Joystick
+            // 
+            this.BUT_Joystick.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_Joystick.Location = new System.Drawing.Point(124, 160);
+            this.BUT_Joystick.Name = "BUT_Joystick";
+            this.BUT_Joystick.Size = new System.Drawing.Size(99, 23);
+            this.BUT_Joystick.TabIndex = 76;
+            this.BUT_Joystick.Text = "Joystick Setup";
+            this.BUT_Joystick.UseVisualStyleBackColor = true;
+            this.BUT_Joystick.Click += new System.EventHandler(this.BUT_Joystick_Click);
+            // 
+            // BUT_videostop
+            // 
+            this.BUT_videostop.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_videostop.Location = new System.Drawing.Point(456, 13);
+            this.BUT_videostop.Name = "BUT_videostop";
+            this.BUT_videostop.Size = new System.Drawing.Size(75, 23);
+            this.BUT_videostop.TabIndex = 77;
+            this.BUT_videostop.Text = "Stop";
+            this.BUT_videostop.UseVisualStyleBackColor = true;
+            this.BUT_videostop.Click += new System.EventHandler(this.BUT_videostop_Click);
+            // 
+            // BUT_videostart
+            // 
+            this.BUT_videostart.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_videostart.Location = new System.Drawing.Point(375, 13);
+            this.BUT_videostart.Name = "BUT_videostart";
+            this.BUT_videostart.Size = new System.Drawing.Size(75, 23);
+            this.BUT_videostart.TabIndex = 78;
+            this.BUT_videostart.Text = "Start";
+            this.BUT_videostart.UseVisualStyleBackColor = true;
+            this.BUT_videostart.Click += new System.EventHandler(this.BUT_videostart_Click);
+            // 
+            // ConfigPlanner
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.label33);
+            this.Controls.Add(this.CMB_ratesensors);
+            this.Controls.Add(this.label26);
+            this.Controls.Add(this.CMB_videoresolutions);
+            this.Controls.Add(this.label12);
+            this.Controls.Add(this.CHK_GDIPlus);
+            this.Controls.Add(this.label24);
+            this.Controls.Add(this.CHK_loadwponconnect);
+            this.Controls.Add(this.label23);
+            this.Controls.Add(this.NUM_tracklength);
+            this.Controls.Add(this.CHK_speechaltwarning);
+            this.Controls.Add(this.label108);
+            this.Controls.Add(this.CHK_resetapmonconnect);
+            this.Controls.Add(this.CHK_mavdebug);
+            this.Controls.Add(this.label107);
+            this.Controls.Add(this.CMB_raterc);
+            this.Controls.Add(this.label104);
+            this.Controls.Add(this.label103);
+            this.Controls.Add(this.label102);
+            this.Controls.Add(this.label101);
+            this.Controls.Add(this.CMB_ratestatus);
+            this.Controls.Add(this.CMB_rateposition);
+            this.Controls.Add(this.CMB_rateattitude);
+            this.Controls.Add(this.label99);
+            this.Controls.Add(this.label98);
+            this.Controls.Add(this.label97);
+            this.Controls.Add(this.CMB_speedunits);
+            this.Controls.Add(this.CMB_distunits);
+            this.Controls.Add(this.label96);
+            this.Controls.Add(this.label95);
+            this.Controls.Add(this.CHK_speechbattery);
+            this.Controls.Add(this.CHK_speechcustom);
+            this.Controls.Add(this.CHK_speechmode);
+            this.Controls.Add(this.CHK_speechwaypoint);
+            this.Controls.Add(this.label94);
+            this.Controls.Add(this.CMB_osdcolor);
+            this.Controls.Add(this.CMB_language);
+            this.Controls.Add(this.label93);
+            this.Controls.Add(this.CHK_enablespeech);
+            this.Controls.Add(this.CHK_hudshow);
+            this.Controls.Add(this.label92);
+            this.Controls.Add(this.CMB_videosources);
+            this.Controls.Add(this.BUT_Joystick);
+            this.Controls.Add(this.BUT_videostop);
+            this.Controls.Add(this.BUT_videostart);
+            this.Name = "ConfigPlanner";
+            this.Size = new System.Drawing.Size(682, 398);
+            ((System.ComponentModel.ISupportInitialize)(this.NUM_tracklength)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label label33;
+        private System.Windows.Forms.ComboBox CMB_ratesensors;
+        private System.Windows.Forms.Label label26;
+        private System.Windows.Forms.ComboBox CMB_videoresolutions;
+        private System.Windows.Forms.Label label12;
+        private System.Windows.Forms.CheckBox CHK_GDIPlus;
+        private System.Windows.Forms.Label label24;
+        private System.Windows.Forms.CheckBox CHK_loadwponconnect;
+        private System.Windows.Forms.Label label23;
+        private System.Windows.Forms.NumericUpDown NUM_tracklength;
+        private System.Windows.Forms.CheckBox CHK_speechaltwarning;
+        private System.Windows.Forms.Label label108;
+        private System.Windows.Forms.CheckBox CHK_resetapmonconnect;
+        private System.Windows.Forms.CheckBox CHK_mavdebug;
+        private System.Windows.Forms.Label label107;
+        private System.Windows.Forms.ComboBox CMB_raterc;
+        private System.Windows.Forms.Label label104;
+        private System.Windows.Forms.Label label103;
+        private System.Windows.Forms.Label label102;
+        private System.Windows.Forms.Label label101;
+        private System.Windows.Forms.ComboBox CMB_ratestatus;
+        private System.Windows.Forms.ComboBox CMB_rateposition;
+        private System.Windows.Forms.ComboBox CMB_rateattitude;
+        private System.Windows.Forms.Label label99;
+        private System.Windows.Forms.Label label98;
+        private System.Windows.Forms.Label label97;
+        private System.Windows.Forms.ComboBox CMB_speedunits;
+        private System.Windows.Forms.ComboBox CMB_distunits;
+        private System.Windows.Forms.Label label96;
+        private System.Windows.Forms.Label label95;
+        private System.Windows.Forms.CheckBox CHK_speechbattery;
+        private System.Windows.Forms.CheckBox CHK_speechcustom;
+        private System.Windows.Forms.CheckBox CHK_speechmode;
+        private System.Windows.Forms.CheckBox CHK_speechwaypoint;
+        private System.Windows.Forms.Label label94;
+        private System.Windows.Forms.ComboBox CMB_osdcolor;
+        private System.Windows.Forms.ComboBox CMB_language;
+        private System.Windows.Forms.Label label93;
+        private System.Windows.Forms.CheckBox CHK_enablespeech;
+        private System.Windows.Forms.CheckBox CHK_hudshow;
+        private System.Windows.Forms.Label label92;
+        private System.Windows.Forms.ComboBox CMB_videosources;
+        private MyButton BUT_Joystick;
+        private MyButton BUT_videostop;
+        private MyButton BUT_videostart;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.cs
new file mode 100644
index 000000000..5040d85be
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.cs
@@ -0,0 +1,372 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Globalization;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Windows.Forms;
+using DirectShowLib;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigPlanner : UserControl
+    {
+        // AR todo: replicate this functionality
+        private bool startup = false;
+
+        public ConfigPlanner()
+        {
+            InitializeComponent();
+        }
+
+
+        private void BUT_videostart_Click(object sender, EventArgs e)
+        {
+            // stop first
+            BUT_videostop_Click(sender, e);
+
+            var bmp = (GCSViews.Configuration.GCSBitmapInfo)CMB_videoresolutions.SelectedItem;
+
+            try
+            {
+                MainV2.cam = new WebCamService.Capture(CMB_videosources.SelectedIndex, bmp.Media);
+
+                MainV2.cam.showhud = CHK_hudshow.Checked;
+
+                MainV2.cam.Start();
+
+                MainV2.config["video_options"] = CMB_videoresolutions.SelectedIndex;
+
+                BUT_videostart.Enabled = false;
+            }
+            catch (Exception ex) { CustomMessageBox.Show("Camera Fail: " + ex.Message); }
+
+        }
+
+        private void BUT_videostop_Click(object sender, EventArgs e)
+        {
+            BUT_videostart.Enabled = true;
+            if (MainV2.cam != null)
+            {
+                MainV2.cam.Dispose();
+                MainV2.cam = null;
+            }
+        }
+
+        private void CMB_videosources_MouseClick(object sender, MouseEventArgs e)
+        {
+            // the reason why i dont populate this list is because on linux/mac this call will fail.
+            WebCamService.Capture capt = new WebCamService.Capture();
+
+            List<string> devices = WebCamService.Capture.getDevices();
+
+            CMB_videosources.DataSource = devices;
+
+            capt.Dispose();
+        }
+
+        private void CMB_videosources_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            int hr;
+            int count;
+            int size;
+            object o;
+            IBaseFilter capFilter = null;
+            ICaptureGraphBuilder2 capGraph = null;
+            AMMediaType media = null;
+            VideoInfoHeader v;
+            VideoStreamConfigCaps c;
+            List<GCSViews.Configuration.GCSBitmapInfo> modes = new List<GCSViews.Configuration.GCSBitmapInfo>();
+
+            // Get the ICaptureGraphBuilder2
+            capGraph = (ICaptureGraphBuilder2)new CaptureGraphBuilder2();
+            IFilterGraph2 m_FilterGraph = (IFilterGraph2)new FilterGraph();
+
+            DsDevice[] capDevices;
+            capDevices = DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice);
+
+            // Add the video device
+            hr = m_FilterGraph.AddSourceFilterForMoniker(capDevices[CMB_videosources.SelectedIndex].Mon, null, "Video input", out capFilter);
+            try
+            {
+                DsError.ThrowExceptionForHR(hr);
+            }
+            catch (Exception ex)
+            {
+                CustomMessageBox.Show("Can not add video source\n" + ex.ToString());
+                return;
+            }
+
+            // Find the stream config interface
+            hr = capGraph.FindInterface(PinCategory.Capture, MediaType.Video, capFilter, typeof(IAMStreamConfig).GUID, out o);
+            DsError.ThrowExceptionForHR(hr);
+
+            IAMStreamConfig videoStreamConfig = o as IAMStreamConfig;
+            if (videoStreamConfig == null)
+            {
+                throw new Exception("Failed to get IAMStreamConfig");
+            }
+
+            hr = videoStreamConfig.GetNumberOfCapabilities(out count, out size);
+            DsError.ThrowExceptionForHR(hr);
+            IntPtr TaskMemPointer = Marshal.AllocCoTaskMem(size);
+            for (int i = 0; i < count; i++)
+            {
+                IntPtr ptr = IntPtr.Zero;
+
+                hr = videoStreamConfig.GetStreamCaps(i, out media, TaskMemPointer);
+                v = (VideoInfoHeader)Marshal.PtrToStructure(media.formatPtr, typeof(VideoInfoHeader));
+                c = (VideoStreamConfigCaps)Marshal.PtrToStructure(TaskMemPointer, typeof(VideoStreamConfigCaps));
+                modes.Add(new GCSViews.Configuration.GCSBitmapInfo(v.BmiHeader.Width, v.BmiHeader.Height, c.MaxFrameInterval, c.VideoStandard.ToString(), media));
+            }
+            Marshal.FreeCoTaskMem(TaskMemPointer);
+            DsUtils.FreeAMMediaType(media);
+
+            CMB_videoresolutions.DataSource = modes;
+
+            if (MainV2.getConfig("video_options") != "" && CMB_videosources.Text != "")
+            {
+                CMB_videoresolutions.SelectedIndex = int.Parse(MainV2.getConfig("video_options"));
+            }
+        }
+
+        private void CHK_hudshow_CheckedChanged(object sender, EventArgs e)
+        {
+            GCSViews.FlightData.myhud.hudon = CHK_hudshow.Checked;
+        }
+
+        private void CHK_enablespeech_CheckedChanged(object sender, EventArgs e)
+        {
+            MainV2.speechEnable = CHK_enablespeech.Checked;
+            MainV2.config["speechenable"] = CHK_enablespeech.Checked;
+            if (MainV2.speechEngine != null)
+                MainV2.speechEngine.SpeakAsyncCancelAll();
+        }
+
+        private void CMB_language_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            MainV2.instance.changelanguage((CultureInfo)CMB_language.SelectedItem);
+
+#if !DEBUG
+                MessageBox.Show("Please Restart the Planner");
+
+                Application.Exit();
+#endif
+        }
+
+        private void CMB_osdcolor_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            if (CMB_osdcolor.Text != "")
+            {
+                MainV2.config["hudcolor"] = CMB_osdcolor.Text;
+                GCSViews.FlightData.myhud.hudcolor = Color.FromKnownColor((KnownColor)Enum.Parse(typeof(KnownColor), CMB_osdcolor.Text));
+            }
+        }
+
+        private void CHK_speechwaypoint_CheckedChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            MainV2.config["speechwaypointenabled"] = ((CheckBox)sender).Checked.ToString();
+
+            if (((CheckBox)sender).Checked)
+            {
+                string speechstring = "Heading to Waypoint {wpn}";
+                if (MainV2.config["speechwaypoint"] != null)
+                    speechstring = MainV2.config["speechwaypoint"].ToString();
+                Common.InputBox("Notification", "What do you want it to say?", ref speechstring);
+                MainV2.config["speechwaypoint"] = speechstring;
+            }
+        }
+
+        private void CHK_speechmode_CheckedChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            MainV2.config["speechmodeenabled"] = ((CheckBox)sender).Checked.ToString();
+
+            if (((CheckBox)sender).Checked)
+            {
+                string speechstring = "Mode changed to {mode}";
+                if (MainV2.config["speechmode"] != null)
+                    speechstring = MainV2.config["speechmode"].ToString();
+                Common.InputBox("Notification", "What do you want it to say?", ref speechstring);
+                MainV2.config["speechmode"] = speechstring;
+            }
+        }
+
+        private void CHK_speechcustom_CheckedChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            MainV2.config["speechcustomenabled"] = ((CheckBox)sender).Checked.ToString();
+
+            if (((CheckBox)sender).Checked)
+            {
+                string speechstring = "Heading to Waypoint {wpn}, altitude is {alt}, Ground speed is {gsp} ";
+                if (MainV2.config["speechcustom"] != null)
+                    speechstring = MainV2.config["speechcustom"].ToString();
+                Common.InputBox("Notification", "What do you want it to say?", ref speechstring);
+                MainV2.config["speechcustom"] = speechstring;
+            }
+        }
+
+        private void BUT_rerequestparams_Click(object sender, EventArgs e)
+        {
+            if (!MainV2.comPort.BaseStream.IsOpen)
+                return;
+            ((MyButton)sender).Enabled = false;
+            try
+            {
+
+                MainV2.comPort.getParamList();
+
+
+
+
+            }
+            catch { CustomMessageBox.Show("Error: getting param list"); }
+
+
+            ((MyButton)sender).Enabled = true;
+            startup = true;
+
+            // AR todo: fix this up
+            //Configuration_Load(null, null);
+        }
+
+        private void CHK_speechbattery_CheckedChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            MainV2.config["speechbatteryenabled"] = ((CheckBox)sender).Checked.ToString();
+
+            if (((CheckBox)sender).Checked)
+            {
+                string speechstring = "WARNING, Battery at {batv} Volt";
+                if (MainV2.config["speechbattery"] != null)
+                    speechstring = MainV2.config["speechbattery"].ToString();
+                Common.InputBox("Notification", "What do you want it to say?", ref speechstring);
+                MainV2.config["speechbattery"] = speechstring;
+
+                speechstring = "9.6";
+                if (MainV2.config["speechbatteryvolt"] != null)
+                    speechstring = MainV2.config["speechbatteryvolt"].ToString();
+                Common.InputBox("Battery Level", "What Voltage do you want to warn at?", ref speechstring);
+                MainV2.config["speechbatteryvolt"] = speechstring;
+
+            }
+        }
+
+        private void BUT_Joystick_Click(object sender, EventArgs e)
+        {
+            Form joy = new JoystickSetup();
+            ThemeManager.ApplyThemeTo(joy);
+            joy.Show();
+        }
+
+        private void CMB_distunits_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            MainV2.config["distunits"] = CMB_distunits.Text;
+            MainV2.instance.changeunits();
+        }
+
+        private void CMB_speedunits_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            MainV2.config["speedunits"] = CMB_speedunits.Text;
+            MainV2.instance.changeunits();
+        }
+
+        private void CMB_rateattitude_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            MainV2.config[((ComboBox)sender).Name] = ((ComboBox)sender).Text;
+            MainV2.cs.rateattitude = byte.Parse(((ComboBox)sender).Text);
+        }
+
+        private void CMB_rateposition_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            MainV2.config[((ComboBox)sender).Name] = ((ComboBox)sender).Text;
+            MainV2.cs.rateposition = byte.Parse(((ComboBox)sender).Text);
+        }
+
+        private void CMB_ratestatus_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            MainV2.config[((ComboBox)sender).Name] = ((ComboBox)sender).Text;
+            MainV2.cs.ratestatus = byte.Parse(((ComboBox)sender).Text);
+        }
+
+        private void CMB_raterc_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            MainV2.config[((ComboBox)sender).Name] = ((ComboBox)sender).Text;
+            MainV2.cs.raterc = byte.Parse(((ComboBox)sender).Text);
+        }
+
+        private void CMB_ratesensors_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            MainV2.config[((ComboBox)sender).Name] = ((ComboBox)sender).Text;
+            MainV2.cs.ratesensors = byte.Parse(((ComboBox)sender).Text);
+        }
+
+        private void CHK_mavdebug_CheckedChanged(object sender, EventArgs e)
+        {
+            MainV2.comPort.debugmavlink = CHK_mavdebug.Checked;
+        }
+
+        private void CHK_resetapmonconnect_CheckedChanged(object sender, EventArgs e)
+        {
+            MainV2.config[((CheckBox)sender).Name] = ((CheckBox)sender).Checked.ToString();
+        }
+
+        private void CHK_speechaltwarning_CheckedChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            MainV2.config["speechaltenabled"] = ((CheckBox)sender).Checked.ToString();
+
+            if (((CheckBox)sender).Checked)
+            {
+                string speechstring = "WARNING, low altitude {alt}";
+                if (MainV2.config["speechalt"] != null)
+                    speechstring = MainV2.config["speechalt"].ToString();
+                Common.InputBox("Notification", "What do you want it to say?", ref speechstring);
+                MainV2.config["speechalt"] = speechstring;
+
+                speechstring = "2";
+                if (MainV2.config["speechaltheight"] != null)
+                    speechstring = MainV2.config["speechaltheight"].ToString();
+                Common.InputBox("Min Alt", "What altitude do you want to warn at? (relative to home)", ref speechstring);
+                MainV2.config["speechaltheight"] = (double.Parse(speechstring) / MainV2.cs.multiplierdist).ToString(); // save as m
+
+            }
+        }
+
+        private void NUM_tracklength_ValueChanged(object sender, EventArgs e)
+        {
+            MainV2.config["NUM_tracklength"] = NUM_tracklength.Value.ToString();
+
+        }
+
+        private void CHK_loadwponconnect_CheckedChanged(object sender, EventArgs e)
+        {
+            MainV2.config["loadwpsonconnect"] = CHK_loadwponconnect.Checked.ToString();
+        }
+
+        private void CHK_GDIPlus_CheckedChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            CustomMessageBox.Show("You need to restart the planner for this to take effect");
+            MainV2.config["CHK_GDIPlus"] = CHK_GDIPlus.Checked.ToString();
+        }
+
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.resx
new file mode 100644
index 000000000..7080a7d11
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.Designer.cs
new file mode 100644
index 000000000..04dca22d3
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.Designer.cs
@@ -0,0 +1,366 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigRadioInput
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            this.groupBoxElevons = new System.Windows.Forms.GroupBox();
+            this.CHK_mixmode = new System.Windows.Forms.CheckBox();
+            this.CHK_elevonch2rev = new System.Windows.Forms.CheckBox();
+            this.CHK_elevonrev = new System.Windows.Forms.CheckBox();
+            this.CHK_elevonch1rev = new System.Windows.Forms.CheckBox();
+            this.CHK_revch3 = new System.Windows.Forms.CheckBox();
+            this.CHK_revch4 = new System.Windows.Forms.CheckBox();
+            this.CHK_revch2 = new System.Windows.Forms.CheckBox();
+            this.CHK_revch1 = new System.Windows.Forms.CheckBox();
+            this.BUT_Calibrateradio = new ArdupilotMega.MyButton();
+            this.BAR8 = new ArdupilotMega.HorizontalProgressBar2();
+            this.BAR7 = new ArdupilotMega.HorizontalProgressBar2();
+            this.BAR6 = new ArdupilotMega.HorizontalProgressBar2();
+            this.BAR5 = new ArdupilotMega.HorizontalProgressBar2();
+            this.BARpitch = new ArdupilotMega.VerticalProgressBar2();
+            this.BARthrottle = new ArdupilotMega.VerticalProgressBar2();
+            this.BARyaw = new ArdupilotMega.HorizontalProgressBar2();
+            this.BARroll = new ArdupilotMega.HorizontalProgressBar2();
+            this.currentStateBindingSource = new System.Windows.Forms.BindingSource(this.components);
+            this.groupBoxElevons.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // groupBoxElevons
+            // 
+            this.groupBoxElevons.Controls.Add(this.CHK_mixmode);
+            this.groupBoxElevons.Controls.Add(this.CHK_elevonch2rev);
+            this.groupBoxElevons.Controls.Add(this.CHK_elevonrev);
+            this.groupBoxElevons.Controls.Add(this.CHK_elevonch1rev);
+            this.groupBoxElevons.Location = new System.Drawing.Point(12, 356);
+            this.groupBoxElevons.Name = "groupBoxElevons";
+            this.groupBoxElevons.Size = new System.Drawing.Size(409, 42);
+            this.groupBoxElevons.TabIndex = 125;
+            this.groupBoxElevons.TabStop = false;
+            this.groupBoxElevons.Text = "Elevon Config";
+            // 
+            // CHK_mixmode
+            // 
+            this.CHK_mixmode.AutoSize = true;
+            this.CHK_mixmode.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_mixmode.Location = new System.Drawing.Point(13, 19);
+            this.CHK_mixmode.Name = "CHK_mixmode";
+            this.CHK_mixmode.Size = new System.Drawing.Size(64, 17);
+            this.CHK_mixmode.TabIndex = 107;
+            this.CHK_mixmode.Text = "Elevons";
+            this.CHK_mixmode.UseVisualStyleBackColor = true;
+            this.CHK_mixmode.CheckedChanged += new System.EventHandler(this.CHK_mixmode_CheckedChanged);
+            // 
+            // CHK_elevonch2rev
+            // 
+            this.CHK_elevonch2rev.AutoSize = true;
+            this.CHK_elevonch2rev.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_elevonch2rev.Location = new System.Drawing.Point(292, 19);
+            this.CHK_elevonch2rev.Name = "CHK_elevonch2rev";
+            this.CHK_elevonch2rev.Size = new System.Drawing.Size(111, 17);
+            this.CHK_elevonch2rev.TabIndex = 110;
+            this.CHK_elevonch2rev.Text = "Elevons CH2 Rev";
+            this.CHK_elevonch2rev.UseVisualStyleBackColor = true;
+            this.CHK_elevonch2rev.CheckedChanged += new System.EventHandler(this.CHK_elevonch2rev_CheckedChanged);
+            // 
+            // CHK_elevonrev
+            // 
+            this.CHK_elevonrev.AutoSize = true;
+            this.CHK_elevonrev.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_elevonrev.Location = new System.Drawing.Point(82, 19);
+            this.CHK_elevonrev.Name = "CHK_elevonrev";
+            this.CHK_elevonrev.Size = new System.Drawing.Size(87, 17);
+            this.CHK_elevonrev.TabIndex = 108;
+            this.CHK_elevonrev.Text = "Elevons Rev";
+            this.CHK_elevonrev.UseVisualStyleBackColor = true;
+            this.CHK_elevonrev.CheckedChanged += new System.EventHandler(this.CHK_elevonrev_CheckedChanged);
+            // 
+            // CHK_elevonch1rev
+            // 
+            this.CHK_elevonch1rev.AutoSize = true;
+            this.CHK_elevonch1rev.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_elevonch1rev.Location = new System.Drawing.Point(175, 19);
+            this.CHK_elevonch1rev.Name = "CHK_elevonch1rev";
+            this.CHK_elevonch1rev.Size = new System.Drawing.Size(111, 17);
+            this.CHK_elevonch1rev.TabIndex = 109;
+            this.CHK_elevonch1rev.Text = "Elevons CH1 Rev";
+            this.CHK_elevonch1rev.UseVisualStyleBackColor = true;
+            this.CHK_elevonch1rev.CheckedChanged += new System.EventHandler(this.CHK_elevonch1rev_CheckedChanged);
+            // 
+            // CHK_revch3
+            // 
+            this.CHK_revch3.AutoSize = true;
+            this.CHK_revch3.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_revch3.Location = new System.Drawing.Point(278, 161);
+            this.CHK_revch3.Name = "CHK_revch3";
+            this.CHK_revch3.Size = new System.Drawing.Size(66, 17);
+            this.CHK_revch3.TabIndex = 124;
+            this.CHK_revch3.Text = "Reverse";
+            this.CHK_revch3.UseVisualStyleBackColor = true;
+            this.CHK_revch3.CheckedChanged += new System.EventHandler(this.CHK_revch3_CheckedChanged);
+            // 
+            // CHK_revch4
+            // 
+            this.CHK_revch4.AutoSize = true;
+            this.CHK_revch4.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_revch4.Location = new System.Drawing.Point(306, 313);
+            this.CHK_revch4.Name = "CHK_revch4";
+            this.CHK_revch4.Size = new System.Drawing.Size(66, 17);
+            this.CHK_revch4.TabIndex = 123;
+            this.CHK_revch4.Text = "Reverse";
+            this.CHK_revch4.UseVisualStyleBackColor = true;
+            this.CHK_revch4.CheckedChanged += new System.EventHandler(this.CHK_revch4_CheckedChanged);
+            // 
+            // CHK_revch2
+            // 
+            this.CHK_revch2.AutoSize = true;
+            this.CHK_revch2.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_revch2.Location = new System.Drawing.Point(62, 161);
+            this.CHK_revch2.Name = "CHK_revch2";
+            this.CHK_revch2.Size = new System.Drawing.Size(66, 17);
+            this.CHK_revch2.TabIndex = 122;
+            this.CHK_revch2.Text = "Reverse";
+            this.CHK_revch2.UseVisualStyleBackColor = true;
+            this.CHK_revch2.CheckedChanged += new System.EventHandler(this.CHK_revch2_CheckedChanged);
+            // 
+            // CHK_revch1
+            // 
+            this.CHK_revch1.AutoSize = true;
+            this.CHK_revch1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CHK_revch1.Location = new System.Drawing.Point(306, 19);
+            this.CHK_revch1.Name = "CHK_revch1";
+            this.CHK_revch1.Size = new System.Drawing.Size(66, 17);
+            this.CHK_revch1.TabIndex = 121;
+            this.CHK_revch1.Text = "Reverse";
+            this.CHK_revch1.UseVisualStyleBackColor = true;
+            this.CHK_revch1.CheckedChanged += new System.EventHandler(this.CHK_revch1_CheckedChanged);
+            // 
+            // BUT_Calibrateradio
+            // 
+            this.BUT_Calibrateradio.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_Calibrateradio.Location = new System.Drawing.Point(473, 347);
+            this.BUT_Calibrateradio.Name = "BUT_Calibrateradio";
+            this.BUT_Calibrateradio.Size = new System.Drawing.Size(134, 23);
+            this.BUT_Calibrateradio.TabIndex = 120;
+            this.BUT_Calibrateradio.Text = "Calibrate Radio";
+            this.BUT_Calibrateradio.UseVisualStyleBackColor = true;
+            this.BUT_Calibrateradio.Click += new System.EventHandler(this.BUT_Calibrateradio_Click);
+            // 
+            // BAR8
+            // 
+            this.BAR8.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
+            this.BAR8.BorderColor = System.Drawing.SystemColors.ActiveBorder;
+            this.BAR8.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch8in", true));
+            this.BAR8.Label = "Radio 8";
+            this.BAR8.Location = new System.Drawing.Point(437, 247);
+            this.BAR8.Maximum = 2200;
+            this.BAR8.maxline = 0;
+            this.BAR8.Minimum = 800;
+            this.BAR8.minline = 0;
+            this.BAR8.Name = "BAR8";
+            this.BAR8.Size = new System.Drawing.Size(170, 25);
+            this.BAR8.TabIndex = 119;
+            this.BAR8.Value = 1500;
+            this.BAR8.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
+            // 
+            // BAR7
+            // 
+            this.BAR7.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
+            this.BAR7.BorderColor = System.Drawing.SystemColors.ActiveBorder;
+            this.BAR7.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch7in", true));
+            this.BAR7.Label = "Radio 7";
+            this.BAR7.Location = new System.Drawing.Point(437, 192);
+            this.BAR7.Maximum = 2200;
+            this.BAR7.maxline = 0;
+            this.BAR7.Minimum = 800;
+            this.BAR7.minline = 0;
+            this.BAR7.Name = "BAR7";
+            this.BAR7.Size = new System.Drawing.Size(170, 25);
+            this.BAR7.TabIndex = 118;
+            this.BAR7.Value = 1500;
+            this.BAR7.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
+            // 
+            // BAR6
+            // 
+            this.BAR6.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
+            this.BAR6.BorderColor = System.Drawing.SystemColors.ActiveBorder;
+            this.BAR6.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch6in", true));
+            this.BAR6.Label = "Radio 6";
+            this.BAR6.Location = new System.Drawing.Point(437, 137);
+            this.BAR6.Maximum = 2200;
+            this.BAR6.maxline = 0;
+            this.BAR6.Minimum = 800;
+            this.BAR6.minline = 0;
+            this.BAR6.Name = "BAR6";
+            this.BAR6.Size = new System.Drawing.Size(170, 25);
+            this.BAR6.TabIndex = 117;
+            this.BAR6.Value = 1500;
+            this.BAR6.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
+            // 
+            // BAR5
+            // 
+            this.BAR5.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
+            this.BAR5.BorderColor = System.Drawing.SystemColors.ActiveBorder;
+            this.BAR5.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch5in", true));
+            this.BAR5.Label = "Radio 5";
+            this.BAR5.Location = new System.Drawing.Point(437, 82);
+            this.BAR5.Maximum = 2200;
+            this.BAR5.maxline = 0;
+            this.BAR5.Minimum = 800;
+            this.BAR5.minline = 0;
+            this.BAR5.Name = "BAR5";
+            this.BAR5.Size = new System.Drawing.Size(170, 25);
+            this.BAR5.TabIndex = 116;
+            this.BAR5.Value = 1500;
+            this.BAR5.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
+            // 
+            // BARpitch
+            // 
+            this.BARpitch.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
+            this.BARpitch.BorderColor = System.Drawing.SystemColors.ActiveBorder;
+            this.BARpitch.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch2in", true));
+            this.BARpitch.Label = "Pitch";
+            this.BARpitch.Location = new System.Drawing.Point(134, 64);
+            this.BARpitch.Maximum = 2200;
+            this.BARpitch.maxline = 0;
+            this.BARpitch.Minimum = 800;
+            this.BARpitch.minline = 0;
+            this.BARpitch.Name = "BARpitch";
+            this.BARpitch.Size = new System.Drawing.Size(47, 211);
+            this.BARpitch.TabIndex = 115;
+            this.BARpitch.Value = 1500;
+            this.BARpitch.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
+            // 
+            // BARthrottle
+            // 
+            this.BARthrottle.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(67)))), ((int)(((byte)(68)))), ((int)(((byte)(69)))));
+            this.BARthrottle.BorderColor = System.Drawing.SystemColors.ActiveBorder;
+            this.BARthrottle.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch3in", true));
+            this.BARthrottle.Label = "Throttle";
+            this.BARthrottle.Location = new System.Drawing.Point(350, 64);
+            this.BARthrottle.Maximum = 2200;
+            this.BARthrottle.maxline = 0;
+            this.BARthrottle.Minimum = 800;
+            this.BARthrottle.minline = 0;
+            this.BARthrottle.Name = "BARthrottle";
+            this.BARthrottle.Size = new System.Drawing.Size(47, 211);
+            this.BARthrottle.TabIndex = 114;
+            this.BARthrottle.Value = 1000;
+            this.BARthrottle.ValueColor = System.Drawing.Color.Magenta;
+            // 
+            // BARyaw
+            // 
+            this.BARyaw.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
+            this.BARyaw.BorderColor = System.Drawing.SystemColors.ActiveBorder;
+            this.BARyaw.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch4in", true));
+            this.BARyaw.Label = "Yaw";
+            this.BARyaw.Location = new System.Drawing.Point(12, 307);
+            this.BARyaw.Maximum = 2200;
+            this.BARyaw.maxline = 0;
+            this.BARyaw.Minimum = 800;
+            this.BARyaw.minline = 0;
+            this.BARyaw.Name = "BARyaw";
+            this.BARyaw.Size = new System.Drawing.Size(288, 23);
+            this.BARyaw.TabIndex = 113;
+            this.BARyaw.Value = 1500;
+            this.BARyaw.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
+            // 
+            // BARroll
+            // 
+            this.BARroll.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(255)))));
+            this.BARroll.BorderColor = System.Drawing.SystemColors.ActiveBorder;
+            this.BARroll.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.currentStateBindingSource, "ch1in", true));
+            this.BARroll.Label = "Roll";
+            this.BARroll.Location = new System.Drawing.Point(12, 13);
+            this.BARroll.Maximum = 2200;
+            this.BARroll.maxline = 0;
+            this.BARroll.Minimum = 800;
+            this.BARroll.minline = 0;
+            this.BARroll.Name = "BARroll";
+            this.BARroll.Size = new System.Drawing.Size(288, 23);
+            this.BARroll.TabIndex = 112;
+            this.BARroll.Value = 1500;
+            this.BARroll.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
+            // 
+            // currentStateBindingSource
+            // 
+            this.currentStateBindingSource.DataSource = typeof(ArdupilotMega.CurrentState);
+            // 
+            // ConfigRadioInput
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.groupBoxElevons);
+            this.Controls.Add(this.CHK_revch3);
+            this.Controls.Add(this.CHK_revch4);
+            this.Controls.Add(this.CHK_revch2);
+            this.Controls.Add(this.CHK_revch1);
+            this.Controls.Add(this.BUT_Calibrateradio);
+            this.Controls.Add(this.BAR8);
+            this.Controls.Add(this.BAR7);
+            this.Controls.Add(this.BAR6);
+            this.Controls.Add(this.BAR5);
+            this.Controls.Add(this.BARpitch);
+            this.Controls.Add(this.BARthrottle);
+            this.Controls.Add(this.BARyaw);
+            this.Controls.Add(this.BARroll);
+            this.Name = "ConfigRadioInput";
+            this.Size = new System.Drawing.Size(628, 406);
+            this.Load += new System.EventHandler(this.ConfigRadioInput_Load);
+            this.groupBoxElevons.ResumeLayout(false);
+            this.groupBoxElevons.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.currentStateBindingSource)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox groupBoxElevons;
+        private System.Windows.Forms.CheckBox CHK_mixmode;
+        private System.Windows.Forms.CheckBox CHK_elevonch2rev;
+        private System.Windows.Forms.CheckBox CHK_elevonrev;
+        private System.Windows.Forms.CheckBox CHK_elevonch1rev;
+        private System.Windows.Forms.CheckBox CHK_revch3;
+        private System.Windows.Forms.CheckBox CHK_revch4;
+        private System.Windows.Forms.CheckBox CHK_revch2;
+        private System.Windows.Forms.CheckBox CHK_revch1;
+        private MyButton BUT_Calibrateradio;
+        private HorizontalProgressBar2 BAR8;
+        private HorizontalProgressBar2 BAR7;
+        private HorizontalProgressBar2 BAR6;
+        private HorizontalProgressBar2 BAR5;
+        private VerticalProgressBar2 BARpitch;
+        private VerticalProgressBar2 BARthrottle;
+        private HorizontalProgressBar2 BARyaw;
+        private HorizontalProgressBar2 BARroll;
+        private System.Windows.Forms.BindingSource currentStateBindingSource;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.cs
new file mode 100644
index 000000000..1be32e8e8
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.cs
@@ -0,0 +1,357 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigRadioInput : UserControl
+    {
+        bool startup = false;
+        bool run = false;
+
+        float[] rcmin = new float[8];
+        float[] rcmax = new float[8];
+        float[] rctrim = new float[8];
+
+        Timer timer = new Timer();
+
+        public ConfigRadioInput()
+        {
+            InitializeComponent();
+
+            // setup rc calib extents
+            for (int a = 0; a < rcmin.Length; a++)
+            {
+                rcmin[a] = 3000;
+                rcmax[a] = 0;
+                rctrim[a] = 1500;
+            }
+
+            // setup rc update
+            timer.Tick += new EventHandler(timer_Tick);
+
+            timer.Enabled = true;
+            timer.Interval = 100;
+            timer.Start();
+        }
+
+        void timer_Tick(object sender, EventArgs e)
+        {
+            // update all linked controls - 10hz
+            try
+            {
+                MainV2.cs.UpdateCurrentSettings(currentStateBindingSource);
+            }
+            catch { }
+        }
+
+        private void ConfigRadioInput_Load(object sender, EventArgs e)
+        {
+            startup = true;
+
+            if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2)
+            {
+                groupBoxElevons.Visible = false;
+            }
+            else
+            {
+                try
+                {
+                    CHK_mixmode.Checked = MainV2.comPort.param["ELEVON_MIXING"].ToString() == "1";
+                    CHK_elevonrev.Checked = MainV2.comPort.param["ELEVON_REVERSE"].ToString() == "1";
+                    CHK_elevonch1rev.Checked = MainV2.comPort.param["ELEVON_CH1_REV"].ToString() == "1";
+                    CHK_elevonch2rev.Checked = MainV2.comPort.param["ELEVON_CH2_REV"].ToString() == "1";
+                }
+                catch { } // this will fail on arducopter
+            }
+            try
+            {
+                CHK_revch1.Checked = MainV2.comPort.param["RC1_REV"].ToString() == "-1";
+                CHK_revch2.Checked = MainV2.comPort.param["RC2_REV"].ToString() == "-1";
+                CHK_revch3.Checked = MainV2.comPort.param["RC3_REV"].ToString() == "-1";
+                CHK_revch4.Checked = MainV2.comPort.param["RC4_REV"].ToString() == "-1";
+            }
+            catch (Exception ex) { CustomMessageBox.Show("Missing RC rev Param " + ex.ToString()); }
+            startup = false;
+        }
+
+        private void BUT_Calibrateradio_Click(object sender, EventArgs e)
+        {
+            if (run)
+            {
+                BUT_Calibrateradio.Text = "Completed";
+                run = false;
+                return;
+            }
+
+            CustomMessageBox.Show("Ensure your transmitter is on and receiver is powered and connected\nEnsure your motor does not have power/no props!!!");
+
+            byte oldrc = MainV2.cs.raterc;
+            byte oldatt = MainV2.cs.rateattitude;
+            byte oldpos = MainV2.cs.rateposition;
+            byte oldstatus = MainV2.cs.ratestatus;
+
+            MainV2.cs.raterc = 10;
+            MainV2.cs.rateattitude = 0;
+            MainV2.cs.rateposition = 0;
+            MainV2.cs.ratestatus = 0;
+
+            try
+            {
+
+                MainV2.comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RC_CHANNELS, 10);
+
+            }
+            catch { }
+
+            BUT_Calibrateradio.Text = "Click when Done";
+
+            run = true;
+
+
+            while (run)
+            {
+                Application.DoEvents();
+
+                System.Threading.Thread.Sleep(5);
+
+                MainV2.cs.UpdateCurrentSettings(currentStateBindingSource, true, MainV2.comPort);
+
+                // check for non 0 values
+                if (MainV2.cs.ch1in > 800 && MainV2.cs.ch1in < 2200)
+                {
+                    rcmin[0] = Math.Min(rcmin[0], MainV2.cs.ch1in);
+                    rcmax[0] = Math.Max(rcmax[0], MainV2.cs.ch1in);
+
+                    rcmin[1] = Math.Min(rcmin[1], MainV2.cs.ch2in);
+                    rcmax[1] = Math.Max(rcmax[1], MainV2.cs.ch2in);
+
+                    rcmin[2] = Math.Min(rcmin[2], MainV2.cs.ch3in);
+                    rcmax[2] = Math.Max(rcmax[2], MainV2.cs.ch3in);
+
+                    rcmin[3] = Math.Min(rcmin[3], MainV2.cs.ch4in);
+                    rcmax[3] = Math.Max(rcmax[3], MainV2.cs.ch4in);
+
+                    rcmin[4] = Math.Min(rcmin[4], MainV2.cs.ch5in);
+                    rcmax[4] = Math.Max(rcmax[4], MainV2.cs.ch5in);
+
+                    rcmin[5] = Math.Min(rcmin[5], MainV2.cs.ch6in);
+                    rcmax[5] = Math.Max(rcmax[5], MainV2.cs.ch6in);
+
+                    rcmin[6] = Math.Min(rcmin[6], MainV2.cs.ch7in);
+                    rcmax[6] = Math.Max(rcmax[6], MainV2.cs.ch7in);
+
+                    rcmin[7] = Math.Min(rcmin[7], MainV2.cs.ch8in);
+                    rcmax[7] = Math.Max(rcmax[7], MainV2.cs.ch8in);
+
+                    BARroll.minline = (int)rcmin[0];
+                    BARroll.maxline = (int)rcmax[0];
+
+                    BARpitch.minline = (int)rcmin[1];
+                    BARpitch.maxline = (int)rcmax[1];
+
+                    BARthrottle.minline = (int)rcmin[2];
+                    BARthrottle.maxline = (int)rcmax[2];
+
+                    BARyaw.minline = (int)rcmin[3];
+                    BARyaw.maxline = (int)rcmax[3];
+
+                    BAR5.minline = (int)rcmin[4];
+                    BAR5.maxline = (int)rcmax[4];
+
+                    BAR6.minline = (int)rcmin[5];
+                    BAR6.maxline = (int)rcmax[5];
+
+                    BAR7.minline = (int)rcmin[6];
+                    BAR7.maxline = (int)rcmax[6];
+
+                    BAR8.minline = (int)rcmin[7];
+                    BAR8.maxline = (int)rcmax[7];
+
+                }
+            }
+
+            CustomMessageBox.Show("Ensure all your sticks are centered and throttle is down, and click ok to continue");
+
+            MainV2.cs.UpdateCurrentSettings(currentStateBindingSource, true, MainV2.comPort);
+
+            rctrim[0] = MainV2.cs.ch1in;
+            rctrim[1] = MainV2.cs.ch2in;
+            rctrim[2] = MainV2.cs.ch3in;
+            rctrim[3] = MainV2.cs.ch4in;
+            rctrim[4] = MainV2.cs.ch5in;
+            rctrim[5] = MainV2.cs.ch6in;
+            rctrim[6] = MainV2.cs.ch7in;
+            rctrim[7] = MainV2.cs.ch8in;
+
+            string data = "---------------\n";
+
+            for (int a = 0; a < 8; a++)
+            {
+                // we want these to save no matter what
+                BUT_Calibrateradio.Text = "Saving";
+                try
+                {
+                    if (rcmin[a] != rcmax[a])
+                    {
+                        MainV2.comPort.setParam("RC" + (a + 1).ToString("0") + "_MIN", rcmin[a]);
+                        MainV2.comPort.setParam("RC" + (a + 1).ToString("0") + "_MAX", rcmax[a]);
+                    }
+                    if (rctrim[a] < 1195 || rctrim[a] > 1205)
+                        MainV2.comPort.setParam("RC" + (a + 1).ToString("0") + "_TRIM", rctrim[a]);
+                }
+                catch { CustomMessageBox.Show("Failed to set Channel " + (a + 1).ToString()); }
+
+                data = data + "CH" + (a + 1) + " " + rcmin[a] + " | " + rcmax[a] + "\n";
+            }
+
+            MainV2.cs.raterc = oldrc;
+            MainV2.cs.rateattitude = oldatt;
+            MainV2.cs.rateposition = oldpos;
+            MainV2.cs.ratestatus = oldstatus;
+
+            try
+            {
+
+                MainV2.comPort.requestDatastream((byte)ArdupilotMega.MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_RC_CHANNELS, oldrc);
+
+            }
+            catch { }
+
+            CustomMessageBox.Show("Here are the detected radio options\nNOTE Channels not connected are displayed as 1500 +-2\nNormal values are around 1100 | 1900\nChannel:Min | Max \n" + data, "Radio");
+
+            BUT_Calibrateradio.Text = "Completed";
+        }
+
+        private void CHK_mixmode_CheckedChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            try
+            {
+                if (MainV2.comPort.param["ELEVON_MIXING"] == null)
+                {
+                    CustomMessageBox.Show("Not Available on " + MainV2.cs.firmware.ToString());
+                }
+                else
+                {
+                    MainV2.comPort.setParam("ELEVON_MIXING", ((CheckBox)sender).Checked == true ? 1 : 0);
+                }
+            }
+            catch { CustomMessageBox.Show("Set ELEVON_MIXING Failed"); }
+        }
+
+        private void CHK_elevonrev_CheckedChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            try
+            {
+                if (MainV2.comPort.param["ELEVON_REVERSE"] == null)
+                {
+                    CustomMessageBox.Show("Not Available on " + MainV2.cs.firmware.ToString());
+                }
+                else
+                {
+                    MainV2.comPort.setParam("ELEVON_REVERSE", ((CheckBox)sender).Checked == true ? 1 : 0);
+                }
+            }
+            catch { CustomMessageBox.Show("Set ELEVON_REVERSE Failed"); }
+        }
+
+        private void CHK_elevonch1rev_CheckedChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            try
+            {
+                if (MainV2.comPort.param["ELEVON_CH1_REV"] == null)
+                {
+                    CustomMessageBox.Show("Not Available on " + MainV2.cs.firmware.ToString());
+                }
+                else
+                {
+                    MainV2.comPort.setParam("ELEVON_CH1_REV", ((CheckBox)sender).Checked == true ? 1 : 0);
+                }
+            }
+            catch { CustomMessageBox.Show("Set ELEVON_CH1_REV Failed"); }
+        }
+
+        private void CHK_elevonch2rev_CheckedChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            try
+            {
+                if (MainV2.comPort.param["ELEVON_CH2_REV"] == null)
+                {
+                    CustomMessageBox.Show("Not Available on " + MainV2.cs.firmware.ToString());
+                }
+                else
+                {
+                    MainV2.comPort.setParam("ELEVON_CH2_REV", ((CheckBox)sender).Checked == true ? 1 : 0);
+                }
+            }
+            catch { CustomMessageBox.Show("Set ELEVON_CH2_REV Failed"); }
+        }
+
+        private void CHK_revch1_CheckedChanged(object sender, EventArgs e)
+        {
+            reverseChannel("RC1_REV", ((CheckBox)sender).Checked, BARroll);
+        }
+
+        private void CHK_revch2_CheckedChanged(object sender, EventArgs e)
+        {
+            reverseChannel("RC2_REV", ((CheckBox)sender).Checked, BARpitch);
+        }
+
+        private void CHK_revch3_CheckedChanged(object sender, EventArgs e)
+        {
+            reverseChannel("RC3_REV", ((CheckBox)sender).Checked, BARthrottle);
+        }
+
+        private void CHK_revch4_CheckedChanged(object sender, EventArgs e)
+        {
+            reverseChannel("RC4_REV", ((CheckBox)sender).Checked, BARyaw);
+        }
+
+        void reverseChannel(string name, bool normalreverse, Control progressbar)
+        {
+            if (normalreverse == true)
+            {
+                ((HorizontalProgressBar2)progressbar).reverse = true;
+                ((HorizontalProgressBar2)progressbar).BackgroundColor = Color.FromArgb(148, 193, 31);
+                ((HorizontalProgressBar2)progressbar).ValueColor = Color.FromArgb(0x43, 0x44, 0x45);
+            }
+            else
+            {
+                ((HorizontalProgressBar2)progressbar).reverse = false;
+                ((HorizontalProgressBar2)progressbar).BackgroundColor = Color.FromArgb(0x43, 0x44, 0x45);
+                ((HorizontalProgressBar2)progressbar).ValueColor = Color.FromArgb(148, 193, 31);
+            }
+
+            if (startup)
+                return;
+            if (MainV2.comPort.param["SWITCH_ENABLE"] != null && (float)MainV2.comPort.param["SWITCH_ENABLE"] == 1)
+            {
+                try
+                {
+                    MainV2.comPort.setParam("SWITCH_ENABLE", 0);
+                    CustomMessageBox.Show("Disabled Dip Switchs");
+                }
+                catch { CustomMessageBox.Show("Error Disableing Dip Switch"); }
+            }
+            try
+            {
+                int i = normalreverse == false ? 1 : -1;
+                MainV2.comPort.setParam(name, i);
+            }
+            catch { CustomMessageBox.Show("Error Reversing"); }
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.resx
new file mode 100644
index 000000000..6791def87
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRadioInput.resx
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="currentStateBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.Designer.cs
new file mode 100644
index 000000000..7887cd29c
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.Designer.cs
@@ -0,0 +1,205 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigRawParams
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
+            this.BUT_compare = new ArdupilotMega.MyButton();
+            this.BUT_rerequestparams = new ArdupilotMega.MyButton();
+            this.BUT_writePIDS = new ArdupilotMega.MyButton();
+            this.BUT_save = new ArdupilotMega.MyButton();
+            this.BUT_load = new ArdupilotMega.MyButton();
+            this.Params = new System.Windows.Forms.DataGridView();
+            this.Command = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.Value = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.Default = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.mavScale = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.RawValue = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            ((System.ComponentModel.ISupportInitialize)(this.Params)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // BUT_compare
+            // 
+            this.BUT_compare.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_compare.Location = new System.Drawing.Point(341, 119);
+            this.BUT_compare.Name = "BUT_compare";
+            this.BUT_compare.Size = new System.Drawing.Size(103, 19);
+            this.BUT_compare.TabIndex = 72;
+            this.BUT_compare.Text = "Compare Params";
+            this.BUT_compare.UseVisualStyleBackColor = true;
+            this.BUT_compare.Click += new System.EventHandler(this.BUT_compare_Click);
+            // 
+            // BUT_rerequestparams
+            // 
+            this.BUT_rerequestparams.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_rerequestparams.Location = new System.Drawing.Point(341, 94);
+            this.BUT_rerequestparams.Name = "BUT_rerequestparams";
+            this.BUT_rerequestparams.Size = new System.Drawing.Size(103, 19);
+            this.BUT_rerequestparams.TabIndex = 67;
+            this.BUT_rerequestparams.Text = "Refresh Params";
+            this.BUT_rerequestparams.UseVisualStyleBackColor = true;
+            this.BUT_rerequestparams.Click += new System.EventHandler(this.BUT_rerequestparams_Click);
+            // 
+            // BUT_writePIDS
+            // 
+            this.BUT_writePIDS.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_writePIDS.Location = new System.Drawing.Point(341, 69);
+            this.BUT_writePIDS.Name = "BUT_writePIDS";
+            this.BUT_writePIDS.Size = new System.Drawing.Size(103, 19);
+            this.BUT_writePIDS.TabIndex = 69;
+            this.BUT_writePIDS.Text = "Write Params";
+            this.BUT_writePIDS.UseVisualStyleBackColor = true;
+            this.BUT_writePIDS.Click += new System.EventHandler(this.BUT_writePIDS_Click);
+            // 
+            // BUT_save
+            // 
+            this.BUT_save.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_save.Location = new System.Drawing.Point(341, 35);
+            this.BUT_save.Margin = new System.Windows.Forms.Padding(0);
+            this.BUT_save.Name = "BUT_save";
+            this.BUT_save.Size = new System.Drawing.Size(104, 19);
+            this.BUT_save.TabIndex = 70;
+            this.BUT_save.Text = "Save";
+            this.BUT_save.UseVisualStyleBackColor = true;
+            this.BUT_save.Click += new System.EventHandler(this.BUT_save_Click);
+            // 
+            // BUT_load
+            // 
+            this.BUT_load.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_load.Location = new System.Drawing.Point(341, 7);
+            this.BUT_load.Margin = new System.Windows.Forms.Padding(0);
+            this.BUT_load.Name = "BUT_load";
+            this.BUT_load.Size = new System.Drawing.Size(104, 19);
+            this.BUT_load.TabIndex = 71;
+            this.BUT_load.Text = "Load";
+            this.BUT_load.UseVisualStyleBackColor = true;
+            this.BUT_load.Click += new System.EventHandler(this.BUT_load_Click);
+            // 
+            // Params
+            // 
+            this.Params.AllowUserToAddRows = false;
+            this.Params.AllowUserToDeleteRows = false;
+            this.Params.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+            dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle1.BackColor = System.Drawing.Color.Maroon;
+            dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            dataGridViewCellStyle1.ForeColor = System.Drawing.Color.White;
+            dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+            this.Params.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
+            this.Params.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.Params.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+            this.Command,
+            this.Value,
+            this.Default,
+            this.mavScale,
+            this.RawValue});
+            this.Params.Location = new System.Drawing.Point(14, 3);
+            this.Params.Name = "Params";
+            dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.ActiveCaption;
+            dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText;
+            dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+            this.Params.RowHeadersDefaultCellStyle = dataGridViewCellStyle2;
+            this.Params.RowHeadersVisible = false;
+            this.Params.RowHeadersWidth = 150;
+            this.Params.Size = new System.Drawing.Size(321, 302);
+            this.Params.TabIndex = 68;
+            // 
+            // Command
+            // 
+            this.Command.HeaderText = "Command";
+            this.Command.Name = "Command";
+            this.Command.ReadOnly = true;
+            this.Command.Width = 150;
+            // 
+            // Value
+            // 
+            this.Value.HeaderText = "Value";
+            this.Value.Name = "Value";
+            this.Value.Width = 80;
+            // 
+            // Default
+            // 
+            this.Default.HeaderText = "Default";
+            this.Default.Name = "Default";
+            this.Default.Visible = false;
+            // 
+            // mavScale
+            // 
+            this.mavScale.HeaderText = "mavScale";
+            this.mavScale.Name = "mavScale";
+            this.mavScale.Visible = false;
+            // 
+            // RawValue
+            // 
+            this.RawValue.HeaderText = "RawValue";
+            this.RawValue.Name = "RawValue";
+            this.RawValue.Visible = false;
+            // 
+            // ConfigRawParams
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.BUT_compare);
+            this.Controls.Add(this.BUT_rerequestparams);
+            this.Controls.Add(this.BUT_writePIDS);
+            this.Controls.Add(this.BUT_save);
+            this.Controls.Add(this.BUT_load);
+            this.Controls.Add(this.Params);
+            this.Name = "ConfigRawParams";
+            this.Size = new System.Drawing.Size(460, 305);
+            this.Load += new System.EventHandler(this.ConfigRawParams_Load);
+            this.ControlAdded += new System.Windows.Forms.ControlEventHandler(this.ConfigRawParams_ControlAdded);
+            this.ControlRemoved += new System.Windows.Forms.ControlEventHandler(this.ConfigRawParams_ControlRemoved);
+            ((System.ComponentModel.ISupportInitialize)(this.Params)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private MyButton BUT_compare;
+        private MyButton BUT_rerequestparams;
+        private MyButton BUT_writePIDS;
+        private MyButton BUT_save;
+        private MyButton BUT_load;
+        private System.Windows.Forms.DataGridView Params;
+        private System.Windows.Forms.DataGridViewTextBoxColumn Command;
+        private System.Windows.Forms.DataGridViewTextBoxColumn Value;
+        private System.Windows.Forms.DataGridViewTextBoxColumn Default;
+        private System.Windows.Forms.DataGridViewTextBoxColumn mavScale;
+        private System.Windows.Forms.DataGridViewTextBoxColumn RawValue;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs
new file mode 100644
index 000000000..5b2c7d1d8
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs
@@ -0,0 +1,287 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using log4net;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigRawParams : UserControl
+    {
+        private static readonly ILog log =
+          LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
+
+        // Changes made to the params between writing to the copter
+        readonly Hashtable _changes = new Hashtable();
+
+        // ?
+        internal bool startup = true;
+
+
+        public ConfigRawParams()
+        {
+            InitializeComponent();
+        }
+
+        Hashtable loadParamFile(string Filename)
+        {
+            Hashtable param = new Hashtable();
+
+            StreamReader sr = new StreamReader(Filename);
+            while (!sr.EndOfStream)
+            {
+                string line = sr.ReadLine();
+
+                if (line.Contains("NOTE:"))
+                    CustomMessageBox.Show(line, "Saved Note");
+
+                if (line.StartsWith("#"))
+                    continue;
+
+                string[] items = line.Split(new char[] { ' ', ',', '\t' }, StringSplitOptions.RemoveEmptyEntries);
+
+                if (items.Length != 2)
+                    continue;
+
+                string name = items[0];
+                float value = float.Parse(items[1], new System.Globalization.CultureInfo("en-US"));
+
+                MAVLink.modifyParamForDisplay(true, name, ref value);
+
+                if (name == "SYSID_SW_MREV")
+                    continue;
+                if (name == "WP_TOTAL")
+                    continue;
+                if (name == "CMD_TOTAL")
+                    continue;
+                if (name == "FENCE_TOTAL")
+                    continue;
+                if (name == "SYS_NUM_RESETS")
+                    continue;
+                if (name == "ARSPD_OFFSET")
+                    continue;
+                if (name == "GND_ABS_PRESS")
+                    continue;
+                if (name == "GND_TEMP")
+                    continue;
+                if (name == "CMD_INDEX")
+                    continue;
+                if (name == "LOG_LASTFILE")
+                    continue;
+
+                param[name] = value;
+            }
+            sr.Close();
+
+            return param;
+        }
+
+        private void BUT_load_Click(object sender, EventArgs e)
+        {
+            var ofd = new OpenFileDialog
+                          {
+                              AddExtension = true,
+                              DefaultExt = ".param",
+                              RestoreDirectory = true,
+                              Filter = "Param List|*.param;*.parm"
+                          };
+            var dr = ofd.ShowDialog();
+
+            if (dr == DialogResult.OK)
+            {
+                Hashtable param2 = loadParamFile(ofd.FileName);
+
+                foreach (string name in param2.Keys)
+                {
+                    string value = param2[name].ToString();
+                    // set param table as well
+                    foreach (DataGridViewRow row in Params.Rows)
+                    {
+                        if (name == "SYSID_SW_MREV")
+                            continue;
+                        if (name == "WP_TOTAL")
+                            continue;
+                        if (name == "CMD_TOTAL")
+                            continue;
+                        if (name == "FENCE_TOTAL")
+                            continue;
+                        if (name == "SYS_NUM_RESETS")
+                            continue;
+                        if (name == "ARSPD_OFFSET")
+                            continue;
+                        if (name == "GND_ABS_PRESS")
+                            continue;
+                        if (name == "GND_TEMP")
+                            continue;
+                        if (name == "CMD_INDEX")
+                            continue;
+                        if (name == "LOG_LASTFILE")
+                            continue;
+                        if (row.Cells[0].Value.ToString() == name)
+                        {
+                            if (row.Cells[1].Value.ToString() != value.ToString())
+                                row.Cells[1].Value = value;
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
+        private void BUT_save_Click(object sender, EventArgs e)
+        {
+            var sfd = new SaveFileDialog
+                          {
+                              AddExtension = true,
+                              DefaultExt = ".param",
+                              RestoreDirectory = true,
+                              Filter = "Param List|*.param;*.parm"
+                          };
+
+            var dr = sfd.ShowDialog();
+            if (dr == DialogResult.OK)
+            {
+                StreamWriter sw = new StreamWriter(sfd.OpenFile());
+                string input = DateTime.Now + " Frame : + | Arducopter Kit | Kit motors";
+                if (MainV2.APMFirmware == MainV2.Firmwares.ArduPlane)
+                {
+                    input = DateTime.Now + " Plane: Skywalker";
+                }
+                Common.InputBox("Custom Note", "Enter your Notes/Frame Type etc", ref input);
+                if (input != "")
+                    sw.WriteLine("NOTE: " + input.Replace(',', '|'));
+                foreach (DataGridViewRow row in Params.Rows)
+                {
+                    float value = float.Parse(row.Cells[1].Value.ToString());
+
+                    MAVLink.modifyParamForDisplay(false, row.Cells[0].Value.ToString(), ref value);
+
+                    sw.WriteLine(row.Cells[0].Value.ToString() + "," + value.ToString(new System.Globalization.CultureInfo("en-US")));
+                }
+                sw.Close();
+            }
+        }
+
+        private void BUT_writePIDS_Click(object sender, EventArgs e)
+        {
+            var temp = (Hashtable)_changes.Clone();
+
+            foreach (string value in temp.Keys)
+            {
+                try
+                {
+                    MainV2.comPort.setParam(value, (float)_changes[value]);
+
+                    try
+                    {
+                        // set control as well
+                        var textControls = this.Controls.Find(value, true);
+                        if (textControls.Length > 0)
+                        {
+                            textControls[0].BackColor = Color.FromArgb(0x43, 0x44, 0x45);
+                        }
+                    }
+                    catch
+                    {
+                        
+                    }
+
+                    try
+                    {
+                        // set param table as well
+                        foreach (DataGridViewRow row in Params.Rows)
+                        {
+                            if (row.Cells[0].Value.ToString() == value)
+                            {
+                                row.Cells[1].Style.BackColor = Color.FromArgb(0x43, 0x44, 0x45);
+                                _changes.Remove(value);
+                                break;
+                            }
+                        }
+                    }
+                    catch { }
+
+                }
+                catch
+                {
+                    CustomMessageBox.Show("Set " + value + " Failed");
+                }
+            }
+        }
+
+
+        private void BUT_compare_Click(object sender, EventArgs e)
+        {
+            Hashtable param2 = new Hashtable();
+
+            var ofd = new OpenFileDialog
+                          {
+                              AddExtension = true,
+                              DefaultExt = ".param",
+                              RestoreDirectory = true,
+                              Filter = "Param List|*.param;*.parm"
+                          };
+
+            var dr = ofd.ShowDialog();
+            if (dr == DialogResult.OK)
+            {
+                param2 = loadParamFile(ofd.FileName);
+
+                int fixme;
+                //var paramCompareForm = new ParamCompare((Form)this, MainV2.comPort.param, param2);
+                
+                //ThemeManager.ApplyThemeTo(paramCompareForm);
+                //paramCompareForm.ShowDialog();
+            }
+        }
+
+
+        private void BUT_rerequestparams_Click(object sender, EventArgs e)
+        {
+            if (!MainV2.comPort.BaseStream.IsOpen)
+                return;
+
+            ((Control)sender).Enabled = false;
+            
+            try
+            {
+                MainV2.comPort.getParamList();
+            }
+            catch (Exception ex)
+            {
+                log.Error("Exception getting param list", ex);
+                CustomMessageBox.Show("Error: getting param list");
+            }
+
+
+            ((Control)sender).Enabled = true;
+            
+            startup = true;
+            
+            // Todo: this populates or the combos etc and what not. This shoudl prob be a bsv button
+            
+        }
+
+        private void ConfigRawParams_Load(object sender, EventArgs e)
+        {
+
+        }
+
+        private void ConfigRawParams_ControlRemoved(object sender, ControlEventArgs e)
+        {
+
+        }
+
+        private void ConfigRawParams_ControlAdded(object sender, ControlEventArgs e)
+        {
+
+        }
+
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.resx
new file mode 100644
index 000000000..3267b6926
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.resx
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="Command.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="Value.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="Default.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="RawValue.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs
new file mode 100644
index 000000000..fd4b1fcd6
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs
@@ -0,0 +1,857 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigTradHeli
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.groupBox5 = new System.Windows.Forms.GroupBox();
+            this.H1_ENABLE = new System.Windows.Forms.RadioButton();
+            this.CCPM = new System.Windows.Forms.RadioButton();
+            this.BUT_swash_manual = new ArdupilotMega.MyButton();
+            this.label41 = new System.Windows.Forms.Label();
+            this.groupBox3 = new System.Windows.Forms.GroupBox();
+            this.label46 = new System.Windows.Forms.Label();
+            this.label45 = new System.Windows.Forms.Label();
+            this.GYR_ENABLE = new System.Windows.Forms.CheckBox();
+            this.GYR_GAIN = new System.Windows.Forms.TextBox();
+            this.BUT_HS4save = new ArdupilotMega.MyButton();
+            this.label21 = new System.Windows.Forms.Label();
+            this.COL_MIN = new System.Windows.Forms.TextBox();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.COL_MID = new System.Windows.Forms.TextBox();
+            this.COL_MAX = new System.Windows.Forms.TextBox();
+            this.BUT_0collective = new ArdupilotMega.MyButton();
+            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.label24 = new System.Windows.Forms.Label();
+            this.HS4_MIN = new System.Windows.Forms.TextBox();
+            this.HS4_MAX = new System.Windows.Forms.TextBox();
+            this.label40 = new System.Windows.Forms.Label();
+            this.HS3_TRIM = new System.Windows.Forms.NumericUpDown();
+            this.HS2_TRIM = new System.Windows.Forms.NumericUpDown();
+            this.HS1_TRIM = new System.Windows.Forms.NumericUpDown();
+            this.label39 = new System.Windows.Forms.Label();
+            this.label38 = new System.Windows.Forms.Label();
+            this.label37 = new System.Windows.Forms.Label();
+            this.label36 = new System.Windows.Forms.Label();
+            this.label26 = new System.Windows.Forms.Label();
+            this.PIT_MAX = new System.Windows.Forms.TextBox();
+            this.label25 = new System.Windows.Forms.Label();
+            this.ROL_MAX = new System.Windows.Forms.TextBox();
+            this.label23 = new System.Windows.Forms.Label();
+            this.label22 = new System.Windows.Forms.Label();
+            this.label20 = new System.Windows.Forms.Label();
+            this.label19 = new System.Windows.Forms.Label();
+            this.label18 = new System.Windows.Forms.Label();
+            this.SV3_POS = new System.Windows.Forms.TextBox();
+            this.SV2_POS = new System.Windows.Forms.TextBox();
+            this.SV1_POS = new System.Windows.Forms.TextBox();
+            this.HS3_REV = new System.Windows.Forms.CheckBox();
+            this.HS2_REV = new System.Windows.Forms.CheckBox();
+            this.HS1_REV = new System.Windows.Forms.CheckBox();
+            this.label17 = new System.Windows.Forms.Label();
+            this.HS4 = new ArdupilotMega.HorizontalProgressBar2();
+            this.HS3 = new ArdupilotMega.VerticalProgressBar2();
+            this.Gservoloc = new AGaugeApp.AGauge();
+            this.groupBox5.SuspendLayout();
+            this.groupBox3.SuspendLayout();
+            this.groupBox1.SuspendLayout();
+            this.groupBox2.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.HS3_TRIM)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HS2_TRIM)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HS1_TRIM)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // groupBox5
+            // 
+            this.groupBox5.Controls.Add(this.H1_ENABLE);
+            this.groupBox5.Controls.Add(this.CCPM);
+            this.groupBox5.Location = new System.Drawing.Point(257, 11);
+            this.groupBox5.Name = "groupBox5";
+            this.groupBox5.Size = new System.Drawing.Size(120, 43);
+            this.groupBox5.TabIndex = 169;
+            this.groupBox5.TabStop = false;
+            this.groupBox5.Text = "Swash Type";
+            // 
+            // H1_ENABLE
+            // 
+            this.H1_ENABLE.AutoSize = true;
+            this.H1_ENABLE.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.H1_ENABLE.Location = new System.Drawing.Point(67, 19);
+            this.H1_ENABLE.Name = "H1_ENABLE";
+            this.H1_ENABLE.Size = new System.Drawing.Size(39, 17);
+            this.H1_ENABLE.TabIndex = 137;
+            this.H1_ENABLE.TabStop = true;
+            this.H1_ENABLE.Text = "H1";
+            this.H1_ENABLE.UseVisualStyleBackColor = true;
+            // 
+            // CCPM
+            // 
+            this.CCPM.AutoSize = true;
+            this.CCPM.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.CCPM.Location = new System.Drawing.Point(6, 19);
+            this.CCPM.Name = "CCPM";
+            this.CCPM.Size = new System.Drawing.Size(55, 17);
+            this.CCPM.TabIndex = 136;
+            this.CCPM.TabStop = true;
+            this.CCPM.Text = "CCPM";
+            this.CCPM.UseVisualStyleBackColor = true;
+            // 
+            // BUT_swash_manual
+            // 
+            this.BUT_swash_manual.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_swash_manual.Location = new System.Drawing.Point(302, 83);
+            this.BUT_swash_manual.Name = "BUT_swash_manual";
+            this.BUT_swash_manual.Size = new System.Drawing.Size(69, 23);
+            this.BUT_swash_manual.TabIndex = 138;
+            this.BUT_swash_manual.Text = "Manual";
+            this.BUT_swash_manual.UseVisualStyleBackColor = true;
+            // 
+            // label41
+            // 
+            this.label41.AutoSize = true;
+            this.label41.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label41.Location = new System.Drawing.Point(19, 157);
+            this.label41.Name = "label41";
+            this.label41.Size = new System.Drawing.Size(40, 13);
+            this.label41.TabIndex = 122;
+            this.label41.Text = "Bottom";
+            // 
+            // groupBox3
+            // 
+            this.groupBox3.Controls.Add(this.label46);
+            this.groupBox3.Controls.Add(this.label45);
+            this.groupBox3.Controls.Add(this.GYR_ENABLE);
+            this.groupBox3.Controls.Add(this.GYR_GAIN);
+            this.groupBox3.Location = new System.Drawing.Point(437, 314);
+            this.groupBox3.Name = "groupBox3";
+            this.groupBox3.Size = new System.Drawing.Size(101, 63);
+            this.groupBox3.TabIndex = 168;
+            this.groupBox3.TabStop = false;
+            this.groupBox3.Text = "Gyro";
+            // 
+            // label46
+            // 
+            this.label46.AutoSize = true;
+            this.label46.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label46.Location = new System.Drawing.Point(6, 38);
+            this.label46.Name = "label46";
+            this.label46.Size = new System.Drawing.Size(29, 13);
+            this.label46.TabIndex = 137;
+            this.label46.Text = "Gain";
+            // 
+            // label45
+            // 
+            this.label45.AutoSize = true;
+            this.label45.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label45.Location = new System.Drawing.Point(6, 19);
+            this.label45.Name = "label45";
+            this.label45.Size = new System.Drawing.Size(40, 13);
+            this.label45.TabIndex = 136;
+            this.label45.Text = "Enable";
+            // 
+            // GYR_ENABLE
+            // 
+            this.GYR_ENABLE.AutoSize = true;
+            this.GYR_ENABLE.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.GYR_ENABLE.Location = new System.Drawing.Point(57, 19);
+            this.GYR_ENABLE.Name = "GYR_ENABLE";
+            this.GYR_ENABLE.Size = new System.Drawing.Size(15, 14);
+            this.GYR_ENABLE.TabIndex = 118;
+            this.GYR_ENABLE.UseVisualStyleBackColor = true;
+            // 
+            // GYR_GAIN
+            // 
+            this.GYR_GAIN.Location = new System.Drawing.Point(41, 35);
+            this.GYR_GAIN.Name = "GYR_GAIN";
+            this.GYR_GAIN.Size = new System.Drawing.Size(47, 20);
+            this.GYR_GAIN.TabIndex = 119;
+            this.GYR_GAIN.Text = "1000";
+            // 
+            // BUT_HS4save
+            // 
+            this.BUT_HS4save.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_HS4save.Location = new System.Drawing.Point(483, 174);
+            this.BUT_HS4save.Name = "BUT_HS4save";
+            this.BUT_HS4save.Size = new System.Drawing.Size(69, 23);
+            this.BUT_HS4save.TabIndex = 167;
+            this.BUT_HS4save.Text = "Manual";
+            this.BUT_HS4save.UseVisualStyleBackColor = true;
+            // 
+            // label21
+            // 
+            this.label21.AutoSize = true;
+            this.label21.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label21.Location = new System.Drawing.Point(24, 28);
+            this.label21.Name = "label21";
+            this.label21.Size = new System.Drawing.Size(26, 13);
+            this.label21.TabIndex = 120;
+            this.label21.Text = "Top";
+            // 
+            // COL_MIN
+            // 
+            this.COL_MIN.Enabled = false;
+            this.COL_MIN.Location = new System.Drawing.Point(18, 173);
+            this.COL_MIN.Name = "COL_MIN";
+            this.COL_MIN.Size = new System.Drawing.Size(43, 20);
+            this.COL_MIN.TabIndex = 119;
+            this.COL_MIN.Text = "1500";
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.label41);
+            this.groupBox1.Controls.Add(this.label21);
+            this.groupBox1.Controls.Add(this.COL_MIN);
+            this.groupBox1.Controls.Add(this.COL_MID);
+            this.groupBox1.Controls.Add(this.COL_MAX);
+            this.groupBox1.Controls.Add(this.BUT_0collective);
+            this.groupBox1.Location = new System.Drawing.Point(297, 95);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(80, 209);
+            this.groupBox1.TabIndex = 165;
+            this.groupBox1.TabStop = false;
+            // 
+            // COL_MID
+            // 
+            this.COL_MID.Enabled = false;
+            this.COL_MID.Location = new System.Drawing.Point(17, 117);
+            this.COL_MID.Name = "COL_MID";
+            this.COL_MID.Size = new System.Drawing.Size(44, 20);
+            this.COL_MID.TabIndex = 117;
+            this.COL_MID.Text = "1500";
+            // 
+            // COL_MAX
+            // 
+            this.COL_MAX.Enabled = false;
+            this.COL_MAX.Location = new System.Drawing.Point(18, 45);
+            this.COL_MAX.Name = "COL_MAX";
+            this.COL_MAX.Size = new System.Drawing.Size(43, 20);
+            this.COL_MAX.TabIndex = 115;
+            this.COL_MAX.Text = "1500";
+            // 
+            // BUT_0collective
+            // 
+            this.BUT_0collective.Enabled = false;
+            this.BUT_0collective.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.BUT_0collective.Location = new System.Drawing.Point(11, 89);
+            this.BUT_0collective.Name = "BUT_0collective";
+            this.BUT_0collective.Size = new System.Drawing.Size(58, 23);
+            this.BUT_0collective.TabIndex = 110;
+            this.BUT_0collective.Text = "Zero";
+            this.BUT_0collective.UseVisualStyleBackColor = true;
+            // 
+            // groupBox2
+            // 
+            this.groupBox2.Controls.Add(this.label24);
+            this.groupBox2.Controls.Add(this.HS4_MIN);
+            this.groupBox2.Controls.Add(this.HS4_MAX);
+            this.groupBox2.Controls.Add(this.label40);
+            this.groupBox2.Location = new System.Drawing.Point(437, 186);
+            this.groupBox2.Name = "groupBox2";
+            this.groupBox2.Size = new System.Drawing.Size(169, 78);
+            this.groupBox2.TabIndex = 166;
+            this.groupBox2.TabStop = false;
+            // 
+            // label24
+            // 
+            this.label24.AutoSize = true;
+            this.label24.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label24.Location = new System.Drawing.Point(112, 23);
+            this.label24.Name = "label24";
+            this.label24.Size = new System.Drawing.Size(27, 13);
+            this.label24.TabIndex = 135;
+            this.label24.Text = "Max";
+            // 
+            // HS4_MIN
+            // 
+            this.HS4_MIN.Enabled = false;
+            this.HS4_MIN.Location = new System.Drawing.Point(21, 40);
+            this.HS4_MIN.Name = "HS4_MIN";
+            this.HS4_MIN.Size = new System.Drawing.Size(43, 20);
+            this.HS4_MIN.TabIndex = 132;
+            this.HS4_MIN.Text = "1500";
+            // 
+            // HS4_MAX
+            // 
+            this.HS4_MAX.Enabled = false;
+            this.HS4_MAX.Location = new System.Drawing.Point(106, 40);
+            this.HS4_MAX.Name = "HS4_MAX";
+            this.HS4_MAX.Size = new System.Drawing.Size(43, 20);
+            this.HS4_MAX.TabIndex = 133;
+            this.HS4_MAX.Text = "1500";
+            // 
+            // label40
+            // 
+            this.label40.AutoSize = true;
+            this.label40.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label40.Location = new System.Drawing.Point(27, 23);
+            this.label40.Name = "label40";
+            this.label40.Size = new System.Drawing.Size(24, 13);
+            this.label40.TabIndex = 134;
+            this.label40.Text = "Min";
+            // 
+            // HS3_TRIM
+            // 
+            this.HS3_TRIM.Location = new System.Drawing.Point(126, 314);
+            this.HS3_TRIM.Maximum = new decimal(new int[] {
+            2000,
+            0,
+            0,
+            0});
+            this.HS3_TRIM.Minimum = new decimal(new int[] {
+            1000,
+            0,
+            0,
+            0});
+            this.HS3_TRIM.Name = "HS3_TRIM";
+            this.HS3_TRIM.Size = new System.Drawing.Size(44, 20);
+            this.HS3_TRIM.TabIndex = 164;
+            this.HS3_TRIM.Value = new decimal(new int[] {
+            1500,
+            0,
+            0,
+            0});
+            // 
+            // HS2_TRIM
+            // 
+            this.HS2_TRIM.Location = new System.Drawing.Point(126, 288);
+            this.HS2_TRIM.Maximum = new decimal(new int[] {
+            2000,
+            0,
+            0,
+            0});
+            this.HS2_TRIM.Minimum = new decimal(new int[] {
+            1000,
+            0,
+            0,
+            0});
+            this.HS2_TRIM.Name = "HS2_TRIM";
+            this.HS2_TRIM.Size = new System.Drawing.Size(44, 20);
+            this.HS2_TRIM.TabIndex = 163;
+            this.HS2_TRIM.Value = new decimal(new int[] {
+            1500,
+            0,
+            0,
+            0});
+            // 
+            // HS1_TRIM
+            // 
+            this.HS1_TRIM.Location = new System.Drawing.Point(126, 262);
+            this.HS1_TRIM.Maximum = new decimal(new int[] {
+            2000,
+            0,
+            0,
+            0});
+            this.HS1_TRIM.Minimum = new decimal(new int[] {
+            1000,
+            0,
+            0,
+            0});
+            this.HS1_TRIM.Name = "HS1_TRIM";
+            this.HS1_TRIM.Size = new System.Drawing.Size(44, 20);
+            this.HS1_TRIM.TabIndex = 162;
+            this.HS1_TRIM.Value = new decimal(new int[] {
+            1500,
+            0,
+            0,
+            0});
+            // 
+            // label39
+            // 
+            this.label39.AutoSize = true;
+            this.label39.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label39.Location = new System.Drawing.Point(131, 249);
+            this.label39.Name = "label39";
+            this.label39.Size = new System.Drawing.Size(27, 13);
+            this.label39.TabIndex = 161;
+            this.label39.Text = "Trim";
+            // 
+            // label38
+            // 
+            this.label38.AutoSize = true;
+            this.label38.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label38.Location = new System.Drawing.Point(102, 249);
+            this.label38.Name = "label38";
+            this.label38.Size = new System.Drawing.Size(27, 13);
+            this.label38.TabIndex = 160;
+            this.label38.Text = "Rev";
+            // 
+            // label37
+            // 
+            this.label37.AutoSize = true;
+            this.label37.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label37.Location = new System.Drawing.Point(54, 249);
+            this.label37.Name = "label37";
+            this.label37.Size = new System.Drawing.Size(44, 13);
+            this.label37.TabIndex = 159;
+            this.label37.Text = "Position";
+            // 
+            // label36
+            // 
+            this.label36.AutoSize = true;
+            this.label36.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label36.Location = new System.Drawing.Point(17, 249);
+            this.label36.Name = "label36";
+            this.label36.Size = new System.Drawing.Size(35, 13);
+            this.label36.TabIndex = 158;
+            this.label36.Text = "Servo";
+            // 
+            // label26
+            // 
+            this.label26.AutoSize = true;
+            this.label26.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label26.Location = new System.Drawing.Point(260, 365);
+            this.label26.Name = "label26";
+            this.label26.Size = new System.Drawing.Size(54, 13);
+            this.label26.TabIndex = 157;
+            this.label26.Text = "Pitch Max";
+            // 
+            // PIT_MAX
+            // 
+            this.PIT_MAX.Location = new System.Drawing.Point(314, 362);
+            this.PIT_MAX.Name = "PIT_MAX";
+            this.PIT_MAX.Size = new System.Drawing.Size(47, 20);
+            this.PIT_MAX.TabIndex = 156;
+            this.PIT_MAX.Text = "4500";
+            // 
+            // label25
+            // 
+            this.label25.AutoSize = true;
+            this.label25.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label25.Location = new System.Drawing.Point(260, 341);
+            this.label25.Name = "label25";
+            this.label25.Size = new System.Drawing.Size(48, 13);
+            this.label25.TabIndex = 155;
+            this.label25.Text = "Roll Max";
+            // 
+            // ROL_MAX
+            // 
+            this.ROL_MAX.Location = new System.Drawing.Point(314, 336);
+            this.ROL_MAX.Name = "ROL_MAX";
+            this.ROL_MAX.Size = new System.Drawing.Size(47, 20);
+            this.ROL_MAX.TabIndex = 154;
+            this.ROL_MAX.Text = "4500";
+            // 
+            // label23
+            // 
+            this.label23.AutoSize = true;
+            this.label23.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label23.Location = new System.Drawing.Point(480, 66);
+            this.label23.Name = "label23";
+            this.label23.Size = new System.Drawing.Size(75, 13);
+            this.label23.TabIndex = 153;
+            this.label23.Text = "Rudder Travel";
+            // 
+            // label22
+            // 
+            this.label22.AutoSize = true;
+            this.label22.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label22.Location = new System.Drawing.Point(236, 66);
+            this.label22.Name = "label22";
+            this.label22.Size = new System.Drawing.Size(72, 13);
+            this.label22.TabIndex = 150;
+            this.label22.Text = "Swash Travel";
+            // 
+            // label20
+            // 
+            this.label20.AutoSize = true;
+            this.label20.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label20.Location = new System.Drawing.Point(27, 317);
+            this.label20.Name = "label20";
+            this.label20.Size = new System.Drawing.Size(13, 13);
+            this.label20.TabIndex = 149;
+            this.label20.Text = "3";
+            // 
+            // label19
+            // 
+            this.label19.AutoSize = true;
+            this.label19.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label19.Location = new System.Drawing.Point(27, 291);
+            this.label19.Name = "label19";
+            this.label19.Size = new System.Drawing.Size(13, 13);
+            this.label19.TabIndex = 148;
+            this.label19.Text = "2";
+            // 
+            // label18
+            // 
+            this.label18.AutoSize = true;
+            this.label18.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label18.Location = new System.Drawing.Point(27, 265);
+            this.label18.Name = "label18";
+            this.label18.Size = new System.Drawing.Size(13, 13);
+            this.label18.TabIndex = 147;
+            this.label18.Text = "1";
+            // 
+            // SV3_POS
+            // 
+            this.SV3_POS.Location = new System.Drawing.Point(57, 314);
+            this.SV3_POS.Name = "SV3_POS";
+            this.SV3_POS.Size = new System.Drawing.Size(39, 20);
+            this.SV3_POS.TabIndex = 146;
+            this.SV3_POS.Text = "180";
+            // 
+            // SV2_POS
+            // 
+            this.SV2_POS.Location = new System.Drawing.Point(57, 288);
+            this.SV2_POS.Name = "SV2_POS";
+            this.SV2_POS.Size = new System.Drawing.Size(39, 20);
+            this.SV2_POS.TabIndex = 145;
+            this.SV2_POS.Text = "60";
+            // 
+            // SV1_POS
+            // 
+            this.SV1_POS.Location = new System.Drawing.Point(57, 262);
+            this.SV1_POS.Name = "SV1_POS";
+            this.SV1_POS.Size = new System.Drawing.Size(39, 20);
+            this.SV1_POS.TabIndex = 144;
+            this.SV1_POS.Text = "-60";
+            // 
+            // HS3_REV
+            // 
+            this.HS3_REV.AutoSize = true;
+            this.HS3_REV.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.HS3_REV.Location = new System.Drawing.Point(105, 317);
+            this.HS3_REV.Name = "HS3_REV";
+            this.HS3_REV.Size = new System.Drawing.Size(15, 14);
+            this.HS3_REV.TabIndex = 143;
+            this.HS3_REV.UseVisualStyleBackColor = true;
+            // 
+            // HS2_REV
+            // 
+            this.HS2_REV.AutoSize = true;
+            this.HS2_REV.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.HS2_REV.Location = new System.Drawing.Point(105, 291);
+            this.HS2_REV.Name = "HS2_REV";
+            this.HS2_REV.Size = new System.Drawing.Size(15, 14);
+            this.HS2_REV.TabIndex = 142;
+            this.HS2_REV.UseVisualStyleBackColor = true;
+            // 
+            // HS1_REV
+            // 
+            this.HS1_REV.AutoSize = true;
+            this.HS1_REV.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.HS1_REV.Location = new System.Drawing.Point(105, 268);
+            this.HS1_REV.Name = "HS1_REV";
+            this.HS1_REV.Size = new System.Drawing.Size(15, 14);
+            this.HS1_REV.TabIndex = 141;
+            this.HS1_REV.UseVisualStyleBackColor = true;
+            // 
+            // label17
+            // 
+            this.label17.AutoSize = true;
+            this.label17.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+            this.label17.Location = new System.Drawing.Point(42, 66);
+            this.label17.Name = "label17";
+            this.label17.Size = new System.Drawing.Size(109, 13);
+            this.label17.TabIndex = 140;
+            this.label17.Text = "Swash-Servo position";
+            // 
+            // HS4
+            // 
+            this.HS4.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(67)))), ((int)(((byte)(68)))), ((int)(((byte)(69)))));
+            this.HS4.BorderColor = System.Drawing.SystemColors.ActiveBorder;
+            this.HS4.Label = "Rudder";
+            this.HS4.Location = new System.Drawing.Point(396, 93);
+            this.HS4.Maximum = 2200;
+            this.HS4.maxline = 0;
+            this.HS4.Minimum = 800;
+            this.HS4.minline = 0;
+            this.HS4.Name = "HS4";
+            this.HS4.Size = new System.Drawing.Size(242, 42);
+            this.HS4.TabIndex = 152;
+            this.HS4.Value = 1500;
+            this.HS4.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(148)))), ((int)(((byte)(193)))), ((int)(((byte)(31)))));
+            // 
+            // HS3
+            // 
+            this.HS3.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(67)))), ((int)(((byte)(68)))), ((int)(((byte)(69)))));
+            this.HS3.BorderColor = System.Drawing.SystemColors.ActiveBorder;
+            this.HS3.Label = "Collective";
+            this.HS3.Location = new System.Drawing.Point(239, 95);
+            this.HS3.Maximum = 2200;
+            this.HS3.maxline = 0;
+            this.HS3.Minimum = 800;
+            this.HS3.minline = 0;
+            this.HS3.Name = "HS3";
+            this.HS3.Size = new System.Drawing.Size(42, 213);
+            this.HS3.TabIndex = 151;
+            this.HS3.Value = 1500;
+            this.HS3.ValueColor = System.Drawing.Color.FromArgb(((int)(((byte)(148)))), ((int)(((byte)(193)))), ((int)(((byte)(31)))));
+            // 
+            // Gservoloc
+            // 
+            this.Gservoloc.BackColor = System.Drawing.Color.Transparent;
+            this.Gservoloc.BackgroundImage = global::ArdupilotMega.Properties.Resources.Gaugebg;
+            this.Gservoloc.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.Gservoloc.BaseArcColor = System.Drawing.Color.Transparent;
+            this.Gservoloc.BaseArcRadius = 60;
+            this.Gservoloc.BaseArcStart = 90;
+            this.Gservoloc.BaseArcSweep = 360;
+            this.Gservoloc.BaseArcWidth = 2;
+            this.Gservoloc.basesize = new System.Drawing.Size(150, 150);
+            this.Gservoloc.Cap_Idx = ((byte)(0));
+            this.Gservoloc.CapColor = System.Drawing.Color.White;
+            this.Gservoloc.CapColors = new System.Drawing.Color[] {
+        System.Drawing.Color.White,
+        System.Drawing.Color.Black,
+        System.Drawing.Color.Black,
+        System.Drawing.Color.Black,
+        System.Drawing.Color.Black};
+            this.Gservoloc.CapPosition = new System.Drawing.Point(55, 85);
+            this.Gservoloc.CapsPosition = new System.Drawing.Point[] {
+        new System.Drawing.Point(55, 85),
+        new System.Drawing.Point(40, 67),
+        new System.Drawing.Point(10, 10),
+        new System.Drawing.Point(10, 10),
+        new System.Drawing.Point(10, 10)};
+            this.Gservoloc.CapsText = new string[] {
+        "Position",
+        "",
+        "",
+        "",
+        ""};
+            this.Gservoloc.CapText = "Position";
+            this.Gservoloc.Center = new System.Drawing.Point(75, 75);
+            this.Gservoloc.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
+            this.Gservoloc.Location = new System.Drawing.Point(20, 93);
+            this.Gservoloc.Margin = new System.Windows.Forms.Padding(0);
+            this.Gservoloc.MaxValue = 180F;
+            this.Gservoloc.MinValue = -180F;
+            this.Gservoloc.Name = "Gservoloc";
+            this.Gservoloc.Need_Idx = ((byte)(3));
+            this.Gservoloc.NeedleColor1 = AGaugeApp.AGauge.NeedleColorEnum.Gray;
+            this.Gservoloc.NeedleColor2 = System.Drawing.Color.White;
+            this.Gservoloc.NeedleEnabled = false;
+            this.Gservoloc.NeedleRadius = 80;
+            this.Gservoloc.NeedlesColor1 = new AGaugeApp.AGauge.NeedleColorEnum[] {
+        AGaugeApp.AGauge.NeedleColorEnum.Gray,
+        AGaugeApp.AGauge.NeedleColorEnum.Red,
+        AGaugeApp.AGauge.NeedleColorEnum.Green,
+        AGaugeApp.AGauge.NeedleColorEnum.Gray};
+            this.Gservoloc.NeedlesColor2 = new System.Drawing.Color[] {
+        System.Drawing.Color.White,
+        System.Drawing.Color.White,
+        System.Drawing.Color.White,
+        System.Drawing.Color.White};
+            this.Gservoloc.NeedlesEnabled = new bool[] {
+        true,
+        true,
+        true,
+        false};
+            this.Gservoloc.NeedlesRadius = new int[] {
+        60,
+        60,
+        60,
+        80};
+            this.Gservoloc.NeedlesType = new int[] {
+        0,
+        0,
+        0,
+        0};
+            this.Gservoloc.NeedlesWidth = new int[] {
+        2,
+        2,
+        2,
+        2};
+            this.Gservoloc.NeedleType = 0;
+            this.Gservoloc.NeedleWidth = 2;
+            this.Gservoloc.Range_Idx = ((byte)(0));
+            this.Gservoloc.RangeColor = System.Drawing.Color.LightGreen;
+            this.Gservoloc.RangeEnabled = false;
+            this.Gservoloc.RangeEndValue = 360F;
+            this.Gservoloc.RangeInnerRadius = 1;
+            this.Gservoloc.RangeOuterRadius = 60;
+            this.Gservoloc.RangesColor = new System.Drawing.Color[] {
+        System.Drawing.Color.LightGreen,
+        System.Drawing.Color.Red,
+        System.Drawing.Color.Orange,
+        System.Drawing.SystemColors.Control,
+        System.Drawing.SystemColors.Control};
+            this.Gservoloc.RangesEnabled = new bool[] {
+        false,
+        false,
+        false,
+        false,
+        false};
+            this.Gservoloc.RangesEndValue = new float[] {
+        360F,
+        200F,
+        150F,
+        0F,
+        0F};
+            this.Gservoloc.RangesInnerRadius = new int[] {
+        1,
+        1,
+        1,
+        70,
+        70};
+            this.Gservoloc.RangesOuterRadius = new int[] {
+        60,
+        60,
+        60,
+        80,
+        80};
+            this.Gservoloc.RangesStartValue = new float[] {
+        0F,
+        150F,
+        75F,
+        0F,
+        0F};
+            this.Gservoloc.RangeStartValue = 0F;
+            this.Gservoloc.ScaleLinesInterColor = System.Drawing.Color.White;
+            this.Gservoloc.ScaleLinesInterInnerRadius = 52;
+            this.Gservoloc.ScaleLinesInterOuterRadius = 60;
+            this.Gservoloc.ScaleLinesInterWidth = 1;
+            this.Gservoloc.ScaleLinesMajorColor = System.Drawing.Color.White;
+            this.Gservoloc.ScaleLinesMajorInnerRadius = 50;
+            this.Gservoloc.ScaleLinesMajorOuterRadius = 60;
+            this.Gservoloc.ScaleLinesMajorStepValue = 30F;
+            this.Gservoloc.ScaleLinesMajorWidth = 2;
+            this.Gservoloc.ScaleLinesMinorColor = System.Drawing.Color.White;
+            this.Gservoloc.ScaleLinesMinorInnerRadius = 55;
+            this.Gservoloc.ScaleLinesMinorNumOf = 2;
+            this.Gservoloc.ScaleLinesMinorOuterRadius = 60;
+            this.Gservoloc.ScaleLinesMinorWidth = 1;
+            this.Gservoloc.ScaleNumbersColor = System.Drawing.Color.White;
+            this.Gservoloc.ScaleNumbersFormat = null;
+            this.Gservoloc.ScaleNumbersRadius = 44;
+            this.Gservoloc.ScaleNumbersRotation = 45;
+            this.Gservoloc.ScaleNumbersStartScaleLine = 2;
+            this.Gservoloc.ScaleNumbersStepScaleLines = 1;
+            this.Gservoloc.Size = new System.Drawing.Size(150, 150);
+            this.Gservoloc.TabIndex = 139;
+            this.Gservoloc.Value = 0F;
+            this.Gservoloc.Value0 = -60F;
+            this.Gservoloc.Value1 = 60F;
+            this.Gservoloc.Value2 = 180F;
+            this.Gservoloc.Value3 = 0F;
+            // 
+            // ConfigTradHeli
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.groupBox5);
+            this.Controls.Add(this.BUT_swash_manual);
+            this.Controls.Add(this.groupBox3);
+            this.Controls.Add(this.BUT_HS4save);
+            this.Controls.Add(this.groupBox1);
+            this.Controls.Add(this.groupBox2);
+            this.Controls.Add(this.HS3_TRIM);
+            this.Controls.Add(this.HS2_TRIM);
+            this.Controls.Add(this.HS1_TRIM);
+            this.Controls.Add(this.label39);
+            this.Controls.Add(this.label38);
+            this.Controls.Add(this.label37);
+            this.Controls.Add(this.label36);
+            this.Controls.Add(this.label26);
+            this.Controls.Add(this.PIT_MAX);
+            this.Controls.Add(this.label25);
+            this.Controls.Add(this.ROL_MAX);
+            this.Controls.Add(this.label23);
+            this.Controls.Add(this.label22);
+            this.Controls.Add(this.label20);
+            this.Controls.Add(this.label19);
+            this.Controls.Add(this.label18);
+            this.Controls.Add(this.SV3_POS);
+            this.Controls.Add(this.SV2_POS);
+            this.Controls.Add(this.SV1_POS);
+            this.Controls.Add(this.HS3_REV);
+            this.Controls.Add(this.HS2_REV);
+            this.Controls.Add(this.HS1_REV);
+            this.Controls.Add(this.label17);
+            this.Controls.Add(this.HS4);
+            this.Controls.Add(this.HS3);
+            this.Controls.Add(this.Gservoloc);
+            this.Name = "ConfigTradHeli";
+            this.Size = new System.Drawing.Size(654, 397);
+            this.groupBox5.ResumeLayout(false);
+            this.groupBox5.PerformLayout();
+            this.groupBox3.ResumeLayout(false);
+            this.groupBox3.PerformLayout();
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.groupBox2.ResumeLayout(false);
+            this.groupBox2.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.HS3_TRIM)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HS2_TRIM)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.HS1_TRIM)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox groupBox5;
+        private System.Windows.Forms.RadioButton H1_ENABLE;
+        private System.Windows.Forms.RadioButton CCPM;
+        private MyButton BUT_swash_manual;
+        private System.Windows.Forms.Label label41;
+        private System.Windows.Forms.GroupBox groupBox3;
+        private System.Windows.Forms.Label label46;
+        private System.Windows.Forms.Label label45;
+        private System.Windows.Forms.CheckBox GYR_ENABLE;
+        private System.Windows.Forms.TextBox GYR_GAIN;
+        private MyButton BUT_HS4save;
+        private System.Windows.Forms.Label label21;
+        private System.Windows.Forms.TextBox COL_MIN;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.TextBox COL_MID;
+        private System.Windows.Forms.TextBox COL_MAX;
+        private MyButton BUT_0collective;
+        private System.Windows.Forms.GroupBox groupBox2;
+        private System.Windows.Forms.Label label24;
+        private System.Windows.Forms.TextBox HS4_MIN;
+        private System.Windows.Forms.TextBox HS4_MAX;
+        private System.Windows.Forms.Label label40;
+        private System.Windows.Forms.NumericUpDown HS3_TRIM;
+        private System.Windows.Forms.NumericUpDown HS2_TRIM;
+        private System.Windows.Forms.NumericUpDown HS1_TRIM;
+        private System.Windows.Forms.Label label39;
+        private System.Windows.Forms.Label label38;
+        private System.Windows.Forms.Label label37;
+        private System.Windows.Forms.Label label36;
+        private System.Windows.Forms.Label label26;
+        private System.Windows.Forms.TextBox PIT_MAX;
+        private System.Windows.Forms.Label label25;
+        private System.Windows.Forms.TextBox ROL_MAX;
+        private System.Windows.Forms.Label label23;
+        private System.Windows.Forms.Label label22;
+        private System.Windows.Forms.Label label20;
+        private System.Windows.Forms.Label label19;
+        private System.Windows.Forms.Label label18;
+        private System.Windows.Forms.TextBox SV3_POS;
+        private System.Windows.Forms.TextBox SV2_POS;
+        private System.Windows.Forms.TextBox SV1_POS;
+        private System.Windows.Forms.CheckBox HS3_REV;
+        private System.Windows.Forms.CheckBox HS2_REV;
+        private System.Windows.Forms.CheckBox HS1_REV;
+        private System.Windows.Forms.Label label17;
+        private HorizontalProgressBar2 HS4;
+        private VerticalProgressBar2 HS3;
+        private AGaugeApp.AGauge Gservoloc;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs
new file mode 100644
index 000000000..7c90f1b31
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigTradHeli : UserControl
+    {
+        public ConfigTradHeli()
+        {
+            InitializeComponent();
+        }
+
+
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx
new file mode 100644
index 000000000..7080a7d11
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.Designer.cs
new file mode 100644
index 000000000..714e60eda
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.Designer.cs
@@ -0,0 +1,59 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class Configuration
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Configuration));
+            this.backstageView = new ArdupilotMega.Controls.BackstageView.BackstageView();
+            this.SuspendLayout();
+            // 
+            // backstageView
+            // 
+            this.backstageView.AutoSize = true;
+            this.backstageView.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.backstageView.Location = new System.Drawing.Point(0, 0);
+            this.backstageView.Name = "backstageView";
+            this.backstageView.Size = new System.Drawing.Size(634, 336);
+            this.backstageView.TabIndex = 0;
+            // 
+            // Configuration
+            // 
+            this.ClientSize = new System.Drawing.Size(634, 336);
+            this.Controls.Add(this.backstageView);
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.Name = "Configuration";
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private Controls.BackstageView.BackstageView backstageView;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs
new file mode 100644
index 000000000..33869ddb0
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using ArdupilotMega.Controls.BackstageView;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class Configuration : Form
+    {
+        public Configuration()
+        {
+            InitializeComponent();
+
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigRadioInput(), "Radio Calibration"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigFlightModes(), "Flight Modes"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigHardwareOptions(), "Hardware Options"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigBatteryMonitoring(), "Battery Monitor"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigAccelerometerCalibration(), "Level Calibration"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigArducopter(), "Arducopter Setup"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigArduplane(), "Arduplane Setup"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigArduplane(), "Heli Setup"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigRawParams(), "Raw params (Advanced)"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigPlanner(), "Planner"));
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.resx
new file mode 100644
index 000000000..222a74add
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.resx
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABILAAASCwAAAAAAAAAA
+        AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOxkjAtnoOAKpJ4vyiK
+        c+8nh3D/J4Zv/yeHcP8oi3PvKpJ4vy6fg4AzsZIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADjGo2AyspPfLZ+D/yiQ
+        d/8hlXj/G6F9/xeqg/8XqYL/GKqD/xuhfv8ilnn/KZB3/y2fhP8yspPfN8ajYAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvRrDA1vpzfL6uN/yel
+        hP8XvJD/DMyY/wfQl/8FzJP/A8qS/wPJkf8EypL/BsyU/wnRmP8PzZn/Gb2R/yemhP8tqoz/Mb2a3zbQ
+        qkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAA4y6ZgMbWV/yin
+        iP8WwZP/Btqf/wDPlf8AyI7/A8aP/yfNnv9T2LP/UNax/03XsP8506b/G8ya/wHKkf8F0Zf/CNuf/xLB
+        kv8fpYT/J7KQ/y7IomAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAANcajny+w
+        kf8hqoj/CNSd/wDRlf8Axor/Hcyd/3Lhwf+p7Nj/o+vV/57m0/+X5dD/k+TN/4/jzf+K5Mz/fuHH/0PW
+        rf8HzJT/ANCT/wDRlv8OpX//HayI/yrFn58AAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAADDC
+        nmAtro7/H62J/wPWmv8Ay47/AMaO/3XhxP+e6tT/mObP/5Pjy/+Q4sr/jODJ/4ffx/+C3MT/f9vC/3nb
+        wf9y2r7/adq7/2DauP8ZzZv/Fdae/8T/9/9WxKj/HKuI/y7IomAAAAAAAAAAAAAAAAD///8AAAAAAAAA
+        AAAiuZMwKKyM/x6ohf8C1Zr/AMmL/wHGjv+49OL///////////9+3ML/f9zD/4Dcwv9+28L/e9rA/3bZ
+        vv9w1rr/Z9S4/17Rs/9Qz63/Qcyn/3LewP////////////n///8MpH7/JbKP/zXQqUAAAAAAAAAAAP//
+        /wAAAAAAAAAAABymhN8dnn//BNGa/wDKjP8AxY3/sfHf/////////////////2nXt/9w1rv/c9e8/3TX
+        vP9x17z/a9W5/2TTtf9Y0K//SMyp/zXFoP9i07X/////////////////f/LR/wDQlf8epYT/Mb2a3wAA
+        AAAAAAAA////AAAAAAADlnJgFZR1/wq4iv8AzpH/AMCD/4rmzf//////////////////////WdGv/2PU
+        tf9p1rf/atS4/2nUtv9i0rT/Vc+u/0fKpv8zxZz/Ws+w//////////////////////8GyJL/ANCS/xLB
+        kv8tq4z/OMajYAAAAAD///8AAAAAAACHZt8NkW//ANKV/wDChP9i27r//////////////////////9Dx
+        6P9MzKn/Vc+v/17Rsv9g0rP/XNCx/1XNrv9Fyaf/McSd/1fPr///////////////////////QM2m/ynK
+        oP8JzJX/C9yh/ymmhf80spPfAAAAAP///wAAcUwwAHtc/wCrfP8AyIv/AMKK////////////////////
+        /////////////5Dgyv9Gyqb/TMyq/07Nq/9MzKn/Qcmj/y/Fnf9Wzq3//////////////////////57k
+        0v8av5T/Lceg/yzOo/8M05v/Hr6T/zCghf80spIw////AABoRYAAclT/AL2H/wDBhf9R1rL/////////
+        ////////4vfw//////////////////H8+P9KzKn/Ocah/zTFnv8qwpj/Us2t////////////////////
+        ////////DLqM/yDBlv8wxp//OM6m/xPPm/8Xz53/LZF5/y+fg4////8AAGNAvwB7Wf8Aw4j/ALyC/4bj
+        yP+g5tL/g93E/2HSsv9Pzqz/Us6s//////////////////////9Yzq//Gr2S/0jLp///////////////
+        /////////////yrDm/8SvI//JMGY/zDHn/81zKT/Is2e/xTUnf8nl3v/LJJ5v////wAAXz3vAIlg/wDA
+        hf8AuoD/quzZ/5Hjyv9628D/ada2/1jRsP9Jy6f/a9a4//////////////////////+Y4s7/////////
+        //////////////////+c4tD/AbaH/xW8kf8jwZj/LcWd/y/Jn/8kzJ3/E9Ca/yGjgf8ri3Tv////AABd
+        PP8Ak2b/AL6D/w/Ekv+m6tf/j+HJ/3vawP9p1rf/W9Gx/0rNqf85yJ//Nsaf////////////////////
+        /////////////////////////////wCwe/8AtoT/ELqP/xu+k/8jwZj/KMeb/yHKm/8QzZf/HqyG/ymI
+        cf////8AAF07/wCSZP8AvYL/GMWU/6Dn1P+K38f/ddi+/27Wuf+E3MX/leHN/6fm1f+l5tX/neLQ////
+        ////////////////////////////////////////j9/J/27Vuv9Tzq7/JsKY/xa/kv8aw5T/FcaW/wvL
+        lf8aqoT/J4dw/////wAAXTv/AJFk/wC9gP8GwY3/mObQ/5rkz/+26dv/y/Hl/8Dt3/+06tz/pebV/5bg
+        zP+g5NL//////////////v///f7+//7+/v//////7fn2////////////tOnb/6Ll0v+v6Nj/jeDI/zXK
+        o/8IxJD/BMqS/xaqgv8lh2//////AABeO+8AgVf/AL1//wDBif/R9uv/1PPq/8Tv5P+36t3/rujY/6Lk
+        0v+U4cv/jt7J//j8+///////+/38//f8+//2+/r/+Pz7//3+/v/m9/P/9Pv6//D6+P9/28L/jd7J/5jj
+        z/+h5dL/qOvX/4Hmyf8f1J//E596/yOJcO////8AAGA8vwB3U/8p06P/hufM/8Ty5f/D7+T/s+vb/6bm
+        1P+c4c//j9/K/4vcyP/t+fb///7///j8/P/0+/r/8vr5//P7+f/1+/r/+/39///////i9fL/ZNO1/3HW
+        vP992sH/htzG/4vhyv+S5dD/mO7W/6X74v80noT/Io90v////wAAZkCAAHla/33ny/945cb/nunV/7Xr
+        3v+l5tT/luDN/4ndxv992cL/1vLq//v9/P/1+/n/8vv4//L69//z+/j/9Pv5/7Xo2//x+vn/////////
+        //+y59n/aNS3/3LWvP932r//fNzD/4Ljyf+J7ND/l/bd/yORdf8knH6A////AABuRzAAdlT/Xc6x/23o
+        xv9s4MH/qurZ/5jiz/+I3cb/edjA/8ju5f/3/Pv/8vv4//H6+P/y+/j/6/f0/7np3v/7/fz//v7+/6fk
+        1f+56tz///////////9h0bT/aNW4/23Wu/9v3L//dOLG/37w0f9m1rn/Hpt8/ymujTD///8AAAAAAACD
+        X98po4X/Z+7K/1vgvP+A4sf/jOHK/3rZwv+r59f/9Pv6/+/69//v+vf/8vr4/9fy6/9n0rf/VM6t/6Di
+        0v/N7+f/adO4/1PMrf9t1Lr/i9zI/1/Rs/9h0rX/ZNe4/2bbvf9s5sb/ePfV/z2ylf8lrozfAAAAAP//
+        /wAAAAAAAJNsYAWQbf9U1rP/Vee//0rYsf993sb/pebV//P7+v/s+Pb/6/f1/+749v+s5tj/Vc2u/1jP
+        r/9ZzrD/btW5/1bOr/9Wza//Vs6v/1fOr/9Z0LD/WdCy/1vTtP9d1rX/Xt+8/2btyP9k4L//IaaF/y7D
+        nmAAAAAA////AAAAAAAAAAAAD6J9zyCjgv9S68L/P9+0/2Pevv/5////7/v6/+v59//j9/L/gtvF/1PN
+        r/9Wz7D/Wc+x/1nQsf9Zz7H/WM6w/1fPsP9UzrD/VM+w/1TPrv9U0a//U9Oy/1Tatv9Z5sD/Y/LL/zSx
+        lP8qupbPAAAAAAAAAAD///8AAAAAAAAAAAAYto4wGaeE/y23lP8+5rn/6/////j////w//3/ve/i/2bV
+        uP9Tzq7/Vc+v/1jPsP9Z0LL/WM+w/1fOsf9Wz7D/Us2w/1HOrf9Qzq3/T9Cu/0zSr/9M2LP/TeC5/1bt
+        xP9HxaX/KLKQ/zTPqDAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAkvpdgG6iF/y++m//e/////P///3rl
+        yf9G0K3/VdKy/1bPsf9Wz7H/Vs6w/1bPsP9Sza//Ucyu/0/Nrf9NzKz/S82s/0fOrP9G0a7/QdWv/0Le
+        tP9I6L7/Q8Ok/yitjP8yyKJgAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAmwJlgG6iF/yK3
+        kP8k3q7/H9el/x7Pn/8tzKT/Q9Cs/1HQsP9Q0K7/TM6u/0nMrf9Hzaz/RMyp/0LNqf8+zqn/ONGo/zTV
+        qf833rD/O+S4/zvCof8orIv/MMSfYAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAkvpdgG6iE/xukgv8gy53/HNql/xzRn/8czJz/HcmZ/yXJnP8qyp7/Lcqg/yzLn/8nypz/JMqc/yTO
+        n/8l1KT/KN2r/y3Tpv8nq4n/JaqJ/yzAm2AAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAato8wFKN/zxCScv8RnHn/DbqM/wjIlP8GyZT/BsaS/wbFkf8GxZH/B8WR/wfH
+        k/8IypX/DMmV/xG3jP8WoX3/Fph2/xqkgs8ft5EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJVvYACGZM8Aelr/AHlZ/wCFX/8AiWL/AJlr/wCb
+        bP8AlGf/AI5k/wB/W/8AeFj/AHtb/wCHZd8ClXBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwSzAAaESAAGI/vwBf
+        Pd8AXTz/AF08/wBdPP8AXz3fAGJAvwBoRIAAcUswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A/+AD//+AAP/+AAA//AAAH/gAAA/wAAAH4AAAA+AAAAPAAAABwAAAAYAA
+        AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAwAAAAcAAAAHgAAAD4AAAA/AA
+        AAf4AAAP/AAAH/4AAD//gAD//+AD//////8=
+</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.Designer.cs
new file mode 100644
index 000000000..b75d5ddcf
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.Designer.cs
@@ -0,0 +1,59 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class Setup
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Setup));
+            this.backstageView = new ArdupilotMega.Controls.BackstageView.BackstageView();
+            this.SuspendLayout();
+            // 
+            // backstageView
+            // 
+            this.backstageView.AutoSize = true;
+            this.backstageView.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.backstageView.Location = new System.Drawing.Point(0, 0);
+            this.backstageView.Name = "backstageView";
+            this.backstageView.Size = new System.Drawing.Size(831, 455);
+            this.backstageView.TabIndex = 0;
+            // 
+            // Setup
+            // 
+            this.ClientSize = new System.Drawing.Size(831, 455);
+            this.Controls.Add(this.backstageView);
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.Name = "Setup";
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private Controls.BackstageView.BackstageView backstageView;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.cs
new file mode 100644
index 000000000..c87e0f21b
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using ArdupilotMega.Controls.BackstageView;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class Setup : Form
+    {
+        public Setup()
+        {
+            InitializeComponent();
+
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigRadioInput(), "Radio Calibration"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigFlightModes(), "Flight Modes"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigHardwareOptions(), "Hardware Options"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigBatteryMonitoring(), "Battery Monitor"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigAccelerometerCalibration(), "Level Calibration"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigTradHeli(), "Heli Setup"));
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.resx
new file mode 100644
index 000000000..222a74add
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.resx
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABILAAASCwAAAAAAAAAA
+        AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOxkjAtnoOAKpJ4vyiK
+        c+8nh3D/J4Zv/yeHcP8oi3PvKpJ4vy6fg4AzsZIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADjGo2AyspPfLZ+D/yiQ
+        d/8hlXj/G6F9/xeqg/8XqYL/GKqD/xuhfv8ilnn/KZB3/y2fhP8yspPfN8ajYAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvRrDA1vpzfL6uN/yel
+        hP8XvJD/DMyY/wfQl/8FzJP/A8qS/wPJkf8EypL/BsyU/wnRmP8PzZn/Gb2R/yemhP8tqoz/Mb2a3zbQ
+        qkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAA4y6ZgMbWV/yin
+        iP8WwZP/Btqf/wDPlf8AyI7/A8aP/yfNnv9T2LP/UNax/03XsP8506b/G8ya/wHKkf8F0Zf/CNuf/xLB
+        kv8fpYT/J7KQ/y7IomAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAANcajny+w
+        kf8hqoj/CNSd/wDRlf8Axor/Hcyd/3Lhwf+p7Nj/o+vV/57m0/+X5dD/k+TN/4/jzf+K5Mz/fuHH/0PW
+        rf8HzJT/ANCT/wDRlv8OpX//HayI/yrFn58AAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAADDC
+        nmAtro7/H62J/wPWmv8Ay47/AMaO/3XhxP+e6tT/mObP/5Pjy/+Q4sr/jODJ/4ffx/+C3MT/f9vC/3nb
+        wf9y2r7/adq7/2DauP8ZzZv/Fdae/8T/9/9WxKj/HKuI/y7IomAAAAAAAAAAAAAAAAD///8AAAAAAAAA
+        AAAiuZMwKKyM/x6ohf8C1Zr/AMmL/wHGjv+49OL///////////9+3ML/f9zD/4Dcwv9+28L/e9rA/3bZ
+        vv9w1rr/Z9S4/17Rs/9Qz63/Qcyn/3LewP////////////n///8MpH7/JbKP/zXQqUAAAAAAAAAAAP//
+        /wAAAAAAAAAAABymhN8dnn//BNGa/wDKjP8AxY3/sfHf/////////////////2nXt/9w1rv/c9e8/3TX
+        vP9x17z/a9W5/2TTtf9Y0K//SMyp/zXFoP9i07X/////////////////f/LR/wDQlf8epYT/Mb2a3wAA
+        AAAAAAAA////AAAAAAADlnJgFZR1/wq4iv8AzpH/AMCD/4rmzf//////////////////////WdGv/2PU
+        tf9p1rf/atS4/2nUtv9i0rT/Vc+u/0fKpv8zxZz/Ws+w//////////////////////8GyJL/ANCS/xLB
+        kv8tq4z/OMajYAAAAAD///8AAAAAAACHZt8NkW//ANKV/wDChP9i27r//////////////////////9Dx
+        6P9MzKn/Vc+v/17Rsv9g0rP/XNCx/1XNrv9Fyaf/McSd/1fPr///////////////////////QM2m/ynK
+        oP8JzJX/C9yh/ymmhf80spPfAAAAAP///wAAcUwwAHtc/wCrfP8AyIv/AMKK////////////////////
+        /////////////5Dgyv9Gyqb/TMyq/07Nq/9MzKn/Qcmj/y/Fnf9Wzq3//////////////////////57k
+        0v8av5T/Lceg/yzOo/8M05v/Hr6T/zCghf80spIw////AABoRYAAclT/AL2H/wDBhf9R1rL/////////
+        ////////4vfw//////////////////H8+P9KzKn/Ocah/zTFnv8qwpj/Us2t////////////////////
+        ////////DLqM/yDBlv8wxp//OM6m/xPPm/8Xz53/LZF5/y+fg4////8AAGNAvwB7Wf8Aw4j/ALyC/4bj
+        yP+g5tL/g93E/2HSsv9Pzqz/Us6s//////////////////////9Yzq//Gr2S/0jLp///////////////
+        /////////////yrDm/8SvI//JMGY/zDHn/81zKT/Is2e/xTUnf8nl3v/LJJ5v////wAAXz3vAIlg/wDA
+        hf8AuoD/quzZ/5Hjyv9628D/ada2/1jRsP9Jy6f/a9a4//////////////////////+Y4s7/////////
+        //////////////////+c4tD/AbaH/xW8kf8jwZj/LcWd/y/Jn/8kzJ3/E9Ca/yGjgf8ri3Tv////AABd
+        PP8Ak2b/AL6D/w/Ekv+m6tf/j+HJ/3vawP9p1rf/W9Gx/0rNqf85yJ//Nsaf////////////////////
+        /////////////////////////////wCwe/8AtoT/ELqP/xu+k/8jwZj/KMeb/yHKm/8QzZf/HqyG/ymI
+        cf////8AAF07/wCSZP8AvYL/GMWU/6Dn1P+K38f/ddi+/27Wuf+E3MX/leHN/6fm1f+l5tX/neLQ////
+        ////////////////////////////////////////j9/J/27Vuv9Tzq7/JsKY/xa/kv8aw5T/FcaW/wvL
+        lf8aqoT/J4dw/////wAAXTv/AJFk/wC9gP8GwY3/mObQ/5rkz/+26dv/y/Hl/8Dt3/+06tz/pebV/5bg
+        zP+g5NL//////////////v///f7+//7+/v//////7fn2////////////tOnb/6Ll0v+v6Nj/jeDI/zXK
+        o/8IxJD/BMqS/xaqgv8lh2//////AABeO+8AgVf/AL1//wDBif/R9uv/1PPq/8Tv5P+36t3/rujY/6Lk
+        0v+U4cv/jt7J//j8+///////+/38//f8+//2+/r/+Pz7//3+/v/m9/P/9Pv6//D6+P9/28L/jd7J/5jj
+        z/+h5dL/qOvX/4Hmyf8f1J//E596/yOJcO////8AAGA8vwB3U/8p06P/hufM/8Ty5f/D7+T/s+vb/6bm
+        1P+c4c//j9/K/4vcyP/t+fb///7///j8/P/0+/r/8vr5//P7+f/1+/r/+/39///////i9fL/ZNO1/3HW
+        vP992sH/htzG/4vhyv+S5dD/mO7W/6X74v80noT/Io90v////wAAZkCAAHla/33ny/945cb/nunV/7Xr
+        3v+l5tT/luDN/4ndxv992cL/1vLq//v9/P/1+/n/8vv4//L69//z+/j/9Pv5/7Xo2//x+vn/////////
+        //+y59n/aNS3/3LWvP932r//fNzD/4Ljyf+J7ND/l/bd/yORdf8knH6A////AABuRzAAdlT/Xc6x/23o
+        xv9s4MH/qurZ/5jiz/+I3cb/edjA/8ju5f/3/Pv/8vv4//H6+P/y+/j/6/f0/7np3v/7/fz//v7+/6fk
+        1f+56tz///////////9h0bT/aNW4/23Wu/9v3L//dOLG/37w0f9m1rn/Hpt8/ymujTD///8AAAAAAACD
+        X98po4X/Z+7K/1vgvP+A4sf/jOHK/3rZwv+r59f/9Pv6/+/69//v+vf/8vr4/9fy6/9n0rf/VM6t/6Di
+        0v/N7+f/adO4/1PMrf9t1Lr/i9zI/1/Rs/9h0rX/ZNe4/2bbvf9s5sb/ePfV/z2ylf8lrozfAAAAAP//
+        /wAAAAAAAJNsYAWQbf9U1rP/Vee//0rYsf993sb/pebV//P7+v/s+Pb/6/f1/+749v+s5tj/Vc2u/1jP
+        r/9ZzrD/btW5/1bOr/9Wza//Vs6v/1fOr/9Z0LD/WdCy/1vTtP9d1rX/Xt+8/2btyP9k4L//IaaF/y7D
+        nmAAAAAA////AAAAAAAAAAAAD6J9zyCjgv9S68L/P9+0/2Pevv/5////7/v6/+v59//j9/L/gtvF/1PN
+        r/9Wz7D/Wc+x/1nQsf9Zz7H/WM6w/1fPsP9UzrD/VM+w/1TPrv9U0a//U9Oy/1Tatv9Z5sD/Y/LL/zSx
+        lP8qupbPAAAAAAAAAAD///8AAAAAAAAAAAAYto4wGaeE/y23lP8+5rn/6/////j////w//3/ve/i/2bV
+        uP9Tzq7/Vc+v/1jPsP9Z0LL/WM+w/1fOsf9Wz7D/Us2w/1HOrf9Qzq3/T9Cu/0zSr/9M2LP/TeC5/1bt
+        xP9HxaX/KLKQ/zTPqDAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAkvpdgG6iF/y++m//e/////P///3rl
+        yf9G0K3/VdKy/1bPsf9Wz7H/Vs6w/1bPsP9Sza//Ucyu/0/Nrf9NzKz/S82s/0fOrP9G0a7/QdWv/0Le
+        tP9I6L7/Q8Ok/yitjP8yyKJgAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAmwJlgG6iF/yK3
+        kP8k3q7/H9el/x7Pn/8tzKT/Q9Cs/1HQsP9Q0K7/TM6u/0nMrf9Hzaz/RMyp/0LNqf8+zqn/ONGo/zTV
+        qf833rD/O+S4/zvCof8orIv/MMSfYAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAkvpdgG6iE/xukgv8gy53/HNql/xzRn/8czJz/HcmZ/yXJnP8qyp7/Lcqg/yzLn/8nypz/JMqc/yTO
+        n/8l1KT/KN2r/y3Tpv8nq4n/JaqJ/yzAm2AAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAato8wFKN/zxCScv8RnHn/DbqM/wjIlP8GyZT/BsaS/wbFkf8GxZH/B8WR/wfH
+        k/8IypX/DMmV/xG3jP8WoX3/Fph2/xqkgs8ft5EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJVvYACGZM8Aelr/AHlZ/wCFX/8AiWL/AJlr/wCb
+        bP8AlGf/AI5k/wB/W/8AeFj/AHtb/wCHZd8ClXBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwSzAAaESAAGI/vwBf
+        Pd8AXTz/AF08/wBdPP8AXz3fAGJAvwBoRIAAcUswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
+        /wD///8A////AP///wD///8A/+AD//+AAP/+AAA//AAAH/gAAA/wAAAH4AAAA+AAAAPAAAABwAAAAYAA
+        AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAwAAAAcAAAAHgAAAD4AAAA/AA
+        AAf4AAAP/AAAH/4AAD//gAD//+AD//////8=
+</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs b/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs
index 651bfd7e7..3f3143eaf 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs
@@ -219,6 +219,7 @@ namespace ArdupilotMega.GCSViews
 
         private void FlightData_Load(object sender, EventArgs e)
         {
+            MainV2.bs = bindingSource1;
 
             System.Threading.Thread t11 = new System.Threading.Thread(new System.Threading.ThreadStart(mainloop))
             {
@@ -1670,7 +1671,7 @@ namespace ArdupilotMega.GCSViews
                 return;
             }
 
-            MainV2.comPort.setMountConfigure(MAVLink.MAV_MOUNT_MODE.MAV_MOUNT_MODE_GPS_POINT, true, true, true);
+            MainV2.comPort.setMountConfigure(MAVLink.MAV_MOUNT_MODE.GPS_POINT, true, true, true);
             MainV2.comPort.setMountControl(gotolocation.Lat, gotolocation.Lng, (int)(intalt / MainV2.cs.multiplierdist), true);
 
         }
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs b/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs
index 0310e66b2..d97921914 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs
@@ -51,7 +51,7 @@ namespace ArdupilotMega.GCSViews
 
         // gps buffer
         int gpsbufferindex = 0;
-        ArdupilotMega.MAVLink.__mavlink_gps_raw_t[] gpsbuffer = new MAVLink.__mavlink_gps_raw_t[2];
+        ArdupilotMega.MAVLink.mavlink_gps_raw_t[] gpsbuffer = new MAVLink.mavlink_gps_raw_t[5];
 
         // set defaults
         int rollgain = 10000;
@@ -704,10 +704,10 @@ namespace ArdupilotMega.GCSViews
         float oldax = 0, olday = 0, oldaz = 0;
         DateTime oldtime = DateTime.Now;
 #if MAVLINK10
-        ArdupilotMega.MAVLink.__mavlink_gps_raw_int_t oldgps = new MAVLink.__mavlink_gps_raw_int_t();
+        ArdupilotMega.MAVLink.mavlink_gps_raw_int_t oldgps = new MAVLink.mavlink_gps_raw_int_t();
 #endif
 
-        ArdupilotMega.MAVLink.__mavlink_attitude_t oldatt = new ArdupilotMega.MAVLink.__mavlink_attitude_t();
+        ArdupilotMega.MAVLink.mavlink_attitude_t oldatt = new ArdupilotMega.MAVLink.mavlink_attitude_t();
 
         /// <summary>
         /// Recevied UDP packet, process and send required data to serial port.
@@ -718,18 +718,18 @@ namespace ArdupilotMega.GCSViews
         private void RECVprocess(byte[] data, int receviedbytes, ArdupilotMega.MAVLink comPort)
         {
 #if MAVLINK10
-            ArdupilotMega.MAVLink.__mavlink_hil_state_t hilstate = new ArdupilotMega.MAVLink.__mavlink_hil_state_t();
+            ArdupilotMega.MAVLink.mavlink_hil_state_t hilstate = new ArdupilotMega.MAVLink.mavlink_hil_state_t();
 
-            ArdupilotMega.MAVLink.__mavlink_gps_raw_int_t gps = new ArdupilotMega.MAVLink.__mavlink_gps_raw_int_t();
+            ArdupilotMega.MAVLink.mavlink_gps_raw_int_t gps = new ArdupilotMega.MAVLink.mavlink_gps_raw_int_t();
 #else
-            ArdupilotMega.MAVLink.__mavlink_gps_raw_t gps = new ArdupilotMega.MAVLink.__mavlink_gps_raw_t();
+            ArdupilotMega.MAVLink.mavlink_gps_raw_t gps = new ArdupilotMega.MAVLink.mavlink_gps_raw_t();
 #endif
-            ArdupilotMega.MAVLink.__mavlink_raw_imu_t imu = new ArdupilotMega.MAVLink.__mavlink_raw_imu_t();
+            ArdupilotMega.MAVLink.mavlink_raw_imu_t imu = new ArdupilotMega.MAVLink.mavlink_raw_imu_t();
 
 
-            ArdupilotMega.MAVLink.__mavlink_attitude_t att = new ArdupilotMega.MAVLink.__mavlink_attitude_t();
+            ArdupilotMega.MAVLink.mavlink_attitude_t att = new ArdupilotMega.MAVLink.mavlink_attitude_t();
 
-            ArdupilotMega.MAVLink.__mavlink_vfr_hud_t asp = new ArdupilotMega.MAVLink.__mavlink_vfr_hud_t();
+            ArdupilotMega.MAVLink.mavlink_vfr_hud_t asp = new ArdupilotMega.MAVLink.mavlink_vfr_hud_t();
 
             if (data[0] == 'D' && data[1] == 'A')
             {
@@ -1245,7 +1245,7 @@ namespace ArdupilotMega.GCSViews
 
 #endif
 
-                MAVLink.__mavlink_raw_pressure_t pres = new MAVLink.__mavlink_raw_pressure_t();
+                MAVLink.mavlink_raw_pressure_t pres = new MAVLink.mavlink_raw_pressure_t();
                 double calc = (101325 * Math.Pow(1 - 2.25577 * Math.Pow(10, -5) * gps.alt, 5.25588)); // updated from valid gps
                 pres.press_diff1 = (short)(int)(calc - 101325); // 0 alt is 0 pa
 
@@ -1263,6 +1263,8 @@ namespace ArdupilotMega.GCSViews
                 // save current fix = 3
                 gpsbuffer[gpsbufferindex % gpsbuffer.Length] = gps;
 
+//                Console.WriteLine((gpsbufferindex % gpsbuffer.Length) + " " + ((gpsbufferindex + (gpsbuffer.Length - 1)) % gpsbuffer.Length));
+
                 // return buffer index + 5 = (3 + 5) = 8 % 6 = 2
                 comPort.sendPacket(gpsbuffer[(gpsbufferindex + (gpsbuffer.Length - 1)) % gpsbuffer.Length]);
 
diff --git a/Tools/ArdupilotMegaPlanner/HIL/QuadCopter.cs b/Tools/ArdupilotMegaPlanner/HIL/QuadCopter.cs
index 16414cbbb..98d32185e 100644
--- a/Tools/ArdupilotMegaPlanner/HIL/QuadCopter.cs
+++ b/Tools/ArdupilotMegaPlanner/HIL/QuadCopter.cs
@@ -330,14 +330,14 @@ namespace ArdupilotMega.HIL
 
             // send to apm
 #if MAVLINK10
-            ArdupilotMega.MAVLink.__mavlink_gps_raw_int_t gps = new ArdupilotMega.MAVLink.__mavlink_gps_raw_int_t();
+            ArdupilotMega.MAVLink.mavlink_gps_raw_int_t gps = new ArdupilotMega.MAVLink.mavlink_gps_raw_int_t();
 #else
-            ArdupilotMega.MAVLink.__mavlink_gps_raw_t gps = new ArdupilotMega.MAVLink.__mavlink_gps_raw_t();
+            ArdupilotMega.MAVLink.mavlink_gps_raw_t gps = new ArdupilotMega.MAVLink.mavlink_gps_raw_t();
 #endif
 
-            ArdupilotMega.MAVLink.__mavlink_attitude_t att = new ArdupilotMega.MAVLink.__mavlink_attitude_t();
+            ArdupilotMega.MAVLink.mavlink_attitude_t att = new ArdupilotMega.MAVLink.mavlink_attitude_t();
 
-            ArdupilotMega.MAVLink.__mavlink_vfr_hud_t asp = new ArdupilotMega.MAVLink.__mavlink_vfr_hud_t();
+            ArdupilotMega.MAVLink.mavlink_vfr_hud_t asp = new ArdupilotMega.MAVLink.mavlink_vfr_hud_t();
 
             att.roll = (float)roll * deg2rad;
             att.pitch = (float)pitch * deg2rad;
@@ -380,7 +380,7 @@ namespace ArdupilotMega.HIL
 
             MainV2.comPort.sendPacket(att);
 
-            MAVLink.__mavlink_raw_pressure_t pres = new MAVLink.__mavlink_raw_pressure_t();
+            MAVLink.mavlink_raw_pressure_t pres = new MAVLink.mavlink_raw_pressure_t();
             double calc = (101325 * Math.Pow(1 - 2.25577 * Math.Pow(10, -5) * gps.alt, 5.25588));
             pres.press_diff1 = (short)(int)(calc); // 0 alt is 0 pa
 
diff --git a/Tools/ArdupilotMegaPlanner/JoystickSetup.cs b/Tools/ArdupilotMegaPlanner/JoystickSetup.cs
index 9d491c7a6..92e7c613d 100644
--- a/Tools/ArdupilotMegaPlanner/JoystickSetup.cs
+++ b/Tools/ArdupilotMegaPlanner/JoystickSetup.cs
@@ -148,7 +148,7 @@ namespace ArdupilotMega
             }
             else
             {
-                MAVLink.__mavlink_rc_channels_override_t rc = new MAVLink.__mavlink_rc_channels_override_t();
+                MAVLink.mavlink_rc_channels_override_t rc = new MAVLink.mavlink_rc_channels_override_t();
 
                 rc.target_component = MainV2.comPort.compid;
                 rc.target_system = MainV2.comPort.sysid;
diff --git a/Tools/ArdupilotMegaPlanner/MAVLink.cs b/Tools/ArdupilotMegaPlanner/MAVLink.cs
index 380303e23..b9051e669 100644
--- a/Tools/ArdupilotMegaPlanner/MAVLink.cs
+++ b/Tools/ArdupilotMegaPlanner/MAVLink.cs
@@ -269,7 +269,7 @@ namespace ArdupilotMega
 
                     if (buffer.Length > 5 && buffer1.Length > 5 && buffer[3] == buffer1[3] && buffer[4] == buffer1[4])
                     {
-                        __mavlink_heartbeat_t hb = buffer.ByteArrayToStructure<__mavlink_heartbeat_t>(6);
+                        mavlink_heartbeat_t hb = buffer.ByteArrayToStructure<mavlink_heartbeat_t>(6);
 
                         mavlinkversion = hb.mavlink_version;
                         aptype = hb.type;
@@ -345,7 +345,7 @@ namespace ArdupilotMega
         {
             bool validPacket = false;
             byte a = 0;
-            foreach (Type ty in mavstructs)
+            foreach (Type ty in MAVLINK_MESSAGE_INFO)
             {
                 if (ty == indata.GetType())
                 {
@@ -432,7 +432,7 @@ namespace ArdupilotMega
 
             try
             {
-                if (logfile != null)
+                if (logfile != null && logfile.BaseStream.CanWrite)
                 {
                     lock (logwritelock)
                     {
@@ -491,7 +491,7 @@ namespace ArdupilotMega
 
             MainV2.giveComport = true;
 
-            __mavlink_param_set_t req = new __mavlink_param_set_t();
+            mavlink_param_set_t req = new mavlink_param_set_t();
             req.target_system = sysid;
             req.target_component = compid;
 
@@ -534,7 +534,7 @@ namespace ArdupilotMega
                 {
                     if (buffer[5] == MAVLINK_MSG_ID_PARAM_VALUE)
                     {
-                        __mavlink_param_value_t par = buffer.ByteArrayToStructure<__mavlink_param_value_t>(6);
+                        mavlink_param_value_t par = buffer.ByteArrayToStructure<mavlink_param_value_t>(6);
 
                         string st = System.Text.ASCIIEncoding.ASCII.GetString(par.param_id);
 
@@ -612,7 +612,7 @@ namespace ArdupilotMega
 
             goagain:
 
-            __mavlink_param_request_list_t req = new __mavlink_param_request_list_t();
+            mavlink_param_request_list_t req = new mavlink_param_request_list_t();
             req.target_system = sysid;
             req.target_component = compid;
 
@@ -657,7 +657,7 @@ namespace ArdupilotMega
                         restart = DateTime.Now;
                         start = DateTime.Now;
 
-                        __mavlink_param_value_t par = buffer.ByteArrayToStructure<__mavlink_param_value_t>(6);
+                        mavlink_param_value_t par = buffer.ByteArrayToStructure<mavlink_param_value_t>(6);
 
                         // set new target
                         param_total = (par.param_count - 1);
@@ -755,7 +755,7 @@ namespace ArdupilotMega
         /// </summary>
         public void stopall(bool forget)
         {
-            __mavlink_request_data_stream_t req = new __mavlink_request_data_stream_t();
+            mavlink_request_data_stream_t req = new mavlink_request_data_stream_t();
             req.target_system = sysid;
             req.target_component = compid;
 
@@ -780,14 +780,14 @@ namespace ArdupilotMega
         public void setWPACK()
         {
 #if MAVLINK10
-            MAVLink.__mavlink_mission_ack_t req = new MAVLink.__mavlink_mission_ack_t();
+            MAVLink.mavlink_mission_ack_t req = new MAVLink.mavlink_mission_ack_t();
             req.target_system = sysid;
             req.target_component = compid;
             req.type = 0;
 
             generatePacket(MAVLINK_MSG_ID_MISSION_ACK, req);
 #else
-            MAVLink.__mavlink_waypoint_ack_t req = new MAVLink.__mavlink_waypoint_ack_t();
+            MAVLink.mavlink_waypoint_ack_t req = new MAVLink.mavlink_waypoint_ack_t();
             req.target_system = sysid;
             req.target_component = compid;
             req.type = 0;
@@ -802,7 +802,7 @@ namespace ArdupilotMega
             MainV2.givecomport = true;
             byte[] buffer;
 
-            __mavlink_mission_set_current_t req = new __mavlink_mission_set_current_t();
+            mavlink_mission_set_current_t req = new mavlink_mission_set_current_t();
 
             req.target_system = sysid;
             req.target_component = compid;
@@ -847,7 +847,7 @@ namespace ArdupilotMega
             MainV2.givecomport = true;
             byte[] buffer;
 
-            __mavlink_command_long_t req = new __mavlink_command_long_t();
+            mavlink_command_long_t req = new mavlink_command_long_t();
 
             req.target_system = sysid;
             req.target_component = compid;
@@ -899,7 +899,7 @@ namespace ArdupilotMega
                     {
 
 
-                        var ack = buffer.ByteArrayToStructure<__mavlink_command_ack_t>(6);
+                        var ack = buffer.ByteArrayToStructure<mavlink_command_ack_t>(6);
 
 
                         if (ack.result == (byte)MAV_RESULT.MAV_RESULT_ACCEPTED)
@@ -919,7 +919,7 @@ namespace ArdupilotMega
             MainV2.giveComport = true;
             byte[] buffer;
 
-            __mavlink_waypoint_set_current_t req = new __mavlink_waypoint_set_current_t();
+            mavlink_waypoint_set_current_t req = new mavlink_waypoint_set_current_t();
 
             req.target_system = sysid;
             req.target_component = compid;
@@ -963,7 +963,7 @@ namespace ArdupilotMega
             MainV2.giveComport = true;
             byte[] buffer;
 
-            __mavlink_action_t req = new __mavlink_action_t();
+            mavlink_action_t req = new mavlink_action_t();
 
             req.target = sysid;
             req.target_component = compid;
@@ -1063,9 +1063,9 @@ namespace ArdupilotMega
                     }
                     break;
                 case (byte)MAVLink.MAV_DATA_STREAM.MAV_DATA_STREAM_EXTRA3:
-                    if (packetspersecondbuild[MAVLINK_MSG_ID_DCM] < DateTime.Now.AddSeconds(-2))
+                    if (packetspersecondbuild[MAVLINK_MSG_ID_AHRS] < DateTime.Now.AddSeconds(-2))
                         break;
-                    pps = packetspersecond[MAVLINK_MSG_ID_DCM];
+                    pps = packetspersecond[MAVLINK_MSG_ID_AHRS];
                     if (hzratecheck(pps, hzrate))
                     {
                         return;
@@ -1154,7 +1154,7 @@ namespace ArdupilotMega
 
         void getDatastream(byte id, byte hzrate)
         {
-            __mavlink_request_data_stream_t req = new __mavlink_request_data_stream_t();
+            mavlink_request_data_stream_t req = new mavlink_request_data_stream_t();
             req.target_system = sysid;
             req.target_component = compid;
 
@@ -1176,7 +1176,7 @@ namespace ArdupilotMega
             MainV2.giveComport = true;
             byte[] buffer;
 #if MAVLINK10
-            __mavlink_mission_request_list_t req = new __mavlink_mission_request_list_t();
+            mavlink_mission_request_list_t req = new mavlink_mission_request_list_t();
 
             req.target_system = sysid;
             req.target_component = compid;
@@ -1212,7 +1212,7 @@ namespace ArdupilotMega
 
 
 
-                        var count = buffer.ByteArrayToStructure<__mavlink_mission_count_t>(6);
+                        var count = buffer.ByteArrayToStructure<mavlink_mission_count_t>(6);
 
 
                         log.Info("wpcount: " + count.count);
@@ -1227,7 +1227,7 @@ namespace ArdupilotMega
             }
 #else
 
-            __mavlink_waypoint_request_list_t req = new __mavlink_waypoint_request_list_t();
+            mavlink_waypoint_request_list_t req = new mavlink_waypoint_request_list_t();
 
             req.target_system = sysid;
             req.target_component = compid;
@@ -1284,7 +1284,7 @@ namespace ArdupilotMega
             MainV2.giveComport = true;
             Locationwp loc = new Locationwp();
 #if MAVLINK10
-            __mavlink_mission_request_t req = new __mavlink_mission_request_t();
+            mavlink_mission_request_t req = new mavlink_mission_request_t();
 
             req.target_system = sysid;
             req.target_component = compid;
@@ -1326,12 +1326,12 @@ namespace ArdupilotMega
 
                         //Array.Copy(buffer, 6, buffer, 0, buffer.Length - 6);
 
-                        var wp = buffer.ByteArrayToStructure<__mavlink_mission_item_t>(6);
+                        var wp = buffer.ByteArrayToStructure<mavlink_mission_item_t>(6);
 
 
 #else
 
-            __mavlink_waypoint_request_t req = new __mavlink_waypoint_request_t();
+            mavlink_waypoint_request_t req = new mavlink_waypoint_request_t();
 
             req.target_system = sysid;
             req.target_component = compid;
@@ -1369,7 +1369,7 @@ namespace ArdupilotMega
                     if (buffer[5] == MAVLINK_MSG_ID_WAYPOINT)
                     {
                         //Console.WriteLine("getwp ans " + DateTime.Now.Millisecond);
-                        __mavlink_waypoint_t wp = buffer.ByteArrayToStructure<__mavlink_waypoint_t>(6);
+                        mavlink_waypoint_t wp = buffer.ByteArrayToStructure<mavlink_waypoint_t>(6);
 
 #endif
 
@@ -1499,7 +1499,7 @@ namespace ArdupilotMega
 
                     textoutput = string.Format("{0:X} {1:X} {2:X} {3:X} {4:X} {5:X} ", header, length, seq, sysid, compid, messid);
 
-                    object data = Activator.CreateInstance(mavstructs[messid]);
+                    object data = Activator.CreateInstance(MAVLINK_MESSAGE_INFO[messid]);
 
                     MavlinkUtil.ByteArrayToStructure(datin, ref data, 6);
 
@@ -1562,7 +1562,7 @@ namespace ArdupilotMega
         {
 #if MAVLINK10		
             MainV2.givecomport = true;
-            __mavlink_mission_count_t req = new __mavlink_mission_count_t();
+            mavlink_mission_count_t req = new mavlink_mission_count_t();
 
             req.target_system = sysid;
             req.target_component = compid; // MAVLINK_MSG_ID_MISSION_COUNT
@@ -1597,7 +1597,7 @@ namespace ArdupilotMega
 
 
 
-                        var request = buffer.ByteArrayToStructure<__mavlink_mission_request_t>(6);
+                        var request = buffer.ByteArrayToStructure<mavlink_mission_request_t>(6);
 
                         if (request.seq == 0)
                         {
@@ -1617,7 +1617,7 @@ namespace ArdupilotMega
             }
 #else
             MainV2.giveComport = true;
-            __mavlink_waypoint_count_t req = new __mavlink_waypoint_count_t();
+            mavlink_waypoint_count_t req = new mavlink_waypoint_count_t();
 
             req.target_system = sysid;
             req.target_component = compid; // MAVLINK_MSG_ID_WAYPOINT_COUNT
@@ -1649,7 +1649,7 @@ namespace ArdupilotMega
                 {
                     if (buffer[5] == MAVLINK_MSG_ID_WAYPOINT_REQUEST)
                     {
-                        __mavlink_waypoint_request_t request = buffer.ByteArrayToStructure<__mavlink_waypoint_request_t>(6);
+                        mavlink_waypoint_request_t request = buffer.ByteArrayToStructure<mavlink_waypoint_request_t>(6);
 
                         if (request.seq == 0)
                         {
@@ -1682,9 +1682,9 @@ namespace ArdupilotMega
         {
             MainV2.giveComport = true;
 #if MAVLINK10
-            __mavlink_mission_item_t req = new __mavlink_mission_item_t();
+            mavlink_mission_item_t req = new mavlink_mission_item_t();
 #else
-            __mavlink_waypoint_t req = new __mavlink_waypoint_t();
+            mavlink_waypoint_t req = new mavlink_waypoint_t();
 #endif
 
             req.target_system = sysid;
@@ -1797,7 +1797,7 @@ namespace ArdupilotMega
                     {
 
 
-                        var ans = buffer.ByteArrayToStructure<__mavlink_mission_ack_t>(6);
+                        var ans = buffer.ByteArrayToStructure<mavlink_mission_ack_t>(6);
 
 
                         log.Info("set wp " + index + " ACK 47 : " + buffer[5] + " ans " + Enum.Parse(typeof(MAV_MISSION_RESULT), ans.type.ToString()));
@@ -1805,7 +1805,7 @@ namespace ArdupilotMega
                     }
                     else if (buffer[5] == MAVLINK_MSG_ID_MISSION_REQUEST)
                     {
-                        var ans = buffer.ByteArrayToStructure<__mavlink_mission_request_t>(6);
+                        var ans = buffer.ByteArrayToStructure<mavlink_mission_request_t>(6);
 
 
 
@@ -1828,13 +1828,13 @@ namespace ArdupilotMega
                     }
 #else
                     if (buffer[5] == MAVLINK_MSG_ID_WAYPOINT_ACK)
-                    { //__mavlink_waypoint_request_t
+                    { //mavlink_waypoint_request_t
                         log.Info("set wp " + index + " ACK 47 : " + buffer[5]);
                         break;
                     }
                     else if (buffer[5] == MAVLINK_MSG_ID_WAYPOINT_REQUEST)
                     {
-                        __mavlink_waypoint_request_t ans = buffer.ByteArrayToStructure<__mavlink_waypoint_request_t>(6);
+                        mavlink_waypoint_request_t ans = buffer.ByteArrayToStructure<mavlink_waypoint_request_t>(6);
 
                         if (ans.seq == (index + 1))
                         {
@@ -1859,7 +1859,7 @@ namespace ArdupilotMega
 
         public void setMountConfigure(MAV_MOUNT_MODE mountmode, bool stabroll, bool stabpitch, bool stabyaw)
         {
-            __mavlink_mount_configure_t req = new __mavlink_mount_configure_t();
+            mavlink_mount_configure_t req = new mavlink_mount_configure_t();
 
             req.target_system = sysid;
             req.target_component = compid;
@@ -1875,7 +1875,7 @@ namespace ArdupilotMega
 
         public void setMountControl(double pa, double pb, double pc, bool islatlng)
         {
-            __mavlink_mount_control_t req = new __mavlink_mount_control_t();
+            mavlink_mount_control_t req = new mavlink_mount_control_t();
 
             req.target_system = sysid;
             req.target_component = compid;
@@ -1902,7 +1902,7 @@ namespace ArdupilotMega
 #if MAVLINK10
             try
             {
-                MAVLink.__mavlink_set_mode_t mode = new MAVLink.__mavlink_set_mode_t();
+                MAVLink.mavlink_set_mode_t mode = new MAVLink.mavlink_set_mode_t();
 
                 if (Common.translateMode(modein, ref mode))
                 {
@@ -1915,9 +1915,9 @@ namespace ArdupilotMega
 #else
             try
             {
-                MAVLink.__mavlink_set_nav_mode_t navmode = new MAVLink.__mavlink_set_nav_mode_t();
+                MAVLink.mavlink_set_nav_mode_t navmode = new MAVLink.mavlink_set_nav_mode_t();
 
-                MAVLink.__mavlink_set_mode_t mode = new MAVLink.__mavlink_set_mode_t();
+                MAVLink.mavlink_set_mode_t mode = new MAVLink.mavlink_set_mode_t();
 
                 if (Common.translateMode(modein, ref navmode, ref mode))
                 {
@@ -2026,7 +2026,7 @@ namespace ArdupilotMega
                             if (BaseStream.IsOpen)
                             {
                                 temp[count] = (byte)BaseStream.ReadByte();
-                                if (rawlogfile != null)
+                                if (rawlogfile != null && rawlogfile.BaseStream.CanWrite)
                                     rawlogfile.Write(temp[count]);
                             }
                         }
@@ -2092,7 +2092,7 @@ namespace ArdupilotMega
                                     if (BaseStream.IsOpen)
                                     {
                                         int read = BaseStream.Read(temp, 6, length - 4);
-                                        if (rawlogfile != null)
+                                        if (rawlogfile != null && rawlogfile.BaseStream.CanWrite)
                                         {
                                             rawlogfile.Write(temp, 0, read);
                                             rawlogfile.BaseStream.Flush();
@@ -2243,7 +2243,7 @@ namespace ArdupilotMega
 
                     try
                     {
-                        if (logfile != null)
+                        if (logfile != null && logfile.BaseStream.CanWrite)
                         {
                             lock (logwritelock)
                             {
@@ -2282,7 +2282,7 @@ namespace ArdupilotMega
 
                     if (buffer[5] == MAVLink.MAVLINK_MSG_ID_MISSION_ITEM)
                     {
-                        __mavlink_mission_item_t wp = buffer.ByteArrayToStructure<__mavlink_mission_item_t>(6);
+                        mavlink_mission_item_t wp = buffer.ByteArrayToStructure<mavlink_mission_item_t>(6);
 #else
 
             if (buffer[5] == MAVLINK_MSG_ID_WAYPOINT_COUNT)
@@ -2293,7 +2293,7 @@ namespace ArdupilotMega
 
             if (buffer[5] == MAVLink.MAVLINK_MSG_ID_WAYPOINT)
             {
-                __mavlink_waypoint_t wp = buffer.ByteArrayToStructure<__mavlink_waypoint_t>(6);
+                mavlink_waypoint_t wp = buffer.ByteArrayToStructure<mavlink_waypoint_t>(6);
 
 #endif
                 wps[wp.seq] = new PointLatLngAlt(wp.x, wp.y, wp.z, wp.seq.ToString());
@@ -2307,7 +2307,7 @@ namespace ArdupilotMega
             MainV2.giveComport = true;
 
             PointLatLngAlt plla = new PointLatLngAlt();
-            __mavlink_fence_fetch_point_t req = new __mavlink_fence_fetch_point_t();
+            mavlink_fence_fetch_point_t req = new mavlink_fence_fetch_point_t();
 
             req.idx = (byte)no;
             req.target_component = compid;
@@ -2342,7 +2342,7 @@ namespace ArdupilotMega
                     {
                         MainV2.giveComport = false;
 
-                        __mavlink_fence_point_t fp = buffer.ByteArrayToStructure<__mavlink_fence_point_t>(6);
+                        mavlink_fence_point_t fp = buffer.ByteArrayToStructure<mavlink_fence_point_t>(6);
 
                         plla.Lat = fp.lat;
                         plla.Lng = fp.lng;
@@ -2358,7 +2358,7 @@ namespace ArdupilotMega
 
         public bool setFencePoint(byte index, PointLatLngAlt plla, byte fencepointcount)
         {
-            __mavlink_fence_point_t fp = new __mavlink_fence_point_t();
+            mavlink_fence_point_t fp = new mavlink_fence_point_t();
 
             fp.idx = index;
             fp.count = fencepointcount;
diff --git a/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs b/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs
index 2f855af56..215c9c545 100644
--- a/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs
+++ b/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs
@@ -8,1453 +8,1928 @@ namespace ArdupilotMega
 #if MAVLINK10
     partial class MAVLink
     {
+        public const string MAVLINK_BUILD_DATE = "Wed Apr  4 18:13:10 2012";
+        public const string MAVLINK_WIRE_PROTOCOL_VERSION = "1.0";
+        public const int MAVLINK_MAX_DIALECT_PAYLOAD_SIZE = 42;
 
-        public const byte MAVLINK_MSG_ID_FENCED_POINT_LEN = 10;
-        public const byte MAVLINK_MSG_ID_FENCE_FETCH_POINT = 161;
-        [StructLayout(LayoutKind.Sequential, Pack = 1)]
-        public struct __mavlink_fence_fetch_point_t
+        public const int MAVLINK_LITTLE_ENDIAN = 1;
+        public const int MAVLINK_BIG_ENDIAN = 0;
+
+        public const byte MAVLINK_STX = 254;
+
+        public const byte MAVLINK_ENDIAN = MAVLINK_LITTLE_ENDIAN;
+
+        public const bool MAVLINK_ALIGNED_FIELDS = (1 == 1);
+
+        public const byte MAVLINK_CRC_EXTRA = 1;
+        
+        public const bool MAVLINK_NEED_BYTE_SWAP = (MAVLINK_ENDIAN == MAVLINK_LITTLE_ENDIAN);
+        
+        public byte[] MAVLINK_MESSAGE_LENGTHS = new byte[] {9, 31, 12, 0, 14, 28, 3, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 25, 23, 30, 101, 22, 26, 16, 14, 28, 32, 28, 28, 22, 22, 21, 6, 6, 37, 4, 4, 2, 2, 4, 2, 2, 3, 13, 12, 19, 17, 15, 15, 27, 25, 18, 18, 20, 20, 0, 0, 26, 0, 36, 0, 6, 4, 0, 21, 18, 0, 0, 0, 20, 0, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 42, 33, 0, 0, 0, 0, 0, 0, 0, 18, 32, 32, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 8, 4, 12, 15, 13, 6, 15, 14, 0, 12, 3, 8, 28, 36, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 30, 18, 18, 51, 9, 3};
+
+        public byte[] MAVLINK_MESSAGE_CRCS = new byte[] {50, 124, 137, 0, 237, 217, 104, 119, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 230, 28, 28, 132, 221, 232, 11, 153, 41, 39, 214, 223, 141, 33, 15, 3, 100, 24, 239, 238, 0, 0, 183, 0, 130, 0, 148, 21, 0, 52, 124, 0, 0, 0, 20, 0, 152, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 63, 54, 0, 0, 0, 0, 0, 0, 0, 19, 102, 158, 208, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 219, 208, 188, 84, 22, 19, 21, 134, 0, 78, 68, 189, 127, 42, 21, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 49, 170, 44, 83, 46, 247};
+
+        public Type[] MAVLINK_MESSAGE_INFO = new Type[] {typeof( mavlink_heartbeat_t ), typeof( mavlink_sys_status_t ), typeof( mavlink_system_time_t ), null, typeof( mavlink_ping_t ), typeof( mavlink_change_operator_control_t ), typeof( mavlink_change_operator_control_ack_t ), typeof( mavlink_auth_key_t ), null, null, null, typeof( mavlink_set_mode_t ), null, null, null, null, null, null, null, null, typeof( mavlink_param_request_read_t ), typeof( mavlink_param_request_list_t ), typeof( mavlink_param_value_t ), typeof( mavlink_param_set_t ), typeof( mavlink_gps_raw_int_t ), typeof( mavlink_gps_status_t ), typeof( mavlink_scaled_imu_t ), typeof( mavlink_raw_imu_t ), typeof( mavlink_raw_pressure_t ), typeof( mavlink_scaled_pressure_t ), typeof( mavlink_attitude_t ), typeof( mavlink_attitude_quaternion_t ), typeof( mavlink_local_position_ned_t ), typeof( mavlink_global_position_int_t ), typeof( mavlink_rc_channels_scaled_t ), typeof( mavlink_rc_channels_raw_t ), typeof( mavlink_servo_output_raw_t ), typeof( mavlink_mission_request_partial_list_t ), typeof( mavlink_mission_write_partial_list_t ), typeof( mavlink_mission_item_t ), typeof( mavlink_mission_request_t ), typeof( mavlink_mission_set_current_t ), typeof( mavlink_mission_current_t ), typeof( mavlink_mission_request_list_t ), typeof( mavlink_mission_count_t ), typeof( mavlink_mission_clear_all_t ), typeof( mavlink_mission_item_reached_t ), typeof( mavlink_mission_ack_t ), typeof( mavlink_set_gps_global_origin_t ), typeof( mavlink_gps_global_origin_t ), typeof( mavlink_set_local_position_setpoint_t ), typeof( mavlink_local_position_setpoint_t ), typeof( mavlink_global_position_setpoint_int_t ), typeof( mavlink_set_global_position_setpoint_int_t ), typeof( mavlink_safety_set_allowed_area_t ), typeof( mavlink_safety_allowed_area_t ), typeof( mavlink_set_roll_pitch_yaw_thrust_t ), typeof( mavlink_set_roll_pitch_yaw_speed_thrust_t ), typeof( mavlink_roll_pitch_yaw_thrust_setpoint_t ), typeof( mavlink_roll_pitch_yaw_speed_thrust_setpoint_t ), null, null, typeof( mavlink_nav_controller_output_t ), null, typeof( mavlink_state_correction_t ), null, typeof( mavlink_request_data_stream_t ), typeof( mavlink_data_stream_t ), null, typeof( mavlink_manual_control_t ), typeof( mavlink_rc_channels_override_t ), null, null, null, typeof( mavlink_vfr_hud_t ), null, typeof( mavlink_command_long_t ), typeof( mavlink_command_ack_t ), null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_hil_state_t ), typeof( mavlink_hil_controls_t ), typeof( mavlink_hil_rc_inputs_raw_t ), null, null, null, null, null, null, null, typeof( mavlink_optical_flow_t ), typeof( mavlink_global_vision_position_estimate_t ), typeof( mavlink_vision_position_estimate_t ), typeof( mavlink_vision_speed_estimate_t ), typeof( mavlink_vicon_position_estimate_t ), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_sensor_offsets_t ), typeof( mavlink_set_mag_offsets_t ), typeof( mavlink_meminfo_t ), typeof( mavlink_ap_adc_t ), typeof( mavlink_digicam_configure_t ), typeof( mavlink_digicam_control_t ), typeof( mavlink_mount_configure_t ), typeof( mavlink_mount_control_t ), typeof( mavlink_mount_status_t ), null, typeof( mavlink_fence_point_t ), typeof( mavlink_fence_fetch_point_t ), typeof( mavlink_fence_status_t ), typeof( mavlink_ahrs_t ), typeof( mavlink_simstate_t ), typeof( mavlink_hwstatus_t ), typeof( mavlink_radio_t ), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_memory_vect_t ), typeof( mavlink_debug_vect_t ), typeof( mavlink_named_value_float_t ), typeof( mavlink_named_value_int_t ), typeof( mavlink_statustext_t ), typeof( mavlink_debug_t ), typeof( mavlink_extended_message_t )};
+
+        public const byte MAVLINK_VERSION = 3;
+    
+        
+        /** @brief Enumeration of possible mount operation modes */
+        public enum MAV_MOUNT_MODE
         {
-            public byte target_system; /// System ID
-            public byte target_component; /// Component ID
-            public byte idx; /// point index (first point is 1, 0 is for return point)
+    	///<summary> Load and keep safe position (Roll,Pitch,Yaw) from EEPROM and stop stabilization | </summary>
+            RETRACT=0, 
+        	///<summary> Load and keep neutral position (Roll,Pitch,Yaw) from EEPROM. | </summary>
+            NEUTRAL=1, 
+        	///<summary> Load neutral position and start MAVLink Roll,Pitch,Yaw control with stabilization | </summary>
+            MAVLINK_TARGETING=2, 
+        	///<summary> Load neutral position and start RC Roll,Pitch,Yaw control with stabilization | </summary>
+            RC_TARGETING=3, 
+        	///<summary> Load neutral position and start to point to Lat,Lon,Alt | </summary>
+            GPS_POINT=4, 
+        	///<summary>  | </summary>
+            ENUM_END=5, 
+        
         };
-
-        public const byte MAVLINK_MSG_ID_FENCE_FETCH_POINT_LEN = 3;
-        public const byte MAVLINK_MSG_ID_FENCE_POINT = 160;
-        [StructLayout(LayoutKind.Sequential, Pack = 1)]
-        public struct __mavlink_fence_point_t
+        
+        /** @brief  */
+        public enum MAV_CMD
         {
-            public byte target_system; /// System ID
-            public byte target_component; /// Component ID
-            public byte idx; /// point index (first point is 1, 0 is for return point)
-            public byte count; /// total number of points (for sanity checking)
-            public float lat; /// Latitude of point
-            public float lng; /// Longitude of point
+    	///<summary> Navigate to MISSION. |Hold time in decimal seconds. (ignored by fixed wing, time to stay at MISSION for rotary wing)| Acceptance radius in meters (if the sphere with this radius is hit, the MISSION counts as reached)| 0 to pass through the WP, if > 0 radius in meters to pass by WP. Positive value for clockwise orbit, negative value for counter-clockwise orbit. Allows trajectory control.| Desired yaw angle at MISSION (rotary wing)| Latitude| Longitude| Altitude|  </summary>
+            NAV_WAYPOINT=16, 
+        	///<summary> Loiter around this MISSION an unlimited amount of time |Empty| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
+            NAV_LOITER_UNLIM=17, 
+        	///<summary> Loiter around this MISSION for X turns |Turns| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
+            NAV_LOITER_TURNS=18, 
+        	///<summary> Loiter around this MISSION for X seconds |Seconds (decimal)| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
+            NAV_LOITER_TIME=19, 
+        	///<summary> Return to launch location |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            NAV_RETURN_TO_LAUNCH=20, 
+        	///<summary> Land at location |Empty| Empty| Empty| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
+            NAV_LAND=21, 
+        	///<summary> Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude|  </summary>
+            NAV_TAKEOFF=22, 
+        	///<summary> Sets the region of interest (ROI) for a sensor set or the             vehicle itself. This can then be used by the vehicles control             system to control the vehicle attitude and the attitude of various             sensors such as cameras. |Region of intereset mode. (see MAV_ROI enum)| MISSION index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple ROI's)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  </summary>
+            NAV_ROI=80, 
+        	///<summary> Control autonomous path planning on the MAV. |0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning| 0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid| Empty| Yaw angle at goal, in compass degrees, [0..360]| Latitude/X of goal| Longitude/Y of goal| Altitude/Z of goal|  </summary>
+            NAV_PATHPLANNING=81, 
+        	///<summary> NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            NAV_LAST=95, 
+        	///<summary> Delay mission state machine. |Delay in seconds (decimal)| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            CONDITION_DELAY=112, 
+        	///<summary> Ascend/descend at rate.  Delay mission state machine until desired altitude reached. |Descent / Ascend rate (m/s)| Empty| Empty| Empty| Empty| Empty| Finish Altitude|  </summary>
+            CONDITION_CHANGE_ALT=113, 
+        	///<summary> Delay mission state machine until within desired distance of next NAV point. |Distance (meters)| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            CONDITION_DISTANCE=114, 
+        	///<summary> Reach a certain target angle. |target angle: [0-360], 0 is north| speed during yaw change:[deg per second]| direction: negative: counter clockwise, positive: clockwise [-1,1]| relative offset or absolute angle: [ 1,0]| Empty| Empty| Empty|  </summary>
+            CONDITION_YAW=115, 
+        	///<summary> NOP - This command is only used to mark the upper limit of the CONDITION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            CONDITION_LAST=159, 
+        	///<summary> Set system mode. |Mode, as defined by ENUM MAV_MODE| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_SET_MODE=176, 
+        	///<summary> Jump to the desired command in the mission list.  Repeat this action only the specified number of times |Sequence number| Repeat count| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_JUMP=177, 
+        	///<summary> Change speed and/or throttle set points. |Speed type (0=Airspeed, 1=Ground Speed)| Speed  (m/s, -1 indicates no change)| Throttle  ( Percent, -1 indicates no change)| Empty| Empty| Empty| Empty|  </summary>
+            DO_CHANGE_SPEED=178, 
+        	///<summary> Changes the home location either to the current location or a specified location. |Use current (1=use current location, 0=use specified location)| Empty| Empty| Empty| Latitude| Longitude| Altitude|  </summary>
+            DO_SET_HOME=179, 
+        	///<summary> Set a system parameter.  Caution!  Use of this command requires knowledge of the numeric enumeration value of the parameter. |Parameter number| Parameter value| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_SET_PARAMETER=180, 
+        	///<summary> Set a relay to a condition. |Relay number| Setting (1=on, 0=off, others possible depending on system hardware)| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_SET_RELAY=181, 
+        	///<summary> Cycle a relay on and off for a desired number of cyles with a desired period. |Relay number| Cycle count| Cycle time (seconds, decimal)| Empty| Empty| Empty| Empty|  </summary>
+            DO_REPEAT_RELAY=182, 
+        	///<summary> Set a servo to a desired PWM value. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_SET_SERVO=183, 
+        	///<summary> Cycle a between its nominal setting and a desired PWM for a desired number of cycles with a desired period. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Cycle count| Cycle time (seconds)| Empty| Empty| Empty|  </summary>
+            DO_REPEAT_SERVO=184, 
+        	///<summary> Control onboard camera system. |Camera ID (-1 for all)| Transmission: 0: disabled, 1: enabled compressed, 2: enabled raw| Transmission mode: 0: video stream, >0: single images every n seconds (decimal)| Recording: 0: disabled, 1: enabled compressed, 2: enabled raw| Empty| Empty| Empty|  </summary>
+            DO_CONTROL_VIDEO=200, 
+        	///<summary> Mission command to configure an on-board camera controller system. |Modes: P, TV, AV, M, Etc| Shutter speed: Divisor number for one second| Aperture: F stop number| ISO number e.g. 80, 100, 200, Etc| Exposure type enumerator| Command Identity| Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)|  </summary>
+            DO_DIGICAM_CONFIGURE=202, 
+        	///<summary> Mission command to control an on-board camera controller system. |Session control e.g. show/hide lens| Zoom's absolute position| Zooming step value to offset zoom from the current position| Focus Locking, Unlocking or Re-locking| Shooting Command| Command Identity| Empty|  </summary>
+            DO_DIGICAM_CONTROL=203, 
+        	///<summary> Mission command to configure a camera or antenna mount |Mount operation mode (see MAV_MOUNT_MODE enum)| stabilize roll? (1 = yes, 0 = no)| stabilize pitch? (1 = yes, 0 = no)| stabilize yaw? (1 = yes, 0 = no)| Empty| Empty| Empty|  </summary>
+            DO_MOUNT_CONFIGURE=204, 
+        	///<summary> Mission command to control a camera or antenna mount |pitch(deg*100) or lat, depending on mount mode.| roll(deg*100) or lon depending on mount mode| yaw(deg*100) or alt (in cm) depending on mount mode| Empty| Empty| Empty| Empty|  </summary>
+            DO_MOUNT_CONTROL=205, 
+        	///<summary> NOP - This command is only used to mark the upper limit of the DO commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_LAST=240, 
+        	///<summary> Trigger calibration. This command will be only accepted if in pre-flight mode. |Gyro calibration: 0: no, 1: yes| Magnetometer calibration: 0: no, 1: yes| Ground pressure: 0: no, 1: yes| Radio calibration: 0: no, 1: yes| Empty| Empty| Empty|  </summary>
+            PREFLIGHT_CALIBRATION=241, 
+        	///<summary> Set sensor offsets. This command will be only accepted if in pre-flight mode. |Sensor to adjust the offsets for: 0: gyros, 1: accelerometer, 2: magnetometer, 3: barometer, 4: optical flow| X axis offset (or generic dimension 1), in the sensor's raw units| Y axis offset (or generic dimension 2), in the sensor's raw units| Z axis offset (or generic dimension 3), in the sensor's raw units| Generic dimension 4, in the sensor's raw units| Generic dimension 5, in the sensor's raw units| Generic dimension 6, in the sensor's raw units|  </summary>
+            PREFLIGHT_SET_SENSOR_OFFSETS=242, 
+        	///<summary> Request storage of different parameter values and logs. This command will be only accepted if in pre-flight mode. |Parameter storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Mission storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Reserved| Reserved| Empty| Empty| Empty|  </summary>
+            PREFLIGHT_STORAGE=245, 
+        	///<summary> Request the reboot or shutdown of system components. |0: Do nothing for autopilot, 1: Reboot autopilot, 2: Shutdown autopilot.| 0: Do nothing for onboard computer, 1: Reboot onboard computer, 2: Shutdown onboard computer.| Reserved| Reserved| Empty| Empty| Empty|  </summary>
+            PREFLIGHT_REBOOT_SHUTDOWN=246, 
+        	///<summary> Hold / continue the current action |MAV_GOTO_DO_HOLD: hold MAV_GOTO_DO_CONTINUE: continue with next item in mission plan| MAV_GOTO_HOLD_AT_CURRENT_POSITION: Hold at current position MAV_GOTO_HOLD_AT_SPECIFIED_POSITION: hold at specified position| MAV_FRAME coordinate frame of hold point| Desired yaw angle in degrees| Latitude / X position| Longitude / Y position| Altitude / Z position|  </summary>
+            OVERRIDE_GOTO=252, 
+        	///<summary> start running a mission |first_item: the first mission item to run| last_item:  the last mission item to run (after this item is run, the mission ends)|  </summary>
+            MISSION_START=300, 
+        	///<summary>  | </summary>
+            ENUM_END=301, 
+        
         };
+        
+        /** @brief  */
+        public enum FENCE_ACTION
+        {
+    	///<summary> Disable fenced mode | </summary>
+            NONE=0, 
+        	///<summary> Switched to guided mode to return point (fence point 0) | </summary>
+            GUIDED=1, 
+        	///<summary>  | </summary>
+            ENUM_END=2, 
+        
+        };
+        
+        /** @brief  */
+        public enum FENCE_BREACH
+        {
+    	///<summary> No last fence breach | </summary>
+            NONE=0, 
+        	///<summary> Breached minimum altitude | </summary>
+            MINALT=1, 
+        	///<summary> Breached minimum altitude | </summary>
+            MAXALT=2, 
+        	///<summary> Breached fence boundary | </summary>
+            BOUNDARY=3, 
+        	///<summary>  | </summary>
+            ENUM_END=4, 
+        
+        };
+        
+    
+
+    public const byte MAVLINK_MSG_ID_SENSOR_OFFSETS = 150;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=42)]
+    public struct mavlink_sensor_offsets_t
+    {
+        /// <summary> magnetic declination (radians) </summary>
+        public  Single mag_declination;
+            /// <summary> raw pressure from barometer </summary>
+        public  Int32 raw_press;
+            /// <summary> raw temperature from barometer </summary>
+        public  Int32 raw_temp;
+            /// <summary> gyro X calibration </summary>
+        public  Single gyro_cal_x;
+            /// <summary> gyro Y calibration </summary>
+        public  Single gyro_cal_y;
+            /// <summary> gyro Z calibration </summary>
+        public  Single gyro_cal_z;
+            /// <summary> accel X calibration </summary>
+        public  Single accel_cal_x;
+            /// <summary> accel Y calibration </summary>
+        public  Single accel_cal_y;
+            /// <summary> accel Z calibration </summary>
+        public  Single accel_cal_z;
+            /// <summary> magnetometer X offset </summary>
+        public  Int16 mag_ofs_x;
+            /// <summary> magnetometer Y offset </summary>
+        public  Int16 mag_ofs_y;
+            /// <summary> magnetometer Z offset </summary>
+        public  Int16 mag_ofs_z;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_MAG_OFFSETS = 151;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)]
+    public struct mavlink_set_mag_offsets_t
+    {
+        /// <summary> magnetometer X offset </summary>
+        public  Int16 mag_ofs_x;
+            /// <summary> magnetometer Y offset </summary>
+        public  Int16 mag_ofs_y;
+            /// <summary> magnetometer Z offset </summary>
+        public  Int16 mag_ofs_z;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MEMINFO = 152;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)]
+    public struct mavlink_meminfo_t
+    {
+        /// <summary> heap top </summary>
+        public  UInt16 brkval;
+            /// <summary> free memory </summary>
+        public  UInt16 freemem;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_AP_ADC = 153;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)]
+    public struct mavlink_ap_adc_t
+    {
+        /// <summary> ADC output 1 </summary>
+        public  UInt16 adc1;
+            /// <summary> ADC output 2 </summary>
+        public  UInt16 adc2;
+            /// <summary> ADC output 3 </summary>
+        public  UInt16 adc3;
+            /// <summary> ADC output 4 </summary>
+        public  UInt16 adc4;
+            /// <summary> ADC output 5 </summary>
+        public  UInt16 adc5;
+            /// <summary> ADC output 6 </summary>
+        public  UInt16 adc6;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_DIGICAM_CONFIGURE = 154;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)]
+    public struct mavlink_digicam_configure_t
+    {
+        /// <summary> Correspondent value to given extra_param </summary>
+        public  Single extra_value;
+            /// <summary> Divisor number //e.g. 1000 means 1/1000 (0 means ignore) </summary>
+        public  UInt16 shutter_speed;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Mode enumeration from 1 to N //P, TV, AV, M, Etc (0 means ignore) </summary>
+        public  byte mode;
+            /// <summary> F stop number x 10 //e.g. 28 means 2.8 (0 means ignore) </summary>
+        public  byte aperture;
+            /// <summary> ISO enumeration from 1 to N //e.g. 80, 100, 200, Etc (0 means ignore) </summary>
+        public  byte iso;
+            /// <summary> Exposure type enumeration from 1 to N (0 means ignore) </summary>
+        public  byte exposure_type;
+            /// <summary> Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once </summary>
+        public  byte command_id;
+            /// <summary> Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off) </summary>
+        public  byte engine_cut_off;
+            /// <summary> Extra parameters enumeration (0 means ignore) </summary>
+        public  byte extra_param;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_DIGICAM_CONTROL = 155;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=13)]
+    public struct mavlink_digicam_control_t
+    {
+        /// <summary> Correspondent value to given extra_param </summary>
+        public  Single extra_value;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> 0: stop, 1: start or keep it up //Session control e.g. show/hide lens </summary>
+        public  byte session;
+            /// <summary> 1 to N //Zoom's absolute position (0 means ignore) </summary>
+        public  byte zoom_pos;
+            /// <summary> -100 to 100 //Zooming step value to offset zoom from the current position </summary>
+        public  byte zoom_step;
+            /// <summary> 0: unlock focus or keep unlocked, 1: lock focus or keep locked, 3: re-lock focus </summary>
+        public  byte focus_lock;
+            /// <summary> 0: ignore, 1: shot or start filming </summary>
+        public  byte shot;
+            /// <summary> Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once </summary>
+        public  byte command_id;
+            /// <summary> Extra parameters enumeration (0 means ignore) </summary>
+        public  byte extra_param;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MOUNT_CONFIGURE = 156;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)]
+    public struct mavlink_mount_configure_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> mount operating mode (see MAV_MOUNT_MODE enum) </summary>
+        public  byte mount_mode;
+            /// <summary> (1 = yes, 0 = no) </summary>
+        public  byte stab_roll;
+            /// <summary> (1 = yes, 0 = no) </summary>
+        public  byte stab_pitch;
+            /// <summary> (1 = yes, 0 = no) </summary>
+        public  byte stab_yaw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MOUNT_CONTROL = 157;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)]
+    public struct mavlink_mount_control_t
+    {
+        /// <summary> pitch(deg*100) or lat, depending on mount mode </summary>
+        public  Int32 input_a;
+            /// <summary> roll(deg*100) or lon depending on mount mode </summary>
+        public  Int32 input_b;
+            /// <summary> yaw(deg*100) or alt (in cm) depending on mount mode </summary>
+        public  Int32 input_c;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> if "1" it will save current trimmed position on EEPROM (just valid for NEUTRAL and LANDING) </summary>
+        public  byte save_position;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MOUNT_STATUS = 158;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)]
+    public struct mavlink_mount_status_t
+    {
+        /// <summary> pitch(deg*100) or lat, depending on mount mode </summary>
+        public  Int32 pointing_a;
+            /// <summary> roll(deg*100) or lon depending on mount mode </summary>
+        public  Int32 pointing_b;
+            /// <summary> yaw(deg*100) or alt (in cm) depending on mount mode </summary>
+        public  Int32 pointing_c;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_FENCE_POINT = 160;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)]
+    public struct mavlink_fence_point_t
+    {
+        /// <summary> Latitude of point </summary>
+        public  Single lat;
+            /// <summary> Longitude of point </summary>
+        public  Single lng;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> point index (first point is 1, 0 is for return point) </summary>
+        public  byte idx;
+            /// <summary> total number of points (for sanity checking) </summary>
+        public  byte count;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_FENCE_FETCH_POINT = 161;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_fence_fetch_point_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> point index (first point is 1, 0 is for return point) </summary>
+        public  byte idx;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_FENCE_STATUS = 162;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)]
+    public struct mavlink_fence_status_t
+    {
+        /// <summary> time of last breach in milliseconds since boot </summary>
+        public  UInt32 breach_time;
+            /// <summary> number of fence breaches </summary>
+        public  UInt16 breach_count;
+            /// <summary> 0 if currently inside fence, 1 if outside </summary>
+        public  byte breach_status;
+            /// <summary> last breach type (see FENCE_BREACH_* enum) </summary>
+        public  byte breach_type;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_AHRS = 163;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)]
+    public struct mavlink_ahrs_t
+    {
+        /// <summary> X gyro drift estimate rad/s </summary>
+        public  Single omegaIx;
+            /// <summary> Y gyro drift estimate rad/s </summary>
+        public  Single omegaIy;
+            /// <summary> Z gyro drift estimate rad/s </summary>
+        public  Single omegaIz;
+            /// <summary> average accel_weight </summary>
+        public  Single accel_weight;
+            /// <summary> average renormalisation value </summary>
+        public  Single renorm_val;
+            /// <summary> average error_roll_pitch value </summary>
+        public  Single error_rp;
+            /// <summary> average error_yaw value </summary>
+        public  Single error_yaw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SIMSTATE = 164;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)]
+    public struct mavlink_simstate_t
+    {
+        /// <summary> Roll angle (rad) </summary>
+        public  Single roll;
+            /// <summary> Pitch angle (rad) </summary>
+        public  Single pitch;
+            /// <summary> Yaw angle (rad) </summary>
+        public  Single yaw;
+            /// <summary> X acceleration m/s/s </summary>
+        public  Single xacc;
+            /// <summary> Y acceleration m/s/s </summary>
+        public  Single yacc;
+            /// <summary> Z acceleration m/s/s </summary>
+        public  Single zacc;
+            /// <summary> Angular speed around X axis rad/s </summary>
+        public  Single xgyro;
+            /// <summary> Angular speed around Y axis rad/s </summary>
+        public  Single ygyro;
+            /// <summary> Angular speed around Z axis rad/s </summary>
+        public  Single zgyro;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_HWSTATUS = 165;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_hwstatus_t
+    {
+        /// <summary> board voltage (mV) </summary>
+        public  UInt16 Vcc;
+            /// <summary> I2C error count </summary>
+        public  byte I2Cerr;
+    
+    };
 
-		public byte[] MAVLINK_MESSAGE_LENGTHS = new byte[] {9, 31, 12, 0, 14, 28, 3, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 25, 23, 30, 101, 22, 26, 16, 14, 28, 32, 28, 28, 22, 22, 21, 6, 6, 37, 4, 4, 2, 2, 4, 2, 2, 3, 13, 12, 19, 17, 15, 15, 27, 25, 18, 18, 20, 20, 0, 0, 26, 0, 36, 0, 6, 4, 0, 21, 18, 0, 0, 0, 20, 0, 33, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 42, 33, 0, 0, 0, 0, 0, 0, 0, 18, 32, 32, 20, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 8, 4, 12, 15, 13, 6, 15, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 30, 18, 18, 51, 9, 3};
-		public byte[] MAVLINK_MESSAGE_CRCS = new byte[] {50, 124, 137, 0, 237, 217, 104, 119, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 230, 28, 28, 132, 221, 232, 11, 153, 41, 39, 214, 223, 141, 33, 15, 3, 100, 24, 239, 238, 0, 0, 183, 0, 130, 0, 148, 21, 0, 52, 124, 0, 0, 0, 20, 0, 152, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 63, 54, 0, 0, 0, 0, 0, 0, 0, 19, 102, 158, 208, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 219, 208, 188, 84, 22, 19, 21, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 49, 170, 44, 83, 46, 247};
-		public 		enum MAV_MOUNT_MODE
-		{
-			MAV_MOUNT_MODE_RETRACT=0, /* Load and keep safe position (Roll,Pitch,Yaw) from EEPROM and stop stabilization | */
-			MAV_MOUNT_MODE_NEUTRAL=1, /* Load and keep neutral position (Roll,Pitch,Yaw) from EEPROM. | */
-			MAV_MOUNT_MODE_MAVLINK_TARGETING=2, /* Load neutral position and start MAVLink Roll,Pitch,Yaw control with stabilization | */
-			MAV_MOUNT_MODE_RC_TARGETING=3, /* Load neutral position and start RC Roll,Pitch,Yaw control with stabilization | */
-			MAV_MOUNT_MODE_GPS_POINT=4, /* Load neutral position and start to point to Lat,Lon,Alt | */
-			MAV_MOUNT_MODE_ENUM_END=5, /*  | */
-		};
-
-		public 		enum MAV_CMD
-		{
-			WAYPOINT=16, /* Navigate to MISSION. |Hold time in decimal seconds. (ignored by fixed wing, time to stay at MISSION for rotary wing)| Acceptance radius in meters (if the sphere with this radius is hit, the MISSION counts as reached)| 0 to pass through the WP, if > 0 radius in meters to pass by WP. Positive value for clockwise orbit, negative value for counter-clockwise orbit. Allows trajectory control.| Desired yaw angle at MISSION (rotary wing)| Latitude| Longitude| Altitude|  */
-			LOITER_UNLIM=17, /* Loiter around this MISSION an unlimited amount of time |Empty| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
-			LOITER_TURNS=18, /* Loiter around this MISSION for X turns |Turns| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
-			LOITER_TIME=19, /* Loiter around this MISSION for X seconds |Seconds (decimal)| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
-			RETURN_TO_LAUNCH=20, /* Return to launch location |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			LAND=21, /* Land at location |Empty| Empty| Empty| Desired yaw angle.| Latitude| Longitude| Altitude|  */
-			TAKEOFF=22, /* Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude|  */
-			ROI=80, /* Sets the region of interest (ROI) for a sensor set or the
-		            vehicle itself. This can then be used by the vehicles control
-		            system to control the vehicle attitude and the attitude of various
-		            sensors such as cameras. |Region of intereset mode. (see MAV_ROI enum)| MISSION index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple ROI's)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  */
-			PATHPLANNING=81, /* Control autonomous path planning on the MAV. |0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning| 0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid| Empty| Yaw angle at goal, in compass degrees, [0..360]| Latitude/X of goal| Longitude/Y of goal| Altitude/Z of goal|  */
-			LAST=95, /* NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			CONDITION_DELAY=112, /* Delay mission state machine. |Delay in seconds (decimal)| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			CONDITION_CHANGE_ALT=113, /* Ascend/descend at rate.  Delay mission state machine until desired altitude reached. |Descent / Ascend rate (m/s)| Empty| Empty| Empty| Empty| Empty| Finish Altitude|  */
-			CONDITION_DISTANCE=114, /* Delay mission state machine until within desired distance of next NAV point. |Distance (meters)| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			CONDITION_YAW=115, /* Reach a certain target angle. |target angle: [0-360], 0 is north| speed during yaw change:[deg per second]| direction: negative: counter clockwise, positive: clockwise [-1,1]| relative offset or absolute angle: [ 1,0]| Empty| Empty| Empty|  */
-			CONDITION_LAST=159, /* NOP - This command is only used to mark the upper limit of the CONDITION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			DO_SET_MODE=176, /* Set system mode. |Mode, as defined by ENUM MAV_MODE| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			DO_JUMP=177, /* Jump to the desired command in the mission list.  Repeat this action only the specified number of times |Sequence number| Repeat count| Empty| Empty| Empty| Empty| Empty|  */
-			DO_CHANGE_SPEED=178, /* Change speed and/or throttle set points. |Speed type (0=Airspeed, 1=Ground Speed)| Speed  (m/s, -1 indicates no change)| Throttle  ( Percent, -1 indicates no change)| Empty| Empty| Empty| Empty|  */
-			DO_SET_HOME=179, /* Changes the home location either to the current location or a specified location. |Use current (1=use current location, 0=use specified location)| Empty| Empty| Empty| Latitude| Longitude| Altitude|  */
-			DO_SET_PARAMETER=180, /* Set a system parameter.  Caution!  Use of this command requires knowledge of the numeric enumeration value of the parameter. |Parameter number| Parameter value| Empty| Empty| Empty| Empty| Empty|  */
-			DO_SET_RELAY=181, /* Set a relay to a condition. |Relay number| Setting (1=on, 0=off, others possible depending on system hardware)| Empty| Empty| Empty| Empty| Empty|  */
-			DO_REPEAT_RELAY=182, /* Cycle a relay on and off for a desired number of cyles with a desired period. |Relay number| Cycle count| Cycle time (seconds, decimal)| Empty| Empty| Empty| Empty|  */
-			DO_SET_SERVO=183, /* Set a servo to a desired PWM value. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Empty| Empty| Empty| Empty| Empty|  */
-			DO_REPEAT_SERVO=184, /* Cycle a between its nominal setting and a desired PWM for a desired number of cycles with a desired period. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Cycle count| Cycle time (seconds)| Empty| Empty| Empty|  */
-			DO_CONTROL_VIDEO=200, /* Control onboard camera system. |Camera ID (-1 for all)| Transmission: 0: disabled, 1: enabled compressed, 2: enabled raw| Transmission mode: 0: video stream, >0: single images every n seconds (decimal)| Recording: 0: disabled, 1: enabled compressed, 2: enabled raw| Empty| Empty| Empty|  */
-			DO_DIGICAM_CONFIGURE=202, /* Mission command to configure an on-board camera controller system. |Modes: P, TV, AV, M, Etc| Shutter speed: Divisor number for one second| Aperture: F stop number| ISO number e.g. 80, 100, 200, Etc| Exposure type enumerator| Command Identity| Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)|  */
-			DO_DIGICAM_CONTROL=203, /* Mission command to control an on-board camera controller system. |Session control e.g. show/hide lens| Zoom's absolute position| Zooming step value to offset zoom from the current position| Focus Locking, Unlocking or Re-locking| Shooting Command| Command Identity| Empty|  */
-			DO_MOUNT_CONFIGURE=204, /* Mission command to configure a camera or antenna mount |Mount operation mode (see MAV_MOUNT_MODE enum)| stabilize roll? (1 = yes, 0 = no)| stabilize pitch? (1 = yes, 0 = no)| stabilize yaw? (1 = yes, 0 = no)| Empty| Empty| Empty|  */
-			DO_MOUNT_CONTROL=205, /* Mission command to control a camera or antenna mount |pitch(deg*100) or lat, depending on mount mode.| roll(deg*100) or lon depending on mount mode| yaw(deg*100) or alt (in cm) depending on mount mode| Empty| Empty| Empty| Empty|  */
-			DO_LAST=240, /* NOP - This command is only used to mark the upper limit of the DO commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			PREFLIGHT_CALIBRATION=241, /* Trigger calibration. This command will be only accepted if in pre-flight mode. |Gyro calibration: 0: no, 1: yes| Magnetometer calibration: 0: no, 1: yes| Ground pressure: 0: no, 1: yes| Radio calibration: 0: no, 1: yes| Empty| Empty| Empty|  */
-			PREFLIGHT_SET_SENSOR_OFFSETS=242, /* Set sensor offsets. This command will be only accepted if in pre-flight mode. |Sensor to adjust the offsets for: 0: gyros, 1: accelerometer, 2: magnetometer, 3: barometer, 4: optical flow| X axis offset (or generic dimension 1), in the sensor's raw units| Y axis offset (or generic dimension 2), in the sensor's raw units| Z axis offset (or generic dimension 3), in the sensor's raw units| Generic dimension 4, in the sensor's raw units| Generic dimension 5, in the sensor's raw units| Generic dimension 6, in the sensor's raw units|  */
-			PREFLIGHT_STORAGE=245, /* Request storage of different parameter values and logs. This command will be only accepted if in pre-flight mode. |Parameter storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Mission storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Reserved| Reserved| Empty| Empty| Empty|  */
-			PREFLIGHT_REBOOT_SHUTDOWN=246, /* Request the reboot or shutdown of system components. |0: Do nothing for autopilot, 1: Reboot autopilot, 2: Shutdown autopilot.| 0: Do nothing for onboard computer, 1: Reboot onboard computer, 2: Shutdown onboard computer.| Reserved| Reserved| Empty| Empty| Empty|  */
-			OVERRIDE_GOTO=252, /* Hold / continue the current action |MAV_GOTO_DO_HOLD: hold MAV_GOTO_DO_CONTINUE: continue with next item in mission plan| MAV_GOTO_HOLD_AT_CURRENT_POSITION: Hold at current position MAV_GOTO_HOLD_AT_SPECIFIED_POSITION: hold at specified position| MAV_FRAME coordinate frame of hold point| Desired yaw angle in degrees| Latitude / X position| Longitude / Y position| Altitude / Z position|  */
-			MISSION_START=300, /* start running a mission |first_item: the first mission item to run| last_item:  the last mission item to run (after this item is run, the mission ends)|  */
-			ENUM_END=301, /*  | */
-		};
-
-		public const byte MAVLINK_MSG_ID_AP_ADC = 153;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_ap_adc_t
-		{
-		 public ushort adc1; /// ADC output 1
-		 public ushort adc2; /// ADC output 2
-		 public ushort adc3; /// ADC output 3
-		 public ushort adc4; /// ADC output 4
-		 public ushort adc5; /// ADC output 5
-		 public ushort adc6; /// ADC output 6
-		};
-
-		public const byte MAVLINK_MSG_ID_AP_ADC_LEN = 12;
-		public const byte MAVLINK_MSG_ID_DIGICAM_CONFIGURE = 154;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_digicam_configure_t
-		{
-		public float extra_value; /// Correspondent value to given extra_param
-		 public ushort shutter_speed; /// Divisor number //e.g. 1000 means 1/1000 (0 means ignore)
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte mode; /// Mode enumeration from 1 to N //P, TV, AV, M, Etc (0 means ignore)
-		 public byte aperture; /// F stop number x 10 //e.g. 28 means 2.8 (0 means ignore)
-		 public byte iso; /// ISO enumeration from 1 to N //e.g. 80, 100, 200, Etc (0 means ignore)
-		 public byte exposure_type; /// Exposure type enumeration from 1 to N (0 means ignore)
-		 public byte command_id; /// Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once
-		 public byte engine_cut_off; /// Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)
-		 public byte extra_param; /// Extra parameters enumeration (0 means ignore)
-		};
-
-		public const byte MAVLINK_MSG_ID_DIGICAM_CONFIGURE_LEN = 15;
-		public const byte MAVLINK_MSG_ID_DIGICAM_CONTROL = 155;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_digicam_control_t
-		{
-		public float extra_value; /// Correspondent value to given extra_param
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte session; /// 0: stop, 1: start or keep it up //Session control e.g. show/hide lens
-		 public byte zoom_pos; /// 1 to N //Zoom's absolute position (0 means ignore)
-		 public byte zoom_step; /// -100 to 100 //Zooming step value to offset zoom from the current position
-		 public byte focus_lock; /// 0: unlock focus or keep unlocked, 1: lock focus or keep locked, 3: re-lock focus
-		 public byte shot; /// 0: ignore, 1: shot or start filming
-		 public byte command_id; /// Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once
-		 public byte extra_param; /// Extra parameters enumeration (0 means ignore)
-		};
-
-		public const byte MAVLINK_MSG_ID_DIGICAM_CONTROL_LEN = 13;
-		public const byte MAVLINK_MSG_ID_MEMINFO = 152;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_meminfo_t
-		{
-		 public ushort brkval; /// heap top
-		 public ushort freemem; /// free memory
-		};
-
-		public const byte MAVLINK_MSG_ID_MEMINFO_LEN = 4;
-		public const byte MAVLINK_MSG_ID_MOUNT_CONFIGURE = 156;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mount_configure_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte mount_mode; /// mount operating mode (see MAV_MOUNT_MODE enum)
-		 public byte stab_roll; /// (1 = yes, 0 = no)
-		 public byte stab_pitch; /// (1 = yes, 0 = no)
-		 public byte stab_yaw; /// (1 = yes, 0 = no)
-		};
-
-		public const byte MAVLINK_MSG_ID_MOUNT_CONFIGURE_LEN = 6;
-		public const byte MAVLINK_MSG_ID_MOUNT_CONTROL = 157;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mount_control_t
-		{
-		 public int input_a; /// pitch(deg*100) or lat, depending on mount mode
-		 public int input_b; /// roll(deg*100) or lon depending on mount mode
-		 public int input_c; /// yaw(deg*100) or alt (in cm) depending on mount mode
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte save_position; /// if "1" it will save current trimmed position on EEPROM (just valid for NEUTRAL and LANDING)
-		};
-
-		public const byte MAVLINK_MSG_ID_MOUNT_CONTROL_LEN = 15;
-		public const byte MAVLINK_MSG_ID_MOUNT_STATUS = 158;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mount_status_t
-		{
-		 public int pointing_a; /// pitch(deg*100) or lat, depending on mount mode
-		 public int pointing_b; /// roll(deg*100) or lon depending on mount mode
-		 public int pointing_c; /// yaw(deg*100) or alt (in cm) depending on mount mode
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_MOUNT_STATUS_LEN = 14;
-		public const byte MAVLINK_MSG_ID_SENSOR_OFFSETS = 150;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_sensor_offsets_t
-		{
-		public float mag_declination; /// magnetic declination (radians)
-		 public int raw_press; /// raw pressure from barometer
-		 public int raw_temp; /// raw temperature from barometer
-		public float gyro_cal_x; /// gyro X calibration
-		public float gyro_cal_y; /// gyro Y calibration
-		public float gyro_cal_z; /// gyro Z calibration
-		public float accel_cal_x; /// accel X calibration
-		public float accel_cal_y; /// accel Y calibration
-		public float accel_cal_z; /// accel Z calibration
-		 public short mag_ofs_x; /// magnetometer X offset
-		 public short mag_ofs_y; /// magnetometer Y offset
-		 public short mag_ofs_z; /// magnetometer Z offset
-		};
-
-		public const byte MAVLINK_MSG_ID_SENSOR_OFFSETS_LEN = 42;
-		public const byte MAVLINK_MSG_ID_SET_MAG_OFFSETS = 151;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_mag_offsets_t
-		{
-		 public short mag_ofs_x; /// magnetometer X offset
-		 public short mag_ofs_y; /// magnetometer Y offset
-		 public short mag_ofs_z; /// magnetometer Z offset
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_SET_MAG_OFFSETS_LEN = 8;
-		public 		enum MAV_AUTOPILOT
-		{
-			MAV_AUTOPILOT_GENERIC=0, /* Generic autopilot, full support for everything | */
-			MAV_AUTOPILOT_PIXHAWK=1, /* PIXHAWK autopilot, http://pixhawk.ethz.ch | */
-			MAV_AUTOPILOT_SLUGS=2, /* SLUGS autopilot, http://slugsuav.soe.ucsc.edu | */
-			MAV_AUTOPILOT_ARDUPILOTMEGA=3, /* ArduPilotMega / ArduCopter, http://diydrones.com | */
-			MAV_AUTOPILOT_OPENPILOT=4, /* OpenPilot, http://openpilot.org | */
-			MAV_AUTOPILOT_GENERIC_WAYPOINTS_ONLY=5, /* Generic autopilot only supporting simple waypoints | */
-			MAV_AUTOPILOT_GENERIC_WAYPOINTS_AND_SIMPLE_NAVIGATION_ONLY=6, /* Generic autopilot supporting waypoints and other simple navigation commands | */
-			MAV_AUTOPILOT_GENERIC_MISSION_FULL=7, /* Generic autopilot supporting the full mission command set | */
-			MAV_AUTOPILOT_INVALID=8, /* No valid autopilot, e.g. a GCS or other MAVLink component | */
-			MAV_AUTOPILOT_PPZ=9, /* PPZ UAV - http://nongnu.org/paparazzi | */
-			MAV_AUTOPILOT_UDB=10, /* UAV Dev Board | */
-			MAV_AUTOPILOT_FP=11, /* FlexiPilot | */
-			MAV_AUTOPILOT_ENUM_END=12, /*  | */
-		};
-
-		public 		enum MAV_MODE_FLAG
-		{
-			MAV_MODE_FLAG_CUSTOM_MODE_ENABLED=1, /* 0b00000001 Reserved for future use. | */
-			MAV_MODE_FLAG_TEST_ENABLED=2, /* 0b00000010 system has a test mode enabled. This flag is intended for temporary system tests and should not be used for stable implementations. | */
-			MAV_MODE_FLAG_AUTO_ENABLED=4, /* 0b00000100 autonomous mode enabled, system finds its own goal positions. Guided flag can be set or not, depends on the actual implementation. | */
-			MAV_MODE_FLAG_GUIDED_ENABLED=8, /* 0b00001000 guided mode enabled, system flies MISSIONs / mission items. | */
-			MAV_MODE_FLAG_STABILIZE_ENABLED=16, /* 0b00010000 system stabilizes electronically its attitude (and optionally position). It needs however further control inputs to move around. | */
-			MAV_MODE_FLAG_HIL_ENABLED=32, /* 0b00100000 hardware in the loop simulation. All motors / actuators are blocked, but internal software is full operational. | */
-			MAV_MODE_FLAG_MANUAL_INPUT_ENABLED=64, /* 0b01000000 remote control input is enabled. | */
-			MAV_MODE_FLAG_SAFETY_ARMED=128, /* 0b10000000 MAV safety set to armed. Motors are enabled / running / can start. Ready to fly. | */
-			MAV_MODE_FLAG_ENUM_END=129, /*  | */
-		};
-
-		public 		enum MAV_MODE_FLAG_DECODE_POSITION
-		{
-			MAV_MODE_FLAG_DECODE_POSITION_CUSTOM_MODE=1, /* Eighth bit: 00000001 | */
-			MAV_MODE_FLAG_DECODE_POSITION_TEST=2, /* Seventh bit: 00000010 | */
-			MAV_MODE_FLAG_DECODE_POSITION_AUTO=4, /* Sixt bit:   00000100 | */
-			MAV_MODE_FLAG_DECODE_POSITION_GUIDED=8, /* Fifth bit:  00001000 | */
-			MAV_MODE_FLAG_DECODE_POSITION_STABILIZE=16, /* Fourth bit: 00010000 | */
-			MAV_MODE_FLAG_DECODE_POSITION_HIL=32, /* Third bit:  00100000 | */
-			MAV_MODE_FLAG_DECODE_POSITION_MANUAL=64, /* Second bit: 01000000 | */
-			MAV_MODE_FLAG_DECODE_POSITION_SAFETY=128, /* First bit:  10000000 | */
-			MAV_MODE_FLAG_DECODE_POSITION_ENUM_END=129, /*  | */
-		};
-
-		public 		enum MAV_GOTO
-		{
-			MAV_GOTO_DO_HOLD=0, /* Hold at the current position. | */
-			MAV_GOTO_DO_CONTINUE=1, /* Continue with the next item in mission execution. | */
-			MAV_GOTO_HOLD_AT_CURRENT_POSITION=2, /* Hold at the current position of the system | */
-			MAV_GOTO_HOLD_AT_SPECIFIED_POSITION=3, /* Hold at the position specified in the parameters of the DO_HOLD action | */
-			MAV_GOTO_ENUM_END=4, /*  | */
-		};
-
-		public 		enum MAV_MODE
-		{
-			MAV_MODE_PREFLIGHT=0, /* System is not ready to fly, booting, calibrating, etc. No flag is set. | */
-			MAV_MODE_MANUAL_DISARMED=64, /* System is allowed to be active, under manual (RC) control, no stabilization | */
-			MAV_MODE_TEST_DISARMED=66, /* UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only. | */
-			MAV_MODE_STABILIZE_DISARMED=80, /* System is allowed to be active, under assisted RC control. | */
-			MAV_MODE_GUIDED_DISARMED=88, /* System is allowed to be active, under autonomous control, manual setpoint | */
-			MAV_MODE_AUTO_DISARMED=92, /* System is allowed to be active, under autonomous control and navigation (the trajectory is decided onboard and not pre-programmed by MISSIONs) | */
-			MAV_MODE_MANUAL_ARMED=192, /* System is allowed to be active, under manual (RC) control, no stabilization | */
-			MAV_MODE_TEST_ARMED=194, /* UNDEFINED mode. This solely depends on the autopilot - use with caution, intended for developers only. | */
-			MAV_MODE_STABILIZE_ARMED=208, /* System is allowed to be active, under assisted RC control. | */
-			MAV_MODE_GUIDED_ARMED=216, /* System is allowed to be active, under autonomous control, manual setpoint | */
-			MAV_MODE_AUTO_ARMED=220, /* System is allowed to be active, under autonomous control and navigation (the trajectory is decided onboard and not pre-programmed by MISSIONs) | */
-			MAV_MODE_ENUM_END=221, /*  | */
-		};
-
-		public 		enum MAV_STATE
-		{
-			MAV_STATE_UNINIT=0, /* Uninitialized system, state is unknown. | */
-			MAV_STATE_BOOT=1, /* System is booting up. | */
-			MAV_STATE_CALIBRATING=2, /* System is calibrating and not flight-ready. | */
-			MAV_STATE_STANDBY=3, /* System is grounded and on standby. It can be launched any time. | */
-			MAV_STATE_ACTIVE=4, /* System is active and might be already airborne. Motors are engaged. | */
-			MAV_STATE_CRITICAL=5, /* System is in a non-normal flight mode. It can however still navigate. | */
-			MAV_STATE_EMERGENCY=6, /* System is in a non-normal flight mode. It lost control over parts or over the whole airframe. It is in mayday and going down. | */
-			MAV_STATE_POWEROFF=7, /* System just initialized its power-down sequence, will shut down now. | */
-			MAV_STATE_ENUM_END=8, /*  | */
-		};
-
-		public 		enum MAV_TYPE
-		{
-			MAV_TYPE_GENERIC=0, /* Generic micro air vehicle. | */
-			MAV_TYPE_FIXED_WING=1, /* Fixed wing aircraft. | */
-			MAV_TYPE_QUADROTOR=2, /* Quadrotor | */
-			MAV_TYPE_COAXIAL=3, /* Coaxial helicopter | */
-			MAV_TYPE_HELICOPTER=4, /* Normal helicopter with tail rotor. | */
-			MAV_TYPE_ANTENNA_TRACKER=5, /* Ground installation | */
-			MAV_TYPE_GCS=6, /* Operator control unit / ground control station | */
-			MAV_TYPE_AIRSHIP=7, /* Airship, controlled | */
-			MAV_TYPE_FREE_BALLOON=8, /* Free balloon, uncontrolled | */
-			MAV_TYPE_ROCKET=9, /* Rocket | */
-			MAV_TYPE_GROUND_ROVER=10, /* Ground rover | */
-			MAV_TYPE_SURFACE_BOAT=11, /* Surface vessel, boat, ship | */
-			MAV_TYPE_SUBMARINE=12, /* Submarine | */
-			MAV_TYPE_HEXAROTOR=13, /* Hexarotor | */
-			MAV_TYPE_OCTOROTOR=14, /* Octorotor | */
-			MAV_TYPE_TRICOPTER=15, /* Octorotor | */
-			MAV_TYPE_FLAPPING_WING=16, /* Flapping wing | */
-			MAV_TYPE_ENUM_END=17, /*  | */
-		};
-
-		public 		enum MAV_COMPONENT
-		{
-			MAV_COMP_ID_ALL=0, /*  | */
-			MAV_COMP_ID_CAMERA=100, /*  | */
-			MAV_COMP_ID_SERVO1=140, /*  | */
-			MAV_COMP_ID_SERVO2=141, /*  | */
-			MAV_COMP_ID_SERVO3=142, /*  | */
-			MAV_COMP_ID_SERVO4=143, /*  | */
-			MAV_COMP_ID_SERVO5=144, /*  | */
-			MAV_COMP_ID_SERVO6=145, /*  | */
-			MAV_COMP_ID_SERVO7=146, /*  | */
-			MAV_COMP_ID_SERVO8=147, /*  | */
-			MAV_COMP_ID_SERVO9=148, /*  | */
-			MAV_COMP_ID_SERVO10=149, /*  | */
-			MAV_COMP_ID_SERVO11=150, /*  | */
-			MAV_COMP_ID_SERVO12=151, /*  | */
-			MAV_COMP_ID_SERVO13=152, /*  | */
-			MAV_COMP_ID_SERVO14=153, /*  | */
-			MAV_COMP_ID_MAPPER=180, /*  | */
-			MAV_COMP_ID_MISSIONPLANNER=190, /*  | */
-			MAV_COMP_ID_PATHPLANNER=195, /*  | */
-			MAV_COMP_ID_IMU=200, /*  | */
-			MAV_COMP_ID_IMU_2=201, /*  | */
-			MAV_COMP_ID_IMU_3=202, /*  | */
-			MAV_COMP_ID_GPS=220, /*  | */
-			MAV_COMP_ID_UDP_BRIDGE=240, /*  | */
-			MAV_COMP_ID_UART_BRIDGE=241, /*  | */
-			MAV_COMP_ID_SYSTEM_CONTROL=250, /*  | */
-			MAV_COMPONENT_ENUM_END=251, /*  | */
-		};
-
-		public 		enum MAV_FRAME
-		{
-			MAV_FRAME_GLOBAL=0, /* Global coordinate frame, WGS84 coordinate system. First value / x: latitude, second value / y: longitude, third value / z: positive altitude over mean sea level (MSL) | */
-			MAV_FRAME_LOCAL_NED=1, /* Local coordinate frame, Z-up (x: north, y: east, z: down). | */
-			MAV_FRAME_MISSION=2, /* NOT a coordinate frame, indicates a mission command. | */
-			MAV_FRAME_GLOBAL_RELATIVE_ALT=3, /* Global coordinate frame, WGS84 coordinate system, relative altitude over ground with respect to the home position. First value / x: latitude, second value / y: longitude, third value / z: positive altitude with 0 being at the altitude of the home location. | */
-			MAV_FRAME_LOCAL_ENU=4, /* Local coordinate frame, Z-down (x: east, y: north, z: up) | */
-			MAV_FRAME_ENUM_END=5, /*  | */
-		};
-
-		public 		enum MAV_DATA_STREAM
-		{
-			MAV_DATA_STREAM_ALL=0, /* Enable all data streams | */
-			MAV_DATA_STREAM_RAW_SENSORS=1, /* Enable IMU_RAW, GPS_RAW, GPS_STATUS packets. | */
-			MAV_DATA_STREAM_EXTENDED_STATUS=2, /* Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS | */
-			MAV_DATA_STREAM_RC_CHANNELS=3, /* Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW | */
-			MAV_DATA_STREAM_RAW_CONTROLLER=4, /* Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT. | */
-			MAV_DATA_STREAM_POSITION=6, /* Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages. | */
-			MAV_DATA_STREAM_EXTRA1=10, /* Dependent on the autopilot | */
-			MAV_DATA_STREAM_EXTRA2=11, /* Dependent on the autopilot | */
-			MAV_DATA_STREAM_EXTRA3=12, /* Dependent on the autopilot | */
-			MAV_DATA_STREAM_ENUM_END=13, /*  | */
-		};
-
-		public 		enum MAV_ROI
-		{
-			MAV_ROI_NONE=0, /* No region of interest. | */
-			MAV_ROI_WPNEXT=1, /* Point toward next MISSION. | */
-			MAV_ROI_WPINDEX=2, /* Point toward given MISSION. | */
-			MAV_ROI_LOCATION=3, /* Point toward fixed location. | */
-			MAV_ROI_TARGET=4, /* Point toward of given id. | */
-			MAV_ROI_ENUM_END=5, /*  | */
-		};
-
-		public 		enum ACK
-		{
-			ACK_OK=1, /* Command / mission item is ok. | */
-			ACK_ERR_FAIL=2, /* Generic error message if none of the other reasons fails or if no detailed error reporting is implemented. | */
-			ACK_ERR_ACCESS_DENIED=3, /* The system is refusing to accept this command from this source / communication partner. | */
-			ACK_ERR_NOT_SUPPORTED=4, /* Command or mission item is not supported, other commands would be accepted. | */
-			ACK_ERR_COORDINATE_FRAME_NOT_SUPPORTED=5, /* The coordinate frame of this command / mission item is not supported. | */
-			ACK_ERR_COORDINATES_OUT_OF_RANGE=6, /* The coordinate frame of this command is ok, but he coordinate values exceed the safety limits of this system. This is a generic error, please use the more specific error messages below if possible. | */
-			ACK_ERR_X_LAT_OUT_OF_RANGE=7, /* The X or latitude value is out of range. | */
-			ACK_ERR_Y_LON_OUT_OF_RANGE=8, /* The Y or longitude value is out of range. | */
-			ACK_ERR_Z_ALT_OUT_OF_RANGE=9, /* The Z or altitude value is out of range. | */
-			ACK_ENUM_END=10, /*  | */
-		};
-
-		public 		enum MAV_VAR
-		{
-			MAV_VAR_FLOAT=0, /* 32 bit float | */
-			MAV_VAR_UINT8=1, /* 8 bit unsigned integer | */
-			MAV_VAR_INT8=2, /* 8 bit signed integer | */
-			MAV_VAR_UINT16=3, /* 16 bit unsigned integer | */
-			MAV_VAR_INT16=4, /* 16 bit signed integer | */
-			MAV_VAR_UINT32=5, /* 32 bit unsigned integer | */
-			MAV_VAR_INT32=6, /* 32 bit signed integer | */
-			MAV_VAR_ENUM_END=7, /*  | */
-		};
-
-		public 		enum MAV_RESULT
-		{
-			MAV_RESULT_ACCEPTED=0, /* Command ACCEPTED and EXECUTED | */
-			MAV_RESULT_TEMPORARILY_REJECTED=1, /* Command TEMPORARY REJECTED/DENIED | */
-			MAV_RESULT_DENIED=2, /* Command PERMANENTLY DENIED | */
-			MAV_RESULT_UNSUPPORTED=3, /* Command UNKNOWN/UNSUPPORTED | */
-			MAV_RESULT_FAILED=4, /* Command executed, but failed | */
-			MAV_RESULT_ENUM_END=5, /*  | */
-		};
-
-		public 		enum MAV_MISSION_RESULT
-		{
-			MAV_MISSION_ACCEPTED=0, /* mission accepted OK | */
-			MAV_MISSION_ERROR=1, /* generic error / not accepting mission commands at all right now | */
-			MAV_MISSION_UNSUPPORTED_FRAME=2, /* coordinate frame is not supported | */
-			MAV_MISSION_UNSUPPORTED=3, /* command is not supported | */
-			MAV_MISSION_NO_SPACE=4, /* mission item exceeds storage space | */
-			MAV_MISSION_INVALID=5, /* one of the parameters has an invalid value | */
-			MAV_MISSION_INVALID_PARAM1=6, /* param1 has an invalid value | */
-			MAV_MISSION_INVALID_PARAM2=7, /* param2 has an invalid value | */
-			MAV_MISSION_INVALID_PARAM3=8, /* param3 has an invalid value | */
-			MAV_MISSION_INVALID_PARAM4=9, /* param4 has an invalid value | */
-			MAV_MISSION_INVALID_PARAM5_X=10, /* x/param5 has an invalid value | */
-			MAV_MISSION_INVALID_PARAM6_Y=11, /* y/param6 has an invalid value | */
-			MAV_MISSION_INVALID_PARAM7=12, /* param7 has an invalid value | */
-			MAV_MISSION_INVALID_SEQUENCE=13, /* received waypoint out of sequence | */
-			MAV_MISSION_DENIED=14, /* not accepting any mission commands from this communication partner | */
-			MAV_MISSION_RESULT_ENUM_END=15, /*  | */
-		};
-
-		public const byte MAVLINK_MSG_ID_ATTITUDE = 30;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_attitude_t
-		{
-		 public uint time_boot_ms; /// Timestamp (milliseconds since system boot)
-		public float roll; /// Roll angle (rad)
-		public float pitch; /// Pitch angle (rad)
-		public float yaw; /// Yaw angle (rad)
-		public float rollspeed; /// Roll angular speed (rad/s)
-		public float pitchspeed; /// Pitch angular speed (rad/s)
-		public float yawspeed; /// Yaw angular speed (rad/s)
-		};
-
-		public const byte MAVLINK_MSG_ID_ATTITUDE_LEN = 28;
-		public const byte MAVLINK_MSG_ID_ATTITUDE_QUATERNION = 31;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_attitude_quaternion_t
-		{
-		 public uint time_boot_ms; /// Timestamp (milliseconds since system boot)
-		public float q1; /// Quaternion component 1
-		public float q2; /// Quaternion component 2
-		public float q3; /// Quaternion component 3
-		public float q4; /// Quaternion component 4
-		public float rollspeed; /// Roll angular speed (rad/s)
-		public float pitchspeed; /// Pitch angular speed (rad/s)
-		public float yawspeed; /// Yaw angular speed (rad/s)
-		};
-
-		public const byte MAVLINK_MSG_ID_ATTITUDE_QUATERNION_LEN = 32;
-		public const byte MAVLINK_MSG_ID_AUTH_KEY = 7;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_auth_key_t
-		{
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=32)] 
-		 public byte[] key; /// key
-		};
-
-		public const byte MAVLINK_MSG_ID_AUTH_KEY_LEN = 32;
-		public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL = 5;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_change_operator_control_t
-		{
-		 public byte target_system; /// System the GCS requests control for
-		 public byte control_request; /// 0: request control of this MAV, 1: Release control of this MAV
-		 public byte version; /// 0: key as plaintext, 1-255: future, different hashing/encryption variants. The GCS should in general use the safest mode possible initially and then gradually move down the encryption level if it gets a NACK message indicating an encryption mismatch.
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=25)] 
-		 public byte[] passkey; /// Password / Key, depending on version plaintext or encrypted. 25 or less characters, NULL terminated. The characters may involve A-Z, a-z, 0-9, and "!?,.-"
-		};
-
-		public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_LEN = 28;
-		public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK = 6;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_change_operator_control_ack_t
-		{
-		 public byte gcs_system_id; /// ID of the GCS this message 
-		 public byte control_request; /// 0: request control of this MAV, 1: Release control of this MAV
-		 public byte ack; /// 0: ACK, 1: NACK: Wrong passkey, 2: NACK: Unsupported passkey encryption method, 3: NACK: Already under control
-		};
-
-		public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK_LEN = 3;
-		public const byte MAVLINK_MSG_ID_COMMAND_ACK = 77;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_command_ack_t
-		{
-		 public ushort command; /// Command ID, as defined by MAV_CMD enum.
-		 public byte result; /// See MAV_RESULT enum
-		};
-
-		public const byte MAVLINK_MSG_ID_COMMAND_ACK_LEN = 3;
-		public const byte MAVLINK_MSG_ID_COMMAND_LONG = 76;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_command_long_t
-		{
-		public float param1; /// Parameter 1, as defined by MAV_CMD enum.
-		public float param2; /// Parameter 2, as defined by MAV_CMD enum.
-		public float param3; /// Parameter 3, as defined by MAV_CMD enum.
-		public float param4; /// Parameter 4, as defined by MAV_CMD enum.
-		public float param5; /// Parameter 5, as defined by MAV_CMD enum.
-		public float param6; /// Parameter 6, as defined by MAV_CMD enum.
-		public float param7; /// Parameter 7, as defined by MAV_CMD enum.
-		 public ushort command; /// Command ID, as defined by MAV_CMD enum.
-		 public byte target_system; /// System which should execute the command
-		 public byte target_component; /// Component which should execute the command, 0 for all components
-		 public byte confirmation; /// 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
-		};
-
-		public const byte MAVLINK_MSG_ID_COMMAND_LONG_LEN = 33;
-		public const byte MAVLINK_MSG_ID_DATA_STREAM = 67;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_data_stream_t
-		{
-		 public ushort message_rate; /// The requested interval between two messages of this type
-		 public byte stream_id; /// The ID of the requested data stream
-		 public byte on_off; /// 1 stream is enabled, 0 stream is stopped.
-		};
-
-		public const byte MAVLINK_MSG_ID_DATA_STREAM_LEN = 4;
-		public const byte MAVLINK_MSG_ID_DEBUG = 254;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_debug_t
-		{
-		 public uint time_boot_ms; /// Timestamp (milliseconds since system boot)
-		public float value; /// DEBUG value
-		 public byte ind; /// index of debug variable
-		};
-
-		public const byte MAVLINK_MSG_ID_DEBUG_LEN = 9;
-		public const byte MAVLINK_MSG_ID_DEBUG_VECT = 250;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_debug_vect_t
-		{
-		 public ulong time_usec; /// Timestamp
-		public float x; /// x
-		public float y; /// y
-		public float z; /// z
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=10)] 
-		 public byte[] name; /// Name
-		};
-
-		public const byte MAVLINK_MSG_ID_DEBUG_VECT_LEN = 30;
-		public const byte MAVLINK_MSG_ID_EXTENDED_MESSAGE = 255;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_extended_message_t
-		{
-		 public byte target_system; /// System which should execute the command
-		 public byte target_component; /// Component which should execute the command, 0 for all components
-		 public byte protocol_flags; /// Retransmission / ACK flags
-		};
-
-		public const byte MAVLINK_MSG_ID_EXTENDED_MESSAGE_LEN = 3;
-		public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_INT = 33;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_global_position_int_t
-		{
-		 public uint time_boot_ms; /// Timestamp (milliseconds since system boot)
-		 public int lat; /// Latitude, expressed as * 1E7
-		 public int lon; /// Longitude, expressed as * 1E7
-		 public int alt; /// Altitude in meters, expressed as * 1000 (millimeters), above MSL
-		 public int relative_alt; /// Altitude above ground in meters, expressed as * 1000 (millimeters)
-		 public short vx; /// Ground X Speed (Latitude), expressed as m/s * 100
-		 public short vy; /// Ground Y Speed (Longitude), expressed as m/s * 100
-		 public short vz; /// Ground Z Speed (Altitude), expressed as m/s * 100
-		 public ushort hdg; /// Compass heading in degrees * 100, 0.0..359.99 degrees. If unknown, set to: 65535
-		};
-
-		public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_INT_LEN = 28;
-		public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_SETPOINT_INT = 52;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_global_position_setpoint_int_t
-		{
-		 public int latitude; /// WGS84 Latitude position in degrees * 1E7
-		 public int longitude; /// WGS84 Longitude position in degrees * 1E7
-		 public int altitude; /// WGS84 Altitude in meters * 1000 (positive for up)
-		 public short yaw; /// Desired yaw angle in degrees * 100
-		 public byte coordinate_frame; /// Coordinate frame - valid values are only MAV_FRAME_GLOBAL or MAV_FRAME_GLOBAL_RELATIVE_ALT
-		};
-
-		public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_SETPOINT_INT_LEN = 15;
-		public const byte MAVLINK_MSG_ID_GLOBAL_VISION_POSITION_ESTIMATE = 101;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_global_vision_position_estimate_t
-		{
-		 public ulong usec; /// Timestamp (milliseconds)
-		public float x; /// Global X position
-		public float y; /// Global Y position
-		public float z; /// Global Z position
-		public float roll; /// Roll angle in rad
-		public float pitch; /// Pitch angle in rad
-		public float yaw; /// Yaw angle in rad
-		};
-
-		public const byte MAVLINK_MSG_ID_GLOBAL_VISION_POSITION_ESTIMATE_LEN = 32;
-		public const byte MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN = 49;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_gps_global_origin_t
-		{
-		 public int latitude; /// Latitude (WGS84), expressed as * 1E7
-		 public int longitude; /// Longitude (WGS84), expressed as * 1E7
-		 public int altitude; /// Altitude(WGS84), expressed as * 1000
-		};
-
-		public const byte MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN_LEN = 12;
-		public const byte MAVLINK_MSG_ID_GPS_RAW_INT = 24;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_gps_raw_int_t
-		{
-		 public ulong time_usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		 public int lat; /// Latitude in 1E7 degrees
-		 public int lon; /// Longitude in 1E7 degrees
-		 public int alt; /// Altitude in 1E3 meters (millimeters) above MSL
-		 public ushort eph; /// GPS HDOP horizontal dilution of position in cm (m*100). If unknown, set to: 65535
-		 public ushort epv; /// GPS VDOP horizontal dilution of position in cm (m*100). If unknown, set to: 65535
-		 public ushort vel; /// GPS ground speed (m/s * 100). If unknown, set to: 65535
-		 public ushort cog; /// Course over ground (NOT heading, but direction of movement) in degrees * 100, 0.0..359.99 degrees. If unknown, set to: 65535
-		 public byte fix_type; /// 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.
-		 public byte satellites_visible; /// Number of satellites visible. If unknown, set to 255
-		};
-
-		public const byte MAVLINK_MSG_ID_GPS_RAW_INT_LEN = 30;
-		public const byte MAVLINK_MSG_ID_GPS_STATUS = 25;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_gps_status_t
-		{
-		 public byte satellites_visible; /// Number of satellites visible
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=20)] 
-		 public byte[] satellite_prn; /// Global satellite ID
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=20)] 
-		 public byte[] satellite_used; /// 0: Satellite not used, 1: used for localization
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=20)] 
-		 public byte[] satellite_elevation; /// Elevation (0: right on top of receiver, 90: on the horizon) of satellite
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=20)] 
-		 public byte[] satellite_azimuth; /// Direction of satellite, 0: 0 deg, 255: 360 deg.
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=20)] 
-		 public byte[] satellite_snr; /// Signal to noise ratio of satellite
-		};
-
-		public const byte MAVLINK_MSG_ID_GPS_STATUS_LEN = 101;
-		public const byte MAVLINK_MSG_ID_HEARTBEAT = 0;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_heartbeat_t
-		{
-		 public uint custom_mode; /// Navigation mode bitfield, see MAV_AUTOPILOT_CUSTOM_MODE ENUM for some examples. This field is autopilot-specific.
-		 public byte type; /// Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)
-		 public byte autopilot; /// Autopilot type / class. defined in MAV_CLASS ENUM
-		 public byte base_mode; /// System mode bitfield, see MAV_MODE_FLAGS ENUM in mavlink/include/mavlink_types.h
-		 public byte system_status; /// System status flag, see MAV_STATUS ENUM
-		 public byte mavlink_version; /// MAVLink version
-		};
-
-		public const byte MAVLINK_MSG_ID_HEARTBEAT_LEN = 9;
-		public const byte MAVLINK_MSG_ID_HIL_CONTROLS = 91;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_hil_controls_t
-		{
-		 public ulong time_usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		public float roll_ailerons; /// Control output -1 .. 1
-		public float pitch_elevator; /// Control output -1 .. 1
-		public float yaw_rudder; /// Control output -1 .. 1
-		public float throttle; /// Throttle 0 .. 1
-		public float aux1; /// Aux 1, -1 .. 1
-		public float aux2; /// Aux 2, -1 .. 1
-		public float aux3; /// Aux 3, -1 .. 1
-		public float aux4; /// Aux 4, -1 .. 1
-		 public byte mode; /// System mode (MAV_MODE)
-		 public byte nav_mode; /// Navigation mode (MAV_NAV_MODE)
-		};
-
-		public const byte MAVLINK_MSG_ID_HIL_CONTROLS_LEN = 42;
-		public const byte MAVLINK_MSG_ID_HIL_RC_INPUTS_RAW = 92;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_hil_rc_inputs_raw_t
-		{
-		 public ulong time_usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		 public ushort chan1_raw; /// RC channel 1 value, in microseconds
-		 public ushort chan2_raw; /// RC channel 2 value, in microseconds
-		 public ushort chan3_raw; /// RC channel 3 value, in microseconds
-		 public ushort chan4_raw; /// RC channel 4 value, in microseconds
-		 public ushort chan5_raw; /// RC channel 5 value, in microseconds
-		 public ushort chan6_raw; /// RC channel 6 value, in microseconds
-		 public ushort chan7_raw; /// RC channel 7 value, in microseconds
-		 public ushort chan8_raw; /// RC channel 8 value, in microseconds
-		 public ushort chan9_raw; /// RC channel 9 value, in microseconds
-		 public ushort chan10_raw; /// RC channel 10 value, in microseconds
-		 public ushort chan11_raw; /// RC channel 11 value, in microseconds
-		 public ushort chan12_raw; /// RC channel 12 value, in microseconds
-		 public byte rssi; /// Receive signal strength indicator, 0: 0%, 255: 100%
-		};
-
-		public const byte MAVLINK_MSG_ID_HIL_RC_INPUTS_RAW_LEN = 33;
-		public const byte MAVLINK_MSG_ID_HIL_STATE = 90;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_hil_state_t
-		{
-		 public ulong time_usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		public float roll; /// Roll angle (rad)
-		public float pitch; /// Pitch angle (rad)
-		public float yaw; /// Yaw angle (rad)
-		public float rollspeed; /// Roll angular speed (rad/s)
-		public float pitchspeed; /// Pitch angular speed (rad/s)
-		public float yawspeed; /// Yaw angular speed (rad/s)
-		 public int lat; /// Latitude, expressed as * 1E7
-		 public int lon; /// Longitude, expressed as * 1E7
-		 public int alt; /// Altitude in meters, expressed as * 1000 (millimeters)
-		 public short vx; /// Ground X Speed (Latitude), expressed as m/s * 100
-		 public short vy; /// Ground Y Speed (Longitude), expressed as m/s * 100
-		 public short vz; /// Ground Z Speed (Altitude), expressed as m/s * 100
-		 public short xacc; /// X acceleration (mg)
-		 public short yacc; /// Y acceleration (mg)
-		 public short zacc; /// Z acceleration (mg)
-		};
-
-		public const byte MAVLINK_MSG_ID_HIL_STATE_LEN = 56;
-		public const byte MAVLINK_MSG_ID_LOCAL_POSITION_NED = 32;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_local_position_ned_t
-		{
-		 public uint time_boot_ms; /// Timestamp (milliseconds since system boot)
-		public float x; /// X Position
-		public float y; /// Y Position
-		public float z; /// Z Position
-		public float vx; /// X Speed
-		public float vy; /// Y Speed
-		public float vz; /// Z Speed
-		};
-
-		public const byte MAVLINK_MSG_ID_LOCAL_POSITION_NED_LEN = 28;
-		public const byte MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT = 51;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_local_position_setpoint_t
-		{
-		public float x; /// x position
-		public float y; /// y position
-		public float z; /// z position
-		public float yaw; /// Desired yaw angle
-		 public byte coordinate_frame; /// Coordinate frame - valid values are only MAV_FRAME_LOCAL_NED or MAV_FRAME_LOCAL_ENU
-		};
-
-		public const byte MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_LEN = 17;
-		public const byte MAVLINK_MSG_ID_MANUAL_CONTROL = 69;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_manual_control_t
-		{
-		public float roll; /// roll
-		public float pitch; /// pitch
-		public float yaw; /// yaw
-		public float thrust; /// thrust
-		 public byte target; /// The system to be controlled
-		 public byte roll_manual; /// roll control enabled auto:0, manual:1
-		 public byte pitch_manual; /// pitch auto:0, manual:1
-		 public byte yaw_manual; /// yaw auto:0, manual:1
-		 public byte thrust_manual; /// thrust auto:0, manual:1
-		};
-
-		public const byte MAVLINK_MSG_ID_MANUAL_CONTROL_LEN = 21;
-		public const byte MAVLINK_MSG_ID_MEMORY_VECT = 249;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_memory_vect_t
-		{
-		 public ushort address; /// Starting address of the debug variables
-		 public byte ver; /// Version code of the type variable. 0=unknown, type ignored and assumed public short. 1=as below
-		 public byte type; /// Type code of the memory variables. for ver = 1: 0=16 x public short, 1=16 x public ushort, 2=16 x Q15, 3=16 x 1Q14
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=32)] 
-		 public byte[] value; /// Memory contents at specified address
-		};
-
-		public const byte MAVLINK_MSG_ID_MEMORY_VECT_LEN = 36;
-		public const byte MAVLINK_MSG_ID_MISSION_ACK = 47;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mission_ack_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte type; /// See MAV_MISSION_RESULT enum
-		};
-
-		public const byte MAVLINK_MSG_ID_MISSION_ACK_LEN = 3;
-		public const byte MAVLINK_MSG_ID_MISSION_CLEAR_ALL = 45;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mission_clear_all_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_MISSION_CLEAR_ALL_LEN = 2;
-		public const byte MAVLINK_MSG_ID_MISSION_COUNT = 44;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mission_count_t
-		{
-		 public ushort count; /// Number of mission items in the sequence
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_MISSION_COUNT_LEN = 4;
-		public const byte MAVLINK_MSG_ID_MISSION_CURRENT = 42;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mission_current_t
-		{
-		 public ushort seq; /// Sequence
-		};
-
-		public const byte MAVLINK_MSG_ID_MISSION_CURRENT_LEN = 2;
-		public const byte MAVLINK_MSG_ID_MISSION_ITEM = 39;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mission_item_t
-		{
-		public float param1; /// PARAM1 / For NAV command MISSIONs: Radius in which the MISSION is accepted as reached, in meters
-		public float param2; /// PARAM2 / For NAV command MISSIONs: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds
-		public float param3; /// PARAM3 / For LOITER command MISSIONs: Orbit to circle around the MISSION, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.
-		public float param4; /// PARAM4 / For NAV and LOITER command MISSIONs: Yaw orientation in degrees, [0..360] 0 = NORTH
-		public float x; /// PARAM5 / local: x position, global: latitude
-		public float y; /// PARAM6 / y position: global: longitude
-		public float z; /// PARAM7 / z position: global: altitude
-		 public ushort seq; /// Sequence
-		 public ushort command; /// The scheduled action for the MISSION. see MAV_CMD in common.xml MAVLink specs
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte frame; /// The coordinate system of the MISSION. see MAV_FRAME in mavlink_types.h
-		 public byte current; /// false:0, true:1
-		 public byte autocontinue; /// autocontinue to next wp
-		};
-
-		public const byte MAVLINK_MSG_ID_MISSION_ITEM_LEN = 37;
-		public const byte MAVLINK_MSG_ID_MISSION_ITEM_REACHED = 46;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mission_item_reached_t
-		{
-		 public ushort seq; /// Sequence
-		};
-
-		public const byte MAVLINK_MSG_ID_MISSION_ITEM_REACHED_LEN = 2;
-		public const byte MAVLINK_MSG_ID_MISSION_REQUEST = 40;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mission_request_t
-		{
-		 public ushort seq; /// Sequence
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_MISSION_REQUEST_LEN = 4;
-		public const byte MAVLINK_MSG_ID_MISSION_REQUEST_LIST = 43;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mission_request_list_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_MISSION_REQUEST_LIST_LEN = 2;
-		public const byte MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST = 37;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mission_request_partial_list_t
-		{
-		 public short start_index; /// Start index, 0 by default
-		 public short end_index; /// End index, -1 by default (-1: send list to end). Else a valid index of the list
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST_LEN = 6;
-		public const byte MAVLINK_MSG_ID_MISSION_SET_CURRENT = 41;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mission_set_current_t
-		{
-		 public ushort seq; /// Sequence
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_MISSION_SET_CURRENT_LEN = 4;
-		public const byte MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST = 38;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mission_write_partial_list_t
-		{
-		 public short start_index; /// Start index, 0 by default and smaller / equal to the largest index of the current onboard list.
-		 public short end_index; /// End index, equal or greater than start index.
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST_LEN = 6;
-		public const byte MAVLINK_MSG_ID_NAMED_VALUE_FLOAT = 251;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_named_value_float_t
-		{
-		 public uint time_boot_ms; /// Timestamp (milliseconds since system boot)
-		public float value; /// Floating point value
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=10)] 
-		 public byte[] name; /// Name of the debug variable
-		};
-
-		public const byte MAVLINK_MSG_ID_NAMED_VALUE_FLOAT_LEN = 18;
-		public const byte MAVLINK_MSG_ID_NAMED_VALUE_INT = 252;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_named_value_int_t
-		{
-		 public uint time_boot_ms; /// Timestamp (milliseconds since system boot)
-		 public int value; /// Signed integer value
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=10)] 
-		 public byte[] name; /// Name of the debug variable
-		};
-
-		public const byte MAVLINK_MSG_ID_NAMED_VALUE_INT_LEN = 18;
-		public const byte MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT = 62;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_nav_controller_output_t
-		{
-		public float nav_roll; /// Current desired roll in degrees
-		public float nav_pitch; /// Current desired pitch in degrees
-		public float alt_error; /// Current altitude error in meters
-		public float aspd_error; /// Current airspeed error in meters/second
-		public float xtrack_error; /// Current crosstrack error on x-y plane in meters
-		 public short nav_bearing; /// Current desired heading in degrees
-		 public short target_bearing; /// Bearing to current MISSION/target in degrees
-		 public ushort wp_dist; /// Distance to active MISSION in meters
-		};
-
-		public const byte MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT_LEN = 26;
-		public const byte MAVLINK_MSG_ID_OPTICAL_FLOW = 100;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_optical_flow_t
-		{
-		 public ulong time_usec; /// Timestamp (UNIX)
-		public float ground_distance; /// Ground distance in meters
-		 public short flow_x; /// Flow in pixels in x-sensor direction
-		 public short flow_y; /// Flow in pixels in y-sensor direction
-		 public byte sensor_id; /// Sensor ID
-		 public byte quality; /// Optical flow quality / confidence. 0: bad, 255: maximum quality
-		};
-
-		public const byte MAVLINK_MSG_ID_OPTICAL_FLOW_LEN = 18;
-		public const byte MAVLINK_MSG_ID_PARAM_REQUEST_LIST = 21;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_param_request_list_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_PARAM_REQUEST_LIST_LEN = 2;
-		public const byte MAVLINK_MSG_ID_PARAM_REQUEST_READ = 20;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_param_request_read_t
-		{
-		 public short param_index; /// Parameter index. Send -1 to use the param ID field as identifier
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=16)] 
-		 public byte[] param_id; /// Onboard parameter id
-		};
-
-		public const byte MAVLINK_MSG_ID_PARAM_REQUEST_READ_LEN = 20;
-		public const byte MAVLINK_MSG_ID_PARAM_SET = 23;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_param_set_t
-		{
-		public float param_value; /// Onboard parameter value
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=16)] 
-		 public byte[] param_id; /// Onboard parameter id
-		 public byte param_type; /// Onboard parameter type: see MAV_VAR enum
-		};
-
-		public const byte MAVLINK_MSG_ID_PARAM_SET_LEN = 23;
-		public const byte MAVLINK_MSG_ID_PARAM_VALUE = 22;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_param_value_t
-		{
-		public float param_value; /// Onboard parameter value
-		 public ushort param_count; /// Total number of onboard parameters
-		 public ushort param_index; /// Index of this onboard parameter
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=16)] 
-		 public byte[] param_id; /// Onboard parameter id
-		 public byte param_type; /// Onboard parameter type: see MAV_VAR enum
-		};
-
-		public const byte MAVLINK_MSG_ID_PARAM_VALUE_LEN = 25;
-		public const byte MAVLINK_MSG_ID_PING = 4;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_ping_t
-		{
-		 public ulong time_usec; /// Unix timestamp in microseconds
-		 public uint seq; /// PING sequence
-		 public byte target_system; /// 0: request ping from all receiving systems, if greater than 0: message is a ping response and number is the system id of the requesting system
-		 public byte target_component; /// 0: request ping from all receiving components, if greater than 0: message is a ping response and number is the system id of the requesting system
-		};
-
-		public const byte MAVLINK_MSG_ID_PING_LEN = 14;
-		public const byte MAVLINK_MSG_ID_RAW_IMU = 27;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_raw_imu_t
-		{
-		 public ulong time_usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		 public short xacc; /// X acceleration (raw)
-		 public short yacc; /// Y acceleration (raw)
-		 public short zacc; /// Z acceleration (raw)
-		 public short xgyro; /// Angular speed around X axis (raw)
-		 public short ygyro; /// Angular speed around Y axis (raw)
-		 public short zgyro; /// Angular speed around Z axis (raw)
-		 public short xmag; /// X Magnetic field (raw)
-		 public short ymag; /// Y Magnetic field (raw)
-		 public short zmag; /// Z Magnetic field (raw)
-		};
-
-		public const byte MAVLINK_MSG_ID_RAW_IMU_LEN = 26;
-		public const byte MAVLINK_MSG_ID_RAW_PRESSURE = 28;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_raw_pressure_t
-		{
-		 public ulong time_usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		 public short press_abs; /// Absolute pressure (raw)
-		 public short press_diff1; /// Differential pressure 1 (raw)
-		 public short press_diff2; /// Differential pressure 2 (raw)
-		 public short temperature; /// Raw Temperature measurement (raw)
-		};
-
-		public const byte MAVLINK_MSG_ID_RAW_PRESSURE_LEN = 16;
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE = 70;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_rc_channels_override_t
-		{
-		 public ushort chan1_raw; /// RC channel 1 value, in microseconds
-		 public ushort chan2_raw; /// RC channel 2 value, in microseconds
-		 public ushort chan3_raw; /// RC channel 3 value, in microseconds
-		 public ushort chan4_raw; /// RC channel 4 value, in microseconds
-		 public ushort chan5_raw; /// RC channel 5 value, in microseconds
-		 public ushort chan6_raw; /// RC channel 6 value, in microseconds
-		 public ushort chan7_raw; /// RC channel 7 value, in microseconds
-		 public ushort chan8_raw; /// RC channel 8 value, in microseconds
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE_LEN = 18;
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_RAW = 35;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_rc_channels_raw_t
-		{
-		 public uint time_boot_ms; /// Timestamp (milliseconds since system boot)
-		 public ushort chan1_raw; /// RC channel 1 value, in microseconds
-		 public ushort chan2_raw; /// RC channel 2 value, in microseconds
-		 public ushort chan3_raw; /// RC channel 3 value, in microseconds
-		 public ushort chan4_raw; /// RC channel 4 value, in microseconds
-		 public ushort chan5_raw; /// RC channel 5 value, in microseconds
-		 public ushort chan6_raw; /// RC channel 6 value, in microseconds
-		 public ushort chan7_raw; /// RC channel 7 value, in microseconds
-		 public ushort chan8_raw; /// RC channel 8 value, in microseconds
-		 public byte port; /// Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos.
-		 public byte rssi; /// Receive signal strength indicator, 0: 0%, 255: 100%
-		};
-
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_RAW_LEN = 22;
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_SCALED = 34;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_rc_channels_scaled_t
-		{
-		 public uint time_boot_ms; /// Timestamp (milliseconds since system boot)
-		 public short chan1_scaled; /// RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan2_scaled; /// RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan3_scaled; /// RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan4_scaled; /// RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan5_scaled; /// RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan6_scaled; /// RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan7_scaled; /// RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan8_scaled; /// RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public byte port; /// Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos.
-		 public byte rssi; /// Receive signal strength indicator, 0: 0%, 255: 100%
-		};
-
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_SCALED_LEN = 22;
-		public const byte MAVLINK_MSG_ID_REQUEST_DATA_STREAM = 66;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_request_data_stream_t
-		{
-		 public ushort req_message_rate; /// The requested interval between two messages of this type
-		 public byte target_system; /// The target requested to send the message stream.
-		 public byte target_component; /// The target requested to send the message stream.
-		 public byte req_stream_id; /// The ID of the requested data stream
-		 public byte start_stop; /// 1 to start sending, 0 to stop sending.
-		};
-
-		public const byte MAVLINK_MSG_ID_REQUEST_DATA_STREAM_LEN = 6;
-		public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT = 59;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_roll_pitch_yaw_speed_thrust_setpoint_t
-		{
-		 public uint time_boot_ms; /// Timestamp in milliseconds since system boot
-		public float roll_speed; /// Desired roll angular speed in rad/s
-		public float pitch_speed; /// Desired pitch angular speed in rad/s
-		public float yaw_speed; /// Desired yaw angular speed in rad/s
-		public float thrust; /// Collective thrust, normalized to 0 .. 1
-		};
-
-		public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT_LEN = 20;
-		public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT = 58;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_roll_pitch_yaw_thrust_setpoint_t
-		{
-		 public uint time_boot_ms; /// Timestamp in milliseconds since system boot
-		public float roll; /// Desired roll angle in radians
-		public float pitch; /// Desired pitch angle in radians
-		public float yaw; /// Desired yaw angle in radians
-		public float thrust; /// Collective thrust, normalized to 0 .. 1
-		};
-
-		public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT_LEN = 20;
-		public const byte MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA = 55;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_safety_allowed_area_t
-		{
-		public float p1x; /// x position 1 / Latitude 1
-		public float p1y; /// y position 1 / Longitude 1
-		public float p1z; /// z position 1 / Altitude 1
-		public float p2x; /// x position 2 / Latitude 2
-		public float p2y; /// y position 2 / Longitude 2
-		public float p2z; /// z position 2 / Altitude 2
-		 public byte frame; /// Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down.
-		};
-
-		public const byte MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA_LEN = 25;
-		public const byte MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA = 54;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_safety_set_allowed_area_t
-		{
-		public float p1x; /// x position 1 / Latitude 1
-		public float p1y; /// y position 1 / Longitude 1
-		public float p1z; /// z position 1 / Altitude 1
-		public float p2x; /// x position 2 / Latitude 2
-		public float p2y; /// y position 2 / Longitude 2
-		public float p2z; /// z position 2 / Altitude 2
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte frame; /// Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down.
-		};
-
-		public const byte MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA_LEN = 27;
-		public const byte MAVLINK_MSG_ID_SCALED_IMU = 26;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_scaled_imu_t
-		{
-		 public uint time_boot_ms; /// Timestamp (milliseconds since system boot)
-		 public short xacc; /// X acceleration (mg)
-		 public short yacc; /// Y acceleration (mg)
-		 public short zacc; /// Z acceleration (mg)
-		 public short xgyro; /// Angular speed around X axis (millirad /sec)
-		 public short ygyro; /// Angular speed around Y axis (millirad /sec)
-		 public short zgyro; /// Angular speed around Z axis (millirad /sec)
-		 public short xmag; /// X Magnetic field (milli tesla)
-		 public short ymag; /// Y Magnetic field (milli tesla)
-		 public short zmag; /// Z Magnetic field (milli tesla)
-		};
-
-		public const byte MAVLINK_MSG_ID_SCALED_IMU_LEN = 22;
-		public const byte MAVLINK_MSG_ID_SCALED_PRESSURE = 29;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_scaled_pressure_t
-		{
-		 public uint time_boot_ms; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		public float press_abs; /// Absolute pressure (hectopascal)
-		public float press_diff; /// Differential pressure 1 (hectopascal)
-		 public short temperature; /// Temperature measurement (0.01 degrees celsius)
-		};
-
-		public const byte MAVLINK_MSG_ID_SCALED_PRESSURE_LEN = 14;
-		public const byte MAVLINK_MSG_ID_SERVO_OUTPUT_RAW = 36;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_servo_output_raw_t
-		{
-		 public uint time_usec; /// Timestamp (since UNIX epoch or microseconds since system boot)
-		 public ushort servo1_raw; /// Servo output 1 value, in microseconds
-		 public ushort servo2_raw; /// Servo output 2 value, in microseconds
-		 public ushort servo3_raw; /// Servo output 3 value, in microseconds
-		 public ushort servo4_raw; /// Servo output 4 value, in microseconds
-		 public ushort servo5_raw; /// Servo output 5 value, in microseconds
-		 public ushort servo6_raw; /// Servo output 6 value, in microseconds
-		 public ushort servo7_raw; /// Servo output 7 value, in microseconds
-		 public ushort servo8_raw; /// Servo output 8 value, in microseconds
-		 public byte port; /// Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos.
-		};
-
-		public const byte MAVLINK_MSG_ID_SERVO_OUTPUT_RAW_LEN = 21;
-		public const byte MAVLINK_MSG_ID_SET_GLOBAL_POSITION_SETPOINT_INT = 53;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_global_position_setpoint_int_t
-		{
-		 public int latitude; /// WGS84 Latitude position in degrees * 1E7
-		 public int longitude; /// WGS84 Longitude position in degrees * 1E7
-		 public int altitude; /// WGS84 Altitude in meters * 1000 (positive for up)
-		 public short yaw; /// Desired yaw angle in degrees * 100
-		 public byte coordinate_frame; /// Coordinate frame - valid values are only MAV_FRAME_GLOBAL or MAV_FRAME_GLOBAL_RELATIVE_ALT
-		};
-
-		public const byte MAVLINK_MSG_ID_SET_GLOBAL_POSITION_SETPOINT_INT_LEN = 15;
-		public const byte MAVLINK_MSG_ID_SET_GPS_GLOBAL_ORIGIN = 48;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_gps_global_origin_t
-		{
-		 public int latitude; /// global position * 1E7
-		 public int longitude; /// global position * 1E7
-		 public int altitude; /// global position * 1000
-		 public byte target_system; /// System ID
-		};
-
-		public const byte MAVLINK_MSG_ID_SET_GPS_GLOBAL_ORIGIN_LEN = 13;
-		public const byte MAVLINK_MSG_ID_SET_LOCAL_POSITION_SETPOINT = 50;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_local_position_setpoint_t
-		{
-		public float x; /// x position
-		public float y; /// y position
-		public float z; /// z position
-		public float yaw; /// Desired yaw angle
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte coordinate_frame; /// Coordinate frame - valid values are only MAV_FRAME_LOCAL_NED or MAV_FRAME_LOCAL_ENU
-		};
-
-		public const byte MAVLINK_MSG_ID_SET_LOCAL_POSITION_SETPOINT_LEN = 19;
-		public const byte MAVLINK_MSG_ID_SET_MODE = 11;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_mode_t
-		{
-		 public uint custom_mode; /// The new autopilot-specific mode. This field can be ignored by an autopilot.
-		 public byte target_system; /// The system setting the mode
-		 public byte base_mode; /// The new base mode
-		};
-
-		public const byte MAVLINK_MSG_ID_SET_MODE_LEN = 6;
-		public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST = 57;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_roll_pitch_yaw_speed_thrust_t
-		{
-		public float roll_speed; /// Desired roll angular speed in rad/s
-		public float pitch_speed; /// Desired pitch angular speed in rad/s
-		public float yaw_speed; /// Desired yaw angular speed in rad/s
-		public float thrust; /// Collective thrust, normalized to 0 .. 1
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST_LEN = 18;
-		public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST = 56;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_roll_pitch_yaw_thrust_t
-		{
-		public float roll; /// Desired roll angle in radians
-		public float pitch; /// Desired pitch angle in radians
-		public float yaw; /// Desired yaw angle in radians
-		public float thrust; /// Collective thrust, normalized to 0 .. 1
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST_LEN = 18;
-		public const byte MAVLINK_MSG_ID_STATE_CORRECTION = 64;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_state_correction_t
-		{
-		public float xErr; /// x position error
-		public float yErr; /// y position error
-		public float zErr; /// z position error
-		public float rollErr; /// roll error (radians)
-		public float pitchErr; /// pitch error (radians)
-		public float yawErr; /// yaw error (radians)
-		public float vxErr; /// x velocity
-		public float vyErr; /// y velocity
-		public float vzErr; /// z velocity
-		};
-
-		public const byte MAVLINK_MSG_ID_STATE_CORRECTION_LEN = 36;
-		public const byte MAVLINK_MSG_ID_STATUSTEXT = 253;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_statustext_t
-		{
-		 public byte severity; /// Severity of status, 0 = info message, 255 = critical fault
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=50)] 
-		 public byte[] text; /// Status text message, without null termination character
-		};
-
-		public const byte MAVLINK_MSG_ID_STATUSTEXT_LEN = 51;
-		public const byte MAVLINK_MSG_ID_SYSTEM_TIME = 2;
-		public const byte MAVLINK_MSG_ID_SYS_STATUS = 1;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_sys_status_t
-		{
-		 public uint onboard_control_sensors_present; /// Bitmask showing which onboard controllers and sensors are present. Value of 0: not present. Value of 1: present. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control
-		 public uint onboard_control_sensors_enabled; /// Bitmask showing which onboard controllers and sensors are enabled:  Value of 0: not enabled. Value of 1: enabled. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control
-		 public uint onboard_control_sensors_health; /// Bitmask showing which onboard controllers and sensors are operational or have an error:  Value of 0: not enabled. Value of 1: enabled. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control
-		 public ushort load; /// Maximum usage in percent of the mainloop time, (0%: 0, 100%: 1000) should be always below 1000
-		 public ushort voltage_battery; /// Battery voltage, in millivolts (1 = 1 millivolt)
-		 public short current_battery; /// Battery current, in 10*milliamperes (1 = 10 milliampere), -1: autopilot does not measure the current
-		 public ushort drop_rate_comm; /// Communication drops in percent, (0%: 0, 100%: 10'000), (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV)
-		 public ushort errors_comm; /// Communication errors (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV)
-		 public ushort errors_count1; /// Autopilot-specific errors
-		 public ushort errors_count2; /// Autopilot-specific errors
-		 public ushort errors_count3; /// Autopilot-specific errors
-		 public ushort errors_count4; /// Autopilot-specific errors
-		 public byte battery_remaining; /// Remaining battery energy: (0%: 0, 100%: 100), -1: autopilot estimate the remaining battery
-		};
-
-		public const byte MAVLINK_MSG_ID_SYS_STATUS_LEN = 31;
-		public const byte MAVLINK_MSG_ID_VFR_HUD = 74;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_vfr_hud_t
-		{
-		public float airspeed; /// Current airspeed in m/s
-		public float groundspeed; /// Current ground speed in m/s
-		public float alt; /// Current altitude (MSL), in meters
-		public float climb; /// Current climb rate in meters/second
-		 public short heading; /// Current heading in degrees, in compass units (0..360, 0=north)
-		 public ushort throttle; /// Current throttle setting in integer percent, 0 to 100
-		};
-
-		public const byte MAVLINK_MSG_ID_VFR_HUD_LEN = 20;
-		public const byte MAVLINK_MSG_ID_VICON_POSITION_ESTIMATE = 104;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_vicon_position_estimate_t
-		{
-		 public ulong usec; /// Timestamp (milliseconds)
-		public float x; /// Global X position
-		public float y; /// Global Y position
-		public float z; /// Global Z position
-		public float roll; /// Roll angle in rad
-		public float pitch; /// Pitch angle in rad
-		public float yaw; /// Yaw angle in rad
-		};
-
-		public const byte MAVLINK_MSG_ID_VICON_POSITION_ESTIMATE_LEN = 32;
-		public const byte MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE = 102;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_vision_position_estimate_t
-		{
-		 public ulong usec; /// Timestamp (milliseconds)
-		public float x; /// Global X position
-		public float y; /// Global Y position
-		public float z; /// Global Z position
-		public float roll; /// Roll angle in rad
-		public float pitch; /// Pitch angle in rad
-		public float yaw; /// Yaw angle in rad
-		};
-
-		public const byte MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE_LEN = 32;
-		public const byte MAVLINK_MSG_ID_VISION_SPEED_ESTIMATE = 103;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_vision_speed_estimate_t
-		{
-		 public ulong usec; /// Timestamp (milliseconds)
-		public float x; /// Global X speed
-		public float y; /// Global Y speed
-		public float z; /// Global Z speed
-		};
-
-		public const byte MAVLINK_MSG_ID_VISION_SPEED_ESTIMATE_LEN = 20;
-		public 		enum MAV_ACTION
-		{
-		    MAV_ACTION_HOLD = 0,
-		    MAV_ACTION_MOTORS_START = 1,
-		    MAV_ACTION_LAUNCH = 2,
-		    MAV_ACTION_RETURN = 3,
-		    MAV_ACTION_EMCY_LAND = 4,
-		    MAV_ACTION_EMCY_KILL = 5,
-		    MAV_ACTION_CONFIRM_KILL = 6,
-		    MAV_ACTION_CONTINUE = 7,
-		    MAV_ACTION_MOTORS_STOP = 8,
-		    MAV_ACTION_HALT = 9,
-		    MAV_ACTION_SHUTDOWN = 10,
-		    MAV_ACTION_REBOOT = 11,
-		    MAV_ACTION_SET_MANUAL = 12,
-		    MAV_ACTION_SET_AUTO = 13,
-		    MAV_ACTION_STORAGE_READ = 14,
-		    MAV_ACTION_STORAGE_WRITE = 15,
-		    MAV_ACTION_CALIBRATE_RC = 16,
-		    MAV_ACTION_CALIBRATE_GYRO = 17,
-		    MAV_ACTION_CALIBRATE_MAG = 18,
-		    MAV_ACTION_CALIBRATE_ACC = 19,
-		    MAV_ACTION_CALIBRATE_PRESSURE = 20,
-		    MAV_ACTION_REC_START = 21,
-		    MAV_ACTION_REC_PAUSE = 22,
-		    MAV_ACTION_REC_STOP = 23,
-		    MAV_ACTION_TAKEOFF = 24,
-		    MAV_ACTION_NAVIGATE = 25,
-		    MAV_ACTION_LAND = 26,
-		    MAV_ACTION_LOITER = 27,
-		    MAV_ACTION_SET_ORIGIN = 28,
-		    MAV_ACTION_RELAY_ON = 29,
-		    MAV_ACTION_RELAY_OFF = 30,
-		    MAV_ACTION_GET_IMAGE = 31,
-		    MAV_ACTION_VIDEO_START = 32,
-		    MAV_ACTION_VIDEO_STOP = 33,
-		    MAV_ACTION_RESET_MAP = 34,
-		    MAV_ACTION_RESET_PLAN = 35,
-		    MAV_ACTION_DELAY_BEFORE_COMMAND = 36,
-		    MAV_ACTION_ASCEND_AT_RATE = 37,
-		    MAV_ACTION_CHANGE_MODE = 38,
-		    MAV_ACTION_LOITER_MAX_TURNS = 39,
-		    MAV_ACTION_LOITER_MAX_TIME = 40,
-		    MAV_ACTION_START_HILSIM = 41,
-		    MAV_ACTION_STOP_HILSIM = 42,    
-		    MAV_ACTION_NB        /// Number of MAV actions
-		};
-
-Type[] mavstructs = new Type[] {typeof( __mavlink_heartbeat_t) ,typeof( __mavlink_sys_status_t) ,null ,null ,typeof( __mavlink_ping_t) ,typeof( __mavlink_change_operator_control_t) ,typeof( __mavlink_change_operator_control_ack_t) ,typeof( __mavlink_auth_key_t) ,null ,null ,null ,typeof( __mavlink_set_mode_t) ,null ,null ,null ,null ,null ,null ,null ,null ,typeof( __mavlink_param_request_read_t) ,typeof( __mavlink_param_request_list_t) ,typeof( __mavlink_param_value_t) ,typeof( __mavlink_param_set_t) ,typeof( __mavlink_gps_raw_int_t) ,typeof( __mavlink_gps_status_t) ,typeof( __mavlink_scaled_imu_t) ,typeof( __mavlink_raw_imu_t) ,typeof( __mavlink_raw_pressure_t) ,typeof( __mavlink_scaled_pressure_t) ,typeof( __mavlink_attitude_t) ,typeof( __mavlink_attitude_quaternion_t) ,typeof( __mavlink_local_position_ned_t) ,typeof( __mavlink_global_position_int_t) ,typeof( __mavlink_rc_channels_scaled_t) ,typeof( __mavlink_rc_channels_raw_t) ,typeof( __mavlink_servo_output_raw_t) ,typeof( __mavlink_mission_request_partial_list_t) ,typeof( __mavlink_mission_write_partial_list_t) ,typeof( __mavlink_mission_item_t) ,typeof( __mavlink_mission_request_t) ,typeof( __mavlink_mission_set_current_t) ,typeof( __mavlink_mission_current_t) ,typeof( __mavlink_mission_request_list_t) ,typeof( __mavlink_mission_count_t) ,typeof( __mavlink_mission_clear_all_t) ,typeof( __mavlink_mission_item_reached_t) ,typeof( __mavlink_mission_ack_t) ,typeof( __mavlink_set_gps_global_origin_t) ,typeof( __mavlink_gps_global_origin_t) ,typeof( __mavlink_set_local_position_setpoint_t) ,typeof( __mavlink_local_position_setpoint_t) ,typeof( __mavlink_global_position_setpoint_int_t) ,typeof( __mavlink_set_global_position_setpoint_int_t) ,typeof( __mavlink_safety_set_allowed_area_t) ,typeof( __mavlink_safety_allowed_area_t) ,typeof( __mavlink_set_roll_pitch_yaw_thrust_t) ,typeof( __mavlink_set_roll_pitch_yaw_speed_thrust_t) ,typeof( __mavlink_roll_pitch_yaw_thrust_setpoint_t) ,typeof( __mavlink_roll_pitch_yaw_speed_thrust_setpoint_t) ,null ,null ,typeof( __mavlink_nav_controller_output_t) ,null ,typeof( __mavlink_state_correction_t) ,null ,typeof( __mavlink_request_data_stream_t) ,typeof( __mavlink_data_stream_t) ,null ,typeof( __mavlink_manual_control_t) ,typeof( __mavlink_rc_channels_override_t) ,null ,null ,null ,typeof( __mavlink_vfr_hud_t) ,null ,typeof( __mavlink_command_long_t) ,typeof( __mavlink_command_ack_t) ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,typeof( __mavlink_hil_state_t) ,typeof( __mavlink_hil_controls_t) ,typeof( __mavlink_hil_rc_inputs_raw_t) ,null ,null ,null ,null ,null ,null ,null ,typeof( __mavlink_optical_flow_t) ,typeof( __mavlink_global_vision_position_estimate_t) ,typeof( __mavlink_vision_position_estimate_t) ,typeof( __mavlink_vision_speed_estimate_t) ,typeof( __mavlink_vicon_position_estimate_t) ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,typeof( __mavlink_sensor_offsets_t) ,typeof( __mavlink_set_mag_offsets_t) ,typeof( __mavlink_meminfo_t) ,typeof( __mavlink_ap_adc_t) ,typeof( __mavlink_digicam_configure_t) ,typeof( __mavlink_digicam_control_t) ,typeof( __mavlink_mount_configure_t) ,typeof( __mavlink_mount_control_t) ,typeof( __mavlink_mount_status_t) ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,typeof( __mavlink_memory_vect_t) ,typeof( __mavlink_debug_vect_t) ,typeof( __mavlink_named_value_float_t) ,typeof( __mavlink_named_value_int_t) ,typeof( __mavlink_statustext_t) ,typeof( __mavlink_debug_t) ,typeof( __mavlink_extended_message_t) ,null ,};
-
-	}
-	#endif
-}
 
+    public const byte MAVLINK_MSG_ID_RADIO = 166;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=9)]
+    public struct mavlink_radio_t
+    {
+        /// <summary> receive errors </summary>
+        public  UInt16 rxerrors;
+            /// <summary> serial errors </summary>
+        public  UInt16 serrors;
+            /// <summary> count of error corrected packets </summary>
+        public  UInt16 fixed;
+            /// <summary> local signal strength </summary>
+        public  byte rssi;
+            /// <summary> remote signal strength </summary>
+        public  byte remrssi;
+            /// <summary> how full the tx buffer is as a percentage </summary>
+        public  byte txbuf;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_HEARTBEAT = 0;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=9)]
+    public struct mavlink_heartbeat_t
+    {
+        /// <summary> Navigation mode bitfield, see MAV_AUTOPILOT_CUSTOM_MODE ENUM for some examples. This field is autopilot-specific. </summary>
+        public  UInt32 custom_mode;
+            /// <summary> Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM) </summary>
+        public  byte type;
+            /// <summary> Autopilot type / class. defined in MAV_CLASS ENUM </summary>
+        public  byte autopilot;
+            /// <summary> System mode bitfield, see MAV_MODE_FLAGS ENUM in mavlink/include/mavlink_types.h </summary>
+        public  byte base_mode;
+            /// <summary> System status flag, see MAV_STATUS ENUM </summary>
+        public  byte system_status;
+            /// <summary> MAVLink version </summary>
+        public  byte mavlink_version;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SYS_STATUS = 1;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=31)]
+    public struct mavlink_sys_status_t
+    {
+        /// <summary> Bitmask showing which onboard controllers and sensors are present. Value of 0: not present. Value of 1: present. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control </summary>
+        public  UInt32 onboard_control_sensors_present;
+            /// <summary> Bitmask showing which onboard controllers and sensors are enabled:  Value of 0: not enabled. Value of 1: enabled. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control </summary>
+        public  UInt32 onboard_control_sensors_enabled;
+            /// <summary> Bitmask showing which onboard controllers and sensors are operational or have an error:  Value of 0: not enabled. Value of 1: enabled. Indices: 0: 3D gyro, 1: 3D acc, 2: 3D mag, 3: absolute pressure, 4: differential pressure, 5: GPS, 6: optical flow, 7: computer vision position, 8: laser based position, 9: external ground-truth (Vicon or Leica). Controllers: 10: 3D angular rate control 11: attitude stabilization, 12: yaw position, 13: z/altitude control, 14: x/y position control, 15: motor outputs / control </summary>
+        public  UInt32 onboard_control_sensors_health;
+            /// <summary> Maximum usage in percent of the mainloop time, (0%: 0, 100%: 1000) should be always below 1000 </summary>
+        public  UInt16 load;
+            /// <summary> Battery voltage, in millivolts (1 = 1 millivolt) </summary>
+        public  UInt16 voltage_battery;
+            /// <summary> Battery current, in 10*milliamperes (1 = 10 milliampere), -1: autopilot does not measure the current </summary>
+        public  Int16 current_battery;
+            /// <summary> Communication drops in percent, (0%: 0, 100%: 10'000), (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV) </summary>
+        public  UInt16 drop_rate_comm;
+            /// <summary> Communication errors (UART, I2C, SPI, CAN), dropped packets on all links (packets that were corrupted on reception on the MAV) </summary>
+        public  UInt16 errors_comm;
+            /// <summary> Autopilot-specific errors </summary>
+        public  UInt16 errors_count1;
+            /// <summary> Autopilot-specific errors </summary>
+        public  UInt16 errors_count2;
+            /// <summary> Autopilot-specific errors </summary>
+        public  UInt16 errors_count3;
+            /// <summary> Autopilot-specific errors </summary>
+        public  UInt16 errors_count4;
+            /// <summary> Remaining battery energy: (0%: 0, 100%: 100), -1: autopilot estimate the remaining battery </summary>
+        public  byte battery_remaining;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SYSTEM_TIME = 2;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)]
+    public struct mavlink_system_time_t
+    {
+        /// <summary> Timestamp of the master clock in microseconds since UNIX epoch. </summary>
+        public  UInt64 time_unix_usec;
+            /// <summary> Timestamp of the component clock since boot time in milliseconds. </summary>
+        public  UInt32 time_boot_ms;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_PING = 4;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)]
+    public struct mavlink_ping_t
+    {
+        /// <summary> Unix timestamp in microseconds </summary>
+        public  UInt64 time_usec;
+            /// <summary> PING sequence </summary>
+        public  UInt32 seq;
+            /// <summary> 0: request ping from all receiving systems, if greater than 0: message is a ping response and number is the system id of the requesting system </summary>
+        public  byte target_system;
+            /// <summary> 0: request ping from all receiving components, if greater than 0: message is a ping response and number is the system id of the requesting system </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL = 5;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)]
+    public struct mavlink_change_operator_control_t
+    {
+        /// <summary> System the GCS requests control for </summary>
+        public  byte target_system;
+            /// <summary> 0: request control of this MAV, 1: Release control of this MAV </summary>
+        public  byte control_request;
+            /// <summary> 0: key as plaintext, 1-255: future, different hashing/encryption variants. The GCS should in general use the safest mode possible initially and then gradually move down the encryption level if it gets a NACK message indicating an encryption mismatch. </summary>
+        public  byte version;
+            /// <summary> Password / Key, depending on version plaintext or encrypted. 25 or less characters, NULL terminated. The characters may involve A-Z, a-z, 0-9, and "!?,.-" </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=25)]
+		public string passkey;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK = 6;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_change_operator_control_ack_t
+    {
+        /// <summary> ID of the GCS this message  </summary>
+        public  byte gcs_system_id;
+            /// <summary> 0: request control of this MAV, 1: Release control of this MAV </summary>
+        public  byte control_request;
+            /// <summary> 0: ACK, 1: NACK: Wrong passkey, 2: NACK: Unsupported passkey encryption method, 3: NACK: Already under control </summary>
+        public  byte ack;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_AUTH_KEY = 7;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)]
+    public struct mavlink_auth_key_t
+    {
+        /// <summary> key </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)]
+		public string key;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_MODE = 11;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)]
+    public struct mavlink_set_mode_t
+    {
+        /// <summary> The new autopilot-specific mode. This field can be ignored by an autopilot. </summary>
+        public  UInt32 custom_mode;
+            /// <summary> The system setting the mode </summary>
+        public  byte target_system;
+            /// <summary> The new base mode </summary>
+        public  byte base_mode;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_PARAM_REQUEST_READ = 20;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)]
+    public struct mavlink_param_request_read_t
+    {
+        /// <summary> Parameter index. Send -1 to use the param ID field as identifier </summary>
+        public  Int16 param_index;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Onboard parameter id </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)]
+		public string param_id;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_PARAM_REQUEST_LIST = 21;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_param_request_list_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_PARAM_VALUE = 22;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=25)]
+    public struct mavlink_param_value_t
+    {
+        /// <summary> Onboard parameter value </summary>
+        public  Single param_value;
+            /// <summary> Total number of onboard parameters </summary>
+        public  UInt16 param_count;
+            /// <summary> Index of this onboard parameter </summary>
+        public  UInt16 param_index;
+            /// <summary> Onboard parameter id </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)]
+		public string param_id;
+            /// <summary> Onboard parameter type: see MAV_VAR enum </summary>
+        public  byte param_type;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_PARAM_SET = 23;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=23)]
+    public struct mavlink_param_set_t
+    {
+        /// <summary> Onboard parameter value </summary>
+        public  Single param_value;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Onboard parameter id </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)]
+		public string param_id;
+            /// <summary> Onboard parameter type: see MAV_VAR enum </summary>
+        public  byte param_type;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GPS_RAW_INT = 24;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=30)]
+    public struct mavlink_gps_raw_int_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 time_usec;
+            /// <summary> Latitude in 1E7 degrees </summary>
+        public  Int32 lat;
+            /// <summary> Longitude in 1E7 degrees </summary>
+        public  Int32 lon;
+            /// <summary> Altitude in 1E3 meters (millimeters) above MSL </summary>
+        public  Int32 alt;
+            /// <summary> GPS HDOP horizontal dilution of position in cm (m*100). If unknown, set to: 65535 </summary>
+        public  UInt16 eph;
+            /// <summary> GPS VDOP horizontal dilution of position in cm (m*100). If unknown, set to: 65535 </summary>
+        public  UInt16 epv;
+            /// <summary> GPS ground speed (m/s * 100). If unknown, set to: 65535 </summary>
+        public  UInt16 vel;
+            /// <summary> Course over ground (NOT heading, but direction of movement) in degrees * 100, 0.0..359.99 degrees. If unknown, set to: 65535 </summary>
+        public  UInt16 cog;
+            /// <summary> 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix. </summary>
+        public  byte fix_type;
+            /// <summary> Number of satellites visible. If unknown, set to 255 </summary>
+        public  byte satellites_visible;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GPS_STATUS = 25;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=101)]
+    public struct mavlink_gps_status_t
+    {
+        /// <summary> Number of satellites visible </summary>
+        public  byte satellites_visible;
+            /// <summary> Global satellite ID </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
+		public byte[] satellite_prn;
+            /// <summary> 0: Satellite not used, 1: used for localization </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
+		public byte[] satellite_used;
+            /// <summary> Elevation (0: right on top of receiver, 90: on the horizon) of satellite </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
+		public byte[] satellite_elevation;
+            /// <summary> Direction of satellite, 0: 0 deg, 255: 360 deg. </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
+		public byte[] satellite_azimuth;
+            /// <summary> Signal to noise ratio of satellite </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
+		public byte[] satellite_snr;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SCALED_IMU = 26;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=22)]
+    public struct mavlink_scaled_imu_t
+    {
+        /// <summary> Timestamp (milliseconds since system boot) </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> X acceleration (mg) </summary>
+        public  Int16 xacc;
+            /// <summary> Y acceleration (mg) </summary>
+        public  Int16 yacc;
+            /// <summary> Z acceleration (mg) </summary>
+        public  Int16 zacc;
+            /// <summary> Angular speed around X axis (millirad /sec) </summary>
+        public  Int16 xgyro;
+            /// <summary> Angular speed around Y axis (millirad /sec) </summary>
+        public  Int16 ygyro;
+            /// <summary> Angular speed around Z axis (millirad /sec) </summary>
+        public  Int16 zgyro;
+            /// <summary> X Magnetic field (milli tesla) </summary>
+        public  Int16 xmag;
+            /// <summary> Y Magnetic field (milli tesla) </summary>
+        public  Int16 ymag;
+            /// <summary> Z Magnetic field (milli tesla) </summary>
+        public  Int16 zmag;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_RAW_IMU = 27;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=26)]
+    public struct mavlink_raw_imu_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 time_usec;
+            /// <summary> X acceleration (raw) </summary>
+        public  Int16 xacc;
+            /// <summary> Y acceleration (raw) </summary>
+        public  Int16 yacc;
+            /// <summary> Z acceleration (raw) </summary>
+        public  Int16 zacc;
+            /// <summary> Angular speed around X axis (raw) </summary>
+        public  Int16 xgyro;
+            /// <summary> Angular speed around Y axis (raw) </summary>
+        public  Int16 ygyro;
+            /// <summary> Angular speed around Z axis (raw) </summary>
+        public  Int16 zgyro;
+            /// <summary> X Magnetic field (raw) </summary>
+        public  Int16 xmag;
+            /// <summary> Y Magnetic field (raw) </summary>
+        public  Int16 ymag;
+            /// <summary> Z Magnetic field (raw) </summary>
+        public  Int16 zmag;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_RAW_PRESSURE = 28;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=16)]
+    public struct mavlink_raw_pressure_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 time_usec;
+            /// <summary> Absolute pressure (raw) </summary>
+        public  Int16 press_abs;
+            /// <summary> Differential pressure 1 (raw) </summary>
+        public  Int16 press_diff1;
+            /// <summary> Differential pressure 2 (raw) </summary>
+        public  Int16 press_diff2;
+            /// <summary> Raw Temperature measurement (raw) </summary>
+        public  Int16 temperature;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SCALED_PRESSURE = 29;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)]
+    public struct mavlink_scaled_pressure_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> Absolute pressure (hectopascal) </summary>
+        public  Single press_abs;
+            /// <summary> Differential pressure 1 (hectopascal) </summary>
+        public  Single press_diff;
+            /// <summary> Temperature measurement (0.01 degrees celsius) </summary>
+        public  Int16 temperature;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_ATTITUDE = 30;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)]
+    public struct mavlink_attitude_t
+    {
+        /// <summary> Timestamp (milliseconds since system boot) </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> Roll angle (rad) </summary>
+        public  Single roll;
+            /// <summary> Pitch angle (rad) </summary>
+        public  Single pitch;
+            /// <summary> Yaw angle (rad) </summary>
+        public  Single yaw;
+            /// <summary> Roll angular speed (rad/s) </summary>
+        public  Single rollspeed;
+            /// <summary> Pitch angular speed (rad/s) </summary>
+        public  Single pitchspeed;
+            /// <summary> Yaw angular speed (rad/s) </summary>
+        public  Single yawspeed;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_ATTITUDE_QUATERNION = 31;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)]
+    public struct mavlink_attitude_quaternion_t
+    {
+        /// <summary> Timestamp (milliseconds since system boot) </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> Quaternion component 1 </summary>
+        public  Single q1;
+            /// <summary> Quaternion component 2 </summary>
+        public  Single q2;
+            /// <summary> Quaternion component 3 </summary>
+        public  Single q3;
+            /// <summary> Quaternion component 4 </summary>
+        public  Single q4;
+            /// <summary> Roll angular speed (rad/s) </summary>
+        public  Single rollspeed;
+            /// <summary> Pitch angular speed (rad/s) </summary>
+        public  Single pitchspeed;
+            /// <summary> Yaw angular speed (rad/s) </summary>
+        public  Single yawspeed;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_LOCAL_POSITION_NED = 32;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)]
+    public struct mavlink_local_position_ned_t
+    {
+        /// <summary> Timestamp (milliseconds since system boot) </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> X Position </summary>
+        public  Single x;
+            /// <summary> Y Position </summary>
+        public  Single y;
+            /// <summary> Z Position </summary>
+        public  Single z;
+            /// <summary> X Speed </summary>
+        public  Single vx;
+            /// <summary> Y Speed </summary>
+        public  Single vy;
+            /// <summary> Z Speed </summary>
+        public  Single vz;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_INT = 33;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)]
+    public struct mavlink_global_position_int_t
+    {
+        /// <summary> Timestamp (milliseconds since system boot) </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> Latitude, expressed as * 1E7 </summary>
+        public  Int32 lat;
+            /// <summary> Longitude, expressed as * 1E7 </summary>
+        public  Int32 lon;
+            /// <summary> Altitude in meters, expressed as * 1000 (millimeters), above MSL </summary>
+        public  Int32 alt;
+            /// <summary> Altitude above ground in meters, expressed as * 1000 (millimeters) </summary>
+        public  Int32 relative_alt;
+            /// <summary> Ground X Speed (Latitude), expressed as m/s * 100 </summary>
+        public  Int16 vx;
+            /// <summary> Ground Y Speed (Longitude), expressed as m/s * 100 </summary>
+        public  Int16 vy;
+            /// <summary> Ground Z Speed (Altitude), expressed as m/s * 100 </summary>
+        public  Int16 vz;
+            /// <summary> Compass heading in degrees * 100, 0.0..359.99 degrees. If unknown, set to: 65535 </summary>
+        public  UInt16 hdg;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_RC_CHANNELS_SCALED = 34;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=22)]
+    public struct mavlink_rc_channels_scaled_t
+    {
+        /// <summary> Timestamp (milliseconds since system boot) </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan1_scaled;
+            /// <summary> RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan2_scaled;
+            /// <summary> RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan3_scaled;
+            /// <summary> RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan4_scaled;
+            /// <summary> RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan5_scaled;
+            /// <summary> RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan6_scaled;
+            /// <summary> RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan7_scaled;
+            /// <summary> RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan8_scaled;
+            /// <summary> Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos. </summary>
+        public  byte port;
+            /// <summary> Receive signal strength indicator, 0: 0%, 255: 100% </summary>
+        public  byte rssi;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_RC_CHANNELS_RAW = 35;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=22)]
+    public struct mavlink_rc_channels_raw_t
+    {
+        /// <summary> Timestamp (milliseconds since system boot) </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> RC channel 1 value, in microseconds </summary>
+        public  UInt16 chan1_raw;
+            /// <summary> RC channel 2 value, in microseconds </summary>
+        public  UInt16 chan2_raw;
+            /// <summary> RC channel 3 value, in microseconds </summary>
+        public  UInt16 chan3_raw;
+            /// <summary> RC channel 4 value, in microseconds </summary>
+        public  UInt16 chan4_raw;
+            /// <summary> RC channel 5 value, in microseconds </summary>
+        public  UInt16 chan5_raw;
+            /// <summary> RC channel 6 value, in microseconds </summary>
+        public  UInt16 chan6_raw;
+            /// <summary> RC channel 7 value, in microseconds </summary>
+        public  UInt16 chan7_raw;
+            /// <summary> RC channel 8 value, in microseconds </summary>
+        public  UInt16 chan8_raw;
+            /// <summary> Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos. </summary>
+        public  byte port;
+            /// <summary> Receive signal strength indicator, 0: 0%, 255: 100% </summary>
+        public  byte rssi;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SERVO_OUTPUT_RAW = 36;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=21)]
+    public struct mavlink_servo_output_raw_t
+    {
+        /// <summary> Timestamp (since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt32 time_usec;
+            /// <summary> Servo output 1 value, in microseconds </summary>
+        public  UInt16 servo1_raw;
+            /// <summary> Servo output 2 value, in microseconds </summary>
+        public  UInt16 servo2_raw;
+            /// <summary> Servo output 3 value, in microseconds </summary>
+        public  UInt16 servo3_raw;
+            /// <summary> Servo output 4 value, in microseconds </summary>
+        public  UInt16 servo4_raw;
+            /// <summary> Servo output 5 value, in microseconds </summary>
+        public  UInt16 servo5_raw;
+            /// <summary> Servo output 6 value, in microseconds </summary>
+        public  UInt16 servo6_raw;
+            /// <summary> Servo output 7 value, in microseconds </summary>
+        public  UInt16 servo7_raw;
+            /// <summary> Servo output 8 value, in microseconds </summary>
+        public  UInt16 servo8_raw;
+            /// <summary> Servo output port (set of 8 outputs = 1 port). Most MAVs will just use one, but this allows to encode more than 8 servos. </summary>
+        public  byte port;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MISSION_REQUEST_PARTIAL_LIST = 37;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)]
+    public struct mavlink_mission_request_partial_list_t
+    {
+        /// <summary> Start index, 0 by default </summary>
+        public  Int16 start_index;
+            /// <summary> End index, -1 by default (-1: send list to end). Else a valid index of the list </summary>
+        public  Int16 end_index;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MISSION_WRITE_PARTIAL_LIST = 38;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)]
+    public struct mavlink_mission_write_partial_list_t
+    {
+        /// <summary> Start index, 0 by default and smaller / equal to the largest index of the current onboard list. </summary>
+        public  Int16 start_index;
+            /// <summary> End index, equal or greater than start index. </summary>
+        public  Int16 end_index;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MISSION_ITEM = 39;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=37)]
+    public struct mavlink_mission_item_t
+    {
+        /// <summary> PARAM1 / For NAV command MISSIONs: Radius in which the MISSION is accepted as reached, in meters </summary>
+        public  Single param1;
+            /// <summary> PARAM2 / For NAV command MISSIONs: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds </summary>
+        public  Single param2;
+            /// <summary> PARAM3 / For LOITER command MISSIONs: Orbit to circle around the MISSION, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise. </summary>
+        public  Single param3;
+            /// <summary> PARAM4 / For NAV and LOITER command MISSIONs: Yaw orientation in degrees, [0..360] 0 = NORTH </summary>
+        public  Single param4;
+            /// <summary> PARAM5 / local: x position, global: latitude </summary>
+        public  Single x;
+            /// <summary> PARAM6 / y position: global: longitude </summary>
+        public  Single y;
+            /// <summary> PARAM7 / z position: global: altitude </summary>
+        public  Single z;
+            /// <summary> Sequence </summary>
+        public  UInt16 seq;
+            /// <summary> The scheduled action for the MISSION. see MAV_CMD in common.xml MAVLink specs </summary>
+        public  UInt16 command;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> The coordinate system of the MISSION. see MAV_FRAME in mavlink_types.h </summary>
+        public  byte frame;
+            /// <summary> false:0, true:1 </summary>
+        public  byte current;
+            /// <summary> autocontinue to next wp </summary>
+        public  byte autocontinue;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MISSION_REQUEST = 40;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)]
+    public struct mavlink_mission_request_t
+    {
+        /// <summary> Sequence </summary>
+        public  UInt16 seq;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MISSION_SET_CURRENT = 41;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)]
+    public struct mavlink_mission_set_current_t
+    {
+        /// <summary> Sequence </summary>
+        public  UInt16 seq;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MISSION_CURRENT = 42;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_mission_current_t
+    {
+        /// <summary> Sequence </summary>
+        public  UInt16 seq;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MISSION_REQUEST_LIST = 43;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_mission_request_list_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MISSION_COUNT = 44;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)]
+    public struct mavlink_mission_count_t
+    {
+        /// <summary> Number of mission items in the sequence </summary>
+        public  UInt16 count;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MISSION_CLEAR_ALL = 45;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_mission_clear_all_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MISSION_ITEM_REACHED = 46;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_mission_item_reached_t
+    {
+        /// <summary> Sequence </summary>
+        public  UInt16 seq;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MISSION_ACK = 47;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_mission_ack_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> See MAV_MISSION_RESULT enum </summary>
+        public  byte type;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_GPS_GLOBAL_ORIGIN = 48;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=13)]
+    public struct mavlink_set_gps_global_origin_t
+    {
+        /// <summary> global position * 1E7 </summary>
+        public  Int32 latitude;
+            /// <summary> global position * 1E7 </summary>
+        public  Int32 longitude;
+            /// <summary> global position * 1000 </summary>
+        public  Int32 altitude;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GPS_GLOBAL_ORIGIN = 49;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)]
+    public struct mavlink_gps_global_origin_t
+    {
+        /// <summary> Latitude (WGS84), expressed as * 1E7 </summary>
+        public  Int32 latitude;
+            /// <summary> Longitude (WGS84), expressed as * 1E7 </summary>
+        public  Int32 longitude;
+            /// <summary> Altitude(WGS84), expressed as * 1000 </summary>
+        public  Int32 altitude;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_LOCAL_POSITION_SETPOINT = 50;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=19)]
+    public struct mavlink_set_local_position_setpoint_t
+    {
+        /// <summary> x position </summary>
+        public  Single x;
+            /// <summary> y position </summary>
+        public  Single y;
+            /// <summary> z position </summary>
+        public  Single z;
+            /// <summary> Desired yaw angle </summary>
+        public  Single yaw;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Coordinate frame - valid values are only MAV_FRAME_LOCAL_NED or MAV_FRAME_LOCAL_ENU </summary>
+        public  byte coordinate_frame;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT = 51;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=17)]
+    public struct mavlink_local_position_setpoint_t
+    {
+        /// <summary> x position </summary>
+        public  Single x;
+            /// <summary> y position </summary>
+        public  Single y;
+            /// <summary> z position </summary>
+        public  Single z;
+            /// <summary> Desired yaw angle </summary>
+        public  Single yaw;
+            /// <summary> Coordinate frame - valid values are only MAV_FRAME_LOCAL_NED or MAV_FRAME_LOCAL_ENU </summary>
+        public  byte coordinate_frame;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_SETPOINT_INT = 52;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)]
+    public struct mavlink_global_position_setpoint_int_t
+    {
+        /// <summary> WGS84 Latitude position in degrees * 1E7 </summary>
+        public  Int32 latitude;
+            /// <summary> WGS84 Longitude position in degrees * 1E7 </summary>
+        public  Int32 longitude;
+            /// <summary> WGS84 Altitude in meters * 1000 (positive for up) </summary>
+        public  Int32 altitude;
+            /// <summary> Desired yaw angle in degrees * 100 </summary>
+        public  Int16 yaw;
+            /// <summary> Coordinate frame - valid values are only MAV_FRAME_GLOBAL or MAV_FRAME_GLOBAL_RELATIVE_ALT </summary>
+        public  byte coordinate_frame;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_GLOBAL_POSITION_SETPOINT_INT = 53;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)]
+    public struct mavlink_set_global_position_setpoint_int_t
+    {
+        /// <summary> WGS84 Latitude position in degrees * 1E7 </summary>
+        public  Int32 latitude;
+            /// <summary> WGS84 Longitude position in degrees * 1E7 </summary>
+        public  Int32 longitude;
+            /// <summary> WGS84 Altitude in meters * 1000 (positive for up) </summary>
+        public  Int32 altitude;
+            /// <summary> Desired yaw angle in degrees * 100 </summary>
+        public  Int16 yaw;
+            /// <summary> Coordinate frame - valid values are only MAV_FRAME_GLOBAL or MAV_FRAME_GLOBAL_RELATIVE_ALT </summary>
+        public  byte coordinate_frame;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA = 54;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=27)]
+    public struct mavlink_safety_set_allowed_area_t
+    {
+        /// <summary> x position 1 / Latitude 1 </summary>
+        public  Single p1x;
+            /// <summary> y position 1 / Longitude 1 </summary>
+        public  Single p1y;
+            /// <summary> z position 1 / Altitude 1 </summary>
+        public  Single p1z;
+            /// <summary> x position 2 / Latitude 2 </summary>
+        public  Single p2x;
+            /// <summary> y position 2 / Longitude 2 </summary>
+        public  Single p2y;
+            /// <summary> z position 2 / Altitude 2 </summary>
+        public  Single p2z;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down. </summary>
+        public  byte frame;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA = 55;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=25)]
+    public struct mavlink_safety_allowed_area_t
+    {
+        /// <summary> x position 1 / Latitude 1 </summary>
+        public  Single p1x;
+            /// <summary> y position 1 / Longitude 1 </summary>
+        public  Single p1y;
+            /// <summary> z position 1 / Altitude 1 </summary>
+        public  Single p1z;
+            /// <summary> x position 2 / Latitude 2 </summary>
+        public  Single p2x;
+            /// <summary> y position 2 / Longitude 2 </summary>
+        public  Single p2y;
+            /// <summary> z position 2 / Altitude 2 </summary>
+        public  Single p2z;
+            /// <summary> Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down. </summary>
+        public  byte frame;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST = 56;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_set_roll_pitch_yaw_thrust_t
+    {
+        /// <summary> Desired roll angle in radians </summary>
+        public  Single roll;
+            /// <summary> Desired pitch angle in radians </summary>
+        public  Single pitch;
+            /// <summary> Desired yaw angle in radians </summary>
+        public  Single yaw;
+            /// <summary> Collective thrust, normalized to 0 .. 1 </summary>
+        public  Single thrust;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST = 57;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_set_roll_pitch_yaw_speed_thrust_t
+    {
+        /// <summary> Desired roll angular speed in rad/s </summary>
+        public  Single roll_speed;
+            /// <summary> Desired pitch angular speed in rad/s </summary>
+        public  Single pitch_speed;
+            /// <summary> Desired yaw angular speed in rad/s </summary>
+        public  Single yaw_speed;
+            /// <summary> Collective thrust, normalized to 0 .. 1 </summary>
+        public  Single thrust;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT = 58;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)]
+    public struct mavlink_roll_pitch_yaw_thrust_setpoint_t
+    {
+        /// <summary> Timestamp in milliseconds since system boot </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> Desired roll angle in radians </summary>
+        public  Single roll;
+            /// <summary> Desired pitch angle in radians </summary>
+        public  Single pitch;
+            /// <summary> Desired yaw angle in radians </summary>
+        public  Single yaw;
+            /// <summary> Collective thrust, normalized to 0 .. 1 </summary>
+        public  Single thrust;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT = 59;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)]
+    public struct mavlink_roll_pitch_yaw_speed_thrust_setpoint_t
+    {
+        /// <summary> Timestamp in milliseconds since system boot </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> Desired roll angular speed in rad/s </summary>
+        public  Single roll_speed;
+            /// <summary> Desired pitch angular speed in rad/s </summary>
+        public  Single pitch_speed;
+            /// <summary> Desired yaw angular speed in rad/s </summary>
+        public  Single yaw_speed;
+            /// <summary> Collective thrust, normalized to 0 .. 1 </summary>
+        public  Single thrust;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT = 62;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=26)]
+    public struct mavlink_nav_controller_output_t
+    {
+        /// <summary> Current desired roll in degrees </summary>
+        public  Single nav_roll;
+            /// <summary> Current desired pitch in degrees </summary>
+        public  Single nav_pitch;
+            /// <summary> Current altitude error in meters </summary>
+        public  Single alt_error;
+            /// <summary> Current airspeed error in meters/second </summary>
+        public  Single aspd_error;
+            /// <summary> Current crosstrack error on x-y plane in meters </summary>
+        public  Single xtrack_error;
+            /// <summary> Current desired heading in degrees </summary>
+        public  Int16 nav_bearing;
+            /// <summary> Bearing to current MISSION/target in degrees </summary>
+        public  Int16 target_bearing;
+            /// <summary> Distance to active MISSION in meters </summary>
+        public  UInt16 wp_dist;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_STATE_CORRECTION = 64;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)]
+    public struct mavlink_state_correction_t
+    {
+        /// <summary> x position error </summary>
+        public  Single xErr;
+            /// <summary> y position error </summary>
+        public  Single yErr;
+            /// <summary> z position error </summary>
+        public  Single zErr;
+            /// <summary> roll error (radians) </summary>
+        public  Single rollErr;
+            /// <summary> pitch error (radians) </summary>
+        public  Single pitchErr;
+            /// <summary> yaw error (radians) </summary>
+        public  Single yawErr;
+            /// <summary> x velocity </summary>
+        public  Single vxErr;
+            /// <summary> y velocity </summary>
+        public  Single vyErr;
+            /// <summary> z velocity </summary>
+        public  Single vzErr;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_REQUEST_DATA_STREAM = 66;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)]
+    public struct mavlink_request_data_stream_t
+    {
+        /// <summary> The requested interval between two messages of this type </summary>
+        public  UInt16 req_message_rate;
+            /// <summary> The target requested to send the message stream. </summary>
+        public  byte target_system;
+            /// <summary> The target requested to send the message stream. </summary>
+        public  byte target_component;
+            /// <summary> The ID of the requested data stream </summary>
+        public  byte req_stream_id;
+            /// <summary> 1 to start sending, 0 to stop sending. </summary>
+        public  byte start_stop;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_DATA_STREAM = 67;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)]
+    public struct mavlink_data_stream_t
+    {
+        /// <summary> The requested interval between two messages of this type </summary>
+        public  UInt16 message_rate;
+            /// <summary> The ID of the requested data stream </summary>
+        public  byte stream_id;
+            /// <summary> 1 stream is enabled, 0 stream is stopped. </summary>
+        public  byte on_off;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MANUAL_CONTROL = 69;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=21)]
+    public struct mavlink_manual_control_t
+    {
+        /// <summary> roll </summary>
+        public  Single roll;
+            /// <summary> pitch </summary>
+        public  Single pitch;
+            /// <summary> yaw </summary>
+        public  Single yaw;
+            /// <summary> thrust </summary>
+        public  Single thrust;
+            /// <summary> The system to be controlled </summary>
+        public  byte target;
+            /// <summary> roll control enabled auto:0, manual:1 </summary>
+        public  byte roll_manual;
+            /// <summary> pitch auto:0, manual:1 </summary>
+        public  byte pitch_manual;
+            /// <summary> yaw auto:0, manual:1 </summary>
+        public  byte yaw_manual;
+            /// <summary> thrust auto:0, manual:1 </summary>
+        public  byte thrust_manual;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE = 70;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_rc_channels_override_t
+    {
+        /// <summary> RC channel 1 value, in microseconds </summary>
+        public  UInt16 chan1_raw;
+            /// <summary> RC channel 2 value, in microseconds </summary>
+        public  UInt16 chan2_raw;
+            /// <summary> RC channel 3 value, in microseconds </summary>
+        public  UInt16 chan3_raw;
+            /// <summary> RC channel 4 value, in microseconds </summary>
+        public  UInt16 chan4_raw;
+            /// <summary> RC channel 5 value, in microseconds </summary>
+        public  UInt16 chan5_raw;
+            /// <summary> RC channel 6 value, in microseconds </summary>
+        public  UInt16 chan6_raw;
+            /// <summary> RC channel 7 value, in microseconds </summary>
+        public  UInt16 chan7_raw;
+            /// <summary> RC channel 8 value, in microseconds </summary>
+        public  UInt16 chan8_raw;
+            /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_VFR_HUD = 74;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)]
+    public struct mavlink_vfr_hud_t
+    {
+        /// <summary> Current airspeed in m/s </summary>
+        public  Single airspeed;
+            /// <summary> Current ground speed in m/s </summary>
+        public  Single groundspeed;
+            /// <summary> Current altitude (MSL), in meters </summary>
+        public  Single alt;
+            /// <summary> Current climb rate in meters/second </summary>
+        public  Single climb;
+            /// <summary> Current heading in degrees, in compass units (0..360, 0=north) </summary>
+        public  Int16 heading;
+            /// <summary> Current throttle setting in integer percent, 0 to 100 </summary>
+        public  UInt16 throttle;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_COMMAND_LONG = 76;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=33)]
+    public struct mavlink_command_long_t
+    {
+        /// <summary> Parameter 1, as defined by MAV_CMD enum. </summary>
+        public  Single param1;
+            /// <summary> Parameter 2, as defined by MAV_CMD enum. </summary>
+        public  Single param2;
+            /// <summary> Parameter 3, as defined by MAV_CMD enum. </summary>
+        public  Single param3;
+            /// <summary> Parameter 4, as defined by MAV_CMD enum. </summary>
+        public  Single param4;
+            /// <summary> Parameter 5, as defined by MAV_CMD enum. </summary>
+        public  Single param5;
+            /// <summary> Parameter 6, as defined by MAV_CMD enum. </summary>
+        public  Single param6;
+            /// <summary> Parameter 7, as defined by MAV_CMD enum. </summary>
+        public  Single param7;
+            /// <summary> Command ID, as defined by MAV_CMD enum. </summary>
+        public  UInt16 command;
+            /// <summary> System which should execute the command </summary>
+        public  byte target_system;
+            /// <summary> Component which should execute the command, 0 for all components </summary>
+        public  byte target_component;
+            /// <summary> 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command) </summary>
+        public  byte confirmation;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_COMMAND_ACK = 77;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_command_ack_t
+    {
+        /// <summary> Command ID, as defined by MAV_CMD enum. </summary>
+        public  UInt16 command;
+            /// <summary> See MAV_RESULT enum </summary>
+        public  byte result;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_HIL_STATE = 90;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=56)]
+    public struct mavlink_hil_state_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 time_usec;
+            /// <summary> Roll angle (rad) </summary>
+        public  Single roll;
+            /// <summary> Pitch angle (rad) </summary>
+        public  Single pitch;
+            /// <summary> Yaw angle (rad) </summary>
+        public  Single yaw;
+            /// <summary> Roll angular speed (rad/s) </summary>
+        public  Single rollspeed;
+            /// <summary> Pitch angular speed (rad/s) </summary>
+        public  Single pitchspeed;
+            /// <summary> Yaw angular speed (rad/s) </summary>
+        public  Single yawspeed;
+            /// <summary> Latitude, expressed as * 1E7 </summary>
+        public  Int32 lat;
+            /// <summary> Longitude, expressed as * 1E7 </summary>
+        public  Int32 lon;
+            /// <summary> Altitude in meters, expressed as * 1000 (millimeters) </summary>
+        public  Int32 alt;
+            /// <summary> Ground X Speed (Latitude), expressed as m/s * 100 </summary>
+        public  Int16 vx;
+            /// <summary> Ground Y Speed (Longitude), expressed as m/s * 100 </summary>
+        public  Int16 vy;
+            /// <summary> Ground Z Speed (Altitude), expressed as m/s * 100 </summary>
+        public  Int16 vz;
+            /// <summary> X acceleration (mg) </summary>
+        public  Int16 xacc;
+            /// <summary> Y acceleration (mg) </summary>
+        public  Int16 yacc;
+            /// <summary> Z acceleration (mg) </summary>
+        public  Int16 zacc;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_HIL_CONTROLS = 91;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=42)]
+    public struct mavlink_hil_controls_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 time_usec;
+            /// <summary> Control output -1 .. 1 </summary>
+        public  Single roll_ailerons;
+            /// <summary> Control output -1 .. 1 </summary>
+        public  Single pitch_elevator;
+            /// <summary> Control output -1 .. 1 </summary>
+        public  Single yaw_rudder;
+            /// <summary> Throttle 0 .. 1 </summary>
+        public  Single throttle;
+            /// <summary> Aux 1, -1 .. 1 </summary>
+        public  Single aux1;
+            /// <summary> Aux 2, -1 .. 1 </summary>
+        public  Single aux2;
+            /// <summary> Aux 3, -1 .. 1 </summary>
+        public  Single aux3;
+            /// <summary> Aux 4, -1 .. 1 </summary>
+        public  Single aux4;
+            /// <summary> System mode (MAV_MODE) </summary>
+        public  byte mode;
+            /// <summary> Navigation mode (MAV_NAV_MODE) </summary>
+        public  byte nav_mode;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_HIL_RC_INPUTS_RAW = 92;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=33)]
+    public struct mavlink_hil_rc_inputs_raw_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 time_usec;
+            /// <summary> RC channel 1 value, in microseconds </summary>
+        public  UInt16 chan1_raw;
+            /// <summary> RC channel 2 value, in microseconds </summary>
+        public  UInt16 chan2_raw;
+            /// <summary> RC channel 3 value, in microseconds </summary>
+        public  UInt16 chan3_raw;
+            /// <summary> RC channel 4 value, in microseconds </summary>
+        public  UInt16 chan4_raw;
+            /// <summary> RC channel 5 value, in microseconds </summary>
+        public  UInt16 chan5_raw;
+            /// <summary> RC channel 6 value, in microseconds </summary>
+        public  UInt16 chan6_raw;
+            /// <summary> RC channel 7 value, in microseconds </summary>
+        public  UInt16 chan7_raw;
+            /// <summary> RC channel 8 value, in microseconds </summary>
+        public  UInt16 chan8_raw;
+            /// <summary> RC channel 9 value, in microseconds </summary>
+        public  UInt16 chan9_raw;
+            /// <summary> RC channel 10 value, in microseconds </summary>
+        public  UInt16 chan10_raw;
+            /// <summary> RC channel 11 value, in microseconds </summary>
+        public  UInt16 chan11_raw;
+            /// <summary> RC channel 12 value, in microseconds </summary>
+        public  UInt16 chan12_raw;
+            /// <summary> Receive signal strength indicator, 0: 0%, 255: 100% </summary>
+        public  byte rssi;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_OPTICAL_FLOW = 100;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_optical_flow_t
+    {
+        /// <summary> Timestamp (UNIX) </summary>
+        public  UInt64 time_usec;
+            /// <summary> Ground distance in meters </summary>
+        public  Single ground_distance;
+            /// <summary> Flow in pixels in x-sensor direction </summary>
+        public  Int16 flow_x;
+            /// <summary> Flow in pixels in y-sensor direction </summary>
+        public  Int16 flow_y;
+            /// <summary> Sensor ID </summary>
+        public  byte sensor_id;
+            /// <summary> Optical flow quality / confidence. 0: bad, 255: maximum quality </summary>
+        public  byte quality;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GLOBAL_VISION_POSITION_ESTIMATE = 101;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)]
+    public struct mavlink_global_vision_position_estimate_t
+    {
+        /// <summary> Timestamp (milliseconds) </summary>
+        public  UInt64 usec;
+            /// <summary> Global X position </summary>
+        public  Single x;
+            /// <summary> Global Y position </summary>
+        public  Single y;
+            /// <summary> Global Z position </summary>
+        public  Single z;
+            /// <summary> Roll angle in rad </summary>
+        public  Single roll;
+            /// <summary> Pitch angle in rad </summary>
+        public  Single pitch;
+            /// <summary> Yaw angle in rad </summary>
+        public  Single yaw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE = 102;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)]
+    public struct mavlink_vision_position_estimate_t
+    {
+        /// <summary> Timestamp (milliseconds) </summary>
+        public  UInt64 usec;
+            /// <summary> Global X position </summary>
+        public  Single x;
+            /// <summary> Global Y position </summary>
+        public  Single y;
+            /// <summary> Global Z position </summary>
+        public  Single z;
+            /// <summary> Roll angle in rad </summary>
+        public  Single roll;
+            /// <summary> Pitch angle in rad </summary>
+        public  Single pitch;
+            /// <summary> Yaw angle in rad </summary>
+        public  Single yaw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_VISION_SPEED_ESTIMATE = 103;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)]
+    public struct mavlink_vision_speed_estimate_t
+    {
+        /// <summary> Timestamp (milliseconds) </summary>
+        public  UInt64 usec;
+            /// <summary> Global X speed </summary>
+        public  Single x;
+            /// <summary> Global Y speed </summary>
+        public  Single y;
+            /// <summary> Global Z speed </summary>
+        public  Single z;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_VICON_POSITION_ESTIMATE = 104;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)]
+    public struct mavlink_vicon_position_estimate_t
+    {
+        /// <summary> Timestamp (milliseconds) </summary>
+        public  UInt64 usec;
+            /// <summary> Global X position </summary>
+        public  Single x;
+            /// <summary> Global Y position </summary>
+        public  Single y;
+            /// <summary> Global Z position </summary>
+        public  Single z;
+            /// <summary> Roll angle in rad </summary>
+        public  Single roll;
+            /// <summary> Pitch angle in rad </summary>
+        public  Single pitch;
+            /// <summary> Yaw angle in rad </summary>
+        public  Single yaw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MEMORY_VECT = 249;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)]
+    public struct mavlink_memory_vect_t
+    {
+        /// <summary> Starting address of the debug variables </summary>
+        public  UInt16 address;
+            /// <summary> Version code of the type variable. 0=unknown, type ignored and assumed int16_t. 1=as below </summary>
+        public  byte ver;
+            /// <summary> Type code of the memory variables. for ver = 1: 0=16 x int16_t, 1=16 x uint16_t, 2=16 x Q15, 3=16 x 1Q14 </summary>
+        public  byte type;
+            /// <summary> Memory contents at specified address </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)]
+		public byte[] value;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_DEBUG_VECT = 250;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=30)]
+    public struct mavlink_debug_vect_t
+    {
+        /// <summary> Timestamp </summary>
+        public  UInt64 time_usec;
+            /// <summary> x </summary>
+        public  Single x;
+            /// <summary> y </summary>
+        public  Single y;
+            /// <summary> z </summary>
+        public  Single z;
+            /// <summary> Name </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)]
+		public string name;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_NAMED_VALUE_FLOAT = 251;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_named_value_float_t
+    {
+        /// <summary> Timestamp (milliseconds since system boot) </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> Floating point value </summary>
+        public  Single value;
+            /// <summary> Name of the debug variable </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)]
+		public string name;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_NAMED_VALUE_INT = 252;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_named_value_int_t
+    {
+        /// <summary> Timestamp (milliseconds since system boot) </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> Signed integer value </summary>
+        public  Int32 value;
+            /// <summary> Name of the debug variable </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)]
+		public string name;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_STATUSTEXT = 253;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=51)]
+    public struct mavlink_statustext_t
+    {
+        /// <summary> Severity of status, 0 = info message, 255 = critical fault </summary>
+        public  byte severity;
+            /// <summary> Status text message, without null termination character </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=50)]
+		public string text;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_DEBUG = 254;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=9)]
+    public struct mavlink_debug_t
+    {
+        /// <summary> Timestamp (milliseconds since system boot) </summary>
+        public  UInt32 time_boot_ms;
+            /// <summary> DEBUG value </summary>
+        public  Single value;
+            /// <summary> index of debug variable </summary>
+        public  byte ind;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_EXTENDED_MESSAGE = 255;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_extended_message_t
+    {
+        /// <summary> System which should execute the command </summary>
+        public  byte target_system;
+            /// <summary> Component which should execute the command, 0 for all components </summary>
+        public  byte target_component;
+            /// <summary> Retransmission / ACK flags </summary>
+        public  byte protocol_flags;
+    
+    };
+
+     }
+#endif
+}
diff --git a/Tools/ArdupilotMegaPlanner/MAVLinkTypes0.9.cs b/Tools/ArdupilotMegaPlanner/MAVLinkTypes0.9.cs
index 73d32cf4b..c869616dc 100644
--- a/Tools/ArdupilotMegaPlanner/MAVLinkTypes0.9.cs
+++ b/Tools/ArdupilotMegaPlanner/MAVLinkTypes0.9.cs
@@ -5,1192 +5,1783 @@ using System.Runtime.InteropServices;
 
 namespace ArdupilotMega
 {
-    #if !MAVLINK10
+#if !MAVLINK10
     partial class MAVLink
     {
-		public byte[] MAVLINK_MESSAGE_LENGTHS = new byte[] {3, 4, 8, 14, 8, 28, 3, 32, 0, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 19, 2, 23, 21, 0, 37, 26, 101, 26, 16, 32, 32, 37, 32, 11, 17, 17, 16, 18, 36, 4, 4, 2, 2, 4, 2, 2, 3, 14, 12, 18, 16, 8, 27, 25, 18, 18, 24, 24, 0, 0, 0, 26, 16, 36, 5, 6, 56, 26, 21, 18, 0, 0, 18, 20, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 8, 4, 12, 15, 13, 6, 15, 14, 0, 12, 3, 8, 28, 36, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 14, 14, 51, 5};
-		public byte[] MAVLINK_MESSAGE_CRCS = new byte[] {72, 39, 190, 92, 191, 217, 104, 119, 0, 219, 60, 186, 10, 0, 0, 0, 0, 0, 0, 0, 89, 159, 162, 121, 0, 149, 222, 110, 179, 136, 66, 126, 185, 147, 112, 252, 162, 215, 229, 128, 9, 106, 101, 213, 4, 229, 21, 214, 215, 14, 206, 50, 157, 126, 108, 213, 95, 5, 127, 0, 0, 0, 57, 126, 130, 119, 193, 191, 236, 158, 143, 0, 0, 104, 123, 131, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 29, 208, 188, 118, 242, 19, 97, 233, 0, 18, 68, 136, 205, 42, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 224, 60, 106, 7};
-		public 		enum MAV_MOUNT_MODE
-		{
-			MAV_MOUNT_MODE_RETRACT=0, /* Load and keep safe position (Roll,Pitch,Yaw) from EEPROM and stop stabilization | */
-			MAV_MOUNT_MODE_NEUTRAL=1, /* Load and keep neutral position (Roll,Pitch,Yaw) from EEPROM. | */
-			MAV_MOUNT_MODE_MAVLINK_TARGETING=2, /* Load neutral position and start MAVLink Roll,Pitch,Yaw control with stabilization | */
-			MAV_MOUNT_MODE_RC_TARGETING=3, /* Load neutral position and start RC Roll,Pitch,Yaw control with stabilization | */
-			MAV_MOUNT_MODE_GPS_POINT=4, /* Load neutral position and start to point to Lat,Lon,Alt | */
-			MAV_MOUNT_MODE_ENUM_END=5, /*  | */
-		};
-
-		public 		enum MAV_CMD
-		{
-			WAYPOINT=16, /* Navigate to waypoint. |Hold time in decimal seconds. (ignored by fixed wing, time to stay at waypoint for rotary wing)| Acceptance radius in meters (if the sphere with this radius is hit, the waypoint counts as reached)| 0 to pass through the WP, if > 0 radius in meters to pass by WP. Positive value for clockwise orbit, negative value for counter-clockwise orbit. Allows trajectory control.| Desired yaw angle at waypoint (rotary wing)| Latitude| Longitude| Altitude|  */
-			LOITER_UNLIM=17, /* Loiter around this waypoint an unlimited amount of time |Empty| Empty| Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
-			LOITER_TURNS=18, /* Loiter around this waypoint for X turns |Turns| Empty| Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
-			LOITER_TIME=19, /* Loiter around this waypoint for X seconds |Seconds (decimal)| Empty| Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  */
-			RETURN_TO_LAUNCH=20, /* Return to launch location |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			LAND=21, /* Land at location |Empty| Empty| Empty| Desired yaw angle.| Latitude| Longitude| Altitude|  */
-			TAKEOFF=22, /* Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude|  */
-			ROI=80, /* Sets the region of interest (ROI) for a sensor set or the
-		            vehicle itself. This can then be used by the vehicles control
-		            system to control the vehicle attitude and the attitude of various
-		            sensors such as cameras. |Region of intereset mode. (see MAV_ROI enum)| Waypoint index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple ROI's)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  */
-			PATHPLANNING=81, /* Control autonomous path planning on the MAV. |0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning| 0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid| Empty| Yaw angle at goal, in compass degrees, [0..360]| Latitude/X of goal| Longitude/Y of goal| Altitude/Z of goal|  */
-			LAST=95, /* NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			CONDITION_DELAY=112, /* Delay mission state machine. |Delay in seconds (decimal)| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			CONDITION_CHANGE_ALT=113, /* Ascend/descend at rate.  Delay mission state machine until desired altitude reached. |Descent / Ascend rate (m/s)| Empty| Empty| Empty| Empty| Empty| Finish Altitude|  */
-			CONDITION_DISTANCE=114, /* Delay mission state machine until within desired distance of next NAV point. |Distance (meters)| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			CONDITION_YAW=115, /* Reach a certain target angle. |target angle: [0-360], 0 is north| speed during yaw change:[deg per second]| direction: negative: counter clockwise, positive: clockwise [-1,1]| relative offset or absolute angle: [ 1,0]| Empty| Empty| Empty|  */
-			CONDITION_LAST=159, /* NOP - This command is only used to mark the upper limit of the CONDITION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			DO_SET_MODE=176, /* Set system mode. |Mode, as defined by ENUM MAV_MODE| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			DO_JUMP=177, /* Jump to the desired command in the mission list.  Repeat this action only the specified number of times |Sequence number| Repeat count| Empty| Empty| Empty| Empty| Empty|  */
-			DO_CHANGE_SPEED=178, /* Change speed and/or throttle set points. |Speed type (0=Airspeed, 1=Ground Speed)| Speed  (m/s, -1 indicates no change)| Throttle  ( Percent, -1 indicates no change)| Empty| Empty| Empty| Empty|  */
-			DO_SET_HOME=179, /* Changes the home location either to the current location or a specified location. |Use current (1=use current location, 0=use specified location)| Empty| Empty| Empty| Latitude| Longitude| Altitude|  */
-			DO_SET_PARAMETER=180, /* Set a system parameter.  Caution!  Use of this command requires knowledge of the numeric enumeration value of the parameter. |Parameter number| Parameter value| Empty| Empty| Empty| Empty| Empty|  */
-			DO_SET_RELAY=181, /* Set a relay to a condition. |Relay number| Setting (1=on, 0=off, others possible depending on system hardware)| Empty| Empty| Empty| Empty| Empty|  */
-			DO_REPEAT_RELAY=182, /* Cycle a relay on and off for a desired number of cyles with a desired period. |Relay number| Cycle count| Cycle time (seconds, decimal)| Empty| Empty| Empty| Empty|  */
-			DO_SET_SERVO=183, /* Set a servo to a desired PWM value. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Empty| Empty| Empty| Empty| Empty|  */
-			DO_REPEAT_SERVO=184, /* Cycle a between its nominal setting and a desired PWM for a desired number of cycles with a desired period. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Cycle count| Cycle time (seconds)| Empty| Empty| Empty|  */
-			DO_CONTROL_VIDEO=200, /* Control onboard camera capturing. |Camera ID (-1 for all)| Transmission: 0: disabled, 1: enabled compressed, 2: enabled raw| Transmission mode: 0: video stream, >0: single images every n seconds (decimal)| Recording: 0: disabled, 1: enabled compressed, 2: enabled raw| Empty| Empty| Empty|  */
-			DO_SET_ROI=201, /* Sets the region of interest (ROI) for a sensor set or the
-		                    vehicle itself. This can then be used by the vehicles control
-		                    system to control the vehicle attitude and the attitude of various
-		                    devices such as cameras.
-		                 |Region of interest mode. (see MAV_ROI enum)| Waypoint index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple cameras etc.)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  */
-			DO_DIGICAM_CONFIGURE=202, /* Mission command to configure an on-board camera controller system. |Modes: P, TV, AV, M, Etc| Shutter speed: Divisor number for one second| Aperture: F stop number| ISO number e.g. 80, 100, 200, Etc| Exposure type enumerator| Command Identity| Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)|  */
-			DO_DIGICAM_CONTROL=203, /* Mission command to control an on-board camera controller system. |Session control e.g. show/hide lens| Zoom's absolute position| Zooming step value to offset zoom from the current position| Focus Locking, Unlocking or Re-locking| Shooting Command| Command Identity| Empty|  */
-			DO_MOUNT_CONFIGURE=204, /* Mission command to configure a camera or antenna mount |Mount operation mode (see MAV_MOUNT_MODE enum)| stabilize roll? (1 = yes, 0 = no)| stabilize pitch? (1 = yes, 0 = no)| stabilize yaw? (1 = yes, 0 = no)| Empty| Empty| Empty|  */
-			DO_MOUNT_CONTROL=205, /* Mission command to control a camera or antenna mount |pitch(deg*100) or lat, depending on mount mode.| roll(deg*100) or lon depending on mount mode| yaw(deg*100) or alt (in cm) depending on mount mode| Empty| Empty| Empty| Empty|  */
-			DO_LAST=240, /* NOP - This command is only used to mark the upper limit of the DO commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  */
-			PREFLIGHT_CALIBRATION=241, /* Trigger calibration. This command will be only accepted if in pre-flight mode. |Gyro calibration: 0: no, 1: yes| Magnetometer calibration: 0: no, 1: yes| Ground pressure: 0: no, 1: yes| Radio calibration: 0: no, 1: yes| Empty| Empty| Empty|  */
-			PREFLIGHT_STORAGE=245, /* Request storage of different parameter values and logs. This command will be only accepted if in pre-flight mode. |Parameter storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Mission storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Reserved| Reserved| Empty| Empty| Empty|  */
-			ENUM_END=246, /*  | */
-		};
-
-		public const byte MAVLINK_MSG_ID_AP_ADC = 153;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_ap_adc_t
-		{
-		 public ushort adc1; /// ADC output 1
-		 public ushort adc2; /// ADC output 2
-		 public ushort adc3; /// ADC output 3
-		 public ushort adc4; /// ADC output 4
-		 public ushort adc5; /// ADC output 5
-		 public ushort adc6; /// ADC output 6
-		};
-
-		public const byte MAVLINK_MSG_ID_AP_ADC_LEN = 12;
-		public const byte MAVLINK_MSG_ID_DCM = 163;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_dcm_t
-		{
-		public float omegaIx; /// X gyro drift estimate rad/s
-		public float omegaIy; /// Y gyro drift estimate rad/s
-		public float omegaIz; /// Z gyro drift estimate rad/s
-		public float accel_weight; /// average accel_weight
-		public float renorm_val; /// average renormalisation value
-		public float error_rp; /// average error_roll_pitch value
-		public float error_yaw; /// average error_yaw value
-		};
-
-		public const byte MAVLINK_MSG_ID_DCM_LEN = 28;
-		public const byte MAVLINK_MSG_ID_DIGICAM_CONFIGURE = 154;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_digicam_configure_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte mode; /// Mode enumeration from 1 to N //P, TV, AV, M, Etc (0 means ignore)
-		 public ushort shutter_speed; /// Divisor number //e.g. 1000 means 1/1000 (0 means ignore)
-		 public byte aperture; /// F stop number x 10 //e.g. 28 means 2.8 (0 means ignore)
-		 public byte iso; /// ISO enumeration from 1 to N //e.g. 80, 100, 200, Etc (0 means ignore)
-		 public byte exposure_type; /// Exposure type enumeration from 1 to N (0 means ignore)
-		 public byte command_id; /// Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once
-		 public byte engine_cut_off; /// Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)
-		 public byte extra_param; /// Extra parameters enumeration (0 means ignore)
-		public float extra_value; /// Correspondent value to given extra_param
-		};
-
-		public const byte MAVLINK_MSG_ID_DIGICAM_CONFIGURE_LEN = 15;
-		public const byte MAVLINK_MSG_ID_DIGICAM_CONTROL = 155;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_digicam_control_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte session; /// 0: stop, 1: start or keep it up //Session control e.g. show/hide lens
-		 public byte zoom_pos; /// 1 to N //Zoom's absolute position (0 means ignore)
-		 public byte zoom_step; /// -100 to 100 //Zooming step value to offset zoom from the current position
-		 public byte focus_lock; /// 0: unlock focus or keep unlocked, 1: lock focus or keep locked, 3: re-lock focus
-		 public byte shot; /// 0: ignore, 1: shot or start filming
-		 public byte command_id; /// Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once
-		 public byte extra_param; /// Extra parameters enumeration (0 means ignore)
-		public float extra_value; /// Correspondent value to given extra_param
-		};
-
-		public const byte MAVLINK_MSG_ID_DIGICAM_CONTROL_LEN = 13;
-		public const byte MAVLINK_MSG_ID_FENCED_FETCH_POINT = 161;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_fenced_fetch_point_t
-		{
-		 public byte idx; /// point index (first point is 1, 0 is for return point)
-		};
-
-		public const byte MAVLINK_MSG_ID_FENCED_FETCH_POINT_LEN = 1;
-		public const byte MAVLINK_MSG_ID_FENCED_POINT = 160;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_fenced_point_t
-		{
-		 public byte idx; /// point index (first point is 1, 0 is for return point)
-		 public byte count; /// total number of points (for sanity checking)
-		public float lat; /// Latitude of point
-		public float lng; /// Longitude of point
-		};
-
-		public const byte MAVLINK_MSG_ID_FENCED_POINT_LEN = 10;
-		public const byte MAVLINK_MSG_ID_FENCE_FETCH_POINT = 161;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_fence_fetch_point_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte idx; /// point index (first point is 1, 0 is for return point)
-		};
-
-		public const byte MAVLINK_MSG_ID_FENCE_FETCH_POINT_LEN = 3;
-		public const byte MAVLINK_MSG_ID_FENCE_POINT = 160;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_fence_point_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte idx; /// point index (first point is 1, 0 is for return point)
-		 public byte count; /// total number of points (for sanity checking)
-		public float lat; /// Latitude of point
-		public float lng; /// Longitude of point
-		};
-
-		public const byte MAVLINK_MSG_ID_FENCE_POINT_LEN = 12;
-		public const byte MAVLINK_MSG_ID_FENCE_STATUS = 162;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_fence_status_t
-		{
-		 public byte breach_status; /// 0 if currently inside fence, 1 if outside
-		 public ushort breach_count; /// number of fence breaches
-		 public byte breach_type; /// last breach type (see FENCE_BREACH_* enum)
-		 public uint breach_time; /// time of last breach in milliseconds since boot
-		};
-
-		public const byte MAVLINK_MSG_ID_FENCE_STATUS_LEN = 8;
-		public const byte MAVLINK_MSG_ID_HWSTATUS = 165;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_hwstatus_t
-		{
-		 public ushort Vcc; /// board voltage (mV)
-		 public byte I2Cerr; /// I2C error count
-		};
-
-		public const byte MAVLINK_MSG_ID_HWSTATUS_LEN = 3;
-		public const byte MAVLINK_MSG_ID_MEMINFO = 152;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_meminfo_t
-		{
-		 public ushort brkval; /// heap top
-		 public ushort freemem; /// free memory
-		};
-
-		public const byte MAVLINK_MSG_ID_MEMINFO_LEN = 4;
-		public const byte MAVLINK_MSG_ID_MOUNT_CONFIGURE = 156;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mount_configure_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte mount_mode; /// mount operating mode (see MAV_MOUNT_MODE enum)
-		 public byte stab_roll; /// (1 = yes, 0 = no)
-		 public byte stab_pitch; /// (1 = yes, 0 = no)
-		 public byte stab_yaw; /// (1 = yes, 0 = no)
-		};
-
-		public const byte MAVLINK_MSG_ID_MOUNT_CONFIGURE_LEN = 6;
-		public const byte MAVLINK_MSG_ID_MOUNT_CONTROL = 157;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mount_control_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public int input_a; /// pitch(deg*100) or lat, depending on mount mode
-		 public int input_b; /// roll(deg*100) or lon depending on mount mode
-		 public int input_c; /// yaw(deg*100) or alt (in cm) depending on mount mode
-		 public byte save_position; /// if "1" it will save current trimmed position on EEPROM (just valid for NEUTRAL and LANDING)
-		};
-
-		public const byte MAVLINK_MSG_ID_MOUNT_CONTROL_LEN = 15;
-		public const byte MAVLINK_MSG_ID_MOUNT_STATUS = 158;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_mount_status_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public int pointing_a; /// pitch(deg*100) or lat, depending on mount mode
-		 public int pointing_b; /// roll(deg*100) or lon depending on mount mode
-		 public int pointing_c; /// yaw(deg*100) or alt (in cm) depending on mount mode
-		};
-
-		public const byte MAVLINK_MSG_ID_MOUNT_STATUS_LEN = 14;
-		public const byte MAVLINK_MSG_ID_SENSOR_OFFSETS = 150;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_sensor_offsets_t
-		{
-		 public short mag_ofs_x; /// magnetometer X offset
-		 public short mag_ofs_y; /// magnetometer Y offset
-		 public short mag_ofs_z; /// magnetometer Z offset
-		public float mag_declination; /// magnetic declination (radians)
-		 public int raw_press; /// raw pressure from barometer
-		 public int raw_temp; /// raw temperature from barometer
-		public float gyro_cal_x; /// gyro X calibration
-		public float gyro_cal_y; /// gyro Y calibration
-		public float gyro_cal_z; /// gyro Z calibration
-		public float accel_cal_x; /// accel X calibration
-		public float accel_cal_y; /// accel Y calibration
-		public float accel_cal_z; /// accel Z calibration
-		};
-
-		public const byte MAVLINK_MSG_ID_SENSOR_OFFSETS_LEN = 42;
-		public const byte MAVLINK_MSG_ID_SET_MAG_OFFSETS = 151;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_mag_offsets_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public short mag_ofs_x; /// magnetometer X offset
-		 public short mag_ofs_y; /// magnetometer Y offset
-		 public short mag_ofs_z; /// magnetometer Z offset
-		};
-
-		public const byte MAVLINK_MSG_ID_SET_MAG_OFFSETS_LEN = 8;
-		public const byte MAVLINK_MSG_ID_SIMSTATE = 164;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_simstate_t
-		{
-		public float roll; /// Roll angle (rad)
-		public float pitch; /// Pitch angle (rad)
-		public float yaw; /// Yaw angle (rad)
-		public float xacc; /// X acceleration m/s/s
-		public float yacc; /// Y acceleration m/s/s
-		public float zacc; /// Z acceleration m/s/s
-		public float xgyro; /// Angular speed around X axis rad/s
-		public float ygyro; /// Angular speed around Y axis rad/s
-		public float zgyro; /// Angular speed around Z axis rad/s
-		};
-
-		public const byte MAVLINK_MSG_ID_SIMSTATE_LEN = 36;
-		public 		enum MAV_DATA_STREAM
-		{
-			MAV_DATA_STREAM_ALL=0, /* Enable all data streams | */
-			MAV_DATA_STREAM_RAW_SENSORS=1, /* Enable IMU_RAW, GPS_RAW, GPS_STATUS packets. | */
-			MAV_DATA_STREAM_EXTENDED_STATUS=2, /* Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS | */
-			MAV_DATA_STREAM_RC_CHANNELS=3, /* Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW | */
-			MAV_DATA_STREAM_RAW_CONTROLLER=4, /* Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT. | */
-			MAV_DATA_STREAM_POSITION=6, /* Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages. | */
-			MAV_DATA_STREAM_EXTRA1=10, /* Dependent on the autopilot | */
-			MAV_DATA_STREAM_EXTRA2=11, /* Dependent on the autopilot | */
-			MAV_DATA_STREAM_EXTRA3=12, /* Dependent on the autopilot | */
-			MAV_DATA_STREAM_ENUM_END=13, /*  | */
-		};
-
-		public 		enum MAV_ROI
-		{
-			MAV_ROI_NONE=0, /* No region of interest. | */
-			MAV_ROI_WPNEXT=1, /* Point toward next waypoint. | */
-			MAV_ROI_WPINDEX=2, /* Point toward given waypoint. | */
-			MAV_ROI_LOCATION=3, /* Point toward fixed location. | */
-			MAV_ROI_TARGET=4, /* Point toward of given id. | */
-			MAV_ROI_ENUM_END=5, /*  | */
-		};
-
-		public const byte MAVLINK_MSG_ID_ACTION = 10;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_action_t
-		{
-		 public byte target; /// The system executing the action
-		 public byte target_component; /// The component executing the action
-		 public byte action; /// The action id
-		};
-
-		public const byte MAVLINK_MSG_ID_ACTION_LEN = 3;
-		public const byte MAVLINK_MSG_ID_ACTION_ACK = 9;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_action_ack_t
-		{
-		 public byte action; /// The action id
-		 public byte result; /// 0: Action DENIED, 1: Action executed
-		};
-
-		public const byte MAVLINK_MSG_ID_ACTION_ACK_LEN = 2;
-		public const byte MAVLINK_MSG_ID_ATTITUDE = 30;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_attitude_t
-		{
-		 public ulong usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		public float roll; /// Roll angle (rad)
-		public float pitch; /// Pitch angle (rad)
-		public float yaw; /// Yaw angle (rad)
-		public float rollspeed; /// Roll angular speed (rad/s)
-		public float pitchspeed; /// Pitch angular speed (rad/s)
-		public float yawspeed; /// Yaw angular speed (rad/s)
-		};
-
-		public const byte MAVLINK_MSG_ID_ATTITUDE_LEN = 32;
-		public const byte MAVLINK_MSG_ID_AUTH_KEY = 7;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_auth_key_t
-		{
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=32)] 
-		 public byte[] key; /// key
-		};
-
-		public const byte MAVLINK_MSG_ID_AUTH_KEY_LEN = 32;
-		public const byte MAVLINK_MSG_ID_BOOT = 1;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_boot_t
-		{
-		 public uint version; /// The onboard software version
-		};
-
-		public const byte MAVLINK_MSG_ID_BOOT_LEN = 4;
-		public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL = 5;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_change_operator_control_t
-		{
-		 public byte target_system; /// System the GCS requests control for
-		 public byte control_request; /// 0: request control of this MAV, 1: Release control of this MAV
-		 public byte version; /// 0: key as plaintext, 1-255: future, different hashing/encryption variants. The GCS should in general use the safest mode possible initially and then gradually move down the encryption level if it gets a NACK message indicating an encryption mismatch.
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=25)] 
-		 public byte[] passkey; /// Password / Key, depending on version plaintext or encrypted. 25 or less characters, NULL terminated. The characters may involve A-Z, a-z, 0-9, and "!?,.-"
-		};
-
-		public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_LEN = 28;
-		public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK = 6;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_change_operator_control_ack_t
-		{
-		 public byte gcs_system_id; /// ID of the GCS this message 
-		 public byte control_request; /// 0: request control of this MAV, 1: Release control of this MAV
-		 public byte ack; /// 0: ACK, 1: NACK: Wrong passkey, 2: NACK: Unsupported passkey encryption method, 3: NACK: Already under control
-		};
-
-		public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK_LEN = 3;
-		public const byte MAVLINK_MSG_ID_COMMAND = 75;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_command_t
-		{
-		 public byte target_system; /// System which should execute the command
-		 public byte target_component; /// Component which should execute the command, 0 for all components
-		 public byte command; /// Command ID, as defined by MAV_CMD enum.
-		 public byte confirmation; /// 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command)
-		public float param1; /// Parameter 1, as defined by MAV_CMD enum.
-		public float param2; /// Parameter 2, as defined by MAV_CMD enum.
-		public float param3; /// Parameter 3, as defined by MAV_CMD enum.
-		public float param4; /// Parameter 4, as defined by MAV_CMD enum.
-		};
-
-		public const byte MAVLINK_MSG_ID_COMMAND_LEN = 20;
-		public const byte MAVLINK_MSG_ID_COMMAND_ACK = 76;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_command_ack_t
-		{
-		public float command; /// Current airspeed in m/s
-		public float result; /// 1: Action ACCEPTED and EXECUTED, 1: Action TEMPORARY REJECTED/DENIED, 2: Action PERMANENTLY DENIED, 3: Action UNKNOWN/UNSUPPORTED, 4: Requesting CONFIRMATION
-		};
-
-		public const byte MAVLINK_MSG_ID_COMMAND_ACK_LEN = 8;
-		public const byte MAVLINK_MSG_ID_CONTROL_STATUS = 52;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_control_status_t
-		{
-		 public byte position_fix; /// Position fix: 0: lost, 2: 2D position fix, 3: 3D position fix 
-		 public byte vision_fix; /// Vision position fix: 0: lost, 1: 2D local position hold, 2: 2D global position fix, 3: 3D global position fix 
-		 public byte gps_fix; /// GPS position fix: 0: no reception, 1: Minimum 1 satellite, but no position fix, 2: 2D position fix, 3: 3D position fix 
-		 public byte ahrs_health; /// Attitude estimation health: 0: poor, 255: excellent
-		 public byte control_att; /// 0: Attitude control disabled, 1: enabled
-		 public byte control_pos_xy; /// 0: X, Y position control disabled, 1: enabled
-		 public byte control_pos_z; /// 0: Z position control disabled, 1: enabled
-		 public byte control_pos_yaw; /// 0: Yaw angle control disabled, 1: enabled
-		};
-
-		public const byte MAVLINK_MSG_ID_CONTROL_STATUS_LEN = 8;
-		public const byte MAVLINK_MSG_ID_DEBUG = 255;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_debug_t
-		{
-		 public byte ind; /// index of debug variable
-		public float value; /// DEBUG value
-		};
-
-		public const byte MAVLINK_MSG_ID_DEBUG_LEN = 5;
-		public const byte MAVLINK_MSG_ID_DEBUG_VECT = 251;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_debug_vect_t
-		{
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=10)] 
-		 public byte[] name; /// Name
-		 public ulong usec; /// Timestamp
-		public float x; /// x
-		public float y; /// y
-		public float z; /// z
-		};
-
-		public const byte MAVLINK_MSG_ID_DEBUG_VECT_LEN = 30;
-		public const byte MAVLINK_MSG_ID_GLOBAL_POSITION = 33;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_global_position_t
-		{
-		 public ulong usec; /// Timestamp (microseconds since unix epoch)
-		public float lat; /// Latitude, in degrees
-		public float lon; /// Longitude, in degrees
-		public float alt; /// Absolute altitude, in meters
-		public float vx; /// X Speed (in Latitude direction, positive: going north)
-		public float vy; /// Y Speed (in Longitude direction, positive: going east)
-		public float vz; /// Z Speed (in Altitude direction, positive: going up)
-		};
-
-		public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_LEN = 32;
-		public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_INT = 73;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_global_position_int_t
-		{
-		 public int lat; /// Latitude, expressed as * 1E7
-		 public int lon; /// Longitude, expressed as * 1E7
-		 public int alt; /// Altitude in meters, expressed as * 1000 (millimeters)
-		 public short vx; /// Ground X Speed (Latitude), expressed as m/s * 100
-		 public short vy; /// Ground Y Speed (Longitude), expressed as m/s * 100
-		 public short vz; /// Ground Z Speed (Altitude), expressed as m/s * 100
-		};
-
-		public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_INT_LEN = 18;
-		public const byte MAVLINK_MSG_ID_GPS_LOCAL_ORIGIN_SET = 49;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_gps_local_origin_set_t
-		{
-		 public int latitude; /// Latitude (WGS84), expressed as * 1E7
-		 public int longitude; /// Longitude (WGS84), expressed as * 1E7
-		 public int altitude; /// Altitude(WGS84), expressed as * 1000
-		};
-
-		public const byte MAVLINK_MSG_ID_GPS_LOCAL_ORIGIN_SET_LEN = 12;
-		public const byte MAVLINK_MSG_ID_GPS_RAW = 32;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_gps_raw_t
-		{
-		 public ulong usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		 public byte fix_type; /// 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.
-		public float lat; /// Latitude in degrees
-		public float lon; /// Longitude in degrees
-		public float alt; /// Altitude in meters
-		public float eph; /// GPS HDOP
-		public float epv; /// GPS VDOP
-		public float v; /// GPS ground speed
-		public float hdg; /// Compass heading in degrees, 0..360 degrees
-		};
-
-		public const byte MAVLINK_MSG_ID_GPS_RAW_LEN = 37;
-		public const byte MAVLINK_MSG_ID_GPS_RAW_INT = 25;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_gps_raw_int_t
-		{
-		 public ulong usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		 public byte fix_type; /// 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix.
-		 public int lat; /// Latitude in 1E7 degrees
-		 public int lon; /// Longitude in 1E7 degrees
-		 public int alt; /// Altitude in 1E3 meters (millimeters)
-		public float eph; /// GPS HDOP
-		public float epv; /// GPS VDOP
-		public float v; /// GPS ground speed (m/s)
-		public float hdg; /// Compass heading in degrees, 0..360 degrees
-		};
-
-		public const byte MAVLINK_MSG_ID_GPS_RAW_INT_LEN = 37;
-		public const byte MAVLINK_MSG_ID_GPS_SET_GLOBAL_ORIGIN = 48;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_gps_set_global_origin_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public int latitude; /// global position * 1E7
-		 public int longitude; /// global position * 1E7
-		 public int altitude; /// global position * 1000
-		};
-
-		public const byte MAVLINK_MSG_ID_GPS_SET_GLOBAL_ORIGIN_LEN = 14;
-		public const byte MAVLINK_MSG_ID_GPS_STATUS = 27;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_gps_status_t
-		{
-		 public byte satellites_visible; /// Number of satellites visible
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=20)] 
-		 public byte[] satellite_prn; /// Global satellite ID
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=20)] 
-		 public byte[] satellite_used; /// 0: Satellite not used, 1: used for localization
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=20)] 
-		 public byte[] satellite_elevation; /// Elevation (0: right on top of receiver, 90: on the horizon) of satellite
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=20)] 
-		 public byte[] satellite_azimuth; /// Direction of satellite, 0: 0 deg, 255: 360 deg.
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=20)] 
-		 public byte[] satellite_snr; /// Signal to noise ratio of satellite
-		};
-
-		public const byte MAVLINK_MSG_ID_GPS_STATUS_LEN = 101;
-		public const byte MAVLINK_MSG_ID_HEARTBEAT = 0;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_heartbeat_t
-		{
-		 public byte type; /// Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM)
-		 public byte autopilot; /// Type of the Autopilot: 0: Generic, 1: PIXHAWK, 2: SLUGS, 3: Ardupilot (up to 15 types), defined in MAV_AUTOPILOT_TYPE ENUM
-		 public byte mavlink_version; /// MAVLink version
-		};
-
-		public const byte MAVLINK_MSG_ID_HEARTBEAT_LEN = 3;
-		public const byte MAVLINK_MSG_ID_HIL_CONTROLS = 68;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_hil_controls_t
-		{
-		 public ulong time_us; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		public float roll_ailerons; /// Control output -3 .. 1
-		public float pitch_elevator; /// Control output -1 .. 1
-		public float yaw_rudder; /// Control output -1 .. 1
-		public float throttle; /// Throttle 0 .. 1
-		 public byte mode; /// System mode (MAV_MODE)
-		 public byte nav_mode; /// Navigation mode (MAV_NAV_MODE)
-		};
-
-		public const byte MAVLINK_MSG_ID_HIL_CONTROLS_LEN = 26;
-		public const byte MAVLINK_MSG_ID_HIL_STATE = 67;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_hil_state_t
-		{
-		 public ulong usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		public float roll; /// Roll angle (rad)
-		public float pitch; /// Pitch angle (rad)
-		public float yaw; /// Yaw angle (rad)
-		public float rollspeed; /// Roll angular speed (rad/s)
-		public float pitchspeed; /// Pitch angular speed (rad/s)
-		public float yawspeed; /// Yaw angular speed (rad/s)
-		 public int lat; /// Latitude, expressed as * 1E7
-		 public int lon; /// Longitude, expressed as * 1E7
-		 public int alt; /// Altitude in meters, expressed as * 1000 (millimeters)
-		 public short vx; /// Ground X Speed (Latitude), expressed as m/s * 100
-		 public short vy; /// Ground Y Speed (Longitude), expressed as m/s * 100
-		 public short vz; /// Ground Z Speed (Altitude), expressed as m/s * 100
-		 public short xacc; /// X acceleration (mg)
-		 public short yacc; /// Y acceleration (mg)
-		 public short zacc; /// Z acceleration (mg)
-		};
-
-		public const byte MAVLINK_MSG_ID_HIL_STATE_LEN = 56;
-		public const byte MAVLINK_MSG_ID_LOCAL_POSITION = 31;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_local_position_t
-		{
-		 public ulong usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		public float x; /// X Position
-		public float y; /// Y Position
-		public float z; /// Z Position
-		public float vx; /// X Speed
-		public float vy; /// Y Speed
-		public float vz; /// Z Speed
-		};
-
-		public const byte MAVLINK_MSG_ID_LOCAL_POSITION_LEN = 32;
-		public const byte MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT = 51;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_local_position_setpoint_t
-		{
-		public float x; /// x position
-		public float y; /// y position
-		public float z; /// z position
-		public float yaw; /// Desired yaw angle
-		};
-
-		public const byte MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_LEN = 16;
-		public const byte MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_SET = 50;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_local_position_setpoint_set_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		public float x; /// x position
-		public float y; /// y position
-		public float z; /// z position
-		public float yaw; /// Desired yaw angle
-		};
-
-		public const byte MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_SET_LEN = 18;
-		public const byte MAVLINK_MSG_ID_MANUAL_CONTROL = 69;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_manual_control_t
-		{
-		 public byte target; /// The system to be controlled
-		public float roll; /// roll
-		public float pitch; /// pitch
-		public float yaw; /// yaw
-		public float thrust; /// thrust
-		 public byte roll_manual; /// roll control enabled auto:0, manual:1
-		 public byte pitch_manual; /// pitch auto:0, manual:1
-		 public byte yaw_manual; /// yaw auto:0, manual:1
-		 public byte thrust_manual; /// thrust auto:0, manual:1
-		};
-
-		public const byte MAVLINK_MSG_ID_MANUAL_CONTROL_LEN = 21;
-		public const byte MAVLINK_MSG_ID_NAMED_VALUE_FLOAT = 252;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_named_value_float_t
-		{
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=10)] 
-		 public byte[] name; /// Name of the debug variable
-		public float value; /// Floating point value
-		};
-
-		public const byte MAVLINK_MSG_ID_NAMED_VALUE_FLOAT_LEN = 14;
-		public const byte MAVLINK_MSG_ID_NAMED_VALUE_INT = 253;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_named_value_int_t
-		{
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=10)] 
-		 public byte[] name; /// Name of the debug variable
-		 public int value; /// Signed integer value
-		};
-
-		public const byte MAVLINK_MSG_ID_NAMED_VALUE_INT_LEN = 14;
-		public const byte MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT = 62;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_nav_controller_output_t
-		{
-		public float nav_roll; /// Current desired roll in degrees
-		public float nav_pitch; /// Current desired pitch in degrees
-		 public short nav_bearing; /// Current desired heading in degrees
-		 public short target_bearing; /// Bearing to current waypoint/target in degrees
-		 public ushort wp_dist; /// Distance to active waypoint in meters
-		public float alt_error; /// Current altitude error in meters
-		public float aspd_error; /// Current airspeed error in meters/second
-		public float xtrack_error; /// Current crosstrack error on x-y plane in meters
-		};
-
-		public const byte MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT_LEN = 26;
-		public const byte MAVLINK_MSG_ID_OBJECT_DETECTION_EVENT = 140;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_object_detection_event_t
-		{
-		 public uint time; /// Timestamp in milliseconds since system boot
-		 public ushort object_id; /// Object ID
-		 public byte type; /// Object type: 0: image, 1: letter, 2: ground vehicle, 3: air vehicle, 4: surface vehicle, 5: sub-surface vehicle, 6: human, 7: animal
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=20)] 
-		 public byte[] name; /// Name of the object as defined by the detector
-		 public byte quality; /// Detection quality / confidence. 0: bad, 255: maximum confidence
-		public float bearing; /// Angle of the object with respect to the body frame in NED coordinates in radians. 0: front
-		public float distance; /// Ground distance in meters
-		};
-
-		public const byte MAVLINK_MSG_ID_OBJECT_DETECTION_EVENT_LEN = 36;
-		public const byte MAVLINK_MSG_ID_OPTICAL_FLOW = 100;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_optical_flow_t
-		{
-		 public ulong time; /// Timestamp (UNIX)
-		 public byte sensor_id; /// Sensor ID
-		 public short flow_x; /// Flow in pixels in x-sensor direction
-		 public short flow_y; /// Flow in pixels in y-sensor direction
-		 public byte quality; /// Optical flow quality / confidence. 0: bad, 255: maximum quality
-		public float ground_distance; /// Ground distance in meters
-		};
-
-		public const byte MAVLINK_MSG_ID_OPTICAL_FLOW_LEN = 18;
-		public const byte MAVLINK_MSG_ID_PARAM_REQUEST_LIST = 21;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_param_request_list_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
-
-		public const byte MAVLINK_MSG_ID_PARAM_REQUEST_LIST_LEN = 2;
-		public const byte MAVLINK_MSG_ID_PARAM_REQUEST_READ = 20;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_param_request_read_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=15)] 
-		 public byte[] param_id; /// Onboard parameter id
-		 public short param_index; /// Parameter index. Send -1 to use the param ID field as identifier
-		};
-
-		public const byte MAVLINK_MSG_ID_PARAM_REQUEST_READ_LEN = 19;
-		public const byte MAVLINK_MSG_ID_PARAM_SET = 23;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_param_set_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=15)] 
-		 public byte[] param_id; /// Onboard parameter id
-		public float param_value; /// Onboard parameter value
-		};
-
-		public const byte MAVLINK_MSG_ID_PARAM_SET_LEN = 21;
-		public const byte MAVLINK_MSG_ID_PARAM_VALUE = 22;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_param_value_t
-		{
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=15)] 
-		 public byte[] param_id; /// Onboard parameter id
-		public float param_value; /// Onboard parameter value
-		 public ushort param_count; /// Total number of onboard parameters
-		 public ushort param_index; /// Index of this onboard parameter
-		};
-
-		public const byte MAVLINK_MSG_ID_PARAM_VALUE_LEN = 23;
-		public const byte MAVLINK_MSG_ID_PING = 3;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_ping_t
-		{
-		 public uint seq; /// PING sequence
-		 public byte target_system; /// 0: request ping from all receiving systems, if greater than 0: message is a ping response and number is the system id of the requesting system
-		 public byte target_component; /// 0: request ping from all receiving components, if greater than 0: message is a ping response and number is the system id of the requesting system
-		 public ulong time; /// Unix timestamp in microseconds
-		};
-
-		public const byte MAVLINK_MSG_ID_PING_LEN = 14;
-		public const byte MAVLINK_MSG_ID_POSITION_TARGET = 63;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_position_target_t
-		{
-		public float x; /// x position
-		public float y; /// y position
-		public float z; /// z position
-		public float yaw; /// yaw orientation in radians, 0 = NORTH
-		};
+        public const string MAVLINK_BUILD_DATE = "Wed Apr  4 18:13:05 2012";
+        public const string MAVLINK_WIRE_PROTOCOL_VERSION = "0.9";
+        public const int MAVLINK_MAX_DIALECT_PAYLOAD_SIZE = 42;
+
+        public const int MAVLINK_LITTLE_ENDIAN = 1;
+        public const int MAVLINK_BIG_ENDIAN = 0;
+
+        public const byte MAVLINK_STX = 85;
+
+        public const byte MAVLINK_ENDIAN = MAVLINK_BIG_ENDIAN;
+
+        public const bool MAVLINK_ALIGNED_FIELDS = (0 == 1);
+
+        public const byte MAVLINK_CRC_EXTRA = 0;
+        
+        public const bool MAVLINK_NEED_BYTE_SWAP = (MAVLINK_ENDIAN == MAVLINK_LITTLE_ENDIAN);
+        
+        public byte[] MAVLINK_MESSAGE_LENGTHS = new byte[] {3, 4, 8, 14, 8, 28, 3, 32, 0, 2, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 19, 2, 23, 21, 0, 37, 26, 101, 26, 16, 32, 32, 37, 32, 11, 17, 17, 16, 18, 36, 4, 4, 2, 2, 4, 2, 2, 3, 14, 12, 18, 16, 8, 27, 25, 18, 18, 24, 24, 0, 0, 0, 26, 16, 36, 5, 6, 56, 26, 21, 18, 0, 0, 18, 20, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 8, 4, 12, 15, 13, 6, 15, 14, 0, 12, 3, 8, 28, 36, 3, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 14, 14, 51, 5};
+
+        public byte[] MAVLINK_MESSAGE_CRCS = new byte[] {72, 39, 190, 92, 191, 217, 104, 119, 0, 219, 60, 186, 10, 0, 0, 0, 0, 0, 0, 0, 89, 159, 162, 121, 0, 149, 222, 110, 179, 136, 66, 126, 185, 147, 112, 252, 162, 215, 229, 128, 9, 106, 101, 213, 4, 229, 21, 214, 215, 14, 206, 50, 157, 126, 108, 213, 95, 5, 127, 0, 0, 0, 57, 126, 130, 119, 193, 191, 236, 158, 143, 0, 0, 104, 123, 131, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 29, 208, 188, 118, 242, 19, 97, 233, 0, 18, 68, 136, 127, 42, 21, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 224, 60, 106, 7};
+
+        public Type[] MAVLINK_MESSAGE_INFO = new Type[] {typeof( mavlink_heartbeat_t ), typeof( mavlink_boot_t ), typeof( mavlink_system_time_t ), typeof( mavlink_ping_t ), typeof( mavlink_system_time_utc_t ), typeof( mavlink_change_operator_control_t ), typeof( mavlink_change_operator_control_ack_t ), typeof( mavlink_auth_key_t ), null, typeof( mavlink_action_ack_t ), typeof( mavlink_action_t ), typeof( mavlink_set_mode_t ), typeof( mavlink_set_nav_mode_t ), null, null, null, null, null, null, null, typeof( mavlink_param_request_read_t ), typeof( mavlink_param_request_list_t ), typeof( mavlink_param_value_t ), typeof( mavlink_param_set_t ), null, typeof( mavlink_gps_raw_int_t ), typeof( mavlink_scaled_imu_t ), typeof( mavlink_gps_status_t ), typeof( mavlink_raw_imu_t ), typeof( mavlink_raw_pressure_t ), typeof( mavlink_attitude_t ), typeof( mavlink_local_position_t ), typeof( mavlink_gps_raw_t ), typeof( mavlink_global_position_t ), typeof( mavlink_sys_status_t ), typeof( mavlink_rc_channels_raw_t ), typeof( mavlink_rc_channels_scaled_t ), typeof( mavlink_servo_output_raw_t ), typeof( mavlink_scaled_pressure_t ), typeof( mavlink_waypoint_t ), typeof( mavlink_waypoint_request_t ), typeof( mavlink_waypoint_set_current_t ), typeof( mavlink_waypoint_current_t ), typeof( mavlink_waypoint_request_list_t ), typeof( mavlink_waypoint_count_t ), typeof( mavlink_waypoint_clear_all_t ), typeof( mavlink_waypoint_reached_t ), typeof( mavlink_waypoint_ack_t ), typeof( mavlink_gps_set_global_origin_t ), typeof( mavlink_gps_local_origin_set_t ), typeof( mavlink_local_position_setpoint_set_t ), typeof( mavlink_local_position_setpoint_t ), typeof( mavlink_control_status_t ), typeof( mavlink_safety_set_allowed_area_t ), typeof( mavlink_safety_allowed_area_t ), typeof( mavlink_set_roll_pitch_yaw_thrust_t ), typeof( mavlink_set_roll_pitch_yaw_speed_thrust_t ), typeof( mavlink_roll_pitch_yaw_thrust_setpoint_t ), typeof( mavlink_roll_pitch_yaw_speed_thrust_setpoint_t ), null, null, null, typeof( mavlink_nav_controller_output_t ), typeof( mavlink_position_target_t ), typeof( mavlink_state_correction_t ), typeof( mavlink_set_altitude_t ), typeof( mavlink_request_data_stream_t ), typeof( mavlink_hil_state_t ), typeof( mavlink_hil_controls_t ), typeof( mavlink_manual_control_t ), typeof( mavlink_rc_channels_override_t ), null, null, typeof( mavlink_global_position_int_t ), typeof( mavlink_vfr_hud_t ), typeof( mavlink_command_t ), typeof( mavlink_command_ack_t ), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_optical_flow_t ), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_object_detection_event_t ), null, null, null, null, null, null, null, null, null, typeof( mavlink_sensor_offsets_t ), typeof( mavlink_set_mag_offsets_t ), typeof( mavlink_meminfo_t ), typeof( mavlink_ap_adc_t ), typeof( mavlink_digicam_configure_t ), typeof( mavlink_digicam_control_t ), typeof( mavlink_mount_configure_t ), typeof( mavlink_mount_control_t ), typeof( mavlink_mount_status_t ), null, typeof( mavlink_fence_point_t ), typeof( mavlink_fence_fetch_point_t ), typeof( mavlink_fence_status_t ), typeof( mavlink_ahrs_t ), typeof( mavlink_simstate_t ), typeof( mavlink_hwstatus_t ), typeof( mavlink_radio_t ), null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, typeof( mavlink_debug_vect_t ), typeof( mavlink_named_value_float_t ), typeof( mavlink_named_value_int_t ), typeof( mavlink_statustext_t ), typeof( mavlink_debug_t )};
+
+        public const byte MAVLINK_VERSION = 2;
+    
+        
+        /** @brief Enumeration of possible mount operation modes */
+        public enum MAV_MOUNT_MODE
+        {
+    	///<summary> Load and keep safe position (Roll,Pitch,Yaw) from EEPROM and stop stabilization | </summary>
+            RETRACT=0, 
+        	///<summary> Load and keep neutral position (Roll,Pitch,Yaw) from EEPROM. | </summary>
+            NEUTRAL=1, 
+        	///<summary> Load neutral position and start MAVLink Roll,Pitch,Yaw control with stabilization | </summary>
+            MAVLINK_TARGETING=2, 
+        	///<summary> Load neutral position and start RC Roll,Pitch,Yaw control with stabilization | </summary>
+            RC_TARGETING=3, 
+        	///<summary> Load neutral position and start to point to Lat,Lon,Alt | </summary>
+            GPS_POINT=4, 
+        	///<summary>  | </summary>
+            ENUM_END=5, 
+        
+        };
+        
+        /** @brief  */
+        public enum MAV_CMD
+        {
+    	///<summary> Navigate to waypoint. |Hold time in decimal seconds. (ignored by fixed wing, time to stay at waypoint for rotary wing)| Acceptance radius in meters (if the sphere with this radius is hit, the waypoint counts as reached)| 0 to pass through the WP, if > 0 radius in meters to pass by WP. Positive value for clockwise orbit, negative value for counter-clockwise orbit. Allows trajectory control.| Desired yaw angle at waypoint (rotary wing)| Latitude| Longitude| Altitude|  </summary>
+            WAYPOINT=16, 
+        	///<summary> Loiter around this waypoint an unlimited amount of time |Empty| Empty| Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
+            LOITER_UNLIM=17, 
+        	///<summary> Loiter around this waypoint for X turns |Turns| Empty| Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
+            LOITER_TURNS=18, 
+        	///<summary> Loiter around this waypoint for X seconds |Seconds (decimal)| Empty| Radius around waypoint, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
+            LOITER_TIME=19, 
+        	///<summary> Return to launch location |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            RETURN_TO_LAUNCH=20, 
+        	///<summary> Land at location |Empty| Empty| Empty| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
+            LAND=21, 
+        	///<summary> Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude|  </summary>
+            TAKEOFF=22, 
+        	///<summary> Sets the region of interest (ROI) for a sensor set or the             vehicle itself. This can then be used by the vehicles control             system to control the vehicle attitude and the attitude of various             sensors such as cameras. |Region of intereset mode. (see MAV_ROI enum)| Waypoint index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple ROI's)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  </summary>
+            ROI=80, 
+        	///<summary> Control autonomous path planning on the MAV. |0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning| 0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid| Empty| Yaw angle at goal, in compass degrees, [0..360]| Latitude/X of goal| Longitude/Y of goal| Altitude/Z of goal|  </summary>
+            PATHPLANNING=81, 
+        	///<summary> NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            LAST=95, 
+        	///<summary> Delay mission state machine. |Delay in seconds (decimal)| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            CONDITION_DELAY=112, 
+        	///<summary> Ascend/descend at rate.  Delay mission state machine until desired altitude reached. |Descent / Ascend rate (m/s)| Empty| Empty| Empty| Empty| Empty| Finish Altitude|  </summary>
+            CONDITION_CHANGE_ALT=113, 
+        	///<summary> Delay mission state machine until within desired distance of next NAV point. |Distance (meters)| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            CONDITION_DISTANCE=114, 
+        	///<summary> Reach a certain target angle. |target angle: [0-360], 0 is north| speed during yaw change:[deg per second]| direction: negative: counter clockwise, positive: clockwise [-1,1]| relative offset or absolute angle: [ 1,0]| Empty| Empty| Empty|  </summary>
+            CONDITION_YAW=115, 
+        	///<summary> NOP - This command is only used to mark the upper limit of the CONDITION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            CONDITION_LAST=159, 
+        	///<summary> Set system mode. |Mode, as defined by ENUM MAV_MODE| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_SET_MODE=176, 
+        	///<summary> Jump to the desired command in the mission list.  Repeat this action only the specified number of times |Sequence number| Repeat count| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_JUMP=177, 
+        	///<summary> Change speed and/or throttle set points. |Speed type (0=Airspeed, 1=Ground Speed)| Speed  (m/s, -1 indicates no change)| Throttle  ( Percent, -1 indicates no change)| Empty| Empty| Empty| Empty|  </summary>
+            DO_CHANGE_SPEED=178, 
+        	///<summary> Changes the home location either to the current location or a specified location. |Use current (1=use current location, 0=use specified location)| Empty| Empty| Empty| Latitude| Longitude| Altitude|  </summary>
+            DO_SET_HOME=179, 
+        	///<summary> Set a system parameter.  Caution!  Use of this command requires knowledge of the numeric enumeration value of the parameter. |Parameter number| Parameter value| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_SET_PARAMETER=180, 
+        	///<summary> Set a relay to a condition. |Relay number| Setting (1=on, 0=off, others possible depending on system hardware)| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_SET_RELAY=181, 
+        	///<summary> Cycle a relay on and off for a desired number of cyles with a desired period. |Relay number| Cycle count| Cycle time (seconds, decimal)| Empty| Empty| Empty| Empty|  </summary>
+            DO_REPEAT_RELAY=182, 
+        	///<summary> Set a servo to a desired PWM value. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_SET_SERVO=183, 
+        	///<summary> Cycle a between its nominal setting and a desired PWM for a desired number of cycles with a desired period. |Servo number| PWM (microseconds, 1000 to 2000 typical)| Cycle count| Cycle time (seconds)| Empty| Empty| Empty|  </summary>
+            DO_REPEAT_SERVO=184, 
+        	///<summary> Control onboard camera capturing. |Camera ID (-1 for all)| Transmission: 0: disabled, 1: enabled compressed, 2: enabled raw| Transmission mode: 0: video stream, >0: single images every n seconds (decimal)| Recording: 0: disabled, 1: enabled compressed, 2: enabled raw| Empty| Empty| Empty|  </summary>
+            DO_CONTROL_VIDEO=200, 
+        	///<summary> Sets the region of interest (ROI) for a sensor set or the                     vehicle itself. This can then be used by the vehicles control                     system to control the vehicle attitude and the attitude of various                     devices such as cameras.                  |Region of interest mode. (see MAV_ROI enum)| Waypoint index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple cameras etc.)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  </summary>
+            DO_SET_ROI=201, 
+        	///<summary> Mission command to configure an on-board camera controller system. |Modes: P, TV, AV, M, Etc| Shutter speed: Divisor number for one second| Aperture: F stop number| ISO number e.g. 80, 100, 200, Etc| Exposure type enumerator| Command Identity| Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off)|  </summary>
+            DO_DIGICAM_CONFIGURE=202, 
+        	///<summary> Mission command to control an on-board camera controller system. |Session control e.g. show/hide lens| Zoom's absolute position| Zooming step value to offset zoom from the current position| Focus Locking, Unlocking or Re-locking| Shooting Command| Command Identity| Empty|  </summary>
+            DO_DIGICAM_CONTROL=203, 
+        	///<summary> Mission command to configure a camera or antenna mount |Mount operation mode (see MAV_MOUNT_MODE enum)| stabilize roll? (1 = yes, 0 = no)| stabilize pitch? (1 = yes, 0 = no)| stabilize yaw? (1 = yes, 0 = no)| Empty| Empty| Empty|  </summary>
+            DO_MOUNT_CONFIGURE=204, 
+        	///<summary> Mission command to control a camera or antenna mount |pitch(deg*100) or lat, depending on mount mode.| roll(deg*100) or lon depending on mount mode| yaw(deg*100) or alt (in cm) depending on mount mode| Empty| Empty| Empty| Empty|  </summary>
+            DO_MOUNT_CONTROL=205, 
+        	///<summary> NOP - This command is only used to mark the upper limit of the DO commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
+            DO_LAST=240, 
+        	///<summary> Trigger calibration. This command will be only accepted if in pre-flight mode. |Gyro calibration: 0: no, 1: yes| Magnetometer calibration: 0: no, 1: yes| Ground pressure: 0: no, 1: yes| Radio calibration: 0: no, 1: yes| Empty| Empty| Empty|  </summary>
+            PREFLIGHT_CALIBRATION=241, 
+        	///<summary> Request storage of different parameter values and logs. This command will be only accepted if in pre-flight mode. |Parameter storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Mission storage: 0: READ FROM FLASH/EEPROM, 1: WRITE CURRENT TO FLASH/EEPROM| Reserved| Reserved| Empty| Empty| Empty|  </summary>
+            PREFLIGHT_STORAGE=245, 
+        	///<summary>  | </summary>
+            ENUM_END=246, 
+        
+        };
+        
+        /** @brief  */
+        public enum FENCE_ACTION
+        {
+    	///<summary> Disable fenced mode | </summary>
+            NONE=0, 
+        	///<summary> Switched to guided mode to return point (fence point 0) | </summary>
+            GUIDED=1, 
+        	///<summary>  | </summary>
+            ENUM_END=2, 
+        
+        };
+        
+        /** @brief  */
+        public enum FENCE_BREACH
+        {
+    	///<summary> No last fence breach | </summary>
+            NONE=0, 
+        	///<summary> Breached minimum altitude | </summary>
+            MINALT=1, 
+        	///<summary> Breached minimum altitude | </summary>
+            MAXALT=2, 
+        	///<summary> Breached fence boundary | </summary>
+            BOUNDARY=3, 
+        	///<summary>  | </summary>
+            ENUM_END=4, 
+        
+        };
+        
+    
+
+    public const byte MAVLINK_MSG_ID_SENSOR_OFFSETS = 150;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=42)]
+    public struct mavlink_sensor_offsets_t
+    {
+        /// <summary> magnetometer X offset </summary>
+        public  Int16 mag_ofs_x;
+            /// <summary> magnetometer Y offset </summary>
+        public  Int16 mag_ofs_y;
+            /// <summary> magnetometer Z offset </summary>
+        public  Int16 mag_ofs_z;
+            /// <summary> magnetic declination (radians) </summary>
+        public  Single mag_declination;
+            /// <summary> raw pressure from barometer </summary>
+        public  Int32 raw_press;
+            /// <summary> raw temperature from barometer </summary>
+        public  Int32 raw_temp;
+            /// <summary> gyro X calibration </summary>
+        public  Single gyro_cal_x;
+            /// <summary> gyro Y calibration </summary>
+        public  Single gyro_cal_y;
+            /// <summary> gyro Z calibration </summary>
+        public  Single gyro_cal_z;
+            /// <summary> accel X calibration </summary>
+        public  Single accel_cal_x;
+            /// <summary> accel Y calibration </summary>
+        public  Single accel_cal_y;
+            /// <summary> accel Z calibration </summary>
+        public  Single accel_cal_z;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_MAG_OFFSETS = 151;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)]
+    public struct mavlink_set_mag_offsets_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> magnetometer X offset </summary>
+        public  Int16 mag_ofs_x;
+            /// <summary> magnetometer Y offset </summary>
+        public  Int16 mag_ofs_y;
+            /// <summary> magnetometer Z offset </summary>
+        public  Int16 mag_ofs_z;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MEMINFO = 152;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)]
+    public struct mavlink_meminfo_t
+    {
+        /// <summary> heap top </summary>
+        public  UInt16 brkval;
+            /// <summary> free memory </summary>
+        public  UInt16 freemem;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_POSITION_TARGET_LEN = 16;
-		public const byte MAVLINK_MSG_ID_RAW_IMU = 28;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_raw_imu_t
-		{
-		 public ulong usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		 public short xacc; /// X acceleration (raw)
-		 public short yacc; /// Y acceleration (raw)
-		 public short zacc; /// Z acceleration (raw)
-		 public short xgyro; /// Angular speed around X axis (raw)
-		 public short ygyro; /// Angular speed around Y axis (raw)
-		 public short zgyro; /// Angular speed around Z axis (raw)
-		 public short xmag; /// X Magnetic field (raw)
-		 public short ymag; /// Y Magnetic field (raw)
-		 public short zmag; /// Z Magnetic field (raw)
-		};
 
-		public const byte MAVLINK_MSG_ID_RAW_IMU_LEN = 26;
-		public const byte MAVLINK_MSG_ID_RAW_PRESSURE = 29;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_raw_pressure_t
-		{
-		 public ulong usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		 public short press_abs; /// Absolute pressure (raw)
-		 public short press_diff1; /// Differential pressure 1 (raw)
-		 public short press_diff2; /// Differential pressure 2 (raw)
-		 public short temperature; /// Raw Temperature measurement (raw)
-		};
+    public const byte MAVLINK_MSG_ID_AP_ADC = 153;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)]
+    public struct mavlink_ap_adc_t
+    {
+        /// <summary> ADC output 1 </summary>
+        public  UInt16 adc1;
+            /// <summary> ADC output 2 </summary>
+        public  UInt16 adc2;
+            /// <summary> ADC output 3 </summary>
+        public  UInt16 adc3;
+            /// <summary> ADC output 4 </summary>
+        public  UInt16 adc4;
+            /// <summary> ADC output 5 </summary>
+        public  UInt16 adc5;
+            /// <summary> ADC output 6 </summary>
+        public  UInt16 adc6;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_DIGICAM_CONFIGURE = 154;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)]
+    public struct mavlink_digicam_configure_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Mode enumeration from 1 to N //P, TV, AV, M, Etc (0 means ignore) </summary>
+        public  byte mode;
+            /// <summary> Divisor number //e.g. 1000 means 1/1000 (0 means ignore) </summary>
+        public  UInt16 shutter_speed;
+            /// <summary> F stop number x 10 //e.g. 28 means 2.8 (0 means ignore) </summary>
+        public  byte aperture;
+            /// <summary> ISO enumeration from 1 to N //e.g. 80, 100, 200, Etc (0 means ignore) </summary>
+        public  byte iso;
+            /// <summary> Exposure type enumeration from 1 to N (0 means ignore) </summary>
+        public  byte exposure_type;
+            /// <summary> Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once </summary>
+        public  byte command_id;
+            /// <summary> Main engine cut-off time before camera trigger in seconds/10 (0 means no cut-off) </summary>
+        public  byte engine_cut_off;
+            /// <summary> Extra parameters enumeration (0 means ignore) </summary>
+        public  byte extra_param;
+            /// <summary> Correspondent value to given extra_param </summary>
+        public  Single extra_value;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_DIGICAM_CONTROL = 155;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=13)]
+    public struct mavlink_digicam_control_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> 0: stop, 1: start or keep it up //Session control e.g. show/hide lens </summary>
+        public  byte session;
+            /// <summary> 1 to N //Zoom's absolute position (0 means ignore) </summary>
+        public  byte zoom_pos;
+            /// <summary> -100 to 100 //Zooming step value to offset zoom from the current position </summary>
+        public  byte zoom_step;
+            /// <summary> 0: unlock focus or keep unlocked, 1: lock focus or keep locked, 3: re-lock focus </summary>
+        public  byte focus_lock;
+            /// <summary> 0: ignore, 1: shot or start filming </summary>
+        public  byte shot;
+            /// <summary> Command Identity (incremental loop: 0 to 255)//A command sent multiple times will be executed or pooled just once </summary>
+        public  byte command_id;
+            /// <summary> Extra parameters enumeration (0 means ignore) </summary>
+        public  byte extra_param;
+            /// <summary> Correspondent value to given extra_param </summary>
+        public  Single extra_value;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MOUNT_CONFIGURE = 156;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)]
+    public struct mavlink_mount_configure_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> mount operating mode (see MAV_MOUNT_MODE enum) </summary>
+        public  byte mount_mode;
+            /// <summary> (1 = yes, 0 = no) </summary>
+        public  byte stab_roll;
+            /// <summary> (1 = yes, 0 = no) </summary>
+        public  byte stab_pitch;
+            /// <summary> (1 = yes, 0 = no) </summary>
+        public  byte stab_yaw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MOUNT_CONTROL = 157;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=15)]
+    public struct mavlink_mount_control_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> pitch(deg*100) or lat, depending on mount mode </summary>
+        public  Int32 input_a;
+            /// <summary> roll(deg*100) or lon depending on mount mode </summary>
+        public  Int32 input_b;
+            /// <summary> yaw(deg*100) or alt (in cm) depending on mount mode </summary>
+        public  Int32 input_c;
+            /// <summary> if "1" it will save current trimmed position on EEPROM (just valid for NEUTRAL and LANDING) </summary>
+        public  byte save_position;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MOUNT_STATUS = 158;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)]
+    public struct mavlink_mount_status_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> pitch(deg*100) or lat, depending on mount mode </summary>
+        public  Int32 pointing_a;
+            /// <summary> roll(deg*100) or lon depending on mount mode </summary>
+        public  Int32 pointing_b;
+            /// <summary> yaw(deg*100) or alt (in cm) depending on mount mode </summary>
+        public  Int32 pointing_c;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_FENCE_POINT = 160;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)]
+    public struct mavlink_fence_point_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> point index (first point is 1, 0 is for return point) </summary>
+        public  byte idx;
+            /// <summary> total number of points (for sanity checking) </summary>
+        public  byte count;
+            /// <summary> Latitude of point </summary>
+        public  Single lat;
+            /// <summary> Longitude of point </summary>
+        public  Single lng;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_FENCE_FETCH_POINT = 161;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_fence_fetch_point_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> point index (first point is 1, 0 is for return point) </summary>
+        public  byte idx;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_FENCE_STATUS = 162;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)]
+    public struct mavlink_fence_status_t
+    {
+        /// <summary> 0 if currently inside fence, 1 if outside </summary>
+        public  byte breach_status;
+            /// <summary> number of fence breaches </summary>
+        public  UInt16 breach_count;
+            /// <summary> last breach type (see FENCE_BREACH_* enum) </summary>
+        public  byte breach_type;
+            /// <summary> time of last breach in milliseconds since boot </summary>
+        public  UInt32 breach_time;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_AHRS = 163;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)]
+    public struct mavlink_ahrs_t
+    {
+        /// <summary> X gyro drift estimate rad/s </summary>
+        public  Single omegaIx;
+            /// <summary> Y gyro drift estimate rad/s </summary>
+        public  Single omegaIy;
+            /// <summary> Z gyro drift estimate rad/s </summary>
+        public  Single omegaIz;
+            /// <summary> average accel_weight </summary>
+        public  Single accel_weight;
+            /// <summary> average renormalisation value </summary>
+        public  Single renorm_val;
+            /// <summary> average error_roll_pitch value </summary>
+        public  Single error_rp;
+            /// <summary> average error_yaw value </summary>
+        public  Single error_yaw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SIMSTATE = 164;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)]
+    public struct mavlink_simstate_t
+    {
+        /// <summary> Roll angle (rad) </summary>
+        public  Single roll;
+            /// <summary> Pitch angle (rad) </summary>
+        public  Single pitch;
+            /// <summary> Yaw angle (rad) </summary>
+        public  Single yaw;
+            /// <summary> X acceleration m/s/s </summary>
+        public  Single xacc;
+            /// <summary> Y acceleration m/s/s </summary>
+        public  Single yacc;
+            /// <summary> Z acceleration m/s/s </summary>
+        public  Single zacc;
+            /// <summary> Angular speed around X axis rad/s </summary>
+        public  Single xgyro;
+            /// <summary> Angular speed around Y axis rad/s </summary>
+        public  Single ygyro;
+            /// <summary> Angular speed around Z axis rad/s </summary>
+        public  Single zgyro;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_HWSTATUS = 165;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_hwstatus_t
+    {
+        /// <summary> board voltage (mV) </summary>
+        public  UInt16 Vcc;
+            /// <summary> I2C error count </summary>
+        public  byte I2Cerr;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_RAW_PRESSURE_LEN = 16;
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE = 70;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_rc_channels_override_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public ushort chan1_raw; /// RC channel 1 value, in microseconds
-		 public ushort chan2_raw; /// RC channel 2 value, in microseconds
-		 public ushort chan3_raw; /// RC channel 3 value, in microseconds
-		 public ushort chan4_raw; /// RC channel 4 value, in microseconds
-		 public ushort chan5_raw; /// RC channel 5 value, in microseconds
-		 public ushort chan6_raw; /// RC channel 6 value, in microseconds
-		 public ushort chan7_raw; /// RC channel 7 value, in microseconds
-		 public ushort chan8_raw; /// RC channel 8 value, in microseconds
-		};
 
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE_LEN = 18;
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_RAW = 35;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_rc_channels_raw_t
-		{
-		 public ushort chan1_raw; /// RC channel 1 value, in microseconds
-		 public ushort chan2_raw; /// RC channel 2 value, in microseconds
-		 public ushort chan3_raw; /// RC channel 3 value, in microseconds
-		 public ushort chan4_raw; /// RC channel 4 value, in microseconds
-		 public ushort chan5_raw; /// RC channel 5 value, in microseconds
-		 public ushort chan6_raw; /// RC channel 6 value, in microseconds
-		 public ushort chan7_raw; /// RC channel 7 value, in microseconds
-		 public ushort chan8_raw; /// RC channel 8 value, in microseconds
-		 public byte rssi; /// Receive signal strength indicator, 0: 0%, 255: 100%
-		};
+    public const byte MAVLINK_MSG_ID_RADIO = 166;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=9)]
+    public struct mavlink_radio_t
+    {
+        /// <summary> local signal strength </summary>
+        public  byte rssi;
+            /// <summary> remote signal strength </summary>
+        public  byte remrssi;
+            /// <summary> how full the tx buffer is as a percentage </summary>
+        public  byte txbuf;
+            /// <summary> receive errors </summary>
+        public  UInt16 rxerrors;
+            /// <summary> serial errors </summary>
+        public  UInt16 serrors;
+            /// <summary> count of error corrected packets </summary>
+        public  UInt16 fixedp;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_HEARTBEAT = 0;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_heartbeat_t
+    {
+        /// <summary> Type of the MAV (quadrotor, helicopter, etc., up to 15 types, defined in MAV_TYPE ENUM) </summary>
+        public  byte type;
+            /// <summary> Type of the Autopilot: 0: Generic, 1: PIXHAWK, 2: SLUGS, 3: Ardupilot (up to 15 types), defined in MAV_AUTOPILOT_TYPE ENUM </summary>
+        public  byte autopilot;
+            /// <summary> MAVLink version </summary>
+        public  byte mavlink_version;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_BOOT = 1;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)]
+    public struct mavlink_boot_t
+    {
+        /// <summary> The onboard software version </summary>
+        public  UInt32 version;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_RAW_LEN = 17;
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_SCALED = 36;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_rc_channels_scaled_t
-		{
-		 public short chan1_scaled; /// RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan2_scaled; /// RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan3_scaled; /// RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan4_scaled; /// RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan5_scaled; /// RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan6_scaled; /// RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan7_scaled; /// RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public short chan8_scaled; /// RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000
-		 public byte rssi; /// Receive signal strength indicator, 0: 0%, 255: 100%
-		};
 
-		public const byte MAVLINK_MSG_ID_RC_CHANNELS_SCALED_LEN = 17;
-		public const byte MAVLINK_MSG_ID_REQUEST_DATA_STREAM = 66;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_request_data_stream_t
-		{
-		 public byte target_system; /// The target requested to send the message stream.
-		 public byte target_component; /// The target requested to send the message stream.
-		 public byte req_stream_id; /// The ID of the requested message type
-		 public ushort req_message_rate; /// Update rate in Hertz
-		 public byte start_stop; /// 1 to start sending, 0 to stop sending.
-		};
+    public const byte MAVLINK_MSG_ID_SYSTEM_TIME = 2;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)]
+    public struct mavlink_system_time_t
+    {
+        /// <summary> Timestamp of the master clock in microseconds since UNIX epoch. </summary>
+        public  UInt64 time_usec;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_REQUEST_DATA_STREAM_LEN = 6;
-		public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT = 58;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_roll_pitch_yaw_speed_thrust_setpoint_t
-		{
-		 public ulong time_us; /// Timestamp in micro seconds since unix epoch
-		public float roll_speed; /// Desired roll angular speed in rad/s
-		public float pitch_speed; /// Desired pitch angular speed in rad/s
-		public float yaw_speed; /// Desired yaw angular speed in rad/s
-		public float thrust; /// Collective thrust, normalized to 0 .. 1
-		};
 
-		public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT_LEN = 24;
-		public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT = 57;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_roll_pitch_yaw_thrust_setpoint_t
-		{
-		 public ulong time_us; /// Timestamp in micro seconds since unix epoch
-		public float roll; /// Desired roll angle in radians
-		public float pitch; /// Desired pitch angle in radians
-		public float yaw; /// Desired yaw angle in radians
-		public float thrust; /// Collective thrust, normalized to 0 .. 1
-		};
+    public const byte MAVLINK_MSG_ID_PING = 3;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)]
+    public struct mavlink_ping_t
+    {
+        /// <summary> PING sequence </summary>
+        public  UInt32 seq;
+            /// <summary> 0: request ping from all receiving systems, if greater than 0: message is a ping response and number is the system id of the requesting system </summary>
+        public  byte target_system;
+            /// <summary> 0: request ping from all receiving components, if greater than 0: message is a ping response and number is the system id of the requesting system </summary>
+        public  byte target_component;
+            /// <summary> Unix timestamp in microseconds </summary>
+        public  UInt64 time;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SYSTEM_TIME_UTC = 4;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)]
+    public struct mavlink_system_time_utc_t
+    {
+        /// <summary> GPS UTC date ddmmyy </summary>
+        public  UInt32 utc_date;
+            /// <summary> GPS UTC time hhmmss </summary>
+        public  UInt32 utc_time;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT_LEN = 24;
-		public const byte MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA = 54;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_safety_allowed_area_t
-		{
-		 public byte frame; /// Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down.
-		public float p1x; /// x position 1 / Latitude 1
-		public float p1y; /// y position 1 / Longitude 1
-		public float p1z; /// z position 1 / Altitude 1
-		public float p2x; /// x position 2 / Latitude 2
-		public float p2y; /// y position 2 / Longitude 2
-		public float p2z; /// z position 2 / Altitude 2
-		};
 
-		public const byte MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA_LEN = 25;
-		public const byte MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA = 53;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_safety_set_allowed_area_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte frame; /// Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down.
-		public float p1x; /// x position 1 / Latitude 1
-		public float p1y; /// y position 1 / Longitude 1
-		public float p1z; /// z position 1 / Altitude 1
-		public float p2x; /// x position 2 / Latitude 2
-		public float p2y; /// y position 2 / Longitude 2
-		public float p2z; /// z position 2 / Altitude 2
-		};
+    public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL = 5;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=28)]
+    public struct mavlink_change_operator_control_t
+    {
+        /// <summary> System the GCS requests control for </summary>
+        public  byte target_system;
+            /// <summary> 0: request control of this MAV, 1: Release control of this MAV </summary>
+        public  byte control_request;
+            /// <summary> 0: key as plaintext, 1-255: future, different hashing/encryption variants. The GCS should in general use the safest mode possible initially and then gradually move down the encryption level if it gets a NACK message indicating an encryption mismatch. </summary>
+        public  byte version;
+            /// <summary> Password / Key, depending on version plaintext or encrypted. 25 or less characters, NULL terminated. The characters may involve A-Z, a-z, 0-9, and "!?,.-" </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=25)]
+		public string passkey;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_CHANGE_OPERATOR_CONTROL_ACK = 6;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_change_operator_control_ack_t
+    {
+        /// <summary> ID of the GCS this message  </summary>
+        public  byte gcs_system_id;
+            /// <summary> 0: request control of this MAV, 1: Release control of this MAV </summary>
+        public  byte control_request;
+            /// <summary> 0: ACK, 1: NACK: Wrong passkey, 2: NACK: Unsupported passkey encryption method, 3: NACK: Already under control </summary>
+        public  byte ack;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_AUTH_KEY = 7;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)]
+    public struct mavlink_auth_key_t
+    {
+        /// <summary> key </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)]
+		public string key;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA_LEN = 27;
-		public const byte MAVLINK_MSG_ID_SCALED_IMU = 26;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_scaled_imu_t
-		{
-		 public ulong usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		 public short xacc; /// X acceleration (mg)
-		 public short yacc; /// Y acceleration (mg)
-		 public short zacc; /// Z acceleration (mg)
-		 public short xgyro; /// Angular speed around X axis (millirad /sec)
-		 public short ygyro; /// Angular speed around Y axis (millirad /sec)
-		 public short zgyro; /// Angular speed around Z axis (millirad /sec)
-		 public short xmag; /// X Magnetic field (milli tesla)
-		 public short ymag; /// Y Magnetic field (milli tesla)
-		 public short zmag; /// Z Magnetic field (milli tesla)
-		};
 
-		public const byte MAVLINK_MSG_ID_SCALED_IMU_LEN = 26;
-		public const byte MAVLINK_MSG_ID_SCALED_PRESSURE = 38;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_scaled_pressure_t
-		{
-		 public ulong usec; /// Timestamp (microseconds since UNIX epoch or microseconds since system boot)
-		public float press_abs; /// Absolute pressure (hectopascal)
-		public float press_diff; /// Differential pressure 1 (hectopascal)
-		 public short temperature; /// Temperature measurement (0.01 degrees celsius)
-		};
+    public const byte MAVLINK_MSG_ID_ACTION_ACK = 9;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_action_ack_t
+    {
+        /// <summary> The action id </summary>
+        public  byte action;
+            /// <summary> 0: Action DENIED, 1: Action executed </summary>
+        public  byte result;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_SCALED_PRESSURE_LEN = 18;
-		public const byte MAVLINK_MSG_ID_SERVO_OUTPUT_RAW = 37;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_servo_output_raw_t
-		{
-		 public ushort servo1_raw; /// Servo output 1 value, in microseconds
-		 public ushort servo2_raw; /// Servo output 2 value, in microseconds
-		 public ushort servo3_raw; /// Servo output 3 value, in microseconds
-		 public ushort servo4_raw; /// Servo output 4 value, in microseconds
-		 public ushort servo5_raw; /// Servo output 5 value, in microseconds
-		 public ushort servo6_raw; /// Servo output 6 value, in microseconds
-		 public ushort servo7_raw; /// Servo output 7 value, in microseconds
-		 public ushort servo8_raw; /// Servo output 8 value, in microseconds
-		};
 
-		public const byte MAVLINK_MSG_ID_SERVO_OUTPUT_RAW_LEN = 16;
-		public const byte MAVLINK_MSG_ID_SET_ALTITUDE = 65;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_altitude_t
-		{
-		 public byte target; /// The system setting the altitude
-		 public uint mode; /// The new altitude in meters
-		};
+    public const byte MAVLINK_MSG_ID_ACTION = 10;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_action_t
+    {
+        /// <summary> The system executing the action </summary>
+        public  byte target;
+            /// <summary> The component executing the action </summary>
+        public  byte target_component;
+            /// <summary> The action id </summary>
+        public  byte action;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_MODE = 11;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_set_mode_t
+    {
+        /// <summary> The system setting the mode </summary>
+        public  byte target;
+            /// <summary> The new mode </summary>
+        public  byte mode;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_SET_ALTITUDE_LEN = 5;
-		public const byte MAVLINK_MSG_ID_SET_MODE = 11;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_mode_t
-		{
-		 public byte target; /// The system setting the mode
-		 public byte mode; /// The new mode
-		};
 
-		public const byte MAVLINK_MSG_ID_SET_MODE_LEN = 2;
-		public const byte MAVLINK_MSG_ID_SET_NAV_MODE = 12;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_nav_mode_t
-		{
-		 public byte target; /// The system setting the mode
-		 public byte nav_mode; /// The new navigation mode
-		};
+    public const byte MAVLINK_MSG_ID_SET_NAV_MODE = 12;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_set_nav_mode_t
+    {
+        /// <summary> The system setting the mode </summary>
+        public  byte target;
+            /// <summary> The new navigation mode </summary>
+        public  byte nav_mode;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_SET_NAV_MODE_LEN = 2;
-		public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST = 56;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_roll_pitch_yaw_speed_thrust_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		public float roll_speed; /// Desired roll angular speed in rad/s
-		public float pitch_speed; /// Desired pitch angular speed in rad/s
-		public float yaw_speed; /// Desired yaw angular speed in rad/s
-		public float thrust; /// Collective thrust, normalized to 0 .. 1
-		};
 
-		public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST_LEN = 18;
-		public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST = 55;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_set_roll_pitch_yaw_thrust_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		public float roll; /// Desired roll angle in radians
-		public float pitch; /// Desired pitch angle in radians
-		public float yaw; /// Desired yaw angle in radians
-		public float thrust; /// Collective thrust, normalized to 0 .. 1
-		};
+    public const byte MAVLINK_MSG_ID_PARAM_REQUEST_READ = 20;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=19)]
+    public struct mavlink_param_request_read_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Onboard parameter id </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=15)]
+		public byte[] param_id;
+            /// <summary> Parameter index. Send -1 to use the param ID field as identifier </summary>
+        public  Int16 param_index;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_PARAM_REQUEST_LIST = 21;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_param_request_list_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST_LEN = 18;
-		public const byte MAVLINK_MSG_ID_STATE_CORRECTION = 64;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_state_correction_t
-		{
-		public float xErr; /// x position error
-		public float yErr; /// y position error
-		public float zErr; /// z position error
-		public float rollErr; /// roll error (radians)
-		public float pitchErr; /// pitch error (radians)
-		public float yawErr; /// yaw error (radians)
-		public float vxErr; /// x velocity
-		public float vyErr; /// y velocity
-		public float vzErr; /// z velocity
-		};
 
-		public const byte MAVLINK_MSG_ID_STATE_CORRECTION_LEN = 36;
-		public const byte MAVLINK_MSG_ID_STATUSTEXT = 254;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_statustext_t
-		{
-		 public byte severity; /// Severity of status, 0 = info message, 255 = critical fault
-		[MarshalAs(
-				    	UnmanagedType.ByValArray,
-				    	SizeConst=50)] 
-		 public byte[] text; /// Status text message, without null termination public byteacter
-		};
+    public const byte MAVLINK_MSG_ID_PARAM_VALUE = 22;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=23)]
+    public struct mavlink_param_value_t
+    {
+        /// <summary> Onboard parameter id </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=15)]
+		public byte[] param_id;
+            /// <summary> Onboard parameter value </summary>
+        public  Single param_value;
+            /// <summary> Total number of onboard parameters </summary>
+        public  UInt16 param_count;
+            /// <summary> Index of this onboard parameter </summary>
+        public  UInt16 param_index;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_PARAM_SET = 23;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=21)]
+    public struct mavlink_param_set_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Onboard parameter id </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=15)]
+		public byte[] param_id;
+            /// <summary> Onboard parameter value </summary>
+        public  Single param_value;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GPS_RAW_INT = 25;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=37)]
+    public struct mavlink_gps_raw_int_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 usec;
+            /// <summary> 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix. </summary>
+        public  byte fix_type;
+            /// <summary> Latitude in 1E7 degrees </summary>
+        public  Int32 lat;
+            /// <summary> Longitude in 1E7 degrees </summary>
+        public  Int32 lon;
+            /// <summary> Altitude in 1E3 meters (millimeters) </summary>
+        public  Int32 alt;
+            /// <summary> GPS HDOP </summary>
+        public  Single eph;
+            /// <summary> GPS VDOP </summary>
+        public  Single epv;
+            /// <summary> GPS ground speed (m/s) </summary>
+        public  Single v;
+            /// <summary> Compass heading in degrees, 0..360 degrees </summary>
+        public  Single hdg;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SCALED_IMU = 26;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=26)]
+    public struct mavlink_scaled_imu_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 usec;
+            /// <summary> X acceleration (mg) </summary>
+        public  Int16 xacc;
+            /// <summary> Y acceleration (mg) </summary>
+        public  Int16 yacc;
+            /// <summary> Z acceleration (mg) </summary>
+        public  Int16 zacc;
+            /// <summary> Angular speed around X axis (millirad /sec) </summary>
+        public  Int16 xgyro;
+            /// <summary> Angular speed around Y axis (millirad /sec) </summary>
+        public  Int16 ygyro;
+            /// <summary> Angular speed around Z axis (millirad /sec) </summary>
+        public  Int16 zgyro;
+            /// <summary> X Magnetic field (milli tesla) </summary>
+        public  Int16 xmag;
+            /// <summary> Y Magnetic field (milli tesla) </summary>
+        public  Int16 ymag;
+            /// <summary> Z Magnetic field (milli tesla) </summary>
+        public  Int16 zmag;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GPS_STATUS = 27;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=101)]
+    public struct mavlink_gps_status_t
+    {
+        /// <summary> Number of satellites visible </summary>
+        public  byte satellites_visible;
+            /// <summary> Global satellite ID </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
+		public byte[] satellite_prn;
+            /// <summary> 0: Satellite not used, 1: used for localization </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
+		public byte[] satellite_used;
+            /// <summary> Elevation (0: right on top of receiver, 90: on the horizon) of satellite </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
+		public byte[] satellite_elevation;
+            /// <summary> Direction of satellite, 0: 0 deg, 255: 360 deg. </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
+		public byte[] satellite_azimuth;
+            /// <summary> Signal to noise ratio of satellite </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
+		public byte[] satellite_snr;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_RAW_IMU = 28;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=26)]
+    public struct mavlink_raw_imu_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 usec;
+            /// <summary> X acceleration (raw) </summary>
+        public  Int16 xacc;
+            /// <summary> Y acceleration (raw) </summary>
+        public  Int16 yacc;
+            /// <summary> Z acceleration (raw) </summary>
+        public  Int16 zacc;
+            /// <summary> Angular speed around X axis (raw) </summary>
+        public  Int16 xgyro;
+            /// <summary> Angular speed around Y axis (raw) </summary>
+        public  Int16 ygyro;
+            /// <summary> Angular speed around Z axis (raw) </summary>
+        public  Int16 zgyro;
+            /// <summary> X Magnetic field (raw) </summary>
+        public  Int16 xmag;
+            /// <summary> Y Magnetic field (raw) </summary>
+        public  Int16 ymag;
+            /// <summary> Z Magnetic field (raw) </summary>
+        public  Int16 zmag;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_RAW_PRESSURE = 29;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=16)]
+    public struct mavlink_raw_pressure_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 usec;
+            /// <summary> Absolute pressure (raw) </summary>
+        public  Int16 press_abs;
+            /// <summary> Differential pressure 1 (raw) </summary>
+        public  Int16 press_diff1;
+            /// <summary> Differential pressure 2 (raw) </summary>
+        public  Int16 press_diff2;
+            /// <summary> Raw Temperature measurement (raw) </summary>
+        public  Int16 temperature;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SCALED_PRESSURE = 38;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_scaled_pressure_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 usec;
+            /// <summary> Absolute pressure (hectopascal) </summary>
+        public  Single press_abs;
+            /// <summary> Differential pressure 1 (hectopascal) </summary>
+        public  Single press_diff;
+            /// <summary> Temperature measurement (0.01 degrees celsius) </summary>
+        public  Int16 temperature;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_ATTITUDE = 30;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)]
+    public struct mavlink_attitude_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 usec;
+            /// <summary> Roll angle (rad) </summary>
+        public  Single roll;
+            /// <summary> Pitch angle (rad) </summary>
+        public  Single pitch;
+            /// <summary> Yaw angle (rad) </summary>
+        public  Single yaw;
+            /// <summary> Roll angular speed (rad/s) </summary>
+        public  Single rollspeed;
+            /// <summary> Pitch angular speed (rad/s) </summary>
+        public  Single pitchspeed;
+            /// <summary> Yaw angular speed (rad/s) </summary>
+        public  Single yawspeed;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_LOCAL_POSITION = 31;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)]
+    public struct mavlink_local_position_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 usec;
+            /// <summary> X Position </summary>
+        public  Single x;
+            /// <summary> Y Position </summary>
+        public  Single y;
+            /// <summary> Z Position </summary>
+        public  Single z;
+            /// <summary> X Speed </summary>
+        public  Single vx;
+            /// <summary> Y Speed </summary>
+        public  Single vy;
+            /// <summary> Z Speed </summary>
+        public  Single vz;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GLOBAL_POSITION = 33;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=32)]
+    public struct mavlink_global_position_t
+    {
+        /// <summary> Timestamp (microseconds since unix epoch) </summary>
+        public  UInt64 usec;
+            /// <summary> Latitude, in degrees </summary>
+        public  Single lat;
+            /// <summary> Longitude, in degrees </summary>
+        public  Single lon;
+            /// <summary> Absolute altitude, in meters </summary>
+        public  Single alt;
+            /// <summary> X Speed (in Latitude direction, positive: going north) </summary>
+        public  Single vx;
+            /// <summary> Y Speed (in Longitude direction, positive: going east) </summary>
+        public  Single vy;
+            /// <summary> Z Speed (in Altitude direction, positive: going up) </summary>
+        public  Single vz;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GPS_RAW = 32;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=37)]
+    public struct mavlink_gps_raw_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 usec;
+            /// <summary> 0-1: no fix, 2: 2D fix, 3: 3D fix. Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix. </summary>
+        public  byte fix_type;
+            /// <summary> Latitude in degrees </summary>
+        public  Single lat;
+            /// <summary> Longitude in degrees </summary>
+        public  Single lon;
+            /// <summary> Altitude in meters </summary>
+        public  Single alt;
+            /// <summary> GPS HDOP </summary>
+        public  Single eph;
+            /// <summary> GPS VDOP </summary>
+        public  Single epv;
+            /// <summary> GPS ground speed </summary>
+        public  Single v;
+            /// <summary> Compass heading in degrees, 0..360 degrees </summary>
+        public  Single hdg;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SYS_STATUS = 34;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=11)]
+    public struct mavlink_sys_status_t
+    {
+        /// <summary> System mode, see MAV_MODE ENUM in mavlink/include/mavlink_types.h </summary>
+        public  byte mode;
+            /// <summary> Navigation mode, see MAV_NAV_MODE ENUM </summary>
+        public  byte nav_mode;
+            /// <summary> System status flag, see MAV_STATUS ENUM </summary>
+        public  byte status;
+            /// <summary> Maximum usage in percent of the mainloop time, (0%: 0, 100%: 1000) should be always below 1000 </summary>
+        public  UInt16 load;
+            /// <summary> Battery voltage, in millivolts (1 = 1 millivolt) </summary>
+        public  UInt16 vbat;
+            /// <summary> Remaining battery energy: (0%: 0, 100%: 1000) </summary>
+        public  UInt16 battery_remaining;
+            /// <summary> Dropped packets (packets that were corrupted on reception on the MAV) </summary>
+        public  UInt16 packet_drop;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_RC_CHANNELS_RAW = 35;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=17)]
+    public struct mavlink_rc_channels_raw_t
+    {
+        /// <summary> RC channel 1 value, in microseconds </summary>
+        public  UInt16 chan1_raw;
+            /// <summary> RC channel 2 value, in microseconds </summary>
+        public  UInt16 chan2_raw;
+            /// <summary> RC channel 3 value, in microseconds </summary>
+        public  UInt16 chan3_raw;
+            /// <summary> RC channel 4 value, in microseconds </summary>
+        public  UInt16 chan4_raw;
+            /// <summary> RC channel 5 value, in microseconds </summary>
+        public  UInt16 chan5_raw;
+            /// <summary> RC channel 6 value, in microseconds </summary>
+        public  UInt16 chan6_raw;
+            /// <summary> RC channel 7 value, in microseconds </summary>
+        public  UInt16 chan7_raw;
+            /// <summary> RC channel 8 value, in microseconds </summary>
+        public  UInt16 chan8_raw;
+            /// <summary> Receive signal strength indicator, 0: 0%, 255: 100% </summary>
+        public  byte rssi;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_RC_CHANNELS_SCALED = 36;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=17)]
+    public struct mavlink_rc_channels_scaled_t
+    {
+        /// <summary> RC channel 1 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan1_scaled;
+            /// <summary> RC channel 2 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan2_scaled;
+            /// <summary> RC channel 3 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan3_scaled;
+            /// <summary> RC channel 4 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan4_scaled;
+            /// <summary> RC channel 5 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan5_scaled;
+            /// <summary> RC channel 6 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan6_scaled;
+            /// <summary> RC channel 7 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan7_scaled;
+            /// <summary> RC channel 8 value scaled, (-100%) -10000, (0%) 0, (100%) 10000 </summary>
+        public  Int16 chan8_scaled;
+            /// <summary> Receive signal strength indicator, 0: 0%, 255: 100% </summary>
+        public  byte rssi;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SERVO_OUTPUT_RAW = 37;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=16)]
+    public struct mavlink_servo_output_raw_t
+    {
+        /// <summary> Servo output 1 value, in microseconds </summary>
+        public  UInt16 servo1_raw;
+            /// <summary> Servo output 2 value, in microseconds </summary>
+        public  UInt16 servo2_raw;
+            /// <summary> Servo output 3 value, in microseconds </summary>
+        public  UInt16 servo3_raw;
+            /// <summary> Servo output 4 value, in microseconds </summary>
+        public  UInt16 servo4_raw;
+            /// <summary> Servo output 5 value, in microseconds </summary>
+        public  UInt16 servo5_raw;
+            /// <summary> Servo output 6 value, in microseconds </summary>
+        public  UInt16 servo6_raw;
+            /// <summary> Servo output 7 value, in microseconds </summary>
+        public  UInt16 servo7_raw;
+            /// <summary> Servo output 8 value, in microseconds </summary>
+        public  UInt16 servo8_raw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_WAYPOINT = 39;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)]
+    public struct mavlink_waypoint_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Sequence </summary>
+        public  UInt16 seq;
+            /// <summary> The coordinate system of the waypoint. see MAV_FRAME in mavlink_types.h </summary>
+        public  byte frame;
+            /// <summary> The scheduled action for the waypoint. see MAV_COMMAND in common.xml MAVLink specs </summary>
+        public  byte command;
+            /// <summary> false:0, true:1 </summary>
+        public  byte current;
+            /// <summary> autocontinue to next wp </summary>
+        public  byte autocontinue;
+            /// <summary> PARAM1 / For NAV command waypoints: Radius in which the waypoint is accepted as reached, in meters </summary>
+        public  Single param1;
+            /// <summary> PARAM2 / For NAV command waypoints: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds </summary>
+        public  Single param2;
+            /// <summary> PARAM3 / For LOITER command waypoints: Orbit to circle around the waypoint, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise. </summary>
+        public  Single param3;
+            /// <summary> PARAM4 / For NAV and LOITER command waypoints: Yaw orientation in degrees, [0..360] 0 = NORTH </summary>
+        public  Single param4;
+            /// <summary> PARAM5 / local: x position, global: latitude </summary>
+        public  Single x;
+            /// <summary> PARAM6 / y position: global: longitude </summary>
+        public  Single y;
+            /// <summary> PARAM7 / z position: global: altitude </summary>
+        public  Single z;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_WAYPOINT_REQUEST = 40;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)]
+    public struct mavlink_waypoint_request_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Sequence </summary>
+        public  UInt16 seq;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT = 41;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)]
+    public struct mavlink_waypoint_set_current_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Sequence </summary>
+        public  UInt16 seq;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_WAYPOINT_CURRENT = 42;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_waypoint_current_t
+    {
+        /// <summary> Sequence </summary>
+        public  UInt16 seq;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_STATUSTEXT_LEN = 51;
-		public const byte MAVLINK_MSG_ID_SYSTEM_TIME = 2;
-		public const byte MAVLINK_MSG_ID_SYSTEM_TIME_UTC = 4;
-		public const byte MAVLINK_MSG_ID_SYS_STATUS = 34;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_sys_status_t
-		{
-		 public byte mode; /// System mode, see MAV_MODE ENUM in mavlink/include/mavlink_types.h
-		 public byte nav_mode; /// Navigation mode, see MAV_NAV_MODE ENUM
-		 public byte status; /// System status flag, see MAV_STATUS ENUM
-		 public ushort load; /// Maximum usage in percent of the mainloop time, (0%: 0, 100%: 1000) should be always below 1000
-		 public ushort vbat; /// Battery voltage, in millivolts (1 = 1 millivolt)
-		 public ushort battery_remaining; /// Remaining battery energy: (0%: 0, 100%: 1000)
-		 public ushort packet_drop; /// Dropped packets (packets that were corrupted on reception on the MAV)
-		};
 
-		public const byte MAVLINK_MSG_ID_SYS_STATUS_LEN = 11;
-		public const byte MAVLINK_MSG_ID_VFR_HUD = 74;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_vfr_hud_t
-		{
-		public float airspeed; /// Current airspeed in m/s
-		public float groundspeed; /// Current ground speed in m/s
-		 public short heading; /// Current heading in degrees, in compass units (0..360, 0=north)
-		 public ushort throttle; /// Current throttle setting in integer percent, 0 to 100
-		public float alt; /// Current altitude (MSL), in meters
-		public float climb; /// Current climb rate in meters/second
-		};
+    public const byte MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST = 43;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_waypoint_request_list_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_VFR_HUD_LEN = 20;
-		public const byte MAVLINK_MSG_ID_WAYPOINT = 39;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_waypoint_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public ushort seq; /// Sequence
-		 public byte frame; /// The coordinate system of the waypoint. see MAV_FRAME in mavlink_types.h
-		 public byte command; /// The scheduled action for the waypoint. see MAV_COMMAND in common.xml MAVLink specs
-		 public byte current; /// false:0, true:1
-		 public byte autocontinue; /// autocontinue to next wp
-		public float param1; /// PARAM1 / For NAV command waypoints: Radius in which the waypoint is accepted as reached, in meters
-		public float param2; /// PARAM2 / For NAV command waypoints: Time that the MAV should stay inside the PARAM1 radius before advancing, in milliseconds
-		public float param3; /// PARAM3 / For LOITER command waypoints: Orbit to circle around the waypoint, in meters. If positive the orbit direction should be clockwise, if negative the orbit direction should be counter-clockwise.
-		public float param4; /// PARAM4 / For NAV and LOITER command waypoints: Yaw orientation in degrees, [0..360] 0 = NORTH
-		public float x; /// PARAM5 / local: x position, global: latitude
-		public float y; /// PARAM6 / y position: global: longitude
-		public float z; /// PARAM7 / z position: global: altitude
-		};
 
-		public const byte MAVLINK_MSG_ID_WAYPOINT_LEN = 36;
-		public const byte MAVLINK_MSG_ID_WAYPOINT_ACK = 47;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_waypoint_ack_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public byte type; /// 0: OK, 1: Error
-		};
+    public const byte MAVLINK_MSG_ID_WAYPOINT_COUNT = 44;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=4)]
+    public struct mavlink_waypoint_count_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Number of Waypoints in the Sequence </summary>
+        public  UInt16 count;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL = 45;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_waypoint_clear_all_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_WAYPOINT_ACK_LEN = 3;
-		public const byte MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL = 45;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_waypoint_clear_all_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
 
-		public const byte MAVLINK_MSG_ID_WAYPOINT_CLEAR_ALL_LEN = 2;
-		public const byte MAVLINK_MSG_ID_WAYPOINT_COUNT = 44;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_waypoint_count_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public ushort count; /// Number of Waypoints in the Sequence
-		};
+    public const byte MAVLINK_MSG_ID_WAYPOINT_REACHED = 46;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=2)]
+    public struct mavlink_waypoint_reached_t
+    {
+        /// <summary> Sequence </summary>
+        public  UInt16 seq;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_WAYPOINT_COUNT_LEN = 4;
-		public const byte MAVLINK_MSG_ID_WAYPOINT_CURRENT = 42;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_waypoint_current_t
-		{
-		 public ushort seq; /// Sequence
-		};
 
-		public const byte MAVLINK_MSG_ID_WAYPOINT_CURRENT_LEN = 2;
-		public const byte MAVLINK_MSG_ID_WAYPOINT_REACHED = 46;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_waypoint_reached_t
-		{
-		 public ushort seq; /// Sequence
-		};
+    public const byte MAVLINK_MSG_ID_WAYPOINT_ACK = 47;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=3)]
+    public struct mavlink_waypoint_ack_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> 0: OK, 1: Error </summary>
+        public  byte type;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GPS_SET_GLOBAL_ORIGIN = 48;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)]
+    public struct mavlink_gps_set_global_origin_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> global position * 1E7 </summary>
+        public  Int32 latitude;
+            /// <summary> global position * 1E7 </summary>
+        public  Int32 longitude;
+            /// <summary> global position * 1000 </summary>
+        public  Int32 altitude;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GPS_LOCAL_ORIGIN_SET = 49;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=12)]
+    public struct mavlink_gps_local_origin_set_t
+    {
+        /// <summary> Latitude (WGS84), expressed as * 1E7 </summary>
+        public  Int32 latitude;
+            /// <summary> Longitude (WGS84), expressed as * 1E7 </summary>
+        public  Int32 longitude;
+            /// <summary> Altitude(WGS84), expressed as * 1000 </summary>
+        public  Int32 altitude;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT_SET = 50;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_local_position_setpoint_set_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> x position </summary>
+        public  Single x;
+            /// <summary> y position </summary>
+        public  Single y;
+            /// <summary> z position </summary>
+        public  Single z;
+            /// <summary> Desired yaw angle </summary>
+        public  Single yaw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_LOCAL_POSITION_SETPOINT = 51;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=16)]
+    public struct mavlink_local_position_setpoint_t
+    {
+        /// <summary> x position </summary>
+        public  Single x;
+            /// <summary> y position </summary>
+        public  Single y;
+            /// <summary> z position </summary>
+        public  Single z;
+            /// <summary> Desired yaw angle </summary>
+        public  Single yaw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_CONTROL_STATUS = 52;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)]
+    public struct mavlink_control_status_t
+    {
+        /// <summary> Position fix: 0: lost, 2: 2D position fix, 3: 3D position fix  </summary>
+        public  byte position_fix;
+            /// <summary> Vision position fix: 0: lost, 1: 2D local position hold, 2: 2D global position fix, 3: 3D global position fix  </summary>
+        public  byte vision_fix;
+            /// <summary> GPS position fix: 0: no reception, 1: Minimum 1 satellite, but no position fix, 2: 2D position fix, 3: 3D position fix  </summary>
+        public  byte gps_fix;
+            /// <summary> Attitude estimation health: 0: poor, 255: excellent </summary>
+        public  byte ahrs_health;
+            /// <summary> 0: Attitude control disabled, 1: enabled </summary>
+        public  byte control_att;
+            /// <summary> 0: X, Y position control disabled, 1: enabled </summary>
+        public  byte control_pos_xy;
+            /// <summary> 0: Z position control disabled, 1: enabled </summary>
+        public  byte control_pos_z;
+            /// <summary> 0: Yaw angle control disabled, 1: enabled </summary>
+        public  byte control_pos_yaw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SAFETY_SET_ALLOWED_AREA = 53;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=27)]
+    public struct mavlink_safety_set_allowed_area_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down. </summary>
+        public  byte frame;
+            /// <summary> x position 1 / Latitude 1 </summary>
+        public  Single p1x;
+            /// <summary> y position 1 / Longitude 1 </summary>
+        public  Single p1y;
+            /// <summary> z position 1 / Altitude 1 </summary>
+        public  Single p1z;
+            /// <summary> x position 2 / Latitude 2 </summary>
+        public  Single p2x;
+            /// <summary> y position 2 / Longitude 2 </summary>
+        public  Single p2y;
+            /// <summary> z position 2 / Altitude 2 </summary>
+        public  Single p2z;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SAFETY_ALLOWED_AREA = 54;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=25)]
+    public struct mavlink_safety_allowed_area_t
+    {
+        /// <summary> Coordinate frame, as defined by MAV_FRAME enum in mavlink_types.h. Can be either global, GPS, right-handed with Z axis up or local, right handed, Z axis down. </summary>
+        public  byte frame;
+            /// <summary> x position 1 / Latitude 1 </summary>
+        public  Single p1x;
+            /// <summary> y position 1 / Longitude 1 </summary>
+        public  Single p1y;
+            /// <summary> z position 1 / Altitude 1 </summary>
+        public  Single p1z;
+            /// <summary> x position 2 / Latitude 2 </summary>
+        public  Single p2x;
+            /// <summary> y position 2 / Longitude 2 </summary>
+        public  Single p2y;
+            /// <summary> z position 2 / Altitude 2 </summary>
+        public  Single p2z;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_THRUST = 55;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_set_roll_pitch_yaw_thrust_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Desired roll angle in radians </summary>
+        public  Single roll;
+            /// <summary> Desired pitch angle in radians </summary>
+        public  Single pitch;
+            /// <summary> Desired yaw angle in radians </summary>
+        public  Single yaw;
+            /// <summary> Collective thrust, normalized to 0 .. 1 </summary>
+        public  Single thrust;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_ROLL_PITCH_YAW_SPEED_THRUST = 56;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_set_roll_pitch_yaw_speed_thrust_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> Desired roll angular speed in rad/s </summary>
+        public  Single roll_speed;
+            /// <summary> Desired pitch angular speed in rad/s </summary>
+        public  Single pitch_speed;
+            /// <summary> Desired yaw angular speed in rad/s </summary>
+        public  Single yaw_speed;
+            /// <summary> Collective thrust, normalized to 0 .. 1 </summary>
+        public  Single thrust;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_THRUST_SETPOINT = 57;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=24)]
+    public struct mavlink_roll_pitch_yaw_thrust_setpoint_t
+    {
+        /// <summary> Timestamp in micro seconds since unix epoch </summary>
+        public  UInt64 time_us;
+            /// <summary> Desired roll angle in radians </summary>
+        public  Single roll;
+            /// <summary> Desired pitch angle in radians </summary>
+        public  Single pitch;
+            /// <summary> Desired yaw angle in radians </summary>
+        public  Single yaw;
+            /// <summary> Collective thrust, normalized to 0 .. 1 </summary>
+        public  Single thrust;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_ROLL_PITCH_YAW_SPEED_THRUST_SETPOINT = 58;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=24)]
+    public struct mavlink_roll_pitch_yaw_speed_thrust_setpoint_t
+    {
+        /// <summary> Timestamp in micro seconds since unix epoch </summary>
+        public  UInt64 time_us;
+            /// <summary> Desired roll angular speed in rad/s </summary>
+        public  Single roll_speed;
+            /// <summary> Desired pitch angular speed in rad/s </summary>
+        public  Single pitch_speed;
+            /// <summary> Desired yaw angular speed in rad/s </summary>
+        public  Single yaw_speed;
+            /// <summary> Collective thrust, normalized to 0 .. 1 </summary>
+        public  Single thrust;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT = 62;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=26)]
+    public struct mavlink_nav_controller_output_t
+    {
+        /// <summary> Current desired roll in degrees </summary>
+        public  Single nav_roll;
+            /// <summary> Current desired pitch in degrees </summary>
+        public  Single nav_pitch;
+            /// <summary> Current desired heading in degrees </summary>
+        public  Int16 nav_bearing;
+            /// <summary> Bearing to current waypoint/target in degrees </summary>
+        public  Int16 target_bearing;
+            /// <summary> Distance to active waypoint in meters </summary>
+        public  UInt16 wp_dist;
+            /// <summary> Current altitude error in meters </summary>
+        public  Single alt_error;
+            /// <summary> Current airspeed error in meters/second </summary>
+        public  Single aspd_error;
+            /// <summary> Current crosstrack error on x-y plane in meters </summary>
+        public  Single xtrack_error;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_POSITION_TARGET = 63;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=16)]
+    public struct mavlink_position_target_t
+    {
+        /// <summary> x position </summary>
+        public  Single x;
+            /// <summary> y position </summary>
+        public  Single y;
+            /// <summary> z position </summary>
+        public  Single z;
+            /// <summary> yaw orientation in radians, 0 = NORTH </summary>
+        public  Single yaw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_STATE_CORRECTION = 64;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)]
+    public struct mavlink_state_correction_t
+    {
+        /// <summary> x position error </summary>
+        public  Single xErr;
+            /// <summary> y position error </summary>
+        public  Single yErr;
+            /// <summary> z position error </summary>
+        public  Single zErr;
+            /// <summary> roll error (radians) </summary>
+        public  Single rollErr;
+            /// <summary> pitch error (radians) </summary>
+        public  Single pitchErr;
+            /// <summary> yaw error (radians) </summary>
+        public  Single yawErr;
+            /// <summary> x velocity </summary>
+        public  Single vxErr;
+            /// <summary> y velocity </summary>
+        public  Single vyErr;
+            /// <summary> z velocity </summary>
+        public  Single vzErr;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_SET_ALTITUDE = 65;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=5)]
+    public struct mavlink_set_altitude_t
+    {
+        /// <summary> The system setting the altitude </summary>
+        public  byte target;
+            /// <summary> The new altitude in meters </summary>
+        public  UInt32 mode;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_WAYPOINT_REACHED_LEN = 2;
-		public const byte MAVLINK_MSG_ID_WAYPOINT_REQUEST = 40;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_waypoint_request_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public ushort seq; /// Sequence
-		};
 
-		public const byte MAVLINK_MSG_ID_WAYPOINT_REQUEST_LEN = 4;
-		public const byte MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST = 43;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_waypoint_request_list_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		};
+    public const byte MAVLINK_MSG_ID_REQUEST_DATA_STREAM = 66;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=6)]
+    public struct mavlink_request_data_stream_t
+    {
+        /// <summary> The target requested to send the message stream. </summary>
+        public  byte target_system;
+            /// <summary> The target requested to send the message stream. </summary>
+        public  byte target_component;
+            /// <summary> The ID of the requested message type </summary>
+        public  byte req_stream_id;
+            /// <summary> Update rate in Hertz </summary>
+        public  UInt16 req_message_rate;
+            /// <summary> 1 to start sending, 0 to stop sending. </summary>
+        public  byte start_stop;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_HIL_STATE = 67;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=56)]
+    public struct mavlink_hil_state_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 usec;
+            /// <summary> Roll angle (rad) </summary>
+        public  Single roll;
+            /// <summary> Pitch angle (rad) </summary>
+        public  Single pitch;
+            /// <summary> Yaw angle (rad) </summary>
+        public  Single yaw;
+            /// <summary> Roll angular speed (rad/s) </summary>
+        public  Single rollspeed;
+            /// <summary> Pitch angular speed (rad/s) </summary>
+        public  Single pitchspeed;
+            /// <summary> Yaw angular speed (rad/s) </summary>
+        public  Single yawspeed;
+            /// <summary> Latitude, expressed as * 1E7 </summary>
+        public  Int32 lat;
+            /// <summary> Longitude, expressed as * 1E7 </summary>
+        public  Int32 lon;
+            /// <summary> Altitude in meters, expressed as * 1000 (millimeters) </summary>
+        public  Int32 alt;
+            /// <summary> Ground X Speed (Latitude), expressed as m/s * 100 </summary>
+        public  Int16 vx;
+            /// <summary> Ground Y Speed (Longitude), expressed as m/s * 100 </summary>
+        public  Int16 vy;
+            /// <summary> Ground Z Speed (Altitude), expressed as m/s * 100 </summary>
+        public  Int16 vz;
+            /// <summary> X acceleration (mg) </summary>
+        public  Int16 xacc;
+            /// <summary> Y acceleration (mg) </summary>
+        public  Int16 yacc;
+            /// <summary> Z acceleration (mg) </summary>
+        public  Int16 zacc;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_HIL_CONTROLS = 68;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=26)]
+    public struct mavlink_hil_controls_t
+    {
+        /// <summary> Timestamp (microseconds since UNIX epoch or microseconds since system boot) </summary>
+        public  UInt64 time_us;
+            /// <summary> Control output -3 .. 1 </summary>
+        public  Single roll_ailerons;
+            /// <summary> Control output -1 .. 1 </summary>
+        public  Single pitch_elevator;
+            /// <summary> Control output -1 .. 1 </summary>
+        public  Single yaw_rudder;
+            /// <summary> Throttle 0 .. 1 </summary>
+        public  Single throttle;
+            /// <summary> System mode (MAV_MODE) </summary>
+        public  byte mode;
+            /// <summary> Navigation mode (MAV_NAV_MODE) </summary>
+        public  byte nav_mode;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_MANUAL_CONTROL = 69;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=21)]
+    public struct mavlink_manual_control_t
+    {
+        /// <summary> The system to be controlled </summary>
+        public  byte target;
+            /// <summary> roll </summary>
+        public  Single roll;
+            /// <summary> pitch </summary>
+        public  Single pitch;
+            /// <summary> yaw </summary>
+        public  Single yaw;
+            /// <summary> thrust </summary>
+        public  Single thrust;
+            /// <summary> roll control enabled auto:0, manual:1 </summary>
+        public  byte roll_manual;
+            /// <summary> pitch auto:0, manual:1 </summary>
+        public  byte pitch_manual;
+            /// <summary> yaw auto:0, manual:1 </summary>
+        public  byte yaw_manual;
+            /// <summary> thrust auto:0, manual:1 </summary>
+        public  byte thrust_manual;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDE = 70;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_rc_channels_override_t
+    {
+        /// <summary> System ID </summary>
+        public  byte target_system;
+            /// <summary> Component ID </summary>
+        public  byte target_component;
+            /// <summary> RC channel 1 value, in microseconds </summary>
+        public  UInt16 chan1_raw;
+            /// <summary> RC channel 2 value, in microseconds </summary>
+        public  UInt16 chan2_raw;
+            /// <summary> RC channel 3 value, in microseconds </summary>
+        public  UInt16 chan3_raw;
+            /// <summary> RC channel 4 value, in microseconds </summary>
+        public  UInt16 chan4_raw;
+            /// <summary> RC channel 5 value, in microseconds </summary>
+        public  UInt16 chan5_raw;
+            /// <summary> RC channel 6 value, in microseconds </summary>
+        public  UInt16 chan6_raw;
+            /// <summary> RC channel 7 value, in microseconds </summary>
+        public  UInt16 chan7_raw;
+            /// <summary> RC channel 8 value, in microseconds </summary>
+        public  UInt16 chan8_raw;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_GLOBAL_POSITION_INT = 73;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_global_position_int_t
+    {
+        /// <summary> Latitude, expressed as * 1E7 </summary>
+        public  Int32 lat;
+            /// <summary> Longitude, expressed as * 1E7 </summary>
+        public  Int32 lon;
+            /// <summary> Altitude in meters, expressed as * 1000 (millimeters) </summary>
+        public  Int32 alt;
+            /// <summary> Ground X Speed (Latitude), expressed as m/s * 100 </summary>
+        public  Int16 vx;
+            /// <summary> Ground Y Speed (Longitude), expressed as m/s * 100 </summary>
+        public  Int16 vy;
+            /// <summary> Ground Z Speed (Altitude), expressed as m/s * 100 </summary>
+        public  Int16 vz;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_VFR_HUD = 74;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)]
+    public struct mavlink_vfr_hud_t
+    {
+        /// <summary> Current airspeed in m/s </summary>
+        public  Single airspeed;
+            /// <summary> Current ground speed in m/s </summary>
+        public  Single groundspeed;
+            /// <summary> Current heading in degrees, in compass units (0..360, 0=north) </summary>
+        public  Int16 heading;
+            /// <summary> Current throttle setting in integer percent, 0 to 100 </summary>
+        public  UInt16 throttle;
+            /// <summary> Current altitude (MSL), in meters </summary>
+        public  Single alt;
+            /// <summary> Current climb rate in meters/second </summary>
+        public  Single climb;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_COMMAND = 75;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=20)]
+    public struct mavlink_command_t
+    {
+        /// <summary> System which should execute the command </summary>
+        public  byte target_system;
+            /// <summary> Component which should execute the command, 0 for all components </summary>
+        public  byte target_component;
+            /// <summary> Command ID, as defined by MAV_CMD enum. </summary>
+        public  byte command;
+            /// <summary> 0: First transmission of this command. 1-255: Confirmation transmissions (e.g. for kill command) </summary>
+        public  byte confirmation;
+            /// <summary> Parameter 1, as defined by MAV_CMD enum. </summary>
+        public  Single param1;
+            /// <summary> Parameter 2, as defined by MAV_CMD enum. </summary>
+        public  Single param2;
+            /// <summary> Parameter 3, as defined by MAV_CMD enum. </summary>
+        public  Single param3;
+            /// <summary> Parameter 4, as defined by MAV_CMD enum. </summary>
+        public  Single param4;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_COMMAND_ACK = 76;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=8)]
+    public struct mavlink_command_ack_t
+    {
+        /// <summary> Current airspeed in m/s </summary>
+        public  Single command;
+            /// <summary> 1: Action ACCEPTED and EXECUTED, 1: Action TEMPORARY REJECTED/DENIED, 2: Action PERMANENTLY DENIED, 3: Action UNKNOWN/UNSUPPORTED, 4: Requesting CONFIRMATION </summary>
+        public  Single result;
+    
+    };
 
-		public const byte MAVLINK_MSG_ID_WAYPOINT_REQUEST_LIST_LEN = 2;
-		public const byte MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT = 41;
-		[StructLayout(LayoutKind.Sequential,Pack=1)]
-		public struct __mavlink_waypoint_set_current_t
-		{
-		 public byte target_system; /// System ID
-		 public byte target_component; /// Component ID
-		 public ushort seq; /// Sequence
-		};
 
-		public const byte MAVLINK_MSG_ID_WAYPOINT_SET_CURRENT_LEN = 4;
-		public 		enum MAV_CLASS
+    public const byte MAVLINK_MSG_ID_OPTICAL_FLOW = 100;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=18)]
+    public struct mavlink_optical_flow_t
+    {
+        /// <summary> Timestamp (UNIX) </summary>
+        public  UInt64 time;
+            /// <summary> Sensor ID </summary>
+        public  byte sensor_id;
+            /// <summary> Flow in pixels in x-sensor direction </summary>
+        public  Int16 flow_x;
+            /// <summary> Flow in pixels in y-sensor direction </summary>
+        public  Int16 flow_y;
+            /// <summary> Optical flow quality / confidence. 0: bad, 255: maximum quality </summary>
+        public  byte quality;
+            /// <summary> Ground distance in meters </summary>
+        public  Single ground_distance;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_OBJECT_DETECTION_EVENT = 140;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=36)]
+    public struct mavlink_object_detection_event_t
+    {
+        /// <summary> Timestamp in milliseconds since system boot </summary>
+        public  UInt32 time;
+            /// <summary> Object ID </summary>
+        public  UInt16 object_id;
+            /// <summary> Object type: 0: image, 1: letter, 2: ground vehicle, 3: air vehicle, 4: surface vehicle, 5: sub-surface vehicle, 6: human, 7: animal </summary>
+        public  byte type;
+            /// <summary> Name of the object as defined by the detector </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=20)]
+		public string name;
+            /// <summary> Detection quality / confidence. 0: bad, 255: maximum confidence </summary>
+        public  byte quality;
+            /// <summary> Angle of the object with respect to the body frame in NED coordinates in radians. 0: front </summary>
+        public  Single bearing;
+            /// <summary> Ground distance in meters </summary>
+        public  Single distance;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_DEBUG_VECT = 251;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=30)]
+    public struct mavlink_debug_vect_t
+    {
+        /// <summary> Name </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)]
+		public string name;
+            /// <summary> Timestamp </summary>
+        public  UInt64 usec;
+            /// <summary> x </summary>
+        public  Single x;
+            /// <summary> y </summary>
+        public  Single y;
+            /// <summary> z </summary>
+        public  Single z;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_NAMED_VALUE_FLOAT = 252;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)]
+    public struct mavlink_named_value_float_t
+    {
+        /// <summary> Name of the debug variable </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)]
+		public string name;
+            /// <summary> Floating point value </summary>
+        public  Single value;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_NAMED_VALUE_INT = 253;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=14)]
+    public struct mavlink_named_value_int_t
+    {
+        /// <summary> Name of the debug variable </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)]
+		public string name;
+            /// <summary> Signed integer value </summary>
+        public  Int32 value;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_STATUSTEXT = 254;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=51)]
+    public struct mavlink_statustext_t
+    {
+        /// <summary> Severity of status, 0 = info message, 255 = critical fault </summary>
+        public  byte severity;
+            /// <summary> Status text message, without null termination character </summary>
+        [MarshalAs(UnmanagedType.ByValArray,SizeConst=50)]
+		public byte[] text;
+    
+    };
+
+
+    public const byte MAVLINK_MSG_ID_DEBUG = 255;
+    [StructLayout(LayoutKind.Sequential,Pack=1,Size=5)]
+    public struct mavlink_debug_t
+    {
+        /// <summary> index of debug variable </summary>
+        public  byte ind;
+            /// <summary> DEBUG value </summary>
+        public  Single value;  };
+public 		enum MAV_CLASS
 		{
 		    MAV_CLASS_GENERIC = 0,        /// Generic autopilot, full support for everything
 		    MAV_CLASS_PIXHAWK = 1,        /// PIXHAWK autopilot, http://pixhawk.ethz.ch
@@ -1344,9 +1935,20 @@ namespace ArdupilotMega
 		    MAV_FRAME_LOCAL_ENU = 4
 		};
 
-Type[] mavstructs = new Type[] {typeof( __mavlink_heartbeat_t) ,typeof( __mavlink_boot_t) ,null ,typeof( __mavlink_ping_t) ,null ,typeof( __mavlink_change_operator_control_t) ,typeof( __mavlink_change_operator_control_ack_t) ,typeof( __mavlink_auth_key_t) ,null ,typeof( __mavlink_action_ack_t) ,typeof( __mavlink_action_t) ,typeof( __mavlink_set_mode_t) ,typeof( __mavlink_set_nav_mode_t) ,null ,null ,null ,null ,null ,null ,null ,typeof( __mavlink_param_request_read_t) ,typeof( __mavlink_param_request_list_t) ,typeof( __mavlink_param_value_t) ,typeof( __mavlink_param_set_t) ,null ,typeof( __mavlink_gps_raw_int_t) ,typeof( __mavlink_scaled_imu_t) ,typeof( __mavlink_gps_status_t) ,typeof( __mavlink_raw_imu_t) ,typeof( __mavlink_raw_pressure_t) ,typeof( __mavlink_attitude_t) ,typeof( __mavlink_local_position_t) ,typeof( __mavlink_gps_raw_t) ,typeof( __mavlink_global_position_t) ,typeof( __mavlink_sys_status_t) ,typeof( __mavlink_rc_channels_raw_t) ,typeof( __mavlink_rc_channels_scaled_t) ,typeof( __mavlink_servo_output_raw_t) ,typeof( __mavlink_scaled_pressure_t) ,typeof( __mavlink_waypoint_t) ,typeof( __mavlink_waypoint_request_t) ,typeof( __mavlink_waypoint_set_current_t) ,typeof( __mavlink_waypoint_current_t) ,typeof( __mavlink_waypoint_request_list_t) ,typeof( __mavlink_waypoint_count_t) ,typeof( __mavlink_waypoint_clear_all_t) ,typeof( __mavlink_waypoint_reached_t) ,typeof( __mavlink_waypoint_ack_t) ,typeof( __mavlink_gps_set_global_origin_t) ,typeof( __mavlink_gps_local_origin_set_t) ,typeof( __mavlink_local_position_setpoint_set_t) ,typeof( __mavlink_local_position_setpoint_t) ,typeof( __mavlink_control_status_t) ,typeof( __mavlink_safety_set_allowed_area_t) ,typeof( __mavlink_safety_allowed_area_t) ,typeof( __mavlink_set_roll_pitch_yaw_thrust_t) ,typeof( __mavlink_set_roll_pitch_yaw_speed_thrust_t) ,typeof( __mavlink_roll_pitch_yaw_thrust_setpoint_t) ,typeof( __mavlink_roll_pitch_yaw_speed_thrust_setpoint_t) ,null ,null ,null ,typeof( __mavlink_nav_controller_output_t) ,typeof( __mavlink_position_target_t) ,typeof( __mavlink_state_correction_t) ,typeof( __mavlink_set_altitude_t) ,typeof( __mavlink_request_data_stream_t) ,typeof( __mavlink_hil_state_t) ,typeof( __mavlink_hil_controls_t) ,typeof( __mavlink_manual_control_t) ,typeof( __mavlink_rc_channels_override_t) ,null ,null ,typeof( __mavlink_global_position_int_t) ,typeof( __mavlink_vfr_hud_t) ,typeof( __mavlink_command_t) ,typeof( __mavlink_command_ack_t) ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,typeof( __mavlink_optical_flow_t) ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,typeof( __mavlink_object_detection_event_t) ,null ,null ,null ,null ,null ,null ,null ,null ,null ,typeof( __mavlink_sensor_offsets_t) ,typeof( __mavlink_set_mag_offsets_t) ,typeof( __mavlink_meminfo_t) ,typeof( __mavlink_ap_adc_t) ,typeof( __mavlink_digicam_configure_t) ,typeof( __mavlink_digicam_control_t) ,typeof( __mavlink_mount_configure_t) ,typeof( __mavlink_mount_control_t) ,typeof( __mavlink_mount_status_t) ,null ,typeof( __mavlink_fence_point_t) ,typeof( __mavlink_fence_fetch_point_t) ,typeof( __mavlink_fence_status_t) ,typeof( __mavlink_dcm_t) ,typeof( __mavlink_simstate_t) ,typeof( __mavlink_hwstatus_t) ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,typeof( __mavlink_debug_vect_t) ,typeof( __mavlink_named_value_float_t) ,typeof( __mavlink_named_value_int_t) ,typeof( __mavlink_statustext_t) ,typeof( __mavlink_debug_t) ,null ,};
+		public 		enum MAV_DATA_STREAM
+		{
+			MAV_DATA_STREAM_ALL=0, /* Enable all data streams | */
+			MAV_DATA_STREAM_RAW_SENSORS=1, /* Enable IMU_RAW, GPS_RAW, GPS_STATUS packets. | */
+			MAV_DATA_STREAM_EXTENDED_STATUS=2, /* Enable GPS_STATUS, CONTROL_STATUS, AUX_STATUS | */
+			MAV_DATA_STREAM_RC_CHANNELS=3, /* Enable RC_CHANNELS_SCALED, RC_CHANNELS_RAW, SERVO_OUTPUT_RAW | */
+			MAV_DATA_STREAM_RAW_CONTROLLER=4, /* Enable ATTITUDE_CONTROLLER_OUTPUT, POSITION_CONTROLLER_OUTPUT, NAV_CONTROLLER_OUTPUT. | */
+			MAV_DATA_STREAM_POSITION=6, /* Enable LOCAL_POSITION, GLOBAL_POSITION/GLOBAL_POSITION_INT messages. | */
+			MAV_DATA_STREAM_EXTRA1=10, /* Dependent on the autopilot | */
+			MAV_DATA_STREAM_EXTRA2=11, /* Dependent on the autopilot | */
+			MAV_DATA_STREAM_EXTRA3=12, /* Dependent on the autopilot | */
+			MAV_DATA_STREAM_ENUM_END=13, /*  | */
+		};
 
-	}
+     }
 #endif
 }
-
diff --git a/Tools/ArdupilotMegaPlanner/MagCalib.cs b/Tools/ArdupilotMegaPlanner/MagCalib.cs
index e94a63993..199bcb497 100644
--- a/Tools/ArdupilotMegaPlanner/MagCalib.cs
+++ b/Tools/ArdupilotMegaPlanner/MagCalib.cs
@@ -98,9 +98,9 @@ namespace ArdupilotMega
                     if (packet == null)
                         continue;
 
-                    if (packet.GetType() == typeof(MAVLink.__mavlink_vfr_hud_t))
+                    if (packet.GetType() == typeof(MAVLink.mavlink_vfr_hud_t))
                     {
-                        if (((MAVLink.__mavlink_vfr_hud_t)packet).throttle >= throttleThreshold)
+                        if (((MAVLink.mavlink_vfr_hud_t)packet).throttle >= throttleThreshold)
                         {
                             useData = true;
                         }
@@ -111,35 +111,35 @@ namespace ArdupilotMega
 
                     }
 
-                    if (packet.GetType() == typeof(MAVLink.__mavlink_sensor_offsets_t))
+                    if (packet.GetType() == typeof(MAVLink.mavlink_sensor_offsets_t))
                     {
                         offset = new Tuple<float, float, float>(
-                            ((MAVLink.__mavlink_sensor_offsets_t)packet).mag_ofs_x,
-                            ((MAVLink.__mavlink_sensor_offsets_t)packet).mag_ofs_y,
-                            ((MAVLink.__mavlink_sensor_offsets_t)packet).mag_ofs_z);
+                            ((MAVLink.mavlink_sensor_offsets_t)packet).mag_ofs_x,
+                            ((MAVLink.mavlink_sensor_offsets_t)packet).mag_ofs_y,
+                            ((MAVLink.mavlink_sensor_offsets_t)packet).mag_ofs_z);
                     }
-                    else if (packet.GetType() == typeof(MAVLink.__mavlink_raw_imu_t) && useData)
+                    else if (packet.GetType() == typeof(MAVLink.mavlink_raw_imu_t) && useData)
                     {
                         int div = 20;
 
                         // fox dxf
                         vertex = new Polyline3dVertex(new Vector3f(
-                            ((MAVLink.__mavlink_raw_imu_t)packet).xmag - offset.Item1,
-                            ((MAVLink.__mavlink_raw_imu_t)packet).ymag - offset.Item2,
-                            ((MAVLink.__mavlink_raw_imu_t)packet).zmag - offset.Item3)
+                            ((MAVLink.mavlink_raw_imu_t)packet).xmag - offset.Item1,
+                            ((MAVLink.mavlink_raw_imu_t)packet).ymag - offset.Item2,
+                            ((MAVLink.mavlink_raw_imu_t)packet).zmag - offset.Item3)
                             );
                         vertexes.Add(vertex);
 
 
                         // for old method
-                        setMinorMax(((MAVLink.__mavlink_raw_imu_t)packet).xmag - offset.Item1, ref minx, ref maxx);
-                        setMinorMax(((MAVLink.__mavlink_raw_imu_t)packet).ymag - offset.Item2, ref miny, ref maxy);
-                        setMinorMax(((MAVLink.__mavlink_raw_imu_t)packet).zmag - offset.Item3, ref minz, ref maxz);
+                        setMinorMax(((MAVLink.mavlink_raw_imu_t)packet).xmag - offset.Item1, ref minx, ref maxx);
+                        setMinorMax(((MAVLink.mavlink_raw_imu_t)packet).ymag - offset.Item2, ref miny, ref maxy);
+                        setMinorMax(((MAVLink.mavlink_raw_imu_t)packet).zmag - offset.Item3, ref minz, ref maxz);
 
                         // for new lease sq
-                        string item = (int)(((MAVLink.__mavlink_raw_imu_t)packet).xmag / div) + "," +
-                            (int)(((MAVLink.__mavlink_raw_imu_t)packet).ymag / div) + "," +
-                            (int)(((MAVLink.__mavlink_raw_imu_t)packet).zmag / div);
+                        string item = (int)(((MAVLink.mavlink_raw_imu_t)packet).xmag / div) + "," +
+                            (int)(((MAVLink.mavlink_raw_imu_t)packet).ymag / div) + "," +
+                            (int)(((MAVLink.mavlink_raw_imu_t)packet).zmag / div);
 
                         if (filter.ContainsKey(item))
                         {
@@ -155,9 +155,9 @@ namespace ArdupilotMega
 
 
                         data.Add(new Tuple<float, float, float>(
-                            ((MAVLink.__mavlink_raw_imu_t)packet).xmag - offset.Item1,
-                            ((MAVLink.__mavlink_raw_imu_t)packet).ymag - offset.Item2,
-                            ((MAVLink.__mavlink_raw_imu_t)packet).zmag - offset.Item3));
+                            ((MAVLink.mavlink_raw_imu_t)packet).xmag - offset.Item1,
+                            ((MAVLink.mavlink_raw_imu_t)packet).ymag - offset.Item2,
+                            ((MAVLink.mavlink_raw_imu_t)packet).zmag - offset.Item3));
 
                     }
 
diff --git a/Tools/ArdupilotMegaPlanner/MainV2.cs b/Tools/ArdupilotMegaPlanner/MainV2.cs
index 6de12700b..76ee48fc3 100644
--- a/Tools/ArdupilotMegaPlanner/MainV2.cs
+++ b/Tools/ArdupilotMegaPlanner/MainV2.cs
@@ -58,6 +58,8 @@ namespace ArdupilotMega
 
         bool serialThread = false;
 
+        static internal BindingSource bs;
+
         TcpListener listener;
 
         DateTime heatbeatSend = DateTime.Now;
@@ -187,7 +189,6 @@ namespace ArdupilotMega
                 if (config["MainWidth"] != null)
                     this.Width = int.Parse(config["MainWidth"].ToString());
 
-
                 if (config["CMB_rateattitude"] != null)
                     MainV2.cs.rateattitude = byte.Parse(config["CMB_rateattitude"].ToString());
                 if (config["rateposition"] != null)
@@ -794,7 +795,7 @@ namespace ArdupilotMega
 
                         if (joystick != null && joystick.enabled)
                         {
-                            MAVLink.__mavlink_rc_channels_override_t rc = new MAVLink.__mavlink_rc_channels_override_t();
+                            MAVLink.mavlink_rc_channels_override_t rc = new MAVLink.mavlink_rc_channels_override_t();
 
                             rc.target_component = comPort.compid;
                             rc.target_system = comPort.sysid;
@@ -956,7 +957,7 @@ namespace ArdupilotMega
                     {
                         //                        Console.WriteLine("remote lost {0}", cs.packetdropremote);
 
-                        MAVLink.__mavlink_heartbeat_t htb = new MAVLink.__mavlink_heartbeat_t();
+                        MAVLink.mavlink_heartbeat_t htb = new MAVLink.mavlink_heartbeat_t();
 
 #if MAVLINK10
                         htb.type = (byte)MAVLink.MAV_TYPE.MAV_TYPE_GCS;
@@ -1862,7 +1863,7 @@ namespace ArdupilotMega
             }
             if (keyData == (Keys.Control | Keys.W)) // test
             {
-                Form frm = new GCSViews.ConfigurationView.Configuration();
+                Form frm = new GCSViews.ConfigurationView.Setup();
                 ThemeManager.ApplyThemeTo(frm);
                 frm.Show();
                 return true;
@@ -1942,6 +1943,9 @@ namespace ArdupilotMega
 
                 if (comPort.rawlogfile != null)
                     comPort.rawlogfile.Close();
+
+                comPort.logfile = null;
+                comPort.rawlogfile = null;
             }
             catch { }
 
diff --git a/Tools/ArdupilotMegaPlanner/MavlinkLog.cs b/Tools/ArdupilotMegaPlanner/MavlinkLog.cs
index 73f5cfac0..707f84ff7 100644
--- a/Tools/ArdupilotMegaPlanner/MavlinkLog.cs
+++ b/Tools/ArdupilotMegaPlanner/MavlinkLog.cs
@@ -744,7 +744,7 @@ namespace ArdupilotMega
                 int colorvalue = ColourValues[step % ColourValues.Length];
                 step++;
 
-                myCurve = zg1.GraphPane.AddCurve(lookforfields[a].Replace("__mavlink_", ""), lists[a], Color.FromArgb(unchecked(colorvalue + (int)0xff000000)), SymbolType.None);
+                myCurve = zg1.GraphPane.AddCurve(lookforfields[a].Replace("mavlink_", ""), lists[a], Color.FromArgb(unchecked(colorvalue + (int)0xff000000)), SymbolType.None);
 
                 double xMin, xMax, yMin, yMax;
 
@@ -795,6 +795,12 @@ namespace ArdupilotMega
 
                     object data = MavlinkInterface.DebugPacket(packet, false);
 
+                    if (data == null)
+                    {
+                        log.Info("No info on packet");
+                        continue;
+                    }
+
                     Type test = data.GetType();
 
                     foreach (var field in test.GetFields())
@@ -890,9 +896,9 @@ namespace ArdupilotMega
 
             PointPairList list = ((PointPairList)this.data[field]);
 
-            PointPairList listx = ((PointPairList)this.data["xmag __mavlink_raw_imu_t"]);
-            PointPairList listy = ((PointPairList)this.data["ymag __mavlink_raw_imu_t"]);
-            PointPairList listz = ((PointPairList)this.data["zmag __mavlink_raw_imu_t"]);
+            PointPairList listx = ((PointPairList)this.data["xmag mavlink_raw_imu_t"]);
+            PointPairList listy = ((PointPairList)this.data["ymag mavlink_raw_imu_t"]);
+            PointPairList listz = ((PointPairList)this.data["zmag mavlink_raw_imu_t"]);
 
             //(float)Math.Sqrt(Math.Pow(mx, 2) + Math.Pow(my, 2) + Math.Pow(mz, 2));
 
@@ -949,13 +955,13 @@ namespace ArdupilotMega
                 int colorvalue = ColourValues[colorStep % ColourValues.Length];
                 colorStep++;
 
-                myCurve = zg1.GraphPane.AddCurve(((CheckBox)sender).Name.Replace("__mavlink_", ""), (PointPairList)data[((CheckBox)sender).Name], Color.FromArgb(unchecked(colorvalue + (int)0xff000000)), SymbolType.None);
+                myCurve = zg1.GraphPane.AddCurve(((CheckBox)sender).Name.Replace("mavlink_", ""), (PointPairList)data[((CheckBox)sender).Name], Color.FromArgb(unchecked(colorvalue + (int)0xff000000)), SymbolType.None);
 
                 myCurve.Tag = ((CheckBox)sender).Name;
 
-                if (myCurve.Tag.ToString() == "roll __mavlink_attitude_t" ||
-                    myCurve.Tag.ToString() == "pitch __mavlink_attitude_t" ||
-                    myCurve.Tag.ToString() == "yaw __mavlink_attitude_t")
+                if (myCurve.Tag.ToString() == "roll mavlink_attitude_t" ||
+                    myCurve.Tag.ToString() == "pitch mavlink_attitude_t" ||
+                    myCurve.Tag.ToString() == "yaw mavlink_attitude_t")
                 {
                     PointPairList ppl = new PointPairList((PointPairList)data[((CheckBox)sender).Name]);
                     for (int a = 0; a < ppl.Count; a++)
diff --git a/Tools/ArdupilotMegaPlanner/Msi/installer.wxs b/Tools/ArdupilotMegaPlanner/Msi/installer.wxs
index 3b70d3950..7d03a402f 100644
--- a/Tools/ArdupilotMegaPlanner/Msi/installer.wxs
+++ b/Tools/ArdupilotMegaPlanner/Msi/installer.wxs
@@ -23,100 +23,100 @@
                             <Permission User="Everyone" GenericAll="yes" /> 
                         </CreateFolder>
                     </Component>
-<Component Id="_comp0" Guid="ac593651-82f6-4297-bb94-f8a233d91b6f">
-<File Id="_1" Source="..\bin\release\AeroSimRCAPMHil.zip" />
-<File Id="_2" Source="..\bin\release\alglibnet2.dll" />
-<File Id="_3" Source="..\bin\release\arducopter-xplane.zip" />
-<File Id="_4" Source="..\bin\release\ArdupilotMegaPlanner.exe" />
-<File Id="_5" Source="..\bin\release\ArdupilotMegaPlanner.exe.config" />
-<File Id="_6" Source="..\bin\release\ArdupilotMegaPlanner.pdb" />
-<File Id="_7" Source="..\bin\release\block_plane_0.dae" />
-<File Id="_8" Source="..\bin\release\BSE.Windows.Forms.dll" />
-<File Id="_9" Source="..\bin\release\Core.dll" />
-<File Id="_10" Source="..\bin\release\dataflashlog.xml" />
-<File Id="_11" Source="..\bin\release\DirectShowLib-2005.dll" />
-<File Id="_12" Source="..\bin\release\GMap.NET.Core.dll" />
-<File Id="_13" Source="..\bin\release\GMap.NET.WindowsForms.dll" />
-<File Id="_14" Source="..\bin\release\hud.html" />
-<File Id="_15" Source="..\bin\release\ICSharpCode.SharpZipLib.dll" />
-<File Id="_16" Source="..\bin\release\Ionic.Zip.Reduced.dll" />
-<File Id="_17" Source="..\bin\release\IronPython.dll" />
-<File Id="_18" Source="..\bin\release\IronPython.Modules.dll" />
-<File Id="_19" Source="..\bin\release\JSBSim.exe" />
-<File Id="_20" Source="..\bin\release\KMLib.dll" />
-<File Id="_21" Source="..\bin\release\log4net.dll" />
-<File Id="_22" Source="..\bin\release\mavcmd.xml" />
-<File Id="_23" Source="..\bin\release\MAVLink.xml" />
-<File Id="_24" Source="..\bin\release\MetaDataExtractor.dll" />
-<File Id="_25" Source="..\bin\release\Microsoft.Dynamic.dll" />
-<File Id="_26" Source="..\bin\release\Microsoft.Scripting.Core.dll" />
-<File Id="_27" Source="..\bin\release\Microsoft.Scripting.Debugging.dll" />
-<File Id="_28" Source="..\bin\release\Microsoft.Scripting.dll" />
-<File Id="_29" Source="..\bin\release\Microsoft.Scripting.ExtensionAttribute.dll" />
-<File Id="_30" Source="..\bin\release\netDxf.dll" />
-<File Id="_31" Source="..\bin\release\OpenTK.dll" />
-<File Id="_32" Source="..\bin\release\OpenTK.GLControl.dll" />
-<File Id="_33" Source="..\bin\release\quadhil.xml" />
-<File Id="_34" Source="..\bin\release\SharpKml.dll" />
-<File Id="_35" Source="..\bin\release\System.Data.SQLite.dll" />
-<File Id="_36" Source="..\bin\release\System.Speech.dll" />
-<File Id="_37" Source="..\bin\release\Updater.exe" />
-<File Id="_38" Source="..\bin\release\Updater.exe.config" />
-<File Id="_39" Source="..\bin\release\Updater.pdb" />
-<File Id="_40" Source="..\bin\release\ZedGraph.dll" />
+<Component Id="_comp1" Guid="34295c8e-0d23-4735-b56d-d2b6652756e5">
+<File Id="_2" Source="..\bin\release\AeroSimRCAPMHil.zip" />
+<File Id="_3" Source="..\bin\release\alglibnet2.dll" />
+<File Id="_4" Source="..\bin\release\arducopter-xplane.zip" />
+<File Id="_5" Source="..\bin\release\ArdupilotMegaPlanner.exe" />
+<File Id="_6" Source="..\bin\release\ArdupilotMegaPlanner.exe.config" />
+<File Id="_7" Source="..\bin\release\ArdupilotMegaPlanner.pdb" />
+<File Id="_8" Source="..\bin\release\block_plane_0.dae" />
+<File Id="_9" Source="..\bin\release\BSE.Windows.Forms.dll" />
+<File Id="_10" Source="..\bin\release\Core.dll" />
+<File Id="_11" Source="..\bin\release\dataflashlog.xml" />
+<File Id="_12" Source="..\bin\release\DirectShowLib-2005.dll" />
+<File Id="_13" Source="..\bin\release\GMap.NET.Core.dll" />
+<File Id="_14" Source="..\bin\release\GMap.NET.WindowsForms.dll" />
+<File Id="_15" Source="..\bin\release\hud.html" />
+<File Id="_16" Source="..\bin\release\ICSharpCode.SharpZipLib.dll" />
+<File Id="_17" Source="..\bin\release\Ionic.Zip.Reduced.dll" />
+<File Id="_18" Source="..\bin\release\IronPython.dll" />
+<File Id="_19" Source="..\bin\release\IronPython.Modules.dll" />
+<File Id="_20" Source="..\bin\release\JSBSim.exe" />
+<File Id="_21" Source="..\bin\release\KMLib.dll" />
+<File Id="_22" Source="..\bin\release\log4net.dll" />
+<File Id="_23" Source="..\bin\release\mavcmd.xml" />
+<File Id="_24" Source="..\bin\release\MAVLink.xml" />
+<File Id="_25" Source="..\bin\release\MetaDataExtractor.dll" />
+<File Id="_26" Source="..\bin\release\Microsoft.Dynamic.dll" />
+<File Id="_27" Source="..\bin\release\Microsoft.Scripting.Core.dll" />
+<File Id="_28" Source="..\bin\release\Microsoft.Scripting.Debugging.dll" />
+<File Id="_29" Source="..\bin\release\Microsoft.Scripting.dll" />
+<File Id="_30" Source="..\bin\release\Microsoft.Scripting.ExtensionAttribute.dll" />
+<File Id="_31" Source="..\bin\release\netDxf.dll" />
+<File Id="_32" Source="..\bin\release\OpenTK.dll" />
+<File Id="_33" Source="..\bin\release\OpenTK.GLControl.dll" />
+<File Id="_34" Source="..\bin\release\quadhil.xml" />
+<File Id="_35" Source="..\bin\release\SharpKml.dll" />
+<File Id="_36" Source="..\bin\release\System.Data.SQLite.dll" />
+<File Id="_37" Source="..\bin\release\System.Speech.dll" />
+<File Id="_38" Source="..\bin\release\Updater.exe" />
+<File Id="_39" Source="..\bin\release\Updater.exe.config" />
+<File Id="_40" Source="..\bin\release\Updater.pdb" />
+<File Id="_41" Source="..\bin\release\ZedGraph.dll" />
 </Component>
-<Directory Id="Driver" Name="Driver">
-<Component Id="_comp40" Guid="2fdf06ca-6e78-41c1-a558-0b0970ef8cdd">
-<File Id="_41" Source="..\bin\release\Driver\Arduino MEGA 2560.inf" />
+<Directory Id="Driver41" Name="Driver">
+<Component Id="_comp42" Guid="3975a290-2f19-4aa9-97b9-37d45672d063">
+<File Id="_43" Source="..\bin\release\Driver\Arduino MEGA 2560.inf" />
 </Component>
 </Directory>
-<Directory Id="es_ES" Name="es-ES">
-<Component Id="_comp41" Guid="7c2d0e6e-be62-414e-87d3-15c3408a6689">
-<File Id="_42" Source="..\bin\release\es-ES\ArdupilotMegaPlanner.resources.dll" />
+<Directory Id="es_ES43" Name="es-ES">
+<Component Id="_comp44" Guid="02407d9c-9e9f-4e5d-a48d-d7d9fc0846a7">
+<File Id="_45" Source="..\bin\release\es-ES\ArdupilotMegaPlanner.resources.dll" />
 </Component>
 </Directory>
-<Directory Id="fr" Name="fr">
-<Component Id="_comp42" Guid="a96af704-563a-4606-902c-f5ada5f0e2e4">
-<File Id="_43" Source="..\bin\release\fr\ArdupilotMegaPlanner.resources.dll" />
+<Directory Id="fr45" Name="fr">
+<Component Id="_comp46" Guid="74e19d89-486a-487d-9053-be1c34b8e7d9">
+<File Id="_47" Source="..\bin\release\fr\ArdupilotMegaPlanner.resources.dll" />
 </Component>
 </Directory>
-<Directory Id="it_IT" Name="it-IT">
-<Component Id="_comp43" Guid="f25da795-c709-42ed-b395-68b30354db54">
-<File Id="_44" Source="..\bin\release\it-IT\ArdupilotMegaPlanner.resources.dll" />
+<Directory Id="it_IT47" Name="it-IT">
+<Component Id="_comp48" Guid="0003cdb4-191e-4771-a098-4e35e5eea039">
+<File Id="_49" Source="..\bin\release\it-IT\ArdupilotMegaPlanner.resources.dll" />
 </Component>
 </Directory>
-<Directory Id="m3u" Name="m3u">
-<Component Id="_comp44" Guid="201b2c11-e385-4176-ba7f-cff62934e41f">
-<File Id="_45" Source="..\bin\release\m3u\both.m3u" />
-<File Id="_46" Source="..\bin\release\m3u\hud.m3u" />
-<File Id="_47" Source="..\bin\release\m3u\map.m3u" />
-<File Id="_48" Source="..\bin\release\m3u\networklink.kml" />
+<Directory Id="m3u49" Name="m3u">
+<Component Id="_comp50" Guid="fc43d9e6-6966-4682-884f-655b48d2cb21">
+<File Id="_51" Source="..\bin\release\m3u\both.m3u" />
+<File Id="_52" Source="..\bin\release\m3u\hud.m3u" />
+<File Id="_53" Source="..\bin\release\m3u\map.m3u" />
+<File Id="_54" Source="..\bin\release\m3u\networklink.kml" />
 </Component>
 </Directory>
-<Directory Id="pl" Name="pl">
-<Component Id="_comp48" Guid="91e14b63-64b9-43d5-9f3c-dc3eccac202f">
-<File Id="_49" Source="..\bin\release\pl\ArdupilotMegaPlanner.resources.dll" />
+<Directory Id="pl54" Name="pl">
+<Component Id="_comp55" Guid="f8b404d3-6d8b-459b-81ae-5538993f5f93">
+<File Id="_56" Source="..\bin\release\pl\ArdupilotMegaPlanner.resources.dll" />
 </Component>
 </Directory>
-<Directory Id="Resources" Name="Resources">
-<Component Id="_comp49" Guid="16f71db5-f216-4ce9-8379-1c5d8e9cfc1a">
-<File Id="_50" Source="..\bin\release\Resources\MAVCmd.txt" />
-<File Id="_51" Source="..\bin\release\Resources\Welcome_to_Michael_Oborne.rtf" />
+<Directory Id="Resources56" Name="Resources">
+<Component Id="_comp57" Guid="455d632e-d45a-4d33-8686-48c2e734c6a2">
+<File Id="_58" Source="..\bin\release\Resources\MAVCmd.txt" />
+<File Id="_59" Source="..\bin\release\Resources\Welcome_to_Michael_Oborne.rtf" />
 </Component>
 </Directory>
-<Directory Id="ru_RU" Name="ru-RU">
-<Component Id="_comp51" Guid="41050916-508f-4f5e-b547-5374fe279b0f">
-<File Id="_52" Source="..\bin\release\ru-RU\ArdupilotMegaPlanner.resources.dll" />
+<Directory Id="ru_RU59" Name="ru-RU">
+<Component Id="_comp60" Guid="d8f500bc-350b-4b04-9926-ba6308e4dbb4">
+<File Id="_61" Source="..\bin\release\ru-RU\ArdupilotMegaPlanner.resources.dll" />
 </Component>
 </Directory>
-<Directory Id="zh_Hans" Name="zh-Hans">
-<Component Id="_comp52" Guid="bbcbc38d-f1d3-4686-895d-9db643ac93aa">
-<File Id="_53" Source="..\bin\release\zh-Hans\ArdupilotMegaPlanner.resources.dll" />
+<Directory Id="zh_Hans61" Name="zh-Hans">
+<Component Id="_comp62" Guid="698d99e5-250c-435f-b596-dd99d9c68e64">
+<File Id="_63" Source="..\bin\release\zh-Hans\ArdupilotMegaPlanner.resources.dll" />
 </Component>
 </Directory>
-<Directory Id="zh_TW" Name="zh-TW">
-<Component Id="_comp53" Guid="1abb66a4-ec2e-46a5-8ec7-df5ead6615ac">
-<File Id="_54" Source="..\bin\release\zh-TW\ArdupilotMegaPlanner.resources.dll" />
+<Directory Id="zh_TW63" Name="zh-TW">
+<Component Id="_comp64" Guid="d051d520-b580-4990-b1ab-12107aa8571f">
+<File Id="_65" Source="..\bin\release\zh-TW\ArdupilotMegaPlanner.resources.dll" />
 </Component>
 </Directory>
 
@@ -157,17 +157,17 @@
         <Feature Id="MyFeature" Title="My 1st Feature" Level="1">
             <ComponentRef Id="InstallDirPermissions" />
 
-<ComponentRef Id="_comp0" />
-<ComponentRef Id="_comp40" />
-<ComponentRef Id="_comp41" />
+<ComponentRef Id="_comp1" />
 <ComponentRef Id="_comp42" />
-<ComponentRef Id="_comp43" />
 <ComponentRef Id="_comp44" />
+<ComponentRef Id="_comp46" />
 <ComponentRef Id="_comp48" />
-<ComponentRef Id="_comp49" />
-<ComponentRef Id="_comp51" />
-<ComponentRef Id="_comp52" />
-<ComponentRef Id="_comp53" />
+<ComponentRef Id="_comp50" />
+<ComponentRef Id="_comp55" />
+<ComponentRef Id="_comp57" />
+<ComponentRef Id="_comp60" />
+<ComponentRef Id="_comp62" />
+<ComponentRef Id="_comp64" />
 
             
             <ComponentRef Id="ApplicationShortcut" />
@@ -188,7 +188,7 @@
     <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch APM Planner" />
 
     <!-- Step 3: Include the custom action -->
-    <Property Id="WixShellExecTarget" Value="[#_4]" />
+    <Property Id="WixShellExecTarget" Value="[#_5]" />
     <CustomAction Id="LaunchApplication" 
         BinaryKey="WixCA" 
         DllEntry="WixShellExec"
diff --git a/Tools/ArdupilotMegaPlanner/Msi/wix.pdb b/Tools/ArdupilotMegaPlanner/Msi/wix.pdb
index 6dc9934ea7b74ecfbed52623defbbc9c6536421b..8fb53eec78ed739b330092c5331470c195ec9319 100644
GIT binary patch
literal 19968
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

literal 13824
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
C%Kje!

diff --git a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs
index c21a96831..d2c9210b8 100644
--- a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs
+++ b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs
@@ -34,5 +34,5 @@ using System.Resources;
 // by using the '*' as shown below:
 // [assembly: AssemblyVersion("1.0.*")]
 [assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.1.60")]
+[assembly: AssemblyFileVersion("1.1.61")]
 [assembly: NeutralResourcesLanguageAttribute("")]
diff --git a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.Designer.cs b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.Designer.cs
index 62c057b62..cfd1fb933 100644
--- a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.Designer.cs
+++ b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.Designer.cs
@@ -55,12 +55,12 @@
             this.RS3 = new System.Windows.Forms.ComboBox();
             this.RS2 = new System.Windows.Forms.ComboBox();
             this.RS1 = new System.Windows.Forms.ComboBox();
+            this.RSSI = new System.Windows.Forms.TextBox();
             this.RS0 = new System.Windows.Forms.TextBox();
             this.label9 = new System.Windows.Forms.Label();
             this.label10 = new System.Windows.Forms.Label();
             this.RTI = new System.Windows.Forms.TextBox();
             this.ATI = new System.Windows.Forms.TextBox();
-            this.RSSI = new System.Windows.Forms.TextBox();
             this.label11 = new System.Windows.Forms.Label();
             this.label12 = new System.Windows.Forms.Label();
             this.BUT_savesettings = new ArdupilotMega.MyButton();
@@ -139,13 +139,16 @@
             // 
             this.S2.FormattingEnabled = true;
             this.S2.Items.AddRange(new object[] {
+            "250",
             "192",
-            "160",
             "128",
             "96",
             "64",
             "32",
-            "16"});
+            "16",
+            "8",
+            "4",
+            "2"});
             this.S2.Location = new System.Drawing.Point(87, 168);
             this.S2.Name = "S2";
             this.S2.Size = new System.Drawing.Size(80, 21);
@@ -283,9 +286,9 @@
             this.label8.AutoSize = true;
             this.label8.Location = new System.Drawing.Point(15, 311);
             this.label8.Name = "label8";
-            this.label8.Size = new System.Drawing.Size(68, 13);
+            this.label8.Size = new System.Drawing.Size(61, 13);
             this.label8.TabIndex = 20;
-            this.label8.Text = "Op Pre Send";
+            this.label8.Text = "Op Resend";
             // 
             // S7
             // 
@@ -395,13 +398,16 @@
             // 
             this.RS2.FormattingEnabled = true;
             this.RS2.Items.AddRange(new object[] {
+            "250",
             "192",
-            "160",
             "128",
             "96",
             "64",
             "32",
-            "16"});
+            "16",
+            "8",
+            "4",
+            "2"});
             this.RS2.Location = new System.Drawing.Point(201, 168);
             this.RS2.Name = "RS2";
             this.RS2.Size = new System.Drawing.Size(80, 21);
@@ -429,6 +435,16 @@
             this.RS1.TabIndex = 22;
             this.toolTip1.SetToolTip(this.RS1, "Serial baud rate in rounded kbps. So 57 means 57600. \r\n");
             // 
+            // RSSI
+            // 
+            this.RSSI.Location = new System.Drawing.Point(87, 51);
+            this.RSSI.Multiline = true;
+            this.RSSI.Name = "RSSI";
+            this.RSSI.ReadOnly = true;
+            this.RSSI.Size = new System.Drawing.Size(194, 58);
+            this.RSSI.TabIndex = 34;
+            this.toolTip1.SetToolTip(this.RSSI, resources.GetString("RSSI.ToolTip"));
+            // 
             // RS0
             // 
             this.RS0.Location = new System.Drawing.Point(201, 115);
@@ -471,16 +487,6 @@
             this.ATI.Size = new System.Drawing.Size(80, 20);
             this.ATI.TabIndex = 32;
             // 
-            // RSSI
-            // 
-            this.RSSI.Location = new System.Drawing.Point(87, 51);
-            this.RSSI.Multiline = true;
-            this.RSSI.Name = "RSSI";
-            this.RSSI.ReadOnly = true;
-            this.RSSI.Size = new System.Drawing.Size(194, 58);
-            this.RSSI.TabIndex = 34;
-            this.toolTip1.SetToolTip(this.RSSI, resources.GetString("RSSI.ToolTip"));
-            // 
             // label11
             // 
             this.label11.AutoSize = true;
@@ -501,6 +507,7 @@
             // 
             // BUT_savesettings
             // 
+            this.BUT_savesettings.Enabled = false;
             this.BUT_savesettings.Location = new System.Drawing.Point(99, 330);
             this.BUT_savesettings.Name = "BUT_savesettings";
             this.BUT_savesettings.Size = new System.Drawing.Size(75, 39);
diff --git a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs
index 19d2f1f20..40901cf4c 100644
--- a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs
+++ b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs
@@ -29,9 +29,10 @@ namespace ArdupilotMega
 
         bool getFirmware()
         {
-            //https://raw.github.com/tridge/SiK/master/Firmware/dst/radio.hm_trp.hex
+            // was https://raw.github.com/tridge/SiK/master/Firmware/dst/radio.hm_trp.hex
+            // now http://www.samba.org/tridge/UAV/3DR/radio.hm_trp.hex
 
-            return Common.getFilefromNet("https://raw.github.com/tridge/SiK/master/Firmware/dst/radio.hm_trp.hex", firmwarefile);
+            return Common.getFilefromNet("http://www.samba.org/tridge/UAV/3DR/radio.hm_trp.hex", firmwarefile);
         }
 
         void Sleep(int mstimeout)
@@ -449,6 +450,9 @@ namespace ArdupilotMega
                         {
                             Control[] controls = this.Controls.Find("R" + values[0].Trim(), false);
 
+                            if (controls.Length == 0)
+                                continue;
+
                             if (controls[0].GetType() == typeof(CheckBox))
                             {
                                 ((CheckBox)controls[0]).Checked = values[2].Trim() == "1";
@@ -485,6 +489,8 @@ namespace ArdupilotMega
             }
 
             comPort.Close();
+
+            BUT_savesettings.Enabled = true;
         }
 
         string Serial_ReadLine(ArdupilotMega.ICommsSerial comPort)
diff --git a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.resx b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.resx
index 5194d642e..6d793168a 100644
--- a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.resx
+++ b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.resx
@@ -120,9 +120,6 @@
   <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
-  <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
   <data name="S3.ToolTip" xml:space="preserve">
     <value>NETID is a 16 bit 'network ID'. This is used to seed the frequency hopping sequence and to identify packets as coming from the right radio. Make sure you use a different NETID from anyone else running the same sort of radio in the area. </value>
   </data>
diff --git a/Tools/ArdupilotMegaPlanner/Script.cs b/Tools/ArdupilotMegaPlanner/Script.cs
index 60d5ea4fa..9face19c3 100644
--- a/Tools/ArdupilotMegaPlanner/Script.cs
+++ b/Tools/ArdupilotMegaPlanner/Script.cs
@@ -14,7 +14,7 @@ namespace ArdupilotMega
         static Microsoft.Scripting.Hosting.ScriptScope scope;
 
         // keeps history
-        MAVLink.__mavlink_rc_channels_override_t rc = new MAVLink.__mavlink_rc_channels_override_t();
+        MAVLink.mavlink_rc_channels_override_t rc = new MAVLink.mavlink_rc_channels_override_t();
 
         public Script()
         {
diff --git a/Tools/ArdupilotMegaPlanner/Setup/Setup.resx b/Tools/ArdupilotMegaPlanner/Setup/Setup.resx
index 0524d1cf2..078647e4e 100644
--- a/Tools/ArdupilotMegaPlanner/Setup/Setup.resx
+++ b/Tools/ArdupilotMegaPlanner/Setup/Setup.resx
@@ -117,1656 +117,15 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <data name="&gt;&gt;groupBoxElevons.Name" xml:space="preserve">
-    <value>groupBoxElevons</value>
-  </data>
-  <data name="&gt;&gt;groupBoxElevons.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;groupBoxElevons.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;groupBoxElevons.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch3.Name" xml:space="preserve">
-    <value>CHK_revch3</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch3.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch3.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch4.Name" xml:space="preserve">
-    <value>CHK_revch4</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch4.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch4.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch4.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch2.Name" xml:space="preserve">
-    <value>CHK_revch2</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch2.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch2.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch2.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch1.Name" xml:space="preserve">
-    <value>CHK_revch1</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch1.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;CHK_revch1.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <data name="&gt;&gt;BUT_Calibrateradio.Name" xml:space="preserve">
-    <value>BUT_Calibrateradio</value>
-  </data>
-  <data name="&gt;&gt;BUT_Calibrateradio.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BUT_Calibrateradio.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;BUT_Calibrateradio.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="&gt;&gt;BAR8.Name" xml:space="preserve">
-    <value>BAR8</value>
-  </data>
-  <data name="&gt;&gt;BAR8.Type" xml:space="preserve">
-    <value>ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BAR8.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;BAR8.ZOrder" xml:space="preserve">
-    <value>6</value>
-  </data>
-  <data name="&gt;&gt;BAR7.Name" xml:space="preserve">
-    <value>BAR7</value>
-  </data>
-  <data name="&gt;&gt;BAR7.Type" xml:space="preserve">
-    <value>ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BAR7.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;BAR7.ZOrder" xml:space="preserve">
-    <value>7</value>
-  </data>
-  <data name="&gt;&gt;BAR6.Name" xml:space="preserve">
-    <value>BAR6</value>
-  </data>
-  <data name="&gt;&gt;BAR6.Type" xml:space="preserve">
-    <value>ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BAR6.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;BAR6.ZOrder" xml:space="preserve">
-    <value>8</value>
-  </data>
-  <data name="&gt;&gt;BAR5.Name" xml:space="preserve">
-    <value>BAR5</value>
-  </data>
-  <data name="&gt;&gt;BAR5.Type" xml:space="preserve">
-    <value>ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BAR5.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;BAR5.ZOrder" xml:space="preserve">
-    <value>9</value>
-  </data>
-  <data name="&gt;&gt;BARpitch.Name" xml:space="preserve">
-    <value>BARpitch</value>
-  </data>
-  <data name="&gt;&gt;BARpitch.Type" xml:space="preserve">
-    <value>ArdupilotMega.VerticalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BARpitch.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;BARpitch.ZOrder" xml:space="preserve">
-    <value>10</value>
-  </data>
-  <data name="&gt;&gt;BARthrottle.Name" xml:space="preserve">
-    <value>BARthrottle</value>
-  </data>
-  <data name="&gt;&gt;BARthrottle.Type" xml:space="preserve">
-    <value>ArdupilotMega.VerticalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BARthrottle.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;BARthrottle.ZOrder" xml:space="preserve">
-    <value>11</value>
-  </data>
-  <data name="&gt;&gt;BARyaw.Name" xml:space="preserve">
-    <value>BARyaw</value>
-  </data>
-  <data name="&gt;&gt;BARyaw.Type" xml:space="preserve">
-    <value>ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BARyaw.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;BARyaw.ZOrder" xml:space="preserve">
-    <value>12</value>
-  </data>
-  <data name="&gt;&gt;BARroll.Name" xml:space="preserve">
-    <value>BARroll</value>
-  </data>
-  <data name="&gt;&gt;BARroll.Type" xml:space="preserve">
-    <value>ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BARroll.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;BARroll.ZOrder" xml:space="preserve">
-    <value>13</value>
-  </data>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="tabRadioIn.Location" type="System.Drawing.Point, System.Drawing">
-    <value>4, 22</value>
-  </data>
-  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="tabRadioIn.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 3, 3, 3</value>
-  </data>
-  <data name="tabRadioIn.Size" type="System.Drawing.Size, System.Drawing">
-    <value>666, 393</value>
-  </data>
-  <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="tabRadioIn.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
-  </data>
-  <data name="tabRadioIn.Text" xml:space="preserve">
-    <value>Radio Input</value>
-  </data>
-  <data name="&gt;&gt;tabRadioIn.Name" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;tabRadioIn.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;tabRadioIn.Parent" xml:space="preserve">
-    <value>Tabs</value>
-  </data>
-  <data name="&gt;&gt;tabRadioIn.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;CB_simple6.Name" xml:space="preserve">
-    <value>CB_simple6</value>
-  </data>
-  <data name="&gt;&gt;CB_simple6.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CB_simple6.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CB_simple6.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;CB_simple5.Name" xml:space="preserve">
-    <value>CB_simple5</value>
-  </data>
-  <data name="&gt;&gt;CB_simple5.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CB_simple5.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CB_simple5.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;CB_simple4.Name" xml:space="preserve">
-    <value>CB_simple4</value>
-  </data>
-  <data name="&gt;&gt;CB_simple4.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CB_simple4.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CB_simple4.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;CB_simple3.Name" xml:space="preserve">
-    <value>CB_simple3</value>
-  </data>
-  <data name="&gt;&gt;CB_simple3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CB_simple3.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CB_simple3.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="&gt;&gt;CB_simple2.Name" xml:space="preserve">
-    <value>CB_simple2</value>
-  </data>
-  <data name="&gt;&gt;CB_simple2.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CB_simple2.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CB_simple2.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <data name="&gt;&gt;CB_simple1.Name" xml:space="preserve">
-    <value>CB_simple1</value>
-  </data>
-  <data name="&gt;&gt;CB_simple1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CB_simple1.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CB_simple1.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="&gt;&gt;label14.Name" xml:space="preserve">
-    <value>label14</value>
-  </data>
-  <data name="&gt;&gt;label14.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label14.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label14.ZOrder" xml:space="preserve">
-    <value>6</value>
-  </data>
-  <data name="&gt;&gt;LBL_flightmodepwm.Name" xml:space="preserve">
-    <value>LBL_flightmodepwm</value>
-  </data>
-  <data name="&gt;&gt;LBL_flightmodepwm.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;LBL_flightmodepwm.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;LBL_flightmodepwm.ZOrder" xml:space="preserve">
-    <value>7</value>
-  </data>
-  <data name="&gt;&gt;label13.Name" xml:space="preserve">
-    <value>label13</value>
-  </data>
-  <data name="&gt;&gt;label13.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label13.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label13.ZOrder" xml:space="preserve">
-    <value>8</value>
-  </data>
-  <data name="&gt;&gt;lbl_currentmode.Name" xml:space="preserve">
-    <value>lbl_currentmode</value>
-  </data>
-  <data name="&gt;&gt;lbl_currentmode.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;lbl_currentmode.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;lbl_currentmode.ZOrder" xml:space="preserve">
-    <value>9</value>
-  </data>
-  <data name="&gt;&gt;label12.Name" xml:space="preserve">
-    <value>label12</value>
-  </data>
-  <data name="&gt;&gt;label12.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label12.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label12.ZOrder" xml:space="preserve">
-    <value>10</value>
-  </data>
-  <data name="&gt;&gt;label11.Name" xml:space="preserve">
-    <value>label11</value>
-  </data>
-  <data name="&gt;&gt;label11.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label11.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label11.ZOrder" xml:space="preserve">
-    <value>11</value>
-  </data>
-  <data name="&gt;&gt;label10.Name" xml:space="preserve">
-    <value>label10</value>
-  </data>
-  <data name="&gt;&gt;label10.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label10.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label10.ZOrder" xml:space="preserve">
-    <value>12</value>
-  </data>
-  <data name="&gt;&gt;label9.Name" xml:space="preserve">
-    <value>label9</value>
-  </data>
-  <data name="&gt;&gt;label9.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label9.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label9.ZOrder" xml:space="preserve">
-    <value>13</value>
-  </data>
-  <data name="&gt;&gt;label8.Name" xml:space="preserve">
-    <value>label8</value>
-  </data>
-  <data name="&gt;&gt;label8.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label8.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label8.ZOrder" xml:space="preserve">
-    <value>14</value>
-  </data>
-  <data name="&gt;&gt;label7.Name" xml:space="preserve">
-    <value>label7</value>
-  </data>
-  <data name="&gt;&gt;label7.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label7.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label7.ZOrder" xml:space="preserve">
-    <value>15</value>
-  </data>
-  <data name="&gt;&gt;label6.Name" xml:space="preserve">
-    <value>label6</value>
-  </data>
-  <data name="&gt;&gt;label6.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label6.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label6.ZOrder" xml:space="preserve">
-    <value>16</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode6.Name" xml:space="preserve">
-    <value>CMB_fmode6</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode6.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode6.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode6.ZOrder" xml:space="preserve">
-    <value>17</value>
-  </data>
-  <data name="&gt;&gt;label5.Name" xml:space="preserve">
-    <value>label5</value>
-  </data>
-  <data name="&gt;&gt;label5.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label5.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label5.ZOrder" xml:space="preserve">
-    <value>18</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode5.Name" xml:space="preserve">
-    <value>CMB_fmode5</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode5.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode5.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode5.ZOrder" xml:space="preserve">
-    <value>19</value>
-  </data>
-  <data name="&gt;&gt;label4.Name" xml:space="preserve">
-    <value>label4</value>
-  </data>
-  <data name="&gt;&gt;label4.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label4.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
-    <value>20</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode4.Name" xml:space="preserve">
-    <value>CMB_fmode4</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode4.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode4.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode4.ZOrder" xml:space="preserve">
-    <value>21</value>
-  </data>
-  <data name="&gt;&gt;label3.Name" xml:space="preserve">
-    <value>label3</value>
-  </data>
-  <data name="&gt;&gt;label3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label3.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
-    <value>22</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode3.Name" xml:space="preserve">
-    <value>CMB_fmode3</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode3.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode3.ZOrder" xml:space="preserve">
-    <value>23</value>
-  </data>
-  <data name="&gt;&gt;label2.Name" xml:space="preserve">
-    <value>label2</value>
-  </data>
-  <data name="&gt;&gt;label2.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label2.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
-    <value>24</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode2.Name" xml:space="preserve">
-    <value>CMB_fmode2</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode2.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode2.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode2.ZOrder" xml:space="preserve">
-    <value>25</value>
-  </data>
-  <data name="&gt;&gt;label1.Name" xml:space="preserve">
-    <value>label1</value>
-  </data>
-  <data name="&gt;&gt;label1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label1.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
-    <value>26</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode1.Name" xml:space="preserve">
-    <value>CMB_fmode1</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode1.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;CMB_fmode1.ZOrder" xml:space="preserve">
-    <value>27</value>
-  </data>
-  <data name="&gt;&gt;BUT_SaveModes.Name" xml:space="preserve">
-    <value>BUT_SaveModes</value>
-  </data>
-  <data name="&gt;&gt;BUT_SaveModes.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BUT_SaveModes.Parent" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;BUT_SaveModes.ZOrder" xml:space="preserve">
-    <value>28</value>
-  </data>
-  <data name="tabModes.Location" type="System.Drawing.Point, System.Drawing">
-    <value>4, 22</value>
-  </data>
-  <data name="tabModes.Size" type="System.Drawing.Size, System.Drawing">
-    <value>666, 393</value>
-  </data>
-  <data name="tabModes.TabIndex" type="System.Int32, mscorlib">
-    <value>3</value>
-  </data>
-  <data name="tabModes.Text" xml:space="preserve">
-    <value>Modes</value>
-  </data>
-  <data name="&gt;&gt;tabModes.Name" xml:space="preserve">
-    <value>tabModes</value>
-  </data>
-  <data name="&gt;&gt;tabModes.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;tabModes.Parent" xml:space="preserve">
-    <value>Tabs</value>
-  </data>
-  <data name="&gt;&gt;tabModes.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;BUT_MagCalibration.Name" xml:space="preserve">
-    <value>BUT_MagCalibration</value>
-  </data>
-  <data name="&gt;&gt;BUT_MagCalibration.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BUT_MagCalibration.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;BUT_MagCalibration.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;label27.Name" xml:space="preserve">
-    <value>label27</value>
-  </data>
-  <data name="&gt;&gt;label27.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label27.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;label27.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;CMB_sonartype.Name" xml:space="preserve">
-    <value>CMB_sonartype</value>
-  </data>
-  <data name="&gt;&gt;CMB_sonartype.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CMB_sonartype.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;CMB_sonartype.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;CHK_enableoptflow.Name" xml:space="preserve">
-    <value>CHK_enableoptflow</value>
-  </data>
-  <data name="&gt;&gt;CHK_enableoptflow.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_enableoptflow.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;CHK_enableoptflow.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="&gt;&gt;pictureBox2.Name" xml:space="preserve">
-    <value>pictureBox2</value>
-  </data>
-  <data name="&gt;&gt;pictureBox2.Type" xml:space="preserve">
-    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;pictureBox2.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;pictureBox2.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <data name="&gt;&gt;linkLabelmagdec.Name" xml:space="preserve">
-    <value>linkLabelmagdec</value>
-  </data>
-  <data name="&gt;&gt;linkLabelmagdec.Type" xml:space="preserve">
-    <value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;linkLabelmagdec.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;linkLabelmagdec.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="&gt;&gt;label100.Name" xml:space="preserve">
-    <value>label100</value>
-  </data>
-  <data name="&gt;&gt;label100.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label100.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;label100.ZOrder" xml:space="preserve">
-    <value>6</value>
-  </data>
-  <data name="&gt;&gt;TXT_declination.Name" xml:space="preserve">
-    <value>TXT_declination</value>
-  </data>
-  <data name="&gt;&gt;TXT_declination.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;TXT_declination.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;TXT_declination.ZOrder" xml:space="preserve">
-    <value>7</value>
-  </data>
-  <data name="&gt;&gt;CHK_enableairspeed.Name" xml:space="preserve">
-    <value>CHK_enableairspeed</value>
-  </data>
-  <data name="&gt;&gt;CHK_enableairspeed.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_enableairspeed.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;CHK_enableairspeed.ZOrder" xml:space="preserve">
-    <value>8</value>
-  </data>
-  <data name="&gt;&gt;CHK_enablesonar.Name" xml:space="preserve">
-    <value>CHK_enablesonar</value>
-  </data>
-  <data name="&gt;&gt;CHK_enablesonar.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_enablesonar.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;CHK_enablesonar.ZOrder" xml:space="preserve">
-    <value>9</value>
-  </data>
-  <data name="&gt;&gt;CHK_enablecompass.Name" xml:space="preserve">
-    <value>CHK_enablecompass</value>
-  </data>
-  <data name="&gt;&gt;CHK_enablecompass.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_enablecompass.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;CHK_enablecompass.ZOrder" xml:space="preserve">
-    <value>10</value>
-  </data>
-  <data name="&gt;&gt;pictureBox4.Name" xml:space="preserve">
-    <value>pictureBox4</value>
-  </data>
-  <data name="&gt;&gt;pictureBox4.Type" xml:space="preserve">
-    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;pictureBox4.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;pictureBox4.ZOrder" xml:space="preserve">
-    <value>11</value>
-  </data>
-  <data name="&gt;&gt;pictureBox3.Name" xml:space="preserve">
-    <value>pictureBox3</value>
-  </data>
-  <data name="&gt;&gt;pictureBox3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;pictureBox3.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;pictureBox3.ZOrder" xml:space="preserve">
-    <value>12</value>
-  </data>
-  <data name="&gt;&gt;pictureBox1.Name" xml:space="preserve">
-    <value>pictureBox1</value>
-  </data>
-  <data name="&gt;&gt;pictureBox1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
-    <value>13</value>
-  </data>
-  <data name="tabHardware.Location" type="System.Drawing.Point, System.Drawing">
-    <value>4, 22</value>
-  </data>
-  <data name="tabHardware.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 3, 3, 3</value>
-  </data>
-  <data name="tabHardware.Size" type="System.Drawing.Size, System.Drawing">
-    <value>666, 393</value>
-  </data>
-  <data name="tabHardware.TabIndex" type="System.Int32, mscorlib">
-    <value>1</value>
-  </data>
-  <data name="tabHardware.Text" xml:space="preserve">
-    <value>Hardware</value>
-  </data>
-  <data name="&gt;&gt;tabHardware.Name" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;tabHardware.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;tabHardware.Parent" xml:space="preserve">
-    <value>Tabs</value>
-  </data>
-  <data name="&gt;&gt;tabHardware.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;groupBox4.Name" xml:space="preserve">
-    <value>groupBox4</value>
-  </data>
-  <data name="&gt;&gt;groupBox4.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;groupBox4.Parent" xml:space="preserve">
-    <value>tabBattery</value>
-  </data>
-  <data name="&gt;&gt;groupBox4.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;label47.Name" xml:space="preserve">
-    <value>label47</value>
-  </data>
-  <data name="&gt;&gt;label47.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label47.Parent" xml:space="preserve">
-    <value>tabBattery</value>
-  </data>
-  <data name="&gt;&gt;label47.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;CMB_batmonsensortype.Name" xml:space="preserve">
-    <value>CMB_batmonsensortype</value>
-  </data>
-  <data name="&gt;&gt;CMB_batmonsensortype.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CMB_batmonsensortype.Parent" xml:space="preserve">
-    <value>tabBattery</value>
-  </data>
-  <data name="&gt;&gt;CMB_batmonsensortype.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;textBox3.Name" xml:space="preserve">
-    <value>textBox3</value>
-  </data>
-  <data name="&gt;&gt;textBox3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;textBox3.Parent" xml:space="preserve">
-    <value>tabBattery</value>
-  </data>
-  <data name="&gt;&gt;textBox3.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="&gt;&gt;label29.Name" xml:space="preserve">
-    <value>label29</value>
-  </data>
-  <data name="&gt;&gt;label29.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label29.Parent" xml:space="preserve">
-    <value>tabBattery</value>
-  </data>
-  <data name="&gt;&gt;label29.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <data name="&gt;&gt;label30.Name" xml:space="preserve">
-    <value>label30</value>
-  </data>
-  <data name="&gt;&gt;label30.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label30.Parent" xml:space="preserve">
-    <value>tabBattery</value>
-  </data>
-  <data name="&gt;&gt;label30.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="&gt;&gt;TXT_battcapacity.Name" xml:space="preserve">
-    <value>TXT_battcapacity</value>
-  </data>
-  <data name="&gt;&gt;TXT_battcapacity.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;TXT_battcapacity.Parent" xml:space="preserve">
-    <value>tabBattery</value>
-  </data>
-  <data name="&gt;&gt;TXT_battcapacity.ZOrder" xml:space="preserve">
-    <value>6</value>
-  </data>
-  <data name="&gt;&gt;CMB_batmontype.Name" xml:space="preserve">
-    <value>CMB_batmontype</value>
-  </data>
-  <data name="&gt;&gt;CMB_batmontype.Type" xml:space="preserve">
-    <value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CMB_batmontype.Parent" xml:space="preserve">
-    <value>tabBattery</value>
-  </data>
-  <data name="&gt;&gt;CMB_batmontype.ZOrder" xml:space="preserve">
-    <value>7</value>
-  </data>
-  <data name="&gt;&gt;pictureBox5.Name" xml:space="preserve">
-    <value>pictureBox5</value>
-  </data>
-  <data name="&gt;&gt;pictureBox5.Type" xml:space="preserve">
-    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;pictureBox5.Parent" xml:space="preserve">
-    <value>tabBattery</value>
-  </data>
-  <data name="&gt;&gt;pictureBox5.ZOrder" xml:space="preserve">
-    <value>8</value>
-  </data>
-  <data name="tabBattery.Location" type="System.Drawing.Point, System.Drawing">
-    <value>4, 22</value>
-  </data>
-  <data name="tabBattery.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>2, 2, 2, 2</value>
-  </data>
-  <data name="tabBattery.Size" type="System.Drawing.Size, System.Drawing">
-    <value>666, 393</value>
-  </data>
-  <data name="tabBattery.TabIndex" type="System.Int32, mscorlib">
-    <value>6</value>
-  </data>
-  <data name="tabBattery.Text" xml:space="preserve">
-    <value>Battery</value>
-  </data>
-  <data name="&gt;&gt;tabBattery.Name" xml:space="preserve">
-    <value>tabBattery</value>
-  </data>
-  <data name="&gt;&gt;tabBattery.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;tabBattery.Parent" xml:space="preserve">
-    <value>Tabs</value>
-  </data>
-  <data name="&gt;&gt;tabBattery.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="label48.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label48.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="label48.Location" type="System.Drawing.Point, System.Drawing">
-    <value>228, 170</value>
-  </data>
-  <data name="label48.Size" type="System.Drawing.Size, System.Drawing">
-    <value>212, 13</value>
-  </data>
-  <data name="label48.TabIndex" type="System.Int32, mscorlib">
-    <value>11</value>
-  </data>
-  <data name="label48.Text" xml:space="preserve">
-    <value>Level your plane to set default accel offsets</value>
-  </data>
-  <data name="&gt;&gt;label48.Name" xml:space="preserve">
-    <value>label48</value>
-  </data>
-  <data name="&gt;&gt;label48.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label48.Parent" xml:space="preserve">
-    <value>tabArduplane</value>
-  </data>
-  <data name="&gt;&gt;label48.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="BUT_levelplane.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="BUT_levelplane.Location" type="System.Drawing.Point, System.Drawing">
-    <value>285, 199</value>
-  </data>
-  <data name="BUT_levelplane.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 23</value>
-  </data>
-  <data name="BUT_levelplane.TabIndex" type="System.Int32, mscorlib">
-    <value>10</value>
-  </data>
-  <data name="BUT_levelplane.Text" xml:space="preserve">
-    <value>Level</value>
-  </data>
-  <data name="&gt;&gt;BUT_levelplane.Name" xml:space="preserve">
-    <value>BUT_levelplane</value>
-  </data>
-  <data name="&gt;&gt;BUT_levelplane.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BUT_levelplane.Parent" xml:space="preserve">
-    <value>tabArduplane</value>
-  </data>
-  <data name="&gt;&gt;BUT_levelplane.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="tabArduplane.Location" type="System.Drawing.Point, System.Drawing">
-    <value>4, 22</value>
-  </data>
-  <data name="tabArduplane.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
-    <value>3, 3, 3, 3</value>
-  </data>
-  <data name="tabArduplane.Size" type="System.Drawing.Size, System.Drawing">
-    <value>666, 393</value>
-  </data>
-  <data name="tabArduplane.TabIndex" type="System.Int32, mscorlib">
-    <value>7</value>
-  </data>
-  <data name="tabArduplane.Text" xml:space="preserve">
-    <value>ArduPlane</value>
-  </data>
-  <data name="&gt;&gt;tabArduplane.Name" xml:space="preserve">
-    <value>tabArduplane</value>
-  </data>
-  <data name="&gt;&gt;tabArduplane.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;tabArduplane.Parent" xml:space="preserve">
-    <value>Tabs</value>
-  </data>
-  <data name="&gt;&gt;tabArduplane.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <data name="&gt;&gt;label28.Name" xml:space="preserve">
-    <value>label28</value>
-  </data>
-  <data name="&gt;&gt;label28.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label28.Parent" xml:space="preserve">
-    <value>tabArducopter</value>
-  </data>
-  <data name="&gt;&gt;label28.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;label16.Name" xml:space="preserve">
-    <value>label16</value>
-  </data>
-  <data name="&gt;&gt;label16.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label16.Parent" xml:space="preserve">
-    <value>tabArducopter</value>
-  </data>
-  <data name="&gt;&gt;label16.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;label15.Name" xml:space="preserve">
-    <value>label15</value>
-  </data>
-  <data name="&gt;&gt;label15.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label15.Parent" xml:space="preserve">
-    <value>tabArducopter</value>
-  </data>
-  <data name="&gt;&gt;label15.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;pictureBoxQuadX.Name" xml:space="preserve">
-    <value>pictureBoxQuadX</value>
-  </data>
-  <data name="&gt;&gt;pictureBoxQuadX.Type" xml:space="preserve">
-    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;pictureBoxQuadX.Parent" xml:space="preserve">
-    <value>tabArducopter</value>
-  </data>
-  <data name="&gt;&gt;pictureBoxQuadX.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="&gt;&gt;pictureBoxQuad.Name" xml:space="preserve">
-    <value>pictureBoxQuad</value>
-  </data>
-  <data name="&gt;&gt;pictureBoxQuad.Type" xml:space="preserve">
-    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;pictureBoxQuad.Parent" xml:space="preserve">
-    <value>tabArducopter</value>
-  </data>
-  <data name="&gt;&gt;pictureBoxQuad.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <data name="&gt;&gt;BUT_levelac2.Name" xml:space="preserve">
-    <value>BUT_levelac2</value>
-  </data>
-  <data name="&gt;&gt;BUT_levelac2.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BUT_levelac2.Parent" xml:space="preserve">
-    <value>tabArducopter</value>
-  </data>
-  <data name="&gt;&gt;BUT_levelac2.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="tabArducopter.Location" type="System.Drawing.Point, System.Drawing">
-    <value>4, 22</value>
-  </data>
-  <data name="tabArducopter.Size" type="System.Drawing.Size, System.Drawing">
-    <value>666, 393</value>
-  </data>
-  <data name="tabArducopter.TabIndex" type="System.Int32, mscorlib">
-    <value>2</value>
-  </data>
-  <data name="tabArducopter.Text" xml:space="preserve">
-    <value>ArduCopter2</value>
-  </data>
-  <data name="&gt;&gt;tabArducopter.Name" xml:space="preserve">
-    <value>tabArducopter</value>
-  </data>
-  <data name="&gt;&gt;tabArducopter.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;tabArducopter.Parent" xml:space="preserve">
-    <value>Tabs</value>
-  </data>
-  <data name="&gt;&gt;tabArducopter.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="&gt;&gt;groupBox5.Name" xml:space="preserve">
-    <value>groupBox5</value>
-  </data>
-  <data name="&gt;&gt;groupBox5.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;groupBox5.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;groupBox5.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;BUT_HS4save.Name" xml:space="preserve">
-    <value>BUT_HS4save</value>
-  </data>
-  <data name="&gt;&gt;BUT_HS4save.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BUT_HS4save.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;BUT_HS4save.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;BUT_swash_manual.Name" xml:space="preserve">
-    <value>BUT_swash_manual</value>
-  </data>
-  <data name="&gt;&gt;BUT_swash_manual.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BUT_swash_manual.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;BUT_swash_manual.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;groupBox3.Name" xml:space="preserve">
-    <value>groupBox3</value>
-  </data>
-  <data name="&gt;&gt;groupBox3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;groupBox3.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;groupBox3.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="&gt;&gt;label44.Name" xml:space="preserve">
-    <value>label44</value>
-  </data>
-  <data name="&gt;&gt;label44.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label44.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label44.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <data name="&gt;&gt;label43.Name" xml:space="preserve">
-    <value>label43</value>
-  </data>
-  <data name="&gt;&gt;label43.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label43.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label43.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="&gt;&gt;label42.Name" xml:space="preserve">
-    <value>label42</value>
-  </data>
-  <data name="&gt;&gt;label42.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label42.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label42.ZOrder" xml:space="preserve">
-    <value>6</value>
-  </data>
-  <data name="&gt;&gt;groupBox2.Name" xml:space="preserve">
-    <value>groupBox2</value>
-  </data>
-  <data name="&gt;&gt;groupBox2.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;groupBox2.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;groupBox2.ZOrder" xml:space="preserve">
-    <value>7</value>
-  </data>
-  <data name="&gt;&gt;groupBox1.Name" xml:space="preserve">
-    <value>groupBox1</value>
-  </data>
-  <data name="&gt;&gt;groupBox1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;groupBox1.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
-    <value>8</value>
-  </data>
-  <data name="&gt;&gt;HS4_TRIM.Name" xml:space="preserve">
-    <value>HS4_TRIM</value>
-  </data>
-  <data name="&gt;&gt;HS4_TRIM.Type" xml:space="preserve">
-    <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;HS4_TRIM.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;HS4_TRIM.ZOrder" xml:space="preserve">
-    <value>9</value>
-  </data>
-  <data name="&gt;&gt;HS3_TRIM.Name" xml:space="preserve">
-    <value>HS3_TRIM</value>
-  </data>
-  <data name="&gt;&gt;HS3_TRIM.Type" xml:space="preserve">
-    <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;HS3_TRIM.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;HS3_TRIM.ZOrder" xml:space="preserve">
-    <value>10</value>
-  </data>
-  <data name="&gt;&gt;HS2_TRIM.Name" xml:space="preserve">
-    <value>HS2_TRIM</value>
-  </data>
-  <data name="&gt;&gt;HS2_TRIM.Type" xml:space="preserve">
-    <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;HS2_TRIM.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;HS2_TRIM.ZOrder" xml:space="preserve">
-    <value>11</value>
-  </data>
-  <data name="&gt;&gt;HS1_TRIM.Name" xml:space="preserve">
-    <value>HS1_TRIM</value>
-  </data>
-  <data name="&gt;&gt;HS1_TRIM.Type" xml:space="preserve">
-    <value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;HS1_TRIM.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;HS1_TRIM.ZOrder" xml:space="preserve">
-    <value>12</value>
-  </data>
-  <data name="&gt;&gt;label39.Name" xml:space="preserve">
-    <value>label39</value>
-  </data>
-  <data name="&gt;&gt;label39.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label39.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label39.ZOrder" xml:space="preserve">
-    <value>13</value>
-  </data>
-  <data name="&gt;&gt;label38.Name" xml:space="preserve">
-    <value>label38</value>
-  </data>
-  <data name="&gt;&gt;label38.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label38.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label38.ZOrder" xml:space="preserve">
-    <value>14</value>
-  </data>
-  <data name="&gt;&gt;label37.Name" xml:space="preserve">
-    <value>label37</value>
-  </data>
-  <data name="&gt;&gt;label37.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label37.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label37.ZOrder" xml:space="preserve">
-    <value>15</value>
-  </data>
-  <data name="&gt;&gt;label36.Name" xml:space="preserve">
-    <value>label36</value>
-  </data>
-  <data name="&gt;&gt;label36.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label36.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label36.ZOrder" xml:space="preserve">
-    <value>16</value>
-  </data>
-  <data name="&gt;&gt;label26.Name" xml:space="preserve">
-    <value>label26</value>
-  </data>
-  <data name="&gt;&gt;label26.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label26.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label26.ZOrder" xml:space="preserve">
-    <value>17</value>
-  </data>
-  <data name="&gt;&gt;PIT_MAX.Name" xml:space="preserve">
-    <value>PIT_MAX</value>
-  </data>
-  <data name="&gt;&gt;PIT_MAX.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;PIT_MAX.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;PIT_MAX.ZOrder" xml:space="preserve">
-    <value>18</value>
-  </data>
-  <data name="&gt;&gt;label25.Name" xml:space="preserve">
-    <value>label25</value>
-  </data>
-  <data name="&gt;&gt;label25.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label25.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label25.ZOrder" xml:space="preserve">
-    <value>19</value>
-  </data>
-  <data name="&gt;&gt;ROL_MAX.Name" xml:space="preserve">
-    <value>ROL_MAX</value>
-  </data>
-  <data name="&gt;&gt;ROL_MAX.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;ROL_MAX.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;ROL_MAX.ZOrder" xml:space="preserve">
-    <value>20</value>
-  </data>
-  <data name="&gt;&gt;label23.Name" xml:space="preserve">
-    <value>label23</value>
-  </data>
-  <data name="&gt;&gt;label23.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label23.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label23.ZOrder" xml:space="preserve">
-    <value>21</value>
-  </data>
-  <data name="&gt;&gt;label22.Name" xml:space="preserve">
-    <value>label22</value>
-  </data>
-  <data name="&gt;&gt;label22.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label22.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label22.ZOrder" xml:space="preserve">
-    <value>22</value>
-  </data>
-  <data name="&gt;&gt;HS4_REV.Name" xml:space="preserve">
-    <value>HS4_REV</value>
-  </data>
-  <data name="&gt;&gt;HS4_REV.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;HS4_REV.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;HS4_REV.ZOrder" xml:space="preserve">
-    <value>23</value>
-  </data>
-  <data name="&gt;&gt;label20.Name" xml:space="preserve">
-    <value>label20</value>
-  </data>
-  <data name="&gt;&gt;label20.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label20.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label20.ZOrder" xml:space="preserve">
-    <value>24</value>
-  </data>
-  <data name="&gt;&gt;label19.Name" xml:space="preserve">
-    <value>label19</value>
-  </data>
-  <data name="&gt;&gt;label19.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label19.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label19.ZOrder" xml:space="preserve">
-    <value>25</value>
-  </data>
-  <data name="&gt;&gt;label18.Name" xml:space="preserve">
-    <value>label18</value>
-  </data>
-  <data name="&gt;&gt;label18.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label18.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label18.ZOrder" xml:space="preserve">
-    <value>26</value>
-  </data>
-  <data name="&gt;&gt;SV3_POS.Name" xml:space="preserve">
-    <value>SV3_POS</value>
-  </data>
-  <data name="&gt;&gt;SV3_POS.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;SV3_POS.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;SV3_POS.ZOrder" xml:space="preserve">
-    <value>27</value>
-  </data>
-  <data name="&gt;&gt;SV2_POS.Name" xml:space="preserve">
-    <value>SV2_POS</value>
-  </data>
-  <data name="&gt;&gt;SV2_POS.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;SV2_POS.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;SV2_POS.ZOrder" xml:space="preserve">
-    <value>28</value>
-  </data>
-  <data name="&gt;&gt;SV1_POS.Name" xml:space="preserve">
-    <value>SV1_POS</value>
-  </data>
-  <data name="&gt;&gt;SV1_POS.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;SV1_POS.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;SV1_POS.ZOrder" xml:space="preserve">
-    <value>29</value>
-  </data>
-  <data name="&gt;&gt;HS3_REV.Name" xml:space="preserve">
-    <value>HS3_REV</value>
-  </data>
-  <data name="&gt;&gt;HS3_REV.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;HS3_REV.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;HS3_REV.ZOrder" xml:space="preserve">
-    <value>30</value>
-  </data>
-  <data name="&gt;&gt;HS2_REV.Name" xml:space="preserve">
-    <value>HS2_REV</value>
-  </data>
-  <data name="&gt;&gt;HS2_REV.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;HS2_REV.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;HS2_REV.ZOrder" xml:space="preserve">
-    <value>31</value>
-  </data>
-  <data name="&gt;&gt;HS1_REV.Name" xml:space="preserve">
-    <value>HS1_REV</value>
-  </data>
-  <data name="&gt;&gt;HS1_REV.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;HS1_REV.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;HS1_REV.ZOrder" xml:space="preserve">
-    <value>32</value>
-  </data>
-  <data name="&gt;&gt;label17.Name" xml:space="preserve">
-    <value>label17</value>
-  </data>
-  <data name="&gt;&gt;label17.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label17.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label17.ZOrder" xml:space="preserve">
-    <value>33</value>
-  </data>
-  <data name="&gt;&gt;HS4.Name" xml:space="preserve">
-    <value>HS4</value>
-  </data>
-  <data name="&gt;&gt;HS4.Type" xml:space="preserve">
-    <value>ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;HS4.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;HS4.ZOrder" xml:space="preserve">
-    <value>34</value>
-  </data>
-  <data name="&gt;&gt;HS3.Name" xml:space="preserve">
-    <value>HS3</value>
-  </data>
-  <data name="&gt;&gt;HS3.Type" xml:space="preserve">
-    <value>ArdupilotMega.VerticalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;HS3.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;HS3.ZOrder" xml:space="preserve">
-    <value>35</value>
-  </data>
-  <data name="&gt;&gt;Gservoloc.Name" xml:space="preserve">
-    <value>Gservoloc</value>
-  </data>
-  <data name="&gt;&gt;Gservoloc.Type" xml:space="preserve">
-    <value>AGaugeApp.AGauge, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;Gservoloc.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;Gservoloc.ZOrder" xml:space="preserve">
-    <value>36</value>
-  </data>
-  <data name="tabHeli.Location" type="System.Drawing.Point, System.Drawing">
-    <value>4, 22</value>
-  </data>
-  <data name="tabHeli.Size" type="System.Drawing.Size, System.Drawing">
-    <value>666, 393</value>
-  </data>
-  <data name="tabHeli.TabIndex" type="System.Int32, mscorlib">
-    <value>5</value>
-  </data>
-  <data name="tabHeli.Text" xml:space="preserve">
-    <value>AC2 Heli</value>
-  </data>
-  <data name="&gt;&gt;tabHeli.Name" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;tabHeli.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;tabHeli.Parent" xml:space="preserve">
-    <value>Tabs</value>
-  </data>
-  <data name="&gt;&gt;tabHeli.ZOrder" xml:space="preserve">
-    <value>6</value>
-  </data>
-  <data name="Tabs.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
-    <value>Fill</value>
-  </data>
-  <data name="Tabs.Location" type="System.Drawing.Point, System.Drawing">
-    <value>0, 0</value>
-  </data>
-  <data name="Tabs.Size" type="System.Drawing.Size, System.Drawing">
-    <value>674, 419</value>
-  </data>
-  <data name="Tabs.TabIndex" type="System.Int32, mscorlib">
-    <value>93</value>
-  </data>
-  <data name="&gt;&gt;Tabs.Name" xml:space="preserve">
-    <value>Tabs</value>
-  </data>
-  <data name="&gt;&gt;Tabs.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;Tabs.Parent" xml:space="preserve">
-    <value>$this</value>
-  </data>
-  <data name="&gt;&gt;Tabs.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;CHK_mixmode.Name" xml:space="preserve">
-    <value>CHK_mixmode</value>
-  </data>
-  <data name="&gt;&gt;CHK_mixmode.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_mixmode.Parent" xml:space="preserve">
-    <value>groupBoxElevons</value>
-  </data>
-  <data name="&gt;&gt;CHK_mixmode.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonch2rev.Name" xml:space="preserve">
-    <value>CHK_elevonch2rev</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonch2rev.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonch2rev.Parent" xml:space="preserve">
-    <value>groupBoxElevons</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonch2rev.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonrev.Name" xml:space="preserve">
-    <value>CHK_elevonrev</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonrev.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonrev.Parent" xml:space="preserve">
-    <value>groupBoxElevons</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonrev.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonch1rev.Name" xml:space="preserve">
-    <value>CHK_elevonch1rev</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonch1rev.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonch1rev.Parent" xml:space="preserve">
-    <value>groupBoxElevons</value>
-  </data>
-  <data name="&gt;&gt;CHK_elevonch1rev.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="groupBoxElevons.Location" type="System.Drawing.Point, System.Drawing">
-    <value>21, 349</value>
-  </data>
-  <data name="groupBoxElevons.Size" type="System.Drawing.Size, System.Drawing">
-    <value>409, 42</value>
-  </data>
-  <data name="groupBoxElevons.TabIndex" type="System.Int32, mscorlib">
-    <value>111</value>
-  </data>
-  <data name="groupBoxElevons.Text" xml:space="preserve">
-    <value>Elevon Config</value>
-  </data>
-  <data name="&gt;&gt;groupBoxElevons.Name" xml:space="preserve">
-    <value>groupBoxElevons</value>
-  </data>
-  <data name="&gt;&gt;groupBoxElevons.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;groupBoxElevons.Parent" xml:space="preserve">
-    <value>tabRadioIn</value>
-  </data>
-  <data name="&gt;&gt;groupBoxElevons.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
+  <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   <data name="CHK_mixmode.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   <data name="CHK_mixmode.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
   </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="CHK_mixmode.Location" type="System.Drawing.Point, System.Drawing">
     <value>13, 19</value>
   </data>
@@ -1896,6 +255,30 @@
   <data name="&gt;&gt;CHK_elevonch1rev.ZOrder" xml:space="preserve">
     <value>3</value>
   </data>
+  <data name="groupBoxElevons.Location" type="System.Drawing.Point, System.Drawing">
+    <value>21, 349</value>
+  </data>
+  <data name="groupBoxElevons.Size" type="System.Drawing.Size, System.Drawing">
+    <value>409, 42</value>
+  </data>
+  <data name="groupBoxElevons.TabIndex" type="System.Int32, mscorlib">
+    <value>111</value>
+  </data>
+  <data name="groupBoxElevons.Text" xml:space="preserve">
+    <value>Elevon Config</value>
+  </data>
+  <data name="&gt;&gt;groupBoxElevons.Name" xml:space="preserve">
+    <value>groupBoxElevons</value>
+  </data>
+  <data name="&gt;&gt;groupBoxElevons.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;groupBoxElevons.Parent" xml:space="preserve">
+    <value>tabRadioIn</value>
+  </data>
+  <data name="&gt;&gt;groupBoxElevons.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
   <data name="CHK_revch3.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
@@ -2067,9 +450,6 @@
   <data name="&gt;&gt;BAR8.ZOrder" xml:space="preserve">
     <value>6</value>
   </data>
-  <metadata name="currentStateBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
   <data name="BAR7.Location" type="System.Drawing.Point, System.Drawing">
     <value>446, 185</value>
   </data>
@@ -2217,6 +597,33 @@
   <data name="&gt;&gt;BARroll.ZOrder" xml:space="preserve">
     <value>13</value>
   </data>
+  <data name="tabRadioIn.Location" type="System.Drawing.Point, System.Drawing">
+    <value>4, 22</value>
+  </data>
+  <data name="tabRadioIn.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>3, 3, 3, 3</value>
+  </data>
+  <data name="tabRadioIn.Size" type="System.Drawing.Size, System.Drawing">
+    <value>666, 393</value>
+  </data>
+  <data name="tabRadioIn.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
+  </data>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>Radio Input</value>
+  </data>
+  <data name="&gt;&gt;tabRadioIn.Name" xml:space="preserve">
+    <value>tabRadioIn</value>
+  </data>
+  <data name="&gt;&gt;tabRadioIn.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;tabRadioIn.Parent" xml:space="preserve">
+    <value>Tabs</value>
+  </data>
+  <data name="&gt;&gt;tabRadioIn.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
   <data name="CB_simple6.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
@@ -3048,6 +1455,30 @@
   <data name="&gt;&gt;BUT_SaveModes.ZOrder" xml:space="preserve">
     <value>28</value>
   </data>
+  <data name="tabModes.Location" type="System.Drawing.Point, System.Drawing">
+    <value>4, 22</value>
+  </data>
+  <data name="tabModes.Size" type="System.Drawing.Size, System.Drawing">
+    <value>666, 393</value>
+  </data>
+  <data name="tabModes.TabIndex" type="System.Int32, mscorlib">
+    <value>3</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>Modes</value>
+  </data>
+  <data name="&gt;&gt;tabModes.Name" xml:space="preserve">
+    <value>tabModes</value>
+  </data>
+  <data name="&gt;&gt;tabModes.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;tabModes.Parent" xml:space="preserve">
+    <value>Tabs</value>
+  </data>
+  <data name="&gt;&gt;tabModes.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
   <data name="BUT_MagCalibration.Location" type="System.Drawing.Point, System.Drawing">
     <value>405, 25</value>
   </data>
@@ -3366,215 +1797,98 @@
   <data name="&gt;&gt;pictureBox4.Type" xml:space="preserve">
     <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;pictureBox4.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;pictureBox4.ZOrder" xml:space="preserve">
-    <value>11</value>
-  </data>
-  <data name="pictureBox3.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
-    <value>Zoom</value>
-  </data>
-  <data name="pictureBox3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="pictureBox3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>78, 106</value>
-  </data>
-  <data name="pictureBox3.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 75</value>
-  </data>
-  <data name="pictureBox3.TabIndex" type="System.Int32, mscorlib">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;pictureBox3.Name" xml:space="preserve">
-    <value>pictureBox3</value>
-  </data>
-  <data name="&gt;&gt;pictureBox3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;pictureBox3.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;pictureBox3.ZOrder" xml:space="preserve">
-    <value>12</value>
-  </data>
-  <data name="pictureBox1.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
-    <value>Zoom</value>
-  </data>
-  <data name="pictureBox1.ErrorImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
-    <value />
-  </data>
-  <data name="pictureBox1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="pictureBox1.InitialImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
-    <value />
-  </data>
-  <data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>78, 25</value>
-  </data>
-  <data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 75</value>
-  </data>
-  <data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;pictureBox1.Name" xml:space="preserve">
-    <value>pictureBox1</value>
-  </data>
-  <data name="&gt;&gt;pictureBox1.Type" xml:space="preserve">
-    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
-    <value>tabHardware</value>
-  </data>
-  <data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
-    <value>13</value>
-  </data>
-  <data name="&gt;&gt;label31.Name" xml:space="preserve">
-    <value>label31</value>
-  </data>
-  <data name="&gt;&gt;label31.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label31.Parent" xml:space="preserve">
-    <value>groupBox4</value>
-  </data>
-  <data name="&gt;&gt;label31.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;label32.Name" xml:space="preserve">
-    <value>label32</value>
-  </data>
-  <data name="&gt;&gt;label32.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label32.Parent" xml:space="preserve">
-    <value>groupBox4</value>
-  </data>
-  <data name="&gt;&gt;label32.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;label33.Name" xml:space="preserve">
-    <value>label33</value>
-  </data>
-  <data name="&gt;&gt;label33.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label33.Parent" xml:space="preserve">
-    <value>groupBox4</value>
-  </data>
-  <data name="&gt;&gt;label33.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;TXT_ampspervolt.Name" xml:space="preserve">
-    <value>TXT_ampspervolt</value>
-  </data>
-  <data name="&gt;&gt;TXT_ampspervolt.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;TXT_ampspervolt.Parent" xml:space="preserve">
-    <value>groupBox4</value>
-  </data>
-  <data name="&gt;&gt;TXT_ampspervolt.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="&gt;&gt;label34.Name" xml:space="preserve">
-    <value>label34</value>
-  </data>
-  <data name="&gt;&gt;label34.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label34.Parent" xml:space="preserve">
-    <value>groupBox4</value>
+  <data name="&gt;&gt;pictureBox4.Parent" xml:space="preserve">
+    <value>tabHardware</value>
   </data>
-  <data name="&gt;&gt;label34.ZOrder" xml:space="preserve">
-    <value>4</value>
+  <data name="&gt;&gt;pictureBox4.ZOrder" xml:space="preserve">
+    <value>11</value>
   </data>
-  <data name="&gt;&gt;TXT_divider.Name" xml:space="preserve">
-    <value>TXT_divider</value>
+  <data name="pictureBox3.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
+    <value>Zoom</value>
   </data>
-  <data name="&gt;&gt;TXT_divider.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="pictureBox3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
   </data>
-  <data name="&gt;&gt;TXT_divider.Parent" xml:space="preserve">
-    <value>groupBox4</value>
+  <data name="pictureBox3.Location" type="System.Drawing.Point, System.Drawing">
+    <value>78, 106</value>
   </data>
-  <data name="&gt;&gt;TXT_divider.ZOrder" xml:space="preserve">
-    <value>5</value>
+  <data name="pictureBox3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>75, 75</value>
   </data>
-  <data name="&gt;&gt;label35.Name" xml:space="preserve">
-    <value>label35</value>
+  <data name="pictureBox3.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
   </data>
-  <data name="&gt;&gt;label35.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="&gt;&gt;pictureBox3.Name" xml:space="preserve">
+    <value>pictureBox3</value>
   </data>
-  <data name="&gt;&gt;label35.Parent" xml:space="preserve">
-    <value>groupBox4</value>
+  <data name="&gt;&gt;pictureBox3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;label35.ZOrder" xml:space="preserve">
-    <value>6</value>
+  <data name="&gt;&gt;pictureBox3.Parent" xml:space="preserve">
+    <value>tabHardware</value>
   </data>
-  <data name="&gt;&gt;TXT_voltage.Name" xml:space="preserve">
-    <value>TXT_voltage</value>
+  <data name="&gt;&gt;pictureBox3.ZOrder" xml:space="preserve">
+    <value>12</value>
   </data>
-  <data name="&gt;&gt;TXT_voltage.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="pictureBox1.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
+    <value>Zoom</value>
   </data>
-  <data name="&gt;&gt;TXT_voltage.Parent" xml:space="preserve">
-    <value>groupBox4</value>
+  <data name="pictureBox1.ErrorImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
+    <value />
   </data>
-  <data name="&gt;&gt;TXT_voltage.ZOrder" xml:space="preserve">
-    <value>7</value>
+  <data name="pictureBox1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
   </data>
-  <data name="&gt;&gt;TXT_inputvoltage.Name" xml:space="preserve">
-    <value>TXT_inputvoltage</value>
+  <data name="pictureBox1.InitialImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
+    <value />
   </data>
-  <data name="&gt;&gt;TXT_inputvoltage.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
+    <value>78, 25</value>
   </data>
-  <data name="&gt;&gt;TXT_inputvoltage.Parent" xml:space="preserve">
-    <value>groupBox4</value>
+  <data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>75, 75</value>
   </data>
-  <data name="&gt;&gt;TXT_inputvoltage.ZOrder" xml:space="preserve">
-    <value>8</value>
+  <data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
   </data>
-  <data name="&gt;&gt;TXT_measuredvoltage.Name" xml:space="preserve">
-    <value>TXT_measuredvoltage</value>
+  <data name="&gt;&gt;pictureBox1.Name" xml:space="preserve">
+    <value>pictureBox1</value>
   </data>
-  <data name="&gt;&gt;TXT_measuredvoltage.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="&gt;&gt;pictureBox1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;TXT_measuredvoltage.Parent" xml:space="preserve">
-    <value>groupBox4</value>
+  <data name="&gt;&gt;pictureBox1.Parent" xml:space="preserve">
+    <value>tabHardware</value>
   </data>
-  <data name="&gt;&gt;TXT_measuredvoltage.ZOrder" xml:space="preserve">
-    <value>9</value>
+  <data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
+    <value>13</value>
   </data>
-  <data name="groupBox4.Location" type="System.Drawing.Point, System.Drawing">
-    <value>31, 177</value>
+  <data name="tabHardware.Location" type="System.Drawing.Point, System.Drawing">
+    <value>4, 22</value>
   </data>
-  <data name="groupBox4.Size" type="System.Drawing.Size, System.Drawing">
-    <value>238, 131</value>
+  <data name="tabHardware.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>3, 3, 3, 3</value>
   </data>
-  <data name="groupBox4.TabIndex" type="System.Int32, mscorlib">
-    <value>41</value>
+  <data name="tabHardware.Size" type="System.Drawing.Size, System.Drawing">
+    <value>666, 393</value>
   </data>
-  <data name="groupBox4.Text" xml:space="preserve">
-    <value>Calibration</value>
+  <data name="tabHardware.TabIndex" type="System.Int32, mscorlib">
+    <value>1</value>
   </data>
-  <data name="&gt;&gt;groupBox4.Name" xml:space="preserve">
-    <value>groupBox4</value>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>Hardware</value>
   </data>
-  <data name="&gt;&gt;groupBox4.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="&gt;&gt;tabHardware.Name" xml:space="preserve">
+    <value>tabHardware</value>
   </data>
-  <data name="&gt;&gt;groupBox4.Parent" xml:space="preserve">
-    <value>tabBattery</value>
+  <data name="&gt;&gt;tabHardware.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;groupBox4.ZOrder" xml:space="preserve">
-    <value>0</value>
+  <data name="&gt;&gt;tabHardware.Parent" xml:space="preserve">
+    <value>Tabs</value>
+  </data>
+  <data name="&gt;&gt;tabHardware.ZOrder" xml:space="preserve">
+    <value>2</value>
   </data>
   <data name="label31.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -3861,6 +2175,30 @@
   <data name="&gt;&gt;TXT_measuredvoltage.ZOrder" xml:space="preserve">
     <value>9</value>
   </data>
+  <data name="groupBox4.Location" type="System.Drawing.Point, System.Drawing">
+    <value>31, 177</value>
+  </data>
+  <data name="groupBox4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>238, 131</value>
+  </data>
+  <data name="groupBox4.TabIndex" type="System.Int32, mscorlib">
+    <value>41</value>
+  </data>
+  <data name="groupBox4.Text" xml:space="preserve">
+    <value>Calibration</value>
+  </data>
+  <data name="&gt;&gt;groupBox4.Name" xml:space="preserve">
+    <value>groupBox4</value>
+  </data>
+  <data name="&gt;&gt;groupBox4.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;groupBox4.Parent" xml:space="preserve">
+    <value>tabBattery</value>
+  </data>
+  <data name="&gt;&gt;groupBox4.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
   <data name="label47.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
   </data>
@@ -4086,11 +2424,122 @@ Then subtract 0.3v from that value and enter it in field #1 at left.
   <data name="&gt;&gt;pictureBox5.Type" xml:space="preserve">
     <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;pictureBox5.Parent" xml:space="preserve">
-    <value>tabBattery</value>
+  <data name="&gt;&gt;pictureBox5.Parent" xml:space="preserve">
+    <value>tabBattery</value>
+  </data>
+  <data name="&gt;&gt;pictureBox5.ZOrder" xml:space="preserve">
+    <value>8</value>
+  </data>
+  <data name="tabBattery.Location" type="System.Drawing.Point, System.Drawing">
+    <value>4, 22</value>
+  </data>
+  <data name="tabBattery.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>2, 2, 2, 2</value>
+  </data>
+  <data name="tabBattery.Size" type="System.Drawing.Size, System.Drawing">
+    <value>666, 393</value>
+  </data>
+  <data name="tabBattery.TabIndex" type="System.Int32, mscorlib">
+    <value>6</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>Battery</value>
+  </data>
+  <data name="&gt;&gt;tabBattery.Name" xml:space="preserve">
+    <value>tabBattery</value>
+  </data>
+  <data name="&gt;&gt;tabBattery.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;tabBattery.Parent" xml:space="preserve">
+    <value>Tabs</value>
+  </data>
+  <data name="&gt;&gt;tabBattery.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="label48.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label48.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label48.Location" type="System.Drawing.Point, System.Drawing">
+    <value>228, 170</value>
+  </data>
+  <data name="label48.Size" type="System.Drawing.Size, System.Drawing">
+    <value>212, 13</value>
+  </data>
+  <data name="label48.TabIndex" type="System.Int32, mscorlib">
+    <value>11</value>
+  </data>
+  <data name="label48.Text" xml:space="preserve">
+    <value>Level your plane to set default accel offsets</value>
+  </data>
+  <data name="&gt;&gt;label48.Name" xml:space="preserve">
+    <value>label48</value>
+  </data>
+  <data name="&gt;&gt;label48.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;label48.Parent" xml:space="preserve">
+    <value>tabArduplane</value>
+  </data>
+  <data name="&gt;&gt;label48.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
+  <data name="BUT_levelplane.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="BUT_levelplane.Location" type="System.Drawing.Point, System.Drawing">
+    <value>285, 199</value>
+  </data>
+  <data name="BUT_levelplane.Size" type="System.Drawing.Size, System.Drawing">
+    <value>75, 23</value>
+  </data>
+  <data name="BUT_levelplane.TabIndex" type="System.Int32, mscorlib">
+    <value>10</value>
+  </data>
+  <data name="BUT_levelplane.Text" xml:space="preserve">
+    <value>Level</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelplane.Name" xml:space="preserve">
+    <value>BUT_levelplane</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelplane.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelplane.Parent" xml:space="preserve">
+    <value>tabArduplane</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelplane.ZOrder" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="tabArduplane.Location" type="System.Drawing.Point, System.Drawing">
+    <value>4, 22</value>
+  </data>
+  <data name="tabArduplane.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
+    <value>3, 3, 3, 3</value>
+  </data>
+  <data name="tabArduplane.Size" type="System.Drawing.Size, System.Drawing">
+    <value>666, 393</value>
+  </data>
+  <data name="tabArduplane.TabIndex" type="System.Int32, mscorlib">
+    <value>7</value>
+  </data>
+  <data name="tabArduplane.Text" xml:space="preserve">
+    <value>ArduPlane</value>
+  </data>
+  <data name="&gt;&gt;tabArduplane.Name" xml:space="preserve">
+    <value>tabArduplane</value>
+  </data>
+  <data name="&gt;&gt;tabArduplane.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;tabArduplane.Parent" xml:space="preserve">
+    <value>Tabs</value>
   </data>
-  <data name="&gt;&gt;pictureBox5.ZOrder" xml:space="preserve">
-    <value>8</value>
+  <data name="&gt;&gt;tabArduplane.ZOrder" xml:space="preserve">
+    <value>4</value>
   </data>
   <data name="label28.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -4264,53 +2713,29 @@ will work with hexa's etc</value>
   <data name="&gt;&gt;BUT_levelac2.ZOrder" xml:space="preserve">
     <value>5</value>
   </data>
-  <data name="&gt;&gt;H1_ENABLE.Name" xml:space="preserve">
-    <value>H1_ENABLE</value>
-  </data>
-  <data name="&gt;&gt;H1_ENABLE.Type" xml:space="preserve">
-    <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;H1_ENABLE.Parent" xml:space="preserve">
-    <value>groupBox5</value>
-  </data>
-  <data name="&gt;&gt;H1_ENABLE.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;CCPM.Name" xml:space="preserve">
-    <value>CCPM</value>
-  </data>
-  <data name="&gt;&gt;CCPM.Type" xml:space="preserve">
-    <value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;CCPM.Parent" xml:space="preserve">
-    <value>groupBox5</value>
-  </data>
-  <data name="&gt;&gt;CCPM.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="groupBox5.Location" type="System.Drawing.Point, System.Drawing">
-    <value>253, 6</value>
+  <data name="tabArducopter.Location" type="System.Drawing.Point, System.Drawing">
+    <value>4, 22</value>
   </data>
-  <data name="groupBox5.Size" type="System.Drawing.Size, System.Drawing">
-    <value>120, 43</value>
+  <data name="tabArducopter.Size" type="System.Drawing.Size, System.Drawing">
+    <value>666, 393</value>
   </data>
-  <data name="groupBox5.TabIndex" type="System.Int32, mscorlib">
-    <value>137</value>
+  <data name="tabArducopter.TabIndex" type="System.Int32, mscorlib">
+    <value>2</value>
   </data>
-  <data name="groupBox5.Text" xml:space="preserve">
-    <value>Swash Type</value>
+  <data name="tabArducopter.Text" xml:space="preserve">
+    <value>ArduCopter2</value>
   </data>
-  <data name="&gt;&gt;groupBox5.Name" xml:space="preserve">
-    <value>groupBox5</value>
+  <data name="&gt;&gt;tabArducopter.Name" xml:space="preserve">
+    <value>tabArducopter</value>
   </data>
-  <data name="&gt;&gt;groupBox5.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="&gt;&gt;tabArducopter.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;groupBox5.Parent" xml:space="preserve">
-    <value>tabHeli</value>
+  <data name="&gt;&gt;tabArducopter.Parent" xml:space="preserve">
+    <value>Tabs</value>
   </data>
-  <data name="&gt;&gt;groupBox5.ZOrder" xml:space="preserve">
-    <value>0</value>
+  <data name="&gt;&gt;tabArducopter.ZOrder" xml:space="preserve">
+    <value>5</value>
   </data>
   <data name="H1_ENABLE.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -4369,6 +2794,30 @@ will work with hexa's etc</value>
   <data name="&gt;&gt;CCPM.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
+  <data name="groupBox5.Location" type="System.Drawing.Point, System.Drawing">
+    <value>253, 6</value>
+  </data>
+  <data name="groupBox5.Size" type="System.Drawing.Size, System.Drawing">
+    <value>120, 43</value>
+  </data>
+  <data name="groupBox5.TabIndex" type="System.Int32, mscorlib">
+    <value>137</value>
+  </data>
+  <data name="groupBox5.Text" xml:space="preserve">
+    <value>Swash Type</value>
+  </data>
+  <data name="&gt;&gt;groupBox5.Name" xml:space="preserve">
+    <value>groupBox5</value>
+  </data>
+  <data name="&gt;&gt;groupBox5.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;groupBox5.Parent" xml:space="preserve">
+    <value>tabHeli</value>
+  </data>
+  <data name="&gt;&gt;groupBox5.ZOrder" xml:space="preserve">
+    <value>0</value>
+  </data>
   <data name="BUT_HS4save.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
   </data>
@@ -4423,78 +2872,6 @@ will work with hexa's etc</value>
   <data name="&gt;&gt;BUT_swash_manual.ZOrder" xml:space="preserve">
     <value>2</value>
   </data>
-  <data name="&gt;&gt;label46.Name" xml:space="preserve">
-    <value>label46</value>
-  </data>
-  <data name="&gt;&gt;label46.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label46.Parent" xml:space="preserve">
-    <value>groupBox3</value>
-  </data>
-  <data name="&gt;&gt;label46.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;label45.Name" xml:space="preserve">
-    <value>label45</value>
-  </data>
-  <data name="&gt;&gt;label45.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label45.Parent" xml:space="preserve">
-    <value>groupBox3</value>
-  </data>
-  <data name="&gt;&gt;label45.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;GYR_ENABLE.Name" xml:space="preserve">
-    <value>GYR_ENABLE</value>
-  </data>
-  <data name="&gt;&gt;GYR_ENABLE.Type" xml:space="preserve">
-    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;GYR_ENABLE.Parent" xml:space="preserve">
-    <value>groupBox3</value>
-  </data>
-  <data name="&gt;&gt;GYR_ENABLE.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;GYR_GAIN.Name" xml:space="preserve">
-    <value>GYR_GAIN</value>
-  </data>
-  <data name="&gt;&gt;GYR_GAIN.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;GYR_GAIN.Parent" xml:space="preserve">
-    <value>groupBox3</value>
-  </data>
-  <data name="&gt;&gt;GYR_GAIN.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="groupBox3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>433, 309</value>
-  </data>
-  <data name="groupBox3.Size" type="System.Drawing.Size, System.Drawing">
-    <value>101, 63</value>
-  </data>
-  <data name="groupBox3.TabIndex" type="System.Int32, mscorlib">
-    <value>135</value>
-  </data>
-  <data name="groupBox3.Text" xml:space="preserve">
-    <value>Gyro</value>
-  </data>
-  <data name="&gt;&gt;groupBox3.Name" xml:space="preserve">
-    <value>groupBox3</value>
-  </data>
-  <data name="&gt;&gt;groupBox3.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;groupBox3.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;groupBox3.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
   <data name="label46.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
@@ -4606,6 +2983,30 @@ will work with hexa's etc</value>
   <data name="&gt;&gt;GYR_GAIN.ZOrder" xml:space="preserve">
     <value>3</value>
   </data>
+  <data name="groupBox3.Location" type="System.Drawing.Point, System.Drawing">
+    <value>433, 309</value>
+  </data>
+  <data name="groupBox3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>101, 63</value>
+  </data>
+  <data name="groupBox3.TabIndex" type="System.Int32, mscorlib">
+    <value>135</value>
+  </data>
+  <data name="groupBox3.Text" xml:space="preserve">
+    <value>Gyro</value>
+  </data>
+  <data name="&gt;&gt;groupBox3.Name" xml:space="preserve">
+    <value>groupBox3</value>
+  </data>
+  <data name="&gt;&gt;groupBox3.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;groupBox3.Parent" xml:space="preserve">
+    <value>tabHeli</value>
+  </data>
+  <data name="&gt;&gt;groupBox3.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
   <data name="label44.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
@@ -4646,124 +3047,55 @@ will work with hexa's etc</value>
     <value>499, 263</value>
   </data>
   <data name="label43.Size" type="System.Drawing.Size, System.Drawing">
-    <value>27, 13</value>
-  </data>
-  <data name="label43.TabIndex" type="System.Int32, mscorlib">
-    <value>133</value>
-  </data>
-  <data name="label43.Text" xml:space="preserve">
-    <value>Rev</value>
-  </data>
-  <data name="&gt;&gt;label43.Name" xml:space="preserve">
-    <value>label43</value>
-  </data>
-  <data name="&gt;&gt;label43.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label43.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label43.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="label42.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
-  </data>
-  <data name="label42.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
-    <value>NoControl</value>
-  </data>
-  <data name="label42.Location" type="System.Drawing.Point, System.Drawing">
-    <value>451, 283</value>
-  </data>
-  <data name="label42.Size" type="System.Drawing.Size, System.Drawing">
-    <value>42, 13</value>
-  </data>
-  <data name="label42.TabIndex" type="System.Int32, mscorlib">
-    <value>132</value>
-  </data>
-  <data name="label42.Text" xml:space="preserve">
-    <value>Rudder</value>
-  </data>
-  <data name="&gt;&gt;label42.Name" xml:space="preserve">
-    <value>label42</value>
-  </data>
-  <data name="&gt;&gt;label42.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label42.Parent" xml:space="preserve">
-    <value>tabHeli</value>
-  </data>
-  <data name="&gt;&gt;label42.ZOrder" xml:space="preserve">
-    <value>6</value>
-  </data>
-  <data name="&gt;&gt;label24.Name" xml:space="preserve">
-    <value>label24</value>
-  </data>
-  <data name="&gt;&gt;label24.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label24.Parent" xml:space="preserve">
-    <value>groupBox2</value>
-  </data>
-  <data name="&gt;&gt;label24.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;HS4_MIN.Name" xml:space="preserve">
-    <value>HS4_MIN</value>
-  </data>
-  <data name="&gt;&gt;HS4_MIN.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;HS4_MIN.Parent" xml:space="preserve">
-    <value>groupBox2</value>
+    <value>27, 13</value>
   </data>
-  <data name="&gt;&gt;HS4_MIN.ZOrder" xml:space="preserve">
-    <value>1</value>
+  <data name="label43.TabIndex" type="System.Int32, mscorlib">
+    <value>133</value>
   </data>
-  <data name="&gt;&gt;HS4_MAX.Name" xml:space="preserve">
-    <value>HS4_MAX</value>
+  <data name="label43.Text" xml:space="preserve">
+    <value>Rev</value>
   </data>
-  <data name="&gt;&gt;HS4_MAX.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="&gt;&gt;label43.Name" xml:space="preserve">
+    <value>label43</value>
   </data>
-  <data name="&gt;&gt;HS4_MAX.Parent" xml:space="preserve">
-    <value>groupBox2</value>
+  <data name="&gt;&gt;label43.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;HS4_MAX.ZOrder" xml:space="preserve">
-    <value>2</value>
+  <data name="&gt;&gt;label43.Parent" xml:space="preserve">
+    <value>tabHeli</value>
   </data>
-  <data name="&gt;&gt;label40.Name" xml:space="preserve">
-    <value>label40</value>
+  <data name="&gt;&gt;label43.ZOrder" xml:space="preserve">
+    <value>5</value>
   </data>
-  <data name="&gt;&gt;label40.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="label42.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
   </data>
-  <data name="&gt;&gt;label40.Parent" xml:space="preserve">
-    <value>groupBox2</value>
+  <data name="label42.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
   </data>
-  <data name="&gt;&gt;label40.ZOrder" xml:space="preserve">
-    <value>3</value>
+  <data name="label42.Location" type="System.Drawing.Point, System.Drawing">
+    <value>451, 283</value>
   </data>
-  <data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
-    <value>433, 181</value>
+  <data name="label42.Size" type="System.Drawing.Size, System.Drawing">
+    <value>42, 13</value>
   </data>
-  <data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
-    <value>169, 78</value>
+  <data name="label42.TabIndex" type="System.Int32, mscorlib">
+    <value>132</value>
   </data>
-  <data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
-    <value>130</value>
+  <data name="label42.Text" xml:space="preserve">
+    <value>Rudder</value>
   </data>
-  <data name="&gt;&gt;groupBox2.Name" xml:space="preserve">
-    <value>groupBox2</value>
+  <data name="&gt;&gt;label42.Name" xml:space="preserve">
+    <value>label42</value>
   </data>
-  <data name="&gt;&gt;groupBox2.Type" xml:space="preserve">
-    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="&gt;&gt;label42.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;groupBox2.Parent" xml:space="preserve">
+  <data name="&gt;&gt;label42.Parent" xml:space="preserve">
     <value>tabHeli</value>
   </data>
-  <data name="&gt;&gt;groupBox2.ZOrder" xml:space="preserve">
-    <value>7</value>
+  <data name="&gt;&gt;label42.ZOrder" xml:space="preserve">
+    <value>6</value>
   </data>
   <data name="label24.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -4879,98 +3211,26 @@ will work with hexa's etc</value>
   <data name="&gt;&gt;label40.ZOrder" xml:space="preserve">
     <value>3</value>
   </data>
-  <data name="&gt;&gt;label41.Name" xml:space="preserve">
-    <value>label41</value>
-  </data>
-  <data name="&gt;&gt;label41.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label41.Parent" xml:space="preserve">
-    <value>groupBox1</value>
-  </data>
-  <data name="&gt;&gt;label41.ZOrder" xml:space="preserve">
-    <value>0</value>
-  </data>
-  <data name="&gt;&gt;label21.Name" xml:space="preserve">
-    <value>label21</value>
-  </data>
-  <data name="&gt;&gt;label21.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;label21.Parent" xml:space="preserve">
-    <value>groupBox1</value>
-  </data>
-  <data name="&gt;&gt;label21.ZOrder" xml:space="preserve">
-    <value>1</value>
-  </data>
-  <data name="&gt;&gt;COL_MIN.Name" xml:space="preserve">
-    <value>COL_MIN</value>
-  </data>
-  <data name="&gt;&gt;COL_MIN.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;COL_MIN.Parent" xml:space="preserve">
-    <value>groupBox1</value>
-  </data>
-  <data name="&gt;&gt;COL_MIN.ZOrder" xml:space="preserve">
-    <value>2</value>
-  </data>
-  <data name="&gt;&gt;COL_MID.Name" xml:space="preserve">
-    <value>COL_MID</value>
-  </data>
-  <data name="&gt;&gt;COL_MID.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;COL_MID.Parent" xml:space="preserve">
-    <value>groupBox1</value>
-  </data>
-  <data name="&gt;&gt;COL_MID.ZOrder" xml:space="preserve">
-    <value>3</value>
-  </data>
-  <data name="&gt;&gt;COL_MAX.Name" xml:space="preserve">
-    <value>COL_MAX</value>
-  </data>
-  <data name="&gt;&gt;COL_MAX.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </data>
-  <data name="&gt;&gt;COL_MAX.Parent" xml:space="preserve">
-    <value>groupBox1</value>
-  </data>
-  <data name="&gt;&gt;COL_MAX.ZOrder" xml:space="preserve">
-    <value>4</value>
-  </data>
-  <data name="&gt;&gt;BUT_0collective.Name" xml:space="preserve">
-    <value>BUT_0collective</value>
-  </data>
-  <data name="&gt;&gt;BUT_0collective.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
-  </data>
-  <data name="&gt;&gt;BUT_0collective.Parent" xml:space="preserve">
-    <value>groupBox1</value>
-  </data>
-  <data name="&gt;&gt;BUT_0collective.ZOrder" xml:space="preserve">
-    <value>5</value>
-  </data>
-  <data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>293, 90</value>
+  <data name="groupBox2.Location" type="System.Drawing.Point, System.Drawing">
+    <value>433, 181</value>
   </data>
-  <data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
-    <value>80, 209</value>
+  <data name="groupBox2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>169, 78</value>
   </data>
-  <data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
-    <value>129</value>
+  <data name="groupBox2.TabIndex" type="System.Int32, mscorlib">
+    <value>130</value>
   </data>
-  <data name="&gt;&gt;groupBox1.Name" xml:space="preserve">
-    <value>groupBox1</value>
+  <data name="&gt;&gt;groupBox2.Name" xml:space="preserve">
+    <value>groupBox2</value>
   </data>
-  <data name="&gt;&gt;groupBox1.Type" xml:space="preserve">
+  <data name="&gt;&gt;groupBox2.Type" xml:space="preserve">
     <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="&gt;&gt;groupBox1.Parent" xml:space="preserve">
+  <data name="&gt;&gt;groupBox2.Parent" xml:space="preserve">
     <value>tabHeli</value>
   </data>
-  <data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
-    <value>8</value>
+  <data name="&gt;&gt;groupBox2.ZOrder" xml:space="preserve">
+    <value>7</value>
   </data>
   <data name="label41.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -5143,6 +3403,27 @@ will work with hexa's etc</value>
   <data name="&gt;&gt;BUT_0collective.ZOrder" xml:space="preserve">
     <value>5</value>
   </data>
+  <data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
+    <value>293, 90</value>
+  </data>
+  <data name="groupBox1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 209</value>
+  </data>
+  <data name="groupBox1.TabIndex" type="System.Int32, mscorlib">
+    <value>129</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.Name" xml:space="preserve">
+    <value>groupBox1</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.Parent" xml:space="preserve">
+    <value>tabHeli</value>
+  </data>
+  <data name="&gt;&gt;groupBox1.ZOrder" xml:space="preserve">
+    <value>8</value>
+  </data>
   <data name="HS4_TRIM.Location" type="System.Drawing.Point, System.Drawing">
     <value>535, 279</value>
   </data>
@@ -5887,35 +4168,53 @@ will work with hexa's etc</value>
   <data name="&gt;&gt;Gservoloc.ZOrder" xml:space="preserve">
     <value>36</value>
   </data>
-  <data name="&gt;&gt;BUT_reset.Name" xml:space="preserve">
-    <value>BUT_reset</value>
+  <data name="tabHeli.Location" type="System.Drawing.Point, System.Drawing">
+    <value>4, 22</value>
   </data>
-  <data name="&gt;&gt;BUT_reset.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
+  <data name="tabHeli.Size" type="System.Drawing.Size, System.Drawing">
+    <value>666, 393</value>
   </data>
-  <data name="&gt;&gt;BUT_reset.Parent" xml:space="preserve">
-    <value>tabReset</value>
+  <data name="tabHeli.TabIndex" type="System.Int32, mscorlib">
+    <value>5</value>
   </data>
-  <data name="&gt;&gt;BUT_reset.ZOrder" xml:space="preserve">
-    <value>0</value>
+  <data name="tabHeli.Text" xml:space="preserve">
+    <value>AC2 Heli</value>
   </data>
-  <data name="tabReset.Location" type="System.Drawing.Point, System.Drawing">
-    <value>4, 22</value>
+  <data name="&gt;&gt;tabHeli.Name" xml:space="preserve">
+    <value>tabHeli</value>
   </data>
-  <data name="tabReset.Size" type="System.Drawing.Size, System.Drawing">
-    <value>666, 393</value>
+  <data name="&gt;&gt;tabHeli.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <data name="tabReset.TabIndex" type="System.Int32, mscorlib">
-    <value>4</value>
+  <data name="&gt;&gt;tabHeli.Parent" xml:space="preserve">
+    <value>Tabs</value>
   </data>
-  <data name="tabReset.Text" xml:space="preserve">
-    <value>Reset</value>
+  <data name="&gt;&gt;tabHeli.ZOrder" xml:space="preserve">
+    <value>6</value>
   </data>
-  <data name="&gt;&gt;tabReset.Name" xml:space="preserve">
-    <value>tabReset</value>
+  <data name="Tabs.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
+    <value>Fill</value>
   </data>
-  <data name="&gt;&gt;tabReset.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="Tabs.Location" type="System.Drawing.Point, System.Drawing">
+    <value>0, 0</value>
+  </data>
+  <data name="Tabs.Size" type="System.Drawing.Size, System.Drawing">
+    <value>674, 419</value>
+  </data>
+  <data name="Tabs.TabIndex" type="System.Int32, mscorlib">
+    <value>93</value>
+  </data>
+  <data name="&gt;&gt;Tabs.Name" xml:space="preserve">
+    <value>Tabs</value>
+  </data>
+  <data name="&gt;&gt;Tabs.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;Tabs.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;Tabs.ZOrder" xml:space="preserve">
+    <value>0</value>
   </data>
   <data name="BUT_reset.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
@@ -5944,6 +4243,24 @@ will work with hexa's etc</value>
   <data name="&gt;&gt;BUT_reset.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
+  <data name="tabReset.Location" type="System.Drawing.Point, System.Drawing">
+    <value>4, 22</value>
+  </data>
+  <data name="tabReset.Size" type="System.Drawing.Size, System.Drawing">
+    <value>666, 393</value>
+  </data>
+  <data name="tabReset.TabIndex" type="System.Int32, mscorlib">
+    <value>4</value>
+  </data>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>Reset</value>
+  </data>
+  <data name="&gt;&gt;tabReset.Name" xml:space="preserve">
+    <value>tabReset</value>
+  </data>
+  <data name="&gt;&gt;tabReset.Type" xml:space="preserve">
+    <value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb
index bbb6da8b86018129116e28bd7c17a79bd7122a9f..11248adcb80cb55ccae9eff1ab698a7a1c19f950 100644
GIT binary patch
delta 320837
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
NU7>f}8(OT?{twRu+AIJ7

delta 315261
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

diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/aircraft/Rascal/Rascal.xml b/Tools/ArdupilotMegaPlanner/bin/Release/aircraft/Rascal/Rascal.xml
index 2e2813a25..bf4321ee1 100644
--- a/Tools/ArdupilotMegaPlanner/bin/Release/aircraft/Rascal/Rascal.xml
+++ b/Tools/ArdupilotMegaPlanner/bin/Release/aircraft/Rascal/Rascal.xml
@@ -86,7 +86,7 @@
             <location unit="IN">
                 <x> 68.9 </x>
                 <y> 0 </y>
-                <z> -3 </z>
+                <z> -13.1 </z>
             </location>
             <static_friction> 8.0 </static_friction>
             <dynamic_friction> 5.0 </dynamic_friction>
diff --git a/Tools/ArdupilotMegaPlanner/wix/Program.cs b/Tools/ArdupilotMegaPlanner/wix/Program.cs
index c08e4452d..e66a3cda2 100644
--- a/Tools/ArdupilotMegaPlanner/wix/Program.cs
+++ b/Tools/ArdupilotMegaPlanner/wix/Program.cs
@@ -4,11 +4,55 @@ using System.Text;
 using System.IO;
 using System.Windows.Forms;
 using System.Diagnostics;
+using System.Runtime.InteropServices;
 
 namespace wix
 {
     class Program
     {
+        /// <summary>
+        /// The operation completed successfully.
+        /// </summary>
+        public const int ERROR_SUCCESS = 0;
+        /// <summary>
+        /// Incorrect function.
+        /// </summary>
+        public const int ERROR_INVALID_FUNCTION = 1;
+        /// <summary>
+        /// The system cannot find the file specified.
+        /// </summary>
+        public const int ERROR_FILE_NOT_FOUND = 2;
+        /// <summary>
+        /// The system cannot find the path specified.
+        /// </summary>
+        public const int ERROR_PATH_NOT_FOUND = 3;
+        /// <summary>
+        /// The system cannot open the file.
+        /// </summary>
+        public const int ERROR_TOO_MANY_OPEN_FILES = 4;
+        /// <summary>
+        /// Access is denied.
+        /// </summary>
+        public const int ERROR_ACCESS_DENIED = 5;
+
+        const Int32 DRIVER_PACKAGE_REPAIR = 0x00000001;
+        const Int32 DRIVER_PACKAGE_SILENT = 0x00000002;
+        const Int32 DRIVER_PACKAGE_FORCE = 0x00000004;
+        const Int32 DRIVER_PACKAGE_ONLY_IF_DEVICE_PRESENT = 0x00000008;
+        const Int32 DRIVER_PACKAGE_LEGACY_MODE = 0x00000010;
+        const Int32 DRIVER_PACKAGE_DELETE_FILES = 0x00000020;
+
+        [DllImport("DIFXApi.dll", CharSet = CharSet.Unicode)]
+        public static extern Int32 DriverPackagePreinstall(string DriverPackageInfPath, Int32 Flags);
+
+        static void driverinstall()
+        {
+            int result = DriverPackagePreinstall(@"..\Driver\Arduino MEGA 2560.inf", 0);
+            if (result != 0)
+                MessageBox.Show("Driver installation failed. " + result);
+
+        }
+
         static int no = 0;
 
         static StreamWriter sw;
@@ -25,6 +69,12 @@ namespace wix
                 return;
             }
 
+            if (args[0] == "driver")
+            {
+                driverinstall();
+                return;
+            }
+
             string path = args[0];
 
             string file = Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar+ "installer.wxs";
@@ -190,12 +240,13 @@ data = @"
             string[] dirs = Directory.GetDirectories(path);
 
             if (level != 0)
-                sw.WriteLine("<Directory Id=\"" + Path.GetFileName(path).Replace('-', '_') + "\" Name=\"" + Path.GetFileName(path) + "\">");
+                sw.WriteLine("<Directory Id=\"" + Path.GetFileName(path).Replace('-', '_') + no + "\" Name=\"" + Path.GetFileName(path) + "\">");
 
             string[] files = Directory.GetFiles(path);
 
-            sw.WriteLine("<Component Id=\"_comp"+no+"\" Guid=\""+ System.Guid.NewGuid().ToString() +"\">");
+            no++;
 
+            sw.WriteLine("<Component Id=\"_comp"+no+"\" Guid=\""+ System.Guid.NewGuid().ToString() +"\">");
             components.Add("_comp"+no);
 
             foreach (string filepath in files)
diff --git a/Tools/ArdupilotMegaPlanner/wix/Properties/Resources.Designer.cs b/Tools/ArdupilotMegaPlanner/wix/Properties/Resources.Designer.cs
new file mode 100644
index 000000000..8e668211f
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/wix/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.261
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace wix.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("wix.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/wix/Properties/Resources.resx b/Tools/ArdupilotMegaPlanner/wix/Properties/Resources.resx
new file mode 100644
index 000000000..4fdb1b6af
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/wix/Properties/Resources.resx
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+	<!-- 
+		Microsoft ResX Schema
+
+		Version 1.3
+
+		The primary goals of this format is to allow a simple XML format 
+		that is mostly human readable. The generation and parsing of the 
+		various data types are done through the TypeConverter classes 
+		associated with the data types.
+
+		Example:
+
+		... ado.net/XML headers & schema ...
+		<resheader name="resmimetype">text/microsoft-resx</resheader>
+		<resheader name="version">1.3</resheader>
+		<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+		<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+		<data name="Name1">this is my long string</data>
+		<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+		<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+			[base64 mime encoded serialized .NET Framework object]
+		</data>
+		<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+			[base64 mime encoded string representing a byte array form of the .NET Framework object]
+		</data>
+
+		There are any number of "resheader" rows that contain simple 
+		name/value pairs.
+
+		Each data row contains a name, and value. The row also contains a 
+		type or mimetype. Type corresponds to a .NET class that support 
+		text/value conversion through the TypeConverter architecture. 
+		Classes that don't support this are serialized and stored with the 
+		mimetype set.
+
+		The mimetype is used for serialized objects, and tells the 
+		ResXResourceReader how to depersist the object. This is currently not 
+		extensible. For a given mimetype the value must be set accordingly:
+
+		Note - application/x-microsoft.net.object.binary.base64 is the format 
+		that the ResXResourceWriter will generate, however the reader can 
+		read any of the formats listed below.
+
+		mimetype: application/x-microsoft.net.object.binary.base64
+		value   : The object must be serialized with 
+			: System.Serialization.Formatters.Binary.BinaryFormatter
+			: and then encoded with base64 encoding.
+
+		mimetype: application/x-microsoft.net.object.soap.base64
+		value   : The object must be serialized with 
+			: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+			: and then encoded with base64 encoding.
+
+		mimetype: application/x-microsoft.net.object.bytearray.base64
+		value   : The object must be serialized into a byte array 
+			: using a System.ComponentModel.TypeConverter
+			: and then encoded with base64 encoding.
+	-->
+	
+	<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+		<xsd:element name="root" msdata:IsDataSet="true">
+			<xsd:complexType>
+				<xsd:choice maxOccurs="unbounded">
+					<xsd:element name="data">
+						<xsd:complexType>
+							<xsd:sequence>
+								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+								<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+							</xsd:sequence>
+							<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+							<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+							<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+						</xsd:complexType>
+					</xsd:element>
+					<xsd:element name="resheader">
+						<xsd:complexType>
+							<xsd:sequence>
+								<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+							</xsd:sequence>
+							<xsd:attribute name="name" type="xsd:string" use="required" />
+						</xsd:complexType>
+					</xsd:element>
+				</xsd:choice>
+			</xsd:complexType>
+		</xsd:element>
+	</xsd:schema>
+	<resheader name="resmimetype">
+		<value>text/microsoft-resx</value>
+	</resheader>
+	<resheader name="version">
+		<value>1.3</value>
+	</resheader>
+	<resheader name="reader">
+		<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+	</resheader>
+	<resheader name="writer">
+		<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+	</resheader>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/wix/Properties/Settings.Designer.cs b/Tools/ArdupilotMegaPlanner/wix/Properties/Settings.Designer.cs
new file mode 100644
index 000000000..50ea81e4e
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/wix/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.261
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace wix.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/wix/Properties/Settings.settings b/Tools/ArdupilotMegaPlanner/wix/Properties/Settings.settings
new file mode 100644
index 000000000..049245f40
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/wix/Properties/Settings.settings
@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+</SettingsFile>
diff --git a/Tools/ArdupilotMegaPlanner/wix/Properties/app.manifest b/Tools/ArdupilotMegaPlanner/wix/Properties/app.manifest
new file mode 100644
index 000000000..8948c3006
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/wix/Properties/app.manifest
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+    <security>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!-- UAC Manifest Options
+            If you want to change the Windows User Account Control level replace the 
+            requestedExecutionLevel node with one of the following.
+
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+            Specifying requestedExecutionLevel node will disable file and registry virtualization.
+            If you want to utilize File and Registry Virtualization for backward 
+            compatibility then delete the requestedExecutionLevel node.
+        -->
+        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
+      </requestedPrivileges>
+      <applicationRequestMinimum>
+        <defaultAssemblyRequest permissionSetReference="Custom" />
+        <PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" />
+      </applicationRequestMinimum>
+    </security>
+  </trustInfo>
+  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+    <application>
+      <!-- A list of all Windows versions that this application is designed to work with. Windows will automatically select the most compatible environment.-->
+      <!-- If your application is designed to work with Windows 7, uncomment the following supportedOS node-->
+      <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
+    </application>
+  </compatibility>
+  <!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
+  <!-- <dependency>
+    <dependentAssembly>
+      <assemblyIdentity
+          type="win32"
+          name="Microsoft.Windows.Common-Controls"
+          version="6.0.0.0"
+          processorArchitecture="*"
+          publicKeyToken="6595b64144ccf1df"
+          language="*"
+        />
+    </dependentAssembly>
+  </dependency>-->
+</asmv1:assembly>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/wix/wix.csproj b/Tools/ArdupilotMegaPlanner/wix/wix.csproj
index e20f10524..42fbee7ca 100644
--- a/Tools/ArdupilotMegaPlanner/wix/wix.csproj
+++ b/Tools/ArdupilotMegaPlanner/wix/wix.csproj
@@ -10,7 +10,7 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>wix</RootNamespace>
     <AssemblyName>wix</AssemblyName>
-    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <TargetFrameworkProfile>
     </TargetFrameworkProfile>
     <FileAlignment>512</FileAlignment>
@@ -49,6 +49,16 @@
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
+  <PropertyGroup />
+  <PropertyGroup>
+    <TargetZone>LocalIntranet</TargetZone>
+  </PropertyGroup>
+  <PropertyGroup>
+    <GenerateManifests>false</GenerateManifests>
+  </PropertyGroup>
+  <PropertyGroup>
+    <ApplicationManifest>Properties\app.manifest</ApplicationManifest>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
     <Reference Include="System.Data" />
@@ -58,9 +68,24 @@
   <ItemGroup>
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+      <DependentUpon>Settings.settings</DependentUpon>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
     <None Include="app.config" />
+    <None Include="Properties\app.manifest" />
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
@@ -79,6 +104,12 @@
       <Install>true</Install>
     </BootstrapperPackage>
   </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
-- 
GitLab