diff --git a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs
index e84bb86cc685602d932a0fe93bccfb4ed8888735..bb9c99ac2d359aa1a0af88a73863d01ccf14abb1 100644
--- a/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs
+++ b/Tools/ArdupilotMegaPlanner/Controls/BackstageView/BackstageView.cs
@@ -37,6 +37,11 @@ namespace ArdupilotMega.Controls.BackstageView
             pnlMenu.GradColor = this.BackColor;
         }
 
+        protected override void OnPaint(PaintEventArgs e)
+        {
+            base.OnPaint(e);
+        }
+
 
         public override Color BackColor
         {
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.Designer.cs
index fcd141dac8825120a21e4882bc7a3f27938b810b..fcdef62936c139ce779d932d478611371e757acd 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.Designer.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.Designer.cs
@@ -29,7 +29,7 @@
         private void InitializeComponent()
         {
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigHardwareOptions));
-            this.BUT_MagCalibration = new ArdupilotMega.MyButton();
+            this.BUT_MagCalibrationLive = new ArdupilotMega.MyButton();
             this.label27 = new System.Windows.Forms.Label();
             this.CMB_sonartype = new System.Windows.Forms.ComboBox();
             this.CHK_enableoptflow = new System.Windows.Forms.CheckBox();
@@ -43,18 +43,19 @@
             this.pictureBox4 = new System.Windows.Forms.PictureBox();
             this.pictureBox3 = new System.Windows.Forms.PictureBox();
             this.pictureBox1 = new System.Windows.Forms.PictureBox();
+            this.BUT_MagCalibrationLog = new ArdupilotMega.MyButton();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
             this.SuspendLayout();
             // 
-            // BUT_MagCalibration
+            // BUT_MagCalibrationLive
             // 
-            resources.ApplyResources(this.BUT_MagCalibration, "BUT_MagCalibration");
-            this.BUT_MagCalibration.Name = "BUT_MagCalibration";
-            this.BUT_MagCalibration.UseVisualStyleBackColor = true;
-            this.BUT_MagCalibration.Click += new System.EventHandler(this.BUT_MagCalibration_Click);
+            resources.ApplyResources(this.BUT_MagCalibrationLive, "BUT_MagCalibrationLive");
+            this.BUT_MagCalibrationLive.Name = "BUT_MagCalibrationLive";
+            this.BUT_MagCalibrationLive.UseVisualStyleBackColor = true;
+            this.BUT_MagCalibrationLive.Click += new System.EventHandler(this.BUT_MagCalibration_Click);
             // 
             // label27
             // 
@@ -153,11 +154,19 @@
             this.pictureBox1.Name = "pictureBox1";
             this.pictureBox1.TabStop = false;
             // 
+            // BUT_MagCalibrationLog
+            // 
+            resources.ApplyResources(this.BUT_MagCalibrationLog, "BUT_MagCalibrationLog");
+            this.BUT_MagCalibrationLog.Name = "BUT_MagCalibrationLog";
+            this.BUT_MagCalibrationLog.UseVisualStyleBackColor = true;
+            this.BUT_MagCalibrationLog.Click += new System.EventHandler(this.BUT_MagCalibrationLog_Click);
+            // 
             // ConfigHardwareOptions
             // 
             resources.ApplyResources(this, "$this");
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.Controls.Add(this.BUT_MagCalibration);
+            this.Controls.Add(this.BUT_MagCalibrationLog);
+            this.Controls.Add(this.BUT_MagCalibrationLive);
             this.Controls.Add(this.label27);
             this.Controls.Add(this.CMB_sonartype);
             this.Controls.Add(this.CHK_enableoptflow);
@@ -184,7 +193,7 @@
 
         #endregion
 
-        private MyButton BUT_MagCalibration;
+        private MyButton BUT_MagCalibrationLive;
         private System.Windows.Forms.Label label27;
         private System.Windows.Forms.ComboBox CMB_sonartype;
         private System.Windows.Forms.CheckBox CHK_enableoptflow;
@@ -198,5 +207,6 @@
         private System.Windows.Forms.PictureBox pictureBox4;
         private System.Windows.Forms.PictureBox pictureBox3;
         private System.Windows.Forms.PictureBox pictureBox1;
+        private MyButton BUT_MagCalibrationLog;
     }
 }
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs
index 470cd0902623664b6571e1977d5846f80ef6234f..fbae833da6ba63c61d4669d55fad44b2590714ce 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.cs
@@ -24,66 +24,52 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
 
         private void BUT_MagCalibration_Click(object sender, EventArgs e)
         {
-            if (DialogResult.Yes == CustomMessageBox.Show("Use live data, or a log\n\nYes for Live data", "Mag Calibration", MessageBoxButtons.YesNo))
-            {
-                List<Tuple<float, float, float>> data = new List<Tuple<float, float, float>>();
-
-                byte backupratesens = MainV2.cs.ratesensors;
+            List<Tuple<float, float, float>> data = new List<Tuple<float, float, float>>();
 
-                MainV2.cs.ratesensors = 10;
+            byte backupratesens = MainV2.cs.ratesensors;
 
-                MainV2.comPort.requestDatastream((byte)MAVLink.MAV_DATA_STREAM.RAW_SENSORS, MainV2.cs.ratesensors); // mag captures at 10 hz
+            MainV2.cs.ratesensors = 10;
 
-                CustomMessageBox.Show("Data will be collected for 30 seconds, Please click ok and move the apm around all axises");
+            MainV2.comPort.requestDatastream((byte)MAVLink.MAV_DATA_STREAM.RAW_SENSORS, MainV2.cs.ratesensors); // mag captures at 10 hz
 
-                DateTime deadline = DateTime.Now.AddSeconds(30);
+            CustomMessageBox.Show("Data will be collected for 30 seconds, Please click ok and move the apm around all axises");
 
-                float oldmx = 0;
-                float oldmy = 0;
-                float oldmz = 0;
+            DateTime deadline = DateTime.Now.AddSeconds(30);
 
-                while (deadline > DateTime.Now)
-                {
-                    Application.DoEvents();
-
-                    if (oldmx != MainV2.cs.mx &&
-                        oldmy != MainV2.cs.my &&
-                        oldmz != MainV2.cs.mz)
-                    {
-                        data.Add(new Tuple<float, float, float>(
-                            MainV2.cs.mx - (float)MainV2.cs.mag_ofs_x,
-                            MainV2.cs.my - (float)MainV2.cs.mag_ofs_y,
-                            MainV2.cs.mz - (float)MainV2.cs.mag_ofs_z));
-
-                        oldmx = MainV2.cs.mx;
-                        oldmy = MainV2.cs.my;
-                        oldmz = MainV2.cs.mz;
-                    }
-                }
+            float oldmx = 0;
+            float oldmy = 0;
+            float oldmz = 0;
 
-                MainV2.cs.ratesensors = backupratesens;
+            while (deadline > DateTime.Now)
+            {
+                Application.DoEvents();
 
-                if (data.Count < 10)
+                if (oldmx != MainV2.cs.mx &&
+                    oldmy != MainV2.cs.my &&
+                    oldmz != MainV2.cs.mz)
                 {
-                    CustomMessageBox.Show("Log does not contain enough data");
-                    return;
+                    data.Add(new Tuple<float, float, float>(
+                        MainV2.cs.mx - (float)MainV2.cs.mag_ofs_x,
+                        MainV2.cs.my - (float)MainV2.cs.mag_ofs_y,
+                        MainV2.cs.mz - (float)MainV2.cs.mag_ofs_z));
+
+                    oldmx = MainV2.cs.mx;
+                    oldmy = MainV2.cs.my;
+                    oldmz = MainV2.cs.mz;
                 }
+            }
 
-                double[] ans = MagCalib.LeastSq(data);
-
-                MagCalib.SaveOffsets(ans);
+            MainV2.cs.ratesensors = backupratesens;
 
-            }
-            else
+            if (data.Count < 10)
             {
-                string minthro = "30";
-                Common.InputBox("Min Throttle", "Use only data above this throttle percent.", ref minthro);
+                CustomMessageBox.Show("Log does not contain enough data");
+                return;
+            }
 
-                int ans = 0;
-                int.TryParse(minthro, out ans);
+            double[] ans = MagCalib.LeastSq(data);
 
-                MagCalib.ProcessLog(ans);
-            }
+            MagCalib.SaveOffsets(ans);
         }
 
         private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
@@ -267,5 +253,16 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
 
             startup = false;
         }
+
+        private void BUT_MagCalibrationLog_Click(object sender, EventArgs e)
+        {
+            string minthro = "30";
+            Common.InputBox("Min Throttle", "Use only data above this throttle percent.", ref minthro);
+
+            int ans = 0;
+            int.TryParse(minthro, out ans);
+
+            MagCalib.ProcessLog(ans);
+        }
     }
-}
+}
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.resx
index 587576ac954865411038feb5d6e72275baa582e9..158f11af30adb6c7a9fe4e8e436a0c11433eec4a 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.resx
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigHardwareOptions.resx
@@ -118,34 +118,34 @@
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="BUT_MagCalibration.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+  <data name="BUT_MagCalibrationLive.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="BUT_MagCalibration.Location" type="System.Drawing.Point, System.Drawing">
-    <value>340, 13</value>
+  <data name="BUT_MagCalibrationLive.Location" type="System.Drawing.Point, System.Drawing">
+    <value>318, 13</value>
   </data>
-  <data name="BUT_MagCalibration.Size" type="System.Drawing.Size, System.Drawing">
-    <value>75, 23</value>
+  <data name="BUT_MagCalibrationLive.Size" type="System.Drawing.Size, System.Drawing">
+    <value>60, 23</value>
   </data>
   <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="BUT_MagCalibration.TabIndex" type="System.Int32, mscorlib">
+  <data name="BUT_MagCalibrationLive.TabIndex" type="System.Int32, mscorlib">
     <value>47</value>
   </data>
-  <data name="BUT_MagCalibration.Text" xml:space="preserve">
-    <value>Calibration</value>
+  <data name="BUT_MagCalibrationLive.Text" xml:space="preserve">
+    <value>Live Calibration</value>
   </data>
-  <data name="&gt;&gt;BUT_MagCalibration.Name" xml:space="preserve">
-    <value>BUT_MagCalibration</value>
+  <data name="&gt;&gt;BUT_MagCalibrationLive.Name" xml:space="preserve">
+    <value>BUT_MagCalibrationLive</value>
   </data>
-  <data name="&gt;&gt;BUT_MagCalibration.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
+  <data name="&gt;&gt;BUT_MagCalibrationLive.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4487.21319, Culture=neutral, PublicKeyToken=null</value>
   </data>
-  <data name="&gt;&gt;BUT_MagCalibration.Parent" xml:space="preserve">
+  <data name="&gt;&gt;BUT_MagCalibrationLive.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;BUT_MagCalibration.ZOrder" xml:space="preserve">
-    <value>0</value>
+  <data name="&gt;&gt;BUT_MagCalibrationLive.ZOrder" xml:space="preserve">
+    <value>1</value>
   </data>
   <data name="label27.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
@@ -172,7 +172,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;label27.ZOrder" xml:space="preserve">
-    <value>1</value>
+    <value>2</value>
   </data>
   <data name="CMB_sonartype.Items" xml:space="preserve">
     <value>XL-EZ0</value>
@@ -202,7 +202,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;CMB_sonartype.ZOrder" xml:space="preserve">
-    <value>2</value>
+    <value>3</value>
   </data>
   <data name="CHK_enableoptflow.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
@@ -229,7 +229,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;CHK_enableoptflow.ZOrder" xml:space="preserve">
-    <value>3</value>
+    <value>4</value>
   </data>
   <data name="pictureBox2.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
     <value>Zoom</value>
@@ -256,7 +256,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;pictureBox2.ZOrder" xml:space="preserve">
-    <value>4</value>
+    <value>5</value>
   </data>
   <data name="linkLabelmagdec.AutoSize" type="System.Boolean, mscorlib">
     <value>True</value>
@@ -286,7 +286,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;linkLabelmagdec.ZOrder" xml:space="preserve">
-    <value>5</value>
+    <value>6</value>
   </data>
   <data name="label100.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
@@ -313,7 +313,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;label100.ZOrder" xml:space="preserve">
-    <value>6</value>
+    <value>7</value>
   </data>
   <data name="TXT_declination.Location" type="System.Drawing.Point, System.Drawing">
     <value>318, 45</value>
@@ -334,7 +334,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;TXT_declination.ZOrder" xml:space="preserve">
-    <value>7</value>
+    <value>8</value>
   </data>
   <data name="CHK_enableairspeed.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
@@ -361,7 +361,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;CHK_enableairspeed.ZOrder" xml:space="preserve">
-    <value>8</value>
+    <value>9</value>
   </data>
   <data name="CHK_enablesonar.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
@@ -388,7 +388,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;CHK_enablesonar.ZOrder" xml:space="preserve">
-    <value>9</value>
+    <value>10</value>
   </data>
   <data name="CHK_enablecompass.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
     <value>NoControl</value>
@@ -415,7 +415,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;CHK_enablecompass.ZOrder" xml:space="preserve">
-    <value>10</value>
+    <value>11</value>
   </data>
   <data name="pictureBox4.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
     <value>Zoom</value>
@@ -442,7 +442,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;pictureBox4.ZOrder" xml:space="preserve">
-    <value>11</value>
+    <value>12</value>
   </data>
   <data name="pictureBox3.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
     <value>Zoom</value>
@@ -469,7 +469,7 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;pictureBox3.ZOrder" xml:space="preserve">
-    <value>12</value>
+    <value>13</value>
   </data>
   <data name="pictureBox1.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
     <value>Zoom</value>
@@ -502,7 +502,34 @@
     <value>$this</value>
   </data>
   <data name="&gt;&gt;pictureBox1.ZOrder" xml:space="preserve">
-    <value>13</value>
+    <value>14</value>
+  </data>
+  <data name="BUT_MagCalibrationLog.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="BUT_MagCalibrationLog.Location" type="System.Drawing.Point, System.Drawing">
+    <value>379, 13</value>
+  </data>
+  <data name="BUT_MagCalibrationLog.Size" type="System.Drawing.Size, System.Drawing">
+    <value>60, 23</value>
+  </data>
+  <data name="BUT_MagCalibrationLog.TabIndex" type="System.Int32, mscorlib">
+    <value>48</value>
+  </data>
+  <data name="BUT_MagCalibrationLog.Text" xml:space="preserve">
+    <value>Log Calibration</value>
+  </data>
+  <data name="&gt;&gt;BUT_MagCalibrationLog.Name" xml:space="preserve">
+    <value>BUT_MagCalibrationLog</value>
+  </data>
+  <data name="&gt;&gt;BUT_MagCalibrationLog.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4487.21319, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;BUT_MagCalibrationLog.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;BUT_MagCalibrationLog.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">
     <value>True</value>
@@ -517,6 +544,6 @@
     <value>ConfigHardwareOptions</value>
   </data>
   <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>ArdupilotMega.Controls.BackstageView.BackStageViewContentPanel, ArdupilotMegaPlanner, Version=1.1.4487.21319, Culture=neutral, PublicKeyToken=null</value>
   </data>
 </root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs
index 668c9742feffd92e04ad51b28a4e890c26f57512..b31c7ebd80fadef59c40ad993bfef74e451dc1c0 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.Designer.cs
@@ -684,6 +684,7 @@
             this.Controls.Add(this.HS3);
             this.Controls.Add(this.Gservoloc);
             this.Name = "ConfigTradHeli";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ConfigTradHeli_FormClosing);
             this.Load += new System.EventHandler(this.ConfigTradHeli_Load);
             this.groupBox5.ResumeLayout(false);
             this.groupBox5.PerformLayout();
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs
index 59522dfaf5434378ca2552f314d64d19b25d8c7c..c6c29abea255cfe20bc708eee6223f619ddc17f1 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.cs
@@ -319,7 +319,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
 
         private void ROL_MAX__Validating(object sender, CancelEventArgs e)
         {
-            if (startup || this.Disposing)
+            if (startup || this.Disposing || !this.Enabled)
                 return;
             int test = 0;
             if (!int.TryParse(((TextBox)sender).Text, out test))
@@ -332,7 +332,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
 
         private void PIT_MAX__Validating(object sender, CancelEventArgs e)
         {
-            if (startup || this.Disposing)
+            if (startup || this.Disposing || !this.Enabled)
                 return;
             int test = 0;
             if (!int.TryParse(((TextBox)sender).Text, out test))
@@ -345,7 +345,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
 
         private void GYR_GAIN__Validating(object sender, CancelEventArgs e)
         {
-            if (startup || this.Disposing || ((TextBox)sender).Enabled == false)
+            if (startup || this.Disposing || !this.Enabled)
                 return;
             int test = 0;
             if (!int.TryParse(((TextBox)sender).Text, out test))
@@ -485,5 +485,10 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
                 catch { }
             }
         }
+
+        private void ConfigTradHeli_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            startup = true;
+        }
     }
 }
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx
index eb30a08ab96978bb941d664e74d675a24c560f41..9ec943c76a84af58499c2e36fc4a42cefb9007a4 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigTradHeli.resx
@@ -223,7 +223,7 @@
     <value>BUT_swash_manual</value>
   </data>
   <data name="&gt;&gt;BUT_swash_manual.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;BUT_swash_manual.Parent" xml:space="preserve">
     <value>$this</value>
@@ -415,7 +415,7 @@
     <value>BUT_HS4save</value>
   </data>
   <data name="&gt;&gt;BUT_HS4save.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;BUT_HS4save.Parent" xml:space="preserve">
     <value>$this</value>
@@ -556,7 +556,7 @@
     <value>BUT_0collective</value>
   </data>
   <data name="&gt;&gt;BUT_0collective.Type" xml:space="preserve">
-    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;BUT_0collective.Parent" xml:space="preserve">
     <value>groupBox1</value>
@@ -1360,7 +1360,7 @@
     <value>HS4</value>
   </data>
   <data name="&gt;&gt;HS4.Type" xml:space="preserve">
-    <value>ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.HorizontalProgressBar2, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;HS4.Parent" xml:space="preserve">
     <value>$this</value>
@@ -1381,7 +1381,7 @@
     <value>HS3</value>
   </data>
   <data name="&gt;&gt;HS3.Type" xml:space="preserve">
-    <value>ArdupilotMega.VerticalProgressBar2, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
+    <value>ArdupilotMega.VerticalProgressBar2, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;HS3.Parent" xml:space="preserve">
     <value>$this</value>
@@ -1411,7 +1411,7 @@
     <value>Gservoloc</value>
   </data>
   <data name="&gt;&gt;Gservoloc.Type" xml:space="preserve">
-    <value>AGaugeApp.AGauge, ArdupilotMegaPlanner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
+    <value>AGaugeApp.AGauge, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
   </data>
   <data name="&gt;&gt;Gservoloc.Parent" xml:space="preserve">
     <value>$this</value>
@@ -1576,6 +1576,6 @@
     <value>ConfigTradHeli</value>
   </data>
   <data name="&gt;&gt;$this.Type" xml:space="preserve">
-    <value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>ArdupilotMega.Controls.BackstageView.BackStageViewContentPanel, ArdupilotMegaPlanner, Version=1.1.4485.38897, Culture=neutral, PublicKeyToken=null</value>
   </data>
 </root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs b/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs
index 179418b39f09de0751bede456131fcec19981ab7..fca5683952e14d4a172b4163f00cd3792b5e3206 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/Simulation.cs
@@ -239,7 +239,11 @@ namespace ArdupilotMega.GCSViews
             public float Model_fVel_Body_X; public float Model_fVel_Body_Y; public float Model_fVel_Body_Z;    // m/s    Model velocity in body coordinates
             public float Model_fAngVel_Body_X; public float Model_fAngVel_Body_Y; public float Model_fAngVel_Body_Z; // rad/s  Model angular velocity in body coordinates
             public float Model_fAccel_Body_X; public float Model_fAccel_Body_Y; public float Model_fAccel_Body_Z;  // m/s/s  Model acceleration in body coordinates
-        };
+
+            // Size in bytes of the allocated OSD buffer (size is defined in plugin.txt in .OSD_BUFFER_SIZE)
+            // The buffer size is 4 x .OSD_VIDEO_BUFFER_SIZE (e.g. 4x512x512 = 1048576 bytes), so you should not write outside that memory.
+            public uint OSD_nSizeOfVideoBuffer;
+        }
 
 
         ~Simulation()
@@ -919,7 +923,7 @@ namespace ArdupilotMega.GCSViews
                 //stream.Write(data, 0, receviedbytes);
                 //stream.Close();
             }
-            else if (receviedbytes == 658)
+            else if (receviedbytes == 662 || receviedbytes == 658) // 658 = 3.83   662 = 3.91
             {
                 aeroin = data.ByteArrayToStructure<TDataFromAeroSimRC>(0);
 
diff --git a/Tools/ArdupilotMegaPlanner/Msi/wix.pdb b/Tools/ArdupilotMegaPlanner/Msi/wix.pdb
index 3942cebe49487abafe08697bb62fa8f20bc6f4df..45802e56c41fa4662721fc635cabd54b891f5ccb 100644
Binary files a/Tools/ArdupilotMegaPlanner/Msi/wix.pdb and b/Tools/ArdupilotMegaPlanner/Msi/wix.pdb differ
diff --git a/Tools/ArdupilotMegaPlanner/Program.cs b/Tools/ArdupilotMegaPlanner/Program.cs
index 30489f682f70715aaecb98c5b2e3a453564020cd..c4051b1c2e13230454b664d3270150e6ea27b9dc 100644
--- a/Tools/ArdupilotMegaPlanner/Program.cs
+++ b/Tools/ArdupilotMegaPlanner/Program.cs
@@ -60,7 +60,7 @@ namespace ArdupilotMega
 
         static void Application_Idle(object sender, EventArgs e)
         {
-            //Console.WriteLine("Idle");
+            Console.Write("Idle\r");
         }
 
         static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
diff --git a/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs b/Tools/ArdupilotMegaPlanner/Properties/AssemblyInfo.cs
index 6e43e20b09a96b4d2b90b423012c6e91f3f39ce3..9ecdb5647d1ac616912670f111fa609959cad084 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.65")]
+[assembly: AssemblyFileVersion("1.1.66")]
 [assembly: NeutralResourcesLanguageAttribute("")]
diff --git a/Tools/ArdupilotMegaPlanner/Splash.Designer.cs b/Tools/ArdupilotMegaPlanner/Splash.Designer.cs
index 2792069e9ff5818379622c35a4561ff5653a80d8..6b411628d6f0a8b840b9bf410e4c1ef347eccde4 100644
--- a/Tools/ArdupilotMegaPlanner/Splash.Designer.cs
+++ b/Tools/ArdupilotMegaPlanner/Splash.Designer.cs
@@ -48,15 +48,14 @@
             // 
             // TXT_version
             // 
-            this.TXT_version.AutoSize = true;
             this.TXT_version.BackColor = System.Drawing.Color.Transparent;
             this.TXT_version.Font = new System.Drawing.Font("Century Gothic", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.TXT_version.Location = new System.Drawing.Point(419, 107);
+            this.TXT_version.Location = new System.Drawing.Point(403, 107);
             this.TXT_version.Name = "TXT_version";
-            this.TXT_version.Size = new System.Drawing.Size(57, 16);
+            this.TXT_version.Size = new System.Drawing.Size(155, 25);
             this.TXT_version.TabIndex = 1;
             this.TXT_version.Text = "Version: ";
-            this.TXT_version.TextAlign = System.Drawing.ContentAlignment.TopRight;
+            this.TXT_version.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
             // 
             // Splash
             // 
diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb
index 35c40b0005d42e10cb1057ac2b486d9ab461faca..eb9c6759e8c817f27ffed0357a3852e0adee3be8 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/aerosim3.91.txt b/Tools/ArdupilotMegaPlanner/bin/Release/aerosim3.91.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6a15854eb89f2e26a950ebf4dd6192e3af5b50c9
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/bin/Release/aerosim3.91.txt
@@ -0,0 +1,33 @@
+Search for differences
+
+1. C:\Program Files (x86)\AeroSIM-RC\AeroSIM-RC.exe: 1,957,888 bytes
+2. C:\Program Files (x86)\AeroSIM-RC\AeroSIM-RC3.91.exe: 1,957,888 bytes
+Offsets: hexadec.
+
+ DD50C:	90	0F
+ DD50D:	90	8E
+ DD50E:	90	9A
+ DD50F:	90	00
+ DD510:	90	00
+ DD511:	90	00
+ DD531:	90	8B
+ DD532:	90	0D
+ DD533:	90	A8
+ DD534:	90	CF
+ DD535:	90	5D
+ DD536:	90	00
+ DD537:	90	40
+ DD538:	90	81
+ DD539:	90	C2
+ DD53A:	90	44
+ DD53B:	90	02
+ DD53C:	90	00
+ DD53D:	90	00
+ DD53E:	90	3B
+ DD53F:	90	C1
+ DD540:	90	7C
+ DD541:	90	D5
+ DD542:	90	EB
+ DD543:	90	68
+
+25 difference(s) found. 
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/version.txt b/Tools/ArdupilotMegaPlanner/bin/Release/version.txt
index e70ff281d14bc411e307e003dedb8e6c52b5e6f0..b3cbea88a384f3c4e0a28c75639efa59826bace5 100644
--- a/Tools/ArdupilotMegaPlanner/bin/Release/version.txt
+++ b/Tools/ArdupilotMegaPlanner/bin/Release/version.txt
@@ -1 +1 @@
-1.1.4485.38920
\ No newline at end of file
+1.1.4487.28746
\ No newline at end of file