diff --git a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
index d2c0842ebcdb10e4ff0bf45b1f44dcc18337ad67..ba72a4d3c1055e0a1cc68a25c87484c35e7bd528 100644
--- a/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
+++ b/Tools/ArdupilotMegaPlanner/ArdupilotMega.csproj
@@ -254,11 +254,11 @@
     <Compile Include="Controls\ProgressReporterDialogue.designer.cs">
       <DependentUpon>ProgressReporterDialogue.cs</DependentUpon>
     </Compile>
-    <Compile Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibration.cs">
+    <Compile Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationQuad.cs">
       <SubType>UserControl</SubType>
     </Compile>
-    <Compile Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibration.Designer.cs">
-      <DependentUpon>ConfigAccelerometerCalibration.cs</DependentUpon>
+    <Compile Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationQuad.Designer.cs">
+      <DependentUpon>ConfigAccelerometerCalibrationQuad.cs</DependentUpon>
     </Compile>
     <Compile Include="GCSViews\ConfigurationView\ConfigArducopter.cs">
       <SubType>UserControl</SubType>
@@ -320,6 +320,12 @@
     <Compile Include="GCSViews\ConfigurationView\ConfigRawParams.Designer.cs">
       <DependentUpon>ConfigRawParams.cs</DependentUpon>
     </Compile>
+    <Compile Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationPlane.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationPlane.Designer.cs">
+      <DependentUpon>ConfigAccelerometerCalibrationPlane.cs</DependentUpon>
+    </Compile>
     <Compile Include="GCSViews\ConfigurationView\Setup.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -558,26 +564,26 @@
     <EmbeddedResource Include="Controls\ProgressReporterDialogue.resx">
       <DependentUpon>ProgressReporterDialogue.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibration.es-ES.resx">
-      <DependentUpon>ConfigAccelerometerCalibration.cs</DependentUpon>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationQuad.es-ES.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationQuad.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibration.fr.resx">
-      <DependentUpon>ConfigAccelerometerCalibration.cs</DependentUpon>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationQuad.fr.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationQuad.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibration.it-IT.resx">
-      <DependentUpon>ConfigAccelerometerCalibration.cs</DependentUpon>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationQuad.it-IT.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationQuad.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibration.pl.resx">
-      <DependentUpon>ConfigAccelerometerCalibration.cs</DependentUpon>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationQuad.pl.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationQuad.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibration.resx">
-      <DependentUpon>ConfigAccelerometerCalibration.cs</DependentUpon>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationQuad.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationQuad.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibration.zh-Hans.resx">
-      <DependentUpon>ConfigAccelerometerCalibration.cs</DependentUpon>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationQuad.zh-Hans.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationQuad.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibration.zh-TW.resx">
-      <DependentUpon>ConfigAccelerometerCalibration.cs</DependentUpon>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationQuad.zh-TW.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationQuad.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigArducopter.resx">
       <DependentUpon>ConfigArducopter.cs</DependentUpon>
@@ -699,6 +705,27 @@
     <EmbeddedResource Include="GCSViews\ConfigurationView\Configuration.resx">
       <DependentUpon>Configuration.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationPlane.es-ES.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationPlane.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationPlane.fr.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationPlane.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationPlane.it-IT.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationPlane.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationPlane.pl.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationPlane.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationPlane.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationPlane.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationPlane.zh-Hans.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationPlane.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="GCSViews\ConfigurationView\ConfigAccelerometerCalibrationPlane.zh-TW.resx">
+      <DependentUpon>ConfigAccelerometerCalibrationPlane.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="GCSViews\ConfigurationView\Setup.resx">
       <DependentUpon>Setup.cs</DependentUpon>
     </EmbeddedResource>
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.Designer.cs
new file mode 100644
index 0000000000000000000000000000000000000000..e674259f9122277ee40051dc8c2cd82a0a7bb5bf
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.Designer.cs
@@ -0,0 +1,97 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigAccelerometerCalibrationPlane
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigAccelerometerCalibrationPlane));
+            this.label28 = new System.Windows.Forms.Label();
+            this.BUT_levelplane = new ArdupilotMega.MyButton();
+            this.CHK_manuallevel = new System.Windows.Forms.CheckBox();
+            this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
+            this.label1 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.SuspendLayout();
+            // 
+            // label28
+            // 
+            resources.ApplyResources(this.label28, "label28");
+            this.label28.Name = "label28";
+            // 
+            // BUT_levelplane
+            // 
+            resources.ApplyResources(this.BUT_levelplane, "BUT_levelplane");
+            this.BUT_levelplane.Name = "BUT_levelplane";
+            this.toolTip1.SetToolTip(this.BUT_levelplane, resources.GetString("BUT_levelplane.ToolTip"));
+            this.BUT_levelplane.UseVisualStyleBackColor = true;
+            this.BUT_levelplane.Click += new System.EventHandler(this.BUT_levelplane_Click);
+            // 
+            // CHK_manuallevel
+            // 
+            resources.ApplyResources(this.CHK_manuallevel, "CHK_manuallevel");
+            this.CHK_manuallevel.Name = "CHK_manuallevel";
+            this.toolTip1.SetToolTip(this.CHK_manuallevel, resources.GetString("CHK_manuallevel.ToolTip"));
+            this.CHK_manuallevel.UseVisualStyleBackColor = true;
+            this.CHK_manuallevel.CheckedChanged += new System.EventHandler(this.CHK_manuallevel_CheckedChanged);
+            // 
+            // label1
+            // 
+            resources.ApplyResources(this.label1, "label1");
+            this.label1.Name = "label1";
+            // 
+            // label2
+            // 
+            resources.ApplyResources(this.label2, "label2");
+            this.label2.Name = "label2";
+            // 
+            // ConfigAccelerometerCalibrationPlane
+            // 
+            resources.ApplyResources(this, "$this");
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.CHK_manuallevel);
+            this.Controls.Add(this.label28);
+            this.Controls.Add(this.BUT_levelplane);
+            this.Name = "ConfigAccelerometerCalibrationPlane";
+            this.Load += new System.EventHandler(this.ConfigAccelerometerCalibration_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label label28;
+        private MyButton BUT_levelplane;
+        private System.Windows.Forms.CheckBox CHK_manuallevel;
+        private System.Windows.Forms.ToolTip toolTip1;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label label2;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.cs
new file mode 100644
index 0000000000000000000000000000000000000000..6837cc9ce3c0c72a22e9bfaa76f38fec85e225b6
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.cs
@@ -0,0 +1,82 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using ArdupilotMega.Controls.BackstageView;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigAccelerometerCalibrationPlane : BackStageViewContentPanel
+    {
+        bool startup = false;
+
+        public ConfigAccelerometerCalibrationPlane()
+        {
+            InitializeComponent();
+        }
+
+        private void ConfigAccelerometerCalibration_Load(object sender, EventArgs e)
+        {
+            if (!MainV2.comPort.BaseStream.IsOpen)
+            {
+                this.Enabled = false;
+                return;
+            }
+            else
+            {
+                if (MainV2.cs.firmware == MainV2.Firmwares.ArduPlane)
+                {
+                    this.Enabled = true;
+                }
+                else
+                {
+                    this.Enabled = false;
+                    return;
+                }
+            }
+
+            startup = true;
+
+            if (MainV2.comPort.param["MANUAL_LEVEL"] != null)
+                CHK_manuallevel.Checked = MainV2.comPort.param["MANUAL_LEVEL"].ToString() == "1" ? true : false;
+
+            startup = false;
+        }
+
+        private void CHK_manuallevel_CheckedChanged(object sender, EventArgs e)
+        {
+            if (startup)
+                return;
+            try
+            {
+                MainV2.comPort.setParam("MANUAL_LEVEL", ((CheckBox)sender).Checked == true ? 1 : 0);
+            }
+            catch
+            {
+                CustomMessageBox.Show("Failed to level : AP 2.32+ is required");
+            }
+        }
+
+        private void BUT_levelplane_Click(object sender, EventArgs e)
+        {
+            try
+            {
+#if MAVLINK10             
+                            int fixme; // needs to be accel only    
+                            MainV2.comPort.doCommand(MAVLink.MAV_CMD.PREFLIGHT_CALIBRATION,1,1,1,1,1,1,1);
+#else
+                MainV2.comPort.doAction(MAVLink.MAV_ACTION.MAV_ACTION_CALIBRATE_ACC);
+#endif
+                BUT_levelplane.Text = "Complete";
+            }
+            catch
+            {
+                CustomMessageBox.Show("Failed to level : AP 2.32+ is required");
+            }
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.es-ES.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.es-ES.resx
new file mode 100644
index 0000000000000000000000000000000000000000..70ad73f1af84a8cec236442b9c51462353fceab5
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.es-ES.resx
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="SV3_POS_.Text" xml:space="preserve">
+    <value>180</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>Manual</value>
+  </data>
+  <data name="label12.Text" xml:space="preserve">
+    <value>PWM 0 - 1230</value>
+  </data>
+  <data name="label10.Text" xml:space="preserve">
+    <value>PWM 1621 - 1749</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>Modo actual:</value>
+  </data>
+  <data name="CHK_enableoptflow.Text" xml:space="preserve">
+    <value>Habilitar el flujo óptico</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>NOTA: Las imágenes son sólo para su presentación</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="label11.Text" xml:space="preserve">
+    <value>PWM 1750 +</value>
+  </data>
+  <data name="CHK_elevonch1rev.Text" xml:space="preserve">
+    <value>Elevons CH1 Rev</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>PWM Actual:</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>APMSetup</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>Swash-Servo posición</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>Activar Compas</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="tabArducopter.Text" xml:space="preserve">
+    <value>ArduCopter2</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>Ajuste Chásis (+ or x)</value>
+  </data>
+  <data name="SV2_POS_.Text" xml:space="preserve">
+    <value>60</value>
+  </data>
+  <data name="label18.Text" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="label19.Text" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>Modos</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="label20.Text" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>Reset</value>
+  </data>
+  <data name="SV1_POS_.Text" xml:space="preserve">
+    <value>-60</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>Superior</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>Swash de Viaje</value>
+  </data>
+  <data name="lbl_currentmode.Text" xml:space="preserve">
+    <value>Manual</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>Timón de Viaje</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>Calibración del sensor de voltaje:Para calibrar el sensor, use un multímetro para medir la tensión que sale de la CES de la batería-la eliminación del circuito (se trata de cables negro y rojo en el cable de tres hilos que suministra energía a la placa APM).Luego reste 0,3 V de ese valor y entrar en él en el campo # 1 a la izquierda.</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>Calibrar Radio</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>Max</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>Modo de Vuelo 2</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>Alabeo Max</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>Modo de Vuelo 3</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>Cabeceo Max</value>
+  </data>
+  <data name="label27.Text" xml:space="preserve">
+    <value>por ejemplo, en grados 2 ° 3 'W es -2,3</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>Modo de Vuelo 1</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>Nivel tu quad para establecer las compensaciones por defecto acel</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>Modo de Vuelo 6</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>Capacidad</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>Declinación</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>Activar Sonar</value>
+  </data>
+  <data name="label7.Text" xml:space="preserve">
+    <value>PWM 1231 - 1360</value>
+  </data>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>Entrada Radio</value>
+  </data>
+  <data name="groupBox4.Text" xml:space="preserve">
+    <value>Calibración</value>
+  </data>
+  <data name="HS4_MIN.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>Modo de Vuelo 4</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>Modo de Vuelo 5</value>
+  </data>
+  <data name="groupBox3.Text" xml:space="preserve">
+    <value>Gyro</value>
+  </data>
+  <data name="label8.Text" xml:space="preserve">
+    <value>PWM 1361 - 1490</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>Hardware</value>
+  </data>
+  <data name="label9.Text" xml:space="preserve">
+    <value>PWM 1491 - 1620</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>Sitio Web Declinación</value>
+  </data>
+  <data name="HS4_MAX.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>Batería</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>Cero</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>Activar Airspeed</value>
+  </data>
+  <data name="PIT_MAX_.Text" xml:space="preserve">
+    <value>4500</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>Restablecer los Ajustes de hardware APM</value>
+  </data>
+  <data name="GYR_GAIN_.Text" xml:space="preserve">
+    <value>1000</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>Monitor</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.fr.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.fr.resx
new file mode 100644
index 0000000000000000000000000000000000000000..1bd274beea2e052315a0ab1e83d3619dcf47cbf1
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.fr.resx
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="SV3_POS_.Text" xml:space="preserve">
+    <value>180</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>Manuel</value>
+  </data>
+  <data name="label12.Text" xml:space="preserve">
+    <value>PWM 0 - 1230</value>
+  </data>
+  <data name="label10.Text" xml:space="preserve">
+    <value>PWM 1621 - 1749</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>Mode Courant:</value>
+  </data>
+  <data name="CHK_enableoptflow.Text" xml:space="preserve">
+    <value>Activ. capteur optique</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>NOTE: images pou presentation uniquement. Fonctionnel pour Hex, Octo etc...</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="label11.Text" xml:space="preserve">
+    <value>PWM 1750 +</value>
+  </data>
+  <data name="CHK_elevonch1rev.Text" xml:space="preserve">
+    <value>Elevons CH1 Rev</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>PWM Actuel:</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>APMSetup</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>Swash-Servo position</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>Activ. Boussole</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="tabArducopter.Text" xml:space="preserve">
+    <value>ArduCopter2</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>type de châssis (+ ou x)</value>
+  </data>
+  <data name="SV2_POS_.Text" xml:space="preserve">
+    <value>60</value>
+  </data>
+  <data name="label18.Text" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="label19.Text" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>Modes</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="label20.Text" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>Réinit.</value>
+  </data>
+  <data name="SV1_POS_.Text" xml:space="preserve">
+    <value>-60</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>Haut</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>Mouvement Swash</value>
+  </data>
+  <data name="lbl_currentmode.Text" xml:space="preserve">
+    <value>Manuel</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>Deplac. du Gouvernail</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>Calibration du capteur de Voltage.1. Mesurer le voltage sur APM et inscrivez-le dans la boite ci-bas.2. Mesurer le voltage de la batterie et inscrivez-le dans la boite ci-bas.3. Inscrire les ampères par volt de la documentation du capteur de courant ci-bas</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>Calibrer Radio</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>Max</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>Mode de vol 2</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>Roulis Max</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>Mode de vol 2</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>Tangage Max</value>
+  </data>
+  <data name="label27.Text" xml:space="preserve">
+    <value>en degrés eg 2° 3' W est -2.3</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>Mode de vol 1</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>Niveler l'apareil pour copensation des accels</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>Mode de vol 6</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>Capacité</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>Déclination</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>Activer Sonar</value>
+  </data>
+  <data name="label7.Text" xml:space="preserve">
+    <value>PWM 1231 - 1360</value>
+  </data>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>Entrée Radio</value>
+  </data>
+  <data name="HS4_MIN.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>Mode de vol 4</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>Mode de vol 5</value>
+  </data>
+  <data name="groupBox3.Text" xml:space="preserve">
+    <value>Gyro</value>
+  </data>
+  <data name="label8.Text" xml:space="preserve">
+    <value>PWM 1361 - 1490</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>Matériel</value>
+  </data>
+  <data name="label9.Text" xml:space="preserve">
+    <value>PWM 1491 - 1620</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>Site Web Déclination</value>
+  </data>
+  <data name="HS4_MAX.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>Batterie</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>Zéro</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>Activ. Airspeed</value>
+  </data>
+  <data name="PIT_MAX_.Text" xml:space="preserve">
+    <value>4500</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>RàZ tout parametres du APM</value>
+  </data>
+  <data name="GYR_GAIN_.Text" xml:space="preserve">
+    <value>1000</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>Moniteur</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.it-IT.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.it-IT.resx
new file mode 100644
index 0000000000000000000000000000000000000000..2b2636c8132c76e5855c9dbb2c87151786f287c3
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.it-IT.resx
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="SV3_POS_.Text" xml:space="preserve">
+    <value>180</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>Manuale</value>
+  </data>
+  <data name="label12.Text" xml:space="preserve">
+    <value>PWM 0 - 1230</value>
+  </data>
+  <data name="label10.Text" xml:space="preserve">
+    <value>PWM 1621 - 1749</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>Modo Corrente:</value>
+  </data>
+  <data name="CHK_enableoptflow.Text" xml:space="preserve">
+    <value>Abilita Flusso ottico</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>Nota: le immagini sono sono per presentazione, funzionerà con Hexa, etc.</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="label11.Text" xml:space="preserve">
+    <value>PWM 1750 +</value>
+  </data>
+  <data name="CHK_elevonch1rev.Text" xml:space="preserve">
+    <value>Elevatore CH1 Rev</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>PWM Corrente:</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>Imposta APM</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>Posizione del servo del piatto</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>Abilita Magnetometro</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="tabArducopter.Text" xml:space="preserve">
+    <value>ArduCopter2</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>Imposta Frame (+ or x)</value>
+  </data>
+  <data name="SV2_POS_.Text" xml:space="preserve">
+    <value>60</value>
+  </data>
+  <data name="label18.Text" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="label19.Text" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>Modi</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="label20.Text" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>Riavvia</value>
+  </data>
+  <data name="SV1_POS_.Text" xml:space="preserve">
+    <value>-60</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>Alto</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>Escursione del piatto</value>
+  </data>
+  <data name="lbl_currentmode.Text" xml:space="preserve">
+    <value>Manuale</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>Escursione Timone</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>Calibarzione del sensore di voltaggio:
+1. Misura il valtaggio di ingresso di APM e inseriscilo nel box sotto 
+2. Misura il voltaggio della batteria e inseriscilo nel box sotto 
+3. Dalle caratteristiche del sensore di corrente, inserisci il valore degli ampere per volt nel box qui sotto</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>Calibrazione Radio</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>Massimo</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>Modo di volo 2</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>Rollio massimo</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>Modo di volo 3</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>Passo massimo</value>
+  </data>
+  <data name="label27.Text" xml:space="preserve">
+    <value>in gradi es 2° 3' W is -2.3</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>Modo di volo 1</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>Livella il quad per impostare gli accelerometri</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>Modo di volo 6</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>Capacità</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>Declinazione</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>Attiva Sonar</value>
+  </data>
+  <data name="label7.Text" xml:space="preserve">
+    <value>PWM 1231 - 1360</value>
+  </data>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>Ingresso Radio</value>
+  </data>
+  <data name="groupBox4.Text" xml:space="preserve">
+    <value>Calibration</value>
+  </data>
+  <data name="HS4_MIN.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>Modo di volo 4</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>Modo di volo 5</value>
+  </data>
+  <data name="groupBox3.Text" xml:space="preserve">
+    <value>Giroscopio</value>
+  </data>
+  <data name="label8.Text" xml:space="preserve">
+    <value>PWM 1361 - 1490</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>Hardware</value>
+  </data>
+  <data name="label9.Text" xml:space="preserve">
+    <value>PWM 1491 - 1620</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>Sito Web per la Declinazione</value>
+  </data>
+  <data name="HS4_MAX.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>Batteria</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>Zero</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>Attiva Sensore Velocità</value>
+  </data>
+  <data name="PIT_MAX_.Text" xml:space="preserve">
+    <value>4500</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>Resetta APM ai valori di Default</value>
+  </data>
+  <data name="GYR_GAIN_.Text" xml:space="preserve">
+    <value>1000</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>Monitor</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.pl.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.pl.resx
new file mode 100644
index 0000000000000000000000000000000000000000..057b9327168c6471be22139b5d017e20582de843
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.pl.resx
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="SV3_POS_.Text" xml:space="preserve">
+    <value>180</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>Ręczne</value>
+  </data>
+  <data name="label12.Text" xml:space="preserve">
+    <value>PWM 0 - 1230</value>
+  </data>
+  <data name="label10.Text" xml:space="preserve">
+    <value>PWM 1621 - 1749</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>Aktualny tryb:</value>
+  </data>
+  <data name="CHK_enableoptflow.Text" xml:space="preserve">
+    <value>Włącz Optical Flow</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>UWAGA: Obrazy są wyłącznie do prezentacji, działają jedynie z hexa, itp.</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="label11.Text" xml:space="preserve">
+    <value>PWM 1750 +</value>
+  </data>
+  <data name="CHK_elevonch1rev.Text" xml:space="preserve">
+    <value>Odwr. Elevon CH1</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>Aktualny PWM:</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>Ustawienia APM</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>Pozycja serwa płyty ster.</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>Włącz kompas</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="tabArducopter.Text" xml:space="preserve">
+    <value>ArduCopter2</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>Ustawienie ramy (+ lub x)</value>
+  </data>
+  <data name="SV2_POS_.Text" xml:space="preserve">
+    <value>60</value>
+  </data>
+  <data name="label18.Text" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="label19.Text" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>Tryby</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="label20.Text" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>Reset</value>
+  </data>
+  <data name="SV1_POS_.Text" xml:space="preserve">
+    <value>-60</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>Góra</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>Zakres ruchu płyty sterującej</value>
+  </data>
+  <data name="lbl_currentmode.Text" xml:space="preserve">
+    <value>Ręczne</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>Zakres steru kierunku</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>Kalibracja czujnika napięcia:
+1. Zmierz napięcie wejściowe APM i wpisz poniżej
+2. Zmierz napięcie baterii i wpisz poniżej
+3. Wpisz poniżej ilość amperów/wolt [A/V] z dokumentacji czujnika prądu</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>Kalibracja radia</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>Max</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>Tryb lotu 2</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>Max przechylenie</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>Tryb lotu 3</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>Max pochylenie</value>
+  </data>
+  <data name="label27.Text" xml:space="preserve">
+    <value>w stopniech np. 2° 3' W to -2.3</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>Tryb lotu 1</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>Wypoziomuj quada żeby stawić domyśle offsety przysp.</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>Tryb lotu 6</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>Pojemność</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>Deklinacja</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>Włącz sonar</value>
+  </data>
+  <data name="label7.Text" xml:space="preserve">
+    <value>PWM 1231 - 1360</value>
+  </data>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>Wejścia radia</value>
+  </data>
+  <data name="groupBox4.Text" xml:space="preserve">
+    <value>Calibration</value>
+  </data>
+  <data name="HS4_MIN.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>Tryb lotu 4</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>Tryb lotu 5</value>
+  </data>
+  <data name="groupBox3.Text" xml:space="preserve">
+    <value>Żyro</value>
+  </data>
+  <data name="label8.Text" xml:space="preserve">
+    <value>PWM 1361 - 1490</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>Hardware</value>
+  </data>
+  <data name="label9.Text" xml:space="preserve">
+    <value>PWM 1491 - 1620</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>Strona www deklinacji</value>
+  </data>
+  <data name="HS4_MAX.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>Bateria</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>Zero</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>Włącz prędkość powietrza</value>
+  </data>
+  <data name="PIT_MAX_.Text" xml:space="preserve">
+    <value>4500</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>Reset APM do stawień domyślnych</value>
+  </data>
+  <data name="GYR_GAIN_.Text" xml:space="preserve">
+    <value>1000</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>Monitor</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.resx
new file mode 100644
index 0000000000000000000000000000000000000000..a4f7288080463d18d246ff455416ec247da02ced
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.resx
@@ -0,0 +1,293 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="label28.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="label28.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="label28.Location" type="System.Drawing.Point, System.Drawing">
+    <value>114, 129</value>
+  </data>
+  <data name="label28.Size" type="System.Drawing.Size, System.Drawing">
+    <value>212, 13</value>
+  </data>
+  <data name="label28.TabIndex" type="System.Int32, mscorlib">
+    <value>15</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>Level your plane to set default accel offsets</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>3</value>
+  </data>
+  <data name="BUT_levelplane.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="BUT_levelplane.Location" type="System.Drawing.Point, System.Drawing">
+    <value>175, 158</value>
+  </data>
+  <data name="BUT_levelplane.Size" type="System.Drawing.Size, System.Drawing">
+    <value>75, 23</value>
+  </data>
+  <data name="BUT_levelplane.TabIndex" type="System.Int32, mscorlib">
+    <value>14</value>
+  </data>
+  <data name="BUT_levelplane.Text" xml:space="preserve">
+    <value>Level</value>
+  </data>
+  <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <data name="BUT_levelplane.ToolTip" xml:space="preserve">
+    <value>Do a accel calibration now.</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelplane.Name" xml:space="preserve">
+    <value>BUT_levelplane</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelplane.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4492.39671, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelplane.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelplane.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
+  <data name="CHK_manuallevel.AutoSize" type="System.Boolean, mscorlib">
+    <value>True</value>
+  </data>
+  <data name="CHK_manuallevel.Location" type="System.Drawing.Point, System.Drawing">
+    <value>172, 264</value>
+  </data>
+  <data name="CHK_manuallevel.Size" type="System.Drawing.Size, System.Drawing">
+    <value>86, 17</value>
+  </data>
+  <data name="CHK_manuallevel.TabIndex" type="System.Int32, mscorlib">
+    <value>16</value>
+  </data>
+  <data name="CHK_manuallevel.Text" xml:space="preserve">
+    <value>Manual level</value>
+  </data>
+  <data name="CHK_manuallevel.ToolTip" xml:space="preserve">
+    <value>Disables autolevel and will keep the last done accel calibration</value>
+  </data>
+  <data name="&gt;&gt;CHK_manuallevel.Name" xml:space="preserve">
+    <value>CHK_manuallevel</value>
+  </data>
+  <data name="&gt;&gt;CHK_manuallevel.Type" xml:space="preserve">
+    <value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;CHK_manuallevel.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;CHK_manuallevel.ZOrder" xml:space="preserve">
+    <value>2</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>150, 248</value>
+  </data>
+  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>133, 13</value>
+  </data>
+  <data name="label1.TabIndex" type="System.Int32, mscorlib">
+    <value>17</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>For advanced users ONLY</value>
+  </data>
+  <data name="&gt;&gt;label1.Name" xml:space="preserve">
+    <value>label1</value>
+  </data>
+  <data name="&gt;&gt;label1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;label1.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;label1.ZOrder" xml:space="preserve">
+    <value>1</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>100, 49</value>
+  </data>
+  <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>264, 39</value>
+  </data>
+  <data name="label2.TabIndex" type="System.Int32, mscorlib">
+    <value>18</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>By default your plane will autolevel on every boot. 
+To disable this action you need to turn on manual
+ level and preform a level to calibrate the accel offsets.</value>
+  </data>
+  <data name="&gt;&gt;label2.Name" xml:space="preserve">
+    <value>label2</value>
+  </data>
+  <data name="&gt;&gt;label2.Type" xml:space="preserve">
+    <value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;label2.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;label2.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>
+  </metadata>
+  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
+    <value>6, 13</value>
+  </data>
+  <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
+    <value>439, 356</value>
+  </data>
+  <data name="&gt;&gt;toolTip1.Name" xml:space="preserve">
+    <value>toolTip1</value>
+  </data>
+  <data name="&gt;&gt;toolTip1.Type" xml:space="preserve">
+    <value>System.Windows.Forms.ToolTip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;$this.Name" xml:space="preserve">
+    <value>ConfigAccelerometerCalibrationPlane</value>
+  </data>
+  <data name="&gt;&gt;$this.Type" xml:space="preserve">
+    <value>ArdupilotMega.Controls.BackstageView.BackStageViewContentPanel, ArdupilotMegaPlanner, Version=1.1.4492.39671, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.zh-Hans.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.zh-Hans.resx
new file mode 100644
index 0000000000000000000000000000000000000000..f96892c423b112b28127ad582686f33464b57c5b
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.zh-Hans.resx
@@ -0,0 +1,496 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>遥控输入</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>模式</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>硬件</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>电池</value>
+  </data>
+  <data name="tabHeli.Text" xml:space="preserve">
+    <value>AC2 直升机</value>
+  </data>
+  <data name="groupBoxElevons.Text" xml:space="preserve">
+    <value>上降副翼 (Elevon) 配置</value>
+  </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="CHK_elevonch2rev.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 17</value>
+  </data>
+  <data name="CHK_elevonch2rev.Text" xml:space="preserve">
+    <value>Elevons CH2 逆转</value>
+  </data>
+  <data name="CHK_elevonrev.Size" type="System.Drawing.Size, System.Drawing">
+    <value>91, 17</value>
+  </data>
+  <data name="CHK_elevonrev.Text" xml:space="preserve">
+    <value>Elevons 逆转</value>
+  </data>
+  <data name="CHK_elevonch1rev.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 17</value>
+  </data>
+  <data name="CHK_elevonch1rev.Text" xml:space="preserve">
+    <value>Elevons CH1 逆转</value>
+  </data>
+  <data name="CHK_revch3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch3.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="CHK_revch4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch4.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="CHK_revch2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch2.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="CHK_revch1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch1.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>校准遥控</value>
+  </data>
+  <data name="CB_simple6.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="CB_simple5.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="CB_simple4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="CB_simple3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="CB_simple2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="CB_simple1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="label14.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>当前 PWM:</value>
+  </data>
+  <data name="label13.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>当前模式:</value>
+  </data>
+  <data name="label6.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>飞行模式 6</value>
+  </data>
+  <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>飞行模式 5</value>
+  </data>
+  <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>飞行模式 4</value>
+  </data>
+  <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>飞行模式 3</value>
+  </data>
+  <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>飞行模式 2</value>
+  </data>
+  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>飞行模式 1</value>
+  </data>
+  <data name="BUT_SaveModes.Text" xml:space="preserve">
+    <value>保存模式</value>
+  </data>
+  <data name="label27.Text" xml:space="preserve">
+    <value>十进制, 2° 3' W 就是 -2.3</value>
+  </data>
+  <data name="CHK_enableoptflow.Text" xml:space="preserve">
+    <value>启用光流</value>
+  </data>
+  <data name="linkLabelmagdec.Size" type="System.Drawing.Size, System.Drawing">
+    <value>67, 13</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>磁偏角网站</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>磁偏角</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>启用空速计</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>启用声纳</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>启用罗盘</value>
+  </data>
+  <data name="label31.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label31.Text" xml:space="preserve">
+    <value>输入电压:</value>
+  </data>
+  <data name="label32.Size" type="System.Drawing.Size, System.Drawing">
+    <value>94, 13</value>
+  </data>
+  <data name="label32.Text" xml:space="preserve">
+    <value>测量的电池电压:</value>
+  </data>
+  <data name="label33.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label33.Text" xml:space="preserve">
+    <value>电池电压:</value>
+  </data>
+  <data name="label34.Size" type="System.Drawing.Size, System.Drawing">
+    <value>52, 13</value>
+  </data>
+  <data name="label34.Text" xml:space="preserve">
+    <value>分 压 比:</value>
+  </data>
+  <data name="label35.Size" type="System.Drawing.Size, System.Drawing">
+    <value>63, 13</value>
+  </data>
+  <data name="label35.Text" xml:space="preserve">
+    <value>安培/伏特:</value>
+  </data>
+  <data name="label47.Size" type="System.Drawing.Size, System.Drawing">
+    <value>48, 18</value>
+  </data>
+  <data name="label47.Text" xml:space="preserve">
+    <value>传感器</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>电压传感器校准:
+1. 测量APM输入电压,输入到下方的文本框中
+2. 测量电池电压,输入到下方的文本框中
+3. 从当前的传感器的数据表中找到安培/伏特,输入到下方的文本框中</value>
+  </data>
+  <data name="label29.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>容量</value>
+  </data>
+  <data name="label30.Size" type="System.Drawing.Size, System.Drawing">
+    <value>48, 13</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>监控器</value>
+  </data>
+  <data name="label28.Size" type="System.Drawing.Size, System.Drawing">
+    <value>175, 13</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>设置水平面的默认加速度计偏移</value>
+  </data>
+  <data name="label16.Size" type="System.Drawing.Size, System.Drawing">
+    <value>261, 13</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>注: 图片只是用于展示,设置可以用于六轴等机架</value>
+  </data>
+  <data name="label15.Size" type="System.Drawing.Size, System.Drawing">
+    <value>93, 13</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>机架设置 (+ 或 x)</value>
+  </data>
+  <data name="BUT_levelac2.Text" xml:space="preserve">
+    <value>找平</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>手动</value>
+  </data>
+  <data name="BUT_swash_manual.Text" xml:space="preserve">
+    <value>手动</value>
+  </data>
+  <data name="label46.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label46.Text" xml:space="preserve">
+    <value>感度</value>
+  </data>
+  <data name="label45.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label45.Text" xml:space="preserve">
+    <value>启用</value>
+  </data>
+  <data name="label44.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label44.Text" xml:space="preserve">
+    <value>微调</value>
+  </data>
+  <data name="label43.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label43.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="label42.Size" type="System.Drawing.Size, System.Drawing">
+    <value>43, 13</value>
+  </data>
+  <data name="label42.Text" xml:space="preserve">
+    <value>方向舵</value>
+  </data>
+  <data name="label24.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>最大</value>
+  </data>
+  <data name="label40.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label40.Text" xml:space="preserve">
+    <value>最小</value>
+  </data>
+  <data name="label41.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label41.Text" xml:space="preserve">
+    <value>最低</value>
+  </data>
+  <data name="label21.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>最高</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>0度</value>
+  </data>
+  <data name="label39.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label39.Text" xml:space="preserve">
+    <value>微调</value>
+  </data>
+  <data name="label38.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label38.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="label37.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label37.Text" xml:space="preserve">
+    <value>位置</value>
+  </data>
+  <data name="label36.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label36.Text" xml:space="preserve">
+    <value>舵机</value>
+  </data>
+  <data name="label26.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>最大俯仰</value>
+  </data>
+  <data name="label25.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>最大侧倾</value>
+  </data>
+  <data name="label23.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>舵机行程</value>
+  </data>
+  <data name="label22.Size" type="System.Drawing.Size, System.Drawing">
+    <value>79, 13</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>斜盘水平微调</value>
+  </data>
+  <data name="label17.Size" type="System.Drawing.Size, System.Drawing">
+    <value>79, 13</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>斜盘舵机位置</value>
+  </data>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>重置</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>重置 APM 为默认设置</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>APM设置</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.zh-TW.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.zh-TW.resx
new file mode 100644
index 0000000000000000000000000000000000000000..0c03fbf8ed6bd5befc34246175bf1adf106cce43
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationPlane.zh-TW.resx
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>重置</value>
+  </data>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>遙控輸入</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>模式</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>硬件</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>電池</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>重置 APM 為默認設置</value>
+  </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="CHK_revch3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch3.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="CHK_revch4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch4.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="CHK_revch2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch2.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="CHK_revch1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch1.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>校準遙控</value>
+  </data>
+  <data name="CB_simple6.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="CB_simple5.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="CB_simple4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="CB_simple3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="CB_simple2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="CB_simple1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="label14.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>當前 PWM:</value>
+  </data>
+  <data name="label13.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>當前模式:</value>
+  </data>
+  <data name="label6.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>飛行模式 6</value>
+  </data>
+  <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>飛行模式 5</value>
+  </data>
+  <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>飛行模式 4</value>
+  </data>
+  <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>飛行模式 3</value>
+  </data>
+  <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>飛行模式 2</value>
+  </data>
+  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>飛行模式 1</value>
+  </data>
+  <data name="BUT_SaveModes.Text" xml:space="preserve">
+    <value>保存模式</value>
+  </data>
+  <data name="linkLabelmagdec.Size" type="System.Drawing.Size, System.Drawing">
+    <value>67, 13</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>磁偏角網站</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>磁偏角</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>啟用空速計</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>啟用聲納</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>啟用羅盤</value>
+  </data>
+  <data name="label35.Size" type="System.Drawing.Size, System.Drawing">
+    <value>63, 13</value>
+  </data>
+  <data name="label35.Text" xml:space="preserve">
+    <value>安培/伏特:</value>
+  </data>
+  <data name="label34.Size" type="System.Drawing.Size, System.Drawing">
+    <value>52, 13</value>
+  </data>
+  <data name="label34.Text" xml:space="preserve">
+    <value>分 壓 比:</value>
+  </data>
+  <data name="label33.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label33.Text" xml:space="preserve">
+    <value>電池電壓:</value>
+  </data>
+  <data name="label32.Size" type="System.Drawing.Size, System.Drawing">
+    <value>94, 13</value>
+  </data>
+  <data name="label32.Text" xml:space="preserve">
+    <value>測量的電池電壓:</value>
+  </data>
+  <data name="label31.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label31.Text" xml:space="preserve">
+    <value>輸入電壓:</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>電壓傳感器校準:
+1. 測量APM輸入電壓,輸入到下方的文本框中
+2. 測量電池電壓,輸入到下方的文本框中
+3. 從當前的傳感器的數據表中找到安培/伏特,輸入到下方的文本框中</value>
+  </data>
+  <data name="label29.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>容量</value>
+  </data>
+  <data name="label30.Size" type="System.Drawing.Size, System.Drawing">
+    <value>48, 13</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>監控器</value>
+  </data>
+  <data name="label28.Size" type="System.Drawing.Size, System.Drawing">
+    <value>175, 13</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>設置水平面的默認加速度計偏移</value>
+  </data>
+  <data name="label16.Size" type="System.Drawing.Size, System.Drawing">
+    <value>261, 13</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>注: 圖片只是用於展示,設置可以用於六軸等機架</value>
+  </data>
+  <data name="label15.Size" type="System.Drawing.Size, System.Drawing">
+    <value>93, 13</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>機架設置 (+ 或 x)</value>
+  </data>
+  <data name="BUT_levelac2.Text" xml:space="preserve">
+    <value>找平</value>
+  </data>
+  <data name="label46.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label46.Text" xml:space="preserve">
+    <value>感度</value>
+  </data>
+  <data name="label45.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label45.Text" xml:space="preserve">
+    <value>啟用</value>
+  </data>
+  <data name="label44.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label44.Text" xml:space="preserve">
+    <value>微調</value>
+  </data>
+  <data name="label43.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label43.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="label42.Size" type="System.Drawing.Size, System.Drawing">
+    <value>43, 13</value>
+  </data>
+  <data name="label42.Text" xml:space="preserve">
+    <value>方向舵</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>手動</value>
+  </data>
+  <data name="label24.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>最大</value>
+  </data>
+  <data name="label40.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label40.Text" xml:space="preserve">
+    <value>最小</value>
+  </data>
+  <data name="BUT_swash_manual.Text" xml:space="preserve">
+    <value>手動</value>
+  </data>
+  <data name="label41.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label41.Text" xml:space="preserve">
+    <value>最低</value>
+  </data>
+  <data name="label21.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>最高</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>0度</value>
+  </data>
+  <data name="label39.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label39.Text" xml:space="preserve">
+    <value>微調</value>
+  </data>
+  <data name="label38.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label38.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="label37.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label37.Text" xml:space="preserve">
+    <value>位置</value>
+  </data>
+  <data name="label36.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label36.Text" xml:space="preserve">
+    <value>舵機</value>
+  </data>
+  <data name="label26.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>最大俯仰</value>
+  </data>
+  <data name="label25.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>最大側傾</value>
+  </data>
+  <data name="label23.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>舵機行程</value>
+  </data>
+  <data name="label22.Size" type="System.Drawing.Size, System.Drawing">
+    <value>79, 13</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>斜盤水平微調</value>
+  </data>
+  <data name="label17.Size" type="System.Drawing.Size, System.Drawing">
+    <value>79, 13</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>斜盤舵機位置</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>APM設置</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.Designer.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.Designer.cs
new file mode 100644
index 0000000000000000000000000000000000000000..a61b888aa70ea8164964d4010fbfff036c523355
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.Designer.cs
@@ -0,0 +1,110 @@
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    partial class ConfigAccelerometerCalibrationQuad
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigAccelerometerCalibrationQuad));
+            this.label28 = new System.Windows.Forms.Label();
+            this.label16 = new System.Windows.Forms.Label();
+            this.label15 = new System.Windows.Forms.Label();
+            this.pictureBoxQuadX = new System.Windows.Forms.PictureBox();
+            this.pictureBoxQuad = new System.Windows.Forms.PictureBox();
+            this.BUT_levelac2 = new ArdupilotMega.MyButton();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuad)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // label28
+            // 
+            resources.ApplyResources(this.label28, "label28");
+            this.label28.Name = "label28";
+            // 
+            // label16
+            // 
+            resources.ApplyResources(this.label16, "label16");
+            this.label16.Name = "label16";
+            // 
+            // label15
+            // 
+            resources.ApplyResources(this.label15, "label15");
+            this.label15.Name = "label15";
+            // 
+            // pictureBoxQuadX
+            // 
+            this.pictureBoxQuadX.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.pictureBoxQuadX.Image = global::ArdupilotMega.Properties.Resources.quadx;
+            resources.ApplyResources(this.pictureBoxQuadX, "pictureBoxQuadX");
+            this.pictureBoxQuadX.Name = "pictureBoxQuadX";
+            this.pictureBoxQuadX.TabStop = false;
+            this.pictureBoxQuadX.Click += new System.EventHandler(this.pictureBoxQuadX_Click);
+            // 
+            // pictureBoxQuad
+            // 
+            this.pictureBoxQuad.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.pictureBoxQuad.Image = global::ArdupilotMega.Properties.Resources.quad;
+            resources.ApplyResources(this.pictureBoxQuad, "pictureBoxQuad");
+            this.pictureBoxQuad.Name = "pictureBoxQuad";
+            this.pictureBoxQuad.TabStop = false;
+            this.pictureBoxQuad.Click += new System.EventHandler(this.pictureBoxQuad_Click);
+            // 
+            // BUT_levelac2
+            // 
+            resources.ApplyResources(this.BUT_levelac2, "BUT_levelac2");
+            this.BUT_levelac2.Name = "BUT_levelac2";
+            this.BUT_levelac2.UseVisualStyleBackColor = true;
+            this.BUT_levelac2.Click += new System.EventHandler(this.BUT_levelac2_Click);
+            // 
+            // ConfigAccelerometerCalibrationQuad
+            // 
+            resources.ApplyResources(this, "$this");
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.label28);
+            this.Controls.Add(this.label16);
+            this.Controls.Add(this.label15);
+            this.Controls.Add(this.pictureBoxQuadX);
+            this.Controls.Add(this.pictureBoxQuad);
+            this.Controls.Add(this.BUT_levelac2);
+            this.Name = "ConfigAccelerometerCalibrationQuad";
+            this.Load += new System.EventHandler(this.ConfigAccelerometerCalibration_Load);
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuadX)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQuad)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label label28;
+        private System.Windows.Forms.Label label16;
+        private System.Windows.Forms.Label label15;
+        private System.Windows.Forms.PictureBox pictureBoxQuadX;
+        private System.Windows.Forms.PictureBox pictureBoxQuad;
+        private MyButton BUT_levelac2;
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.cs
new file mode 100644
index 0000000000000000000000000000000000000000..5da92ae68d61e27cfb4b013a6068ccea0a4b06d9
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.cs
@@ -0,0 +1,80 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using ArdupilotMega.Controls.BackstageView;
+
+namespace ArdupilotMega.GCSViews.ConfigurationView
+{
+    public partial class ConfigAccelerometerCalibrationQuad : BackStageViewContentPanel
+    {
+        public ConfigAccelerometerCalibrationQuad()
+        {
+            InitializeComponent();
+        }
+
+        private void pictureBoxQuadX_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                MainV2.comPort.setParam("FRAME", 1f);
+                CustomMessageBox.Show("Set to x");
+            }
+            catch { CustomMessageBox.Show("Set frame failed"); }
+        }
+
+        private void BUT_levelac2_Click(object sender, EventArgs e)
+        {
+            try
+            {
+#if MAVLINK10
+                int fixme; // needs to be accel only
+                MainV2.comPort.doCommand(MAVLink.MAV_CMD.PREFLIGHT_CALIBRATION,1,1,1,1,1,1,1);
+#else
+                MainV2.comPort.doAction(MAVLink.MAV_ACTION.MAV_ACTION_CALIBRATE_ACC);
+#endif
+
+                BUT_levelac2.Text = "Complete";
+            }
+            catch
+            {
+                CustomMessageBox.Show("Failed to level : ac2 2.0.37+ is required");
+            }
+        }
+
+        private void pictureBoxQuad_Click(object sender, EventArgs e)
+        {
+            try
+            {
+                MainV2.comPort.setParam("FRAME", 0f);
+                CustomMessageBox.Show("Set to +");
+            }
+            catch { CustomMessageBox.Show("Set frame failed"); }
+        }
+
+        private void ConfigAccelerometerCalibration_Load(object sender, EventArgs e)
+        {
+            if (!MainV2.comPort.BaseStream.IsOpen)
+            {
+                this.Enabled = false;
+                return;
+            }
+            else
+            {
+                if (MainV2.cs.firmware == MainV2.Firmwares.ArduCopter2)
+                {
+                    this.Enabled = true;
+                }
+                else
+                {
+                    this.Enabled = false;
+                    return;
+                }
+            }
+        }
+    }
+}
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.es-ES.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.es-ES.resx
new file mode 100644
index 0000000000000000000000000000000000000000..70ad73f1af84a8cec236442b9c51462353fceab5
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.es-ES.resx
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="SV3_POS_.Text" xml:space="preserve">
+    <value>180</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>Manual</value>
+  </data>
+  <data name="label12.Text" xml:space="preserve">
+    <value>PWM 0 - 1230</value>
+  </data>
+  <data name="label10.Text" xml:space="preserve">
+    <value>PWM 1621 - 1749</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>Modo actual:</value>
+  </data>
+  <data name="CHK_enableoptflow.Text" xml:space="preserve">
+    <value>Habilitar el flujo óptico</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>NOTA: Las imágenes son sólo para su presentación</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="label11.Text" xml:space="preserve">
+    <value>PWM 1750 +</value>
+  </data>
+  <data name="CHK_elevonch1rev.Text" xml:space="preserve">
+    <value>Elevons CH1 Rev</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>PWM Actual:</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>APMSetup</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>Swash-Servo posición</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>Activar Compas</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="tabArducopter.Text" xml:space="preserve">
+    <value>ArduCopter2</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>Ajuste Chásis (+ or x)</value>
+  </data>
+  <data name="SV2_POS_.Text" xml:space="preserve">
+    <value>60</value>
+  </data>
+  <data name="label18.Text" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="label19.Text" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>Modos</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>Modo Simple</value>
+  </data>
+  <data name="label20.Text" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>Reset</value>
+  </data>
+  <data name="SV1_POS_.Text" xml:space="preserve">
+    <value>-60</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>Superior</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>Swash de Viaje</value>
+  </data>
+  <data name="lbl_currentmode.Text" xml:space="preserve">
+    <value>Manual</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>Timón de Viaje</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>Calibración del sensor de voltaje:Para calibrar el sensor, use un multímetro para medir la tensión que sale de la CES de la batería-la eliminación del circuito (se trata de cables negro y rojo en el cable de tres hilos que suministra energía a la placa APM).Luego reste 0,3 V de ese valor y entrar en él en el campo # 1 a la izquierda.</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>Calibrar Radio</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>Max</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>Modo de Vuelo 2</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>Alabeo Max</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>Modo de Vuelo 3</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>Cabeceo Max</value>
+  </data>
+  <data name="label27.Text" xml:space="preserve">
+    <value>por ejemplo, en grados 2 ° 3 'W es -2,3</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>Modo de Vuelo 1</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>Nivel tu quad para establecer las compensaciones por defecto acel</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>Modo de Vuelo 6</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>Capacidad</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>Declinación</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>Activar Sonar</value>
+  </data>
+  <data name="label7.Text" xml:space="preserve">
+    <value>PWM 1231 - 1360</value>
+  </data>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>Entrada Radio</value>
+  </data>
+  <data name="groupBox4.Text" xml:space="preserve">
+    <value>Calibración</value>
+  </data>
+  <data name="HS4_MIN.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>Modo de Vuelo 4</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>Modo de Vuelo 5</value>
+  </data>
+  <data name="groupBox3.Text" xml:space="preserve">
+    <value>Gyro</value>
+  </data>
+  <data name="label8.Text" xml:space="preserve">
+    <value>PWM 1361 - 1490</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>Hardware</value>
+  </data>
+  <data name="label9.Text" xml:space="preserve">
+    <value>PWM 1491 - 1620</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>Sitio Web Declinación</value>
+  </data>
+  <data name="HS4_MAX.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>Batería</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>Cero</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>Activar Airspeed</value>
+  </data>
+  <data name="PIT_MAX_.Text" xml:space="preserve">
+    <value>4500</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>Restablecer los Ajustes de hardware APM</value>
+  </data>
+  <data name="GYR_GAIN_.Text" xml:space="preserve">
+    <value>1000</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>Monitor</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.fr.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.fr.resx
new file mode 100644
index 0000000000000000000000000000000000000000..1bd274beea2e052315a0ab1e83d3619dcf47cbf1
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.fr.resx
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="SV3_POS_.Text" xml:space="preserve">
+    <value>180</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>Manuel</value>
+  </data>
+  <data name="label12.Text" xml:space="preserve">
+    <value>PWM 0 - 1230</value>
+  </data>
+  <data name="label10.Text" xml:space="preserve">
+    <value>PWM 1621 - 1749</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>Mode Courant:</value>
+  </data>
+  <data name="CHK_enableoptflow.Text" xml:space="preserve">
+    <value>Activ. capteur optique</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>NOTE: images pou presentation uniquement. Fonctionnel pour Hex, Octo etc...</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="label11.Text" xml:space="preserve">
+    <value>PWM 1750 +</value>
+  </data>
+  <data name="CHK_elevonch1rev.Text" xml:space="preserve">
+    <value>Elevons CH1 Rev</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>PWM Actuel:</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>APMSetup</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>Swash-Servo position</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>Activ. Boussole</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="tabArducopter.Text" xml:space="preserve">
+    <value>ArduCopter2</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>type de châssis (+ ou x)</value>
+  </data>
+  <data name="SV2_POS_.Text" xml:space="preserve">
+    <value>60</value>
+  </data>
+  <data name="label18.Text" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="label19.Text" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>Modes</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>Mode Simple</value>
+  </data>
+  <data name="label20.Text" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>Réinit.</value>
+  </data>
+  <data name="SV1_POS_.Text" xml:space="preserve">
+    <value>-60</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>Haut</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>Mouvement Swash</value>
+  </data>
+  <data name="lbl_currentmode.Text" xml:space="preserve">
+    <value>Manuel</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>Deplac. du Gouvernail</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>Calibration du capteur de Voltage.1. Mesurer le voltage sur APM et inscrivez-le dans la boite ci-bas.2. Mesurer le voltage de la batterie et inscrivez-le dans la boite ci-bas.3. Inscrire les ampères par volt de la documentation du capteur de courant ci-bas</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>Calibrer Radio</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>Max</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>Mode de vol 2</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>Roulis Max</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>Mode de vol 2</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>Tangage Max</value>
+  </data>
+  <data name="label27.Text" xml:space="preserve">
+    <value>en degrés eg 2° 3' W est -2.3</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>Mode de vol 1</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>Niveler l'apareil pour copensation des accels</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>Mode de vol 6</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>Capacité</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>Déclination</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>Activer Sonar</value>
+  </data>
+  <data name="label7.Text" xml:space="preserve">
+    <value>PWM 1231 - 1360</value>
+  </data>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>Entrée Radio</value>
+  </data>
+  <data name="HS4_MIN.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>Mode de vol 4</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>Mode de vol 5</value>
+  </data>
+  <data name="groupBox3.Text" xml:space="preserve">
+    <value>Gyro</value>
+  </data>
+  <data name="label8.Text" xml:space="preserve">
+    <value>PWM 1361 - 1490</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>Matériel</value>
+  </data>
+  <data name="label9.Text" xml:space="preserve">
+    <value>PWM 1491 - 1620</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>Site Web Déclination</value>
+  </data>
+  <data name="HS4_MAX.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>Batterie</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>Zéro</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>Activ. Airspeed</value>
+  </data>
+  <data name="PIT_MAX_.Text" xml:space="preserve">
+    <value>4500</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>RàZ tout parametres du APM</value>
+  </data>
+  <data name="GYR_GAIN_.Text" xml:space="preserve">
+    <value>1000</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>Moniteur</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.it-IT.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.it-IT.resx
new file mode 100644
index 0000000000000000000000000000000000000000..2b2636c8132c76e5855c9dbb2c87151786f287c3
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.it-IT.resx
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="SV3_POS_.Text" xml:space="preserve">
+    <value>180</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>Manuale</value>
+  </data>
+  <data name="label12.Text" xml:space="preserve">
+    <value>PWM 0 - 1230</value>
+  </data>
+  <data name="label10.Text" xml:space="preserve">
+    <value>PWM 1621 - 1749</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>Modo Corrente:</value>
+  </data>
+  <data name="CHK_enableoptflow.Text" xml:space="preserve">
+    <value>Abilita Flusso ottico</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>Nota: le immagini sono sono per presentazione, funzionerà con Hexa, etc.</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="label11.Text" xml:space="preserve">
+    <value>PWM 1750 +</value>
+  </data>
+  <data name="CHK_elevonch1rev.Text" xml:space="preserve">
+    <value>Elevatore CH1 Rev</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>PWM Corrente:</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>Imposta APM</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>Posizione del servo del piatto</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>Abilita Magnetometro</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="tabArducopter.Text" xml:space="preserve">
+    <value>ArduCopter2</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>Imposta Frame (+ or x)</value>
+  </data>
+  <data name="SV2_POS_.Text" xml:space="preserve">
+    <value>60</value>
+  </data>
+  <data name="label18.Text" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="label19.Text" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>Modi</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>Modo Semplice</value>
+  </data>
+  <data name="label20.Text" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>Riavvia</value>
+  </data>
+  <data name="SV1_POS_.Text" xml:space="preserve">
+    <value>-60</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>Alto</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>Escursione del piatto</value>
+  </data>
+  <data name="lbl_currentmode.Text" xml:space="preserve">
+    <value>Manuale</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>Escursione Timone</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>Calibarzione del sensore di voltaggio:
+1. Misura il valtaggio di ingresso di APM e inseriscilo nel box sotto 
+2. Misura il voltaggio della batteria e inseriscilo nel box sotto 
+3. Dalle caratteristiche del sensore di corrente, inserisci il valore degli ampere per volt nel box qui sotto</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>Calibrazione Radio</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>Massimo</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>Modo di volo 2</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>Rollio massimo</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>Modo di volo 3</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>Passo massimo</value>
+  </data>
+  <data name="label27.Text" xml:space="preserve">
+    <value>in gradi es 2° 3' W is -2.3</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>Modo di volo 1</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>Livella il quad per impostare gli accelerometri</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>Modo di volo 6</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>Capacità</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>Declinazione</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>Attiva Sonar</value>
+  </data>
+  <data name="label7.Text" xml:space="preserve">
+    <value>PWM 1231 - 1360</value>
+  </data>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>Ingresso Radio</value>
+  </data>
+  <data name="groupBox4.Text" xml:space="preserve">
+    <value>Calibration</value>
+  </data>
+  <data name="HS4_MIN.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>Modo di volo 4</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>Modo di volo 5</value>
+  </data>
+  <data name="groupBox3.Text" xml:space="preserve">
+    <value>Giroscopio</value>
+  </data>
+  <data name="label8.Text" xml:space="preserve">
+    <value>PWM 1361 - 1490</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>Hardware</value>
+  </data>
+  <data name="label9.Text" xml:space="preserve">
+    <value>PWM 1491 - 1620</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>Sito Web per la Declinazione</value>
+  </data>
+  <data name="HS4_MAX.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>Batteria</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>Zero</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>Attiva Sensore Velocità</value>
+  </data>
+  <data name="PIT_MAX_.Text" xml:space="preserve">
+    <value>4500</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>Resetta APM ai valori di Default</value>
+  </data>
+  <data name="GYR_GAIN_.Text" xml:space="preserve">
+    <value>1000</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>Monitor</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.pl.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.pl.resx
new file mode 100644
index 0000000000000000000000000000000000000000..057b9327168c6471be22139b5d017e20582de843
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.pl.resx
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="SV3_POS_.Text" xml:space="preserve">
+    <value>180</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>Ręczne</value>
+  </data>
+  <data name="label12.Text" xml:space="preserve">
+    <value>PWM 0 - 1230</value>
+  </data>
+  <data name="label10.Text" xml:space="preserve">
+    <value>PWM 1621 - 1749</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>Aktualny tryb:</value>
+  </data>
+  <data name="CHK_enableoptflow.Text" xml:space="preserve">
+    <value>Włącz Optical Flow</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>UWAGA: Obrazy są wyłącznie do prezentacji, działają jedynie z hexa, itp.</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="label11.Text" xml:space="preserve">
+    <value>PWM 1750 +</value>
+  </data>
+  <data name="CHK_elevonch1rev.Text" xml:space="preserve">
+    <value>Odwr. Elevon CH1</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>Aktualny PWM:</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>Ustawienia APM</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>Pozycja serwa płyty ster.</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>Włącz kompas</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="tabArducopter.Text" xml:space="preserve">
+    <value>ArduCopter2</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>Ustawienie ramy (+ lub x)</value>
+  </data>
+  <data name="SV2_POS_.Text" xml:space="preserve">
+    <value>60</value>
+  </data>
+  <data name="label18.Text" xml:space="preserve">
+    <value>1</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="label19.Text" xml:space="preserve">
+    <value>2</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>Tryby</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>Tryb prosty</value>
+  </data>
+  <data name="label20.Text" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>Reset</value>
+  </data>
+  <data name="SV1_POS_.Text" xml:space="preserve">
+    <value>-60</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>Góra</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>Zakres ruchu płyty sterującej</value>
+  </data>
+  <data name="lbl_currentmode.Text" xml:space="preserve">
+    <value>Ręczne</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>Zakres steru kierunku</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>Kalibracja czujnika napięcia:
+1. Zmierz napięcie wejściowe APM i wpisz poniżej
+2. Zmierz napięcie baterii i wpisz poniżej
+3. Wpisz poniżej ilość amperów/wolt [A/V] z dokumentacji czujnika prądu</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>Kalibracja radia</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>Max</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>Tryb lotu 2</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>Max przechylenie</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>Tryb lotu 3</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>Max pochylenie</value>
+  </data>
+  <data name="label27.Text" xml:space="preserve">
+    <value>w stopniech np. 2° 3' W to -2.3</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>Tryb lotu 1</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>Wypoziomuj quada żeby stawić domyśle offsety przysp.</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>Tryb lotu 6</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>Pojemność</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>Deklinacja</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>Włącz sonar</value>
+  </data>
+  <data name="label7.Text" xml:space="preserve">
+    <value>PWM 1231 - 1360</value>
+  </data>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>Wejścia radia</value>
+  </data>
+  <data name="groupBox4.Text" xml:space="preserve">
+    <value>Calibration</value>
+  </data>
+  <data name="HS4_MIN.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>Tryb lotu 4</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>Tryb lotu 5</value>
+  </data>
+  <data name="groupBox3.Text" xml:space="preserve">
+    <value>Żyro</value>
+  </data>
+  <data name="label8.Text" xml:space="preserve">
+    <value>PWM 1361 - 1490</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>Hardware</value>
+  </data>
+  <data name="label9.Text" xml:space="preserve">
+    <value>PWM 1491 - 1620</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>Strona www deklinacji</value>
+  </data>
+  <data name="HS4_MAX.Text" xml:space="preserve">
+    <value>1500</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>Bateria</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>Zero</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>Włącz prędkość powietrza</value>
+  </data>
+  <data name="PIT_MAX_.Text" xml:space="preserve">
+    <value>4500</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>Reset APM do stawień domyślnych</value>
+  </data>
+  <data name="GYR_GAIN_.Text" xml:space="preserve">
+    <value>1000</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>Monitor</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.resx
new file mode 100644
index 0000000000000000000000000000000000000000..e8ff56c3df3170b35c22ade9b318318600709195
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.resx
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="label28.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="label28.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="label28.Location" type="System.Drawing.Point, System.Drawing">
+    <value>124, 13</value>
+  </data>
+  <data name="label28.Size" type="System.Drawing.Size, System.Drawing">
+    <value>210, 13</value>
+  </data>
+  <data name="label28.TabIndex" type="System.Int32, mscorlib">
+    <value>15</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>Level your quad to set default accel offsets</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>0</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>124, 308</value>
+  </data>
+  <data name="label16.Size" type="System.Drawing.Size, System.Drawing">
+    <value>192, 26</value>
+  </data>
+  <data name="label16.TabIndex" type="System.Int32, mscorlib">
+    <value>13</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>NOTE: images are for presentation only
+will work with hexa's etc</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>1</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>167, 99</value>
+  </data>
+  <data name="label15.Size" type="System.Drawing.Size, System.Drawing">
+    <value>102, 13</value>
+  </data>
+  <data name="label15.TabIndex" type="System.Int32, mscorlib">
+    <value>12</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>Frame Setup (+ or x)</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>2</value>
+  </data>
+  <data name="pictureBoxQuadX.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="pictureBoxQuadX.Location" type="System.Drawing.Point, System.Drawing">
+    <value>226, 115</value>
+  </data>
+  <data name="pictureBoxQuadX.Size" type="System.Drawing.Size, System.Drawing">
+    <value>190, 190</value>
+  </data>
+  <data name="pictureBoxQuadX.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
+    <value>Zoom</value>
+  </data>
+  <data name="pictureBoxQuadX.TabIndex" type="System.Int32, mscorlib">
+    <value>11</value>
+  </data>
+  <data name="&gt;&gt;pictureBoxQuadX.Name" xml:space="preserve">
+    <value>pictureBoxQuadX</value>
+  </data>
+  <data name="&gt;&gt;pictureBoxQuadX.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;pictureBoxQuadX.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;pictureBoxQuadX.ZOrder" xml:space="preserve">
+    <value>3</value>
+  </data>
+  <data name="pictureBoxQuad.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
+    <value>NoControl</value>
+  </data>
+  <data name="pictureBoxQuad.Location" type="System.Drawing.Point, System.Drawing">
+    <value>19, 115</value>
+  </data>
+  <data name="pictureBoxQuad.Size" type="System.Drawing.Size, System.Drawing">
+    <value>190, 190</value>
+  </data>
+  <data name="pictureBoxQuad.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
+    <value>Zoom</value>
+  </data>
+  <data name="pictureBoxQuad.TabIndex" type="System.Int32, mscorlib">
+    <value>10</value>
+  </data>
+  <data name="&gt;&gt;pictureBoxQuad.Name" xml:space="preserve">
+    <value>pictureBoxQuad</value>
+  </data>
+  <data name="&gt;&gt;pictureBoxQuad.Type" xml:space="preserve">
+    <value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;pictureBoxQuad.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;pictureBoxQuad.ZOrder" xml:space="preserve">
+    <value>4</value>
+  </data>
+  <data name="BUT_levelac2.Location" type="System.Drawing.Point, System.Drawing">
+    <value>182, 43</value>
+  </data>
+  <data name="BUT_levelac2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>75, 23</value>
+  </data>
+  <data name="BUT_levelac2.TabIndex" type="System.Int32, mscorlib">
+    <value>16</value>
+  </data>
+  <data name="BUT_levelac2.Text" xml:space="preserve">
+    <value>Level</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelac2.Name" xml:space="preserve">
+    <value>BUT_levelac2</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelac2.Type" xml:space="preserve">
+    <value>ArdupilotMega.MyButton, ArdupilotMegaPlanner, Version=1.1.4492.39671, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelac2.Parent" xml:space="preserve">
+    <value>$this</value>
+  </data>
+  <data name="&gt;&gt;BUT_levelac2.ZOrder" xml:space="preserve">
+    <value>5</value>
+  </data>
+  <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
+    <value>6, 13</value>
+  </data>
+  <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
+    <value>439, 356</value>
+  </data>
+  <data name="&gt;&gt;$this.Name" xml:space="preserve">
+    <value>ConfigAccelerometerCalibrationQuad</value>
+  </data>
+  <data name="&gt;&gt;$this.Type" xml:space="preserve">
+    <value>ArdupilotMega.Controls.BackstageView.BackStageViewContentPanel, ArdupilotMegaPlanner, Version=1.1.4492.39671, Culture=neutral, PublicKeyToken=null</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.zh-Hans.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.zh-Hans.resx
new file mode 100644
index 0000000000000000000000000000000000000000..f96892c423b112b28127ad582686f33464b57c5b
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.zh-Hans.resx
@@ -0,0 +1,496 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>遥控输入</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>模式</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>硬件</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>电池</value>
+  </data>
+  <data name="tabHeli.Text" xml:space="preserve">
+    <value>AC2 直升机</value>
+  </data>
+  <data name="groupBoxElevons.Text" xml:space="preserve">
+    <value>上降副翼 (Elevon) 配置</value>
+  </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="CHK_elevonch2rev.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 17</value>
+  </data>
+  <data name="CHK_elevonch2rev.Text" xml:space="preserve">
+    <value>Elevons CH2 逆转</value>
+  </data>
+  <data name="CHK_elevonrev.Size" type="System.Drawing.Size, System.Drawing">
+    <value>91, 17</value>
+  </data>
+  <data name="CHK_elevonrev.Text" xml:space="preserve">
+    <value>Elevons 逆转</value>
+  </data>
+  <data name="CHK_elevonch1rev.Size" type="System.Drawing.Size, System.Drawing">
+    <value>115, 17</value>
+  </data>
+  <data name="CHK_elevonch1rev.Text" xml:space="preserve">
+    <value>Elevons CH1 逆转</value>
+  </data>
+  <data name="CHK_revch3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch3.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="CHK_revch4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch4.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="CHK_revch2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch2.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="CHK_revch1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch1.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>校准遥控</value>
+  </data>
+  <data name="CB_simple6.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="CB_simple5.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="CB_simple4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="CB_simple3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="CB_simple2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="CB_simple1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>简单模式</value>
+  </data>
+  <data name="label14.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>当前 PWM:</value>
+  </data>
+  <data name="label13.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>当前模式:</value>
+  </data>
+  <data name="label6.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>飞行模式 6</value>
+  </data>
+  <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>飞行模式 5</value>
+  </data>
+  <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>飞行模式 4</value>
+  </data>
+  <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>飞行模式 3</value>
+  </data>
+  <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>飞行模式 2</value>
+  </data>
+  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>飞行模式 1</value>
+  </data>
+  <data name="BUT_SaveModes.Text" xml:space="preserve">
+    <value>保存模式</value>
+  </data>
+  <data name="label27.Text" xml:space="preserve">
+    <value>十进制, 2° 3' W 就是 -2.3</value>
+  </data>
+  <data name="CHK_enableoptflow.Text" xml:space="preserve">
+    <value>启用光流</value>
+  </data>
+  <data name="linkLabelmagdec.Size" type="System.Drawing.Size, System.Drawing">
+    <value>67, 13</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>磁偏角网站</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>磁偏角</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>启用空速计</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>启用声纳</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>启用罗盘</value>
+  </data>
+  <data name="label31.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label31.Text" xml:space="preserve">
+    <value>输入电压:</value>
+  </data>
+  <data name="label32.Size" type="System.Drawing.Size, System.Drawing">
+    <value>94, 13</value>
+  </data>
+  <data name="label32.Text" xml:space="preserve">
+    <value>测量的电池电压:</value>
+  </data>
+  <data name="label33.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label33.Text" xml:space="preserve">
+    <value>电池电压:</value>
+  </data>
+  <data name="label34.Size" type="System.Drawing.Size, System.Drawing">
+    <value>52, 13</value>
+  </data>
+  <data name="label34.Text" xml:space="preserve">
+    <value>分 压 比:</value>
+  </data>
+  <data name="label35.Size" type="System.Drawing.Size, System.Drawing">
+    <value>63, 13</value>
+  </data>
+  <data name="label35.Text" xml:space="preserve">
+    <value>安培/伏特:</value>
+  </data>
+  <data name="label47.Size" type="System.Drawing.Size, System.Drawing">
+    <value>48, 18</value>
+  </data>
+  <data name="label47.Text" xml:space="preserve">
+    <value>传感器</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>电压传感器校准:
+1. 测量APM输入电压,输入到下方的文本框中
+2. 测量电池电压,输入到下方的文本框中
+3. 从当前的传感器的数据表中找到安培/伏特,输入到下方的文本框中</value>
+  </data>
+  <data name="label29.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>容量</value>
+  </data>
+  <data name="label30.Size" type="System.Drawing.Size, System.Drawing">
+    <value>48, 13</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>监控器</value>
+  </data>
+  <data name="label28.Size" type="System.Drawing.Size, System.Drawing">
+    <value>175, 13</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>设置水平面的默认加速度计偏移</value>
+  </data>
+  <data name="label16.Size" type="System.Drawing.Size, System.Drawing">
+    <value>261, 13</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>注: 图片只是用于展示,设置可以用于六轴等机架</value>
+  </data>
+  <data name="label15.Size" type="System.Drawing.Size, System.Drawing">
+    <value>93, 13</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>机架设置 (+ 或 x)</value>
+  </data>
+  <data name="BUT_levelac2.Text" xml:space="preserve">
+    <value>找平</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>手动</value>
+  </data>
+  <data name="BUT_swash_manual.Text" xml:space="preserve">
+    <value>手动</value>
+  </data>
+  <data name="label46.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label46.Text" xml:space="preserve">
+    <value>感度</value>
+  </data>
+  <data name="label45.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label45.Text" xml:space="preserve">
+    <value>启用</value>
+  </data>
+  <data name="label44.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label44.Text" xml:space="preserve">
+    <value>微调</value>
+  </data>
+  <data name="label43.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label43.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="label42.Size" type="System.Drawing.Size, System.Drawing">
+    <value>43, 13</value>
+  </data>
+  <data name="label42.Text" xml:space="preserve">
+    <value>方向舵</value>
+  </data>
+  <data name="label24.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>最大</value>
+  </data>
+  <data name="label40.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label40.Text" xml:space="preserve">
+    <value>最小</value>
+  </data>
+  <data name="label41.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label41.Text" xml:space="preserve">
+    <value>最低</value>
+  </data>
+  <data name="label21.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>最高</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>0度</value>
+  </data>
+  <data name="label39.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label39.Text" xml:space="preserve">
+    <value>微调</value>
+  </data>
+  <data name="label38.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label38.Text" xml:space="preserve">
+    <value>逆转</value>
+  </data>
+  <data name="label37.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label37.Text" xml:space="preserve">
+    <value>位置</value>
+  </data>
+  <data name="label36.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label36.Text" xml:space="preserve">
+    <value>舵机</value>
+  </data>
+  <data name="label26.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>最大俯仰</value>
+  </data>
+  <data name="label25.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>最大侧倾</value>
+  </data>
+  <data name="label23.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>舵机行程</value>
+  </data>
+  <data name="label22.Size" type="System.Drawing.Size, System.Drawing">
+    <value>79, 13</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>斜盘水平微调</value>
+  </data>
+  <data name="label17.Size" type="System.Drawing.Size, System.Drawing">
+    <value>79, 13</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>斜盘舵机位置</value>
+  </data>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>重置</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>重置 APM 为默认设置</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>APM设置</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.zh-TW.resx b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.zh-TW.resx
new file mode 100644
index 0000000000000000000000000000000000000000..0c03fbf8ed6bd5befc34246175bf1adf106cce43
--- /dev/null
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/ConfigAccelerometerCalibrationQuad.zh-TW.resx
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="tabReset.Text" xml:space="preserve">
+    <value>重置</value>
+  </data>
+  <data name="tabRadioIn.Text" xml:space="preserve">
+    <value>遙控輸入</value>
+  </data>
+  <data name="tabModes.Text" xml:space="preserve">
+    <value>模式</value>
+  </data>
+  <data name="tabHardware.Text" xml:space="preserve">
+    <value>硬件</value>
+  </data>
+  <data name="tabBattery.Text" xml:space="preserve">
+    <value>電池</value>
+  </data>
+  <data name="BUT_reset.Text" xml:space="preserve">
+    <value>重置 APM 為默認設置</value>
+  </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="CHK_revch3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch3.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="CHK_revch4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch4.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="CHK_revch2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch2.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="CHK_revch1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>50, 17</value>
+  </data>
+  <data name="CHK_revch1.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="BUT_Calibrateradio.Text" xml:space="preserve">
+    <value>校準遙控</value>
+  </data>
+  <data name="CB_simple6.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple6.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="CB_simple5.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple5.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="CB_simple4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple4.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="CB_simple3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple3.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="CB_simple2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple2.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="CB_simple1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>74, 17</value>
+  </data>
+  <data name="CB_simple1.Text" xml:space="preserve">
+    <value>簡單模式</value>
+  </data>
+  <data name="label14.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label14.Text" xml:space="preserve">
+    <value>當前 PWM:</value>
+  </data>
+  <data name="label13.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label13.Text" xml:space="preserve">
+    <value>當前模式:</value>
+  </data>
+  <data name="label6.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label6.Text" xml:space="preserve">
+    <value>飛行模式 6</value>
+  </data>
+  <data name="label5.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label5.Text" xml:space="preserve">
+    <value>飛行模式 5</value>
+  </data>
+  <data name="label4.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label4.Text" xml:space="preserve">
+    <value>飛行模式 4</value>
+  </data>
+  <data name="label3.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label3.Text" xml:space="preserve">
+    <value>飛行模式 3</value>
+  </data>
+  <data name="label2.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label2.Text" xml:space="preserve">
+    <value>飛行模式 2</value>
+  </data>
+  <data name="label1.Size" type="System.Drawing.Size, System.Drawing">
+    <value>64, 13</value>
+  </data>
+  <data name="label1.Text" xml:space="preserve">
+    <value>飛行模式 1</value>
+  </data>
+  <data name="BUT_SaveModes.Text" xml:space="preserve">
+    <value>保存模式</value>
+  </data>
+  <data name="linkLabelmagdec.Size" type="System.Drawing.Size, System.Drawing">
+    <value>67, 13</value>
+  </data>
+  <data name="linkLabelmagdec.Text" xml:space="preserve">
+    <value>磁偏角網站</value>
+  </data>
+  <data name="label100.Text" xml:space="preserve">
+    <value>磁偏角</value>
+  </data>
+  <data name="CHK_enableairspeed.Text" xml:space="preserve">
+    <value>啟用空速計</value>
+  </data>
+  <data name="CHK_enablesonar.Text" xml:space="preserve">
+    <value>啟用聲納</value>
+  </data>
+  <data name="CHK_enablecompass.Text" xml:space="preserve">
+    <value>啟用羅盤</value>
+  </data>
+  <data name="label35.Size" type="System.Drawing.Size, System.Drawing">
+    <value>63, 13</value>
+  </data>
+  <data name="label35.Text" xml:space="preserve">
+    <value>安培/伏特:</value>
+  </data>
+  <data name="label34.Size" type="System.Drawing.Size, System.Drawing">
+    <value>52, 13</value>
+  </data>
+  <data name="label34.Text" xml:space="preserve">
+    <value>分 壓 比:</value>
+  </data>
+  <data name="label33.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label33.Text" xml:space="preserve">
+    <value>電池電壓:</value>
+  </data>
+  <data name="label32.Size" type="System.Drawing.Size, System.Drawing">
+    <value>94, 13</value>
+  </data>
+  <data name="label32.Text" xml:space="preserve">
+    <value>測量的電池電壓:</value>
+  </data>
+  <data name="label31.Size" type="System.Drawing.Size, System.Drawing">
+    <value>58, 13</value>
+  </data>
+  <data name="label31.Text" xml:space="preserve">
+    <value>輸入電壓:</value>
+  </data>
+  <data name="textBox3.Text" xml:space="preserve">
+    <value>電壓傳感器校準:
+1. 測量APM輸入電壓,輸入到下方的文本框中
+2. 測量電池電壓,輸入到下方的文本框中
+3. 從當前的傳感器的數據表中找到安培/伏特,輸入到下方的文本框中</value>
+  </data>
+  <data name="label29.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label29.Text" xml:space="preserve">
+    <value>容量</value>
+  </data>
+  <data name="label30.Size" type="System.Drawing.Size, System.Drawing">
+    <value>48, 13</value>
+  </data>
+  <data name="label30.Text" xml:space="preserve">
+    <value>監控器</value>
+  </data>
+  <data name="label28.Size" type="System.Drawing.Size, System.Drawing">
+    <value>175, 13</value>
+  </data>
+  <data name="label28.Text" xml:space="preserve">
+    <value>設置水平面的默認加速度計偏移</value>
+  </data>
+  <data name="label16.Size" type="System.Drawing.Size, System.Drawing">
+    <value>261, 13</value>
+  </data>
+  <data name="label16.Text" xml:space="preserve">
+    <value>注: 圖片只是用於展示,設置可以用於六軸等機架</value>
+  </data>
+  <data name="label15.Size" type="System.Drawing.Size, System.Drawing">
+    <value>93, 13</value>
+  </data>
+  <data name="label15.Text" xml:space="preserve">
+    <value>機架設置 (+ 或 x)</value>
+  </data>
+  <data name="BUT_levelac2.Text" xml:space="preserve">
+    <value>找平</value>
+  </data>
+  <data name="label46.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label46.Text" xml:space="preserve">
+    <value>感度</value>
+  </data>
+  <data name="label45.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label45.Text" xml:space="preserve">
+    <value>啟用</value>
+  </data>
+  <data name="label44.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label44.Text" xml:space="preserve">
+    <value>微調</value>
+  </data>
+  <data name="label43.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label43.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="label42.Size" type="System.Drawing.Size, System.Drawing">
+    <value>43, 13</value>
+  </data>
+  <data name="label42.Text" xml:space="preserve">
+    <value>方向舵</value>
+  </data>
+  <data name="BUT_HS4save.Text" xml:space="preserve">
+    <value>手動</value>
+  </data>
+  <data name="label24.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label24.Text" xml:space="preserve">
+    <value>最大</value>
+  </data>
+  <data name="label40.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label40.Text" xml:space="preserve">
+    <value>最小</value>
+  </data>
+  <data name="BUT_swash_manual.Text" xml:space="preserve">
+    <value>手動</value>
+  </data>
+  <data name="label41.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label41.Text" xml:space="preserve">
+    <value>最低</value>
+  </data>
+  <data name="label21.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label21.Text" xml:space="preserve">
+    <value>最高</value>
+  </data>
+  <data name="BUT_0collective.Text" xml:space="preserve">
+    <value>0度</value>
+  </data>
+  <data name="label39.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label39.Text" xml:space="preserve">
+    <value>微調</value>
+  </data>
+  <data name="label38.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label38.Text" xml:space="preserve">
+    <value>逆轉</value>
+  </data>
+  <data name="label37.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label37.Text" xml:space="preserve">
+    <value>位置</value>
+  </data>
+  <data name="label36.Size" type="System.Drawing.Size, System.Drawing">
+    <value>31, 13</value>
+  </data>
+  <data name="label36.Text" xml:space="preserve">
+    <value>舵機</value>
+  </data>
+  <data name="label26.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label26.Text" xml:space="preserve">
+    <value>最大俯仰</value>
+  </data>
+  <data name="label25.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label25.Text" xml:space="preserve">
+    <value>最大側傾</value>
+  </data>
+  <data name="label23.Size" type="System.Drawing.Size, System.Drawing">
+    <value>55, 13</value>
+  </data>
+  <data name="label23.Text" xml:space="preserve">
+    <value>舵機行程</value>
+  </data>
+  <data name="label22.Size" type="System.Drawing.Size, System.Drawing">
+    <value>79, 13</value>
+  </data>
+  <data name="label22.Text" xml:space="preserve">
+    <value>斜盤水平微調</value>
+  </data>
+  <data name="label17.Size" type="System.Drawing.Size, System.Drawing">
+    <value>79, 13</value>
+  </data>
+  <data name="label17.Text" xml:space="preserve">
+    <value>斜盤舵機位置</value>
+  </data>
+  <data name="$this.Text" xml:space="preserve">
+    <value>APM設置</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs
index 459bf45cb6fa3068aa831990b68b6bb7cbe3a296..780efaf1c5c7c24b5b3085ae4126b02809e8a350 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Configuration.cs
@@ -20,7 +20,7 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
             this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigFlightModes(), "Flight Modes"));
             this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigHardwareOptions(), "Hardware Options"));
             this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigBatteryMonitoring(), "Battery Monitor"));
-            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigAccelerometerCalibration(), "Level Calibration"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigAccelerometerCalibrationQuad(), "Level Calibration"));
             this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigArducopter(), "Arducopter Setup"));
             this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigArduplane(), "Arduplane Setup"));
             this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigTradHeli(), "Heli Setup"));
diff --git a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.cs b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.cs
index 0c9caa3b95a22d11d6c740d4711ab6e96f3081df..71cbc02c9f8d1b927c002ece9fe928ad35b2b854 100644
--- a/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.cs
+++ b/Tools/ArdupilotMegaPlanner/GCSViews/ConfigurationView/Setup.cs
@@ -20,7 +20,8 @@ namespace ArdupilotMega.GCSViews.ConfigurationView
             this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigFlightModes(), "Flight Modes"));
             this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigHardwareOptions(), "Hardware Options"));
             this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigBatteryMonitoring(), "Battery Monitor"));
-            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigAccelerometerCalibration(), "Level Calibration"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigAccelerometerCalibrationQuad(), "Level Calibration Quad"));
+            this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigAccelerometerCalibrationPlane(), "Level Calibration Plane"));
             this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ConfigTradHeli(), "Heli Setup"));
 
             this.backstageView.AddPage(new BackstageView.BackstageViewPage(new ArdupilotMega._3DRradio(), "3DR Radio"));
diff --git a/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs b/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs
index ae36010847a5ccfdb762f050f0b1f8e7f60b5e7d..eb64c40fa62796bd2c476d7dc0a2c149210c4e97 100644
--- a/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs
+++ b/Tools/ArdupilotMegaPlanner/MAVLinkTypes.cs
@@ -56,25 +56,25 @@ namespace ArdupilotMega
         public enum MAV_CMD
         {
     	///<summary> Navigate to MISSION. |Hold time in decimal seconds. (ignored by fixed wing, time to stay at MISSION for rotary wing)| Acceptance radius in meters (if the sphere with this radius is hit, the MISSION counts as reached)| 0 to pass through the WP, if > 0 radius in meters to pass by WP. Positive value for clockwise orbit, negative value for counter-clockwise orbit. Allows trajectory control.| Desired yaw angle at MISSION (rotary wing)| Latitude| Longitude| Altitude|  </summary>
-            NAV_WAYPOINT=16, 
+            WAYPOINT=16, 
         	///<summary> Loiter around this MISSION an unlimited amount of time |Empty| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
-            NAV_LOITER_UNLIM=17, 
+            LOITER_UNLIM=17, 
         	///<summary> Loiter around this MISSION for X turns |Turns| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
-            NAV_LOITER_TURNS=18, 
+            LOITER_TURNS=18, 
         	///<summary> Loiter around this MISSION for X seconds |Seconds (decimal)| Empty| Radius around MISSION, in meters. If positive loiter clockwise, else counter-clockwise| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
-            NAV_LOITER_TIME=19, 
+            LOITER_TIME=19, 
         	///<summary> Return to launch location |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
-            NAV_RETURN_TO_LAUNCH=20, 
+            RETURN_TO_LAUNCH=20, 
         	///<summary> Land at location |Empty| Empty| Empty| Desired yaw angle.| Latitude| Longitude| Altitude|  </summary>
-            NAV_LAND=21, 
+            LAND=21, 
         	///<summary> Takeoff from ground / hand |Minimum pitch (if airspeed sensor present), desired pitch without sensor| Empty| Empty| Yaw angle (if magnetometer present), ignored without magnetometer| Latitude| Longitude| Altitude|  </summary>
-            NAV_TAKEOFF=22, 
+            TAKEOFF=22, 
         	///<summary> Sets the region of interest (ROI) for a sensor set or the             vehicle itself. This can then be used by the vehicles control             system to control the vehicle attitude and the attitude of various             sensors such as cameras. |Region of intereset mode. (see MAV_ROI enum)| MISSION index/ target ID. (see MAV_ROI enum)| ROI index (allows a vehicle to manage multiple ROI's)| Empty| x the location of the fixed ROI (see MAV_FRAME)| y| z|  </summary>
-            NAV_ROI=80, 
+            ROI=80, 
         	///<summary> Control autonomous path planning on the MAV. |0: Disable local obstacle avoidance / local path planning (without resetting map), 1: Enable local path planning, 2: Enable and reset local path planning| 0: Disable full path planning (without resetting map), 1: Enable, 2: Enable and reset map/occupancy grid, 3: Enable and reset planned route, but not occupancy grid| Empty| Yaw angle at goal, in compass degrees, [0..360]| Latitude/X of goal| Longitude/Y of goal| Altitude/Z of goal|  </summary>
-            NAV_PATHPLANNING=81, 
+            PATHPLANNING=81, 
         	///<summary> NOP - This command is only used to mark the upper limit of the NAV/ACTION commands in the enumeration |Empty| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
-            NAV_LAST=95, 
+            LAST=95, 
         	///<summary> Delay mission state machine. |Delay in seconds (decimal)| Empty| Empty| Empty| Empty| Empty| Empty|  </summary>
             CONDITION_DELAY=112, 
         	///<summary> Ascend/descend at rate.  Delay mission state machine until desired altitude reached. |Descent / Ascend rate (m/s)| Empty| Empty| Empty| Empty| Empty| Finish Altitude|  </summary>
@@ -916,7 +916,7 @@ namespace ArdupilotMega
         /// <summary> receive errors </summary>
         public  UInt16 rxerrors;
             /// <summary> count of error corrected packets </summary>
-        public  UInt16 fixed;
+        public  UInt16 fixedp;
             /// <summary> local signal strength </summary>
         public  byte rssi;
             /// <summary> remote signal strength </summary>
@@ -1110,7 +1110,7 @@ namespace ArdupilotMega
         public  UInt16 param_index;
             /// <summary> Onboard parameter id </summary>
         [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)]
-		public string param_id;
+		public byte[] param_id;
             /// <summary> Onboard parameter type: see MAV_VAR enum </summary>
         public  byte param_type;
     
@@ -1129,7 +1129,7 @@ namespace ArdupilotMega
         public  byte target_component;
             /// <summary> Onboard parameter id </summary>
         [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)]
-		public string param_id;
+        public byte[] param_id;
             /// <summary> Onboard parameter type: see MAV_VAR enum </summary>
         public  byte param_type;
     
diff --git a/Tools/ArdupilotMegaPlanner/MainV2.cs b/Tools/ArdupilotMegaPlanner/MainV2.cs
index 79e7d411e3fcc7c5de73325be572632871682557..3f3e862b62a73441ec1f036b43fd06e19c0715cb 100644
--- a/Tools/ArdupilotMegaPlanner/MainV2.cs
+++ b/Tools/ArdupilotMegaPlanner/MainV2.cs
@@ -478,28 +478,29 @@ namespace ArdupilotMega
                 {
                     comPort.BaseStream = new TcpSerial();
                 }
+                else if (CMB_serialport.Text == "UDP")
+                {
+                    comPort.BaseStream = new UdpSerial();
+                }
                 else
-                    if (CMB_serialport.Text == "UDP")
-                    {
-                        comPort.BaseStream = new UdpSerial();
-                    }
-                    else
-                    {
-                        comPort.BaseStream = new SerialPort();
-                    }
-                try
                 {
-                    comPort.BaseStream.BaudRate = int.Parse(CMB_baudrate.Text);
+                    comPort.BaseStream = new SerialPort();
                 }
-                catch { }
-                comPort.BaseStream.DataBits = 8;
-                comPort.BaseStream.StopBits = (StopBits)Enum.Parse(typeof(StopBits), "1");
-                comPort.BaseStream.Parity = (Parity)Enum.Parse(typeof(Parity), "None");
 
                 try
                 {
+                    // set port, then options
                     comPort.BaseStream.PortName = 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);
+                    }
+                    catch { }
+
                     // false here
                     comPort.BaseStream.DtrEnable = false;
                     comPort.BaseStream.RtsEnable = false;
diff --git a/Tools/ArdupilotMegaPlanner/Msi/wix.pdb b/Tools/ArdupilotMegaPlanner/Msi/wix.pdb
index 997b2adcda5eab19f071776fd268dc9e228fe044..a4116362278a3258e6530e3790bd0d8ef31165c1 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 3109be3ffbb53a108bfe1ffffa04567552de9394..e04253db93e2db2b9c743a726c1e918f83102d6b 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.70")]
+[assembly: AssemblyFileVersion("1.1.71")]
 [assembly: NeutralResourcesLanguageAttribute("")]
diff --git a/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb b/Tools/ArdupilotMegaPlanner/bin/Release/ArdupilotMegaPlanner.pdb
index 9d8a0cd5e1d4819add07932a3b6c2c685d5a41a6..6b7ad7d637c4dc33ac44cf0a20d6f049636d4dd8 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 7fb755b96f55e476a7a3a2f159ee0412cc03744a..0212221d02b5e63f17feee71c5f0dede54d8eaf4 100644
--- a/Tools/ArdupilotMegaPlanner/bin/Release/version.txt
+++ b/Tools/ArdupilotMegaPlanner/bin/Release/version.txt
@@ -1 +1 @@
-1.1.4492.34709
\ No newline at end of file
+1.1.4493.14496
\ No newline at end of file
diff --git a/Tools/ArdupilotMegaPlanner/georefimage.cs b/Tools/ArdupilotMegaPlanner/georefimage.cs
index 85248f6a7e797692da30632dd7489678eb8bd374..17c166f02e383982facbaa1a348676ff4ec0ed2c 100644
--- a/Tools/ArdupilotMegaPlanner/georefimage.cs
+++ b/Tools/ArdupilotMegaPlanner/georefimage.cs
@@ -11,6 +11,7 @@ using SharpKml.Base;
 using SharpKml.Dom;
 using System.Drawing;
 using System.Drawing.Imaging;
+using System.Text;
 
 namespace ArdupilotMega
 {
@@ -29,7 +30,16 @@ namespace ArdupilotMega
         private TextBox TXT_outputlog;
         private MyButton BUT_estoffset;
 
-        int latpos = 4, lngpos = 5, altpos = 7;
+        int latpos = 4, lngpos = 5, altpos = 7, cogpos = 9;
+        private NumericUpDown numericUpDown1;
+        private NumericUpDown numericUpDown2;
+        private NumericUpDown numericUpDown3;
+        private NumericUpDown numericUpDown4;
+        private Label label2;
+        private Label label3;
+        private Label label4;
+        private Label label5;
+        private Label label6;
         private MyButton BUT_Geotagimages;
 
         internal Georefimage() {
@@ -136,7 +146,7 @@ namespace ArdupilotMega
 
 
                     string[] vals = new string[] { "GPS", (cs.datetime - new DateTime(cs.datetime.Year,cs.datetime.Month,cs.datetime.Day,0,0,0,DateTimeKind.Local)).TotalMilliseconds.ToString(), "1",
-                    cs.satcount.ToString(),cs.lat.ToString(),cs.lng.ToString(),"0.0",cs.alt.ToString(),cs.alt.ToString(),"0.0",cs.groundcourse.ToString()};
+                    cs.satcount.ToString(),cs.lat.ToString(),cs.lng.ToString(),"0.0",cs.alt.ToString(),cs.alt.ToString(),cs.groundspeed.ToString(),cs.groundcourse.ToString()};
 
                     if (oldvalues.Length > 2 && oldvalues[latpos] == vals[latpos]
                         && oldvalues[lngpos] == vals[lngpos]
@@ -316,7 +326,7 @@ namespace ArdupilotMega
                                  }
                              );
 
-                             photocoords[filename] = new double[] { double.Parse(arr[latpos]), double.Parse(arr[lngpos]), double.Parse(arr[altpos]) };
+                             photocoords[filename] = new double[] { double.Parse(arr[latpos]), double.Parse(arr[lngpos]), double.Parse(arr[altpos]), double.Parse(arr[cogpos]) };
 
                              imagetotime[filename] = (long)(logdt.AddSeconds(-offsetseconds) - DateTime.MinValue).TotalSeconds;
 
@@ -341,6 +351,8 @@ namespace ArdupilotMega
 
             MainV2.instance.georefkml = serializer.Xml;
 
+            writeGPX(dirWithImages + Path.DirectorySeparatorChar + "location.gpx");
+
             sw4.Close();
 
             sw2.Close();
@@ -349,6 +361,55 @@ namespace ArdupilotMega
             TXT_outputlog.AppendText("Done " + matchs + " matchs");
         }
 
+        private void writeGPX(string filename)
+        {
+
+            using (System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(Path.GetDirectoryName(filename) + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(filename) + ".gpx", Encoding.ASCII))
+            {
+
+                xw.WriteStartElement("gpx");
+
+                xw.WriteStartElement("trk");
+
+                xw.WriteStartElement("trkseg");
+
+                List<string> items = new List<string>();
+
+                foreach (string photo in photocoords.Keys)
+                {
+                    items.Add(photo);
+                }
+
+                items.Sort();
+
+                foreach (string photo in items)
+                {
+
+
+                    xw.WriteStartElement("trkpt");
+                    xw.WriteAttributeString("lat", ((double[])photocoords[photo])[0].ToString(new System.Globalization.CultureInfo("en-US")));
+                    xw.WriteAttributeString("lon", ((double[])photocoords[photo])[1].ToString(new System.Globalization.CultureInfo("en-US")));
+
+                    // must stay as above
+
+                    xw.WriteElementString("time", ((DateTime)filedatecache[photo]).ToString("yyyy-MM-ddTHH:mm:ssZ"));
+
+                    xw.WriteElementString("ele", ((double[])photocoords[photo])[2].ToString(new System.Globalization.CultureInfo("en-US")));
+                    xw.WriteElementString("course", ((double[])photocoords[photo])[3].ToString(new System.Globalization.CultureInfo("en-US")));
+
+                    xw.WriteElementString("compass", ((double[])photocoords[photo])[3].ToString(new System.Globalization.CultureInfo("en-US")));
+
+                    xw.WriteEndElement();
+                }
+
+                xw.WriteEndElement();
+                xw.WriteEndElement();
+                xw.WriteEndElement();
+
+                xw.Close();
+            }
+        }
+
         private void InitializeComponent()
         {
             this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
@@ -363,6 +424,19 @@ namespace ArdupilotMega
             this.BUT_doit = new ArdupilotMega.MyButton();
             this.BUT_browsedir = new ArdupilotMega.MyButton();
             this.BUT_browselog = new ArdupilotMega.MyButton();
+            this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
+            this.numericUpDown2 = new System.Windows.Forms.NumericUpDown();
+            this.numericUpDown3 = new System.Windows.Forms.NumericUpDown();
+            this.numericUpDown4 = new System.Windows.Forms.NumericUpDown();
+            this.label2 = new System.Windows.Forms.Label();
+            this.label3 = new System.Windows.Forms.Label();
+            this.label4 = new System.Windows.Forms.Label();
+            this.label5 = new System.Windows.Forms.Label();
+            this.label6 = new System.Windows.Forms.Label();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).BeginInit();
             this.SuspendLayout();
             // 
             // openFileDialog1
@@ -398,12 +472,12 @@ namespace ArdupilotMega
             this.TXT_outputlog.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
             | System.Windows.Forms.AnchorStyles.Left) 
             | System.Windows.Forms.AnchorStyles.Right)));
-            this.TXT_outputlog.Location = new System.Drawing.Point(28, 144);
+            this.TXT_outputlog.Location = new System.Drawing.Point(28, 190);
             this.TXT_outputlog.Multiline = true;
             this.TXT_outputlog.Name = "TXT_outputlog";
             this.TXT_outputlog.ReadOnly = true;
             this.TXT_outputlog.ScrollBars = System.Windows.Forms.ScrollBars.Both;
-            this.TXT_outputlog.Size = new System.Drawing.Size(398, 143);
+            this.TXT_outputlog.Size = new System.Drawing.Size(397, 160);
             this.TXT_outputlog.TabIndex = 6;
             // 
             // label1
@@ -418,7 +492,7 @@ namespace ArdupilotMega
             // BUT_Geotagimages
             // 
             this.BUT_Geotagimages.Enabled = false;
-            this.BUT_Geotagimages.Location = new System.Drawing.Point(366, 105);
+            this.BUT_Geotagimages.Location = new System.Drawing.Point(223, 161);
             this.BUT_Geotagimages.Name = "BUT_Geotagimages";
             this.BUT_Geotagimages.Size = new System.Drawing.Size(75, 23);
             this.BUT_Geotagimages.TabIndex = 9;
@@ -438,7 +512,7 @@ namespace ArdupilotMega
             // 
             // BUT_doit
             // 
-            this.BUT_doit.Location = new System.Drawing.Point(285, 105);
+            this.BUT_doit.Location = new System.Drawing.Point(142, 161);
             this.BUT_doit.Name = "BUT_doit";
             this.BUT_doit.Size = new System.Drawing.Size(75, 23);
             this.BUT_doit.TabIndex = 5;
@@ -466,9 +540,111 @@ namespace ArdupilotMega
             this.BUT_browselog.UseVisualStyleBackColor = true;
             this.BUT_browselog.Click += new System.EventHandler(this.BUT_browselog_Click);
             // 
+            // numericUpDown1
+            // 
+            this.numericUpDown1.Location = new System.Drawing.Point(130, 116);
+            this.numericUpDown1.Name = "numericUpDown1";
+            this.numericUpDown1.Size = new System.Drawing.Size(42, 20);
+            this.numericUpDown1.TabIndex = 10;
+            this.numericUpDown1.Value = new decimal(new int[] {
+            4,
+            0,
+            0,
+            0});
+            // 
+            // numericUpDown2
+            // 
+            this.numericUpDown2.Location = new System.Drawing.Point(178, 116);
+            this.numericUpDown2.Name = "numericUpDown2";
+            this.numericUpDown2.Size = new System.Drawing.Size(42, 20);
+            this.numericUpDown2.TabIndex = 11;
+            this.numericUpDown2.Value = new decimal(new int[] {
+            5,
+            0,
+            0,
+            0});
+            // 
+            // numericUpDown3
+            // 
+            this.numericUpDown3.Location = new System.Drawing.Point(226, 116);
+            this.numericUpDown3.Name = "numericUpDown3";
+            this.numericUpDown3.Size = new System.Drawing.Size(42, 20);
+            this.numericUpDown3.TabIndex = 12;
+            this.numericUpDown3.Value = new decimal(new int[] {
+            7,
+            0,
+            0,
+            0});
+            // 
+            // numericUpDown4
+            // 
+            this.numericUpDown4.Location = new System.Drawing.Point(274, 116);
+            this.numericUpDown4.Name = "numericUpDown4";
+            this.numericUpDown4.Size = new System.Drawing.Size(42, 20);
+            this.numericUpDown4.TabIndex = 13;
+            this.numericUpDown4.Value = new decimal(new int[] {
+            9,
+            0,
+            0,
+            0});
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(127, 100);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(22, 13);
+            this.label2.TabIndex = 14;
+            this.label2.Text = "Lat";
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Location = new System.Drawing.Point(175, 100);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(25, 13);
+            this.label3.TabIndex = 15;
+            this.label3.Text = "Lon";
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(223, 100);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(19, 13);
+            this.label4.TabIndex = 16;
+            this.label4.Text = "Alt";
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Location = new System.Drawing.Point(271, 100);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(47, 13);
+            this.label5.TabIndex = 17;
+            this.label5.Text = "Heading";
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.Location = new System.Drawing.Point(63, 118);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(61, 13);
+            this.label6.TabIndex = 18;
+            this.label6.Text = "Log Offsets";
+            // 
             // Georefimage
             // 
-            this.ClientSize = new System.Drawing.Size(453, 299);
+            this.ClientSize = new System.Drawing.Size(452, 362);
+            this.Controls.Add(this.label6);
+            this.Controls.Add(this.label5);
+            this.Controls.Add(this.label4);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.numericUpDown4);
+            this.Controls.Add(this.numericUpDown3);
+            this.Controls.Add(this.numericUpDown2);
+            this.Controls.Add(this.numericUpDown1);
             this.Controls.Add(this.BUT_Geotagimages);
             this.Controls.Add(this.BUT_estoffset);
             this.Controls.Add(this.label1);
@@ -480,6 +656,11 @@ namespace ArdupilotMega
             this.Controls.Add(this.BUT_browsedir);
             this.Controls.Add(this.BUT_browselog);
             this.Name = "Georefimage";
+            this.Text = "Geo Ref Images";
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).EndInit();
             this.ResumeLayout(false);
             this.PerformLayout();