diff --git a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
index ba72a4d3c1055e0a1cc68a25c87484c35e7bd528..e59e2bf1300736fc385da6cf5f74224714563096 100644
--- a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
+++ b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
@@ -152,7 +152,7 @@
     </Reference>
     <Reference Include="Microsoft.DirectX.DirectInput, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
       <SpecificVersion>False</SpecificVersion>
-      <Private>True</Private>
+      <Private>False</Private>
     </Reference>
     <Reference Include="Microsoft.Dynamic">
     </Reference>
@@ -238,6 +238,12 @@
     <Compile Include="Controls\BackstageView\BackStageViewMenuPanel.cs">
       <SubType>Component</SubType>
     </Compile>
+    <Compile Include="Controls\ConnectionControl.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Controls\ConnectionControl.Designer.cs">
+      <DependentUpon>ConnectionControl.cs</DependentUpon>
+    </Compile>
     <Compile Include="Controls\ConfigPanel.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -254,6 +260,9 @@
     <Compile Include="Controls\ProgressReporterDialogue.designer.cs">
       <DependentUpon>ProgressReporterDialogue.cs</DependentUpon>
     </Compile>
+    <Compile Include="Controls\ToolStripConnectionControl.cs">
+      <SubType>Component</SubType>
+    </Compile>
     <Compile Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationQuad.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -558,6 +567,9 @@
     <EmbeddedResource Include="Controls\BackstageView\BackstageView.resx">
       <DependentUpon>BackstageView.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="Controls\ConnectionControl.resx">
+      <DependentUpon>ConnectionControl.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="Controls\ConfigPanel.resx">
       <DependentUpon>ConfigPanel.cs</DependentUpon>
     </EmbeddedResource>
diff --git a/Tools/ArdupilotMegaPlanner/Common.cs b/Tools/ArdupilotMegaPlanner/Common.cs
index 3f441511a04b2b21d8fdbd98ebe672707c975c01..d8c51aa67e50b56b51800bc59faa93ff623432e4 100644
--- a/Tools/ArdupilotMegaPlanner/Common.cs
+++ b/Tools/ArdupilotMegaPlanner/Common.cs
@@ -104,8 +104,9 @@ namespace ArdupilotMega
         float cog = -1;
         float target = -1;
         float nav_bearing = -1;
+        public GMapControl MainMap;
 
-        public GMapMarkerPlane(PointLatLng p, float heading, float cog, float nav_bearing,float target)
+        public GMapMarkerPlane(PointLatLng p, float heading, float cog, float nav_bearing,float target, GMapControl map)
             : base(p)
         {
             this.heading = heading;
@@ -113,6 +114,7 @@ namespace ArdupilotMega
             this.target = target;
             this.nav_bearing = nav_bearing;
             Size = SizeSt;
+            MainMap = map;
         }
 
         public override void OnRender(Graphics g)
@@ -136,7 +138,11 @@ namespace ArdupilotMega
 
                 float desired_lead_dist = 100;
 
-                float alpha = (desired_lead_dist / MainV2.cs.radius) * rad2deg;
+
+                double width = (MainMap.Manager.GetDistance(MainMap.FromLocalToLatLng(0, 0), MainMap.FromLocalToLatLng(MainMap.Width, 0)) * 1000.0);
+                double m2pixelwidth = MainMap.Width / width;
+
+                float alpha = ((desired_lead_dist * (float)m2pixelwidth) / MainV2.cs.radius) * rad2deg;
 
                 if (MainV2.cs.radius < 0)
                 {
@@ -643,7 +649,7 @@ namespace ArdupilotMega
                 while (dataStream.CanRead && bytes > 0)
                 {
                     Application.DoEvents();
-                    log.Info(saveto + " " + bytes);
+                    log.Debug(saveto + " " + bytes);
                     int len = dataStream.Read(buf1, 0, buf1.Length);
                     bytes -= len;
                     fs.Write(buf1, 0, len);
diff --git a/Tools/ArdupilotMegaPlanner/Controls/ConnectionControl.Designer.cs b/Tools/ArdupilotMegaPlanner/Controls/ConnectionControl.Designer.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0d932cf9c0bd6fd50d7355eb106f986a4113e322
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/Controls/ConnectionControl.Designer.cs
@@ -0,0 +1,88 @@
+namespace ArdupilotMega.Controls
+{
+    partial class ConnectionControl
+    {
+        /// <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.cmb_Baud = new System.Windows.Forms.ComboBox();
+            this.cmb_ConnectionType = new System.Windows.Forms.ComboBox();
+            this.cmb_Connection = new System.Windows.Forms.ComboBox();
+            this.SuspendLayout();
+            // 
+            // cmb_Baud
+            // 
+            this.cmb_Baud.FormattingEnabled = true;
+            this.cmb_Baud.Location = new System.Drawing.Point(130, 12);
+            this.cmb_Baud.Name = "cmb_Baud";
+            this.cmb_Baud.Size = new System.Drawing.Size(70, 21);
+            this.cmb_Baud.TabIndex = 0;
+            this.cmb_Baud.Items.AddRange(new object[] {
+            "4800",
+            "9600",
+            "14400",
+            "19200",
+            "28800",
+            "38400",
+            "57600",
+            "115200"});
+            // 
+            // cmb_ConnectionType
+            // 
+            this.cmb_ConnectionType.FormattingEnabled = true;
+            this.cmb_ConnectionType.Location = new System.Drawing.Point(79, 39);
+            this.cmb_ConnectionType.Name = "cmb_ConnectionType";
+            this.cmb_ConnectionType.Size = new System.Drawing.Size(121, 21);
+            this.cmb_ConnectionType.TabIndex = 1;
+            // 
+            // cmb_Connection
+            // 
+            this.cmb_Connection.FormattingEnabled = true;
+            this.cmb_Connection.Location = new System.Drawing.Point(3, 12);
+            this.cmb_Connection.Name = "cmb_Connection";
+            this.cmb_Connection.Size = new System.Drawing.Size(121, 21);
+            this.cmb_Connection.TabIndex = 2;
+            // 
+            // ConnectionControl
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.cmb_Connection);
+            this.Controls.Add(this.cmb_ConnectionType);
+            this.Controls.Add(this.cmb_Baud);
+            this.Name = "ConnectionControl";
+            this.Size = new System.Drawing.Size(211, 75);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.ComboBox cmb_Baud;
+        private System.Windows.Forms.ComboBox cmb_ConnectionType;
+        private System.Windows.Forms.ComboBox cmb_Connection;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/Controls/ConnectionControl.cs b/Tools/ArdupilotMegaPlanner/Controls/ConnectionControl.cs
new file mode 100644
index 0000000000000000000000000000000000000000..404a8de181f0b95f4a1dd5197aed50a34ba2cc8c
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/Controls/ConnectionControl.cs
@@ -0,0 +1,23 @@
+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.Controls
+{
+    public partial class ConnectionControl : UserControl
+    {
+        public ConnectionControl()
+        {
+            InitializeComponent();
+        }
+
+        public ComboBox CMB_baudrate { get { return this.cmb_Baud; } }
+        public ComboBox CMB_serialport { get { return this.cmb_Connection; } }
+        public ComboBox TOOL_APMFirmware { get { return this.cmb_ConnectionType; } }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/Controls/ConnectionControl.resx b/Tools/ArdupilotMegaPlanner/Controls/ConnectionControl.resx
new file mode 100644
index 0000000000000000000000000000000000000000..7080a7d118e8cd7ec668e9bb0d8e90767e0c7a3c
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/Controls/ConnectionControl.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/Controls/ConnectionToolStripItem.resx b/Tools/ArdupilotMegaPlanner/Controls/ConnectionToolStripItem.resx
new file mode 100644
index 0000000000000000000000000000000000000000..7080a7d118e8cd7ec668e9bb0d8e90767e0c7a3c
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/Controls/ConnectionToolStripItem.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/Controls/ToolStripConnectionControl.cs b/Tools/ArdupilotMegaPlanner/Controls/ToolStripConnectionControl.cs
new file mode 100644
index 0000000000000000000000000000000000000000..5eae73b3ad2b2b94ac3a8d58a0b69b05344df491
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/Controls/ToolStripConnectionControl.cs
@@ -0,0 +1,17 @@
+using System.Windows.Forms;
+namespace ArdupilotMega.Controls
+{
+    public class ToolStripConnectionControl : ToolStripControlHost
+    {
+        // Call the base constructor passing in a MonthCalendar instance.     
+        public ToolStripConnectionControl()
+            : base(new ConnectionControl())
+        {
+        }
+
+        public ConnectionControl ConnectionControl
+        {
+            get { return Control as ConnectionControl; }
+        }
+    }
+}
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs b/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs
index 6410f1e3dbe21d8909f8222ffb28605c1436906c..fd5a942cdad3f0740f276a02db65d3f526070177 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/Configuration.cs
@@ -69,7 +69,7 @@ namespace ArdupilotMega.GCSViews
             XTRK_GAIN_SC1.Name = "XTRK_GAIN_SC";
 
             // enable disable relevbant hardware tabs
-            if (MainV2.APMFirmware == MainV2.Firmwares.ArduPlane)
+            if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane)
             {
                 this.ConfigTabs.SuspendLayout();
                 ConfigTabs.SelectedIndex = 0;
@@ -656,7 +656,7 @@ namespace ArdupilotMega.GCSViews
             {
                 StreamWriter sw = new StreamWriter(sfd.OpenFile());
                 string input = DateTime.Now + " Frame : + | Arducopter Kit | Kit motors";
-                if (MainV2.APMFirmware == MainV2.Firmwares.ArduPlane)
+                if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane)
                 {
                     input = DateTime.Now + " Plane: Skywalker";
                 }
@@ -986,7 +986,7 @@ namespace ArdupilotMega.GCSViews
             if (startup)
                 return;
             MainV2.config["distunits"] = CMB_distunits.Text;
-            MainV2.instance.changeunits();
+            MainV2.instance.ChangeUnits();
         }
 
         private void CMB_speedunits_SelectedIndexChanged(object sender, EventArgs e)
@@ -994,7 +994,7 @@ namespace ArdupilotMega.GCSViews
             if (startup)
                 return;
             MainV2.config["speedunits"] = CMB_speedunits.Text;
-            MainV2.instance.changeunits();
+            MainV2.instance.ChangeUnits();
         }
 
 
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.cs
index f09ac19d4cccc72176b6a964d880a04d898fcbd2..3e35ec89ce9d060608c6653ef628e6fc72182ff6 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigPlanner.cs
@@ -237,8 +237,9 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
             ((MyButton)sender).Enabled = true;
             startup = true;
 
-            // AR todo: fix this up
-            //Configuration_Load(null, null);
+            
+
+            startup = false;
         }
 
         private void CHK_speechbattery_CheckedChanged(object sender, EventArgs e)
@@ -276,7 +277,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
             if (startup)
                 return;
             MainV2.config["distunits"] = CMB_distunits.Text;
-            MainV2.instance.changeunits();
+            MainV2.instance.ChangeUnits();
         }
 
         private void CMB_speedunits_SelectedIndexChanged(object sender, EventArgs e)
@@ -284,7 +285,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
             if (startup)
                 return;
             MainV2.config["speedunits"] = CMB_speedunits.Text;
-            MainV2.instance.changeunits();
+            MainV2.instance.ChangeUnits();
         }
 
         private void CMB_rateattitude_SelectedIndexChanged(object sender, EventArgs e)
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs
index 4d9cf61ece2b4aafff0f998dfab362d85ce139e1..a131ea1b176dc97d0eb90c8033416532b542b548 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigRawParams.cs
@@ -162,7 +162,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
             {
                 StreamWriter sw = new StreamWriter(sfd.OpenFile());
                 string input = DateTime.Now + " Frame : + | Arducopter Kit | Kit motors";
-                if (MainV2.APMFirmware == MainV2.Firmwares.ArduPlane)
+                if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane)
                 {
                     input = DateTime.Now + " Plane: Skywalker";
                 }
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs
index ca8b57a6bf69f64d036471819cf1edc43537b705..211699c119821a2f9f4c7b13feffdf1f7c09ed5b 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs
@@ -31,21 +31,21 @@
             this.components = new System.ComponentModel.Container();
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigTradHeli));
             this.groupBox5 = new System.Windows.Forms.GroupBox();
-            this.H1_ENABLE = new System.Windows.Forms.RadioButton();
+            this.H_SWASH_TYPE = 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.H_GYR_ENABLE = new System.Windows.Forms.CheckBox();
+            this.H_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.H_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.H_COL_MID = new System.Windows.Forms.TextBox();
+            this.H_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();
@@ -60,17 +60,17 @@
             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.H_PIT_MAX = new System.Windows.Forms.TextBox();
             this.label25 = new System.Windows.Forms.Label();
-            this.ROL_MAX = new System.Windows.Forms.TextBox();
+            this.H_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.H_SV3_POS = new System.Windows.Forms.TextBox();
+            this.H_SV2_POS = new System.Windows.Forms.TextBox();
+            this.H_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();
@@ -97,19 +97,19 @@
             // 
             // groupBox5
             // 
-            this.groupBox5.Controls.Add(this.H1_ENABLE);
+            this.groupBox5.Controls.Add(this.H_SWASH_TYPE);
             this.groupBox5.Controls.Add(this.CCPM);
             resources.ApplyResources(this.groupBox5, "groupBox5");
             this.groupBox5.Name = "groupBox5";
             this.groupBox5.TabStop = false;
             // 
-            // H1_ENABLE
+            // H_SWASH_TYPE
             // 
-            resources.ApplyResources(this.H1_ENABLE, "H1_ENABLE");
-            this.H1_ENABLE.Name = "H1_ENABLE";
-            this.H1_ENABLE.TabStop = true;
-            this.H1_ENABLE.UseVisualStyleBackColor = true;
-            this.H1_ENABLE.CheckedChanged += new System.EventHandler(this.H1_ENABLE_CheckedChanged);
+            resources.ApplyResources(this.H_SWASH_TYPE, "H_SWASH_TYPE");
+            this.H_SWASH_TYPE.Name = "H_SWASH_TYPE";
+            this.H_SWASH_TYPE.TabStop = true;
+            this.H_SWASH_TYPE.UseVisualStyleBackColor = true;
+            this.H_SWASH_TYPE.CheckedChanged += new System.EventHandler(this.H_SWASH_TYPE_CheckedChanged);
             // 
             // CCPM
             // 
@@ -134,8 +134,8 @@
             // 
             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.Controls.Add(this.H_GYR_ENABLE);
+            this.groupBox3.Controls.Add(this.H_GYR_GAIN);
             resources.ApplyResources(this.groupBox3, "groupBox3");
             this.groupBox3.Name = "groupBox3";
             this.groupBox3.TabStop = false;
@@ -150,18 +150,18 @@
             resources.ApplyResources(this.label45, "label45");
             this.label45.Name = "label45";
             // 
-            // GYR_ENABLE
+            // H_GYR_ENABLE
             // 
-            resources.ApplyResources(this.GYR_ENABLE, "GYR_ENABLE");
-            this.GYR_ENABLE.Name = "GYR_ENABLE";
-            this.GYR_ENABLE.UseVisualStyleBackColor = true;
-            this.GYR_ENABLE.CheckedChanged += new System.EventHandler(this.GYR_ENABLE__CheckedChanged);
+            resources.ApplyResources(this.H_GYR_ENABLE, "H_GYR_ENABLE");
+            this.H_GYR_ENABLE.Name = "H_GYR_ENABLE";
+            this.H_GYR_ENABLE.UseVisualStyleBackColor = true;
+            this.H_GYR_ENABLE.CheckedChanged += new System.EventHandler(this.GYR_ENABLE__CheckedChanged);
             // 
-            // GYR_GAIN
+            // H_GYR_GAIN
             // 
-            resources.ApplyResources(this.GYR_GAIN, "GYR_GAIN");
-            this.GYR_GAIN.Name = "GYR_GAIN";
-            this.GYR_GAIN.Validating += new System.ComponentModel.CancelEventHandler(this.GYR_GAIN__Validating);
+            resources.ApplyResources(this.H_GYR_GAIN, "H_GYR_GAIN");
+            this.H_GYR_GAIN.Name = "H_GYR_GAIN";
+            this.H_GYR_GAIN.Validating += new System.ComponentModel.CancelEventHandler(this.GYR_GAIN__Validating);
             // 
             // BUT_HS4save
             // 
@@ -175,36 +175,36 @@
             resources.ApplyResources(this.label21, "label21");
             this.label21.Name = "label21";
             // 
-            // COL_MIN
+            // H_COL_MIN
             // 
-            resources.ApplyResources(this.COL_MIN, "COL_MIN");
-            this.COL_MIN.Name = "COL_MIN";
+            resources.ApplyResources(this.H_COL_MIN, "H_COL_MIN");
+            this.H_COL_MIN.Name = "H_COL_MIN";
             // 
             // 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.H_COL_MIN);
+            this.groupBox1.Controls.Add(this.H_COL_MID);
+            this.groupBox1.Controls.Add(this.H_COL_MAX);
             this.groupBox1.Controls.Add(this.BUT_0collective);
             resources.ApplyResources(this.groupBox1, "groupBox1");
             this.groupBox1.Name = "groupBox1";
             this.groupBox1.TabStop = false;
             // 
-            // COL_MID
+            // H_COL_MID
             // 
-            resources.ApplyResources(this.COL_MID, "COL_MID");
-            this.COL_MID.Name = "COL_MID";
-            this.COL_MID.Validating += new System.ComponentModel.CancelEventHandler(this.PWM_Validating);
+            resources.ApplyResources(this.H_COL_MID, "H_COL_MID");
+            this.H_COL_MID.Name = "H_COL_MID";
+            this.H_COL_MID.Validating += new System.ComponentModel.CancelEventHandler(this.PWM_Validating);
             // 
-            // COL_MAX
+            // H_COL_MAX
             // 
-            resources.ApplyResources(this.COL_MAX, "COL_MAX");
-            this.COL_MAX.Name = "COL_MAX";
-            this.COL_MAX.Enter += new System.EventHandler(this.COL_MAX__Enter);
-            this.COL_MAX.Leave += new System.EventHandler(this.COL_MAX__Leave);
-            this.COL_MAX.Validating += new System.ComponentModel.CancelEventHandler(this.PWM_Validating);
+            resources.ApplyResources(this.H_COL_MAX, "H_COL_MAX");
+            this.H_COL_MAX.Name = "H_COL_MAX";
+            this.H_COL_MAX.Enter += new System.EventHandler(this.COL_MAX__Enter);
+            this.H_COL_MAX.Leave += new System.EventHandler(this.COL_MAX__Leave);
+            this.H_COL_MAX.Validating += new System.ComponentModel.CancelEventHandler(this.PWM_Validating);
             // 
             // BUT_0collective
             // 
@@ -334,22 +334,22 @@
             resources.ApplyResources(this.label26, "label26");
             this.label26.Name = "label26";
             // 
-            // PIT_MAX
+            // H_PIT_MAX
             // 
-            resources.ApplyResources(this.PIT_MAX, "PIT_MAX");
-            this.PIT_MAX.Name = "PIT_MAX";
-            this.PIT_MAX.Validating += new System.ComponentModel.CancelEventHandler(this.PIT_MAX__Validating);
+            resources.ApplyResources(this.H_PIT_MAX, "H_PIT_MAX");
+            this.H_PIT_MAX.Name = "H_PIT_MAX";
+            this.H_PIT_MAX.Validating += new System.ComponentModel.CancelEventHandler(this.PIT_MAX__Validating);
             // 
             // label25
             // 
             resources.ApplyResources(this.label25, "label25");
             this.label25.Name = "label25";
             // 
-            // ROL_MAX
+            // H_ROL_MAX
             // 
-            resources.ApplyResources(this.ROL_MAX, "ROL_MAX");
-            this.ROL_MAX.Name = "ROL_MAX";
-            this.ROL_MAX.Validating += new System.ComponentModel.CancelEventHandler(this.ROL_MAX__Validating);
+            resources.ApplyResources(this.H_ROL_MAX, "H_ROL_MAX");
+            this.H_ROL_MAX.Name = "H_ROL_MAX";
+            this.H_ROL_MAX.Validating += new System.ComponentModel.CancelEventHandler(this.ROL_MAX__Validating);
             // 
             // label23
             // 
@@ -376,23 +376,23 @@
             resources.ApplyResources(this.label18, "label18");
             this.label18.Name = "label18";
             // 
-            // SV3_POS
+            // H_SV3_POS
             // 
-            resources.ApplyResources(this.SV3_POS, "SV3_POS");
-            this.SV3_POS.Name = "SV3_POS";
-            this.SV3_POS.Validating += new System.ComponentModel.CancelEventHandler(this.TXT_srvpos3_Validating);
+            resources.ApplyResources(this.H_SV3_POS, "H_SV3_POS");
+            this.H_SV3_POS.Name = "H_SV3_POS";
+            this.H_SV3_POS.Validating += new System.ComponentModel.CancelEventHandler(this.TXT_srvpos3_Validating);
             // 
-            // SV2_POS
+            // H_SV2_POS
             // 
-            resources.ApplyResources(this.SV2_POS, "SV2_POS");
-            this.SV2_POS.Name = "SV2_POS";
-            this.SV2_POS.Validating += new System.ComponentModel.CancelEventHandler(this.TXT_srvpos2_Validating);
+            resources.ApplyResources(this.H_SV2_POS, "H_SV2_POS");
+            this.H_SV2_POS.Name = "H_SV2_POS";
+            this.H_SV2_POS.Validating += new System.ComponentModel.CancelEventHandler(this.TXT_srvpos2_Validating);
             // 
-            // SV1_POS
+            // H_SV1_POS
             // 
-            resources.ApplyResources(this.SV1_POS, "SV1_POS");
-            this.SV1_POS.Name = "SV1_POS";
-            this.SV1_POS.Validating += new System.ComponentModel.CancelEventHandler(this.TXT_srvpos1_Validating);
+            resources.ApplyResources(this.H_SV1_POS, "H_SV1_POS");
+            this.H_SV1_POS.Name = "H_SV1_POS";
+            this.H_SV1_POS.Validating += new System.ComponentModel.CancelEventHandler(this.TXT_srvpos1_Validating);
             // 
             // HS3_REV
             // 
@@ -665,17 +665,17 @@
             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.H_PIT_MAX);
             this.Controls.Add(this.label25);
-            this.Controls.Add(this.ROL_MAX);
+            this.Controls.Add(this.H_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.H_SV3_POS);
+            this.Controls.Add(this.H_SV2_POS);
+            this.Controls.Add(this.H_SV1_POS);
             this.Controls.Add(this.HS3_REV);
             this.Controls.Add(this.HS2_REV);
             this.Controls.Add(this.HS1_REV);
@@ -707,21 +707,21 @@
         #endregion
 
         private System.Windows.Forms.GroupBox groupBox5;
-        private System.Windows.Forms.RadioButton H1_ENABLE;
+        private System.Windows.Forms.RadioButton H_SWASH_TYPE;
         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 System.Windows.Forms.CheckBox H_GYR_ENABLE;
+        private System.Windows.Forms.TextBox H_GYR_GAIN;
         private MyButton BUT_HS4save;
         private System.Windows.Forms.Label label21;
-        private System.Windows.Forms.TextBox COL_MIN;
+        private System.Windows.Forms.TextBox H_COL_MIN;
         private System.Windows.Forms.GroupBox groupBox1;
-        private System.Windows.Forms.TextBox COL_MID;
-        private System.Windows.Forms.TextBox COL_MAX;
+        private System.Windows.Forms.TextBox H_COL_MID;
+        private System.Windows.Forms.TextBox H_COL_MAX;
         private MyButton BUT_0collective;
         private System.Windows.Forms.GroupBox groupBox2;
         private System.Windows.Forms.Label label24;
@@ -736,17 +736,17 @@
         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.TextBox H_PIT_MAX;
         private System.Windows.Forms.Label label25;
-        private System.Windows.Forms.TextBox ROL_MAX;
+        private System.Windows.Forms.TextBox H_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.TextBox H_SV3_POS;
+        private System.Windows.Forms.TextBox H_SV2_POS;
+        private System.Windows.Forms.TextBox H_SV1_POS;
         private System.Windows.Forms.CheckBox HS3_REV;
         private System.Windows.Forms.CheckBox HS2_REV;
         private System.Windows.Forms.CheckBox HS1_REV;
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs
index c6c29abea255cfe20bc708eee6223f619ddc17f1..c4d3effe1d9b238b79f19754dbda457af4d2369f 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs
@@ -22,65 +22,65 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
             InitializeComponent();
         }
 
-        private void H1_ENABLE_CheckedChanged(object sender, EventArgs e)
+        private void H_SWASH_TYPE_CheckedChanged(object sender, EventArgs e)
         {
             if (startup)
                 return;
             try
             {
-                if (MainV2.comPort.param["H1_ENABLE"] == null)
+                if (MainV2.comPort.param["H_SWASH_TYPE"] == null)
                 {
                     CustomMessageBox.Show("Not Available on " + MainV2.cs.firmware.ToString());
                 }
                 else
                 {
-                    MainV2.comPort.setParam("H1_ENABLE", ((RadioButton)sender).Checked == true ? 1 : 0);
+                    MainV2.comPort.setParam("H_SWASH_TYPE", ((RadioButton)sender).Checked == true ? 1 : 0);
                 }
             }
-            catch { CustomMessageBox.Show("Set H1_ENABLE Failed"); }
+            catch { CustomMessageBox.Show("Set H_SWASH_TYPE Failed"); }
         }
 
         private void BUT_swash_manual_Click(object sender, EventArgs e)
         {
             try
             {
-                if (MainV2.comPort.param["HSV_MAN"].ToString() == "1")
+                if (MainV2.comPort.param["H_SV_MAN"].ToString() == "1")
                 {
-                    MainV2.comPort.setParam("COL_MIN", int.Parse(COL_MIN.Text));
-                    MainV2.comPort.setParam("COL_MAX", int.Parse(COL_MAX.Text));
-                    MainV2.comPort.setParam("HSV_MAN", 0); // randy request - last
+                    MainV2.comPort.setParam("H_COL_MIN", int.Parse(H_COL_MIN.Text));
+                    MainV2.comPort.setParam("H_COL_MAX", int.Parse(H_COL_MAX.Text));
+                    MainV2.comPort.setParam("H_SV_MAN", 0); // randy request - last
                     BUT_swash_manual.Text = "Manual";
 
-                    COL_MAX.Enabled = false;
-                    COL_MID.Enabled = false;
-                    COL_MIN.Enabled = false;
+                    H_COL_MAX.Enabled = false;
+                    H_COL_MID.Enabled = false;
+                    H_COL_MIN.Enabled = false;
                     BUT_0collective.Enabled = false;
                 }
                 else
                 {
-                    COL_MAX.Text = "1500";
-                    COL_MIN.Text = "1500";
-                    MainV2.comPort.setParam("HSV_MAN", 1); // randy request
+                    H_COL_MAX.Text = "1500";
+                    H_COL_MIN.Text = "1500";
+                    MainV2.comPort.setParam("H_SV_MAN", 1); // randy request
                     BUT_swash_manual.Text = "Save";
 
-                    COL_MAX.Enabled = true;
-                    COL_MID.Enabled = true;
-                    COL_MIN.Enabled = true;
+                    H_COL_MAX.Enabled = true;
+                    H_COL_MID.Enabled = true;
+                    H_COL_MIN.Enabled = true;
                     BUT_0collective.Enabled = true;
                 }
             }
-            catch { CustomMessageBox.Show("Failed to set HSV_MAN"); }
+            catch { CustomMessageBox.Show("Failed to set H_SV_MAN"); }
         }
 
         private void BUT_HS4save_Click(object sender, EventArgs e)
         {
             try
             {
-                if (MainV2.comPort.param["HSV_MAN"].ToString() == "1")
+                if (MainV2.comPort.param["H_SV_MAN"].ToString() == "1")
                 {
                     MainV2.comPort.setParam("HS4_MIN", int.Parse(HS4_MIN.Text));
                     MainV2.comPort.setParam("HS4_MAX", int.Parse(HS4_MAX.Text));
-                    MainV2.comPort.setParam("HSV_MAN", 0); // randy request - last
+                    MainV2.comPort.setParam("H_SV_MAN", 0); // randy request - last
                     BUT_HS4save.Text = "Manual";
 
                     HS4_MAX.Enabled = false;
@@ -90,7 +90,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
                 {
                     HS4_MIN.Text = "1500";
                     HS4_MAX.Text = "1500";
-                    MainV2.comPort.setParam("HSV_MAN", 1); // randy request
+                    MainV2.comPort.setParam("H_SV_MAN", 1); // randy request
                     BUT_HS4save.Text = "Save";
 
 
@@ -98,7 +98,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
                     HS4_MIN.Enabled = true;
                 }
             }
-            catch { CustomMessageBox.Show("Failed to set HSV_MAN"); }
+            catch { CustomMessageBox.Show("Failed to set H_SV_MAN"); }
         }
 
         private void tabHeli_Click(object sender, EventArgs e)
@@ -122,10 +122,10 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
         {
             try
             {
-                if (int.Parse(COL_MIN.Text) > HS3.minline)
-                    COL_MIN.Text = HS3.minline.ToString();
-                if (int.Parse(COL_MAX.Text) < HS3.maxline)
-                    COL_MAX.Text = HS3.maxline.ToString();
+                if (int.Parse(H_COL_MIN.Text) > HS3.minline)
+                    H_COL_MIN.Text = HS3.minline.ToString();
+                if (int.Parse(H_COL_MAX.Text) < HS3.maxline)
+                    H_COL_MAX.Text = HS3.maxline.ToString();
             }
             catch { }
         }
@@ -194,10 +194,10 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
 
             try
             {
-                MainV2.comPort.setParam("HSV_MAN", 1); // randy request
+                MainV2.comPort.setParam("H_SV_MAN", 1); // randy request
                 MainV2.comPort.setParam(((TextBox)sender).Name, test);
                 System.Threading.Thread.Sleep(100);
-                MainV2.comPort.setParam("HSV_MAN", 0); // randy request - last
+                MainV2.comPort.setParam("H_SV_MAN", 0); // randy request - last
 
             }
             catch { CustomMessageBox.Show("Set " + ((TextBox)sender).Name + " failed"); }
@@ -217,10 +217,10 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
 
             try
             {
-                MainV2.comPort.setParam("HSV_MAN", 1); // randy request
+                MainV2.comPort.setParam("H_SV_MAN", 1); // randy request
                 MainV2.comPort.setParam(((TextBox)sender).Name, test);
                 System.Threading.Thread.Sleep(100);
-                MainV2.comPort.setParam("HSV_MAN", 0); // randy request - last
+                MainV2.comPort.setParam("H_SV_MAN", 0); // randy request - last
             }
             catch { CustomMessageBox.Show("Set " + ((TextBox)sender).Name + " failed"); }
         }
@@ -239,10 +239,10 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
 
             try
             {
-                MainV2.comPort.setParam("HSV_MAN", 1); // randy request
+                MainV2.comPort.setParam("H_SV_MAN", 1); // randy request
                 MainV2.comPort.setParam(((TextBox)sender).Name, test);
                 System.Threading.Thread.Sleep(100);
-                MainV2.comPort.setParam("HSV_MAN", 0); // randy request - last
+                MainV2.comPort.setParam("H_SV_MAN", 0); // randy request - last
             }
             catch { CustomMessageBox.Show("Set " + ((TextBox)sender).Name + " failed"); }
         }
@@ -254,11 +254,11 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
             try
             {
 
-                MainV2.comPort.setParam("COL_MID", MainV2.cs.ch3in);
+                MainV2.comPort.setParam("H_COL_MID", MainV2.cs.ch3in);
 
-                COL_MID.Text = MainV2.comPort.param["COL_MID"].ToString();
+                H_COL_MID.Text = MainV2.comPort.param["H_COL_MID"].ToString();
             }
-            catch { CustomMessageBox.Show("Set COL_MID_ failed"); }
+            catch { CustomMessageBox.Show("Set H_COL_MID failed"); }
         }
 
         private void HS1_REV_CheckedChanged(object sender, EventArgs e)
@@ -379,7 +379,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
                 this.Enabled = true;
             }
 
-            if (MainV2.comPort.param["GYR_ENABLE"] == null)
+            if (MainV2.comPort.param["H_GYR_ENABLE"] == null)
             {
                 this.Enabled = false;
                 return;
@@ -394,10 +394,10 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
             startup = true;
             try
             {
-                if (MainV2.comPort.param.ContainsKey("H1_ENABLE"))
+                if (MainV2.comPort.param.ContainsKey("H_SWASH_TYPE"))
                 {
-                    CCPM.Checked = MainV2.comPort.param["H1_ENABLE"].ToString() == "0" ? true : false;
-                    H1_ENABLE.Checked = !CCPM.Checked;
+                    CCPM.Checked = MainV2.comPort.param["H_SWASH_TYPE"].ToString() == "0" ? true : false;
+                    H_SWASH_TYPE.Checked = !CCPM.Checked;
                 }
 
                 foreach (string value in MainV2.comPort.param.Keys)
@@ -453,7 +453,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
             }
             catch { }
 
-            if (MainV2.comPort.param["HSV_MAN"] == null || MainV2.comPort.param["HSV_MAN"].ToString() == "0")
+            if (MainV2.comPort.param["H_SV_MAN"] == null || MainV2.comPort.param["H_SV_MAN"].ToString() == "0")
                 return;
 
             if (HS3.minline == 0)
@@ -477,8 +477,8 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
             {
                 try
                 {
-                    HS3.minline = int.Parse(COL_MIN.Text);
-                    HS3.maxline = int.Parse(COL_MAX.Text);
+                    HS3.minline = int.Parse(H_COL_MIN.Text);
+                    HS3.maxline = int.Parse(H_COL_MAX.Text);
                     HS4.maxline = int.Parse(HS4_MIN.Text);
                     HS4.minline = int.Parse(HS4_MAX.Text);
                 }
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx
index 99fe5c163ddf71d8c4a3cc3f0fd1b7afd70e952c..133ab792d2369e92796645e02238adf9f45c00ad 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx
@@ -117,42 +117,36 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="H1_ENABLE.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="H1_ENABLE.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="H1_ENABLE.Location" type="System.Drawing.Point, System.Drawing">
-    <value>67, 19</value>
+  <data name="H_SWASH_TYPE.Location" type="System.Drawing.Point, System.Drawing">
+    <value>67, 15</value>
   </data>
-  <data name="H1_ENABLE.Size" type="System.Drawing.Size, System.Drawing">
-    <value>39, 17</value>
+  <data name="H_SWASH_TYPE.Size" type="System.Drawing.Size, System.Drawing">
+    <value>42, 24</value>
   </data>
-  <data name="H1_ENABLE.TabIndex" type="System.Int32, mscorlib">
-    <value>137</value>
+  <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="H_SWASH_TYPE.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
   </data>
-  <data name="H1_ENABLE.Text" xml:space="preserve">
+  <data name="H_SWASH_TYPE.Text" xml:space="preserve">
     <value>H1</value>
   </data>
-  <data name="&gt;&gt;H1_ENABLE.Name" xml:space="preserve">
-    <value>H1_ENABLE</value>
+  <data name="&gt;&gt;H_SWASH_TYPE.Name" xml:space="preserve">
+    <value>H_SWASH_TYPE</value>
   </data>
-  <data name="&gt;&gt;H1_ENABLE.Type" xml:space="preserve">
+  <data name="&gt;&gt;H_SWASH_TYPE.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">
+  <data name="&gt;&gt;H_SWASH_TYPE.Parent" xml:space="preserve">
     <value>groupBox5</value>
   </data>
-  <data name="&gt;&gt;H1_ENABLE.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;H_SWASH_TYPE.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
   <data name="CCPM.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="CCPM.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
   </data>
@@ -223,7 +217,7 @@
     <value>BUT_swash_manual</value>
   </data>
   <data name="&gt;&gt;BUT_swash_manual.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.24488, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;BUT_swash_manual.Parent" xml:space="preserve">
     <value>$this</value>
@@ -321,55 +315,55 @@
   <data name="&gt;&gt;label45.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
-  <data name="GYR_ENABLE.AutoSize" type="System.Boolean, mscorlib">
+  <data name="H_GYR_ENABLE.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
-  <data name="GYR_ENABLE.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+  <data name="H_GYR_ENABLE.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
   </data>
-  <data name="GYR_ENABLE.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="H_GYR_ENABLE.Location" type="System.Drawing.Point, System.Drawing">
     <value>57, 19</value>
   </data>
-  <data name="GYR_ENABLE.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="H_GYR_ENABLE.Size" type="System.Drawing.Size, System.Drawing">
     <value>15, 14</value>
   </data>
-  <data name="GYR_ENABLE.TabIndex" type="System.Int32, mscorlib">
+  <data name="H_GYR_ENABLE.TabIndex" type="System.Int32, mscorlib">
     <value>118</value>
   </data>
-  <data name="&gt;&gt;GYR_ENABLE.Name" xml:space="preserve">
-    <value>GYR_ENABLE</value>
+  <data name="&gt;&gt;H_GYR_ENABLE.Name" xml:space="preserve">
+    <value>H_GYR_ENABLE</value>
   </data>
-  <data name="&gt;&gt;GYR_ENABLE.Type" xml:space="preserve">
+  <data name="&gt;&gt;H_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">
+  <data name="&gt;&gt;H_GYR_ENABLE.Parent" xml:space="preserve">
     <value>groupBox3</value>
   </data>
-  <data name="&gt;&gt;GYR_ENABLE.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;H_GYR_ENABLE.ZOrder" xml:space="preserve">
     <value>2</value>
   </data>
-  <data name="GYR_GAIN.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="H_GYR_GAIN.Location" type="System.Drawing.Point, System.Drawing">
     <value>41, 35</value>
   </data>
-  <data name="GYR_GAIN.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="H_GYR_GAIN.Size" type="System.Drawing.Size, System.Drawing">
     <value>47, 20</value>
   </data>
-  <data name="GYR_GAIN.TabIndex" type="System.Int32, mscorlib">
+  <data name="H_GYR_GAIN.TabIndex" type="System.Int32, mscorlib">
     <value>119</value>
   </data>
-  <data name="GYR_GAIN.Text" xml:space="preserve">
+  <data name="H_GYR_GAIN.Text" xml:space="preserve">
     <value>1000</value>
   </data>
-  <data name="&gt;&gt;GYR_GAIN.Name" xml:space="preserve">
-    <value>GYR_GAIN</value>
+  <data name="&gt;&gt;H_GYR_GAIN.Name" xml:space="preserve">
+    <value>H_GYR_GAIN</value>
   </data>
-  <data name="&gt;&gt;GYR_GAIN.Type" xml:space="preserve">
+  <data name="&gt;&gt;H_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">
+  <data name="&gt;&gt;H_GYR_GAIN.Parent" xml:space="preserve">
     <value>groupBox3</value>
   </data>
-  <data name="&gt;&gt;GYR_GAIN.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;H_GYR_GAIN.ZOrder" xml:space="preserve">
     <value>3</value>
   </data>
   <data name="groupBox3.Location" type="System.Drawing.Point, System.Drawing">
@@ -415,7 +409,7 @@
     <value>BUT_HS4save</value>
   </data>
   <data name="&gt;&gt;BUT_HS4save.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.24488, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;BUT_HS4save.Parent" xml:space="preserve">
     <value>$this</value>
@@ -453,85 +447,85 @@
   <data name="&gt;&gt;label21.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
-  <data name="COL_MIN.Enabled" type="System.Boolean, mscorlib">
+  <data name="H_COL_MIN.Enabled" type="System.Boolean, mscorlib">
     <value>False</value>
   </data>
-  <data name="COL_MIN.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="H_COL_MIN.Location" type="System.Drawing.Point, System.Drawing">
     <value>18, 173</value>
   </data>
-  <data name="COL_MIN.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="H_COL_MIN.Size" type="System.Drawing.Size, System.Drawing">
     <value>43, 20</value>
   </data>
-  <data name="COL_MIN.TabIndex" type="System.Int32, mscorlib">
+  <data name="H_COL_MIN.TabIndex" type="System.Int32, mscorlib">
     <value>119</value>
   </data>
-  <data name="COL_MIN.Text" xml:space="preserve">
+  <data name="H_COL_MIN.Text" xml:space="preserve">
     <value>1500</value>
   </data>
-  <data name="&gt;&gt;COL_MIN.Name" xml:space="preserve">
-    <value>COL_MIN</value>
+  <data name="&gt;&gt;H_COL_MIN.Name" xml:space="preserve">
+    <value>H_COL_MIN</value>
   </data>
-  <data name="&gt;&gt;COL_MIN.Type" xml:space="preserve">
+  <data name="&gt;&gt;H_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">
+  <data name="&gt;&gt;H_COL_MIN.Parent" xml:space="preserve">
     <value>groupBox1</value>
   </data>
-  <data name="&gt;&gt;COL_MIN.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;H_COL_MIN.ZOrder" xml:space="preserve">
     <value>2</value>
   </data>
-  <data name="COL_MID.Enabled" type="System.Boolean, mscorlib">
+  <data name="H_COL_MID.Enabled" type="System.Boolean, mscorlib">
     <value>False</value>
   </data>
-  <data name="COL_MID.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="H_COL_MID.Location" type="System.Drawing.Point, System.Drawing">
     <value>17, 117</value>
   </data>
-  <data name="COL_MID.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="H_COL_MID.Size" type="System.Drawing.Size, System.Drawing">
     <value>44, 20</value>
   </data>
-  <data name="COL_MID.TabIndex" type="System.Int32, mscorlib">
+  <data name="H_COL_MID.TabIndex" type="System.Int32, mscorlib">
     <value>117</value>
   </data>
-  <data name="COL_MID.Text" xml:space="preserve">
+  <data name="H_COL_MID.Text" xml:space="preserve">
     <value>1500</value>
   </data>
-  <data name="&gt;&gt;COL_MID.Name" xml:space="preserve">
-    <value>COL_MID</value>
+  <data name="&gt;&gt;H_COL_MID.Name" xml:space="preserve">
+    <value>H_COL_MID</value>
   </data>
-  <data name="&gt;&gt;COL_MID.Type" xml:space="preserve">
+  <data name="&gt;&gt;H_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">
+  <data name="&gt;&gt;H_COL_MID.Parent" xml:space="preserve">
     <value>groupBox1</value>
   </data>
-  <data name="&gt;&gt;COL_MID.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;H_COL_MID.ZOrder" xml:space="preserve">
     <value>3</value>
   </data>
-  <data name="COL_MAX.Enabled" type="System.Boolean, mscorlib">
+  <data name="H_COL_MAX.Enabled" type="System.Boolean, mscorlib">
     <value>False</value>
   </data>
-  <data name="COL_MAX.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="H_COL_MAX.Location" type="System.Drawing.Point, System.Drawing">
     <value>18, 45</value>
   </data>
-  <data name="COL_MAX.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="H_COL_MAX.Size" type="System.Drawing.Size, System.Drawing">
     <value>43, 20</value>
   </data>
-  <data name="COL_MAX.TabIndex" type="System.Int32, mscorlib">
+  <data name="H_COL_MAX.TabIndex" type="System.Int32, mscorlib">
     <value>115</value>
   </data>
-  <data name="COL_MAX.Text" xml:space="preserve">
+  <data name="H_COL_MAX.Text" xml:space="preserve">
     <value>1500</value>
   </data>
-  <data name="&gt;&gt;COL_MAX.Name" xml:space="preserve">
-    <value>COL_MAX</value>
+  <data name="&gt;&gt;H_COL_MAX.Name" xml:space="preserve">
+    <value>H_COL_MAX</value>
   </data>
-  <data name="&gt;&gt;COL_MAX.Type" xml:space="preserve">
+  <data name="&gt;&gt;H_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">
+  <data name="&gt;&gt;H_COL_MAX.Parent" xml:space="preserve">
     <value>groupBox1</value>
   </data>
-  <data name="&gt;&gt;COL_MAX.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;H_COL_MAX.ZOrder" xml:space="preserve">
     <value>4</value>
   </data>
   <data name="BUT_0collective.Enabled" type="System.Boolean, mscorlib">
@@ -556,7 +550,7 @@
     <value>BUT_0collective</value>
   </data>
   <data name="&gt;&gt;BUT_0collective.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.24488, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;BUT_0collective.Parent" xml:space="preserve">
     <value>groupBox1</value>
@@ -933,28 +927,28 @@
   <data name="&gt;&gt;label26.ZOrder" xml:space="preserve">
     <value>18</value>
   </data>
-  <data name="PIT_MAX.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="H_PIT_MAX.Location" type="System.Drawing.Point, System.Drawing">
     <value>314, 362</value>
   </data>
-  <data name="PIT_MAX.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="H_PIT_MAX.Size" type="System.Drawing.Size, System.Drawing">
     <value>47, 20</value>
   </data>
-  <data name="PIT_MAX.TabIndex" type="System.Int32, mscorlib">
+  <data name="H_PIT_MAX.TabIndex" type="System.Int32, mscorlib">
     <value>156</value>
   </data>
-  <data name="PIT_MAX.Text" xml:space="preserve">
+  <data name="H_PIT_MAX.Text" xml:space="preserve">
     <value>4500</value>
   </data>
-  <data name="&gt;&gt;PIT_MAX.Name" xml:space="preserve">
-    <value>PIT_MAX</value>
+  <data name="&gt;&gt;H_PIT_MAX.Name" xml:space="preserve">
+    <value>H_PIT_MAX</value>
   </data>
-  <data name="&gt;&gt;PIT_MAX.Type" xml:space="preserve">
+  <data name="&gt;&gt;H_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">
+  <data name="&gt;&gt;H_PIT_MAX.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;PIT_MAX.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;H_PIT_MAX.ZOrder" xml:space="preserve">
     <value>19</value>
   </data>
   <data name="label25.AutoSize" type="System.Boolean, mscorlib">
@@ -987,28 +981,28 @@
   <data name="&gt;&gt;label25.ZOrder" xml:space="preserve">
     <value>20</value>
   </data>
-  <data name="ROL_MAX.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="H_ROL_MAX.Location" type="System.Drawing.Point, System.Drawing">
     <value>314, 336</value>
   </data>
-  <data name="ROL_MAX.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="H_ROL_MAX.Size" type="System.Drawing.Size, System.Drawing">
     <value>47, 20</value>
   </data>
-  <data name="ROL_MAX.TabIndex" type="System.Int32, mscorlib">
+  <data name="H_ROL_MAX.TabIndex" type="System.Int32, mscorlib">
     <value>154</value>
   </data>
-  <data name="ROL_MAX.Text" xml:space="preserve">
+  <data name="H_ROL_MAX.Text" xml:space="preserve">
     <value>4500</value>
   </data>
-  <data name="&gt;&gt;ROL_MAX.Name" xml:space="preserve">
-    <value>ROL_MAX</value>
+  <data name="&gt;&gt;H_ROL_MAX.Name" xml:space="preserve">
+    <value>H_ROL_MAX</value>
   </data>
-  <data name="&gt;&gt;ROL_MAX.Type" xml:space="preserve">
+  <data name="&gt;&gt;H_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">
+  <data name="&gt;&gt;H_ROL_MAX.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;ROL_MAX.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;H_ROL_MAX.ZOrder" xml:space="preserve">
     <value>21</value>
   </data>
   <data name="label23.AutoSize" type="System.Boolean, mscorlib">
@@ -1161,76 +1155,76 @@
   <data name="&gt;&gt;label18.ZOrder" xml:space="preserve">
     <value>26</value>
   </data>
-  <data name="SV3_POS.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="H_SV3_POS.Location" type="System.Drawing.Point, System.Drawing">
     <value>57, 314</value>
   </data>
-  <data name="SV3_POS.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="H_SV3_POS.Size" type="System.Drawing.Size, System.Drawing">
     <value>39, 20</value>
   </data>
-  <data name="SV3_POS.TabIndex" type="System.Int32, mscorlib">
+  <data name="H_SV3_POS.TabIndex" type="System.Int32, mscorlib">
     <value>146</value>
   </data>
-  <data name="SV3_POS.Text" xml:space="preserve">
+  <data name="H_SV3_POS.Text" xml:space="preserve">
     <value>180</value>
   </data>
-  <data name="&gt;&gt;SV3_POS.Name" xml:space="preserve">
-    <value>SV3_POS</value>
+  <data name="&gt;&gt;H_SV3_POS.Name" xml:space="preserve">
+    <value>H_SV3_POS</value>
   </data>
-  <data name="&gt;&gt;SV3_POS.Type" xml:space="preserve">
+  <data name="&gt;&gt;H_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">
+  <data name="&gt;&gt;H_SV3_POS.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;SV3_POS.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;H_SV3_POS.ZOrder" xml:space="preserve">
     <value>27</value>
   </data>
-  <data name="SV2_POS.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="H_SV2_POS.Location" type="System.Drawing.Point, System.Drawing">
     <value>57, 288</value>
   </data>
-  <data name="SV2_POS.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="H_SV2_POS.Size" type="System.Drawing.Size, System.Drawing">
     <value>39, 20</value>
   </data>
-  <data name="SV2_POS.TabIndex" type="System.Int32, mscorlib">
+  <data name="H_SV2_POS.TabIndex" type="System.Int32, mscorlib">
     <value>145</value>
   </data>
-  <data name="SV2_POS.Text" xml:space="preserve">
+  <data name="H_SV2_POS.Text" xml:space="preserve">
     <value>60</value>
   </data>
-  <data name="&gt;&gt;SV2_POS.Name" xml:space="preserve">
-    <value>SV2_POS</value>
+  <data name="&gt;&gt;H_SV2_POS.Name" xml:space="preserve">
+    <value>H_SV2_POS</value>
   </data>
-  <data name="&gt;&gt;SV2_POS.Type" xml:space="preserve">
+  <data name="&gt;&gt;H_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">
+  <data name="&gt;&gt;H_SV2_POS.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;SV2_POS.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;H_SV2_POS.ZOrder" xml:space="preserve">
     <value>28</value>
   </data>
-  <data name="SV1_POS.Location" type="System.Drawing.Point, System.Drawing">
+  <data name="H_SV1_POS.Location" type="System.Drawing.Point, System.Drawing">
     <value>57, 262</value>
   </data>
-  <data name="SV1_POS.Size" type="System.Drawing.Size, System.Drawing">
+  <data name="H_SV1_POS.Size" type="System.Drawing.Size, System.Drawing">
     <value>39, 20</value>
   </data>
-  <data name="SV1_POS.TabIndex" type="System.Int32, mscorlib">
+  <data name="H_SV1_POS.TabIndex" type="System.Int32, mscorlib">
     <value>144</value>
   </data>
-  <data name="SV1_POS.Text" xml:space="preserve">
+  <data name="H_SV1_POS.Text" xml:space="preserve">
     <value>-60</value>
   </data>
-  <data name="&gt;&gt;SV1_POS.Name" xml:space="preserve">
-    <value>SV1_POS</value>
+  <data name="&gt;&gt;H_SV1_POS.Name" xml:space="preserve">
+    <value>H_SV1_POS</value>
   </data>
-  <data name="&gt;&gt;SV1_POS.Type" xml:space="preserve">
+  <data name="&gt;&gt;H_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">
+  <data name="&gt;&gt;H_SV1_POS.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;SV1_POS.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;H_SV1_POS.ZOrder" xml:space="preserve">
     <value>29</value>
   </data>
   <data name="HS3_REV.AutoSize" type="System.Boolean, mscorlib">
@@ -1360,7 +1354,7 @@
     <value>HS4</value>
   </data>
   <data name="&gt;&gt;HS4.Type" xml:space="preserve">
-    <value>ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.1.4494.24488, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;HS4.Parent" xml:space="preserve">
     <value>$this</value>
@@ -1381,7 +1375,7 @@
     <value>HS3</value>
   </data>
   <data name="&gt;&gt;HS3.Type" xml:space="preserve">
-    <value>ArdupilotMega.VerticalProgressBar2, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.VerticalProgressBar2, ArdupilotMegaPlanner, Version=1.1.4494.24488, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;HS3.Parent" xml:space="preserve">
     <value>$this</value>
@@ -1411,7 +1405,7 @@
     <value>Gservoloc</value>
   </data>
   <data name="&gt;&gt;Gservoloc.Type" xml:space="preserve">
-    <value>AGaugeApp.AGauge, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
+    <value>AGaugeApp.AGauge, ArdupilotMegaPlanner, Version=1.1.4494.24488, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;Gservoloc.Parent" xml:space="preserve">
     <value>$this</value>
@@ -1576,6 +1570,6 @@
     <value>ConfigTradHeli</value>
   </data>
   <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>ArdupilotMega.Controls.BackstageView.BackStageViewContentPanel, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.Controls.BackstageView.BackStageViewContentPanel, ArdupilotMegaPlanner, Version=1.1.4494.24488, Culture=neutral, PublicKeyToken=null</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
index 6476469624b5b2a94181748a76331854cd9b7274..79ba73a8cd52e60fd1f4296d5a710f7cb4f421bc 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.Designer.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.Designer.cs
@@ -38,15 +38,15 @@
             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(823, 468);
+            this.backstageView.Size = new System.Drawing.Size(931, 468);
             this.backstageView.TabIndex = 0;
             // 
             // Setup
             // 
-            this.ClientSize = new System.Drawing.Size(823, 468);
+            this.ClientSize = new System.Drawing.Size(931, 468);
             this.Controls.Add(this.backstageView);
             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
-            this.MinimumSize = new System.Drawing.Size(839, 506);
+            this.MinimumSize = new System.Drawing.Size(947, 506);
             this.Name = "Setup";
             this.Text = "Setup";
             this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Setup_FormClosing);
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs b/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs
index 38c680626d89bef60f7f1f5d31f5f39569856615..11e610087c4d6991d9bd0eb0f2d2a10c7d3e3b9f 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/FlightData.cs
@@ -267,7 +267,7 @@ namespace ArdupilotMega.GCSViews
                     continue;
                 }
                 if (!comPort.BaseStream.IsOpen)
-                    lastdata = DateTime.MinValue;
+                    lastdata = DateTime.Now;
                 // re-request servo data
                 if (!(lastdata.AddSeconds(8) > DateTime.Now) && comPort.BaseStream.IsOpen)
                 {
@@ -479,7 +479,7 @@ namespace ArdupilotMega.GCSViews
 
                                 if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane)
                                 {
-                                    routes.Markers.Add(new GMapMarkerPlane(currentloc, MainV2.cs.yaw, MainV2.cs.groundcourse, MainV2.cs.nav_bearing, MainV2.cs.target_bearing));
+                                    routes.Markers.Add(new GMapMarkerPlane(currentloc, MainV2.cs.yaw, MainV2.cs.groundcourse, MainV2.cs.nav_bearing, MainV2.cs.target_bearing, gMapControl1));
                                 }
                                 else
                                 {
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs b/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs
index 4c861632ad84cbe90f550301173f7e31157052c1..f6e873f156ba06fa0f737df35b1ef1c980e8873d 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/FlightPlanner.cs
@@ -550,7 +550,7 @@ namespace ArdupilotMega.GCSViews
             {
                 reader.Read();
                 reader.ReadStartElement("CMD");
-                if (MainV2.APMFirmware == MainV2.Firmwares.ArduPlane)
+                if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane)
                 {
                     reader.ReadToFollowing("APM");
                 }
@@ -3047,7 +3047,7 @@ namespace ArdupilotMega.GCSViews
 
                 if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane)
                 {
-                    routes.Markers.Add(new GMapMarkerPlane(currentloc, MainV2.cs.yaw, MainV2.cs.groundcourse, MainV2.cs.nav_bearing, MainV2.cs.target_bearing) { ToolTipText = MainV2.cs.alt.ToString("0"), ToolTipMode = MarkerTooltipMode.Always });
+                    routes.Markers.Add(new GMapMarkerPlane(currentloc, MainV2.cs.yaw, MainV2.cs.groundcourse, MainV2.cs.nav_bearing, MainV2.cs.target_bearing, MainMap) { ToolTipText = MainV2.cs.alt.ToString("0"), ToolTipMode = MarkerTooltipMode.Always });
                 }
                 else
                 {
diff --git a/Tools/ArdupilotMegaPlanner/LogBrowse.cs b/Tools/ArdupilotMegaPlanner/LogBrowse.cs
index 8d9dfa0b57c1ca315c8c8ff2a7041dc8fcc5742b..d48c9d4fc82ef578805ecbcbcedb01ce3be078e7 100644
--- a/Tools/ArdupilotMegaPlanner/LogBrowse.cs
+++ b/Tools/ArdupilotMegaPlanner/LogBrowse.cs
@@ -157,7 +157,7 @@ namespace ArdupilotMega
                 {
                     reader.Read();
                     reader.ReadStartElement("LOGFORMAT");
-                    if (MainV2.APMFirmware == MainV2.Firmwares.ArduPlane)
+                    if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane)
                     {
                         reader.ReadToFollowing("APM");
                     }
diff --git a/Tools/ArdupilotMegaPlanner/MAVLink.cs b/Tools/ArdupilotMegaPlanner/MAVLink.cs
index 7f50841193e4f359a0e44d7e63430af1a809ba5d..b9fa51deecafffcaeb97154d8c17e7b4dcd8d9be 100644
--- a/Tools/ArdupilotMegaPlanner/MAVLink.cs
+++ b/Tools/ArdupilotMegaPlanner/MAVLink.cs
@@ -1027,8 +1027,9 @@ namespace ArdupilotMega
 
         public void requestDatastream(byte id, byte hzrate)
         {
+            
             double pps = 0;
-
+            /*
             switch (id)
             {
                 case (byte)MAVLink.MAV_DATA_STREAM.ALL:
@@ -1117,8 +1118,9 @@ namespace ArdupilotMega
             {
                 return;
             }
+             */
 
-            log.InfoFormat("Request stream {0} at {1} hz : currently {2}", Enum.Parse(typeof(MAV_DATA_STREAM), id.ToString()), hzrate, pps);
+            log.InfoFormat("Request stream {0} at {1} hz", Enum.Parse(typeof(MAV_DATA_STREAM), id.ToString()), hzrate);
             getDatastream(id, hzrate);
         }
 
diff --git a/Tools/ArdupilotMegaPlanner/MainV2.Designer.cs b/Tools/ArdupilotMegaPlanner/MainV2.Designer.cs
index c4d10ef9de621fd8693a416b8b3da5ec8c8177c0..31a34c309fb2587c9bdff5e266eec9f67cb8968b 100644
--- a/Tools/ArdupilotMegaPlanner/MainV2.Designer.cs
+++ b/Tools/ArdupilotMegaPlanner/MainV2.Designer.cs
@@ -29,23 +29,56 @@
         private void InitializeComponent()
         {
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainV2));
+            this.MyView = new System.Windows.Forms.Panel();
+            this.MainMenu = new System.Windows.Forms.MenuStrip();
             this.MenuFlightData = new System.Windows.Forms.ToolStripButton();
             this.MenuFlightPlanner = new System.Windows.Forms.ToolStripButton();
             this.MenuConfiguration = new System.Windows.Forms.ToolStripButton();
             this.MenuSimulation = new System.Windows.Forms.ToolStripButton();
             this.MenuFirmware = new System.Windows.Forms.ToolStripButton();
-            this.MenuConnect = new System.Windows.Forms.ToolStripButton();
-            this.CMB_serialport = new System.Windows.Forms.ToolStripComboBox();
-            this.MainMenu = new System.Windows.Forms.MenuStrip();
             this.MenuTerminal = new System.Windows.Forms.ToolStripButton();
-            this.CMB_baudrate = new System.Windows.Forms.ToolStripComboBox();
-            this.TOOL_APMFirmware = new System.Windows.Forms.ToolStripComboBox();
             this.MenuHelp = new System.Windows.Forms.ToolStripButton();
-            this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
-            this.MyView = new System.Windows.Forms.Panel();
+            this.MenuConnect = new System.Windows.Forms.ToolStripButton();
+            this.toolStripConnectionControl = new ArdupilotMega.Controls.ToolStripConnectionControl();
             this.MainMenu.SuspendLayout();
             this.SuspendLayout();
             // 
+            // MyView
+            // 
+            this.MyView.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(38)))), ((int)(((byte)(39)))), ((int)(((byte)(40)))));
+            this.MyView.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.MyView.ForeColor = System.Drawing.Color.White;
+            this.MyView.Location = new System.Drawing.Point(0, 76);
+            this.MyView.Margin = new System.Windows.Forms.Padding(0);
+            this.MyView.Name = "MyView";
+            this.MyView.Size = new System.Drawing.Size(1008, 461);
+            this.MyView.TabIndex = 3;
+            // 
+            // MainMenu
+            // 
+            this.MainMenu.BackColor = System.Drawing.SystemColors.Control;
+            this.MainMenu.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("MainMenu.BackgroundImage")));
+            this.MainMenu.GripMargin = new System.Windows.Forms.Padding(0);
+            this.MainMenu.ImageScalingSize = new System.Drawing.Size(76, 76);
+            this.MainMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.MenuFlightData,
+            this.MenuFlightPlanner,
+            this.MenuConfiguration,
+            this.MenuSimulation,
+            this.MenuFirmware,
+            this.MenuTerminal,
+            this.MenuHelp,
+            this.MenuConnect,
+            this.toolStripConnectionControl});
+            this.MainMenu.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow;
+            this.MainMenu.Location = new System.Drawing.Point(0, 0);
+            this.MainMenu.Name = "MainMenu";
+            this.MainMenu.Padding = new System.Windows.Forms.Padding(0);
+            this.MainMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
+            this.MainMenu.Size = new System.Drawing.Size(1008, 76);
+            this.MainMenu.TabIndex = 5;
+            this.MainMenu.Text = "menuStrip1";
+            // 
             // MenuFlightData
             // 
             this.MenuFlightData.AutoSize = false;
@@ -114,57 +147,6 @@
             this.MenuFirmware.ToolTipText = "Firmware";
             this.MenuFirmware.Click += new System.EventHandler(this.MenuFirmware_Click);
             // 
-            // MenuConnect
-            // 
-            this.MenuConnect.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
-            this.MenuConnect.AutoSize = false;
-            this.MenuConnect.BackgroundImage = global::ArdupilotMega.Properties.Resources.connect;
-            this.MenuConnect.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-            this.MenuConnect.ImageTransparentColor = System.Drawing.Color.Magenta;
-            this.MenuConnect.Margin = new System.Windows.Forms.Padding(0);
-            this.MenuConnect.Name = "MenuConnect";
-            this.MenuConnect.Padding = new System.Windows.Forms.Padding(0, 0, 72, 72);
-            this.MenuConnect.Size = new System.Drawing.Size(76, 76);
-            this.MenuConnect.Click += new System.EventHandler(this.MenuConnect_Click);
-            // 
-            // CMB_serialport
-            // 
-            this.CMB_serialport.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
-            this.CMB_serialport.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.CMB_serialport.Name = "CMB_serialport";
-            this.CMB_serialport.Size = new System.Drawing.Size(150, 76);
-            this.CMB_serialport.SelectedIndexChanged += new System.EventHandler(this.CMB_serialport_SelectedIndexChanged);
-            this.CMB_serialport.Enter += new System.EventHandler(this.CMB_serialport_Enter);
-            this.CMB_serialport.Click += new System.EventHandler(this.CMB_serialport_Click);
-            // 
-            // MainMenu
-            // 
-            this.MainMenu.AutoSize = false;
-            this.MainMenu.BackColor = System.Drawing.SystemColors.Control;
-            this.MainMenu.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("MainMenu.BackgroundImage")));
-            this.MainMenu.GripMargin = new System.Windows.Forms.Padding(0);
-            this.MainMenu.ImageScalingSize = new System.Drawing.Size(76, 76);
-            this.MainMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.MenuFlightData,
-            this.MenuFlightPlanner,
-            this.MenuConfiguration,
-            this.MenuSimulation,
-            this.MenuFirmware,
-            this.MenuTerminal,
-            this.MenuConnect,
-            this.CMB_baudrate,
-            this.CMB_serialport,
-            this.TOOL_APMFirmware,
-            this.MenuHelp});
-            this.MainMenu.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow;
-            this.MainMenu.Location = new System.Drawing.Point(0, 0);
-            this.MainMenu.Name = "MainMenu";
-            this.MainMenu.Padding = new System.Windows.Forms.Padding(0);
-            this.MainMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
-            this.MainMenu.Size = new System.Drawing.Size(1008, 76);
-            this.MainMenu.TabIndex = 1;
-            this.MainMenu.Text = "menuStrip1";
-            // 
             // MenuTerminal
             // 
             this.MenuTerminal.AutoSize = false;
@@ -179,32 +161,6 @@
             this.MenuTerminal.ToolTipText = "Terminal";
             this.MenuTerminal.Click += new System.EventHandler(this.MenuTerminal_Click);
             // 
-            // CMB_baudrate
-            // 
-            this.CMB_baudrate.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
-            this.CMB_baudrate.Items.AddRange(new object[] {
-            "4800",
-            "9600",
-            "14400",
-            "19200",
-            "28800",
-            "38400",
-            "57600",
-            "115200"});
-            this.CMB_baudrate.Name = "CMB_baudrate";
-            this.CMB_baudrate.Size = new System.Drawing.Size(76, 76);
-            this.CMB_baudrate.SelectedIndexChanged += new System.EventHandler(this.CMB_baudrate_SelectedIndexChanged);
-            this.CMB_baudrate.TextChanged += new System.EventHandler(this.CMB_baudrate_TextChanged);
-            // 
-            // TOOL_APMFirmware
-            // 
-            this.TOOL_APMFirmware.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
-            this.TOOL_APMFirmware.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-            this.TOOL_APMFirmware.MaxDropDownItems = 2;
-            this.TOOL_APMFirmware.Name = "TOOL_APMFirmware";
-            this.TOOL_APMFirmware.Size = new System.Drawing.Size(121, 76);
-            this.TOOL_APMFirmware.SelectedIndexChanged += new System.EventHandler(this.TOOL_APMFirmware_SelectedIndexChanged);
-            // 
             // MenuHelp
             // 
             this.MenuHelp.AutoSize = false;
@@ -219,22 +175,25 @@
             this.MenuHelp.ToolTipText = "Terminal";
             this.MenuHelp.Click += new System.EventHandler(this.MenuHelp_Click);
             // 
-            // toolStripMenuItem1
+            // MenuConnect
             // 
-            this.toolStripMenuItem1.Name = "toolStripMenuItem1";
-            this.toolStripMenuItem1.Size = new System.Drawing.Size(141, 20);
-            this.toolStripMenuItem1.Text = "toolStripMenuItem1";
+            this.MenuConnect.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
+            this.MenuConnect.AutoSize = false;
+            this.MenuConnect.BackgroundImage = global::ArdupilotMega.Properties.Resources.connect;
+            this.MenuConnect.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.MenuConnect.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.MenuConnect.Margin = new System.Windows.Forms.Padding(0);
+            this.MenuConnect.Name = "MenuConnect";
+            this.MenuConnect.Padding = new System.Windows.Forms.Padding(0, 0, 72, 72);
+            this.MenuConnect.Size = new System.Drawing.Size(76, 76);
+			this.MenuConnect.Click += new System.EventHandler(this.MenuConnect_Click);
             // 
-            // MyView
+            // toolStripConnectionControl
             // 
-            this.MyView.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(38)))), ((int)(((byte)(39)))), ((int)(((byte)(40)))));
-            this.MyView.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.MyView.ForeColor = System.Drawing.Color.White;
-            this.MyView.Location = new System.Drawing.Point(0, 76);
-            this.MyView.Margin = new System.Windows.Forms.Padding(0);
-            this.MyView.Name = "MyView";
-            this.MyView.Size = new System.Drawing.Size(1008, 461);
-            this.MyView.TabIndex = 3;
+            this.toolStripConnectionControl.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
+            this.toolStripConnectionControl.BackColor = System.Drawing.Color.Transparent;
+            this.toolStripConnectionControl.Name = "toolStripConnectionControl";
+            this.toolStripConnectionControl.Size = new System.Drawing.Size(203, 73);
             // 
             // MainV2
             // 
@@ -257,26 +216,24 @@
             this.MainMenu.ResumeLayout(false);
             this.MainMenu.PerformLayout();
             this.ResumeLayout(false);
+            this.PerformLayout();
 
         }
 
         #endregion
 
+
+        private System.Windows.Forms.Panel MyView;
+        private System.Windows.Forms.MenuStrip MainMenu;
         private System.Windows.Forms.ToolStripButton MenuFlightData;
         private System.Windows.Forms.ToolStripButton MenuFlightPlanner;
         private System.Windows.Forms.ToolStripButton MenuConfiguration;
         private System.Windows.Forms.ToolStripButton MenuSimulation;
         private System.Windows.Forms.ToolStripButton MenuFirmware;
-        private System.Windows.Forms.ToolStripComboBox CMB_serialport;
-        private System.Windows.Forms.ToolStripButton MenuConnect;
-        private System.Windows.Forms.MenuStrip MainMenu;
-        private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
-        private System.Windows.Forms.ToolStripComboBox CMB_baudrate;
-        private System.Windows.Forms.Panel MyView;
         private System.Windows.Forms.ToolStripButton MenuTerminal;
-        private System.Windows.Forms.ToolStripComboBox TOOL_APMFirmware;
+        private System.Windows.Forms.ToolStripButton MenuConnect;
+	
         private System.Windows.Forms.ToolStripButton MenuHelp;
-        //public static WebCam_Capture.WebCamCapture webCamCapture1;
-
+        private ArdupilotMega.Controls.ToolStripConnectionControl toolStripConnectionControl;
     }
 }
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/MainV2.cs b/Tools/ArdupilotMegaPlanner/MainV2.cs
index 3f3e862b62a73441ec1f036b43fd06e19c0715cb..0e684d98f43ac60685f78e89949382bbdbfcafe7 100644
--- a/Tools/ArdupilotMegaPlanner/MainV2.cs
+++ b/Tools/ArdupilotMegaPlanner/MainV2.cs
@@ -31,6 +31,8 @@ namespace ArdupilotMega
     {
         private static readonly ILog log =
             LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
+
+        // used to hide/show console window
         [DllImport("user32.dll")]
         public static extern int FindWindow(string szClass, string szTitle);
         [DllImport("user32.dll")]
@@ -39,41 +41,88 @@ namespace ArdupilotMega
         const int SW_SHOWNORMAL = 1;
         const int SW_HIDE = 0;
 
+        /// <summary>
+        /// Main Comport interface
+        /// </summary>
         public static MAVLink comPort = new MAVLink();
+        /// <summary>
+        /// Comport name
+        /// </summary>
         public static string comPortName = "";
+        /// <summary>
+        /// use to store all internal config
+        /// </summary>
         public static Hashtable config = new Hashtable();
+        /// <summary>
+        /// used to prevent comport access for exclusive use
+        /// </summary>
         public static bool giveComport = false;
-        public static Firmwares APMFirmware = Firmwares.ArduPlane;
+        /// <summary>
+        /// mono detection
+        /// </summary>
         public static bool MONO = false;
-
+        /// <summary>
+        /// speech engein enable
+        /// </summary>
         public static bool speechEnable = false;
+        /// <summary>
+        /// spech engine static class
+        /// </summary>
         public static Speech speechEngine = null;
-
+        /// <summary>
+        /// joystick static class
+        /// </summary>
         public static Joystick joystick = null;
+        /// <summary>
+        /// track last joystick packet sent. used to track timming
+        /// </summary>
         DateTime lastjoystick = DateTime.Now;
-
+        /// <summary>
+        /// hud background image grabber from a video stream - not realy that efficent. ie no hardware overlays etc.
+        /// </summary>
         public static WebCamService.Capture cam = null;
-
+        /// <summary>
+        /// the static global state of the currently connected MAV
+        /// </summary>
         public static CurrentState cs = new CurrentState();
-
+        /// <summary>
+        /// controls the main serial reader thread
+        /// </summary>
         bool serialThread = false;
-
+        /// <summary>
+        /// unused at this point - potential to move all forms to this single binding source. need to evalutate performance/exception issues
+        /// </summary>
         static internal BindingSource bs;
-
-        TcpListener listener;
-
-        DateTime heatbeatSend = DateTime.Now;
-
+        /// <summary>
+        /// used for mini https server for websockets/mjpeg video stream, and network link kmls
+        /// </summary>
+        private TcpListener listener;
+        /// <summary>
+        /// track the last heartbeat sent
+        /// </summary>
+        private DateTime heatbeatSend = DateTime.Now;
+        /// <summary>
+        /// used to call anything as needed.
+        /// </summary>
         public static MainV2 instance = null;
-
+        /// <summary>
+        /// used to feed in a network link kml to the http server
+        /// </summary>
         public string georefkml = "";
 
+        /// <summary>
+        /// enum of firmwares
+        /// </summary>
         public enum Firmwares
         {
             ArduPlane,
             ArduCopter2,
         }
 
+        /// <summary>
+        /// declared here if i want a "single" instance of the form
+        /// ie configuration gets reloaded on every click
+        /// </summary>
         GCSViews.FlightData FlightData;
         GCSViews.FlightPlanner FlightPlanner;
         GCSViews.Configuration Configuration;
@@ -82,13 +131,20 @@ namespace ArdupilotMega
         GCSViews.Firmware Firmware;
         GCSViews.Terminal Terminal;
 
+        /// <summary>
+        /// control for the serial port and firmware selector.
+        /// </summary>
+        private ConnectionControl _connectionControl;
+
         public MainV2()
         {
             Form splash = new Splash();
             splash.Show();
 
             string strVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
-            strVersion = "";
+
+            strVersion = "mav " + MAVLink.MAVLINK_WIRE_PROTOCOL_VERSION;
+
             splash.Text = "APM Planner " + Application.ProductVersion + " " + strVersion + " By Michael Oborne";
 
             splash.Refresh();
@@ -98,6 +154,14 @@ namespace ArdupilotMega
             instance = this;
 
             InitializeComponent();
+            
+            _connectionControl = toolStripConnectionControl.ConnectionControl;
+            _connectionControl.CMB_baudrate.TextChanged += this.CMB_baudrate_TextChanged;
+            _connectionControl.CMB_baudrate.SelectedIndexChanged += this.CMB_baudrate_SelectedIndexChanged;
+            _connectionControl.CMB_serialport.SelectedIndexChanged += this.CMB_serialport_SelectedIndexChanged;
+            _connectionControl.CMB_serialport.Enter += this.CMB_serialport_Enter;
+            _connectionControl.CMB_serialport.Click += this.CMB_serialport_Click;
+            _connectionControl.TOOL_APMFirmware.SelectedIndexChanged += this.TOOL_APMFirmware_SelectedIndexChanged;
 
             srtm.datadirectory = Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + "srtm";
 
@@ -113,24 +177,35 @@ namespace ArdupilotMega
             List<object> list = new List<object>();
             foreach (object obj in Enum.GetValues(typeof(Firmwares)))
             {
-                TOOL_APMFirmware.Items.Add(obj);
+                _connectionControl.TOOL_APMFirmware.Items.Add(obj);
             }
 
-            if (TOOL_APMFirmware.Items.Count > 0)
-                TOOL_APMFirmware.SelectedIndex = 0;
+            if (_connectionControl.TOOL_APMFirmware.Items.Count > 0)
+                _connectionControl.TOOL_APMFirmware.SelectedIndex = 0;
 
             this.Text = splash.Text;
 
             comPort.BaseStream.BaudRate = 115200;
 
-            CMB_serialport.Items.AddRange(SerialPort.GetPortNames());
-            CMB_serialport.Items.Add("TCP");
-            CMB_serialport.Items.Add("UDP");
-            if (CMB_serialport.Items.Count > 0)
+            // ** Old
+//            CMB_serialport.Items.AddRange(SerialPort.GetPortNames());
+//            CMB_serialport.Items.Add("TCP");
+//            CMB_serialport.Items.Add("UDP");
+//            if (CMB_serialport.Items.Count > 0)
+//            {
+//                CMB_baudrate.SelectedIndex = 7;
+//                CMB_serialport.SelectedIndex = 0;
+//            }
+            // ** new
+            _connectionControl.CMB_serialport.Items.AddRange(SerialPort.GetPortNames());
+            _connectionControl.CMB_serialport.Items.Add("TCP");
+            _connectionControl.CMB_serialport.Items.Add("UDP");
+            if (_connectionControl.CMB_serialport.Items.Count > 0)
             {
-                CMB_baudrate.SelectedIndex = 7;
-                CMB_serialport.SelectedIndex = 0;
+                _connectionControl.CMB_baudrate.SelectedIndex = 7;
+                _connectionControl.CMB_serialport.SelectedIndex = 0;
             }
+            // ** Done
 
             splash.Refresh();
             Application.DoEvents();
@@ -172,7 +247,7 @@ namespace ArdupilotMega
             if (MainV2.config["CHK_GDIPlus"] != null)
                 GCSViews.FlightData.myhud.UseOpenGL = !bool.Parse(MainV2.config["CHK_GDIPlus"].ToString());
 
-            changeunits();
+            ChangeUnits();
 
             try
             {
@@ -258,6 +333,9 @@ namespace ArdupilotMega
             splash.Close();
         }
 
+        /// <summary>
+        /// used to create planner screenshots - access by control-s
+        /// </summary>
         internal void ScreenShot()
         {
             Rectangle bounds = Screen.GetBounds(Point.Empty);
@@ -276,13 +354,13 @@ namespace ArdupilotMega
 
         private void CMB_serialport_Click(object sender, EventArgs e)
         {
-            string oldport = CMB_serialport.Text;
-            CMB_serialport.Items.Clear();
-            CMB_serialport.Items.AddRange(SerialPort.GetPortNames());
-            CMB_serialport.Items.Add("TCP");
-            CMB_serialport.Items.Add("UDP");
-            if (CMB_serialport.Items.Contains(oldport))
-                CMB_serialport.Text = oldport;
+            string oldport = _connectionControl.CMB_serialport.Text;
+            _connectionControl.CMB_serialport.Items.Clear();
+            _connectionControl.CMB_serialport.Items.AddRange(SerialPort.GetPortNames());
+            _connectionControl.CMB_serialport.Items.Add("TCP");
+            _connectionControl.CMB_serialport.Items.Add("UDP");
+            if (_connectionControl.CMB_serialport.Items.Contains(oldport))
+                _connectionControl.CMB_serialport.Text = oldport;
         }
 
 
@@ -474,11 +552,11 @@ namespace ArdupilotMega
             }
             else
             {
-                if (CMB_serialport.Text == "TCP")
+                if (_connectionControl.CMB_serialport.Text == "TCP")
                 {
                     comPort.BaseStream = new TcpSerial();
                 }
-                else if (CMB_serialport.Text == "UDP")
+                    if (_connectionControl.CMB_serialport.Text == "UDP")
                 {
                     comPort.BaseStream = new UdpSerial();
                 }
@@ -490,31 +568,32 @@ namespace ArdupilotMega
                 try
                 {
                     // set port, then options
-                    comPort.BaseStream.PortName = CMB_serialport.Text;
+                    comPort.BaseStream.PortName = _connectionControl.CMB_serialport.Text;
 
                     comPort.BaseStream.DataBits = 8;
                     comPort.BaseStream.StopBits = (StopBits)Enum.Parse(typeof(StopBits), "1");
                     comPort.BaseStream.Parity = (Parity)Enum.Parse(typeof(Parity), "None");
                     try
                     {
-                        comPort.BaseStream.BaudRate = int.Parse(CMB_baudrate.Text);
+                        comPort.BaseStream.BaudRate = int.Parse(_connectionControl.CMB_baudrate.Text);
                     }
                     catch { }
 
-                    // false here
-                    comPort.BaseStream.DtrEnable = false;
-                    comPort.BaseStream.RtsEnable = false;
-
                     if (config["CHK_resetapmonconnect"] == null || bool.Parse(config["CHK_resetapmonconnect"].ToString()) == true)
                         comPort.BaseStream.toggleDTR();
 
-                    // if reset on connect is on dtr will be true here
+                    // false here
+                    comPort.BaseStream.DtrEnable = false;
+                    comPort.BaseStream.RtsEnable = false;
 
+                    // cleanup from any previous sessions
                     if (comPort.logfile != null)
                         comPort.logfile.Close();
 
                     if (comPort.rawlogfile != null)
                         comPort.rawlogfile.Close();
+
+                    // setup to record new logs
                     try
                     {
                         Directory.CreateDirectory(Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + @"logs");
@@ -524,39 +603,44 @@ namespace ArdupilotMega
                     }
                     catch { CustomMessageBox.Show("Failed to create log - wont log this session"); } // soft fail
 
+                    // do the connect
                     comPort.Open(true);
 
+                    // detect firmware we are conected to.
                     if (comPort.param["SYSID_SW_TYPE"] != null)
                     {
                         if (float.Parse(comPort.param["SYSID_SW_TYPE"].ToString()) == 10)
                         {
-                            TOOL_APMFirmware.SelectedIndex = TOOL_APMFirmware.Items.IndexOf(Firmwares.ArduCopter2);
+                            _connectionControl.TOOL_APMFirmware.SelectedIndex = _connectionControl.TOOL_APMFirmware.Items.IndexOf(Firmwares.ArduCopter2);
                         }
                         else if (float.Parse(comPort.param["SYSID_SW_TYPE"].ToString()) == 0)
                         {
-                            TOOL_APMFirmware.SelectedIndex = TOOL_APMFirmware.Items.IndexOf(Firmwares.ArduPlane);
+                            _connectionControl.TOOL_APMFirmware.SelectedIndex = _connectionControl.TOOL_APMFirmware.Items.IndexOf(Firmwares.ArduPlane);
                         }
                     }
 
-                    cs.firmware = APMFirmware;
-
-                    config[CMB_serialport.Text + "_BAUD"] = CMB_baudrate.Text;
+                    // save the baudrate for this port
+                    config[_connectionControl.CMB_serialport.Text + "_BAUD"] = _connectionControl.CMB_baudrate.Text;
 
+                    // load wps on connect option.
                     if (config["loadwpsonconnect"] != null && bool.Parse(config["loadwpsonconnect"].ToString()) == true)
                     {
                         MenuFlightPlanner_Click(null, null);
                         FlightPlanner.BUT_read_Click(null, null);
                     }
 
+                    // set connected icon
                     this.MenuConnect.BackgroundImage = global::ArdupilotMega.Properties.Resources.disconnect;
                 }
                 catch (Exception ex)
                 {
+                    log.Warn(ex.ToString());
                     try
                     {
                         comPort.Close();
                     }
                     catch { }
+                    // detect firmware -> scan eeprom contents -> error if no valid ap param/apvar header detected.
                     try
                     {
                         string version = ArduinoDetect.DetectVersion(comPort.BaseStream.PortName);
@@ -601,10 +685,10 @@ namespace ArdupilotMega
 
         private void CMB_serialport_SelectedIndexChanged(object sender, EventArgs e)
         {
-            comPortName = CMB_serialport.Text;
+            comPortName = _connectionControl.CMB_serialport.Text;
             if (comPortName == "UDP" || comPortName == "TCP")
             {
-                CMB_baudrate.Enabled = false;
+                _connectionControl.CMB_baudrate.Enabled = false;
                 if (comPortName == "TCP")
                     MainV2.comPort.BaseStream = new TcpSerial();
                 if (comPortName == "UDP")
@@ -612,35 +696,32 @@ namespace ArdupilotMega
             }
             else
             {
-                CMB_baudrate.Enabled = true;
+                _connectionControl.CMB_baudrate.Enabled = true;
                 MainV2.comPort.BaseStream = new ArdupilotMega.SerialPort();
             }
 
             try
             {
-                comPort.BaseStream.PortName = CMB_serialport.Text;
+                comPort.BaseStream.PortName = _connectionControl.CMB_serialport.Text;
 
-                MainV2.comPort.BaseStream.BaudRate = int.Parse(CMB_baudrate.Text);
+                MainV2.comPort.BaseStream.BaudRate = int.Parse(_connectionControl.CMB_baudrate.Text);
 
-                if (config[CMB_serialport.Text + "_BAUD"] != null)
+                // check for saved baud rate and restore
+                if (config[_connectionControl.CMB_serialport.Text + "_BAUD"] != null)
                 {
-                    CMB_baudrate.Text = config[CMB_serialport.Text + "_BAUD"].ToString();
+                    _connectionControl.CMB_baudrate.Text = config[_connectionControl.CMB_serialport.Text + "_BAUD"].ToString();
                 }
             }
             catch { }
         }
 
-        private void toolStripMenuItem2_Click(object sender, EventArgs e)
-        {
-            //Form temp = new Main();
-            //temp.Show();
-        }
-
         private void MainV2_FormClosed(object sender, FormClosedEventArgs e)
         {
+            // shutdown threads
             GCSViews.FlightData.threadrun = 0;
             GCSViews.Simulation.threadrun = 0;
 
+            // shutdown local thread
             serialThread = false;
 
             try
@@ -665,6 +746,8 @@ namespace ArdupilotMega
             }
             catch { }
 
+
+            // save config
             xmlconfig(true);
         }
 
@@ -675,8 +758,6 @@ namespace ArdupilotMega
             {
                 try
                 {
-                    //System.Configuration.Configuration appconfig = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);
-
                     XmlTextWriter xmlwriter = new XmlTextWriter(Path.GetDirectoryName(Application.ExecutablePath) + Path.DirectorySeparatorChar + @"config.xml", Encoding.ASCII);
                     xmlwriter.Formatting = Formatting.Indented;
 
@@ -686,13 +767,9 @@ namespace ArdupilotMega
 
                     xmlwriter.WriteElementString("comport", comPortName);
 
-                    xmlwriter.WriteElementString("baudrate", CMB_baudrate.Text);
-
-                    xmlwriter.WriteElementString("APMFirmware", APMFirmware.ToString());
+                    xmlwriter.WriteElementString("baudrate", _connectionControl.CMB_baudrate.Text);
 
-                    //appconfig.AppSettings.Settings.Add("comport", comportname);
-                    //appconfig.AppSettings.Settings.Add("baudrate", CMB_baudrate.Text);
-                    //appconfig.AppSettings.Settings.Add("APMFirmware", APMFirmware.ToString());
+                    xmlwriter.WriteElementString("APMFirmware", MainV2.cs.firmware.ToString());
 
                     foreach (string key in config.Keys)
                     {
@@ -701,8 +778,6 @@ namespace ArdupilotMega
                             if (key == "" || key.Contains("/")) // "/dev/blah"
                                 continue;
                             xmlwriter.WriteElementString(key, config[key].ToString());
-
-                            //appconfig.AppSettings.Settings.Add(key, config[key].ToString());
                         }
                         catch { }
                     }
@@ -711,8 +786,6 @@ namespace ArdupilotMega
 
                     xmlwriter.WriteEndDocument();
                     xmlwriter.Close();
-
-                    //appconfig.Save();
                 }
                 catch (Exception ex) { CustomMessageBox.Show(ex.ToString()); }
             }
@@ -732,10 +805,10 @@ namespace ArdupilotMega
                                     case "comport":
                                         string temp = xmlreader.ReadString();
 
-                                        CMB_serialport.SelectedIndex = CMB_serialport.FindString(temp);
-                                        if (CMB_serialport.SelectedIndex == -1)
+                                        _connectionControl.CMB_serialport.SelectedIndex = _connectionControl.CMB_serialport.FindString(temp);
+                                        if (_connectionControl.CMB_serialport.SelectedIndex == -1)
                                         {
-                                            CMB_serialport.Text = temp; // allows ports that dont exist - yet
+                                            _connectionControl.CMB_serialport.Text = temp; // allows ports that dont exist - yet
                                         }
                                         comPort.BaseStream.PortName = temp;
                                         comPortName = temp;
@@ -743,20 +816,20 @@ namespace ArdupilotMega
                                     case "baudrate":
                                         string temp2 = xmlreader.ReadString();
 
-                                        CMB_baudrate.SelectedIndex = CMB_baudrate.FindString(temp2);
-                                        if (CMB_baudrate.SelectedIndex == -1)
+                                        _connectionControl.CMB_baudrate.SelectedIndex = _connectionControl.CMB_baudrate.FindString(temp2);
+                                        if (_connectionControl.CMB_baudrate.SelectedIndex == -1)
                                         {
-                                            CMB_baudrate.Text = temp2;
+                                            _connectionControl.CMB_baudrate.Text = temp2;
                                             //CMB_baudrate.SelectedIndex = CMB_baudrate.FindString("57600"); ; // must exist
                                         }
                                         //bau = int.Parse(CMB_baudrate.Text);
                                         break;
                                     case "APMFirmware":
                                         string temp3 = xmlreader.ReadString();
-                                        TOOL_APMFirmware.SelectedIndex = TOOL_APMFirmware.FindStringExact(temp3);
-                                        if (TOOL_APMFirmware.SelectedIndex == -1)
-                                            TOOL_APMFirmware.SelectedIndex = 0;
-                                        APMFirmware = (MainV2.Firmwares)Enum.Parse(typeof(MainV2.Firmwares), TOOL_APMFirmware.Text);
+                                        _connectionControl.TOOL_APMFirmware.SelectedIndex = _connectionControl.TOOL_APMFirmware.FindStringExact(temp3);
+                                        if (_connectionControl.TOOL_APMFirmware.SelectedIndex == -1)
+                                            _connectionControl.TOOL_APMFirmware.SelectedIndex = 0;
+                                        MainV2.cs.firmware = (MainV2.Firmwares)Enum.Parse(typeof(MainV2.Firmwares), _connectionControl.TOOL_APMFirmware.Text);
                                         break;
                                     case "Config":
                                         break;
@@ -781,11 +854,16 @@ namespace ArdupilotMega
         {
             try
             {
-                comPort.BaseStream.BaudRate = int.Parse(CMB_baudrate.Text);
+                comPort.BaseStream.BaudRate = int.Parse(_connectionControl.CMB_baudrate.Text);
+            }
+            catch
+            {
             }
-            catch { }
         }
 
+        /// <summary>
+        /// thread used to send joystick packets to the MAV
+        /// </summary>
         private void joysticksend()
         {
 
@@ -870,10 +948,11 @@ namespace ArdupilotMega
 
         DateTime connectButtonUpdate = DateTime.Now;
 
+        /// <summary>
+        /// Used to fix the icon status for unexpected unplugs etc...
+        /// </summary>
         private void updateConnectIcon()
         {
-            
-
             if ((DateTime.Now - connectButtonUpdate).Milliseconds > 500)
             {
                 //                        Console.WriteLine(DateTime.Now.Millisecond);
@@ -885,8 +964,8 @@ namespace ArdupilotMega
                         {
                             this.MenuConnect.BackgroundImage = global::ArdupilotMega.Properties.Resources.disconnect;
                             this.MenuConnect.BackgroundImage.Tag = "Disconnect";
-                            CMB_baudrate.Enabled = false;
-                            CMB_serialport.Enabled = false;
+                            _connectionControl.CMB_baudrate.Enabled = false;
+                            _connectionControl.CMB_serialport.Enabled = false;
                         });
                     }
                 }
@@ -898,8 +977,8 @@ namespace ArdupilotMega
                         {
                             this.MenuConnect.BackgroundImage = global::ArdupilotMega.Properties.Resources.connect;
                             this.MenuConnect.BackgroundImage.Tag = "Connect";
-                            CMB_baudrate.Enabled = true;
-                            CMB_serialport.Enabled = true;
+                            _connectionControl.CMB_baudrate.Enabled = true;
+                            _connectionControl.CMB_serialport.Enabled = true;
                         });
                     }
                 }
@@ -907,7 +986,16 @@ namespace ArdupilotMega
             }
         }
 
-
+        /// <summary>
+        /// main serial reader thread
+        /// controls
+        /// serial reading
+        /// link quality stats
+        /// speech voltage - custom - alt warning - data lost
+        /// heartbeat packet sending
+        /// 
+        /// and cant fall out
+        /// </summary>
         private void SerialReader()
         {
             if (serialThread == true)
@@ -1089,6 +1177,7 @@ namespace ArdupilotMega
             // for long running tasks using own threads.
             // for short use threadpool
 
+            // setup http server
             try
             {
                 listener = new TcpListener(IPAddress.Any, 56781);
@@ -1104,6 +1193,7 @@ namespace ArdupilotMega
                 CustomMessageBox.Show(ex.ToString());
             }
 
+            /// setup joystick packet sender
             new Thread(new ThreadStart(joysticksend))
             {
                 IsBackground = true,
@@ -1111,12 +1201,14 @@ namespace ArdupilotMega
                 Name = "Main joystick sender"
             }.Start();
 
+            // setup main serial reader
             new Thread(SerialReader)
             {
                 IsBackground = true,
                 Name = "Main Serial reader"
             }.Start();
 
+            // check for updates
             if (Debugger.IsAttached)
             {
                 log.Info("Skipping update test as it appears we are debugging");
@@ -1134,6 +1226,7 @@ namespace ArdupilotMega
             }
         }
 
+
         public static String ComputeWebSocketHandshakeSecurityHash09(String secWebSocketKey)
         {
             const String MagicKEY = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
@@ -1155,7 +1248,6 @@ namespace ArdupilotMega
         /// <summary>          
         /// little web server for sending network link kml's          
         /// </summary>          
-
         void listernforclients()
         {
             try
@@ -1440,8 +1532,7 @@ namespace ArdupilotMega
 
         private void TOOL_APMFirmware_SelectedIndexChanged(object sender, EventArgs e)
         {
-            APMFirmware = (MainV2.Firmwares)Enum.Parse(typeof(MainV2.Firmwares), TOOL_APMFirmware.Text);
-            MainV2.cs.firmware = APMFirmware;
+            MainV2.cs.firmware = (MainV2.Firmwares)Enum.Parse(typeof(MainV2.Firmwares), _connectionControl.TOOL_APMFirmware.Text);
         }
 
         private void MainV2_Resize(object sender, EventArgs e)
@@ -1858,7 +1949,12 @@ namespace ArdupilotMega
         }
 
 
-
+        /// <summary>
+        /// trying to replicate google code etags....... this doesnt work.
+        /// </summary>
+        /// <param name="fileName"></param>
+        /// <param name="modifyDate"></param>
+        /// <returns></returns>
         private string GetFileETag(string fileName, DateTime modifyDate)
         {
 
@@ -1892,29 +1988,34 @@ namespace ArdupilotMega
 
         }
 
-
+        /// <summary>
+        /// keyboard shortcuts override
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <param name="keyData"></param>
+        /// <returns></returns>
         protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
         {
-            if (keyData == (Keys.Control | Keys.F))
+            if (keyData == (Keys.Control | Keys.F)) // temp
             {
                 Form frm = new temp();
                 ThemeManager.ApplyThemeTo(frm);
                 frm.Show();
                 return true;
             }
-            if (keyData == (Keys.Control | Keys.S))
+            if (keyData == (Keys.Control | Keys.S)) // screenshot
             {
                 ScreenShot();
                 return true;
             }
-            if (keyData == (Keys.Control | Keys.G)) // test
+            if (keyData == (Keys.Control | Keys.G)) // nmea out
             {
                 Form frm = new SerialOutput();
                 ThemeManager.ApplyThemeTo(frm);
                 frm.Show();
                 return true;
             }
-            if (keyData == (Keys.Control | Keys.A)) // test
+            if (keyData == (Keys.Control | Keys.A)) // 3dr radio
             {
                 Form temp = new Form();
                 Control frm = new _3DRradio();
@@ -1925,7 +2026,7 @@ namespace ArdupilotMega
                 temp.Show();
                 return true;
             }
-            if (keyData == (Keys.Control | Keys.W)) // test
+            if (keyData == (Keys.Control | Keys.W)) // test ac config
             {
 
                 Controls.ConfigPanel cfg = new Controls.ConfigPanel();
@@ -2026,7 +2127,7 @@ namespace ArdupilotMega
             return "";
         }
 
-        public void changeunits()
+        public void ChangeUnits()
         {
             try
             {
@@ -2070,24 +2171,29 @@ namespace ArdupilotMega
             catch { }
 
         }
+
         private void CMB_baudrate_TextChanged(object sender, EventArgs e)
         {
             StringBuilder sb = new StringBuilder();
             int baud = 0;
-            for (int i = 0; i < CMB_baudrate.Text.Length; i++)
-                if (char.IsDigit(CMB_baudrate.Text[i]))
+            for (int i = 0; i < _connectionControl.CMB_baudrate.Text.Length; i++)
+                if (char.IsDigit(_connectionControl.CMB_baudrate.Text[i]))
                 {
-                    sb.Append(CMB_baudrate.Text[i]);
-                    baud = baud * 10 + CMB_baudrate.Text[i] - '0';
+                    sb.Append(_connectionControl.CMB_baudrate.Text[i]);
+                    baud = baud * 10 + _connectionControl.CMB_baudrate.Text[i] - '0';
                 }
-            if (CMB_baudrate.Text != sb.ToString())
-                CMB_baudrate.Text = sb.ToString();
+            if (_connectionControl.CMB_baudrate.Text != sb.ToString())
+            {
+                _connectionControl.CMB_baudrate.Text = sb.ToString();
+            }
             try
             {
                 if (baud > 0 && comPort.BaseStream.BaudRate != baud)
                     comPort.BaseStream.BaudRate = baud;
             }
-            catch (Exception) { }
+            catch (Exception)
+            {
+            }
         }
 
         private void CMB_serialport_Enter(object sender, EventArgs e)
diff --git a/Tools/ArdupilotMegaPlanner/MainV2.resx b/Tools/ArdupilotMegaPlanner/MainV2.resx
index 090393fc1676864e29fab8c7a8e55850625ef51a..05bc2f223b5bf27c3041859488fd9655fcf52aec 100644
--- a/Tools/ArdupilotMegaPlanner/MainV2.resx
+++ b/Tools/ArdupilotMegaPlanner/MainV2.resx
@@ -118,7 +118,7 @@
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <metadata name="MainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>127, 17</value>
+    <value>17, 17</value>
   </metadata>
   <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="MainMenu.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
diff --git a/Tools/ArdupilotMegaPlanner/Msi/wix.pdb b/Tools/ArdupilotMegaPlanner/Msi/wix.pdb
index a4116362278a3258e6530e3790bd0d8ef31165c1..dce25ed5af27984f4d1ad7f0ae18f43eebc7973d 100644
Binary files a/Tools/ArdupilotMegaPlanner/Msi/wix.pdb and b/Tools/ArdupilotMegaPlanner/Msi/wix.pdb differ
diff --git a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs
index e04253db93e2db2b9c743a726c1e918f83102d6b..672addbd35647743cd3dc0001c1b4cc6922d9f08 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.1.*")]
-[assembly: AssemblyFileVersion("1.1.71")]
+[assembly: AssemblyFileVersion("1.1.72")]
 [assembly: NeutralResourcesLanguageAttribute("")]
diff --git a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.Designer.cs b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.Designer.cs
index af564473f89805a6ed58f204d1710a5727d95851..aa2773fdfc016b0697efbfb05e73af90178e5587 100644
--- a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.Designer.cs
+++ b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.Designer.cs
@@ -56,6 +56,16 @@
             this.RS2 = new System.Windows.Forms.ComboBox();
             this.RS1 = new System.Windows.Forms.ComboBox();
             this.RSSI = new System.Windows.Forms.TextBox();
+            this.S10 = new System.Windows.Forms.ComboBox();
+            this.S11 = new System.Windows.Forms.ComboBox();
+            this.S12 = new System.Windows.Forms.ComboBox();
+            this.RS12 = new System.Windows.Forms.ComboBox();
+            this.RS11 = new System.Windows.Forms.ComboBox();
+            this.RS10 = new System.Windows.Forms.ComboBox();
+            this.S9 = new System.Windows.Forms.ComboBox();
+            this.S8 = new System.Windows.Forms.ComboBox();
+            this.RS8 = new System.Windows.Forms.ComboBox();
+            this.RS9 = new System.Windows.Forms.ComboBox();
             this.RS0 = new System.Windows.Forms.TextBox();
             this.label9 = new System.Windows.Forms.Label();
             this.label10 = new System.Windows.Forms.Label();
@@ -70,6 +80,27 @@
             this.BUT_syncS2 = new ArdupilotMega.MyButton();
             this.BUT_syncS3 = new ArdupilotMega.MyButton();
             this.BUT_syncS5 = new ArdupilotMega.MyButton();
+            this.label13 = new System.Windows.Forms.Label();
+            this.label14 = new System.Windows.Forms.Label();
+            this.label15 = new System.Windows.Forms.Label();
+            this.label16 = new System.Windows.Forms.Label();
+            this.label17 = new System.Windows.Forms.Label();
+            this.label20 = new System.Windows.Forms.Label();
+            this.label21 = new System.Windows.Forms.Label();
+            this.label22 = new System.Windows.Forms.Label();
+            this.label23 = new System.Windows.Forms.Label();
+            this.label24 = new System.Windows.Forms.Label();
+            this.label25 = new System.Windows.Forms.Label();
+            this.label26 = new System.Windows.Forms.Label();
+            this.label27 = new System.Windows.Forms.Label();
+            this.label28 = new System.Windows.Forms.Label();
+            this.label29 = new System.Windows.Forms.Label();
+            this.label30 = new System.Windows.Forms.Label();
+            this.label31 = new System.Windows.Forms.Label();
+            this.label32 = new System.Windows.Forms.Label();
+            this.BUT_syncS8 = new ArdupilotMega.MyButton();
+            this.BUT_syncS9 = new ArdupilotMega.MyButton();
+            this.BUT_syncS10 = new ArdupilotMega.MyButton();
             this.SuspendLayout();
             // 
             // Progressbar
@@ -263,6 +294,7 @@
             // 
             // RS4
             // 
+            resources.ApplyResources(this.RS4, "RS4");
             this.RS4.FormattingEnabled = true;
             this.RS4.Items.AddRange(new object[] {
             resources.GetString("RS4.Items"),
@@ -286,12 +318,12 @@
             resources.GetString("RS4.Items18"),
             resources.GetString("RS4.Items19"),
             resources.GetString("RS4.Items20")});
-            resources.ApplyResources(this.RS4, "RS4");
             this.RS4.Name = "RS4";
             this.toolTip1.SetToolTip(this.RS4, resources.GetString("RS4.ToolTip"));
             // 
             // RS3
             // 
+            resources.ApplyResources(this.RS3, "RS3");
             this.RS3.FormattingEnabled = true;
             this.RS3.Items.AddRange(new object[] {
             resources.GetString("RS3.Items"),
@@ -324,12 +356,12 @@
             resources.GetString("RS3.Items27"),
             resources.GetString("RS3.Items28"),
             resources.GetString("RS3.Items29")});
-            resources.ApplyResources(this.RS3, "RS3");
             this.RS3.Name = "RS3";
             this.toolTip1.SetToolTip(this.RS3, resources.GetString("RS3.ToolTip"));
             // 
             // RS2
             // 
+            resources.ApplyResources(this.RS2, "RS2");
             this.RS2.FormattingEnabled = true;
             this.RS2.Items.AddRange(new object[] {
             resources.GetString("RS2.Items"),
@@ -342,12 +374,12 @@
             resources.GetString("RS2.Items7"),
             resources.GetString("RS2.Items8"),
             resources.GetString("RS2.Items9")});
-            resources.ApplyResources(this.RS2, "RS2");
             this.RS2.Name = "RS2";
             this.toolTip1.SetToolTip(this.RS2, resources.GetString("RS2.ToolTip"));
             // 
             // RS1
             // 
+            resources.ApplyResources(this.RS1, "RS1");
             this.RS1.FormattingEnabled = true;
             this.RS1.Items.AddRange(new object[] {
             resources.GetString("RS1.Items"),
@@ -359,7 +391,6 @@
             resources.GetString("RS1.Items6"),
             resources.GetString("RS1.Items7"),
             resources.GetString("RS1.Items8")});
-            resources.ApplyResources(this.RS1, "RS1");
             this.RS1.Name = "RS1";
             this.toolTip1.SetToolTip(this.RS1, resources.GetString("RS1.ToolTip"));
             // 
@@ -370,6 +401,183 @@
             this.RSSI.ReadOnly = true;
             this.toolTip1.SetToolTip(this.RSSI, resources.GetString("RSSI.ToolTip"));
             // 
+            // S10
+            // 
+            this.S10.FormattingEnabled = true;
+            this.S10.Items.AddRange(new object[] {
+            resources.GetString("S10.Items"),
+            resources.GetString("S10.Items1"),
+            resources.GetString("S10.Items2"),
+            resources.GetString("S10.Items3"),
+            resources.GetString("S10.Items4"),
+            resources.GetString("S10.Items5"),
+            resources.GetString("S10.Items6"),
+            resources.GetString("S10.Items7"),
+            resources.GetString("S10.Items8"),
+            resources.GetString("S10.Items9"),
+            resources.GetString("S10.Items10"),
+            resources.GetString("S10.Items11"),
+            resources.GetString("S10.Items12"),
+            resources.GetString("S10.Items13"),
+            resources.GetString("S10.Items14"),
+            resources.GetString("S10.Items15"),
+            resources.GetString("S10.Items16"),
+            resources.GetString("S10.Items17"),
+            resources.GetString("S10.Items18")});
+            resources.ApplyResources(this.S10, "S10");
+            this.S10.Name = "S10";
+            this.toolTip1.SetToolTip(this.S10, resources.GetString("S10.ToolTip"));
+            // 
+            // S11
+            // 
+            this.S11.FormattingEnabled = true;
+            this.S11.Items.AddRange(new object[] {
+            resources.GetString("S11.Items"),
+            resources.GetString("S11.Items1"),
+            resources.GetString("S11.Items2"),
+            resources.GetString("S11.Items3"),
+            resources.GetString("S11.Items4"),
+            resources.GetString("S11.Items5"),
+            resources.GetString("S11.Items6"),
+            resources.GetString("S11.Items7"),
+            resources.GetString("S11.Items8"),
+            resources.GetString("S11.Items9")});
+            resources.ApplyResources(this.S11, "S11");
+            this.S11.Name = "S11";
+            this.toolTip1.SetToolTip(this.S11, resources.GetString("S11.ToolTip"));
+            // 
+            // S12
+            // 
+            this.S12.FormattingEnabled = true;
+            this.S12.Items.AddRange(new object[] {
+            resources.GetString("S12.Items"),
+            resources.GetString("S12.Items1")});
+            resources.ApplyResources(this.S12, "S12");
+            this.S12.Name = "S12";
+            this.toolTip1.SetToolTip(this.S12, resources.GetString("S12.ToolTip"));
+            // 
+            // RS12
+            // 
+            resources.ApplyResources(this.RS12, "RS12");
+            this.RS12.FormattingEnabled = true;
+            this.RS12.Items.AddRange(new object[] {
+            resources.GetString("RS12.Items"),
+            resources.GetString("RS12.Items1")});
+            this.RS12.Name = "RS12";
+            this.toolTip1.SetToolTip(this.RS12, resources.GetString("RS12.ToolTip"));
+            // 
+            // RS11
+            // 
+            resources.ApplyResources(this.RS11, "RS11");
+            this.RS11.FormattingEnabled = true;
+            this.RS11.Items.AddRange(new object[] {
+            resources.GetString("RS11.Items"),
+            resources.GetString("RS11.Items1"),
+            resources.GetString("RS11.Items2"),
+            resources.GetString("RS11.Items3"),
+            resources.GetString("RS11.Items4"),
+            resources.GetString("RS11.Items5"),
+            resources.GetString("RS11.Items6"),
+            resources.GetString("RS11.Items7"),
+            resources.GetString("RS11.Items8"),
+            resources.GetString("RS11.Items9")});
+            this.RS11.Name = "RS11";
+            this.toolTip1.SetToolTip(this.RS11, resources.GetString("RS11.ToolTip"));
+            // 
+            // RS10
+            // 
+            resources.ApplyResources(this.RS10, "RS10");
+            this.RS10.FormattingEnabled = true;
+            this.RS10.Items.AddRange(new object[] {
+            resources.GetString("RS10.Items"),
+            resources.GetString("RS10.Items1"),
+            resources.GetString("RS10.Items2"),
+            resources.GetString("RS10.Items3"),
+            resources.GetString("RS10.Items4"),
+            resources.GetString("RS10.Items5"),
+            resources.GetString("RS10.Items6"),
+            resources.GetString("RS10.Items7"),
+            resources.GetString("RS10.Items8"),
+            resources.GetString("RS10.Items9"),
+            resources.GetString("RS10.Items10"),
+            resources.GetString("RS10.Items11"),
+            resources.GetString("RS10.Items12"),
+            resources.GetString("RS10.Items13"),
+            resources.GetString("RS10.Items14"),
+            resources.GetString("RS10.Items15"),
+            resources.GetString("RS10.Items16"),
+            resources.GetString("RS10.Items17"),
+            resources.GetString("RS10.Items18")});
+            this.RS10.Name = "RS10";
+            this.toolTip1.SetToolTip(this.RS10, resources.GetString("RS10.ToolTip"));
+            // 
+            // S9
+            // 
+            this.S9.FormattingEnabled = true;
+            this.S9.Items.AddRange(new object[] {
+            resources.GetString("S9.Items"),
+            resources.GetString("S9.Items1"),
+            resources.GetString("S9.Items2"),
+            resources.GetString("S9.Items3"),
+            resources.GetString("S9.Items4"),
+            resources.GetString("S9.Items5"),
+            resources.GetString("S9.Items6"),
+            resources.GetString("S9.Items7"),
+            resources.GetString("S9.Items8")});
+            resources.ApplyResources(this.S9, "S9");
+            this.S9.Name = "S9";
+            // 
+            // S8
+            // 
+            this.S8.FormattingEnabled = true;
+            this.S8.Items.AddRange(new object[] {
+            resources.GetString("S8.Items"),
+            resources.GetString("S8.Items1"),
+            resources.GetString("S8.Items2"),
+            resources.GetString("S8.Items3"),
+            resources.GetString("S8.Items4"),
+            resources.GetString("S8.Items5"),
+            resources.GetString("S8.Items6"),
+            resources.GetString("S8.Items7"),
+            resources.GetString("S8.Items8"),
+            resources.GetString("S8.Items9"),
+            resources.GetString("S8.Items10"),
+            resources.GetString("S8.Items11")});
+            resources.ApplyResources(this.S8, "S8");
+            this.S8.Name = "S8";
+            // 
+            // RS8
+            // 
+            resources.ApplyResources(this.RS8, "RS8");
+            this.RS8.FormattingEnabled = true;
+            this.RS8.Items.AddRange(new object[] {
+            resources.GetString("RS8.Items"),
+            resources.GetString("RS8.Items1"),
+            resources.GetString("RS8.Items2"),
+            resources.GetString("RS8.Items3"),
+            resources.GetString("RS8.Items4"),
+            resources.GetString("RS8.Items5"),
+            resources.GetString("RS8.Items6"),
+            resources.GetString("RS8.Items7"),
+            resources.GetString("RS8.Items8")});
+            this.RS8.Name = "RS8";
+            // 
+            // RS9
+            // 
+            resources.ApplyResources(this.RS9, "RS9");
+            this.RS9.FormattingEnabled = true;
+            this.RS9.Items.AddRange(new object[] {
+            resources.GetString("RS9.Items"),
+            resources.GetString("RS9.Items1"),
+            resources.GetString("RS9.Items2"),
+            resources.GetString("RS9.Items3"),
+            resources.GetString("RS9.Items4"),
+            resources.GetString("RS9.Items5"),
+            resources.GetString("RS9.Items6"),
+            resources.GetString("RS9.Items7"),
+            resources.GetString("RS9.Items8")});
+            this.RS9.Name = "RS9";
+            // 
             // RS0
             // 
             resources.ApplyResources(this.RS0, "RS0");
@@ -456,10 +664,152 @@
             this.BUT_syncS5.UseVisualStyleBackColor = true;
             this.BUT_syncS5.Click += new System.EventHandler(this.BUT_syncS5_Click);
             // 
+            // label13
+            // 
+            resources.ApplyResources(this.label13, "label13");
+            this.label13.Name = "label13";
+            // 
+            // label14
+            // 
+            resources.ApplyResources(this.label14, "label14");
+            this.label14.Name = "label14";
+            // 
+            // label15
+            // 
+            resources.ApplyResources(this.label15, "label15");
+            this.label15.Name = "label15";
+            // 
+            // label16
+            // 
+            resources.ApplyResources(this.label16, "label16");
+            this.label16.Name = "label16";
+            // 
+            // label17
+            // 
+            resources.ApplyResources(this.label17, "label17");
+            this.label17.Name = "label17";
+            // 
+            // label20
+            // 
+            resources.ApplyResources(this.label20, "label20");
+            this.label20.Name = "label20";
+            // 
+            // label21
+            // 
+            resources.ApplyResources(this.label21, "label21");
+            this.label21.Name = "label21";
+            // 
+            // label22
+            // 
+            resources.ApplyResources(this.label22, "label22");
+            this.label22.Name = "label22";
+            // 
+            // label23
+            // 
+            resources.ApplyResources(this.label23, "label23");
+            this.label23.Name = "label23";
+            // 
+            // label24
+            // 
+            resources.ApplyResources(this.label24, "label24");
+            this.label24.Name = "label24";
+            // 
+            // label25
+            // 
+            resources.ApplyResources(this.label25, "label25");
+            this.label25.Name = "label25";
+            // 
+            // label26
+            // 
+            resources.ApplyResources(this.label26, "label26");
+            this.label26.Name = "label26";
+            // 
+            // label27
+            // 
+            resources.ApplyResources(this.label27, "label27");
+            this.label27.Name = "label27";
+            // 
+            // label28
+            // 
+            resources.ApplyResources(this.label28, "label28");
+            this.label28.Name = "label28";
+            // 
+            // label29
+            // 
+            resources.ApplyResources(this.label29, "label29");
+            this.label29.Name = "label29";
+            // 
+            // label30
+            // 
+            resources.ApplyResources(this.label30, "label30");
+            this.label30.Name = "label30";
+            // 
+            // label31
+            // 
+            resources.ApplyResources(this.label31, "label31");
+            this.label31.Name = "label31";
+            // 
+            // label32
+            // 
+            resources.ApplyResources(this.label32, "label32");
+            this.label32.Name = "label32";
+            // 
+            // BUT_syncS8
+            // 
+            resources.ApplyResources(this.BUT_syncS8, "BUT_syncS8");
+            this.BUT_syncS8.Name = "BUT_syncS8";
+            this.BUT_syncS8.UseVisualStyleBackColor = true;
+            this.BUT_syncS8.Click += new System.EventHandler(this.BUT_syncS8_Click);
+            // 
+            // BUT_syncS9
+            // 
+            resources.ApplyResources(this.BUT_syncS9, "BUT_syncS9");
+            this.BUT_syncS9.Name = "BUT_syncS9";
+            this.BUT_syncS9.UseVisualStyleBackColor = true;
+            this.BUT_syncS9.Click += new System.EventHandler(this.BUT_syncS9_Click);
+            // 
+            // BUT_syncS10
+            // 
+            resources.ApplyResources(this.BUT_syncS10, "BUT_syncS10");
+            this.BUT_syncS10.Name = "BUT_syncS10";
+            this.BUT_syncS10.UseVisualStyleBackColor = true;
+            this.BUT_syncS10.Click += new System.EventHandler(this.BUT_syncS10_Click);
+            // 
             // _3DRradio
             // 
             resources.ApplyResources(this, "$this");
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.BUT_syncS10);
+            this.Controls.Add(this.BUT_syncS9);
+            this.Controls.Add(this.BUT_syncS8);
+            this.Controls.Add(this.label25);
+            this.Controls.Add(this.label26);
+            this.Controls.Add(this.label27);
+            this.Controls.Add(this.label28);
+            this.Controls.Add(this.label29);
+            this.Controls.Add(this.label30);
+            this.Controls.Add(this.label31);
+            this.Controls.Add(this.label32);
+            this.Controls.Add(this.label20);
+            this.Controls.Add(this.label21);
+            this.Controls.Add(this.label22);
+            this.Controls.Add(this.label23);
+            this.Controls.Add(this.label24);
+            this.Controls.Add(this.RS8);
+            this.Controls.Add(this.RS12);
+            this.Controls.Add(this.RS11);
+            this.Controls.Add(this.RS10);
+            this.Controls.Add(this.RS9);
+            this.Controls.Add(this.label17);
+            this.Controls.Add(this.label16);
+            this.Controls.Add(this.label15);
+            this.Controls.Add(this.label14);
+            this.Controls.Add(this.label13);
+            this.Controls.Add(this.S8);
+            this.Controls.Add(this.S12);
+            this.Controls.Add(this.S11);
+            this.Controls.Add(this.S10);
+            this.Controls.Add(this.S9);
             this.Controls.Add(this.BUT_syncS5);
             this.Controls.Add(this.BUT_syncS3);
             this.Controls.Add(this.BUT_syncS2);
@@ -499,7 +849,7 @@
             this.Controls.Add(this.lbl_status);
             this.Controls.Add(this.Progressbar);
             this.Controls.Add(this.BUT_upload);
-            this.MinimumSize = new System.Drawing.Size(334, 482);
+            this.MinimumSize = new System.Drawing.Size(781, 433);
             this.Name = "_3DRradio";
             this.ResumeLayout(false);
             this.PerformLayout();
@@ -548,5 +898,36 @@
         private MyButton BUT_syncS2;
         private MyButton BUT_syncS3;
         private MyButton BUT_syncS5;
+        private System.Windows.Forms.ComboBox S9;
+        private System.Windows.Forms.ComboBox S10;
+        private System.Windows.Forms.ComboBox S11;
+        private System.Windows.Forms.ComboBox S12;
+        private System.Windows.Forms.ComboBox S8;
+        private System.Windows.Forms.Label label13;
+        private System.Windows.Forms.Label label14;
+        private System.Windows.Forms.Label label15;
+        private System.Windows.Forms.Label label16;
+        private System.Windows.Forms.Label label17;
+        private System.Windows.Forms.Label label20;
+        private System.Windows.Forms.Label label21;
+        private System.Windows.Forms.Label label22;
+        private System.Windows.Forms.Label label23;
+        private System.Windows.Forms.Label label24;
+        private System.Windows.Forms.ComboBox RS8;
+        private System.Windows.Forms.ComboBox RS12;
+        private System.Windows.Forms.ComboBox RS11;
+        private System.Windows.Forms.ComboBox RS10;
+        private System.Windows.Forms.ComboBox RS9;
+        private System.Windows.Forms.Label label25;
+        private System.Windows.Forms.Label label26;
+        private System.Windows.Forms.Label label27;
+        private System.Windows.Forms.Label label28;
+        private System.Windows.Forms.Label label29;
+        private System.Windows.Forms.Label label30;
+        private System.Windows.Forms.Label label31;
+        private System.Windows.Forms.Label label32;
+        private MyButton BUT_syncS8;
+        private MyButton BUT_syncS9;
+        private MyButton BUT_syncS10;
     }
 }
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs
index 15cd2348204a41767e130703ad2b1db3d5edfe2d..d1b6f9ad9acc6843669277e32b5625a7aa0b52c6 100644
--- a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs
+++ b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.cs
@@ -14,6 +14,37 @@ namespace ArdupilotMega
 {
     public partial class _3DRradio : BackStageViewContentPanel
     {
+        /*
+responce 0 S0: FORMAT=25
+
+S1: SERIAL_SPEED=57
+
+S2: AIR_SPEED=64
+
+S3: NETID=25
+
+S4: TXPOWER=20
+
+S5: ECC=1
+
+S6: MAVLINK=1
+
+S7: OPPRESEND=1
+
+S8: MIN_FREQ=915000
+
+S9: MAX_FREQ=928000
+
+S10: NUM_CHANNELS=50
+
+S11: DUTY_CYCLE=100
+
+S12: LBT_RSSI=0
+
+S13: MANCHESTER=0
+
+         */
+
         public delegate void LogEventHandler(string message, int level = 0);
 
         public delegate void ProgressEventHandler(double completed);
@@ -65,8 +96,7 @@ namespace ArdupilotMega
 
             bool bootloadermode = false;
 
-            uploader.ProgressEvent += new ProgressEventHandler(uploader_ProgressEvent);
-            uploader.LogEvent += new LogEventHandler(uploader_LogEvent);
+
 
             try
             {
@@ -74,6 +104,10 @@ namespace ArdupilotMega
                 uploader_LogEvent("Trying Bootloader Mode");
                 uploader.port = comPort;
                 uploader.connect_and_sync();
+
+                uploader.ProgressEvent += new ProgressEventHandler(uploader_ProgressEvent);
+                uploader.LogEvent += new LogEventHandler(uploader_LogEvent);
+
                 uploader_LogEvent("In Bootloader Mode");
                 bootloadermode = true;
             }
@@ -82,12 +116,15 @@ namespace ArdupilotMega
                 comPort.Close();
                 comPort.BaudRate = MainV2.comPort.BaseStream.BaudRate;
                 comPort.Open();
+
+                uploader.ProgressEvent += new ProgressEventHandler(uploader_ProgressEvent);
+                uploader.LogEvent += new LogEventHandler(uploader_LogEvent);
+
                 uploader_LogEvent("Trying Firmware Mode");
                 bootloadermode = false;
             }
 
 
-
             if (bootloadermode || doConnect(comPort))
             {
                 if (getFirmware())
@@ -617,5 +654,20 @@ namespace ArdupilotMega
         {
             RS5.Checked = S5.Checked;
         }
+
+        private void BUT_syncS8_Click(object sender, EventArgs e)
+        {
+            RS8.Text = S8.Text;
+        }
+
+        private void BUT_syncS9_Click(object sender, EventArgs e)
+        {
+            RS9.Text = S9.Text;
+        }
+
+        private void BUT_syncS10_Click(object sender, EventArgs e)
+        {
+            RS10.Text = S10.Text;
+        }
     }
 }
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.resx b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.resx
index 0e0676fca294ff73983b80904b2abfebfc87a43e..99cb96659b7ba14238374113953ce98043c39f25 100644
--- a/Tools/ArdupilotMegaPlanner/Radio/3DRradio.resx
+++ b/Tools/ArdupilotMegaPlanner/Radio/3DRradio.resx
@@ -119,14 +119,14 @@
   </resheader>
   <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   <data name="Progressbar.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Bottom, Left</value>
+    <value>Bottom, Left, Right</value>
   </data>
   <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="Progressbar.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 402</value>
+    <value>12, 389</value>
   </data>
   <data name="Progressbar.Size" type="System.Drawing.Size, System.Drawing">
-    <value>294, 36</value>
+    <value>755, 36</value>
   </data>
   <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
   <data name="Progressbar.TabIndex" type="System.Int32, mscorlib">
@@ -142,7 +142,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;Progressbar.ZOrder" xml:space="preserve">
-    <value>37</value>
+    <value>68</value>
   </data>
   <data name="S1.Items" xml:space="preserve">
     <value>115</value>
@@ -172,7 +172,7 @@
     <value>1</value>
   </data>
   <data name="S1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 141</value>
+    <value>84, 125</value>
   </data>
   <data name="S1.Size" type="System.Drawing.Size, System.Drawing">
     <value>80, 21</value>
@@ -197,13 +197,13 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;S1.ZOrder" xml:space="preserve">
-    <value>35</value>
+    <value>66</value>
   </data>
   <data name="label1.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="label1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>15, 149</value>
+    <value>9, 133</value>
   </data>
   <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
     <value>32, 13</value>
@@ -224,10 +224,10 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
-    <value>34</value>
+    <value>65</value>
   </data>
   <data name="S0.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 115</value>
+    <value>84, 99</value>
   </data>
   <data name="S0.Size" type="System.Drawing.Size, System.Drawing">
     <value>80, 20</value>
@@ -245,13 +245,13 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;S0.ZOrder" xml:space="preserve">
-    <value>32</value>
+    <value>63</value>
   </data>
   <data name="label2.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="label2.Location" type="System.Drawing.Point, System.Drawing">
-    <value>15, 122</value>
+    <value>9, 106</value>
   </data>
   <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
     <value>39, 13</value>
@@ -272,13 +272,13 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;label2.ZOrder" xml:space="preserve">
-    <value>31</value>
+    <value>62</value>
   </data>
   <data name="label3.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="label3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>15, 176</value>
+    <value>9, 160</value>
   </data>
   <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
     <value>53, 13</value>
@@ -299,7 +299,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
-    <value>29</value>
+    <value>60</value>
   </data>
   <data name="S2.Items" xml:space="preserve">
     <value>250</value>
@@ -332,7 +332,7 @@
     <value>2</value>
   </data>
   <data name="S2.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 168</value>
+    <value>84, 152</value>
   </data>
   <data name="S2.Size" type="System.Drawing.Size, System.Drawing">
     <value>80, 21</value>
@@ -353,13 +353,13 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;S2.ZOrder" xml:space="preserve">
-    <value>30</value>
+    <value>61</value>
   </data>
   <data name="label4.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="label4.Location" type="System.Drawing.Point, System.Drawing">
-    <value>15, 203</value>
+    <value>9, 187</value>
   </data>
   <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
     <value>38, 13</value>
@@ -380,7 +380,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;label4.ZOrder" xml:space="preserve">
-    <value>27</value>
+    <value>58</value>
   </data>
   <data name="S3.Items" xml:space="preserve">
     <value>1</value>
@@ -473,7 +473,7 @@
     <value>30</value>
   </data>
   <data name="S3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 195</value>
+    <value>84, 179</value>
   </data>
   <data name="S3.Size" type="System.Drawing.Size, System.Drawing">
     <value>80, 21</value>
@@ -494,13 +494,13 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;S3.ZOrder" xml:space="preserve">
-    <value>28</value>
+    <value>59</value>
   </data>
   <data name="label5.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="label5.Location" type="System.Drawing.Point, System.Drawing">
-    <value>15, 230</value>
+    <value>9, 214</value>
   </data>
   <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
     <value>52, 13</value>
@@ -521,7 +521,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;label5.ZOrder" xml:space="preserve">
-    <value>25</value>
+    <value>56</value>
   </data>
   <data name="S4.Items" xml:space="preserve">
     <value>0</value>
@@ -587,7 +587,7 @@
     <value>20</value>
   </data>
   <data name="S4.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 222</value>
+    <value>84, 206</value>
   </data>
   <data name="S4.Size" type="System.Drawing.Size, System.Drawing">
     <value>80, 21</value>
@@ -609,13 +609,13 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;S4.ZOrder" xml:space="preserve">
-    <value>26</value>
+    <value>57</value>
   </data>
   <data name="label6.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="label6.Location" type="System.Drawing.Point, System.Drawing">
-    <value>15, 257</value>
+    <value>9, 241</value>
   </data>
   <data name="label6.Size" type="System.Drawing.Size, System.Drawing">
     <value>28, 13</value>
@@ -636,13 +636,13 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;label6.ZOrder" xml:space="preserve">
-    <value>23</value>
+    <value>54</value>
   </data>
   <data name="S5.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 249</value>
+    <value>84, 233</value>
   </data>
   <data name="S5.Size" type="System.Drawing.Size, System.Drawing">
-    <value>80, 21</value>
+    <value>80, 20</value>
   </data>
   <data name="S5.TabIndex" type="System.Int32, mscorlib">
     <value>15</value>
@@ -661,13 +661,13 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;S5.ZOrder" xml:space="preserve">
-    <value>24</value>
+    <value>55</value>
   </data>
   <data name="label7.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="label7.Location" type="System.Drawing.Point, System.Drawing">
-    <value>15, 284</value>
+    <value>9, 268</value>
   </data>
   <data name="label7.Size" type="System.Drawing.Size, System.Drawing">
     <value>44, 13</value>
@@ -688,13 +688,13 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;label7.ZOrder" xml:space="preserve">
-    <value>21</value>
+    <value>52</value>
   </data>
   <data name="S6.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 276</value>
+    <value>84, 260</value>
   </data>
   <data name="S6.Size" type="System.Drawing.Size, System.Drawing">
-    <value>80, 21</value>
+    <value>80, 20</value>
   </data>
   <data name="S6.TabIndex" type="System.Int32, mscorlib">
     <value>17</value>
@@ -713,13 +713,13 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;S6.ZOrder" xml:space="preserve">
-    <value>22</value>
+    <value>53</value>
   </data>
   <data name="label8.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="label8.Location" type="System.Drawing.Point, System.Drawing">
-    <value>15, 311</value>
+    <value>9, 295</value>
   </data>
   <data name="label8.Size" type="System.Drawing.Size, System.Drawing">
     <value>61, 13</value>
@@ -740,13 +740,13 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;label8.ZOrder" xml:space="preserve">
-    <value>19</value>
+    <value>50</value>
   </data>
   <data name="S7.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 303</value>
+    <value>84, 287</value>
   </data>
   <data name="S7.Size" type="System.Drawing.Size, System.Drawing">
-    <value>80, 21</value>
+    <value>80, 20</value>
   </data>
   <data name="S7.TabIndex" type="System.Int32, mscorlib">
     <value>19</value>
@@ -765,13 +765,16 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;S7.ZOrder" xml:space="preserve">
-    <value>20</value>
+    <value>51</value>
+  </data>
+  <data name="RS7.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
   </data>
   <data name="RS7.Location" type="System.Drawing.Point, System.Drawing">
-    <value>201, 303</value>
+    <value>499, 287</value>
   </data>
   <data name="RS7.Size" type="System.Drawing.Size, System.Drawing">
-    <value>80, 21</value>
+    <value>80, 20</value>
   </data>
   <data name="RS7.TabIndex" type="System.Int32, mscorlib">
     <value>29</value>
@@ -790,13 +793,16 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;RS7.ZOrder" xml:space="preserve">
-    <value>10</value>
+    <value>41</value>
+  </data>
+  <data name="RS6.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
   </data>
   <data name="RS6.Location" type="System.Drawing.Point, System.Drawing">
-    <value>201, 276</value>
+    <value>499, 260</value>
   </data>
   <data name="RS6.Size" type="System.Drawing.Size, System.Drawing">
-    <value>80, 21</value>
+    <value>80, 20</value>
   </data>
   <data name="RS6.TabIndex" type="System.Int32, mscorlib">
     <value>28</value>
@@ -815,13 +821,16 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;RS6.ZOrder" xml:space="preserve">
-    <value>11</value>
+    <value>42</value>
+  </data>
+  <data name="RS5.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
   </data>
   <data name="RS5.Location" type="System.Drawing.Point, System.Drawing">
-    <value>201, 249</value>
+    <value>499, 233</value>
   </data>
   <data name="RS5.Size" type="System.Drawing.Size, System.Drawing">
-    <value>80, 21</value>
+    <value>80, 20</value>
   </data>
   <data name="RS5.TabIndex" type="System.Int32, mscorlib">
     <value>27</value>
@@ -840,7 +849,10 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;RS5.ZOrder" xml:space="preserve">
-    <value>12</value>
+    <value>43</value>
+  </data>
+  <data name="RS4.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
   </data>
   <data name="RS4.Items" xml:space="preserve">
     <value>0</value>
@@ -906,7 +918,7 @@
     <value>20</value>
   </data>
   <data name="RS4.Location" type="System.Drawing.Point, System.Drawing">
-    <value>201, 222</value>
+    <value>499, 206</value>
   </data>
   <data name="RS4.Size" type="System.Drawing.Size, System.Drawing">
     <value>80, 21</value>
@@ -928,7 +940,10 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;RS4.ZOrder" xml:space="preserve">
-    <value>13</value>
+    <value>44</value>
+  </data>
+  <data name="RS3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
   </data>
   <data name="RS3.Items" xml:space="preserve">
     <value>1</value>
@@ -1021,7 +1036,7 @@
     <value>30</value>
   </data>
   <data name="RS3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>201, 195</value>
+    <value>499, 179</value>
   </data>
   <data name="RS3.Size" type="System.Drawing.Size, System.Drawing">
     <value>80, 21</value>
@@ -1042,7 +1057,10 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;RS3.ZOrder" xml:space="preserve">
-    <value>14</value>
+    <value>45</value>
+  </data>
+  <data name="RS2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
   </data>
   <data name="RS2.Items" xml:space="preserve">
     <value>250</value>
@@ -1075,7 +1093,7 @@
     <value>2</value>
   </data>
   <data name="RS2.Location" type="System.Drawing.Point, System.Drawing">
-    <value>201, 168</value>
+    <value>499, 152</value>
   </data>
   <data name="RS2.Size" type="System.Drawing.Size, System.Drawing">
     <value>80, 21</value>
@@ -1096,7 +1114,10 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;RS2.ZOrder" xml:space="preserve">
-    <value>15</value>
+    <value>46</value>
+  </data>
+  <data name="RS1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
   </data>
   <data name="RS1.Items" xml:space="preserve">
     <value>115</value>
@@ -1126,7 +1147,7 @@
     <value>1</value>
   </data>
   <data name="RS1.Location" type="System.Drawing.Point, System.Drawing">
-    <value>201, 141</value>
+    <value>499, 125</value>
   </data>
   <data name="RS1.Size" type="System.Drawing.Size, System.Drawing">
     <value>80, 21</value>
@@ -1148,16 +1169,16 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;RS1.ZOrder" xml:space="preserve">
-    <value>17</value>
+    <value>48</value>
   </data>
   <data name="RSSI.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 51</value>
+    <value>84, 51</value>
   </data>
   <data name="RSSI.Multiline" type="System.Boolean, mscorlib">
     <value>True</value>
   </data>
   <data name="RSSI.Size" type="System.Drawing.Size, System.Drawing">
-    <value>194, 58</value>
+    <value>302, 39</value>
   </data>
   <data name="RSSI.TabIndex" type="System.Int32, mscorlib">
     <value>34</value>
@@ -1182,348 +1203,1578 @@ which result in a valid packet CRC
     <value>$this</value>
   </data>
   <data name="&gt;&gt;RSSI.ZOrder" xml:space="preserve">
+    <value>36</value>
+  </data>
+  <data name="S10.Items" xml:space="preserve">
     <value>5</value>
   </data>
-  <data name="RS0.Location" type="System.Drawing.Point, System.Drawing">
-    <value>201, 115</value>
+  <data name="S10.Items1" xml:space="preserve">
+    <value>6</value>
   </data>
-  <data name="RS0.Size" type="System.Drawing.Size, System.Drawing">
-    <value>80, 20</value>
+  <data name="S10.Items2" xml:space="preserve">
+    <value>7</value>
   </data>
-  <data name="RS0.TabIndex" type="System.Int32, mscorlib">
-    <value>23</value>
+  <data name="S10.Items3" xml:space="preserve">
+    <value>8</value>
   </data>
-  <data name="&gt;&gt;RS0.Name" xml:space="preserve">
-    <value>RS0</value>
+  <data name="S10.Items4" xml:space="preserve">
+    <value>9</value>
   </data>
-  <data name="&gt;&gt;RS0.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="S10.Items5" xml:space="preserve">
+    <value>10</value>
   </data>
-  <data name="&gt;&gt;RS0.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="S10.Items6" xml:space="preserve">
+    <value>11</value>
   </data>
-  <data name="&gt;&gt;RS0.ZOrder" xml:space="preserve">
+  <data name="S10.Items7" xml:space="preserve">
+    <value>12</value>
+  </data>
+  <data name="S10.Items8" xml:space="preserve">
+    <value>13</value>
+  </data>
+  <data name="S10.Items9" xml:space="preserve">
+    <value>14</value>
+  </data>
+  <data name="S10.Items10" xml:space="preserve">
+    <value>15</value>
+  </data>
+  <data name="S10.Items11" xml:space="preserve">
     <value>16</value>
   </data>
-  <data name="label9.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
+  <data name="S10.Items12" xml:space="preserve">
+    <value>17</value>
   </data>
-  <data name="label9.Location" type="System.Drawing.Point, System.Drawing">
-    <value>108, 9</value>
+  <data name="S10.Items13" xml:space="preserve">
+    <value>18</value>
   </data>
-  <data name="label9.Size" type="System.Drawing.Size, System.Drawing">
-    <value>33, 13</value>
+  <data name="S10.Items14" xml:space="preserve">
+    <value>19</value>
   </data>
-  <data name="label9.TabIndex" type="System.Int32, mscorlib">
+  <data name="S10.Items15" xml:space="preserve">
+    <value>20</value>
+  </data>
+  <data name="S10.Items16" xml:space="preserve">
     <value>30</value>
   </data>
-  <data name="label9.Text" xml:space="preserve">
-    <value>Local</value>
+  <data name="S10.Items17" xml:space="preserve">
+    <value>40</value>
   </data>
-  <data name="&gt;&gt;label9.Name" xml:space="preserve">
-    <value>label9</value>
+  <data name="S10.Items18" xml:space="preserve">
+    <value>50</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 name="S10.Location" type="System.Drawing.Point, System.Drawing">
+    <value>302, 155</value>
   </data>
-  <data name="&gt;&gt;label9.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="S10.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 21</value>
   </data>
-  <data name="&gt;&gt;label9.ZOrder" xml:space="preserve">
-    <value>9</value>
+  <data name="S10.TabIndex" type="System.Int32, mscorlib">
+    <value>42</value>
   </data>
-  <data name="label10.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
+  <data name="S10.ToolTip" xml:space="preserve">
+    <value>TXPOWER is the transmit power in dBm. 20dBm is 100mW. It is useful to set this to lower levels for short range testing.
+</value>
   </data>
-  <data name="label10.Location" type="System.Drawing.Point, System.Drawing">
-    <value>225, 9</value>
+  <data name="&gt;&gt;S10.Name" xml:space="preserve">
+    <value>S10</value>
   </data>
-  <data name="label10.Size" type="System.Drawing.Size, System.Drawing">
-    <value>44, 13</value>
+  <data name="&gt;&gt;S10.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="label10.TabIndex" type="System.Int32, mscorlib">
-    <value>31</value>
+  <data name="&gt;&gt;S10.Parent" xml:space="preserve">
+    <value>$this</value>
   </data>
-  <data name="label10.Text" xml:space="preserve">
-    <value>Remote</value>
+  <data name="&gt;&gt;S10.ZOrder" xml:space="preserve">
+    <value>29</value>
   </data>
-  <data name="&gt;&gt;label10.Name" xml:space="preserve">
-    <value>label10</value>
+  <data name="S11.Items" xml:space="preserve">
+    <value>10</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 name="S11.Items1" xml:space="preserve">
+    <value>20</value>
   </data>
-  <data name="&gt;&gt;label10.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="S11.Items2" xml:space="preserve">
+    <value>30</value>
   </data>
-  <data name="&gt;&gt;label10.ZOrder" xml:space="preserve">
-    <value>8</value>
+  <data name="S11.Items3" xml:space="preserve">
+    <value>40</value>
   </data>
-  <data name="RTI.Location" type="System.Drawing.Point, System.Drawing">
-    <value>201, 25</value>
+  <data name="S11.Items4" xml:space="preserve">
+    <value>50</value>
   </data>
-  <data name="RTI.Size" type="System.Drawing.Size, System.Drawing">
-    <value>80, 20</value>
+  <data name="S11.Items5" xml:space="preserve">
+    <value>60</value>
   </data>
-  <data name="RTI.TabIndex" type="System.Int32, mscorlib">
-    <value>33</value>
+  <data name="S11.Items6" xml:space="preserve">
+    <value>70</value>
   </data>
-  <data name="&gt;&gt;RTI.Name" xml:space="preserve">
-    <value>RTI</value>
+  <data name="S11.Items7" xml:space="preserve">
+    <value>80</value>
   </data>
-  <data name="&gt;&gt;RTI.Type" xml:space="preserve">
-    <value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="S11.Items8" xml:space="preserve">
+    <value>90</value>
   </data>
-  <data name="&gt;&gt;RTI.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="S11.Items9" xml:space="preserve">
+    <value>100</value>
   </data>
-  <data name="&gt;&gt;RTI.ZOrder" xml:space="preserve">
-    <value>6</value>
+  <data name="S11.Location" type="System.Drawing.Point, System.Drawing">
+    <value>302, 182</value>
   </data>
-  <data name="ATI.Location" type="System.Drawing.Point, System.Drawing">
-    <value>87, 25</value>
+  <data name="S11.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 21</value>
   </data>
-  <data name="ATI.Size" type="System.Drawing.Size, System.Drawing">
-    <value>80, 20</value>
+  <data name="S11.TabIndex" type="System.Int32, mscorlib">
+    <value>43</value>
   </data>
-  <data name="ATI.TabIndex" type="System.Int32, mscorlib">
-    <value>32</value>
+  <data name="S11.ToolTip" xml:space="preserve">
+    <value>TXPOWER is the transmit power in dBm. 20dBm is 100mW. It is useful to set this to lower levels for short range testing.
+</value>
   </data>
-  <data name="&gt;&gt;ATI.Name" xml:space="preserve">
-    <value>ATI</value>
+  <data name="&gt;&gt;S11.Name" xml:space="preserve">
+    <value>S11</value>
   </data>
-  <data name="&gt;&gt;ATI.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;S11.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;ATI.Parent" xml:space="preserve">
+  <data name="&gt;&gt;S11.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;ATI.ZOrder" xml:space="preserve">
-    <value>7</value>
+  <data name="&gt;&gt;S11.ZOrder" xml:space="preserve">
+    <value>28</value>
   </data>
-  <data name="label11.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
+  <data name="S12.Items" xml:space="preserve">
+    <value>0</value>
   </data>
-  <data name="label11.Location" type="System.Drawing.Point, System.Drawing">
-    <value>15, 32</value>
+  <data name="S12.Items1" xml:space="preserve">
+    <value>25</value>
   </data>
-  <data name="label11.Size" type="System.Drawing.Size, System.Drawing">
-    <value>42, 13</value>
+  <data name="S12.Location" type="System.Drawing.Point, System.Drawing">
+    <value>302, 209</value>
   </data>
-  <data name="label11.TabIndex" type="System.Int32, mscorlib">
-    <value>36</value>
+  <data name="S12.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 21</value>
   </data>
-  <data name="label11.Text" xml:space="preserve">
-    <value>Version</value>
+  <data name="S12.TabIndex" type="System.Int32, mscorlib">
+    <value>44</value>
   </data>
-  <data name="&gt;&gt;label11.Name" xml:space="preserve">
-    <value>label11</value>
+  <data name="S12.ToolTip" xml:space="preserve">
+    <value>TXPOWER is the transmit power in dBm. 20dBm is 100mW. It is useful to set this to lower levels for short range testing.
+</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 name="&gt;&gt;S12.Name" xml:space="preserve">
+    <value>S12</value>
   </data>
-  <data name="&gt;&gt;label11.Parent" xml:space="preserve">
+  <data name="&gt;&gt;S12.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;S12.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;label11.ZOrder" xml:space="preserve">
-    <value>4</value>
+  <data name="&gt;&gt;S12.ZOrder" xml:space="preserve">
+    <value>27</value>
   </data>
-  <data name="label12.AutoSize" type="System.Boolean, mscorlib">
-    <value>True</value>
+  <data name="RS12.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
   </data>
-  <data name="label12.Location" type="System.Drawing.Point, System.Drawing">
-    <value>15, 58</value>
+  <data name="RS12.Items" xml:space="preserve">
+    <value>0</value>
   </data>
-  <data name="label12.Size" type="System.Drawing.Size, System.Drawing">
-    <value>32, 13</value>
+  <data name="RS12.Items1" xml:space="preserve">
+    <value>25</value>
   </data>
-  <data name="label12.TabIndex" type="System.Int32, mscorlib">
-    <value>37</value>
+  <data name="RS12.Location" type="System.Drawing.Point, System.Drawing">
+    <value>678, 205</value>
   </data>
-  <data name="label12.Text" xml:space="preserve">
-    <value>RSSI</value>
+  <data name="RS12.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 21</value>
   </data>
-  <data name="&gt;&gt;label12.Name" xml:space="preserve">
-    <value>label12</value>
+  <data name="RS12.TabIndex" type="System.Int32, mscorlib">
+    <value>56</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 name="RS12.ToolTip" xml:space="preserve">
+    <value>TXPOWER is the transmit power in dBm. 20dBm is 100mW. It is useful to set this to lower levels for short range testing.
+</value>
   </data>
-  <data name="&gt;&gt;label12.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="&gt;&gt;RS12.Name" xml:space="preserve">
+    <value>RS12</value>
   </data>
-  <data name="&gt;&gt;label12.ZOrder" xml:space="preserve">
-    <value>3</value>
+  <data name="&gt;&gt;RS12.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="BUT_savesettings.Enabled" type="System.Boolean, mscorlib">
-    <value>False</value>
+  <data name="&gt;&gt;RS12.Parent" xml:space="preserve">
+    <value>$this</value>
   </data>
-  <data name="BUT_savesettings.Location" type="System.Drawing.Point, System.Drawing">
-    <value>99, 330</value>
+  <data name="&gt;&gt;RS12.ZOrder" xml:space="preserve">
+    <value>17</value>
   </data>
-  <data name="BUT_savesettings.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 39</value>
+  <data name="RS11.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
   </data>
-  <data name="BUT_savesettings.TabIndex" type="System.Int32, mscorlib">
-    <value>21</value>
+  <data name="RS11.Items" xml:space="preserve">
+    <value>10</value>
   </data>
-  <data name="BUT_savesettings.Text" xml:space="preserve">
-    <value>Save Settings</value>
+  <data name="RS11.Items1" xml:space="preserve">
+    <value>20</value>
   </data>
-  <data name="&gt;&gt;BUT_savesettings.Name" xml:space="preserve">
-    <value>BUT_savesettings</value>
+  <data name="RS11.Items2" xml:space="preserve">
+    <value>30</value>
   </data>
-  <data name="&gt;&gt;BUT_savesettings.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4491.33622, Culture=neutral, PublicKeyToken=null</value>
+  <data name="RS11.Items3" xml:space="preserve">
+    <value>40</value>
   </data>
-  <data name="&gt;&gt;BUT_savesettings.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="RS11.Items4" xml:space="preserve">
+    <value>50</value>
   </data>
-  <data name="&gt;&gt;BUT_savesettings.ZOrder" xml:space="preserve">
-    <value>18</value>
+  <data name="RS11.Items5" xml:space="preserve">
+    <value>60</value>
   </data>
-  <data name="BUT_getcurrent.Location" type="System.Drawing.Point, System.Drawing">
-    <value>18, 330</value>
+  <data name="RS11.Items6" xml:space="preserve">
+    <value>70</value>
   </data>
-  <data name="BUT_getcurrent.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 39</value>
+  <data name="RS11.Items7" xml:space="preserve">
+    <value>80</value>
   </data>
-  <data name="BUT_getcurrent.TabIndex" type="System.Int32, mscorlib">
-    <value>6</value>
+  <data name="RS11.Items8" xml:space="preserve">
+    <value>90</value>
   </data>
-  <data name="BUT_getcurrent.Text" xml:space="preserve">
-    <value>Load Settings</value>
+  <data name="RS11.Items9" xml:space="preserve">
+    <value>100</value>
   </data>
-  <data name="&gt;&gt;BUT_getcurrent.Name" xml:space="preserve">
-    <value>BUT_getcurrent</value>
+  <data name="RS11.Location" type="System.Drawing.Point, System.Drawing">
+    <value>678, 178</value>
   </data>
-  <data name="&gt;&gt;BUT_getcurrent.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4491.33622, Culture=neutral, PublicKeyToken=null</value>
+  <data name="RS11.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 21</value>
   </data>
-  <data name="&gt;&gt;BUT_getcurrent.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="RS11.TabIndex" type="System.Int32, mscorlib">
+    <value>55</value>
   </data>
-  <data name="&gt;&gt;BUT_getcurrent.ZOrder" xml:space="preserve">
-    <value>33</value>
+  <data name="RS11.ToolTip" xml:space="preserve">
+    <value>TXPOWER is the transmit power in dBm. 20dBm is 100mW. It is useful to set this to lower levels for short range testing.
+</value>
   </data>
-  <data name="lbl_status.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
-    <value>Bottom, Left</value>
+  <data name="&gt;&gt;RS11.Name" xml:space="preserve">
+    <value>RS11</value>
   </data>
-  <data name="lbl_status.Location" type="System.Drawing.Point, System.Drawing">
-    <value>12, 374</value>
+  <data name="&gt;&gt;RS11.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="lbl_status.Size" type="System.Drawing.Size, System.Drawing">
-    <value>294, 22</value>
+  <data name="&gt;&gt;RS11.Parent" xml:space="preserve">
+    <value>$this</value>
   </data>
-  <data name="lbl_status.TabIndex" type="System.Int32, mscorlib">
-    <value>3</value>
+  <data name="&gt;&gt;RS11.ZOrder" xml:space="preserve">
+    <value>18</value>
   </data>
-  <data name="&gt;&gt;lbl_status.Name" xml:space="preserve">
-    <value>lbl_status</value>
+  <data name="RS10.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
   </data>
-  <data name="&gt;&gt;lbl_status.Type" xml:space="preserve">
-    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  <data name="RS10.Items" xml:space="preserve">
+    <value>5</value>
   </data>
-  <data name="&gt;&gt;lbl_status.Parent" xml:space="preserve">
-    <value>$this</value>
+  <data name="RS10.Items1" xml:space="preserve">
+    <value>6</value>
   </data>
-  <data name="&gt;&gt;lbl_status.ZOrder" xml:space="preserve">
-    <value>36</value>
+  <data name="RS10.Items2" xml:space="preserve">
+    <value>7</value>
   </data>
-  <data name="BUT_upload.Location" type="System.Drawing.Point, System.Drawing">
-    <value>180, 330</value>
+  <data name="RS10.Items3" xml:space="preserve">
+    <value>8</value>
+  </data>
+  <data name="RS10.Items4" xml:space="preserve">
+    <value>9</value>
+  </data>
+  <data name="RS10.Items5" xml:space="preserve">
+    <value>10</value>
+  </data>
+  <data name="RS10.Items6" xml:space="preserve">
+    <value>11</value>
+  </data>
+  <data name="RS10.Items7" xml:space="preserve">
+    <value>12</value>
+  </data>
+  <data name="RS10.Items8" xml:space="preserve">
+    <value>13</value>
+  </data>
+  <data name="RS10.Items9" xml:space="preserve">
+    <value>14</value>
+  </data>
+  <data name="RS10.Items10" xml:space="preserve">
+    <value>15</value>
+  </data>
+  <data name="RS10.Items11" xml:space="preserve">
+    <value>16</value>
+  </data>
+  <data name="RS10.Items12" xml:space="preserve">
+    <value>17</value>
+  </data>
+  <data name="RS10.Items13" xml:space="preserve">
+    <value>18</value>
+  </data>
+  <data name="RS10.Items14" xml:space="preserve">
+    <value>19</value>
+  </data>
+  <data name="RS10.Items15" xml:space="preserve">
+    <value>20</value>
+  </data>
+  <data name="RS10.Items16" xml:space="preserve">
+    <value>30</value>
+  </data>
+  <data name="RS10.Items17" xml:space="preserve">
+    <value>40</value>
+  </data>
+  <data name="RS10.Items18" xml:space="preserve">
+    <value>50</value>
+  </data>
+  <data name="RS10.Location" type="System.Drawing.Point, System.Drawing">
+    <value>678, 151</value>
+  </data>
+  <data name="RS10.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 21</value>
+  </data>
+  <data name="RS10.TabIndex" type="System.Int32, mscorlib">
+    <value>54</value>
+  </data>
+  <data name="RS10.ToolTip" xml:space="preserve">
+    <value>TXPOWER is the transmit power in dBm. 20dBm is 100mW. It is useful to set this to lower levels for short range testing.
+</value>
+  </data>
+  <data name="&gt;&gt;RS10.Name" xml:space="preserve">
+    <value>RS10</value>
+  </data>
+  <data name="&gt;&gt;RS10.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;RS10.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;RS10.ZOrder" xml:space="preserve">
+    <value>19</value>
+  </data>
+  <data name="S9.Items" xml:space="preserve">
+    <value>902000</value>
+  </data>
+  <data name="S9.Items1" xml:space="preserve">
+    <value>907500</value>
+  </data>
+  <data name="S9.Items2" xml:space="preserve">
+    <value>915000</value>
+  </data>
+  <data name="S9.Items3" xml:space="preserve">
+    <value>921000</value>
+  </data>
+  <data name="S9.Items4" xml:space="preserve">
+    <value>928000</value>
+  </data>
+  <data name="S9.Items5" xml:space="preserve">
+    <value>433050</value>
+  </data>
+  <data name="S9.Items6" xml:space="preserve">
+    <value>434040</value>
+  </data>
+  <data name="S9.Items7" xml:space="preserve">
+    <value>434790</value>
+  </data>
+  <data name="S9.Items8" xml:space="preserve">
+    <value>435000</value>
+  </data>
+  <data name="S9.Location" type="System.Drawing.Point, System.Drawing">
+    <value>302, 128</value>
+  </data>
+  <data name="S9.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 21</value>
+  </data>
+  <data name="S9.TabIndex" type="System.Int32, mscorlib">
+    <value>41</value>
+  </data>
+  <data name="&gt;&gt;S9.Name" xml:space="preserve">
+    <value>S9</value>
+  </data>
+  <data name="&gt;&gt;S9.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;S9.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;S9.ZOrder" xml:space="preserve">
+    <value>30</value>
+  </data>
+  <data name="S8.Items" xml:space="preserve">
+    <value>902000</value>
+  </data>
+  <data name="S8.Items1" xml:space="preserve">
+    <value>907500</value>
+  </data>
+  <data name="S8.Items2" xml:space="preserve">
+    <value>915000</value>
+  </data>
+  <data name="S8.Items3" xml:space="preserve">
+    <value>921000</value>
+  </data>
+  <data name="S8.Items4" xml:space="preserve">
+    <value>928000</value>
+  </data>
+  <data name="S8.Items5" xml:space="preserve">
+    <value>433050</value>
+  </data>
+  <data name="S8.Items6" xml:space="preserve">
+    <value>434040</value>
+  </data>
+  <data name="S8.Items7" xml:space="preserve">
+    <value>434790</value>
+  </data>
+  <data name="S8.Items8" xml:space="preserve">
+    <value>435000</value>
+  </data>
+  <data name="S8.Items9" xml:space="preserve">
+    <value />
+  </data>
+  <data name="S8.Items10" xml:space="preserve">
+    <value />
+  </data>
+  <data name="S8.Items11" xml:space="preserve">
+    <value />
+  </data>
+  <data name="S8.Location" type="System.Drawing.Point, System.Drawing">
+    <value>302, 103</value>
+  </data>
+  <data name="S8.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 21</value>
+  </data>
+  <data name="S8.TabIndex" type="System.Int32, mscorlib">
+    <value>46</value>
+  </data>
+  <data name="&gt;&gt;S8.Name" xml:space="preserve">
+    <value>S8</value>
+  </data>
+  <data name="&gt;&gt;S8.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;S8.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;S8.ZOrder" xml:space="preserve">
+    <value>26</value>
+  </data>
+  <data name="RS8.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="RS8.Items" xml:space="preserve">
+    <value>902000</value>
+  </data>
+  <data name="RS8.Items1" xml:space="preserve">
+    <value>907500</value>
+  </data>
+  <data name="RS8.Items2" xml:space="preserve">
+    <value>915000</value>
+  </data>
+  <data name="RS8.Items3" xml:space="preserve">
+    <value>921000</value>
+  </data>
+  <data name="RS8.Items4" xml:space="preserve">
+    <value>928000</value>
+  </data>
+  <data name="RS8.Items5" xml:space="preserve">
+    <value>433050</value>
+  </data>
+  <data name="RS8.Items6" xml:space="preserve">
+    <value>434040</value>
+  </data>
+  <data name="RS8.Items7" xml:space="preserve">
+    <value>434790</value>
+  </data>
+  <data name="RS8.Items8" xml:space="preserve">
+    <value>435000</value>
+  </data>
+  <data name="RS8.Location" type="System.Drawing.Point, System.Drawing">
+    <value>678, 99</value>
+  </data>
+  <data name="RS8.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 21</value>
+  </data>
+  <data name="RS8.TabIndex" type="System.Int32, mscorlib">
+    <value>58</value>
+  </data>
+  <data name="&gt;&gt;RS8.Name" xml:space="preserve">
+    <value>RS8</value>
+  </data>
+  <data name="&gt;&gt;RS8.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;RS8.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;RS8.ZOrder" xml:space="preserve">
+    <value>16</value>
+  </data>
+  <data name="RS9.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="RS9.Items" xml:space="preserve">
+    <value>902000</value>
+  </data>
+  <data name="RS9.Items1" xml:space="preserve">
+    <value>907500</value>
+  </data>
+  <data name="RS9.Items2" xml:space="preserve">
+    <value>915000</value>
+  </data>
+  <data name="RS9.Items3" xml:space="preserve">
+    <value>921000</value>
+  </data>
+  <data name="RS9.Items4" xml:space="preserve">
+    <value>928000</value>
+  </data>
+  <data name="RS9.Items5" xml:space="preserve">
+    <value>433050</value>
+  </data>
+  <data name="RS9.Items6" xml:space="preserve">
+    <value>434040</value>
+  </data>
+  <data name="RS9.Items7" xml:space="preserve">
+    <value>434790</value>
+  </data>
+  <data name="RS9.Items8" xml:space="preserve">
+    <value>435000</value>
+  </data>
+  <data name="RS9.Location" type="System.Drawing.Point, System.Drawing">
+    <value>678, 124</value>
+  </data>
+  <data name="RS9.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 21</value>
+  </data>
+  <data name="RS9.TabIndex" type="System.Int32, mscorlib">
+    <value>53</value>
+  </data>
+  <data name="&gt;&gt;RS9.Name" xml:space="preserve">
+    <value>RS9</value>
+  </data>
+  <data name="&gt;&gt;RS9.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;RS9.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;RS9.ZOrder" xml:space="preserve">
+    <value>20</value>
+  </data>
+  <data name="RS0.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="RS0.Location" type="System.Drawing.Point, System.Drawing">
+    <value>499, 99</value>
+  </data>
+  <data name="RS0.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 20</value>
+  </data>
+  <data name="RS0.TabIndex" type="System.Int32, mscorlib">
+    <value>23</value>
+  </data>
+  <data name="&gt;&gt;RS0.Name" xml:space="preserve">
+    <value>RS0</value>
+  </data>
+  <data name="&gt;&gt;RS0.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;RS0.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;RS0.ZOrder" xml:space="preserve">
+    <value>47</value>
+  </data>
+  <data name="label9.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label9.Location" type="System.Drawing.Point, System.Drawing">
+    <value>181, 9</value>
+  </data>
+  <data name="label9.Size" type="System.Drawing.Size, System.Drawing">
+    <value>33, 13</value>
+  </data>
+  <data name="label9.TabIndex" type="System.Int32, mscorlib">
+    <value>30</value>
+  </data>
+  <data name="label9.Text" xml:space="preserve">
+    <value>Local</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label9.ZOrder" xml:space="preserve">
+    <value>40</value>
+  </data>
+  <data name="label10.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label10.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label10.Location" type="System.Drawing.Point, System.Drawing">
+    <value>563, 9</value>
+  </data>
+  <data name="label10.Size" type="System.Drawing.Size, System.Drawing">
+    <value>44, 13</value>
+  </data>
+  <data name="label10.TabIndex" type="System.Int32, mscorlib">
+    <value>31</value>
+  </data>
+  <data name="label10.Text" xml:space="preserve">
+    <value>Remote</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label10.ZOrder" xml:space="preserve">
+    <value>39</value>
+  </data>
+  <data name="RTI.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="RTI.Location" type="System.Drawing.Point, System.Drawing">
+    <value>543, 25</value>
+  </data>
+  <data name="RTI.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 20</value>
+  </data>
+  <data name="RTI.TabIndex" type="System.Int32, mscorlib">
+    <value>33</value>
+  </data>
+  <data name="&gt;&gt;RTI.Name" xml:space="preserve">
+    <value>RTI</value>
+  </data>
+  <data name="&gt;&gt;RTI.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;RTI.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;RTI.ZOrder" xml:space="preserve">
+    <value>37</value>
+  </data>
+  <data name="ATI.Location" type="System.Drawing.Point, System.Drawing">
+    <value>157, 25</value>
+  </data>
+  <data name="ATI.Size" type="System.Drawing.Size, System.Drawing">
+    <value>80, 20</value>
+  </data>
+  <data name="ATI.TabIndex" type="System.Int32, mscorlib">
+    <value>32</value>
+  </data>
+  <data name="&gt;&gt;ATI.Name" xml:space="preserve">
+    <value>ATI</value>
+  </data>
+  <data name="&gt;&gt;ATI.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;ATI.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;ATI.ZOrder" xml:space="preserve">
+    <value>38</value>
+  </data>
+  <data name="label11.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label11.Location" type="System.Drawing.Point, System.Drawing">
+    <value>9, 32</value>
+  </data>
+  <data name="label11.Size" type="System.Drawing.Size, System.Drawing">
+    <value>42, 13</value>
+  </data>
+  <data name="label11.TabIndex" type="System.Int32, mscorlib">
+    <value>36</value>
+  </data>
+  <data name="label11.Text" xml:space="preserve">
+    <value>Version</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label11.ZOrder" xml:space="preserve">
+    <value>35</value>
+  </data>
+  <data name="label12.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label12.Location" type="System.Drawing.Point, System.Drawing">
+    <value>9, 58</value>
+  </data>
+  <data name="label12.Size" type="System.Drawing.Size, System.Drawing">
+    <value>32, 13</value>
+  </data>
+  <data name="label12.TabIndex" type="System.Int32, mscorlib">
+    <value>37</value>
+  </data>
+  <data name="label12.Text" xml:space="preserve">
+    <value>RSSI</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label12.ZOrder" xml:space="preserve">
+    <value>34</value>
+  </data>
+  <data name="BUT_savesettings.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Bottom</value>
+  </data>
+  <data name="BUT_savesettings.Enabled" type="System.Boolean, mscorlib">
+    <value>False</value>
+  </data>
+  <data name="BUT_savesettings.Location" type="System.Drawing.Point, System.Drawing">
+    <value>328, 319</value>
+  </data>
+  <data name="BUT_savesettings.Size" type="System.Drawing.Size, System.Drawing">
+    <value>69, 39</value>
+  </data>
+  <data name="BUT_savesettings.TabIndex" type="System.Int32, mscorlib">
+    <value>21</value>
+  </data>
+  <data name="BUT_savesettings.Text" xml:space="preserve">
+    <value>Save Settings</value>
+  </data>
+  <data name="&gt;&gt;BUT_savesettings.Name" xml:space="preserve">
+    <value>BUT_savesettings</value>
+  </data>
+  <data name="&gt;&gt;BUT_savesettings.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.22181, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;BUT_savesettings.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;BUT_savesettings.ZOrder" xml:space="preserve">
+    <value>49</value>
+  </data>
+  <data name="BUT_getcurrent.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Bottom</value>
+  </data>
+  <data name="BUT_getcurrent.Location" type="System.Drawing.Point, System.Drawing">
+    <value>253, 319</value>
+  </data>
+  <data name="BUT_getcurrent.Size" type="System.Drawing.Size, System.Drawing">
+    <value>69, 39</value>
+  </data>
+  <data name="BUT_getcurrent.TabIndex" type="System.Int32, mscorlib">
+    <value>6</value>
+  </data>
+  <data name="BUT_getcurrent.Text" xml:space="preserve">
+    <value>Load Settings</value>
+  </data>
+  <data name="&gt;&gt;BUT_getcurrent.Name" xml:space="preserve">
+    <value>BUT_getcurrent</value>
+  </data>
+  <data name="&gt;&gt;BUT_getcurrent.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.22181, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;BUT_getcurrent.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;BUT_getcurrent.ZOrder" xml:space="preserve">
+    <value>64</value>
+  </data>
+  <data name="lbl_status.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Bottom, Left, Right</value>
+  </data>
+  <data name="lbl_status.Location" type="System.Drawing.Point, System.Drawing">
+    <value>12, 361</value>
+  </data>
+  <data name="lbl_status.Size" type="System.Drawing.Size, System.Drawing">
+    <value>755, 22</value>
+  </data>
+  <data name="lbl_status.TabIndex" type="System.Int32, mscorlib">
+    <value>3</value>
+  </data>
+  <data name="&gt;&gt;lbl_status.Name" xml:space="preserve">
+    <value>lbl_status</value>
+  </data>
+  <data name="&gt;&gt;lbl_status.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_status.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;lbl_status.ZOrder" xml:space="preserve">
+    <value>67</value>
+  </data>
+  <data name="BUT_upload.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Bottom</value>
+  </data>
+  <data name="BUT_upload.Location" type="System.Drawing.Point, System.Drawing">
+    <value>403, 319</value>
   </data>
   <data name="BUT_upload.Size" type="System.Drawing.Size, System.Drawing">
-    <value>127, 39</value>
+    <value>121, 39</value>
+  </data>
+  <data name="BUT_upload.TabIndex" type="System.Int32, mscorlib">
+    <value>0</value>
+  </data>
+  <data name="BUT_upload.Text" xml:space="preserve">
+    <value>Upload Firmware (Local)</value>
+  </data>
+  <data name="&gt;&gt;BUT_upload.Name" xml:space="preserve">
+    <value>BUT_upload</value>
+  </data>
+  <data name="&gt;&gt;BUT_upload.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.22181, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;BUT_upload.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;BUT_upload.ZOrder" xml:space="preserve">
+    <value>69</value>
+  </data>
+  <data name="BUT_syncS2.Location" type="System.Drawing.Point, System.Drawing">
+    <value>170, 152</value>
+  </data>
+  <data name="BUT_syncS2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>22, 22</value>
+  </data>
+  <data name="BUT_syncS2.TabIndex" type="System.Int32, mscorlib">
+    <value>38</value>
+  </data>
+  <data name="BUT_syncS2.Text" xml:space="preserve">
+    <value>&gt;</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS2.Name" xml:space="preserve">
+    <value>BUT_syncS2</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS2.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.22181, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS2.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS2.ZOrder" xml:space="preserve">
+    <value>33</value>
+  </data>
+  <data name="BUT_syncS3.Location" type="System.Drawing.Point, System.Drawing">
+    <value>170, 179</value>
+  </data>
+  <data name="BUT_syncS3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>22, 22</value>
+  </data>
+  <data name="BUT_syncS3.TabIndex" type="System.Int32, mscorlib">
+    <value>39</value>
+  </data>
+  <data name="BUT_syncS3.Text" xml:space="preserve">
+    <value>&gt;</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS3.Name" xml:space="preserve">
+    <value>BUT_syncS3</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS3.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.22181, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS3.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS3.ZOrder" xml:space="preserve">
+    <value>32</value>
+  </data>
+  <data name="BUT_syncS5.Location" type="System.Drawing.Point, System.Drawing">
+    <value>170, 231</value>
+  </data>
+  <data name="BUT_syncS5.Size" type="System.Drawing.Size, System.Drawing">
+    <value>22, 22</value>
+  </data>
+  <data name="BUT_syncS5.TabIndex" type="System.Int32, mscorlib">
+    <value>40</value>
+  </data>
+  <data name="BUT_syncS5.Text" xml:space="preserve">
+    <value>&gt;</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS5.Name" xml:space="preserve">
+    <value>BUT_syncS5</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS5.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.22181, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS5.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;BUT_syncS5.ZOrder" xml:space="preserve">
+    <value>31</value>
+  </data>
+  <data name="label13.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label13.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label13.Location" type="System.Drawing.Point, System.Drawing">
+    <value>210, 106</value>
+  </data>
+  <data name="label13.Size" type="System.Drawing.Size, System.Drawing">
+    <value>48, 13</value>
+  </data>
+  <data name="label13.TabIndex" type="System.Int32, mscorlib">
+    <value>47</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>Min Freq</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label13.ZOrder" xml:space="preserve">
+    <value>25</value>
+  </data>
+  <data name="label14.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label14.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label14.Location" type="System.Drawing.Point, System.Drawing">
+    <value>210, 131</value>
+  </data>
+  <data name="label14.Size" type="System.Drawing.Size, System.Drawing">
+    <value>51, 13</value>
+  </data>
+  <data name="label14.TabIndex" type="System.Int32, mscorlib">
+    <value>48</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>Max Freq</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label14.ZOrder" xml:space="preserve">
+    <value>24</value>
+  </data>
+  <data name="label15.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label15.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label15.Location" type="System.Drawing.Point, System.Drawing">
+    <value>210, 158</value>
+  </data>
+  <data name="label15.Size" type="System.Drawing.Size, System.Drawing">
+    <value>73, 13</value>
+  </data>
+  <data name="label15.TabIndex" type="System.Int32, mscorlib">
+    <value>49</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value># of Channels</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label15.ZOrder" xml:space="preserve">
+    <value>23</value>
+  </data>
+  <data name="label16.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label16.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label16.Location" type="System.Drawing.Point, System.Drawing">
+    <value>210, 185</value>
+  </data>
+  <data name="label16.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label16.TabIndex" type="System.Int32, mscorlib">
+    <value>50</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>Duty Cycle</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label16.ZOrder" xml:space="preserve">
+    <value>22</value>
+  </data>
+  <data name="label17.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label17.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label17.Location" type="System.Drawing.Point, System.Drawing">
+    <value>210, 212</value>
+  </data>
+  <data name="label17.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 13</value>
   </data>
-  <data name="BUT_upload.TabIndex" type="System.Int32, mscorlib">
-    <value>0</value>
+  <data name="label17.TabIndex" type="System.Int32, mscorlib">
+    <value>51</value>
   </data>
-  <data name="BUT_upload.Text" xml:space="preserve">
-    <value>Upload Firmware (Local)</value>
+  <data name="label17.Text" xml:space="preserve">
+    <value>LBT Rssi</value>
   </data>
-  <data name="&gt;&gt;BUT_upload.Name" xml:space="preserve">
-    <value>BUT_upload</value>
+  <data name="&gt;&gt;label17.Name" xml:space="preserve">
+    <value>label17</value>
   </data>
-  <data name="&gt;&gt;BUT_upload.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4491.33622, Culture=neutral, PublicKeyToken=null</value>
+  <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;BUT_upload.Parent" xml:space="preserve">
+  <data name="&gt;&gt;label17.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;BUT_upload.ZOrder" xml:space="preserve">
-    <value>38</value>
+  <data name="&gt;&gt;label17.ZOrder" xml:space="preserve">
+    <value>21</value>
   </data>
-  <data name="BUT_syncS2.Location" type="System.Drawing.Point, System.Drawing">
-    <value>173, 168</value>
+  <data name="label20.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
   </data>
-  <data name="BUT_syncS2.Size" type="System.Drawing.Size, System.Drawing">
-    <value>22, 23</value>
+  <data name="label20.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
   </data>
-  <data name="BUT_syncS2.TabIndex" type="System.Int32, mscorlib">
-    <value>38</value>
+  <data name="label20.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
   </data>
-  <data name="BUT_syncS2.Text" xml:space="preserve">
+  <data name="label20.Location" type="System.Drawing.Point, System.Drawing">
+    <value>586, 208</value>
+  </data>
+  <data name="label20.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 13</value>
+  </data>
+  <data name="label20.TabIndex" type="System.Int32, mscorlib">
+    <value>63</value>
+  </data>
+  <data name="label20.Text" xml:space="preserve">
+    <value>LBT Rssi</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label20.ZOrder" xml:space="preserve">
+    <value>11</value>
+  </data>
+  <data name="label21.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label21.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label21.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label21.Location" type="System.Drawing.Point, System.Drawing">
+    <value>586, 181</value>
+  </data>
+  <data name="label21.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label21.TabIndex" type="System.Int32, mscorlib">
+    <value>62</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>Duty Cycle</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label21.ZOrder" xml:space="preserve">
+    <value>12</value>
+  </data>
+  <data name="label22.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label22.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label22.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label22.Location" type="System.Drawing.Point, System.Drawing">
+    <value>586, 154</value>
+  </data>
+  <data name="label22.Size" type="System.Drawing.Size, System.Drawing">
+    <value>73, 13</value>
+  </data>
+  <data name="label22.TabIndex" type="System.Int32, mscorlib">
+    <value>61</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value># of Channels</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label22.ZOrder" xml:space="preserve">
+    <value>13</value>
+  </data>
+  <data name="label23.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label23.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label23.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label23.Location" type="System.Drawing.Point, System.Drawing">
+    <value>586, 127</value>
+  </data>
+  <data name="label23.Size" type="System.Drawing.Size, System.Drawing">
+    <value>51, 13</value>
+  </data>
+  <data name="label23.TabIndex" type="System.Int32, mscorlib">
+    <value>60</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>Max Freq</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label23.ZOrder" xml:space="preserve">
+    <value>14</value>
+  </data>
+  <data name="label24.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label24.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label24.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label24.Location" type="System.Drawing.Point, System.Drawing">
+    <value>586, 102</value>
+  </data>
+  <data name="label24.Size" type="System.Drawing.Size, System.Drawing">
+    <value>48, 13</value>
+  </data>
+  <data name="label24.TabIndex" type="System.Int32, mscorlib">
+    <value>59</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>Min Freq</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label24.ZOrder" xml:space="preserve">
+    <value>15</value>
+  </data>
+  <data name="label25.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label25.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label25.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label25.Location" type="System.Drawing.Point, System.Drawing">
+    <value>422, 295</value>
+  </data>
+  <data name="label25.Size" type="System.Drawing.Size, System.Drawing">
+    <value>61, 13</value>
+  </data>
+  <data name="label25.TabIndex" type="System.Int32, mscorlib">
+    <value>72</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>Op Resend</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label25.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="label26.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label26.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label26.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label26.Location" type="System.Drawing.Point, System.Drawing">
+    <value>422, 268</value>
+  </data>
+  <data name="label26.Size" type="System.Drawing.Size, System.Drawing">
+    <value>44, 13</value>
+  </data>
+  <data name="label26.TabIndex" type="System.Int32, mscorlib">
+    <value>71</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>Mavlink</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label26.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
+  <data name="label27.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label27.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label27.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label27.Location" type="System.Drawing.Point, System.Drawing">
+    <value>422, 241</value>
+  </data>
+  <data name="label27.Size" type="System.Drawing.Size, System.Drawing">
+    <value>28, 13</value>
+  </data>
+  <data name="label27.TabIndex" type="System.Int32, mscorlib">
+    <value>70</value>
+  </data>
+  <data name="label27.Text" xml:space="preserve">
+    <value>ECC</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label27.ZOrder" xml:space="preserve">
+    <value>5</value>
+  </data>
+  <data name="label28.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label28.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label28.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label28.Location" type="System.Drawing.Point, System.Drawing">
+    <value>422, 214</value>
+  </data>
+  <data name="label28.Size" type="System.Drawing.Size, System.Drawing">
+    <value>52, 13</value>
+  </data>
+  <data name="label28.TabIndex" type="System.Int32, mscorlib">
+    <value>69</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>Tx Power</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label28.ZOrder" xml:space="preserve">
+    <value>6</value>
+  </data>
+  <data name="label29.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label29.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label29.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label29.Location" type="System.Drawing.Point, System.Drawing">
+    <value>422, 187</value>
+  </data>
+  <data name="label29.Size" type="System.Drawing.Size, System.Drawing">
+    <value>38, 13</value>
+  </data>
+  <data name="label29.TabIndex" type="System.Int32, mscorlib">
+    <value>68</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>Net ID</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label29.ZOrder" xml:space="preserve">
+    <value>7</value>
+  </data>
+  <data name="label30.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label30.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label30.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label30.Location" type="System.Drawing.Point, System.Drawing">
+    <value>422, 160</value>
+  </data>
+  <data name="label30.Size" type="System.Drawing.Size, System.Drawing">
+    <value>53, 13</value>
+  </data>
+  <data name="label30.TabIndex" type="System.Int32, mscorlib">
+    <value>67</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>Air Speed</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label30.ZOrder" xml:space="preserve">
+    <value>8</value>
+  </data>
+  <data name="label31.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label31.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label31.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label31.Location" type="System.Drawing.Point, System.Drawing">
+    <value>422, 106</value>
+  </data>
+  <data name="label31.Size" type="System.Drawing.Size, System.Drawing">
+    <value>39, 13</value>
+  </data>
+  <data name="label31.TabIndex" type="System.Int32, mscorlib">
+    <value>66</value>
+  </data>
+  <data name="label31.Text" xml:space="preserve">
+    <value>Format</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label31.ZOrder" xml:space="preserve">
+    <value>9</value>
+  </data>
+  <data name="label32.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
+    <value>Top, Right</value>
+  </data>
+  <data name="label32.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="label32.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="label32.Location" type="System.Drawing.Point, System.Drawing">
+    <value>422, 133</value>
+  </data>
+  <data name="label32.Size" type="System.Drawing.Size, System.Drawing">
+    <value>32, 13</value>
+  </data>
+  <data name="label32.TabIndex" type="System.Int32, mscorlib">
+    <value>65</value>
+  </data>
+  <data name="label32.Text" xml:space="preserve">
+    <value>Baud</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>$this</value>
+  </data>
+  <data name="&gt;&gt;label32.ZOrder" xml:space="preserve">
+    <value>10</value>
+  </data>
+  <data name="BUT_syncS8.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="BUT_syncS8.Location" type="System.Drawing.Point, System.Drawing">
+    <value>388, 103</value>
+  </data>
+  <data name="BUT_syncS8.Size" type="System.Drawing.Size, System.Drawing">
+    <value>22, 22</value>
+  </data>
+  <data name="BUT_syncS8.TabIndex" type="System.Int32, mscorlib">
+    <value>73</value>
+  </data>
+  <data name="BUT_syncS8.Text" xml:space="preserve">
     <value>&gt;</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS2.Name" xml:space="preserve">
-    <value>BUT_syncS2</value>
+  <data name="&gt;&gt;BUT_syncS8.Name" xml:space="preserve">
+    <value>BUT_syncS8</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS2.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4491.33622, Culture=neutral, PublicKeyToken=null</value>
+  <data name="&gt;&gt;BUT_syncS8.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.22181, Culture=neutral, PublicKeyToken=null</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS2.Parent" xml:space="preserve">
+  <data name="&gt;&gt;BUT_syncS8.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS2.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;BUT_syncS8.ZOrder" xml:space="preserve">
     <value>2</value>
   </data>
-  <data name="BUT_syncS3.Location" type="System.Drawing.Point, System.Drawing">
-    <value>173, 195</value>
+  <data name="BUT_syncS9.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
   </data>
-  <data name="BUT_syncS3.Size" type="System.Drawing.Size, System.Drawing">
-    <value>22, 23</value>
+  <data name="BUT_syncS9.Location" type="System.Drawing.Point, System.Drawing">
+    <value>388, 128</value>
   </data>
-  <data name="BUT_syncS3.TabIndex" type="System.Int32, mscorlib">
-    <value>39</value>
+  <data name="BUT_syncS9.Size" type="System.Drawing.Size, System.Drawing">
+    <value>22, 22</value>
   </data>
-  <data name="BUT_syncS3.Text" xml:space="preserve">
+  <data name="BUT_syncS9.TabIndex" type="System.Int32, mscorlib">
+    <value>74</value>
+  </data>
+  <data name="BUT_syncS9.Text" xml:space="preserve">
     <value>&gt;</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS3.Name" xml:space="preserve">
-    <value>BUT_syncS3</value>
+  <data name="&gt;&gt;BUT_syncS9.Name" xml:space="preserve">
+    <value>BUT_syncS9</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS3.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4491.33622, Culture=neutral, PublicKeyToken=null</value>
+  <data name="&gt;&gt;BUT_syncS9.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.22181, Culture=neutral, PublicKeyToken=null</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS3.Parent" xml:space="preserve">
+  <data name="&gt;&gt;BUT_syncS9.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS3.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;BUT_syncS9.ZOrder" xml:space="preserve">
     <value>1</value>
   </data>
-  <data name="BUT_syncS5.Location" type="System.Drawing.Point, System.Drawing">
-    <value>173, 247</value>
+  <data name="BUT_syncS10.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
   </data>
-  <data name="BUT_syncS5.Size" type="System.Drawing.Size, System.Drawing">
-    <value>22, 23</value>
+  <data name="BUT_syncS10.Location" type="System.Drawing.Point, System.Drawing">
+    <value>388, 154</value>
   </data>
-  <data name="BUT_syncS5.TabIndex" type="System.Int32, mscorlib">
-    <value>40</value>
+  <data name="BUT_syncS10.Size" type="System.Drawing.Size, System.Drawing">
+    <value>22, 22</value>
   </data>
-  <data name="BUT_syncS5.Text" xml:space="preserve">
+  <data name="BUT_syncS10.TabIndex" type="System.Int32, mscorlib">
+    <value>75</value>
+  </data>
+  <data name="BUT_syncS10.Text" xml:space="preserve">
     <value>&gt;</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS5.Name" xml:space="preserve">
-    <value>BUT_syncS5</value>
+  <data name="&gt;&gt;BUT_syncS10.Name" xml:space="preserve">
+    <value>BUT_syncS10</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS5.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4491.33622, Culture=neutral, PublicKeyToken=null</value>
+  <data name="&gt;&gt;BUT_syncS10.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4494.22181, Culture=neutral, PublicKeyToken=null</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS5.Parent" xml:space="preserve">
+  <data name="&gt;&gt;BUT_syncS10.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;BUT_syncS5.ZOrder" xml:space="preserve">
+  <data name="&gt;&gt;BUT_syncS10.ZOrder" xml:space="preserve">
     <value>0</value>
   </data>
   <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
@@ -1533,7 +2784,7 @@ which result in a valid packet CRC
     <value>6, 13</value>
   </data>
   <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
-    <value>334, 482</value>
+    <value>781, 433</value>
   </data>
   <data name="&gt;&gt;toolTip1.Name" xml:space="preserve">
     <value>toolTip1</value>
@@ -1545,6 +2796,6 @@ which result in a valid packet CRC
     <value>_3DRradio</value>
   </data>
   <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>ArdupilotMega.Controls.BackstageView.BackStageViewContentPanel, ArdupilotMegaPlanner, Version=1.1.4491.33622, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.Controls.BackstageView.BackStageViewContentPanel, ArdupilotMegaPlanner, Version=1.1.4494.22181, Culture=neutral, PublicKeyToken=null</value>
   </data>
 </root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb
index 6b7ad7d637c4dc33ac44cf0a20d6f049636d4dd8..bd79f0efdbb1ccb9331c10c706ced183e0dbc441 100644
Binary files a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb and b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb differ
diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/version.txt b/Tools/ArdupilotMegaPlanner/bin/Release/version.txt
index 0212221d02b5e63f17feee71c5f0dede54d8eaf4..1f74e9fd0f8c54f9e3c2bde3095d3c07f3dda6d4 100644
--- a/Tools/ArdupilotMegaPlanner/bin/Release/version.txt
+++ b/Tools/ArdupilotMegaPlanner/bin/Release/version.txt
@@ -1 +1 @@
-1.1.4493.14496
\ No newline at end of file
+1.1.4494.25525
\ No newline at end of file