{
  "version": 1,
  "scope": "Firmware",
  "parameters": [
    {
      "name": "ctl_bw",
      "type": "Int32",
      "default": 75,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Speed controller bandwidth",
      "longDesc": "Speed controller bandwidth, in Hz. Higher values result in faster speed and current rise times, but may result in overshoot and higher current consumption. For fixed-wing aircraft, this value should be less than 50 Hz; for multirotors, values up to 100 Hz may provide improvements in responsiveness.",
      "min": 10,
      "max": 250,
      "units": "Hz"
    },
    {
      "name": "ctl_dir",
      "type": "Int32",
      "default": 1,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Reverse direction",
      "longDesc": "Motor spin direction as detected during initial enumeration. Use 0 or 1 to reverse direction.",
      "min": 0,
      "max": 1
    },
    {
      "name": "ctl_gain",
      "type": "Float",
      "default": 1.0,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Speed (RPM) controller gain",
      "longDesc": "Speed (RPM) controller gain. Determines controller\n            aggressiveness; units are amp-seconds per radian. Systems with\n            higher rotational inertia (large props) will need gain increased;\n            systems with low rotational inertia (small props) may need gain\n            decreased. Higher values result in faster response, but may result\n            in oscillation and excessive overshoot. Lower values result in a\n            slower, smoother response.",
      "min": 0.0,
      "max": 1.0,
      "units": "C/rad",
      "decimalPlaces": 3
    },
    {
      "name": "ctl_hz_idle",
      "type": "Float",
      "default": 3.5,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Idle speed (e Hz)",
      "longDesc": "Idle speed (e Hz)",
      "min": 0.0,
      "max": 100.0,
      "units": "Hz",
      "decimalPlaces": 3
    },
    {
      "name": "ctl_start_rate",
      "type": "Int32",
      "default": 25,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Spin-up rate (e Hz/s)",
      "longDesc": "Spin-up rate (e Hz/s)",
      "min": 5,
      "max": 1000,
      "units": "1/s^2"
    },
    {
      "name": "esc_index",
      "type": "Int32",
      "default": 0,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Index of this ESC in throttle command messages.",
      "longDesc": "Index of this ESC in throttle command messages.",
      "min": 0,
      "max": 15
    },
    {
      "name": "id_ext_status",
      "type": "Int32",
      "default": 20034,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Extended status ID",
      "longDesc": "Extended status ID",
      "min": 1,
      "max": 1000000
    },
    {
      "name": "int_ext_status",
      "type": "Int32",
      "default": 50000,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Extended status interval (\u00b5s)",
      "longDesc": "Extended status interval (\u00b5s)",
      "min": 0,
      "max": 1000000,
      "units": "us"
    },
    {
      "name": "int_status",
      "type": "Int32",
      "default": 50000,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "ESC status interval (\u00b5s)",
      "longDesc": "ESC status interval (\u00b5s)",
      "max": 1000000,
      "units": "us"
    },
    {
      "name": "mot_i_max",
      "type": "Float",
      "default": 12.0,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Motor current limit in amps",
      "longDesc": "Motor current limit in amps. This determines the maximum\n            current controller setpoint, as well as the maximum allowable\n            current setpoint slew rate. This value should generally be set to\n            the continuous current rating listed in the motor\u2019s specification\n            sheet, or set equal to the motor\u2019s specified continuous power\n            divided by the motor voltage limit.",
      "min": 1.0,
      "max": 80.0,
      "units": "A",
      "decimalPlaces": 3
    },
    {
      "name": "mot_kv",
      "type": "Int32",
      "default": 2300,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Motor Kv in RPM per volt",
      "longDesc": "Motor Kv in RPM per volt. This can be taken from the motor\u2019s\n            specification sheet; accuracy will help control performance but\n            some deviation from the specified value is acceptable.",
      "min": 0,
      "max": 4000,
      "units": "rpm/V"
    },
    {
      "name": "mot_ls",
      "type": "Float",
      "default": 0.0,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "READ ONLY: Motor inductance in henries.",
      "longDesc": "READ ONLY: Motor inductance in henries. This is measured on start-up.",
      "units": "H",
      "decimalPlaces": 3
    },
    {
      "name": "mot_num_poles",
      "type": "Int32",
      "default": 14,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Number of motor poles.",
      "longDesc": "Number of motor poles. Used to convert mechanical speeds to\n            electrical speeds. This number should be taken from the motor\u2019s\n            specification sheet.",
      "min": 2,
      "max": 40
    },
    {
      "name": "mot_rs",
      "type": "Float",
      "default": 0.0,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "READ ONLY: Motor resistance in ohms",
      "longDesc": "READ ONLY: Motor resistance in ohms. This is measured on start-up. When\n            tuning a new motor, check that this value is approximately equal\n            to the value shown in the motor\u2019s specification sheet.",
      "units": "Ohm",
      "decimalPlaces": 3
    },
    {
      "name": "mot_v_accel",
      "type": "Float",
      "default": 0.5,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Acceleration limit (V)",
      "longDesc": "Acceleration limit (V)",
      "min": 0.01,
      "max": 1.0,
      "units": "V",
      "decimalPlaces": 3
    },
    {
      "name": "mot_v_max",
      "type": "Float",
      "default": 14.8,
      "group": "UAVCAN Motor Parameters",
      "shortDesc": "Motor voltage limit in volts",
      "longDesc": "Motor voltage limit in volts. The current controller\u2019s\n            commanded voltage will never exceed this value. Note that this may\n            safely be above the nominal voltage of the motor; to determine the\n            actual motor voltage limit, divide the motor\u2019s rated power by the\n            motor current limit.",
      "min": 0.0,
      "units": "V",
      "decimalPlaces": 3
    },
    {
      "name": "gnss.dyn_model",
      "type": "Int32",
      "default": 2,
      "group": "UAVCAN GNSS",
      "shortDesc": "GNSS dynamic model",
      "longDesc": "Dynamic model used in the GNSS positioning engine. 0 \u2013\n        Automotive, 1 \u2013 Sea, 2 \u2013 Airborne.\n      ",
      "min": 0,
      "max": 2,
      "values": [
        {
          "value": 0,
          "description": "Automotive"
        },
        {
          "value": 1,
          "description": "Sea"
        },
        {
          "value": 2,
          "description": "Airborne"
        }
      ]
    },
    {
      "name": "gnss.old_fix_msg",
      "type": "Int32",
      "default": 1,
      "group": "UAVCAN GNSS",
      "shortDesc": "Broadcast old GNSS fix message",
      "longDesc": "Broadcast the old (deprecated) GNSS fix message\n        uavcan.equipment.gnss.Fix alongside the new alternative\n        uavcan.equipment.gnss.Fix2. It is recommended to\n        disable this feature to reduce the CAN bus traffic.\n      ",
      "min": 0,
      "max": 1,
      "values": [
        {
          "value": 0,
          "description": "Fix2"
        },
        {
          "value": 1,
          "description": "Fix and Fix2"
        }
      ]
    },
    {
      "name": "gnss.warn_dimens",
      "type": "Int32",
      "default": 0,
      "group": "UAVCAN GNSS",
      "shortDesc": "device health warning",
      "longDesc": "Set the device health to Warning if the dimensionality of\n              the GNSS solution is less than this value. 3 for the full (3D)\n              solution, 2 for planar (2D) solution, 1 for time-only solution,\n              0 disables the feature.\n      ",
      "min": 0,
      "max": 3,
      "values": [
        {
          "value": 0,
          "description": "disables the feature"
        },
        {
          "value": 1,
          "description": "time-only solution"
        },
        {
          "value": 2,
          "description": "planar (2D) solution"
        },
        {
          "value": 3,
          "description": "full (3D) solution"
        }
      ]
    },
    {
      "name": "gnss.warn_sats",
      "type": "Int32",
      "default": 0,
      "group": "UAVCAN GNSS",
      "shortDesc": "",
      "longDesc": "Set the device health to Warning if the number of satellites\n        used in the GNSS solution is below this threshold. Zero\n        disables the feature\n      "
    },
    {
      "name": "uavcan.pubp-pres",
      "type": "Int32",
      "default": 0,
      "group": "UAVCAN GNSS",
      "shortDesc": "",
      "longDesc": "Set the device health to Warning if the number of satellites\n        used in the GNSS solution is below this threshold. Zero\n        disables the feature\n      ",
      "min": 0,
      "max": 1000000,
      "units": "us"
    },
    {
      "name": "ASPD_BETA_GATE",
      "type": "Int32",
      "default": 1,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed Selector: Gate size for sideslip angle fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1,
      "max": 5,
      "units": "SD"
    },
    {
      "name": "ASPD_BETA_NOISE",
      "type": "Float",
      "default": 0.3,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed Selector: Wind estimator sideslip measurement noise",
      "longDesc": "Sideslip measurement noise of the internal wind estimator(s) of the airspeed selector.",
      "min": 0.0,
      "max": 1.0,
      "units": "rad"
    },
    {
      "name": "ASPD_DO_CHECKS",
      "type": "Int32",
      "default": 0,
      "group": "Airspeed Validator",
      "shortDesc": "Enable checks on airspeed sensors",
      "longDesc": "If set to true then the data comming from the airspeed sensors is checked for validity. Only applied if ASPD_PRIMARY > 0.",
      "rebootRequired": true
    },
    {
      "name": "ASPD_FALLBACK",
      "type": "Int32",
      "default": 0,
      "group": "Airspeed Validator",
      "shortDesc": "Enable fallback to secondary airspeed measurement",
      "longDesc": "If ASPD_DO_CHECKS is set to true, then airspeed estimation can fallback from what specified in ASPD_PRIMARY to secondary source (other airspeed sensors, groundspeed minus windspeed).",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "To other airspeed sensor (if one valid), else disable airspeed"
        },
        {
          "value": 1,
          "description": "To other airspeed sensor (if one valid), else to ground-windspeed"
        }
      ]
    },
    {
      "name": "ASPD_FS_INNOV",
      "type": "Float",
      "default": 1.0,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed failsafe consistency threshold (Experimental)",
      "longDesc": "This specifies the minimum airspeed test ratio required to trigger a failsafe. Larger values make the check less sensitive, smaller values make it more sensitive. Start with a value of 1.0 when tuning. When tas_test_ratio is > 1.0 it indicates the inconsistency between predicted and measured airspeed is large enough to cause the navigation EKF to reject airspeed measurements. The time required to detect a fault when the threshold is exceeded depends on the size of the exceedance and is controlled by the ASPD_FS_INTEG parameter.",
      "min": 0.5,
      "max": 3.0
    },
    {
      "name": "ASPD_FS_INTEG",
      "type": "Float",
      "default": -1.0,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed failsafe consistency delay (Experimental)",
      "longDesc": "This sets the time integral of airspeed test ratio exceedance above ASPD_FS_INNOV required to trigger a failsafe. For example if ASPD_FS_INNOV is 1 and estimator_status.tas_test_ratio is 2.0, then the exceedance is 1.0 and the integral will rise at a rate of 1.0/second. A negative value disables the check. Larger positive values make the check less sensitive, smaller positive values make it more sensitive.",
      "max": 30.0,
      "units": "s"
    },
    {
      "name": "ASPD_FS_T1",
      "type": "Int32",
      "default": 3,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed failsafe stop delay (Experimental)",
      "longDesc": "Delay before stopping use of airspeed sensor if checks indicate sensor is bad.",
      "min": 1,
      "max": 10,
      "units": "s"
    },
    {
      "name": "ASPD_FS_T2",
      "type": "Int32",
      "default": 100,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed failsafe start delay (Experimental)",
      "longDesc": "Delay before switching back to using airspeed sensor if checks indicate sensor is good.",
      "min": 10,
      "max": 1000,
      "units": "s"
    },
    {
      "name": "ASPD_PRIMARY",
      "type": "Int32",
      "default": 1,
      "group": "Airspeed Validator",
      "shortDesc": "Index or primary airspeed measurement source",
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Disabled"
        },
        {
          "value": 0,
          "description": "Groundspeed minus windspeed"
        },
        {
          "value": 1,
          "description": "First airspeed sensor"
        },
        {
          "value": 2,
          "description": "Second airspeed sensor"
        },
        {
          "value": 3,
          "description": "Third airspeed sensor"
        }
      ]
    },
    {
      "name": "ASPD_SCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed scale (scale from IAS to CAS/EAS)",
      "longDesc": "Scale can either be entered manually, or estimated in-flight by setting ASPD_SCALE_EST to 1.",
      "min": 0.5,
      "max": 1.5
    },
    {
      "name": "ASPD_SCALE_EST",
      "type": "Int32",
      "default": 0,
      "group": "Airspeed Validator",
      "shortDesc": "Automatic airspeed scale estimation on",
      "longDesc": "Turns the automatic airspeed scale (scale from IAS to CAS/EAS) on or off. It is recommended to fly level altitude while performing the estimation. Set to 1 to start estimation (best when already flying). Set to 0 to end scale estimation. The estimated scale is then saved using the ASPD_SCALE parameter."
    },
    {
      "name": "ASPD_SC_P_NOISE",
      "type": "Float",
      "default": 0.0001,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed Selector: Wind estimator true airspeed scale process noise",
      "longDesc": "Airspeed scale process noise of the internal wind estimator(s) of the airspeed selector.",
      "min": 0.0,
      "max": 0.1,
      "units": "Hz"
    },
    {
      "name": "ASPD_STALL",
      "type": "Float",
      "default": 10.0,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed fault detection stall airspeed. (Experimental)",
      "longDesc": "This is the minimum indicated airspeed at which the wing can produce 1g of lift. It is used by the airspeed sensor fault detection and failsafe calculation to detect a significant airspeed low measurement error condition and should be set based on flight test for reliable operation.",
      "units": "m/s"
    },
    {
      "name": "ASPD_TAS_GATE",
      "type": "Int32",
      "default": 3,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed Selector: Gate size for true airspeed fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1,
      "max": 5,
      "units": "SD"
    },
    {
      "name": "ASPD_TAS_NOISE",
      "type": "Float",
      "default": 1.4,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed Selector: Wind estimator true airspeed measurement noise",
      "longDesc": "True airspeed measurement noise of the internal wind estimator(s) of the airspeed selector.",
      "min": 0.0,
      "max": 4.0,
      "units": "m/s"
    },
    {
      "name": "ASPD_W_P_NOISE",
      "type": "Float",
      "default": 0.1,
      "group": "Airspeed Validator",
      "shortDesc": "Airspeed Selector: Wind estimator wind process noise",
      "longDesc": "Wind process noise of the internal wind estimator(s) of the airspeed selector.",
      "min": 0.0,
      "max": 1.0,
      "units": "m/s^2"
    },
    {
      "name": "ATT_ACC_COMP",
      "type": "Int32",
      "default": 1,
      "group": "Attitude Q estimator",
      "shortDesc": "Acceleration compensation based on GPS\nvelocity"
    },
    {
      "name": "ATT_BIAS_MAX",
      "type": "Float",
      "default": 0.05,
      "group": "Attitude Q estimator",
      "shortDesc": "Gyro bias limit",
      "min": 0.0,
      "max": 2.0,
      "units": "rad/s",
      "decimalPlaces": 3
    },
    {
      "name": "ATT_EXT_HDG_M",
      "type": "Int32",
      "default": 0,
      "group": "Attitude Q estimator",
      "shortDesc": "External heading usage mode (from Motion capture/Vision)\nSet to 1 to use heading estimate from vision.\nSet to 2 to use heading from motion capture",
      "min": 0,
      "max": 2,
      "values": [
        {
          "value": 0,
          "description": "None"
        },
        {
          "value": 1,
          "description": "Vision"
        },
        {
          "value": 2,
          "description": "Motion Capture"
        }
      ]
    },
    {
      "name": "ATT_MAG_DECL",
      "type": "Float",
      "default": 0.0,
      "group": "Attitude Q estimator",
      "shortDesc": "Magnetic declination, in degrees",
      "longDesc": "This parameter is not used in normal operation, as the declination is looked up based on the GPS coordinates of the vehicle.",
      "units": "deg",
      "decimalPlaces": 2
    },
    {
      "name": "ATT_MAG_DECL_A",
      "type": "Int32",
      "default": 1,
      "group": "Attitude Q estimator",
      "shortDesc": "Automatic GPS based declination compensation"
    },
    {
      "name": "ATT_W_ACC",
      "type": "Float",
      "default": 0.2,
      "group": "Attitude Q estimator",
      "shortDesc": "Complimentary filter accelerometer weight",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2
    },
    {
      "name": "ATT_W_EXT_HDG",
      "type": "Float",
      "default": 0.1,
      "group": "Attitude Q estimator",
      "shortDesc": "Complimentary filter external heading weight",
      "min": 0.0,
      "max": 1.0
    },
    {
      "name": "ATT_W_GYRO_BIAS",
      "type": "Float",
      "default": 0.1,
      "group": "Attitude Q estimator",
      "shortDesc": "Complimentary filter gyroscope bias weight",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2
    },
    {
      "name": "ATT_W_MAG",
      "type": "Float",
      "default": 0.1,
      "group": "Attitude Q estimator",
      "shortDesc": "Complimentary filter magnetometer weight",
      "longDesc": "Set to 0 to avoid using the magnetometer.",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2
    },
    {
      "name": "BAT1_CAPACITY",
      "type": "Float",
      "default": -1.0,
      "group": "Battery Calibration",
      "shortDesc": "Battery 1 capacity",
      "longDesc": "Defines the capacity of battery 1 in mAh.",
      "min": -1.0,
      "max": 100000.0,
      "units": "mAh",
      "decimalPlaces": 0,
      "increment": 50.0,
      "rebootRequired": true
    },
    {
      "name": "BAT1_N_CELLS",
      "type": "Int32",
      "default": 0,
      "group": "Battery Calibration",
      "shortDesc": "Number of cells for battery 1",
      "longDesc": "Defines the number of cells the attached battery consists of.",
      "rebootRequired": true,
      "values": [
        {
          "value": 2,
          "description": "2S Battery"
        },
        {
          "value": 3,
          "description": "3S Battery"
        },
        {
          "value": 4,
          "description": "4S Battery"
        },
        {
          "value": 5,
          "description": "5S Battery"
        },
        {
          "value": 6,
          "description": "6S Battery"
        },
        {
          "value": 7,
          "description": "7S Battery"
        },
        {
          "value": 8,
          "description": "8S Battery"
        },
        {
          "value": 9,
          "description": "9S Battery"
        },
        {
          "value": 10,
          "description": "10S Battery"
        },
        {
          "value": 11,
          "description": "11S Battery"
        },
        {
          "value": 12,
          "description": "12S Battery"
        },
        {
          "value": 13,
          "description": "13S Battery"
        },
        {
          "value": 14,
          "description": "14S Battery"
        },
        {
          "value": 15,
          "description": "15S Battery"
        },
        {
          "value": 16,
          "description": "16S Battery"
        }
      ]
    },
    {
      "name": "BAT1_R_INTERNAL",
      "type": "Float",
      "default": -1.0,
      "group": "Battery Calibration",
      "shortDesc": "Explicitly defines the per cell internal resistance for battery 1",
      "longDesc": "If non-negative, then this will be used in place of BAT1_V_LOAD_DROP for all calculations.",
      "min": -1.0,
      "max": 0.2,
      "units": "Ohm",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT1_SOURCE",
      "type": "Int32",
      "default": 0,
      "group": "Battery Calibration",
      "shortDesc": "Battery 1 monitoring source",
      "longDesc": "This parameter controls the source of battery data. The value 'Power Module' means that measurements are expected to come from a power module. If the value is set to 'External' then the system expects to receive mavlink battery status messages. If the value is set to 'ESCs', the battery information are taken from the esc_status message. This requires the ESC to provide both voltage as well as current.",
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Disabled"
        },
        {
          "value": 0,
          "description": "Power Module"
        },
        {
          "value": 1,
          "description": "External"
        },
        {
          "value": 2,
          "description": "ESCs"
        }
      ]
    },
    {
      "name": "BAT1_V_CHARGED",
      "type": "Float",
      "default": 4.05,
      "group": "Battery Calibration",
      "shortDesc": "Full cell voltage (5C load)",
      "longDesc": "Defines the voltage where a single cell of battery 1 is considered full under a mild load. This will never be the nominal voltage of 4.2V",
      "units": "V",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT1_V_EMPTY",
      "type": "Float",
      "default": 3.5,
      "group": "Battery Calibration",
      "shortDesc": "Empty cell voltage (5C load)",
      "longDesc": "Defines the voltage where a single cell of battery 1 is considered empty. The voltage should be chosen before the steep dropoff to 2.8V. A typical lithium battery can only be discharged down to 10% before it drops off to a voltage level damaging the cells.",
      "units": "V",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT1_V_LOAD_DROP",
      "type": "Float",
      "default": 0.3,
      "group": "Battery Calibration",
      "shortDesc": "Voltage drop per cell on full throttle",
      "longDesc": "This implicitely defines the internal resistance to maximum current ratio for battery 1 and assumes linearity. A good value to use is the difference between the 5C and 20-25C load. Not used if BAT1_R_INTERNAL is set.",
      "min": 0.07,
      "max": 0.5,
      "units": "V",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT2_CAPACITY",
      "type": "Float",
      "default": -1.0,
      "group": "Battery Calibration",
      "shortDesc": "Battery 2 capacity",
      "longDesc": "Defines the capacity of battery 2 in mAh.",
      "min": -1.0,
      "max": 100000.0,
      "units": "mAh",
      "decimalPlaces": 0,
      "increment": 50.0,
      "rebootRequired": true
    },
    {
      "name": "BAT2_N_CELLS",
      "type": "Int32",
      "default": 0,
      "group": "Battery Calibration",
      "shortDesc": "Number of cells for battery 2",
      "longDesc": "Defines the number of cells the attached battery consists of.",
      "rebootRequired": true,
      "values": [
        {
          "value": 2,
          "description": "2S Battery"
        },
        {
          "value": 3,
          "description": "3S Battery"
        },
        {
          "value": 4,
          "description": "4S Battery"
        },
        {
          "value": 5,
          "description": "5S Battery"
        },
        {
          "value": 6,
          "description": "6S Battery"
        },
        {
          "value": 7,
          "description": "7S Battery"
        },
        {
          "value": 8,
          "description": "8S Battery"
        },
        {
          "value": 9,
          "description": "9S Battery"
        },
        {
          "value": 10,
          "description": "10S Battery"
        },
        {
          "value": 11,
          "description": "11S Battery"
        },
        {
          "value": 12,
          "description": "12S Battery"
        },
        {
          "value": 13,
          "description": "13S Battery"
        },
        {
          "value": 14,
          "description": "14S Battery"
        },
        {
          "value": 15,
          "description": "15S Battery"
        },
        {
          "value": 16,
          "description": "16S Battery"
        }
      ]
    },
    {
      "name": "BAT2_R_INTERNAL",
      "type": "Float",
      "default": -1.0,
      "group": "Battery Calibration",
      "shortDesc": "Explicitly defines the per cell internal resistance for battery 2",
      "longDesc": "If non-negative, then this will be used in place of BAT2_V_LOAD_DROP for all calculations.",
      "min": -1.0,
      "max": 0.2,
      "units": "Ohm",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT2_SOURCE",
      "type": "Int32",
      "default": -1,
      "group": "Battery Calibration",
      "shortDesc": "Battery 2 monitoring source",
      "longDesc": "This parameter controls the source of battery data. The value 'Power Module' means that measurements are expected to come from a power module. If the value is set to 'External' then the system expects to receive mavlink battery status messages. If the value is set to 'ESCs', the battery information are taken from the esc_status message. This requires the ESC to provide both voltage as well as current.",
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Disabled"
        },
        {
          "value": 0,
          "description": "Power Module"
        },
        {
          "value": 1,
          "description": "External"
        },
        {
          "value": 2,
          "description": "ESCs"
        }
      ]
    },
    {
      "name": "BAT2_V_CHARGED",
      "type": "Float",
      "default": 4.05,
      "group": "Battery Calibration",
      "shortDesc": "Full cell voltage (5C load)",
      "longDesc": "Defines the voltage where a single cell of battery 1 is considered full under a mild load. This will never be the nominal voltage of 4.2V",
      "units": "V",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT2_V_EMPTY",
      "type": "Float",
      "default": 3.5,
      "group": "Battery Calibration",
      "shortDesc": "Empty cell voltage (5C load)",
      "longDesc": "Defines the voltage where a single cell of battery 1 is considered empty. The voltage should be chosen before the steep dropoff to 2.8V. A typical lithium battery can only be discharged down to 10% before it drops off to a voltage level damaging the cells.",
      "units": "V",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT2_V_LOAD_DROP",
      "type": "Float",
      "default": 0.3,
      "group": "Battery Calibration",
      "shortDesc": "Voltage drop per cell on full throttle",
      "longDesc": "This implicitely defines the internal resistance to maximum current ratio for battery 1 and assumes linearity. A good value to use is the difference between the 5C and 20-25C load. Not used if BAT2_R_INTERNAL is set.",
      "min": 0.07,
      "max": 0.5,
      "units": "V",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT_A_PER_V",
      "type": "Float",
      "default": -1.0,
      "group": "Battery Calibration",
      "shortDesc": "This parameter is deprecated. Please use BAT1_A_PER_V",
      "decimalPlaces": 8
    },
    {
      "name": "BAT_CAPACITY",
      "type": "Float",
      "default": -1.0,
      "group": "Battery Calibration",
      "shortDesc": "This parameter is deprecated. Please use BAT1_CAPACITY instead",
      "longDesc": "Defines the capacity of battery 1.",
      "min": -1.0,
      "max": 100000.0,
      "units": "mAh",
      "decimalPlaces": 0,
      "increment": 50.0,
      "rebootRequired": true
    },
    {
      "name": "BAT_CRIT_THR",
      "type": "Float",
      "default": 0.07,
      "group": "Battery Calibration",
      "shortDesc": "Critical threshold",
      "longDesc": "Sets the threshold when the battery will be reported as critically low. This has to be lower than the low threshold. This threshold commonly will trigger RTL.",
      "min": 0.05,
      "max": 0.25,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT_EMERGEN_THR",
      "type": "Float",
      "default": 0.05,
      "group": "Battery Calibration",
      "shortDesc": "Emergency threshold",
      "longDesc": "Sets the threshold when the battery will be reported as dangerously low. This has to be lower than the critical threshold. This threshold commonly will trigger landing.",
      "min": 0.03,
      "max": 0.1,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT_LOW_THR",
      "type": "Float",
      "default": 0.15,
      "group": "Battery Calibration",
      "shortDesc": "Low threshold",
      "longDesc": "Sets the threshold when the battery will be reported as low. This has to be higher than the critical threshold.",
      "min": 0.12,
      "max": 0.5,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT_N_CELLS",
      "type": "Int32",
      "default": 0,
      "group": "Battery Calibration",
      "shortDesc": "This parameter is deprecated. Please use BAT1_N_CELLS instead",
      "longDesc": "Defines the number of cells the attached battery consists of.",
      "units": "S",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Unconfigured"
        },
        {
          "value": 2,
          "description": "2S Battery"
        },
        {
          "value": 3,
          "description": "3S Battery"
        },
        {
          "value": 4,
          "description": "4S Battery"
        },
        {
          "value": 5,
          "description": "5S Battery"
        },
        {
          "value": 6,
          "description": "6S Battery"
        },
        {
          "value": 7,
          "description": "7S Battery"
        },
        {
          "value": 8,
          "description": "8S Battery"
        },
        {
          "value": 9,
          "description": "9S Battery"
        },
        {
          "value": 10,
          "description": "10S Battery"
        },
        {
          "value": 11,
          "description": "11S Battery"
        },
        {
          "value": 12,
          "description": "12S Battery"
        },
        {
          "value": 13,
          "description": "13S Battery"
        },
        {
          "value": 14,
          "description": "14S Battery"
        },
        {
          "value": 15,
          "description": "15S Battery"
        },
        {
          "value": 16,
          "description": "16S Battery"
        }
      ]
    },
    {
      "name": "BAT_R_INTERNAL",
      "type": "Float",
      "default": -1.0,
      "group": "Battery Calibration",
      "shortDesc": "This parameter is deprecated. Please use BAT1_R_INTERNAL instead",
      "longDesc": "If non-negative, then this will be used in place of BAT_V_LOAD_DROP for all calculations.",
      "min": -1.0,
      "max": 0.2,
      "units": "Ohm",
      "rebootRequired": true
    },
    {
      "name": "BAT_SOURCE",
      "type": "Int32",
      "default": 0,
      "group": "Battery Calibration",
      "shortDesc": "This parameter is deprecated. Please use BAT1_SOURCE instead",
      "longDesc": "Battery monitoring source. This parameter controls the source of battery data. The value 'Power Module' means that measurements are expected to come from a power module. If the value is set to 'External' then the system expects to receive mavlink battery status messages.",
      "min": 0,
      "max": 1,
      "values": [
        {
          "value": 0,
          "description": "Power Module"
        },
        {
          "value": 1,
          "description": "External"
        }
      ]
    },
    {
      "name": "BAT_V_CHARGED",
      "type": "Float",
      "default": 4.05,
      "group": "Battery Calibration",
      "shortDesc": "This parameter is deprecated. Please use BAT1_V_CHARGED instead",
      "longDesc": "Defines the voltage where a single cell of battery 1 is considered full under a mild load. This will never be the nominal voltage of 4.2V",
      "units": "V",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT_V_DIV",
      "type": "Float",
      "default": -1.0,
      "group": "Battery Calibration",
      "shortDesc": "This parameter is deprecated. Please use BAT1_V_DIV",
      "decimalPlaces": 8
    },
    {
      "name": "BAT_V_EMPTY",
      "type": "Float",
      "default": 3.5,
      "group": "Battery Calibration",
      "shortDesc": "This parameter is deprecated. Please use BAT1_V_EMPTY instead",
      "longDesc": "Defines the voltage where a single cell of battery 1 is considered empty. The voltage should be chosen before the steep dropoff to 2.8V. A typical lithium battery can only be discharged down to 10% before it drops off to a voltage level damaging the cells.",
      "units": "V",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "BAT_V_LOAD_DROP",
      "type": "Float",
      "default": 0.3,
      "group": "Battery Calibration",
      "shortDesc": "This parameter is deprecated. Please use BAT1_V_LOAD_DROP instead",
      "longDesc": "This implicitely defines the internal resistance to maximum current ratio for battery 1 and assumes linearity. A good value to use is the difference between the 5C and 20-25C load. Not used if BAT_R_INTERNAL is set.",
      "min": 0.07,
      "max": 0.5,
      "units": "V",
      "decimalPlaces": 2,
      "increment": 0.01,
      "rebootRequired": true
    },
    {
      "name": "CAM_CAP_DELAY",
      "type": "Float",
      "default": 0.0,
      "group": "Camera Capture",
      "shortDesc": "Camera strobe delay",
      "longDesc": "This parameter sets the delay between image integration start and strobe firing",
      "min": 0.0,
      "max": 100.0,
      "units": "ms",
      "decimalPlaces": 1
    },
    {
      "name": "CAM_CAP_EDGE",
      "type": "Int32",
      "default": 0,
      "group": "Camera Control",
      "shortDesc": "Camera capture edge",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Falling edge"
        },
        {
          "value": 1,
          "description": "Rising edge"
        }
      ]
    },
    {
      "name": "CAM_CAP_FBACK",
      "type": "Int32",
      "default": 0,
      "group": "Camera Control",
      "shortDesc": "Camera capture feedback",
      "longDesc": "Enables camera capture feedback",
      "rebootRequired": true
    },
    {
      "name": "CAM_CAP_MODE",
      "type": "Int32",
      "default": 0,
      "group": "Camera Control",
      "shortDesc": "Camera capture timestamping mode",
      "longDesc": "Change time measurement",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Get absolute timestamp"
        },
        {
          "value": 1,
          "description": "Get timestamp of mid exposure (active high)"
        },
        {
          "value": 2,
          "description": "Get timestamp of mid exposure (active low)"
        }
      ]
    },
    {
      "name": "TRIG_ACT_TIME",
      "type": "Float",
      "default": 40.0,
      "group": "Camera trigger",
      "shortDesc": "Camera trigger activation time",
      "longDesc": "This parameter sets the time the trigger needs to pulled high or low.",
      "min": 0.1,
      "max": 3000.0,
      "units": "ms",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "TRIG_DISTANCE",
      "type": "Float",
      "default": 25.0,
      "group": "Camera trigger",
      "shortDesc": "Camera trigger distance",
      "longDesc": "Sets the distance at which to trigger the camera.",
      "min": 0.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 1.0,
      "rebootRequired": true
    },
    {
      "name": "TRIG_INTERFACE",
      "type": "Int32",
      "default": 4,
      "group": "Camera trigger",
      "shortDesc": "Camera trigger Interface",
      "longDesc": "Selects the trigger interface",
      "rebootRequired": true,
      "values": [
        {
          "value": 1,
          "description": "GPIO"
        },
        {
          "value": 2,
          "description": "Seagull MAP2 (over PWM)"
        },
        {
          "value": 3,
          "description": "MAVLink (forward via MAV_CMD_IMAGE_START_CAPTURE)"
        },
        {
          "value": 4,
          "description": "Generic PWM (IR trigger, servo)"
        }
      ]
    },
    {
      "name": "TRIG_INTERVAL",
      "type": "Float",
      "default": 40.0,
      "group": "Camera trigger",
      "shortDesc": "Camera trigger interval",
      "longDesc": "This parameter sets the time between two consecutive trigger events",
      "min": 4.0,
      "max": 10000.0,
      "units": "ms",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "TRIG_MIN_INTERVA",
      "type": "Float",
      "default": 1.0,
      "group": "Camera trigger",
      "shortDesc": "Minimum camera trigger interval",
      "longDesc": "This parameter sets the minimum time between two consecutive trigger events the specific camera setup is supporting.",
      "min": 1.0,
      "max": 10000.0,
      "units": "ms",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "TRIG_MODE",
      "type": "Int32",
      "default": 0,
      "group": "Camera trigger",
      "shortDesc": "Camera trigger mode",
      "min": 0,
      "max": 4,
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Disable"
        },
        {
          "value": 1,
          "description": "Time based, on command"
        },
        {
          "value": 2,
          "description": "Time based, always on"
        },
        {
          "value": 3,
          "description": "Distance based, always on"
        },
        {
          "value": 4,
          "description": "Distance based, on command (Survey mode)"
        }
      ]
    },
    {
      "name": "TRIG_PINS",
      "type": "Int32",
      "default": 56,
      "group": "Camera trigger",
      "shortDesc": "Camera trigger pin",
      "longDesc": "Selects which FMU pin is used (range: AUX1-AUX8 on Pixhawk controllers with an I/O board, MAIN1-MAIN8 on controllers without an I/O board. The PWM interface takes two pins per camera, while relay triggers on every pin individually. Example: Value 56 would trigger on pins 5 and 6. For GPIO mode Pin 6 will be triggered followed by 5. With a value of 65 pin 5 will be triggered followed by 6. Pins may be non contiguous. I.E. 16 or 61. In GPIO mode the delay pin to pin is < .2 uS. Note: only with a value of 56 or 78 it is possible to use the lower pins for actuator outputs (e.g. ESC's).",
      "min": 1,
      "max": 12345678,
      "decimalPlaces": 0,
      "rebootRequired": true
    },
    {
      "name": "TRIG_POLARITY",
      "type": "Int32",
      "default": 0,
      "group": "Camera trigger",
      "shortDesc": "Camera trigger polarity",
      "longDesc": "This parameter sets the polarity of the trigger (0 = active low, 1 = active high )",
      "min": 0,
      "max": 1,
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Active low"
        },
        {
          "value": 1,
          "description": "Active high"
        }
      ]
    },
    {
      "name": "TRIG_PWM_NEUTRAL",
      "type": "Int32",
      "default": 1500,
      "group": "Camera trigger",
      "shortDesc": "PWM neutral output on trigger pin",
      "min": 1000,
      "max": 2000,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "TRIG_PWM_SHOOT",
      "type": "Int32",
      "default": 1900,
      "group": "Camera trigger",
      "shortDesc": "PWM output to trigger shot",
      "min": 1000,
      "max": 2000,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "CBRK_AIRSPD_CHK",
      "type": "Int32",
      "default": 0,
      "group": "Circuit Breaker",
      "category": "Developer",
      "shortDesc": "Circuit breaker for airspeed sensor",
      "longDesc": "Setting this parameter to 162128 will disable the check for an airspeed sensor. The sensor driver will not be started and it cannot be calibrated. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK",
      "min": 0,
      "max": 162128,
      "rebootRequired": true
    },
    {
      "name": "CBRK_BUZZER",
      "type": "Int32",
      "default": 0,
      "group": "Circuit Breaker",
      "category": "Developer",
      "shortDesc": "Circuit breaker for disabling buzzer",
      "longDesc": "Setting this parameter to 782097 will disable the buzzer audio notification. Setting this parameter to 782090 will disable the startup tune, while keeping all others enabled.",
      "min": 0,
      "max": 782097,
      "rebootRequired": true
    },
    {
      "name": "CBRK_ENGINEFAIL",
      "type": "Int32",
      "default": 284953,
      "group": "Circuit Breaker",
      "category": "Developer",
      "shortDesc": "Circuit breaker for engine failure detection",
      "longDesc": "Setting this parameter to 284953 will disable the engine failure detection. If the aircraft is in engine failure mode the engine failure flag will be set to healthy WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK",
      "min": 0,
      "max": 284953,
      "rebootRequired": true
    },
    {
      "name": "CBRK_FLIGHTTERM",
      "type": "Int32",
      "default": 121212,
      "group": "Circuit Breaker",
      "category": "Developer",
      "shortDesc": "Circuit breaker for flight termination",
      "longDesc": "Setting this parameter to 121212 will disable the flight termination action if triggered by the FailureDetector logic or if FMU is lost. This circuit breaker does not affect the RC loss, data link loss, geofence, and takeoff failure detection safety logic.",
      "min": 0,
      "max": 121212,
      "rebootRequired": true
    },
    {
      "name": "CBRK_IO_SAFETY",
      "type": "Int32",
      "default": 0,
      "group": "Circuit Breaker",
      "category": "Developer",
      "shortDesc": "Circuit breaker for IO safety",
      "longDesc": "Setting this parameter to 22027 will disable IO safety. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK",
      "min": 0,
      "max": 22027,
      "rebootRequired": true
    },
    {
      "name": "CBRK_RATE_CTRL",
      "type": "Int32",
      "default": 0,
      "group": "Circuit Breaker",
      "category": "Developer",
      "shortDesc": "Circuit breaker for rate controller output",
      "longDesc": "Setting this parameter to 140253 will disable the rate controller uORB publication. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK",
      "min": 0,
      "max": 140253,
      "rebootRequired": true
    },
    {
      "name": "CBRK_SUPPLY_CHK",
      "type": "Int32",
      "default": 0,
      "group": "Circuit Breaker",
      "category": "Developer",
      "shortDesc": "Circuit breaker for power supply check",
      "longDesc": "Setting this parameter to 894281 will disable the power valid checks in the commander. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK",
      "min": 0,
      "max": 894281,
      "rebootRequired": true
    },
    {
      "name": "CBRK_USB_CHK",
      "type": "Int32",
      "default": 0,
      "group": "Circuit Breaker",
      "category": "Developer",
      "shortDesc": "Circuit breaker for USB link check",
      "longDesc": "Setting this parameter to 197848 will disable the USB connected checks in the commander. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK",
      "min": 0,
      "max": 197848,
      "rebootRequired": true
    },
    {
      "name": "CBRK_VELPOSERR",
      "type": "Int32",
      "default": 0,
      "group": "Circuit Breaker",
      "category": "Developer",
      "shortDesc": "Circuit breaker for position error check",
      "longDesc": "Setting this parameter to 201607 will disable the position and velocity accuracy checks in the commander. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK",
      "min": 0,
      "max": 201607,
      "rebootRequired": true
    },
    {
      "name": "CBRK_VTOLARMING",
      "type": "Int32",
      "default": 0,
      "group": "Circuit Breaker",
      "category": "Developer",
      "shortDesc": "Circuit breaker for arming in fixed-wing mode check",
      "longDesc": "Setting this parameter to 159753 will enable arming in fixed-wing mode for VTOLs. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK",
      "min": 0,
      "max": 159753,
      "rebootRequired": true
    },
    {
      "name": "COM_ARM_AUTH",
      "type": "Int32",
      "default": 256010,
      "group": "Commander",
      "shortDesc": "Arm authorization parameters, this uint32_t will be split between starting from the LSB:\n- 8bits to authorizer system id\n- 16bits to authentication method parameter, this will be used to store a timeout for the first 2 methods but can be used to another parameter for other new authentication methods.\n- 7bits to authentication method\n- one arm = 0\n- two step arm = 1\n* the MSB bit is not used to avoid problems in the conversion between int and uint",
      "longDesc": "Default value: (10 << 0 | 1000 << 8 | 0 << 24) = 256010 - authorizer system id = 10 - authentication method parameter = 1000 msec of timeout - authentication method = during arm"
    },
    {
      "name": "COM_ARM_AUTH_REQ",
      "type": "Int32",
      "default": 0,
      "group": "Commander",
      "shortDesc": "Require arm authorization to arm",
      "longDesc": "The default allows to arm the vehicle without a arm authorization."
    },
    {
      "name": "COM_ARM_CHK_ESCS",
      "type": "Int32",
      "default": 1,
      "group": "Commander",
      "shortDesc": "Require all the ESCs to be detected to arm",
      "longDesc": "This param is specific for ESCs reporting status. Normal ESCs configurations are not affected by the change of this param."
    },
    {
      "name": "COM_ARM_EKF_AB",
      "type": "Float",
      "default": 0.0022,
      "group": "Commander",
      "shortDesc": "Maximum value of EKF accelerometer delta velocity bias estimate that will allow arming.\nNote: ekf2 will limit the delta velocity bias estimate magnitude to be less than EKF2_ABL_LIM * FILTER_UPDATE_PERIOD_MS * 0.001 so this parameter must be less than that to be useful",
      "min": 0.001,
      "max": 0.01,
      "units": "m/s",
      "decimalPlaces": 4,
      "increment": 0.0001
    },
    {
      "name": "COM_ARM_EKF_GB",
      "type": "Float",
      "default": 0.0011,
      "group": "Commander",
      "shortDesc": "Maximum value of EKF gyro delta angle bias estimate that will allow arming",
      "min": 0.0001,
      "max": 0.0017,
      "units": "rad",
      "decimalPlaces": 4,
      "increment": 0.0001
    },
    {
      "name": "COM_ARM_EKF_HGT",
      "type": "Float",
      "default": 1.0,
      "group": "Commander",
      "shortDesc": "Maximum EKF height innovation test ratio that will allow arming",
      "min": 0.1,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "COM_ARM_EKF_POS",
      "type": "Float",
      "default": 0.5,
      "group": "Commander",
      "shortDesc": "Maximum EKF position innovation test ratio that will allow arming",
      "min": 0.1,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "COM_ARM_EKF_VEL",
      "type": "Float",
      "default": 0.5,
      "group": "Commander",
      "shortDesc": "Maximum EKF velocity innovation test ratio that will allow arming",
      "min": 0.1,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "COM_ARM_EKF_YAW",
      "type": "Float",
      "default": 0.5,
      "group": "Commander",
      "shortDesc": "Maximum EKF yaw innovation test ratio that will allow arming",
      "min": 0.1,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "COM_ARM_IMU_ACC",
      "type": "Float",
      "default": 0.7,
      "group": "Commander",
      "shortDesc": "Maximum accelerometer inconsistency between IMU units that will allow arming",
      "min": 0.1,
      "max": 1.0,
      "units": "m/s^2",
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "COM_ARM_IMU_GYR",
      "type": "Float",
      "default": 0.25,
      "group": "Commander",
      "shortDesc": "Maximum rate gyro inconsistency between IMU units that will allow arming",
      "min": 0.02,
      "max": 0.3,
      "units": "rad/s",
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "COM_ARM_MAG_ANG",
      "type": "Int32",
      "default": 45,
      "group": "Commander",
      "shortDesc": "Maximum magnetic field inconsistency between units that will allow arming\nSet -1 to disable the check",
      "min": 3,
      "max": 180,
      "units": "deg"
    },
    {
      "name": "COM_ARM_MAG_STR",
      "type": "Int32",
      "default": 1,
      "group": "Commander",
      "shortDesc": "Enable mag strength preflight check",
      "longDesc": "Deny arming if the estimator detects a strong magnetic disturbance (check enabled by EKF2_MAG_CHECK)"
    },
    {
      "name": "COM_ARM_MIS_REQ",
      "type": "Int32",
      "default": 0,
      "group": "Commander",
      "shortDesc": "Require valid mission to arm",
      "longDesc": "The default allows to arm the vehicle without a valid mission."
    },
    {
      "name": "COM_ARM_SWISBTN",
      "type": "Int32",
      "default": 0,
      "group": "Commander",
      "shortDesc": "Arm switch is only a button",
      "longDesc": "The default uses the arm switch as real switch. If parameter set button gets handled like stick arming."
    },
    {
      "name": "COM_ARM_WO_GPS",
      "type": "Int32",
      "default": 1,
      "group": "Commander",
      "shortDesc": "Allow arming without GPS",
      "longDesc": "The default allows to arm the vehicle without GPS signal."
    },
    {
      "name": "COM_CPU_MAX",
      "type": "Float",
      "default": 90.0,
      "group": "Commander",
      "shortDesc": "Maximum allowed CPU load to still arm",
      "longDesc": "A negative value disables the check.",
      "min": -1.0,
      "max": 100.0,
      "units": "%",
      "increment": 1.0
    },
    {
      "name": "COM_DISARM_LAND",
      "type": "Float",
      "default": 2.0,
      "group": "Commander",
      "shortDesc": "Time-out for auto disarm after landing",
      "longDesc": "A non-zero, positive value specifies the time-out period in seconds after which the vehicle will be automatically disarmed in case a landing situation has been detected during this period. A zero or negative value means that automatic disarming triggered by landing detection is disabled.",
      "units": "s",
      "decimalPlaces": 2
    },
    {
      "name": "COM_DISARM_PRFLT",
      "type": "Float",
      "default": 10.0,
      "group": "Commander",
      "shortDesc": "Time-out for auto disarm if too slow to takeoff",
      "longDesc": "A non-zero, positive value specifies the time after arming, in seconds, within which the vehicle must take off (after which it will automatically disarm). A zero or negative value means that automatic disarming triggered by a pre-takeoff timeout is disabled.",
      "units": "s",
      "decimalPlaces": 2
    },
    {
      "name": "COM_DL_LOSS_T",
      "type": "Int32",
      "default": 10,
      "group": "Commander",
      "shortDesc": "Datalink loss time threshold",
      "longDesc": "After this amount of seconds without datalink the data link lost mode triggers",
      "min": 5,
      "max": 300,
      "units": "s",
      "decimalPlaces": 1,
      "increment": 1
    },
    {
      "name": "COM_EF_C2T",
      "type": "Float",
      "default": 5.0,
      "group": "Commander",
      "shortDesc": "Engine Failure Current/Throttle Threshold",
      "longDesc": "Engine failure triggers only below this current value",
      "min": 0.0,
      "max": 50.0,
      "units": "A/%",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "COM_EF_THROT",
      "type": "Float",
      "default": 0.5,
      "group": "Commander",
      "shortDesc": "Engine Failure Throttle Threshold",
      "longDesc": "Engine failure triggers only above this throttle value",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "COM_EF_TIME",
      "type": "Float",
      "default": 10.0,
      "group": "Commander",
      "shortDesc": "Engine Failure Time Threshold",
      "longDesc": "Engine failure triggers only if the throttle threshold and the current to throttle threshold are violated for this time",
      "min": 0.0,
      "max": 60.0,
      "units": "s",
      "decimalPlaces": 1,
      "increment": 1.0
    },
    {
      "name": "COM_FLIGHT_UUID",
      "type": "Int32",
      "default": 0,
      "group": "Commander",
      "category": "System",
      "volatile": true,
      "shortDesc": "Next flight UUID",
      "longDesc": "This number is incremented automatically after every flight on disarming in order to remember the next flight UUID. The first flight is 0.",
      "min": 0
    },
    {
      "name": "COM_FLTMODE1",
      "type": "Int32",
      "default": -1,
      "group": "Commander",
      "shortDesc": "First flightmode slot (1000-1160)",
      "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.",
      "values": [
        {
          "value": -1,
          "description": "Unassigned"
        },
        {
          "value": 0,
          "description": "Manual"
        },
        {
          "value": 1,
          "description": "Altitude"
        },
        {
          "value": 2,
          "description": "Position"
        },
        {
          "value": 3,
          "description": "Mission"
        },
        {
          "value": 4,
          "description": "Hold"
        },
        {
          "value": 5,
          "description": "Return"
        },
        {
          "value": 6,
          "description": "Acro"
        },
        {
          "value": 7,
          "description": "Offboard"
        },
        {
          "value": 8,
          "description": "Stabilized"
        },
        {
          "value": 9,
          "description": "Rattitude"
        },
        {
          "value": 10,
          "description": "Takeoff"
        },
        {
          "value": 11,
          "description": "Land"
        },
        {
          "value": 12,
          "description": "Follow Me"
        }
      ]
    },
    {
      "name": "COM_FLTMODE2",
      "type": "Int32",
      "default": -1,
      "group": "Commander",
      "shortDesc": "Second flightmode slot (1160-1320)",
      "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.",
      "values": [
        {
          "value": -1,
          "description": "Unassigned"
        },
        {
          "value": 0,
          "description": "Manual"
        },
        {
          "value": 1,
          "description": "Altitude"
        },
        {
          "value": 2,
          "description": "Position"
        },
        {
          "value": 3,
          "description": "Mission"
        },
        {
          "value": 4,
          "description": "Hold"
        },
        {
          "value": 5,
          "description": "Return"
        },
        {
          "value": 6,
          "description": "Acro"
        },
        {
          "value": 7,
          "description": "Offboard"
        },
        {
          "value": 8,
          "description": "Stabilized"
        },
        {
          "value": 9,
          "description": "Rattitude"
        },
        {
          "value": 10,
          "description": "Takeoff"
        },
        {
          "value": 11,
          "description": "Land"
        },
        {
          "value": 12,
          "description": "Follow Me"
        }
      ]
    },
    {
      "name": "COM_FLTMODE3",
      "type": "Int32",
      "default": -1,
      "group": "Commander",
      "shortDesc": "Third flightmode slot (1320-1480)",
      "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.",
      "values": [
        {
          "value": -1,
          "description": "Unassigned"
        },
        {
          "value": 0,
          "description": "Manual"
        },
        {
          "value": 1,
          "description": "Altitude"
        },
        {
          "value": 2,
          "description": "Position"
        },
        {
          "value": 3,
          "description": "Mission"
        },
        {
          "value": 4,
          "description": "Hold"
        },
        {
          "value": 5,
          "description": "Return"
        },
        {
          "value": 6,
          "description": "Acro"
        },
        {
          "value": 7,
          "description": "Offboard"
        },
        {
          "value": 8,
          "description": "Stabilized"
        },
        {
          "value": 9,
          "description": "Rattitude"
        },
        {
          "value": 10,
          "description": "Takeoff"
        },
        {
          "value": 11,
          "description": "Land"
        },
        {
          "value": 12,
          "description": "Follow Me"
        }
      ]
    },
    {
      "name": "COM_FLTMODE4",
      "type": "Int32",
      "default": -1,
      "group": "Commander",
      "shortDesc": "Fourth flightmode slot (1480-1640)",
      "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.",
      "values": [
        {
          "value": -1,
          "description": "Unassigned"
        },
        {
          "value": 0,
          "description": "Manual"
        },
        {
          "value": 1,
          "description": "Altitude"
        },
        {
          "value": 2,
          "description": "Position"
        },
        {
          "value": 3,
          "description": "Mission"
        },
        {
          "value": 4,
          "description": "Hold"
        },
        {
          "value": 5,
          "description": "Return"
        },
        {
          "value": 6,
          "description": "Acro"
        },
        {
          "value": 7,
          "description": "Offboard"
        },
        {
          "value": 8,
          "description": "Stabilized"
        },
        {
          "value": 9,
          "description": "Rattitude"
        },
        {
          "value": 10,
          "description": "Takeoff"
        },
        {
          "value": 11,
          "description": "Land"
        },
        {
          "value": 12,
          "description": "Follow Me"
        }
      ]
    },
    {
      "name": "COM_FLTMODE5",
      "type": "Int32",
      "default": -1,
      "group": "Commander",
      "shortDesc": "Fifth flightmode slot (1640-1800)",
      "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.",
      "values": [
        {
          "value": -1,
          "description": "Unassigned"
        },
        {
          "value": 0,
          "description": "Manual"
        },
        {
          "value": 1,
          "description": "Altitude"
        },
        {
          "value": 2,
          "description": "Position"
        },
        {
          "value": 3,
          "description": "Mission"
        },
        {
          "value": 4,
          "description": "Hold"
        },
        {
          "value": 5,
          "description": "Return"
        },
        {
          "value": 6,
          "description": "Acro"
        },
        {
          "value": 7,
          "description": "Offboard"
        },
        {
          "value": 8,
          "description": "Stabilized"
        },
        {
          "value": 9,
          "description": "Rattitude"
        },
        {
          "value": 10,
          "description": "Takeoff"
        },
        {
          "value": 11,
          "description": "Land"
        },
        {
          "value": 12,
          "description": "Follow Me"
        }
      ]
    },
    {
      "name": "COM_FLTMODE6",
      "type": "Int32",
      "default": -1,
      "group": "Commander",
      "shortDesc": "Sixth flightmode slot (1800-2000)",
      "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.",
      "values": [
        {
          "value": -1,
          "description": "Unassigned"
        },
        {
          "value": 0,
          "description": "Manual"
        },
        {
          "value": 1,
          "description": "Altitude"
        },
        {
          "value": 2,
          "description": "Position"
        },
        {
          "value": 3,
          "description": "Mission"
        },
        {
          "value": 4,
          "description": "Hold"
        },
        {
          "value": 5,
          "description": "Return"
        },
        {
          "value": 6,
          "description": "Acro"
        },
        {
          "value": 7,
          "description": "Offboard"
        },
        {
          "value": 8,
          "description": "Stabilized"
        },
        {
          "value": 9,
          "description": "Rattitude"
        },
        {
          "value": 10,
          "description": "Takeoff"
        },
        {
          "value": 11,
          "description": "Land"
        },
        {
          "value": 12,
          "description": "Follow Me"
        }
      ]
    },
    {
      "name": "COM_FLT_PROFILE",
      "type": "Int32",
      "default": 0,
      "group": "Commander",
      "shortDesc": "User Flight Profile",
      "longDesc": "Describes the intended use of the vehicle. Can be used by ground control software or log post processing. This param does not influence the behavior within the firmware. This means for example the control logic is independent of the setting of this param (but depends on other params).",
      "values": [
        {
          "value": 0,
          "description": "Default"
        },
        {
          "value": 100,
          "description": "Pro User"
        },
        {
          "value": 200,
          "description": "Flight Tester"
        },
        {
          "value": 300,
          "description": "Developer"
        }
      ]
    },
    {
      "name": "COM_HLDL_LOSS_T",
      "type": "Int32",
      "default": 120,
      "group": "Commander",
      "shortDesc": "High Latency Datalink loss time threshold",
      "longDesc": "After this amount of seconds without datalink the data link lost mode triggers",
      "min": 60,
      "max": 3600,
      "units": "s"
    },
    {
      "name": "COM_HLDL_REG_T",
      "type": "Int32",
      "default": 0,
      "group": "Commander",
      "shortDesc": "High Latency Datalink regain time threshold",
      "longDesc": "After a data link loss: after this this amount of seconds with a healthy datalink the 'datalink loss' flag is set back to false",
      "min": 0,
      "max": 60,
      "units": "s"
    },
    {
      "name": "COM_HOME_H_T",
      "type": "Float",
      "default": 5.0,
      "group": "Commander",
      "shortDesc": "Home set horizontal threshold",
      "longDesc": "The home position will be set if the estimated positioning accuracy is below the threshold.",
      "min": 2.0,
      "max": 15.0,
      "units": "m",
      "decimalPlaces": 2,
      "increment": 0.5
    },
    {
      "name": "COM_HOME_V_T",
      "type": "Float",
      "default": 10.0,
      "group": "Commander",
      "shortDesc": "Home set vertical threshold",
      "longDesc": "The home position will be set if the estimated positioning accuracy is below the threshold.",
      "min": 5.0,
      "max": 25.0,
      "units": "m",
      "decimalPlaces": 2,
      "increment": 0.5
    },
    {
      "name": "COM_KILL_DISARM",
      "type": "Float",
      "default": 5.0,
      "group": "Commander",
      "shortDesc": "Timeout value for disarming when kill switch is engaged",
      "min": 0.0,
      "max": 30.0,
      "units": "s",
      "increment": 0.1
    },
    {
      "name": "COM_LKDOWN_TKO",
      "type": "Float",
      "default": 3.0,
      "group": "Commander",
      "shortDesc": "Timeout for detecting a failure after takeoff",
      "longDesc": "A non-zero, positive value specifies the timeframe in seconds within failure detector is allowed to put the vehicle into a lockdown state if attitude exceeds the limits defined in FD_FAIL_P and FD_FAIL_R. The check is not executed for flight modes that do support acrobatic maneuvers, e.g: Acro (MC/FW), Rattitude and Manual (FW). A zero or negative value means that the check is disabled.",
      "min": -1.0,
      "max": 5.0,
      "units": "s",
      "decimalPlaces": 3
    },
    {
      "name": "COM_LOW_BAT_ACT",
      "type": "Int32",
      "default": 0,
      "group": "Commander",
      "shortDesc": "Battery failsafe mode",
      "longDesc": "Action the system takes at critical battery. See also BAT_CRIT_THR and BAT_EMERGEN_THR for definition of battery states.",
      "decimalPlaces": 0,
      "increment": 1,
      "values": [
        {
          "value": 0,
          "description": "Warning"
        },
        {
          "value": 2,
          "description": "Land mode"
        },
        {
          "value": 3,
          "description": "Return at critical level, land at emergency level"
        }
      ]
    },
    {
      "name": "COM_MOT_TEST_EN",
      "type": "Int32",
      "default": 1,
      "group": "Commander",
      "shortDesc": "Enable Motor Testing",
      "longDesc": "If set, enables the motor test interface via MAVLink (DO_MOTOR_TEST), that allows spinning the motors for testing purposes."
    },
    {
      "name": "COM_OBL_ACT",
      "type": "Int32",
      "default": 0,
      "group": "Commander",
      "shortDesc": "Set offboard loss failsafe mode",
      "longDesc": "The offboard loss failsafe will only be entered after a timeout, set by COM_OF_LOSS_T in seconds.",
      "values": [
        {
          "value": -1,
          "description": "Disabled"
        },
        {
          "value": 0,
          "description": "Land mode"
        },
        {
          "value": 1,
          "description": "Hold mode"
        },
        {
          "value": 2,
          "description": "Return mode"
        },
        {
          "value": 3,
          "description": "Terminate"
        },
        {
          "value": 4,
          "description": "Lockdown"
        }
      ]
    },
    {
      "name": "COM_OBL_RC_ACT",
      "type": "Int32",
      "default": 0,
      "group": "Commander",
      "shortDesc": "Set offboard loss failsafe mode when RC is available",
      "longDesc": "The offboard loss failsafe will only be entered after a timeout, set by COM_OF_LOSS_T in seconds.",
      "values": [
        {
          "value": -1,
          "description": "Disabled"
        },
        {
          "value": 0,
          "description": "Position mode"
        },
        {
          "value": 1,
          "description": "Altitude mode"
        },
        {
          "value": 2,
          "description": "Manual"
        },
        {
          "value": 3,
          "description": "Return mode"
        },
        {
          "value": 4,
          "description": "Land mode"
        },
        {
          "value": 5,
          "description": "Hold mode"
        },
        {
          "value": 6,
          "description": "Terminate"
        },
        {
          "value": 7,
          "description": "Lockdown"
        }
      ]
    },
    {
      "name": "COM_OF_LOSS_T",
      "type": "Float",
      "default": 0.5,
      "group": "Commander",
      "shortDesc": "Time-out to wait when offboard connection is lost before triggering offboard lost action.\nSee COM_OBL_ACT and COM_OBL_RC_ACT to configure action",
      "min": 0.0,
      "max": 60.0,
      "units": "s",
      "increment": 0.01
    },
    {
      "name": "COM_POSCTL_NAVL",
      "type": "Int32",
      "default": 0,
      "group": "Commander",
      "shortDesc": "Position control navigation loss response",
      "longDesc": "This sets the flight mode that will be used if navigation accuracy is no longer adequate for position control. Navigation accuracy checks can be disabled using the CBRK_VELPOSERR parameter, but doing so will remove protection for all flight modes.",
      "values": [
        {
          "value": 0,
          "description": "Altitude/Manual. Assume use of remote control after fallback. Switch to Altitude mode if a height estimate is available, else switch to MANUAL."
        },
        {
          "value": 1,
          "description": "Land/Terminate. Assume no use of remote control after fallback. Switch to Land mode if a height estimate is available, else switch to TERMINATION."
        }
      ]
    },
    {
      "name": "COM_POS_FS_DELAY",
      "type": "Int32",
      "default": 1,
      "group": "Commander",
      "shortDesc": "Loss of position failsafe activation delay",
      "longDesc": "This sets number of seconds that the position checks need to be failed before the failsafe will activate. The default value has been optimised for rotary wing applications. For fixed wing applications, a larger value between 5 and 10 should be used.",
      "min": 1,
      "max": 100,
      "units": "s",
      "rebootRequired": true
    },
    {
      "name": "COM_POS_FS_EPH",
      "type": "Float",
      "default": 5.0,
      "group": "Commander",
      "shortDesc": "Horizontal position error threshold",
      "longDesc": "This is the horizontal position error (EPH) threshold that will trigger a failsafe. The default is appropriate for a multicopter. Can be increased for a fixed-wing.",
      "units": "m"
    },
    {
      "name": "COM_POS_FS_EPV",
      "type": "Float",
      "default": 10.0,
      "group": "Commander",
      "shortDesc": "Vertical position error threshold",
      "longDesc": "This is the vertical position error (EPV) threshold that will trigger a failsafe. The default is appropriate for a multicopter. Can be increased for a fixed-wing.",
      "units": "m"
    },
    {
      "name": "COM_POS_FS_GAIN",
      "type": "Int32",
      "default": 10,
      "group": "Commander",
      "shortDesc": "Loss of position probation gain factor",
      "longDesc": "This sets the rate that the loss of position probation time grows when position checks are failing. The default value has been optimised for rotary wing applications. For fixed wing applications a value of 0 should be used.",
      "rebootRequired": true
    },
    {
      "name": "COM_POS_FS_PROB",
      "type": "Int32",
      "default": 30,
      "group": "Commander",
      "shortDesc": "Loss of position probation delay at takeoff",
      "longDesc": "The probation delay is the number of seconds that the EKF innovation checks need to pass for the position to be declared good after it has been declared bad. The probation delay will be reset to this parameter value when takeoff is detected. After takeoff, if position checks are passing, the probation delay will reduce by one second for every lapsed second of valid position down to a minimum of 1 second. If position checks are failing, the probation delay will increase by COM_POS_FS_GAIN seconds for every lapsed second up to a maximum of 100 seconds. The default value has been optimised for rotary wing applications. For fixed wing applications, a value of 1 should be used.",
      "min": 1,
      "max": 100,
      "units": "s",
      "rebootRequired": true
    },
    {
      "name": "COM_POWER_COUNT",
      "type": "Int32",
      "default": 1,
      "group": "Commander",
      "shortDesc": "Required number of redundant power modules",
      "longDesc": "This configures a check to verify the expected number of 5V rail power supplies are present. By default only one is expected. Note: CBRK_SUPPLY_CHK disables all power checks including this one.",
      "min": 0,
      "max": 4
    },
    {
      "name": "COM_PREARM_MODE",
      "type": "Int32",
      "default": 1,
      "group": "Commander",
      "shortDesc": "Condition to enter prearmed mode",
      "longDesc": "Condition to enter the prearmed state, an intermediate state between disarmed and armed in which non-throttling actuators are active.",
      "values": [
        {
          "value": 0,
          "description": "Disabled"
        },
        {
          "value": 1,
          "description": "Safety button"
        },
        {
          "value": 2,
          "description": "Always"
        }
      ]
    },
    {
      "name": "COM_RC_ARM_HYST",
      "type": "Int32",
      "default": 1000,
      "group": "Commander",
      "shortDesc": "RC input arm/disarm command duration",
      "longDesc": "The default value of 1000 requires the stick to be held in the arm or disarm position for 1 second.",
      "min": 100,
      "max": 1500
    },
    {
      "name": "COM_RC_IN_MODE",
      "type": "Int32",
      "default": 0,
      "group": "Commander",
      "shortDesc": "RC control input mode",
      "longDesc": "The default value of 0 requires a valid RC transmitter setup. Setting this to 1 allows joystick control and disables RC input handling and the associated checks. A value of 2 will generate RC control data from manual input received via MAVLink instead of directly forwarding the manual input data.",
      "min": 0,
      "max": 2,
      "values": [
        {
          "value": 0,
          "description": "RC Transmitter"
        },
        {
          "value": 1,
          "description": "Joystick/No RC Checks"
        },
        {
          "value": 2,
          "description": "Virtual RC by Joystick"
        }
      ]
    },
    {
      "name": "COM_RC_LOSS_T",
      "type": "Float",
      "default": 0.5,
      "group": "Commander",
      "shortDesc": "RC loss time threshold",
      "longDesc": "After this amount of seconds without RC connection the rc lost flag is set to true",
      "min": 0.0,
      "max": 35.0,
      "units": "s",
      "decimalPlaces": 1,
      "increment": 0.1
    },
    {
      "name": "COM_RC_OVERRIDE",
      "type": "Int32",
      "default": 1,
      "group": "Commander",
      "shortDesc": "Enable RC stick override of auto and/or offboard modes",
      "longDesc": "When RC stick override is enabled, moving the RC sticks according to COM_RC_STICK_OV immediately gives control back to the pilot (switches to manual position mode): bit 0: Enable for auto modes (except for in critical battery reaction), bit 1: Enable for offboard mode. Only has an effect on multicopters, and VTOLS in multicopter mode.",
      "min": 0,
      "max": 3,
      "bitmask": [
        {
          "index": 0,
          "description": "Enable override in auto modes"
        },
        {
          "index": 1,
          "description": "Enable override in offboard mode"
        }
      ]
    },
    {
      "name": "COM_RC_STICK_OV",
      "type": "Float",
      "default": 30.0,
      "group": "Commander",
      "shortDesc": "RC stick override threshold",
      "longDesc": "If COM_RC_OVERRIDE is enabled and the joystick input controlling the horizontally axis (right stick for RC in mode 2) is moved more than this threshold from the center the autopilot switches to position mode and the pilot takes over control.",
      "min": 5.0,
      "max": 80.0,
      "units": "%",
      "decimalPlaces": 0,
      "increment": 0.05
    },
    {
      "name": "COM_REARM_GRACE",
      "type": "Int32",
      "default": 1,
      "group": "Commander",
      "shortDesc": "Rearming grace period",
      "longDesc": "Re-arming grace allows to rearm the drone with manual command without running prearmcheck during 5 s after disarming."
    },
    {
      "name": "COM_VEL_FS_EVH",
      "type": "Float",
      "default": 1.0,
      "group": "Commander",
      "shortDesc": "Horizontal velocity error threshold",
      "longDesc": "This is the horizontal velocity error (EVH) threshold that will trigger a failsafe. The default is appropriate for a multicopter. Can be increased for a fixed-wing.",
      "units": "m/s"
    },
    {
      "name": "NAV_AH_ALT",
      "type": "Float",
      "default": 600.0,
      "group": "Data Link Loss",
      "shortDesc": "Airfield home alt",
      "longDesc": "Altitude of airfield home waypoint",
      "min": -50.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "NAV_AH_LAT",
      "type": "Int32",
      "default": -265847810,
      "group": "Data Link Loss",
      "shortDesc": "Airfield home Lat",
      "longDesc": "Latitude of airfield home waypoint",
      "min": -900000000,
      "max": 900000000,
      "units": "deg*1e7"
    },
    {
      "name": "NAV_AH_LON",
      "type": "Int32",
      "default": 1518423250,
      "group": "Data Link Loss",
      "shortDesc": "Airfield home Lon",
      "longDesc": "Longitude of airfield home waypoint",
      "min": -1800000000,
      "max": 1800000000,
      "units": "deg*1e7"
    },
    {
      "name": "EKF2_ABIAS_INIT",
      "type": "Float",
      "default": 0.2,
      "group": "EKF2",
      "shortDesc": "1-sigma IMU accelerometer switch-on bias",
      "min": 0.0,
      "max": 0.5,
      "units": "m/s^2",
      "decimalPlaces": 2,
      "rebootRequired": true
    },
    {
      "name": "EKF2_ABL_ACCLIM",
      "type": "Float",
      "default": 25.0,
      "group": "EKF2",
      "shortDesc": "Maximum IMU accel magnitude that allows IMU bias learning.\nIf the magnitude of the IMU accelerometer vector exceeds this value, the EKF delta velocity state estimation will be inhibited.\nThis reduces the adverse effect of high manoeuvre accelerations and IMU nonlinerity and scale factor errors on the delta velocity bias estimates",
      "min": 20.0,
      "max": 200.0,
      "units": "m/s^2",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_ABL_GYRLIM",
      "type": "Float",
      "default": 3.0,
      "group": "EKF2",
      "shortDesc": "Maximum IMU gyro angular rate magnitude that allows IMU bias learning.\nIf the magnitude of the IMU angular rate vector exceeds this value, the EKF delta velocity state estimation will be inhibited.\nThis reduces the adverse effect of rapid rotation rates and associated errors on the delta velocity bias estimates",
      "min": 2.0,
      "max": 20.0,
      "units": "rad/s",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_ABL_LIM",
      "type": "Float",
      "default": 0.4,
      "group": "EKF2",
      "shortDesc": "Accelerometer bias learning limit. The ekf delta velocity bias states will be limited to within a range equivalent to +- of this value",
      "min": 0.0,
      "max": 0.8,
      "units": "m/s^2",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_ABL_TAU",
      "type": "Float",
      "default": 0.5,
      "group": "EKF2",
      "shortDesc": "Time constant used by acceleration and angular rate magnitude checks used to inhibit delta velocity bias learning.\nThe vector magnitude of angular rate and acceleration used to check if learning should be inhibited has a peak hold filter applied to it with an exponential decay.\nThis parameter controls the time constant of the decay",
      "min": 0.1,
      "max": 1.0,
      "units": "s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_ACC_B_NOISE",
      "type": "Float",
      "default": 0.003,
      "group": "EKF2",
      "shortDesc": "Process noise for IMU accelerometer bias prediction",
      "min": 0.0,
      "max": 0.01,
      "units": "m/s^3",
      "decimalPlaces": 6
    },
    {
      "name": "EKF2_ACC_NOISE",
      "type": "Float",
      "default": 0.35,
      "group": "EKF2",
      "shortDesc": "Accelerometer noise for covariance prediction",
      "min": 0.01,
      "max": 1.0,
      "units": "m/s^2",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_AID_MASK",
      "type": "Int32",
      "default": 1,
      "group": "EKF2",
      "shortDesc": "Integer bitmask controlling data fusion and aiding methods",
      "longDesc": "Set bits in the following positions to enable: 0 : Set to true to use GPS data if available 1 : Set to true to use optical flow data if available 2 : Set to true to inhibit IMU delta velocity bias estimation 3 : Set to true to enable vision position fusion 4 : Set to true to enable vision yaw fusion. Cannot be used if bit position 7 is true. 5 : Set to true to enable multi-rotor drag specific force fusion 6 : set to true if the EV observations are in a non NED reference frame and need to be rotated before being used 7 : Set to true to enable GPS yaw fusion. Cannot be used if bit position 4 is true.",
      "min": 0,
      "max": 511,
      "rebootRequired": true,
      "bitmask": [
        {
          "index": 0,
          "description": "use GPS"
        },
        {
          "index": 1,
          "description": "use optical flow"
        },
        {
          "index": 2,
          "description": "inhibit IMU bias estimation"
        },
        {
          "index": 3,
          "description": "vision position fusion"
        },
        {
          "index": 4,
          "description": "vision yaw fusion"
        },
        {
          "index": 5,
          "description": "multi-rotor drag fusion"
        },
        {
          "index": 6,
          "description": "rotate external vision"
        },
        {
          "index": 7,
          "description": "GPS yaw fusion"
        },
        {
          "index": 8,
          "description": "vision velocity fusion"
        }
      ]
    },
    {
      "name": "EKF2_ANGERR_INIT",
      "type": "Float",
      "default": 0.1,
      "group": "EKF2",
      "shortDesc": "1-sigma tilt angle uncertainty after gravity vector alignment",
      "min": 0.0,
      "max": 0.5,
      "units": "rad",
      "decimalPlaces": 3,
      "rebootRequired": true
    },
    {
      "name": "EKF2_ARSP_THR",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Airspeed fusion threshold. A value of zero will deactivate airspeed fusion. Any other positive\nvalue will determine the minimum airspeed which will still be fused. Set to about 90% of the vehicles stall speed.\nBoth airspeed fusion and sideslip fusion must be active for the EKF to continue navigating after loss of GPS.\nUse EKF2_FUSE_BETA to activate sideslip fusion",
      "min": 0.0,
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_ASPD_MAX",
      "type": "Float",
      "default": 20.0,
      "group": "EKF2",
      "shortDesc": "Upper limit on airspeed along individual axes used to correct baro for position error effects",
      "min": 5.0,
      "max": 50.0,
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_ASP_DELAY",
      "type": "Float",
      "default": 100.0,
      "group": "EKF2",
      "shortDesc": "Airspeed measurement delay relative to IMU measurements",
      "min": 0.0,
      "max": 300.0,
      "units": "ms",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "EKF2_AVEL_DELAY",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Auxillary Velocity Estimate (e.g from a landing target) delay relative to IMU measurements",
      "min": 0.0,
      "max": 300.0,
      "units": "ms",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "EKF2_BARO_DELAY",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Barometer measurement delay relative to IMU measurements",
      "min": 0.0,
      "max": 300.0,
      "units": "ms",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "EKF2_BARO_GATE",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Gate size for barometric and GPS height fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_BARO_NOISE",
      "type": "Float",
      "default": 3.5,
      "group": "EKF2",
      "shortDesc": "Measurement noise for barometric altitude",
      "min": 0.01,
      "max": 15.0,
      "units": "m",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_BCOEF_X",
      "type": "Float",
      "default": 25.0,
      "group": "EKF2",
      "shortDesc": "X-axis ballistic coefficient used by the multi-rotor specific drag force model.\nThis should be adjusted to minimise variance of the X-axis drag specific force innovation sequence",
      "min": 1.0,
      "max": 100.0,
      "units": "kg/m^2",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_BCOEF_Y",
      "type": "Float",
      "default": 25.0,
      "group": "EKF2",
      "shortDesc": "Y-axis ballistic coefficient used by the multi-rotor specific drag force model.\nThis should be adjusted to minimise variance of the Y-axis drag specific force innovation sequence",
      "min": 1.0,
      "max": 100.0,
      "units": "kg/m^2",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_BETA_GATE",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Gate size for synthetic sideslip fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_BETA_NOISE",
      "type": "Float",
      "default": 0.3,
      "group": "EKF2",
      "shortDesc": "Noise for synthetic sideslip fusion",
      "min": 0.1,
      "max": 1.0,
      "units": "m/s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_DECL_TYPE",
      "type": "Int32",
      "default": 7,
      "group": "EKF2",
      "shortDesc": "Integer bitmask controlling handling of magnetic declination",
      "longDesc": "Set bits in the following positions to enable functions. 0 : Set to true to use the declination from the geo_lookup library when the GPS position becomes available, set to false to always use the EKF2_MAG_DECL value. 1 : Set to true to save the EKF2_MAG_DECL parameter to the value returned by the EKF when the vehicle disarms. 2 : Set to true to always use the declination as an observation when 3-axis magnetometer fusion is being used.",
      "min": 0,
      "max": 7,
      "rebootRequired": true,
      "bitmask": [
        {
          "index": 0,
          "description": "use geo_lookup declination"
        },
        {
          "index": 1,
          "description": "save EKF2_MAG_DECL on disarm"
        },
        {
          "index": 2,
          "description": "use declination as an observation"
        }
      ]
    },
    {
      "name": "EKF2_DRAG_NOISE",
      "type": "Float",
      "default": 2.5,
      "group": "EKF2",
      "shortDesc": "Specific drag force observation noise variance used by the multi-rotor specific drag force model.\nIncreasing it makes the multi-rotor wind estimates adjust more slowly",
      "min": 0.5,
      "max": 10.0,
      "units": "(m/s^2)^2",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_EAS_NOISE",
      "type": "Float",
      "default": 1.4,
      "group": "EKF2",
      "shortDesc": "Measurement noise for airspeed fusion",
      "min": 0.5,
      "max": 5.0,
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_EVA_NOISE",
      "type": "Float",
      "default": 0.05,
      "group": "EKF2",
      "shortDesc": "Measurement noise for vision angle observations used to lower bound or replace the uncertainty included in the message",
      "min": 0.05,
      "units": "rad",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_EVP_GATE",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Gate size for vision position fusion\nSets the number of standard deviations used by the innovation consistency test",
      "min": 1.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_EVP_NOISE",
      "type": "Float",
      "default": 0.1,
      "group": "EKF2",
      "shortDesc": "Measurement noise for vision position observations used to lower bound or replace the uncertainty included in the message",
      "min": 0.01,
      "units": "m",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_EVV_GATE",
      "type": "Float",
      "default": 3.0,
      "group": "EKF2",
      "shortDesc": "Gate size for vision velocity estimate fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_EVV_NOISE",
      "type": "Float",
      "default": 0.1,
      "group": "EKF2",
      "shortDesc": "Measurement noise for vision velocity observations used to lower bound or replace the uncertainty included in the message",
      "min": 0.01,
      "units": "m/s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_EV_DELAY",
      "type": "Float",
      "default": 175.0,
      "group": "EKF2",
      "shortDesc": "Vision Position Estimator delay relative to IMU measurements",
      "min": 0.0,
      "max": 300.0,
      "units": "ms",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "EKF2_EV_NOISE_MD",
      "type": "Int32",
      "default": 0,
      "group": "EKF2",
      "shortDesc": "Whether to set the external vision observation noise from the parameter or from vision message",
      "longDesc": "If set to true the observation noise is set from the parameters directly, if set to false the measurement noise is taken from the vision message and the parameter are used as a lower bound."
    },
    {
      "name": "EKF2_EV_POS_X",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "X position of VI sensor focal point in body frame (forward axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_EV_POS_Y",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Y position of VI sensor focal point in body frame (right axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_EV_POS_Z",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Z position of VI sensor focal point in body frame (down axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_FUSE_BETA",
      "type": "Int32",
      "default": 0,
      "group": "EKF2",
      "shortDesc": "Boolean determining if synthetic sideslip measurements should fused",
      "longDesc": "A value of 1 indicates that fusion is active Both  sideslip fusion and airspeed fusion must be active for the EKF to continue navigating after loss of GPS. Use EKF2_ARSP_THR to activate airspeed fusion."
    },
    {
      "name": "EKF2_GBIAS_INIT",
      "type": "Float",
      "default": 0.1,
      "group": "EKF2",
      "shortDesc": "1-sigma IMU gyro switch-on bias",
      "min": 0.0,
      "max": 0.2,
      "units": "rad/s",
      "decimalPlaces": 2,
      "rebootRequired": true
    },
    {
      "name": "EKF2_GND_EFF_DZ",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Baro deadzone range for height fusion",
      "longDesc": "Sets the value of deadzone applied to negative baro innovations. Deadzone is enabled when EKF2_GND_EFF_DZ > 0.",
      "min": 0.0,
      "max": 10.0,
      "units": "m",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_GND_MAX_HGT",
      "type": "Float",
      "default": 0.5,
      "group": "EKF2",
      "shortDesc": "Height above ground level for ground effect zone",
      "longDesc": "Sets the maximum distance to the ground level where negative baro innovations are expected.",
      "min": 0.0,
      "max": 5.0,
      "units": "m",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_GPS_CHECK",
      "type": "Int32",
      "default": 245,
      "group": "EKF2",
      "shortDesc": "Integer bitmask controlling GPS checks",
      "longDesc": "Set bits to 1 to enable checks. Checks enabled by the following bit positions 0 : Minimum required sat count set by EKF2_REQ_NSATS 1 : Minimum required PDOP set by EKF2_REQ_PDOP 2 : Maximum allowed horizontal position error set by EKF2_REQ_EPH 3 : Maximum allowed vertical position error set by EKF2_REQ_EPV 4 : Maximum allowed speed error set by EKF2_REQ_SACC 5 : Maximum allowed horizontal position rate set by EKF2_REQ_HDRIFT. This check will only run when the vehicle is on ground and stationary. Detecton of the stationary condition is controlled by the EKF2_MOVE_TEST parameter. 6 : Maximum allowed vertical position rate set by EKF2_REQ_VDRIFT. This check will only run when the vehicle is on ground and stationary. Detecton of the stationary condition is controlled by the EKF2_MOVE_TEST parameter. 7 : Maximum allowed horizontal speed set by EKF2_REQ_HDRIFT. This check will only run when the vehicle is on ground and stationary. Detecton of the stationary condition is controlled by the EKF2_MOVE_TEST parameter. 8 : Maximum allowed vertical velocity discrepancy set by EKF2_REQ_VDRIFT",
      "min": 0,
      "max": 511,
      "bitmask": [
        {
          "index": 0,
          "description": "Min sat count (EKF2_REQ_NSATS)"
        },
        {
          "index": 1,
          "description": "Min PDOP (EKF2_REQ_PDOP)"
        },
        {
          "index": 2,
          "description": "Max horizontal position error (EKF2_REQ_EPH)"
        },
        {
          "index": 3,
          "description": "Max vertical position error (EKF2_REQ_EPV)"
        },
        {
          "index": 4,
          "description": "Max speed error (EKF2_REQ_SACC)"
        },
        {
          "index": 5,
          "description": "Max horizontal position rate (EKF2_REQ_HDRIFT)"
        },
        {
          "index": 6,
          "description": "Max vertical position rate (EKF2_REQ_VDRIFT)"
        },
        {
          "index": 7,
          "description": "Max horizontal speed (EKF2_REQ_HDRIFT)"
        },
        {
          "index": 8,
          "description": "Max vertical velocity discrepancy (EKF2_REQ_VDRIFT)"
        }
      ]
    },
    {
      "name": "EKF2_GPS_DELAY",
      "type": "Float",
      "default": 110.0,
      "group": "EKF2",
      "shortDesc": "GPS measurement delay relative to IMU measurements",
      "min": 0.0,
      "max": 300.0,
      "units": "ms",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "EKF2_GPS_POS_X",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "X position of GPS antenna in body frame (forward axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_GPS_POS_Y",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Y position of GPS antenna in body frame (right axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_GPS_POS_Z",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Z position of GPS antenna in body frame (down axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_GPS_P_GATE",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Gate size for GPS horizontal position fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_GPS_P_NOISE",
      "type": "Float",
      "default": 0.5,
      "group": "EKF2",
      "shortDesc": "Measurement noise for gps position",
      "min": 0.01,
      "max": 10.0,
      "units": "m",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_GPS_V_GATE",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Gate size for GPS velocity fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_GPS_V_NOISE",
      "type": "Float",
      "default": 0.3,
      "group": "EKF2",
      "shortDesc": "Measurement noise for gps horizontal velocity",
      "min": 0.01,
      "max": 5.0,
      "units": "m/s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_GSF_TAS",
      "type": "Float",
      "default": 15.0,
      "group": "EKF2",
      "shortDesc": "Default value of true airspeed used in EKF-GSF AHRS calculation.\nIf no airspeed measurements are avalable, the EKF-GSF AHRS calculation will assume this value of true airspeed when compensating for centripetal acceleration during turns. Set to zero to disable centripetal acceleration compensation during fixed wing flight modes",
      "min": 0.0,
      "max": 100.0,
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_GYR_B_NOISE",
      "type": "Float",
      "default": 0.001,
      "group": "EKF2",
      "shortDesc": "Process noise for IMU rate gyro bias prediction",
      "min": 0.0,
      "max": 0.01,
      "units": "rad/s^2",
      "decimalPlaces": 6
    },
    {
      "name": "EKF2_GYR_NOISE",
      "type": "Float",
      "default": 0.015,
      "group": "EKF2",
      "shortDesc": "Rate gyro noise for covariance prediction",
      "min": 0.0001,
      "max": 0.1,
      "units": "rad/s",
      "decimalPlaces": 4
    },
    {
      "name": "EKF2_HDG_GATE",
      "type": "Float",
      "default": 2.6,
      "group": "EKF2",
      "shortDesc": "Gate size for magnetic heading fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_HEAD_NOISE",
      "type": "Float",
      "default": 0.3,
      "group": "EKF2",
      "shortDesc": "Measurement noise for magnetic heading fusion",
      "min": 0.01,
      "max": 1.0,
      "units": "rad",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_HGT_MODE",
      "type": "Int32",
      "default": 0,
      "group": "EKF2",
      "shortDesc": "Determines the primary source of height data used by the EKF",
      "longDesc": "The range sensor option should only be used when for operation over a flat surface as the local NED origin will move up and down with ground level.",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Barometric pressure"
        },
        {
          "value": 1,
          "description": "GPS"
        },
        {
          "value": 2,
          "description": "Range sensor"
        },
        {
          "value": 3,
          "description": "Vision"
        }
      ]
    },
    {
      "name": "EKF2_IMU_ID",
      "type": "Int32",
      "default": 0,
      "group": "EKF2",
      "category": "Developer",
      "shortDesc": "Device id of IMU",
      "longDesc": "Set to 0 to use system selected (sensor_combined) IMU, otherwise set to the device id of the desired IMU (vehicle_imu).",
      "values": [
        {
          "value": 0,
          "description": "System Primary"
        }
      ]
    },
    {
      "name": "EKF2_IMU_POS_X",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "X position of IMU in body frame (forward axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_IMU_POS_Y",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Y position of IMU in body frame (right axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_IMU_POS_Z",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Z position of IMU in body frame (down axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_MAGBIAS_ID",
      "type": "Int32",
      "default": 0,
      "group": "EKF2",
      "category": "System",
      "shortDesc": "ID of Magnetometer the learned bias is for",
      "rebootRequired": true
    },
    {
      "name": "EKF2_MAGBIAS_X",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "category": "System",
      "volatile": true,
      "shortDesc": "Learned value of magnetometer X axis bias.\nThis is the amount of X-axis magnetometer bias learned by the EKF and saved from the last flight. It must be set to zero if the ground based magnetometer calibration is repeated",
      "min": -0.5,
      "max": 0.5,
      "units": "mgauss",
      "decimalPlaces": 3,
      "rebootRequired": true
    },
    {
      "name": "EKF2_MAGBIAS_Y",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "category": "System",
      "volatile": true,
      "shortDesc": "Learned value of magnetometer Y axis bias.\nThis is the amount of Y-axis magnetometer bias learned by the EKF and saved from the last flight. It must be set to zero if the ground based magnetometer calibration is repeated",
      "min": -0.5,
      "max": 0.5,
      "units": "mgauss",
      "decimalPlaces": 3,
      "rebootRequired": true
    },
    {
      "name": "EKF2_MAGBIAS_Z",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "category": "System",
      "volatile": true,
      "shortDesc": "Learned value of magnetometer Z axis bias.\nThis is the amount of Z-axis magnetometer bias learned by the EKF and saved from the last flight. It must be set to zero if the ground based magnetometer calibration is repeated",
      "min": -0.5,
      "max": 0.5,
      "units": "mgauss",
      "decimalPlaces": 3,
      "rebootRequired": true
    },
    {
      "name": "EKF2_MAGB_K",
      "type": "Float",
      "default": 0.2,
      "group": "EKF2",
      "shortDesc": "Maximum fraction of learned mag bias saved at each disarm.\nSmaller values make the saved mag bias learn slower from flight to flight. Larger values make it learn faster. Must be > 0.0 and <= 1.0",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_MAGB_VREF",
      "type": "Float",
      "default": 2.5e-07,
      "group": "EKF2",
      "shortDesc": "State variance assumed for magnetometer bias storage.\nThis is a reference variance used to calculate the fraction of learned magnetometer bias that will be used to update the stored value. Smaller values will make the stored bias data adjust more slowly from flight to flight. Larger values will make it adjust faster",
      "units": "mgauss^2",
      "decimalPlaces": 8,
      "rebootRequired": true
    },
    {
      "name": "EKF2_MAG_ACCLIM",
      "type": "Float",
      "default": 0.5,
      "group": "EKF2",
      "shortDesc": "Horizontal acceleration threshold used by automatic selection of magnetometer fusion method.\nThis parameter is used when the magnetometer fusion method is set automatically (EKF2_MAG_TYPE = 0). If the filtered horizontal acceleration is greater than this parameter value, then the EKF will use 3-axis magnetomer fusion",
      "min": 0.0,
      "max": 5.0,
      "units": "m/s^2",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_MAG_B_NOISE",
      "type": "Float",
      "default": 0.0001,
      "group": "EKF2",
      "shortDesc": "Process noise for body magnetic field prediction",
      "min": 0.0,
      "max": 0.1,
      "units": "gauss/s",
      "decimalPlaces": 6
    },
    {
      "name": "EKF2_MAG_CHECK",
      "type": "Int32",
      "default": 0,
      "group": "EKF2",
      "shortDesc": "Magnetic field strength test selection",
      "longDesc": "When set, the EKF checks the strength of the magnetic field to decide whether the magnetometer data is valid. If GPS data is received, the magnetic field is compared to a World Magnetic Model (WMM), otherwise an average value is used. This check is useful to reject occasional hard iron disturbance."
    },
    {
      "name": "EKF2_MAG_DECL",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "category": "System",
      "volatile": true,
      "shortDesc": "Magnetic declination",
      "units": "deg",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_MAG_DELAY",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Magnetometer measurement delay relative to IMU measurements",
      "min": 0.0,
      "max": 300.0,
      "units": "ms",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "EKF2_MAG_E_NOISE",
      "type": "Float",
      "default": 0.001,
      "group": "EKF2",
      "shortDesc": "Process noise for earth magnetic field prediction",
      "min": 0.0,
      "max": 0.1,
      "units": "gauss/s",
      "decimalPlaces": 6
    },
    {
      "name": "EKF2_MAG_GATE",
      "type": "Float",
      "default": 3.0,
      "group": "EKF2",
      "shortDesc": "Gate size for magnetometer XYZ component fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_MAG_NOISE",
      "type": "Float",
      "default": 0.05,
      "group": "EKF2",
      "shortDesc": "Measurement noise for magnetometer 3-axis fusion",
      "min": 0.001,
      "max": 1.0,
      "units": "gauss",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_MAG_TYPE",
      "type": "Int32",
      "default": 0,
      "group": "EKF2",
      "shortDesc": "Type of magnetometer fusion",
      "longDesc": "Integer controlling the type of magnetometer fusion used - magnetic heading or 3-component vector. The fuson of magnetomer data as a three component vector enables vehicle body fixed hard iron errors to be learned, but requires a stable earth field. If set to 'Automatic' magnetic heading fusion is used when on-ground and 3-axis magnetic field fusion in-flight with fallback to magnetic heading fusion if there is insufficient motion to make yaw or magnetic field states observable. If set to 'Magnetic heading' magnetic heading fusion is used at all times If set to '3-axis' 3-axis field fusion is used at all times. If set to 'VTOL custom' the behaviour is the same as 'Automatic', but if fusing airspeed, magnetometer fusion is only allowed to modify the magnetic field states. This can be used by VTOL platforms with large magnetic field disturbances to prevent incorrect bias states being learned during forward flight operation which can adversely affect estimation accuracy after transition to hovering flight. If set to 'MC custom' the behaviour is the same as 'Automatic, but if there are no earth frame position or velocity observations being used, the magnetometer will not be used. This enables vehicles to operate with no GPS in environments where the magnetic field cannot be used to provide a heading reference. Prior to flight, the yaw angle is assumed to be constant if movement tests controlled by the EKF2_MOVE_TEST parameter indicate that the vehicle is static. This allows the vehicle to be placed on the ground to learn the yaw gyro bias prior to flight. If set to 'None' the magnetometer will not be used under any circumstance. If no external source of yaw is available, it is possible to use post-takeoff horizontal movement combined with GPS velocity measurements to align the yaw angle with the timer required (depending on the amount of movement and GPS data quality). Other external sources of yaw may be used if selected via the EKF2_AID_MASK parameter.",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Automatic"
        },
        {
          "value": 1,
          "description": "Magnetic heading"
        },
        {
          "value": 2,
          "description": "3-axis"
        },
        {
          "value": 3,
          "description": "VTOL custom"
        },
        {
          "value": 4,
          "description": "MC custom"
        },
        {
          "value": 5,
          "description": "None"
        }
      ]
    },
    {
      "name": "EKF2_MAG_YAWLIM",
      "type": "Float",
      "default": 0.25,
      "group": "EKF2",
      "shortDesc": "Yaw rate threshold used by automatic selection of magnetometer fusion method.\nThis parameter is used when the magnetometer fusion method is set automatically (EKF2_MAG_TYPE = 0). If the filtered yaw rate is greater than this parameter value, then the EKF will use 3-axis magnetomer fusion",
      "min": 0.0,
      "max": 1.0,
      "units": "rad/s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_MIN_OBS_DT",
      "type": "Int32",
      "default": 20,
      "group": "EKF2",
      "shortDesc": "Minimum time of arrival delta between non-IMU observations before data is downsampled.\nBaro and Magnetometer data will be averaged before downsampling, other data will be point sampled resulting in loss of information",
      "min": 10,
      "max": 50,
      "units": "ms",
      "rebootRequired": true
    },
    {
      "name": "EKF2_MIN_RNG",
      "type": "Float",
      "default": 0.1,
      "group": "EKF2",
      "shortDesc": "Expected range finder reading when on ground",
      "longDesc": "If the vehicle is on ground, is not moving as determined by the motion test controlled by EKF2_MOVE_TEST and the range finder is returning invalid or no data, then an assumed range value of EKF2_MIN_RNG will be used by the terrain estimator so that a terrain height estimate is avilable at the start of flight in situations where the range finder may be inside its minimum measurements distance when on ground.",
      "min": 0.01,
      "units": "m",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_MOVE_TEST",
      "type": "Float",
      "default": 1.0,
      "group": "EKF2",
      "shortDesc": "Vehicle movement test threshold",
      "longDesc": "Scales the threshold tests applied to IMU data used to determine if the vehicle is static or moving. See parameter descriptions for EKF2_GPS_CHECK and EKF2_MAG_TYPE for further information on the functionality affected by this parameter.",
      "min": 0.1,
      "max": 10.0,
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_NOAID_NOISE",
      "type": "Float",
      "default": 10.0,
      "group": "EKF2",
      "shortDesc": "Measurement noise for non-aiding position hold",
      "min": 0.5,
      "max": 50.0,
      "units": "m",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_NOAID_TOUT",
      "type": "Int32",
      "default": 5000000,
      "group": "EKF2",
      "shortDesc": "Maximum lapsed time from last fusion of measurements that constrain velocity drift before the EKF will report the horizontal nav solution as invalid",
      "min": 500000,
      "max": 10000000,
      "units": "us"
    },
    {
      "name": "EKF2_OF_DELAY",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Optical flow measurement delay relative to IMU measurements\nAssumes measurement is timestamped at trailing edge of integration period",
      "min": 0.0,
      "max": 300.0,
      "units": "ms",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "EKF2_OF_GATE",
      "type": "Float",
      "default": 3.0,
      "group": "EKF2",
      "shortDesc": "Gate size for optical flow fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_OF_N_MAX",
      "type": "Float",
      "default": 0.5,
      "group": "EKF2",
      "shortDesc": "Measurement noise for the optical flow sensor",
      "longDesc": "(when it's reported quality metric is at the minimum set by EKF2_OF_QMIN). The following condition must be met: EKF2_OF_N_MAXN >= EKF2_OF_N_MIN",
      "min": 0.05,
      "units": "rad/s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_OF_N_MIN",
      "type": "Float",
      "default": 0.15,
      "group": "EKF2",
      "shortDesc": "Measurement noise for the optical flow sensor when it's reported quality metric is at the maximum",
      "min": 0.05,
      "units": "rad/s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_OF_POS_X",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "X position of optical flow focal point in body frame (forward axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_OF_POS_Y",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Y position of optical flow focal point in body frame (right axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_OF_POS_Z",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Z position of optical flow focal point in body frame (down axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_OF_QMIN",
      "type": "Int32",
      "default": 1,
      "group": "EKF2",
      "shortDesc": "Optical Flow data will only be used if the sensor reports a quality metric >= EKF2_OF_QMIN",
      "min": 0,
      "max": 255
    },
    {
      "name": "EKF2_PCOEF_XN",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Static pressure position error coefficient for the negative X axis.\nThis is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis.\nIf the baro height estimate rises during backwards flight, then this will be a negative number",
      "min": -0.5,
      "max": 0.5,
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_PCOEF_XP",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Static pressure position error coefficient for the positive X axis\nThis is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis.\nIf the baro height estimate rises during forward flight, then this will be a negative number",
      "min": -0.5,
      "max": 0.5,
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_PCOEF_YN",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Pressure position error coefficient for the negative Y axis.\nThis is the ratio of static pressure error to dynamic pressure generated by a wind relative velocity along the negative Y (LH) body axis.\nIf the baro height estimate rises during sideways flight to the left, then this will be a negative number",
      "min": -0.5,
      "max": 0.5,
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_PCOEF_YP",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Pressure position error coefficient for the positive Y axis.\nThis is the ratio of static pressure error to dynamic pressure generated by a wind relative velocity along the positive Y (RH) body axis.\nIf the baro height estimate rises during sideways flight to the right, then this will be a negative number",
      "min": -0.5,
      "max": 0.5,
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_PCOEF_Z",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Static pressure position error coefficient for the Z axis.\nThis is the ratio of static pressure error to dynamic pressure generated by a wind relative velocity along the Z body axis",
      "min": -0.5,
      "max": 0.5,
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_REQ_EPH",
      "type": "Float",
      "default": 3.0,
      "group": "EKF2",
      "shortDesc": "Required EPH to use GPS",
      "min": 2.0,
      "max": 100.0,
      "units": "m",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_REQ_EPV",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Required EPV to use GPS",
      "min": 2.0,
      "max": 100.0,
      "units": "m",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_REQ_GPS_H",
      "type": "Float",
      "default": 10.0,
      "group": "EKF2",
      "shortDesc": "Required GPS health time on startup",
      "longDesc": "Minimum continuous period without GPS failure required to mark a healthy GPS status. It can be reduced to speed up initialization, but it's recommended to keep this unchanged for a vehicle.",
      "min": 0.1,
      "units": "s",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "EKF2_REQ_HDRIFT",
      "type": "Float",
      "default": 0.1,
      "group": "EKF2",
      "shortDesc": "Maximum horizontal drift speed to use GPS",
      "min": 0.1,
      "max": 1.0,
      "units": "m/s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_REQ_NSATS",
      "type": "Int32",
      "default": 6,
      "group": "EKF2",
      "shortDesc": "Required satellite count to use GPS",
      "min": 4,
      "max": 12
    },
    {
      "name": "EKF2_REQ_PDOP",
      "type": "Float",
      "default": 2.5,
      "group": "EKF2",
      "shortDesc": "Required PDOP to use GPS",
      "min": 1.5,
      "max": 5.0,
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_REQ_SACC",
      "type": "Float",
      "default": 0.5,
      "group": "EKF2",
      "shortDesc": "Required speed accuracy to use GPS",
      "min": 0.5,
      "max": 5.0,
      "units": "m/s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_REQ_VDRIFT",
      "type": "Float",
      "default": 0.2,
      "group": "EKF2",
      "shortDesc": "Maximum vertical drift speed to use GPS",
      "min": 0.1,
      "max": 1.5,
      "units": "m/s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_RNG_AID",
      "type": "Int32",
      "default": 0,
      "group": "EKF2",
      "shortDesc": "Range sensor aid",
      "longDesc": "If this parameter is enabled then the estimator will make use of the range finder measurements to estimate it's height even if range sensor is not the primary height source. It will only do so if conditions for range measurement fusion are met. This enables the range finder to be used during low speed and low altitude operation, eg takeoff and landing, where baro interference from rotor wash is excessive and can corrupt EKF state estimates. It is intended to be used where a vertical takeoff and landing is performed, and horizontal flight does not occur until above EKF2_RNG_A_HMAX. If vehicle motion causes repeated switching between the primary height sensor and range finder, an offset in the local position origin can accumulate. Also range finder measurements are less reliable and can experience unexpected errors. For these reasons, if accurate control of height relative to ground is required, it is recommended to use the MPC_ALT_MODE parameter instead, unless baro errors are severe enough to cause problems with landing and takeoff.",
      "values": [
        {
          "value": 0,
          "description": "Range aid disabled"
        },
        {
          "value": 1,
          "description": "Range aid enabled"
        }
      ]
    },
    {
      "name": "EKF2_RNG_A_HMAX",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Maximum absolute altitude (height above ground level) allowed for range aid mode",
      "longDesc": "If the vehicle absolute altitude exceeds this value then the estimator will not fuse range measurements to estimate it's height. This only applies when range aid mode is activated (EKF2_RNG_AID = enabled).",
      "min": 1.0,
      "max": 10.0,
      "units": "m"
    },
    {
      "name": "EKF2_RNG_A_IGATE",
      "type": "Float",
      "default": 1.0,
      "group": "EKF2",
      "shortDesc": "Gate size used for innovation consistency checks for range aid fusion",
      "longDesc": "A lower value means HAGL needs to be more stable in order to use range finder for height estimation in range aid mode",
      "min": 0.1,
      "max": 5.0,
      "units": "SD"
    },
    {
      "name": "EKF2_RNG_A_VMAX",
      "type": "Float",
      "default": 1.0,
      "group": "EKF2",
      "shortDesc": "Maximum horizontal velocity allowed for range aid mode",
      "longDesc": "If the vehicle horizontal speed exceeds this value then the estimator will not fuse range measurements to estimate it's height. This only applies when range aid mode is activated (EKF2_RNG_AID = enabled).",
      "min": 0.1,
      "max": 2.0,
      "units": "m/s"
    },
    {
      "name": "EKF2_RNG_DELAY",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Range finder measurement delay relative to IMU measurements",
      "min": 0.0,
      "max": 300.0,
      "units": "ms",
      "decimalPlaces": 1,
      "rebootRequired": true
    },
    {
      "name": "EKF2_RNG_GATE",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Gate size for range finder fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_RNG_NOISE",
      "type": "Float",
      "default": 0.1,
      "group": "EKF2",
      "shortDesc": "Measurement noise for range finder fusion",
      "min": 0.01,
      "units": "m",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_RNG_PITCH",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Range sensor pitch offset",
      "min": -0.75,
      "max": 0.75,
      "units": "rad",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_RNG_POS_X",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "X position of range finder origin in body frame (forward axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_RNG_POS_Y",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Y position of range finder origin in body frame (right axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_RNG_POS_Z",
      "type": "Float",
      "default": 0.0,
      "group": "EKF2",
      "shortDesc": "Z position of range finder origin in body frame (down axis with origin relative to vehicle centre of gravity)",
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "EKF2_RNG_SFE",
      "type": "Float",
      "default": 0.05,
      "group": "EKF2",
      "shortDesc": "Range finder range dependant noise scaler",
      "longDesc": "Specifies the increase in range finder noise with range.",
      "min": 0.0,
      "max": 0.2,
      "units": "m/m"
    },
    {
      "name": "EKF2_TAS_GATE",
      "type": "Float",
      "default": 3.0,
      "group": "EKF2",
      "shortDesc": "Gate size for TAS fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_TAU_POS",
      "type": "Float",
      "default": 0.25,
      "group": "EKF2",
      "shortDesc": "Time constant of the position output prediction and smoothing filter. Controls how tightly the output track the EKF states",
      "min": 0.1,
      "max": 1.0,
      "units": "s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_TAU_VEL",
      "type": "Float",
      "default": 0.25,
      "group": "EKF2",
      "shortDesc": "Time constant of the velocity output prediction and smoothing filter",
      "max": 1.0,
      "units": "s",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_TERR_GRAD",
      "type": "Float",
      "default": 0.5,
      "group": "EKF2",
      "shortDesc": "Magnitude of terrain gradient",
      "min": 0.0,
      "units": "m/m",
      "decimalPlaces": 2
    },
    {
      "name": "EKF2_TERR_MASK",
      "type": "Int32",
      "default": 3,
      "group": "EKF2",
      "shortDesc": "Integer bitmask controlling fusion sources of the terrain estimator",
      "longDesc": "Set bits in the following positions to enable: 0 : Set to true to use range finder data if available 1 : Set to true to use optical flow data if available",
      "min": 0,
      "max": 3,
      "bitmask": [
        {
          "index": 0,
          "description": "use range finder"
        },
        {
          "index": 1,
          "description": "use optical flow"
        }
      ]
    },
    {
      "name": "EKF2_TERR_NOISE",
      "type": "Float",
      "default": 5.0,
      "group": "EKF2",
      "shortDesc": "Terrain altitude process noise - accounts for instability in vehicle height estimate",
      "min": 0.5,
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "EKF2_WIND_NOISE",
      "type": "Float",
      "default": 0.1,
      "group": "EKF2",
      "shortDesc": "Process noise for wind velocity prediction",
      "min": 0.0,
      "max": 1.0,
      "units": "m/s^2",
      "decimalPlaces": 3
    },
    {
      "name": "EV_TSK_RC_LOSS",
      "type": "Int32",
      "default": 0,
      "group": "Events",
      "shortDesc": "RC Loss Alarm",
      "longDesc": "Enable/disable event task for RC Loss. When enabled, an alarm tune will be played via buzzer or ESCs, if supported. The alarm will sound after a disarm, if the vehicle was previously armed and only if the vehicle had RC signal at some point. Particularly useful for locating crashed drones without a GPS sensor.",
      "rebootRequired": true
    },
    {
      "name": "EV_TSK_STAT_DIS",
      "type": "Int32",
      "default": 0,
      "group": "Events",
      "shortDesc": "Status Display",
      "longDesc": "Enable/disable event task for displaying the vehicle status using arm-mounted LEDs. When enabled and if the vehicle supports it, LEDs will flash indicating various vehicle status changes. Currently PX4 has not implemented any specific status events. -",
      "rebootRequired": true
    },
    {
      "name": "FW_ACRO_X_MAX",
      "type": "Float",
      "default": 90.0,
      "group": "FW Attitude Control",
      "shortDesc": "Acro body x max rate",
      "longDesc": "This is the rate the controller is trying to achieve if the user applies full roll stick input in acro mode.",
      "min": 45.0,
      "max": 720.0,
      "units": "deg"
    },
    {
      "name": "FW_ACRO_Y_MAX",
      "type": "Float",
      "default": 90.0,
      "group": "FW Attitude Control",
      "shortDesc": "Acro body y max rate",
      "longDesc": "This is the body y rate the controller is trying to achieve if the user applies full pitch stick input in acro mode.",
      "min": 45.0,
      "max": 720.0,
      "units": "deg"
    },
    {
      "name": "FW_ACRO_Z_MAX",
      "type": "Float",
      "default": 45.0,
      "group": "FW Attitude Control",
      "shortDesc": "Acro body z max rate",
      "longDesc": "This is the body z rate the controller is trying to achieve if the user applies full yaw stick input in acro mode.",
      "min": 10.0,
      "max": 180.0,
      "units": "deg"
    },
    {
      "name": "FW_ARSP_MODE",
      "type": "Int32",
      "default": 0,
      "group": "FW Attitude Control",
      "shortDesc": "Airspeed mode",
      "longDesc": "For small wings or VTOL without airspeed sensor this parameter can be used to enable flying without an airspeed reading",
      "values": [
        {
          "value": 0,
          "description": "Normal (use airspeed if available)"
        },
        {
          "value": 1,
          "description": "Airspeed disabled"
        }
      ]
    },
    {
      "name": "FW_ARSP_SCALE_EN",
      "type": "Int32",
      "default": 1,
      "group": "FW Attitude Control",
      "shortDesc": "Enable airspeed scaling",
      "longDesc": "This enables a logic that automatically adjusts the output of the rate controller to take into account the real torque produced by an aerodynamic control surface given the current deviation from the trim airspeed (FW_AIRSPD_TRIM). Enable when using aerodynamic control surfaces (e.g.: plane) Disable when using rotor wings (e.g.: autogyro)"
    },
    {
      "name": "FW_BAT_SCALE_EN",
      "type": "Int32",
      "default": 0,
      "group": "FW Attitude Control",
      "shortDesc": "Whether to scale throttle by battery power level",
      "longDesc": "This compensates for voltage drop of the battery over time by attempting to normalize performance across the operating range of the battery. The fixed wing should constantly behave as if it was fully charged with reduced max thrust at lower battery percentages. i.e. if cruise speed is at 0.5 throttle at 100% battery, it will still be 0.5 at 60% battery."
    },
    {
      "name": "FW_DTRIM_P_FLPS",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Pitch trim increment for flaps configuration",
      "longDesc": "This increment is added to the pitch trim whenever flaps are fully deployed.",
      "min": -0.25,
      "max": 0.25,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_DTRIM_P_VMAX",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Pitch trim increment at maximum airspeed",
      "longDesc": "This increment is added to TRIM_PITCH when airspeed is FW_AIRSPD_MAX.",
      "min": -0.25,
      "max": 0.25,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_DTRIM_P_VMIN",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Pitch trim increment at minimum airspeed",
      "longDesc": "This increment is added to TRIM_PITCH when airspeed is FW_AIRSPD_MIN.",
      "min": -0.25,
      "max": 0.25,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_DTRIM_R_FLPS",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Roll trim increment for flaps configuration",
      "longDesc": "This increment is added to TRIM_ROLL whenever flaps are fully deployed.",
      "min": -0.25,
      "max": 0.25,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_DTRIM_R_VMAX",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Roll trim increment at maximum airspeed",
      "longDesc": "This increment is added to TRIM_ROLL when airspeed is FW_AIRSPD_MAX.",
      "min": -0.25,
      "max": 0.25,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_DTRIM_R_VMIN",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Roll trim increment at minimum airspeed",
      "longDesc": "This increment is added to TRIM_ROLL when airspeed is FW_AIRSPD_MIN.",
      "min": -0.25,
      "max": 0.25,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_DTRIM_Y_VMAX",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Yaw trim increment at maximum airspeed",
      "longDesc": "This increment is added to TRIM_YAW when airspeed is FW_AIRSPD_MAX.",
      "min": -0.25,
      "max": 0.25,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_DTRIM_Y_VMIN",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Yaw trim increment at minimum airspeed",
      "longDesc": "This increment is added to TRIM_YAW when airspeed is FW_AIRSPD_MIN.",
      "min": -0.25,
      "max": 0.25,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_FLAPERON_SCL",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Scale factor for flaperons",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_FLAPS_LND_SCL",
      "type": "Float",
      "default": 1.0,
      "group": "FW Attitude Control",
      "shortDesc": "Flaps setting during landing",
      "longDesc": "Sets a fraction of full flaps (FW_FLAPS_SCL) during landing",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_FLAPS_SCL",
      "type": "Float",
      "default": 1.0,
      "group": "FW Attitude Control",
      "shortDesc": "Scale factor for flaps",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_FLAPS_TO_SCL",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Flaps setting during take-off",
      "longDesc": "Sets a fraction of full flaps (FW_FLAPS_SCL) during take-off",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_MAN_P_MAX",
      "type": "Float",
      "default": 45.0,
      "group": "FW Attitude Control",
      "shortDesc": "Max manual pitch",
      "longDesc": "Max pitch for manual control in attitude stabilized mode",
      "min": 0.0,
      "max": 90.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_MAN_P_SC",
      "type": "Float",
      "default": 1.0,
      "group": "FW Attitude Control",
      "shortDesc": "Manual pitch scale",
      "longDesc": "Scale factor applied to the desired pitch actuator command in full manual mode. This parameter allows to adjust the throws of the control surfaces.",
      "min": 0.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_MAN_R_MAX",
      "type": "Float",
      "default": 45.0,
      "group": "FW Attitude Control",
      "shortDesc": "Max manual roll",
      "longDesc": "Max roll for manual control in attitude stabilized mode",
      "min": 0.0,
      "max": 90.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_MAN_R_SC",
      "type": "Float",
      "default": 1.0,
      "group": "FW Attitude Control",
      "shortDesc": "Manual roll scale",
      "longDesc": "Scale factor applied to the desired roll actuator command in full manual mode. This parameter allows to adjust the throws of the control surfaces.",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_MAN_Y_SC",
      "type": "Float",
      "default": 1.0,
      "group": "FW Attitude Control",
      "shortDesc": "Manual yaw scale",
      "longDesc": "Scale factor applied to the desired yaw actuator command in full manual mode. This parameter allows to adjust the throws of the control surfaces.",
      "min": 0.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_PR_FF",
      "type": "Float",
      "default": 0.5,
      "group": "FW Attitude Control",
      "shortDesc": "Pitch rate feed forward",
      "longDesc": "Direct feed forward from rate setpoint to control surface output",
      "min": 0.0,
      "max": 10.0,
      "units": "%/rad/s",
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_PR_I",
      "type": "Float",
      "default": 0.1,
      "group": "FW Attitude Control",
      "shortDesc": "Pitch rate integrator gain",
      "longDesc": "This gain defines how much control response will result out of a steady state error. It trims any constant error.",
      "min": 0.005,
      "max": 0.5,
      "units": "%/rad",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "FW_PR_IMAX",
      "type": "Float",
      "default": 0.4,
      "group": "FW Attitude Control",
      "shortDesc": "Pitch rate integrator limit",
      "longDesc": "The portion of the integrator part in the control surface deflection is limited to this value",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_PR_P",
      "type": "Float",
      "default": 0.08,
      "group": "FW Attitude Control",
      "shortDesc": "Pitch rate proportional gain",
      "longDesc": "This defines how much the elevator input will be commanded depending on the current body angular rate error.",
      "min": 0.005,
      "max": 1.0,
      "units": "%/rad/s",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "FW_PSP_OFF",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Pitch setpoint offset",
      "longDesc": "An airframe specific offset of the pitch setpoint in degrees, the value is added to the pitch setpoint and should correspond to the typical cruise speed of the airframe.",
      "min": -90.0,
      "max": 90.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_P_RMAX_NEG",
      "type": "Float",
      "default": 60.0,
      "group": "FW Attitude Control",
      "shortDesc": "Maximum negative / down pitch rate",
      "longDesc": "This limits the maximum pitch down up angular rate the controller will output (in degrees per second).",
      "min": 0.0,
      "max": 90.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_P_RMAX_POS",
      "type": "Float",
      "default": 60.0,
      "group": "FW Attitude Control",
      "shortDesc": "Maximum positive / up pitch rate",
      "longDesc": "This limits the maximum pitch up angular rate the controller will output (in degrees per second).",
      "min": 0.0,
      "max": 90.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_P_TC",
      "type": "Float",
      "default": 0.4,
      "group": "FW Attitude Control",
      "shortDesc": "Attitude pitch time constant",
      "longDesc": "This defines the latency between a pitch step input and the achieved setpoint (inverse to a P gain). Half a second is a good start value and fits for most average systems. Smaller systems may require smaller values, but as this will wear out servos faster, the value should only be decreased as needed.",
      "min": 0.2,
      "max": 1.0,
      "units": "s",
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_RATT_TH",
      "type": "Float",
      "default": 0.8,
      "group": "FW Attitude Control",
      "shortDesc": "Threshold for Rattitude mode",
      "longDesc": "Manual input needed in order to override attitude control rate setpoints and instead pass manual stick inputs as rate setpoints",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_RLL_TO_YAW_FF",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Roll control to yaw control feedforward gain",
      "longDesc": "This gain can be used to counteract the \"adverse yaw\" effect for fixed wings. When the plane enters a roll it will tend to yaw the nose out of the turn. This gain enables the use of a yaw actuator (rudder, airbrakes, ...) to counteract this effect.",
      "min": 0.0,
      "decimalPlaces": 1,
      "increment": 0.01
    },
    {
      "name": "FW_RR_FF",
      "type": "Float",
      "default": 0.5,
      "group": "FW Attitude Control",
      "shortDesc": "Roll rate feed forward",
      "longDesc": "Direct feed forward from rate setpoint to control surface output. Use this to obtain a tigher response of the controller without introducing noise amplification.",
      "min": 0.0,
      "max": 10.0,
      "units": "%/rad/s",
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_RR_I",
      "type": "Float",
      "default": 0.1,
      "group": "FW Attitude Control",
      "shortDesc": "Roll rate integrator Gain",
      "longDesc": "This gain defines how much control response will result out of a steady state error. It trims any constant error.",
      "min": 0.005,
      "max": 0.2,
      "units": "%/rad",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "FW_RR_IMAX",
      "type": "Float",
      "default": 0.2,
      "group": "FW Attitude Control",
      "shortDesc": "Roll integrator anti-windup",
      "longDesc": "The portion of the integrator part in the control surface deflection is limited to this value.",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_RR_P",
      "type": "Float",
      "default": 0.05,
      "group": "FW Attitude Control",
      "shortDesc": "Roll rate proportional Gain",
      "longDesc": "This defines how much the aileron input will be commanded depending on the current body angular rate error.",
      "min": 0.005,
      "max": 1.0,
      "units": "%/rad/s",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "FW_RSP_OFF",
      "type": "Float",
      "default": 0.0,
      "group": "FW Attitude Control",
      "shortDesc": "Roll setpoint offset",
      "longDesc": "An airframe specific offset of the roll setpoint in degrees, the value is added to the roll setpoint and should correspond to the typical cruise speed of the airframe.",
      "min": -90.0,
      "max": 90.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_R_RMAX",
      "type": "Float",
      "default": 70.0,
      "group": "FW Attitude Control",
      "shortDesc": "Maximum roll rate",
      "longDesc": "This limits the maximum roll rate the controller will output (in degrees per second).",
      "min": 0.0,
      "max": 90.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_R_TC",
      "type": "Float",
      "default": 0.4,
      "group": "FW Attitude Control",
      "shortDesc": "Attitude Roll Time Constant",
      "longDesc": "This defines the latency between a roll step input and the achieved setpoint (inverse to a P gain). Half a second is a good start value and fits for most average systems. Smaller systems may require smaller values, but as this will wear out servos faster, the value should only be decreased as needed.",
      "min": 0.4,
      "max": 1.0,
      "units": "s",
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_WR_FF",
      "type": "Float",
      "default": 0.2,
      "group": "FW Attitude Control",
      "shortDesc": "Wheel steering rate feed forward",
      "longDesc": "Direct feed forward from rate setpoint to control surface output",
      "min": 0.0,
      "max": 10.0,
      "units": "%/rad/s",
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_WR_I",
      "type": "Float",
      "default": 0.1,
      "group": "FW Attitude Control",
      "shortDesc": "Wheel steering rate integrator gain",
      "longDesc": "This gain defines how much control response will result out of a steady state error. It trims any constant error.",
      "min": 0.005,
      "max": 0.5,
      "units": "%/rad",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "FW_WR_IMAX",
      "type": "Float",
      "default": 1.0,
      "group": "FW Attitude Control",
      "shortDesc": "Wheel steering rate integrator limit",
      "longDesc": "The portion of the integrator part in the control surface deflection is limited to this value",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_WR_P",
      "type": "Float",
      "default": 0.5,
      "group": "FW Attitude Control",
      "shortDesc": "Wheel steering rate proportional gain",
      "longDesc": "This defines how much the wheel steering input will be commanded depending on the current body angular rate error.",
      "min": 0.005,
      "max": 1.0,
      "units": "%/rad/s",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "FW_W_EN",
      "type": "Int32",
      "default": 0,
      "group": "FW Attitude Control",
      "shortDesc": "Enable wheel steering controller"
    },
    {
      "name": "FW_W_RMAX",
      "type": "Float",
      "default": 30.0,
      "group": "FW Attitude Control",
      "shortDesc": "Maximum wheel steering rate",
      "longDesc": "This limits the maximum wheel steering rate the controller will output (in degrees per second).",
      "min": 0.0,
      "max": 90.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_YR_FF",
      "type": "Float",
      "default": 0.3,
      "group": "FW Attitude Control",
      "shortDesc": "Yaw rate feed forward",
      "longDesc": "Direct feed forward from rate setpoint to control surface output",
      "min": 0.0,
      "max": 10.0,
      "units": "%/rad/s",
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_YR_I",
      "type": "Float",
      "default": 0.1,
      "group": "FW Attitude Control",
      "shortDesc": "Yaw rate integrator gain",
      "longDesc": "This gain defines how much control response will result out of a steady state error. It trims any constant error.",
      "min": 0.0,
      "max": 50.0,
      "units": "%/rad",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_YR_IMAX",
      "type": "Float",
      "default": 0.2,
      "group": "FW Attitude Control",
      "shortDesc": "Yaw rate integrator limit",
      "longDesc": "The portion of the integrator part in the control surface deflection is limited to this value",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_YR_P",
      "type": "Float",
      "default": 0.05,
      "group": "FW Attitude Control",
      "shortDesc": "Yaw rate proportional gain",
      "longDesc": "This defines how much the rudder input will be commanded depending on the current body angular rate error.",
      "min": 0.005,
      "max": 1.0,
      "units": "%/rad/s",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "FW_Y_RMAX",
      "type": "Float",
      "default": 50.0,
      "group": "FW Attitude Control",
      "shortDesc": "Maximum yaw rate",
      "longDesc": "This limits the maximum yaw rate the controller will output (in degrees per second).",
      "min": 0.0,
      "max": 90.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_CLMBOUT_DIFF",
      "type": "Float",
      "default": 10.0,
      "group": "FW L1 Control",
      "shortDesc": "Climbout Altitude difference",
      "longDesc": "If the altitude error exceeds this parameter, the system will climb out with maximum throttle and minimum airspeed until it is closer than this distance to the desired altitude. Mostly used for takeoff waypoints / modes. Set to 0 to disable climbout mode (not recommended).",
      "min": 0.0,
      "max": 150.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_L1_DAMPING",
      "type": "Float",
      "default": 0.75,
      "group": "FW L1 Control",
      "shortDesc": "L1 damping",
      "longDesc": "Damping factor for L1 control.",
      "min": 0.6,
      "max": 0.9,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_L1_PERIOD",
      "type": "Float",
      "default": 20.0,
      "group": "FW L1 Control",
      "shortDesc": "L1 period",
      "longDesc": "This is the L1 distance and defines the tracking point ahead of the aircraft its following. A value of 18-25 meters works for most aircraft. Shorten slowly during tuning until response is sharp without oscillation.",
      "min": 12.0,
      "max": 50.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_L1_R_SLEW_MAX",
      "type": "Float",
      "default": 90.0,
      "group": "FW L1 Control",
      "shortDesc": "L1 controller roll slew rate limit",
      "longDesc": "The maxium change in roll angle setpoint per second.",
      "min": 0.0,
      "units": "deg/s",
      "increment": 1.0
    },
    {
      "name": "FW_LND_AIRSPD_SC",
      "type": "Float",
      "default": 1.3,
      "group": "FW L1 Control",
      "shortDesc": "Min. airspeed scaling factor for landing",
      "longDesc": "Multiplying this factor with the minimum airspeed of the plane gives the target airspeed the landing approach. FW_AIRSPD_MIN * FW_LND_AIRSPD_SC",
      "min": 1.0,
      "max": 1.5,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_LND_ANG",
      "type": "Float",
      "default": 5.0,
      "group": "FW L1 Control",
      "shortDesc": "Landing slope angle",
      "min": 1.0,
      "max": 15.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_LND_EARLYCFG",
      "type": "Int32",
      "default": 0,
      "group": "FW L1 Control",
      "shortDesc": "Early landing configuration deployment",
      "longDesc": "When disabled, the landing configuration (flaps, landing airspeed, etc.) is only activated on the final approach to landing. When enabled, it is already activated when entering the final loiter-down (loiter-to-alt) waypoint before the landing approach. This shifts the (often large) altitude and airspeed errors caused by the configuration change away from the ground such that these are not so critical. It also gives the controller enough time to adapt to the new configuration such that the landing approach starts with a cleaner initial state."
    },
    {
      "name": "FW_LND_FLALT",
      "type": "Float",
      "default": 3.0,
      "group": "FW L1 Control",
      "shortDesc": "Landing flare altitude (relative to landing altitude)",
      "min": 0.0,
      "max": 25.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_LND_FL_PMAX",
      "type": "Float",
      "default": 15.0,
      "group": "FW L1 Control",
      "shortDesc": "Flare, maximum pitch",
      "longDesc": "Maximum pitch during flare, a positive sign means nose up Applied once FW_LND_FLALT is reached",
      "min": 0.0,
      "max": 45.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_LND_FL_PMIN",
      "type": "Float",
      "default": 2.5,
      "group": "FW L1 Control",
      "shortDesc": "Flare, minimum pitch",
      "longDesc": "Minimum pitch during flare, a positive sign means nose up Applied once FW_LND_FLALT is reached",
      "min": 0.0,
      "max": 15.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_LND_HHDIST",
      "type": "Float",
      "default": 15.0,
      "group": "FW L1 Control",
      "shortDesc": "Landing heading hold horizontal distance.\nSet to 0 to disable heading hold",
      "min": 0.0,
      "max": 30.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_LND_HVIRT",
      "type": "Float",
      "default": 10.0,
      "group": "FW L1 Control",
      "shortDesc": "FW_LND_HVIRT",
      "min": 1.0,
      "max": 15.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_LND_THRTC_SC",
      "type": "Float",
      "default": 1.0,
      "group": "FW L1 Control",
      "shortDesc": "Throttle time constant factor for landing",
      "longDesc": "Set this parameter to less than 1.0 to make the TECS throttle loop react faster during landing than during normal flight (i.e. giving efficiency and low motor wear at high altitudes but control accuracy during landing). During landing, the TECS throttle time constant (FW_T_THRO_CONST) is multiplied by this value.",
      "min": 0.2,
      "max": 1.0,
      "units": "",
      "increment": 0.1
    },
    {
      "name": "FW_LND_TLALT",
      "type": "Float",
      "default": -1.0,
      "group": "FW L1 Control",
      "shortDesc": "Landing throttle limit altitude (relative landing altitude)",
      "longDesc": "Default of -1.0 lets the system default to applying throttle limiting at 2/3 of the flare altitude.",
      "min": -1.0,
      "max": 30.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_LND_USETER",
      "type": "Int32",
      "default": 0,
      "group": "FW L1 Control",
      "shortDesc": "Use terrain estimate during landing",
      "longDesc": "This is turned off by default and a waypoint or return altitude is normally used (or sea level for an arbitrary land position)."
    },
    {
      "name": "FW_P_LIM_MAX",
      "type": "Float",
      "default": 45.0,
      "group": "FW L1 Control",
      "shortDesc": "Positive pitch limit",
      "longDesc": "The maximum positive pitch the controller will output.",
      "min": 0.0,
      "max": 60.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_P_LIM_MIN",
      "type": "Float",
      "default": -45.0,
      "group": "FW L1 Control",
      "shortDesc": "Negative pitch limit",
      "longDesc": "The minimum negative pitch the controller will output.",
      "min": -60.0,
      "max": 0.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_R_LIM",
      "type": "Float",
      "default": 50.0,
      "group": "FW L1 Control",
      "shortDesc": "Controller roll limit",
      "longDesc": "The maximum roll the controller will output.",
      "min": 35.0,
      "max": 65.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_THR_ALT_SCL",
      "type": "Float",
      "default": 0.0,
      "group": "FW L1 Control",
      "shortDesc": "Scale throttle by pressure change",
      "longDesc": "Automatically adjust throttle to account for decreased air density at higher altitudes. Start with a scale factor of 1.0 and adjust for different propulsion systems. When flying without airspeed sensor this will help to keep a constant performance over large altitude ranges. The default value of 0 will disable scaling.",
      "min": 0.0,
      "max": 10.0,
      "decimalPlaces": 1,
      "increment": 0.1
    },
    {
      "name": "FW_THR_CRUISE",
      "type": "Float",
      "default": 0.6,
      "group": "FW L1 Control",
      "shortDesc": "Cruise throttle",
      "longDesc": "This is the throttle setting required to achieve the desired cruise speed. Most airframes have a value of 0.5-0.7.",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_THR_IDLE",
      "type": "Float",
      "default": 0.15,
      "group": "FW L1 Control",
      "shortDesc": "Idle throttle",
      "longDesc": "This is the minimum throttle while on the ground For aircraft with internal combustion engine this parameter should be set above desired idle rpm.",
      "min": 0.0,
      "max": 0.4,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_THR_LND_MAX",
      "type": "Float",
      "default": 1.0,
      "group": "FW L1 Control",
      "shortDesc": "Throttle limit during landing below throttle limit altitude",
      "longDesc": "During the flare of the autonomous landing process, this value will be set as throttle limit when the aircraft altitude is below FW_LND_TLALT.",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_THR_MAX",
      "type": "Float",
      "default": 1.0,
      "group": "FW L1 Control",
      "shortDesc": "Throttle limit max",
      "longDesc": "This is the maximum throttle % that can be used by the controller. For overpowered aircraft, this should be reduced to a value that provides sufficient thrust to climb at the maximum pitch angle PTCH_MAX.",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_THR_MIN",
      "type": "Float",
      "default": 0.0,
      "group": "FW L1 Control",
      "shortDesc": "Throttle limit min",
      "longDesc": "This is the minimum throttle % that can be used by the controller. For electric aircraft this will normally be set to zero, but can be set to a small non-zero value if a folding prop is fitted to prevent the prop from folding and unfolding repeatedly in-flight or to provide some aerodynamic drag from a turning prop to improve the descent rate. For aircraft with internal combustion engine this parameter should be set for desired idle rpm.",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_THR_SLEW_MAX",
      "type": "Float",
      "default": 0.0,
      "group": "FW L1 Control",
      "shortDesc": "Throttle max slew rate",
      "longDesc": "Maximum slew rate for the commanded throttle",
      "min": 0.0,
      "max": 1.0
    },
    {
      "name": "LAUN_ALL_ON",
      "type": "Int32",
      "default": 0,
      "group": "FW Launch detection",
      "shortDesc": "Launch detection"
    },
    {
      "name": "LAUN_CAT_A",
      "type": "Float",
      "default": 30.0,
      "group": "FW Launch detection",
      "shortDesc": "Catapult accelerometer threshold",
      "longDesc": "LAUN_CAT_A for LAUN_CAT_T serves as threshold to trigger launch detection.",
      "min": 0.0,
      "units": "m/s^2",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "LAUN_CAT_MDEL",
      "type": "Float",
      "default": 0.0,
      "group": "FW Launch detection",
      "shortDesc": "Motor delay",
      "longDesc": "Delay between starting attitude control and powering up the throttle (giving throttle control to the controller) Before this timespan is up the throttle will be set to FW_THR_IDLE, set to 0 to deactivate",
      "min": 0.0,
      "max": 10.0,
      "units": "s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "LAUN_CAT_PMAX",
      "type": "Float",
      "default": 30.0,
      "group": "FW Launch detection",
      "shortDesc": "Maximum pitch before the throttle is powered up (during motor delay phase)",
      "longDesc": "This is an extra limit for the maximum pitch which is imposed in the phase before the throttle turns on. This allows to limit the maximum pitch angle during a bungee launch (make the launch less steep).",
      "min": 0.0,
      "max": 45.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "LAUN_CAT_T",
      "type": "Float",
      "default": 0.05,
      "group": "FW Launch detection",
      "shortDesc": "Catapult time threshold",
      "longDesc": "LAUN_CAT_A for LAUN_CAT_T serves as threshold to trigger launch detection.",
      "min": 0.0,
      "max": 5.0,
      "units": "s",
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_AIRSPD_MAX",
      "type": "Float",
      "default": 20.0,
      "group": "FW TECS",
      "shortDesc": "Maximum Airspeed",
      "longDesc": "If the airspeed is above this value, the TECS controller will try to decrease airspeed more aggressively.",
      "min": 0.0,
      "max": 40.0,
      "units": "m/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_AIRSPD_MIN",
      "type": "Float",
      "default": 10.0,
      "group": "FW TECS",
      "shortDesc": "Minimum Airspeed",
      "longDesc": "If the airspeed falls below this value, the TECS controller will try to increase airspeed more aggressively.",
      "min": 0.0,
      "max": 40.0,
      "units": "m/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_AIRSPD_TRIM",
      "type": "Float",
      "default": 15.0,
      "group": "FW TECS",
      "shortDesc": "Cruise Airspeed",
      "longDesc": "The fixed wing controller tries to fly at this airspeed.",
      "min": 0.0,
      "max": 40.0,
      "units": "m/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_GND_SPD_MIN",
      "type": "Float",
      "default": 5.0,
      "group": "FW TECS",
      "shortDesc": "Minimum groundspeed",
      "longDesc": "The controller will increase the commanded airspeed to maintain this minimum groundspeed to the next waypoint.",
      "min": 0.0,
      "max": 40.0,
      "units": "m/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_T_CLMB_MAX",
      "type": "Float",
      "default": 5.0,
      "group": "FW TECS",
      "shortDesc": "Maximum climb rate",
      "longDesc": "This is the best climb rate that the aircraft can achieve with the throttle set to THR_MAX and the airspeed set to the default value. For electric aircraft make sure this number can be achieved towards the end of flight when the battery voltage has reduced. The setting of this parameter can be checked by commanding a positive altitude change of 100m in loiter, RTL or guided mode. If the throttle required to climb is close to THR_MAX and the aircraft is maintaining airspeed, then this parameter is set correctly. If the airspeed starts to reduce, then the parameter is set to high, and if the throttle demand required to climb and maintain speed is noticeably less than FW_THR_MAX, then either FW_T_CLMB_MAX should be increased or FW_THR_MAX reduced.",
      "min": 1.0,
      "max": 15.0,
      "units": "m/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_T_HRATE_FF",
      "type": "Float",
      "default": 0.8,
      "group": "FW TECS",
      "shortDesc": "Height rate feed forward",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_T_HRATE_P",
      "type": "Float",
      "default": 0.05,
      "group": "FW TECS",
      "shortDesc": "Height rate proportional factor",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_T_INTEG_GAIN",
      "type": "Float",
      "default": 0.1,
      "group": "FW TECS",
      "shortDesc": "Integrator gain",
      "longDesc": "This is the integrator gain on the control loop. Increasing this gain increases the speed at which speed and height offsets are trimmed out, but reduces damping and increases overshoot. Set this value to zero to completely disable all integrator action.",
      "min": 0.0,
      "max": 2.0,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "FW_T_PTCH_DAMP",
      "type": "Float",
      "default": 0.0,
      "group": "FW TECS",
      "shortDesc": "Pitch damping factor",
      "longDesc": "This is the damping gain for the pitch demand loop. Increase to add damping to correct for oscillations in height. The default value of 0.0 will work well provided the pitch to servo controller has been tuned properly.",
      "min": 0.0,
      "max": 2.0,
      "decimalPlaces": 1,
      "increment": 0.1
    },
    {
      "name": "FW_T_RLL2THR",
      "type": "Float",
      "default": 15.0,
      "group": "FW TECS",
      "shortDesc": "Roll -> Throttle feedforward",
      "longDesc": "Increasing this gain turn increases the amount of throttle that will be used to compensate for the additional drag created by turning. Ideally this should be set to  approximately 10 x the extra sink rate in m/s created by a 45 degree bank turn. Increase this gain if the aircraft initially loses energy in turns and reduce if the aircraft initially gains energy in turns. Efficient high aspect-ratio aircraft (eg powered sailplanes) can use a lower value, whereas inefficient low aspect-ratio models (eg delta wings) can use a higher value.",
      "min": 0.0,
      "max": 20.0,
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_T_SINK_MAX",
      "type": "Float",
      "default": 5.0,
      "group": "FW TECS",
      "shortDesc": "Maximum descent rate",
      "longDesc": "This sets the maximum descent rate that the controller will use. If this value is too large, the aircraft can over-speed on descent. This should be set to a value that can be achieved without exceeding the lower pitch angle limit and without over-speeding the aircraft.",
      "min": 1.0,
      "max": 15.0,
      "units": "m/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_T_SINK_MIN",
      "type": "Float",
      "default": 2.0,
      "group": "FW TECS",
      "shortDesc": "Minimum descent rate",
      "longDesc": "This is the sink rate of the aircraft with the throttle set to THR_MIN and flown at the same airspeed as used to measure FW_T_CLMB_MAX.",
      "min": 1.0,
      "max": 5.0,
      "units": "m/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_T_SPDWEIGHT",
      "type": "Float",
      "default": 1.0,
      "group": "FW TECS",
      "shortDesc": "Speed <--> Altitude priority",
      "longDesc": "This parameter adjusts the amount of weighting that the pitch control applies to speed vs height errors. Setting it to 0.0 will cause the pitch control to control height and ignore speed errors. This will normally improve height accuracy but give larger airspeed errors. Setting it to 2.0 will cause the pitch control loop to control speed and ignore height errors. This will normally reduce airspeed errors, but give larger height errors. The default value of 1.0 allows the pitch control to simultaneously control height and speed. Note to Glider Pilots - set this parameter to 2.0 (The glider will adjust its pitch angle to maintain airspeed, ignoring changes in height).",
      "min": 0.0,
      "max": 2.0,
      "decimalPlaces": 1,
      "increment": 1.0
    },
    {
      "name": "FW_T_SPD_OMEGA",
      "type": "Float",
      "default": 2.0,
      "group": "FW TECS",
      "shortDesc": "Complementary filter \"omega\" parameter for speed",
      "longDesc": "This is the cross-over frequency (in radians/second) of the complementary filter used to fuse longitudinal acceleration and airspeed to obtain an improved airspeed estimate. Increasing this frequency weights the solution more towards use of the airspeed sensor, whilst reducing it weights the solution more towards use of the accelerometer data.",
      "min": 1.0,
      "max": 10.0,
      "units": "rad/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_T_SRATE_P",
      "type": "Float",
      "default": 0.02,
      "group": "FW TECS",
      "shortDesc": "Speed rate P factor",
      "min": 0.0,
      "max": 2.0,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "FW_T_THRO_CONST",
      "type": "Float",
      "default": 8.0,
      "group": "FW TECS",
      "shortDesc": "TECS Throttle time constant",
      "longDesc": "This is the time constant of the TECS throttle control algorithm (in seconds). Smaller values make it faster to respond, larger values make it slower to respond.",
      "min": 1.0,
      "max": 10.0,
      "units": "s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_T_THR_DAMP",
      "type": "Float",
      "default": 0.5,
      "group": "FW TECS",
      "shortDesc": "Throttle damping factor",
      "longDesc": "This is the damping gain for the throttle demand loop. Increase to add damping to correct for oscillations in speed and height.",
      "min": 0.0,
      "max": 2.0,
      "decimalPlaces": 1,
      "increment": 0.1
    },
    {
      "name": "FW_T_TIME_CONST",
      "type": "Float",
      "default": 5.0,
      "group": "FW TECS",
      "shortDesc": "TECS time constant",
      "longDesc": "This is the time constant of the TECS control algorithm (in seconds). Smaller values make it faster to respond, larger values make it slower to respond.",
      "min": 1.0,
      "max": 10.0,
      "units": "s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FW_T_VERT_ACC",
      "type": "Float",
      "default": 7.0,
      "group": "FW TECS",
      "shortDesc": "Maximum vertical acceleration",
      "longDesc": "This is the maximum vertical acceleration (in m/s/s) either up or down that the controller will use to correct speed or height errors. The default value of 7 m/s/s (equivalent to +- 0.7 g) allows for reasonably aggressive pitch changes if required to recover from under-speed conditions.",
      "min": 1.0,
      "max": 10.0,
      "units": "m/s^2",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "FD_ESCS_EN",
      "type": "Int32",
      "default": 1,
      "group": "Failure Detector",
      "shortDesc": "Enable checks on ESCs that report their arming state.\nIf enabled, failure detector will verify that all the ESCs have successfully armed when the vehicle has transitioned to the armed state.\nTimeout for receiving an acknowledgement from the ESCs is 0.3s, if no feedback is received the failure detector will auto disarm the vehicle",
      "rebootRequired": true
    },
    {
      "name": "FD_EXT_ATS_EN",
      "type": "Int32",
      "default": 0,
      "group": "Failure Detector",
      "shortDesc": "Enable PWM input on AUX5 or MAIN5 (depending on board) for engaging failsafe from an external\nautomatic trigger system (ATS)",
      "longDesc": "External ATS is required by ASTM F3322-18.",
      "rebootRequired": true
    },
    {
      "name": "FD_EXT_ATS_TRIG",
      "type": "Int32",
      "default": 1900,
      "group": "Failure Detector",
      "shortDesc": "The PWM threshold from external automatic trigger system for engaging failsafe",
      "longDesc": "External ATS is required by ASTM F3322-18.",
      "units": "us",
      "decimalPlaces": 2
    },
    {
      "name": "FD_FAIL_P",
      "type": "Int32",
      "default": 60,
      "group": "Failure Detector",
      "shortDesc": "FailureDetector Max Pitch",
      "longDesc": "Maximum pitch angle before FailureDetector triggers the attitude_failure flag. The flag triggers flight termination (if @CBRK_FLIGHTTERM = 0), which sets outputs to their failsafe values. On takeoff the flag triggers lockdown (irrespective of @CBRK_FLIGHTTERM), which disarms motors but does not set outputs to failsafe values. Setting this parameter to 0 disables the check",
      "min": 60,
      "max": 180,
      "units": "deg"
    },
    {
      "name": "FD_FAIL_P_TTRI",
      "type": "Float",
      "default": 0.3,
      "group": "Failure Detector",
      "shortDesc": "Pitch failure trigger time",
      "longDesc": "Seconds (decimal) that pitch has to exceed FD_FAIL_P before being considered as a failure.",
      "min": 0.02,
      "max": 5.0,
      "units": "s",
      "decimalPlaces": 2
    },
    {
      "name": "FD_FAIL_R",
      "type": "Int32",
      "default": 60,
      "group": "Failure Detector",
      "shortDesc": "FailureDetector Max Roll",
      "longDesc": "Maximum roll angle before FailureDetector triggers the attitude_failure flag. The flag triggers flight termination (if @CBRK_FLIGHTTERM = 0), which sets outputs to their failsafe values. On takeoff the flag triggers lockdown (irrespective of @CBRK_FLIGHTTERM), which disarms motors but does not set outputs to failsafe values. Setting this parameter to 0 disables the check",
      "min": 60,
      "max": 180,
      "units": "deg"
    },
    {
      "name": "FD_FAIL_R_TTRI",
      "type": "Float",
      "default": 0.3,
      "group": "Failure Detector",
      "shortDesc": "Roll failure trigger time",
      "longDesc": "Seconds (decimal) that roll has to exceed FD_FAIL_R before being considered as a failure.",
      "min": 0.02,
      "max": 5.0,
      "units": "s",
      "decimalPlaces": 2
    },
    {
      "name": "NAV_FT_DST",
      "type": "Float",
      "default": 8.0,
      "group": "Follow target",
      "shortDesc": "Distance to follow target from",
      "longDesc": "The distance in meters to follow the target at",
      "min": 1.0,
      "units": "m"
    },
    {
      "name": "NAV_FT_FS",
      "type": "Int32",
      "default": 1,
      "group": "Follow target",
      "shortDesc": "Side to follow target from",
      "longDesc": "The side to follow the target from (front right = 0, behind = 1, front = 2, front left = 3)",
      "min": 0,
      "max": 3
    },
    {
      "name": "NAV_FT_RS",
      "type": "Float",
      "default": 0.5,
      "group": "Follow target",
      "shortDesc": "Dynamic filtering algorithm responsiveness to target movement\nlower numbers increase the responsiveness to changing long lat\nbut also ignore less noise",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2
    },
    {
      "name": "NAV_MIN_FT_HT",
      "type": "Float",
      "default": 8.0,
      "group": "Follow target",
      "shortDesc": "Minimum follow target altitude",
      "longDesc": "The minimum height in meters relative to home for following a target",
      "min": 8.0,
      "units": "m"
    },
    {
      "name": "GPS_DUMP_COMM",
      "type": "Int32",
      "default": 0,
      "group": "GPS",
      "shortDesc": "Dump GPS communication to a file",
      "longDesc": "If this is set to 1, all GPS communication data will be published via uORB, and written to the log file as gps_dump message.",
      "min": 0,
      "max": 1,
      "values": [
        {
          "value": 0,
          "description": "Disable"
        },
        {
          "value": 1,
          "description": "Enable"
        }
      ]
    },
    {
      "name": "GPS_UBX_DYNMODEL",
      "type": "Int32",
      "default": 7,
      "group": "GPS",
      "shortDesc": "u-blox GPS dynamic platform model",
      "longDesc": "u-blox receivers support different dynamic platform models to adjust the navigation engine to the expected application environment.",
      "min": 0,
      "max": 9,
      "rebootRequired": true,
      "values": [
        {
          "value": 2,
          "description": "stationary"
        },
        {
          "value": 4,
          "description": "automotive"
        },
        {
          "value": 6,
          "description": "airborne with <1g acceleration"
        },
        {
          "value": 7,
          "description": "airborne with <2g acceleration"
        },
        {
          "value": 8,
          "description": "airborne with <4g acceleration"
        }
      ]
    },
    {
      "name": "GPS_YAW_OFFSET",
      "type": "Float",
      "default": 0.0,
      "group": "GPS",
      "shortDesc": "Heading/Yaw offset for dual antenna GPS",
      "longDesc": "Heading offset angle for dual antenna GPS setups that support heading estimation. (currently only for the Trimble MB-Two). Set this to 0 if the antennas are parallel to the forward-facing direction of the vehicle and the first antenna is in front. The offset angle increases counterclockwise. Set this to 90 if the first antenna is placed on the right side and the second on the left side of the vehicle.",
      "min": 0.0,
      "max": 360.0,
      "units": "deg",
      "decimalPlaces": 0,
      "rebootRequired": true
    },
    {
      "name": "NAV_GPSF_LT",
      "type": "Float",
      "default": 0.0,
      "group": "GPS Failure Navigation",
      "shortDesc": "Loiter time",
      "longDesc": "The time in seconds the system should do open loop loiter and wait for GPS recovery before it goes into flight termination. Set to 0 to disable.",
      "min": 0.0,
      "max": 3600.0,
      "units": "s",
      "decimalPlaces": 0,
      "increment": 1.0
    },
    {
      "name": "NAV_GPSF_P",
      "type": "Float",
      "default": 0.0,
      "group": "GPS Failure Navigation",
      "shortDesc": "Fixed pitch angle",
      "longDesc": "Pitch in degrees during the open loop loiter",
      "min": -30.0,
      "max": 30.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "NAV_GPSF_R",
      "type": "Float",
      "default": 15.0,
      "group": "GPS Failure Navigation",
      "shortDesc": "Fixed bank angle",
      "longDesc": "Roll in degrees during the loiter",
      "min": 0.0,
      "max": 30.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "NAV_GPSF_TR",
      "type": "Float",
      "default": 0.0,
      "group": "GPS Failure Navigation",
      "shortDesc": "Thrust",
      "longDesc": "Thrust value which is set during the open loop loiter",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "GF_ACTION",
      "type": "Int32",
      "default": 1,
      "group": "Geofence",
      "shortDesc": "Geofence violation action",
      "longDesc": "Note: Setting this value to 4 enables flight termination, which will kill the vehicle on violation of the fence. Due to the inherent danger of this, this function is disabled using a software circuit breaker, which needs to be reset to 0 to really shut down the system.",
      "min": 0,
      "max": 5,
      "values": [
        {
          "value": 0,
          "description": "None"
        },
        {
          "value": 1,
          "description": "Warning"
        },
        {
          "value": 2,
          "description": "Hold mode"
        },
        {
          "value": 3,
          "description": "Return mode"
        },
        {
          "value": 4,
          "description": "Terminate"
        },
        {
          "value": 5,
          "description": "Land mode"
        }
      ]
    },
    {
      "name": "GF_ALTMODE",
      "type": "Int32",
      "default": 0,
      "group": "Geofence",
      "shortDesc": "Geofence altitude mode",
      "longDesc": "Select which altitude reference should be used 0 = WGS84, 1 = AMSL",
      "min": 0,
      "max": 1,
      "values": [
        {
          "value": 0,
          "description": "WGS84"
        },
        {
          "value": 1,
          "description": "AMSL"
        }
      ]
    },
    {
      "name": "GF_COUNT",
      "type": "Int32",
      "default": -1,
      "group": "Geofence",
      "shortDesc": "Geofence counter limit",
      "longDesc": "Set how many subsequent position measurements outside of the fence are needed before geofence violation is triggered",
      "min": -1,
      "max": 10,
      "increment": 1
    },
    {
      "name": "GF_MAX_HOR_DIST",
      "type": "Float",
      "default": 0.0,
      "group": "Geofence",
      "shortDesc": "Max horizontal distance in meters",
      "longDesc": "Maximum horizontal distance in meters the vehicle can be from home before triggering a geofence action. Disabled if 0.",
      "min": 0.0,
      "max": 10000.0,
      "units": "m",
      "increment": 1.0
    },
    {
      "name": "GF_MAX_VER_DIST",
      "type": "Float",
      "default": 0.0,
      "group": "Geofence",
      "shortDesc": "Max vertical distance in meters",
      "longDesc": "Maximum vertical distance in meters the vehicle can be from home before triggering a geofence action. Disabled if 0.",
      "min": 0.0,
      "max": 10000.0,
      "units": "m",
      "increment": 1.0
    },
    {
      "name": "GF_SOURCE",
      "type": "Int32",
      "default": 0,
      "group": "Geofence",
      "shortDesc": "Geofence source",
      "longDesc": "Select which position source should be used. Selecting GPS instead of global position makes sure that there is no dependence on the position estimator 0 = global position, 1 = GPS",
      "min": 0,
      "max": 1,
      "values": [
        {
          "value": 0,
          "description": "GPOS"
        },
        {
          "value": 1,
          "description": "GPS"
        }
      ]
    },
    {
      "name": "HTE_ACC_GATE",
      "type": "Float",
      "default": 3.0,
      "group": "Hover Thrust Estimator",
      "shortDesc": "Gate size for acceleration fusion",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 1.0,
      "max": 10.0,
      "units": "SD",
      "decimalPlaces": 1
    },
    {
      "name": "HTE_HT_ERR_INIT",
      "type": "Float",
      "default": 0.1,
      "group": "Hover Thrust Estimator",
      "shortDesc": "1-sigma initial hover thrust uncertainty",
      "longDesc": "Sets the number of standard deviations used by the innovation consistency test.",
      "min": 0.0,
      "max": 1.0,
      "units": "normalized_thrust",
      "decimalPlaces": 3
    },
    {
      "name": "HTE_HT_NOISE",
      "type": "Float",
      "default": 0.0005,
      "group": "Hover Thrust Estimator",
      "shortDesc": "Hover thrust process noise",
      "longDesc": "Reduce to make the hover thrust estimate more stable, increase if the real hover thrust is expected to change quickly over time.",
      "min": 0.0001,
      "max": 1.0,
      "units": "normalized_thrust/s",
      "decimalPlaces": 4
    },
    {
      "name": "LNDFW_AIRSPD_MAX",
      "type": "Float",
      "default": 8.0,
      "group": "Land Detector",
      "shortDesc": "Airspeed max",
      "longDesc": "Maximum airspeed allowed in the landed state (m/s)",
      "min": 4.0,
      "max": 20.0,
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "LNDFW_VEL_XY_MAX",
      "type": "Float",
      "default": 5.0,
      "group": "Land Detector",
      "shortDesc": "Fixedwing max horizontal velocity",
      "longDesc": "Maximum horizontal velocity allowed in the landed state (m/s)",
      "min": 0.5,
      "max": 10.0,
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "LNDFW_VEL_Z_MAX",
      "type": "Float",
      "default": 3.0,
      "group": "Land Detector",
      "shortDesc": "Fixedwing max climb rate",
      "longDesc": "Maximum vertical velocity allowed in the landed state (m/s up and down)",
      "min": 0.1,
      "max": 20.0,
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "LNDFW_XYACC_MAX",
      "type": "Float",
      "default": 8.0,
      "group": "Land Detector",
      "shortDesc": "Fixedwing max horizontal acceleration",
      "longDesc": "Maximum horizontal (x,y body axes) acceleration allowed in the landed state (m/s^2)",
      "min": 2.0,
      "max": 15.0,
      "units": "m/s^2",
      "decimalPlaces": 1
    },
    {
      "name": "LNDMC_ALT_MAX",
      "type": "Float",
      "default": -1.0,
      "group": "Land Detector",
      "shortDesc": "Maximum altitude for multicopters",
      "longDesc": "The system will obey this limit as a hard altitude limit. This setting will be consolidated with the GF_MAX_VER_DIST parameter. A negative value indicates no altitude limitation.",
      "min": -1.0,
      "max": 10000.0,
      "units": "m",
      "decimalPlaces": 2
    },
    {
      "name": "LNDMC_ROT_MAX",
      "type": "Float",
      "default": 20.0,
      "group": "Land Detector",
      "shortDesc": "Multicopter max rotation",
      "longDesc": "Maximum allowed angular velocity around each axis allowed in the landed state.",
      "units": "deg/s",
      "decimalPlaces": 1
    },
    {
      "name": "LNDMC_XY_VEL_MAX",
      "type": "Float",
      "default": 1.5,
      "group": "Land Detector",
      "shortDesc": "Multicopter max horizontal velocity",
      "longDesc": "Maximum horizontal velocity allowed in the landed state (m/s)",
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "LNDMC_Z_VEL_MAX",
      "type": "Float",
      "default": 0.5,
      "group": "Land Detector",
      "shortDesc": "Multicopter max climb rate",
      "longDesc": "Maximum vertical velocity allowed in the landed state (m/s up and down)",
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "LND_FLIGHT_T_HI",
      "type": "Int32",
      "default": 0,
      "group": "Land Detector",
      "category": "System",
      "volatile": true,
      "shortDesc": "Total flight time in microseconds",
      "longDesc": "Total flight time of this autopilot. Higher 32 bits of the value. Flight time in microseconds = (LND_FLIGHT_T_HI << 32) | LND_FLIGHT_T_LO.",
      "min": 0
    },
    {
      "name": "LND_FLIGHT_T_LO",
      "type": "Int32",
      "default": 0,
      "group": "Land Detector",
      "category": "System",
      "volatile": true,
      "shortDesc": "Total flight time in microseconds",
      "longDesc": "Total flight time of this autopilot. Lower 32 bits of the value. Flight time in microseconds = (LND_FLIGHT_T_HI << 32) | LND_FLIGHT_T_LO.",
      "min": 0
    },
    {
      "name": "LTEST_ACC_UNC",
      "type": "Float",
      "default": 10.0,
      "group": "Landing target Estimator",
      "shortDesc": "Acceleration uncertainty",
      "longDesc": "Variance of acceleration measurement used for landing target position prediction. Higher values results in tighter following of the measurements and more lenient outlier rejection",
      "min": 0.01,
      "units": "(m/s^2)^2",
      "decimalPlaces": 2
    },
    {
      "name": "LTEST_MEAS_UNC",
      "type": "Float",
      "default": 0.005,
      "group": "Landing target Estimator",
      "shortDesc": "Landing target measurement uncertainty",
      "longDesc": "Variance of the landing target measurement from the driver. Higher values results in less agressive following of the measurement and a smoother output as well as fewer rejected measurements.",
      "units": "tan(rad)^2",
      "decimalPlaces": 4
    },
    {
      "name": "LTEST_MODE",
      "type": "Int32",
      "default": 0,
      "group": "Landing target Estimator",
      "shortDesc": "Landing target mode",
      "longDesc": "Configure the mode of the landing target. Depending on the mode, the landing target observations are used differently to aid position estimation. Mode Moving:     The landing target may be moving around while in the field of view of the vehicle. Landing target measurements are not used to aid positioning. Mode Stationary: The landing target is stationary. Measured velocity w.r.t. the landing target is used to aid velocity estimation.",
      "min": 0,
      "max": 1,
      "values": [
        {
          "value": 0,
          "description": "Moving"
        },
        {
          "value": 1,
          "description": "Stationary"
        }
      ]
    },
    {
      "name": "LTEST_POS_UNC_IN",
      "type": "Float",
      "default": 0.1,
      "group": "Landing target Estimator",
      "shortDesc": "Initial landing target position uncertainty",
      "longDesc": "Initial variance of the relative landing target position in x and y direction",
      "min": 0.001,
      "units": "m^2",
      "decimalPlaces": 3
    },
    {
      "name": "LTEST_SCALE_X",
      "type": "Float",
      "default": 1.0,
      "group": "Landing target Estimator",
      "shortDesc": "Scale factor for sensor measurements in sensor x axis",
      "longDesc": "Landing target x measurements are scaled by this factor before being used",
      "min": 0.01,
      "decimalPlaces": 3
    },
    {
      "name": "LTEST_SCALE_Y",
      "type": "Float",
      "default": 1.0,
      "group": "Landing target Estimator",
      "shortDesc": "Scale factor for sensor measurements in sensor y axis",
      "longDesc": "Landing target y measurements are scaled by this factor before being used",
      "min": 0.01,
      "decimalPlaces": 3
    },
    {
      "name": "LTEST_VEL_UNC_IN",
      "type": "Float",
      "default": 0.1,
      "group": "Landing target Estimator",
      "shortDesc": "Initial landing target velocity uncertainty",
      "longDesc": "Initial variance of the relative landing target velocity in x and y direction",
      "min": 0.001,
      "units": "(m/s)^2",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_ACC_XY",
      "type": "Float",
      "default": 0.012,
      "group": "Local Position Estimator",
      "shortDesc": "Accelerometer xy noise density",
      "longDesc": "Data sheet noise density = 150ug/sqrt(Hz) = 0.0015 m/s^2/sqrt(Hz) Larger than data sheet to account for tilt error.",
      "min": 1e-05,
      "max": 2.0,
      "units": "m/s^2/sqrt(Hz)",
      "decimalPlaces": 4
    },
    {
      "name": "LPE_ACC_Z",
      "type": "Float",
      "default": 0.02,
      "group": "Local Position Estimator",
      "shortDesc": "Accelerometer z noise density",
      "longDesc": "Data sheet noise density = 150ug/sqrt(Hz) = 0.0015 m/s^2/sqrt(Hz)",
      "min": 1e-05,
      "max": 2.0,
      "units": "m/s^2/sqrt(Hz)",
      "decimalPlaces": 4
    },
    {
      "name": "LPE_BAR_Z",
      "type": "Float",
      "default": 3.0,
      "group": "Local Position Estimator",
      "shortDesc": "Barometric presssure altitude z standard deviation",
      "min": 0.01,
      "max": 100.0,
      "units": "m",
      "decimalPlaces": 2
    },
    {
      "name": "LPE_EPH_MAX",
      "type": "Float",
      "default": 3.0,
      "group": "Local Position Estimator",
      "shortDesc": "Max EPH allowed for GPS initialization",
      "min": 1.0,
      "max": 5.0,
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_EPV_MAX",
      "type": "Float",
      "default": 5.0,
      "group": "Local Position Estimator",
      "shortDesc": "Max EPV allowed for GPS initialization",
      "min": 1.0,
      "max": 5.0,
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_FAKE_ORIGIN",
      "type": "Int32",
      "default": 0,
      "group": "Local Position Estimator",
      "shortDesc": "Enable publishing of a fake global position (e.g for AUTO missions using Optical Flow)\nby initializing the estimator to the LPE_LAT/LON parameters when global information is unavailable",
      "min": 0,
      "max": 1
    },
    {
      "name": "LPE_FGYRO_HP",
      "type": "Float",
      "default": 0.001,
      "group": "Local Position Estimator",
      "shortDesc": "Flow gyro high pass filter cut off frequency",
      "min": 0.0,
      "max": 2.0,
      "units": "Hz",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_FLW_OFF_Z",
      "type": "Float",
      "default": 0.0,
      "group": "Local Position Estimator",
      "shortDesc": "Optical flow z offset from center",
      "min": -1.0,
      "max": 1.0,
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_FLW_QMIN",
      "type": "Int32",
      "default": 150,
      "group": "Local Position Estimator",
      "shortDesc": "Optical flow minimum quality threshold",
      "min": 0,
      "max": 255,
      "decimalPlaces": 0
    },
    {
      "name": "LPE_FLW_R",
      "type": "Float",
      "default": 7.0,
      "group": "Local Position Estimator",
      "shortDesc": "Optical flow rotation (roll/pitch) noise gain",
      "min": 0.1,
      "max": 10.0,
      "units": "m/s/rad",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_FLW_RR",
      "type": "Float",
      "default": 7.0,
      "group": "Local Position Estimator",
      "shortDesc": "Optical flow angular velocity noise gain",
      "min": 0.0,
      "max": 10.0,
      "units": "m/rad",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_FLW_SCALE",
      "type": "Float",
      "default": 1.3,
      "group": "Local Position Estimator",
      "shortDesc": "Optical flow scale",
      "min": 0.1,
      "max": 10.0,
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_FUSION",
      "type": "Int32",
      "default": 145,
      "group": "Local Position Estimator",
      "shortDesc": "Integer bitmask controlling data fusion",
      "longDesc": "Set bits in the following positions to enable: 0 : Set to true to fuse GPS data if available, also requires GPS for altitude init 1 : Set to true to fuse optical flow data if available 2 : Set to true to fuse vision position 3 : Set to true to enable landing target 4 : Set to true to fuse land detector 5 : Set to true to publish AGL as local position down component 6 : Set to true to enable flow gyro compensation 7 : Set to true to enable baro fusion default (145 - GPS, baro, land detector)",
      "min": 0,
      "max": 255,
      "bitmask": [
        {
          "index": 0,
          "description": "fuse GPS, requires GPS for alt. init"
        },
        {
          "index": 1,
          "description": "fuse optical flow"
        },
        {
          "index": 2,
          "description": "fuse vision position"
        },
        {
          "index": 3,
          "description": "fuse landing target"
        },
        {
          "index": 4,
          "description": "fuse land detector"
        },
        {
          "index": 5,
          "description": "pub agl as lpos down"
        },
        {
          "index": 6,
          "description": "flow gyro compensation"
        },
        {
          "index": 7,
          "description": "fuse baro"
        }
      ]
    },
    {
      "name": "LPE_GPS_DELAY",
      "type": "Float",
      "default": 0.29,
      "group": "Local Position Estimator",
      "shortDesc": "GPS delay compensaton",
      "min": 0.0,
      "max": 0.4,
      "units": "s",
      "decimalPlaces": 2
    },
    {
      "name": "LPE_GPS_VXY",
      "type": "Float",
      "default": 0.25,
      "group": "Local Position Estimator",
      "shortDesc": "GPS xy velocity standard deviation.\nEPV used if greater than this value",
      "min": 0.01,
      "max": 2.0,
      "units": "m/s",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_GPS_VZ",
      "type": "Float",
      "default": 0.25,
      "group": "Local Position Estimator",
      "shortDesc": "GPS z velocity standard deviation",
      "min": 0.01,
      "max": 2.0,
      "units": "m/s",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_GPS_XY",
      "type": "Float",
      "default": 1.0,
      "group": "Local Position Estimator",
      "shortDesc": "Minimum GPS xy standard deviation, uses reported EPH if greater",
      "min": 0.01,
      "max": 5.0,
      "units": "m",
      "decimalPlaces": 2
    },
    {
      "name": "LPE_GPS_Z",
      "type": "Float",
      "default": 3.0,
      "group": "Local Position Estimator",
      "shortDesc": "Minimum GPS z standard deviation, uses reported EPV if greater",
      "min": 0.01,
      "max": 200.0,
      "units": "m",
      "decimalPlaces": 2
    },
    {
      "name": "LPE_LAND_VXY",
      "type": "Float",
      "default": 0.05,
      "group": "Local Position Estimator",
      "shortDesc": "Land detector xy velocity standard deviation",
      "min": 0.01,
      "max": 10.0,
      "units": "m/s",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_LAND_Z",
      "type": "Float",
      "default": 0.03,
      "group": "Local Position Estimator",
      "shortDesc": "Land detector z standard deviation",
      "min": 0.001,
      "max": 10.0,
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_LAT",
      "type": "Float",
      "default": 47.397742,
      "group": "Local Position Estimator",
      "shortDesc": "Local origin latitude for nav w/o GPS",
      "min": -90.0,
      "max": 90.0,
      "units": "deg",
      "decimalPlaces": 8
    },
    {
      "name": "LPE_LDR_OFF_Z",
      "type": "Float",
      "default": 0.0,
      "group": "Local Position Estimator",
      "shortDesc": "Lidar z offset from center of vehicle +down",
      "min": -1.0,
      "max": 1.0,
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_LDR_Z",
      "type": "Float",
      "default": 0.03,
      "group": "Local Position Estimator",
      "shortDesc": "Lidar z standard deviation",
      "min": 0.01,
      "max": 1.0,
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_LON",
      "type": "Float",
      "default": 8.545594,
      "group": "Local Position Estimator",
      "shortDesc": "Local origin longitude for nav w/o GPS",
      "min": -180.0,
      "max": 180.0,
      "units": "deg",
      "decimalPlaces": 8
    },
    {
      "name": "LPE_LT_COV",
      "type": "Float",
      "default": 0.0001,
      "group": "Local Position Estimator",
      "shortDesc": "Minimum landing target standard covariance, uses reported covariance if greater",
      "min": 0.0,
      "max": 10.0,
      "units": "m^2",
      "decimalPlaces": 2
    },
    {
      "name": "LPE_PN_B",
      "type": "Float",
      "default": 0.001,
      "group": "Local Position Estimator",
      "shortDesc": "Accel bias propagation noise density",
      "min": 0.0,
      "max": 1.0,
      "units": "m/s^3/sqrt(Hz)",
      "decimalPlaces": 8
    },
    {
      "name": "LPE_PN_P",
      "type": "Float",
      "default": 0.1,
      "group": "Local Position Estimator",
      "shortDesc": "Position propagation noise density",
      "longDesc": "Increase to trust measurements more. Decrease to trust model more.",
      "min": 0.0,
      "max": 1.0,
      "units": "m/s/sqrt(Hz)",
      "decimalPlaces": 8
    },
    {
      "name": "LPE_PN_T",
      "type": "Float",
      "default": 0.001,
      "group": "Local Position Estimator",
      "shortDesc": "Terrain random walk noise density, hilly/outdoor (0.1), flat/Indoor (0.001)",
      "min": 0.0,
      "max": 1.0,
      "units": "m/s/sqrt(Hz)",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_PN_V",
      "type": "Float",
      "default": 0.1,
      "group": "Local Position Estimator",
      "shortDesc": "Velocity propagation noise density",
      "longDesc": "Increase to trust measurements more. Decrease to trust model more.",
      "min": 0.0,
      "max": 1.0,
      "units": "m/s^2/sqrt(Hz)",
      "decimalPlaces": 8
    },
    {
      "name": "LPE_SNR_OFF_Z",
      "type": "Float",
      "default": 0.0,
      "group": "Local Position Estimator",
      "shortDesc": "Sonar z offset from center of vehicle +down",
      "min": -1.0,
      "max": 1.0,
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_SNR_Z",
      "type": "Float",
      "default": 0.05,
      "group": "Local Position Estimator",
      "shortDesc": "Sonar z standard deviation",
      "min": 0.01,
      "max": 1.0,
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_T_MAX_GRADE",
      "type": "Float",
      "default": 1.0,
      "group": "Local Position Estimator",
      "shortDesc": "Terrain maximum percent grade, hilly/outdoor (100 = 45 deg), flat/Indoor (0 = 0 deg)\nUsed to calculate increased terrain random walk nosie due to movement",
      "min": 0.0,
      "max": 100.0,
      "units": "%",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_VIC_P",
      "type": "Float",
      "default": 0.001,
      "group": "Local Position Estimator",
      "shortDesc": "Vicon position standard deviation",
      "min": 0.0001,
      "max": 1.0,
      "units": "m",
      "decimalPlaces": 4
    },
    {
      "name": "LPE_VIS_DELAY",
      "type": "Float",
      "default": 0.1,
      "group": "Local Position Estimator",
      "shortDesc": "Vision delay compensaton",
      "longDesc": "Set to zero to enable automatic compensation from measurement timestamps",
      "min": 0.0,
      "max": 0.1,
      "units": "s",
      "decimalPlaces": 2
    },
    {
      "name": "LPE_VIS_XY",
      "type": "Float",
      "default": 0.1,
      "group": "Local Position Estimator",
      "shortDesc": "Vision xy standard deviation",
      "min": 0.01,
      "max": 1.0,
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_VIS_Z",
      "type": "Float",
      "default": 0.5,
      "group": "Local Position Estimator",
      "shortDesc": "Vision z standard deviation",
      "min": 0.01,
      "max": 100.0,
      "units": "m",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_VXY_PUB",
      "type": "Float",
      "default": 0.3,
      "group": "Local Position Estimator",
      "shortDesc": "Required velocity xy standard deviation to publish position",
      "min": 0.01,
      "max": 1.0,
      "units": "m/s",
      "decimalPlaces": 3
    },
    {
      "name": "LPE_X_LP",
      "type": "Float",
      "default": 5.0,
      "group": "Local Position Estimator",
      "shortDesc": "Cut frequency for state publication",
      "min": 5.0,
      "max": 1000.0,
      "units": "Hz",
      "decimalPlaces": 0
    },
    {
      "name": "LPE_Z_PUB",
      "type": "Float",
      "default": 1.0,
      "group": "Local Position Estimator",
      "shortDesc": "Required z standard deviation to publish altitude/ terrain",
      "min": 0.3,
      "max": 5.0,
      "units": "m",
      "decimalPlaces": 1
    },
    {
      "name": "MAV_0_FORWARD",
      "type": "Int32",
      "default": 1,
      "group": "MAVLink",
      "shortDesc": "Enable MAVLink Message forwarding for instance 0",
      "longDesc": "If enabled, forward incoming MAVLink messages to other MAVLink ports if the message is either broadcast or the target is not the autopilot. This allows for example a GCS to talk to a camera that is connected to the autopilot via MAVLink (on a different link than the GCS).",
      "rebootRequired": true
    },
    {
      "name": "MAV_0_MODE",
      "type": "Int32",
      "default": 0,
      "group": "MAVLink",
      "shortDesc": "MAVLink Mode for instance 0",
      "longDesc": "The MAVLink Mode defines the set of streamed messages (for example the vehicle's attitude) and their sending rates.",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Normal"
        },
        {
          "value": 1,
          "description": "Custom"
        },
        {
          "value": 2,
          "description": "Onboard"
        },
        {
          "value": 3,
          "description": "OSD"
        },
        {
          "value": 4,
          "description": "Magic"
        },
        {
          "value": 5,
          "description": "Config"
        },
        {
          "value": 7,
          "description": "Minimal"
        },
        {
          "value": 8,
          "description": "External Vision"
        }
      ]
    },
    {
      "name": "MAV_0_RADIO_CTL",
      "type": "Int32",
      "default": 1,
      "group": "MAVLink",
      "shortDesc": "Enable software throttling of mavlink on instance 0",
      "longDesc": "If enabled, MAVLink messages will be throttled according to `txbuf` field reported by radio_status. Requires a radio to send the mavlink message RADIO_STATUS.",
      "rebootRequired": true
    },
    {
      "name": "MAV_0_RATE",
      "type": "Int32",
      "default": 1200,
      "group": "MAVLink",
      "shortDesc": "Maximum MAVLink sending rate for instance 0",
      "longDesc": "Configure the maximum sending rate for the MAVLink streams in Bytes/sec. If the configured streams exceed the maximum rate, the sending rate of each stream is automatically decreased. If this is set to 0 a value of half of the theoretical maximum bandwidth is used. This corresponds to baudrate/20 Bytes/s (baudrate/10 = maximum data rate on 8N1-configured links).",
      "min": 0,
      "units": "B/s",
      "rebootRequired": true
    },
    {
      "name": "MAV_1_FORWARD",
      "type": "Int32",
      "default": 0,
      "group": "MAVLink",
      "shortDesc": "Enable MAVLink Message forwarding for instance 1",
      "longDesc": "If enabled, forward incoming MAVLink messages to other MAVLink ports if the message is either broadcast or the target is not the autopilot. This allows for example a GCS to talk to a camera that is connected to the autopilot via MAVLink (on a different link than the GCS).",
      "rebootRequired": true
    },
    {
      "name": "MAV_1_MODE",
      "type": "Int32",
      "default": 2,
      "group": "MAVLink",
      "shortDesc": "MAVLink Mode for instance 1",
      "longDesc": "The MAVLink Mode defines the set of streamed messages (for example the vehicle's attitude) and their sending rates.",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Normal"
        },
        {
          "value": 1,
          "description": "Custom"
        },
        {
          "value": 2,
          "description": "Onboard"
        },
        {
          "value": 3,
          "description": "OSD"
        },
        {
          "value": 4,
          "description": "Magic"
        },
        {
          "value": 5,
          "description": "Config"
        },
        {
          "value": 7,
          "description": "Minimal"
        },
        {
          "value": 8,
          "description": "External Vision"
        }
      ]
    },
    {
      "name": "MAV_1_RADIO_CTL",
      "type": "Int32",
      "default": 1,
      "group": "MAVLink",
      "shortDesc": "Enable software throttling of mavlink on instance 1",
      "longDesc": "If enabled, MAVLink messages will be throttled according to `txbuf` field reported by radio_status. Requires a radio to send the mavlink message RADIO_STATUS.",
      "rebootRequired": true
    },
    {
      "name": "MAV_1_RATE",
      "type": "Int32",
      "default": 0,
      "group": "MAVLink",
      "shortDesc": "Maximum MAVLink sending rate for instance 1",
      "longDesc": "Configure the maximum sending rate for the MAVLink streams in Bytes/sec. If the configured streams exceed the maximum rate, the sending rate of each stream is automatically decreased. If this is set to 0 a value of half of the theoretical maximum bandwidth is used. This corresponds to baudrate/20 Bytes/s (baudrate/10 = maximum data rate on 8N1-configured links).",
      "min": 0,
      "units": "B/s",
      "rebootRequired": true
    },
    {
      "name": "MAV_2_FORWARD",
      "type": "Int32",
      "default": 0,
      "group": "MAVLink",
      "shortDesc": "Enable MAVLink Message forwarding for instance 2",
      "longDesc": "If enabled, forward incoming MAVLink messages to other MAVLink ports if the message is either broadcast or the target is not the autopilot. This allows for example a GCS to talk to a camera that is connected to the autopilot via MAVLink (on a different link than the GCS).",
      "rebootRequired": true
    },
    {
      "name": "MAV_2_MODE",
      "type": "Int32",
      "default": 0,
      "group": "MAVLink",
      "shortDesc": "MAVLink Mode for instance 2",
      "longDesc": "The MAVLink Mode defines the set of streamed messages (for example the vehicle's attitude) and their sending rates.",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Normal"
        },
        {
          "value": 1,
          "description": "Custom"
        },
        {
          "value": 2,
          "description": "Onboard"
        },
        {
          "value": 3,
          "description": "OSD"
        },
        {
          "value": 4,
          "description": "Magic"
        },
        {
          "value": 5,
          "description": "Config"
        },
        {
          "value": 7,
          "description": "Minimal"
        },
        {
          "value": 8,
          "description": "External Vision"
        }
      ]
    },
    {
      "name": "MAV_2_RADIO_CTL",
      "type": "Int32",
      "default": 1,
      "group": "MAVLink",
      "shortDesc": "Enable software throttling of mavlink on instance 2",
      "longDesc": "If enabled, MAVLink messages will be throttled according to `txbuf` field reported by radio_status. Requires a radio to send the mavlink message RADIO_STATUS.",
      "rebootRequired": true
    },
    {
      "name": "MAV_2_RATE",
      "type": "Int32",
      "default": 0,
      "group": "MAVLink",
      "shortDesc": "Maximum MAVLink sending rate for instance 2",
      "longDesc": "Configure the maximum sending rate for the MAVLink streams in Bytes/sec. If the configured streams exceed the maximum rate, the sending rate of each stream is automatically decreased. If this is set to 0 a value of half of the theoretical maximum bandwidth is used. This corresponds to baudrate/20 Bytes/s (baudrate/10 = maximum data rate on 8N1-configured links).",
      "min": 0,
      "units": "B/s",
      "rebootRequired": true
    },
    {
      "name": "MAV_BROADCAST",
      "type": "Int32",
      "default": 0,
      "group": "MAVLink",
      "shortDesc": "Broadcast heartbeats on local network",
      "longDesc": "This allows a ground control station to automatically find the drone on the local network.",
      "values": [
        {
          "value": 0,
          "description": "Never broadcast"
        },
        {
          "value": 1,
          "description": "Always broadcast"
        },
        {
          "value": 2,
          "description": "Only multicast"
        }
      ]
    },
    {
      "name": "MAV_COMP_ID",
      "type": "Int32",
      "default": 1,
      "group": "MAVLink",
      "shortDesc": "MAVLink component ID",
      "min": 1,
      "max": 250,
      "rebootRequired": true
    },
    {
      "name": "MAV_FWDEXTSP",
      "type": "Int32",
      "default": 1,
      "group": "MAVLink",
      "shortDesc": "Forward external setpoint messages",
      "longDesc": "If set to 1 incoming external setpoint messages will be directly forwarded to the controllers if in offboard control mode"
    },
    {
      "name": "MAV_HASH_CHK_EN",
      "type": "Int32",
      "default": 1,
      "group": "MAVLink",
      "shortDesc": "Parameter hash check",
      "longDesc": "Disabling the parameter hash check functionality will make the mavlink instance stream parameters continuously."
    },
    {
      "name": "MAV_HB_FORW_EN",
      "type": "Int32",
      "default": 1,
      "group": "MAVLink",
      "shortDesc": "Hearbeat message forwarding",
      "longDesc": "The mavlink hearbeat message will not be forwarded if this parameter is set to 'disabled'. The main reason for disabling heartbeats to be forwarded is because they confuse dronekit."
    },
    {
      "name": "MAV_ODOM_LP",
      "type": "Int32",
      "default": 0,
      "group": "MAVLink",
      "shortDesc": "Activate ODOMETRY loopback",
      "longDesc": "If set, it gets the data from 'vehicle_visual_odometry' instead of 'vehicle_odometry' serving as a loopback of the received ODOMETRY messages on the Mavlink receiver."
    },
    {
      "name": "MAV_PROTO_VER",
      "type": "Int32",
      "default": 0,
      "group": "MAVLink",
      "shortDesc": "MAVLink protocol version",
      "values": [
        {
          "value": 0,
          "description": "Default to 1, switch to 2 if GCS sends version 2"
        },
        {
          "value": 1,
          "description": "Always use version 1"
        },
        {
          "value": 2,
          "description": "Always use version 2"
        }
      ]
    },
    {
      "name": "MAV_RADIO_TOUT",
      "type": "Int32",
      "default": 5,
      "group": "MAVLink",
      "shortDesc": "Timeout in seconds for the RADIO_STATUS reports coming in",
      "longDesc": "If the connected radio stops reporting RADIO_STATUS for a certain time, a warning is triggered and, if MAV_X_RADIO_CTL is enabled, the software-flow control is reset.",
      "min": 1,
      "max": 250,
      "units": "s"
    },
    {
      "name": "MAV_SIK_RADIO_ID",
      "type": "Int32",
      "default": 0,
      "group": "MAVLink",
      "shortDesc": "MAVLink SiK Radio ID",
      "longDesc": "When non-zero the MAVLink app will attempt to configure the SiK radio to this ID and re-set the parameter to 0. If the value is negative it will reset the complete radio config to factory defaults. Only applies if this mavlink instance is going through a SiK radio",
      "min": -1,
      "max": 240
    },
    {
      "name": "MAV_SYS_ID",
      "type": "Int32",
      "default": 1,
      "group": "MAVLink",
      "shortDesc": "MAVLink system ID",
      "min": 1,
      "max": 250,
      "rebootRequired": true
    },
    {
      "name": "MAV_TYPE",
      "type": "Int32",
      "default": 2,
      "group": "MAVLink",
      "shortDesc": "MAVLink airframe type",
      "min": 1,
      "max": 27,
      "values": [
        {
          "value": 0,
          "description": "Generic micro air vehicle"
        },
        {
          "value": 1,
          "description": "Fixed wing aircraft"
        },
        {
          "value": 2,
          "description": "Quadrotor"
        },
        {
          "value": 3,
          "description": "Coaxial helicopter"
        },
        {
          "value": 4,
          "description": "Normal helicopter with tail rotor"
        },
        {
          "value": 5,
          "description": "Ground installation"
        },
        {
          "value": 6,
          "description": "Operator control unit / ground control station"
        },
        {
          "value": 7,
          "description": "Airship, controlled"
        },
        {
          "value": 8,
          "description": "Free balloon, uncontrolled"
        },
        {
          "value": 9,
          "description": "Rocket"
        },
        {
          "value": 10,
          "description": "Ground rover"
        },
        {
          "value": 11,
          "description": "Surface vessel, boat, ship"
        },
        {
          "value": 12,
          "description": "Submarine"
        },
        {
          "value": 13,
          "description": "Hexarotor"
        },
        {
          "value": 14,
          "description": "Octorotor"
        },
        {
          "value": 15,
          "description": "Tricopter"
        },
        {
          "value": 16,
          "description": "Flapping wing"
        },
        {
          "value": 17,
          "description": "Kite"
        },
        {
          "value": 18,
          "description": "Onboard companion controller"
        },
        {
          "value": 19,
          "description": "Two-rotor VTOL using control surfaces in vertical operation in addition. Tailsitter."
        },
        {
          "value": 20,
          "description": "Quad-rotor VTOL using a V-shaped quad config in vertical operation. Tailsitter."
        },
        {
          "value": 21,
          "description": "Tiltrotor VTOL"
        },
        {
          "value": 22,
          "description": "VTOL reserved 2"
        },
        {
          "value": 23,
          "description": "VTOL reserved 3"
        },
        {
          "value": 24,
          "description": "VTOL reserved 4"
        },
        {
          "value": 25,
          "description": "VTOL reserved 5"
        },
        {
          "value": 26,
          "description": "Onboard gimbal"
        },
        {
          "value": 27,
          "description": "Onboard ADSB peripheral"
        }
      ]
    },
    {
      "name": "MAV_USEHILGPS",
      "type": "Int32",
      "default": 0,
      "group": "MAVLink",
      "shortDesc": "Use/Accept HIL GPS message even if not in HIL mode",
      "longDesc": "If set to 1 incoming HIL GPS messages are parsed."
    },
    {
      "name": "COM_OBS_AVOID",
      "type": "Int32",
      "default": 0,
      "group": "Mission",
      "shortDesc": "Flag to enable obstacle avoidance"
    },
    {
      "name": "COM_TAKEOFF_ACT",
      "type": "Int32",
      "default": 0,
      "group": "Mission",
      "shortDesc": "Action after TAKEOFF has been accepted",
      "longDesc": "The mode transition after TAKEOFF has completed successfully.",
      "values": [
        {
          "value": 0,
          "description": "Hold"
        },
        {
          "value": 1,
          "description": "Mission (if valid)"
        }
      ]
    },
    {
      "name": "MIS_DIST_1WP",
      "type": "Float",
      "default": 900.0,
      "group": "Mission",
      "shortDesc": "Maximal horizontal distance from home to first waypoint",
      "longDesc": "Failsafe check to prevent running mission stored from previous flight at a new takeoff location. Set a value of zero or less to disable. The mission will not be started if the current waypoint is more distant than MIS_DIS_1WP from the home position.",
      "min": 0.0,
      "max": 10000.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 100.0
    },
    {
      "name": "MIS_DIST_WPS",
      "type": "Float",
      "default": 900.0,
      "group": "Mission",
      "shortDesc": "Maximal horizontal distance between waypoint",
      "longDesc": "Failsafe check to prevent running missions which are way too big. Set a value of zero or less to disable. The mission will not be started if any distance between two subsequent waypoints is greater than MIS_DIST_WPS.",
      "min": 0.0,
      "max": 10000.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 100.0
    },
    {
      "name": "MIS_LTRMIN_ALT",
      "type": "Float",
      "default": -1.0,
      "group": "Mission",
      "shortDesc": "Minimum Loiter altitude",
      "longDesc": "This is the minimum altitude the system will always obey. The intent is to stay out of ground effect. set to -1, if there shouldn't be a minimum loiter altitude",
      "min": -1.0,
      "max": 80.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "MIS_MNT_YAW_CTL",
      "type": "Int32",
      "default": 0,
      "group": "Mission",
      "shortDesc": "Enable yaw control of the mount. (Only affects multicopters and ROI mission items)",
      "longDesc": "If enabled, yaw commands will be sent to the mount and the vehicle will follow its heading towards the flight direction. If disabled, the vehicle will yaw towards the ROI.",
      "min": 0,
      "max": 1,
      "values": [
        {
          "value": 0,
          "description": "Disable"
        },
        {
          "value": 1,
          "description": "Enable"
        }
      ]
    },
    {
      "name": "MIS_TAKEOFF_ALT",
      "type": "Float",
      "default": 2.5,
      "group": "Mission",
      "shortDesc": "Take-off altitude",
      "longDesc": "This is the minimum altitude the system will take off to.",
      "min": 0.0,
      "max": 80.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "MIS_TAKEOFF_REQ",
      "type": "Int32",
      "default": 0,
      "group": "Mission",
      "shortDesc": "Take-off waypoint required",
      "longDesc": "If set, the mission feasibility checker will check for a takeoff waypoint on the mission."
    },
    {
      "name": "MIS_YAW_ERR",
      "type": "Float",
      "default": 12.0,
      "group": "Mission",
      "shortDesc": "Max yaw error in degrees needed for waypoint heading acceptance",
      "min": 0.0,
      "max": 90.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 1.0
    },
    {
      "name": "MIS_YAW_TMT",
      "type": "Float",
      "default": -1.0,
      "group": "Mission",
      "shortDesc": "Time in seconds we wait on reaching target heading at a waypoint if it is forced",
      "longDesc": "If set > 0 it will ignore the target heading for normal waypoint acceptance. If the waypoint forces the heading the timeout will matter. For example on VTOL forwards transition. Mainly useful for VTOLs that have less yaw authority and might not reach target yaw in wind. Disabled by default.",
      "min": -1.0,
      "max": 20.0,
      "units": "s",
      "decimalPlaces": 1,
      "increment": 1.0
    },
    {
      "name": "MPC_YAW_MODE",
      "type": "Int32",
      "default": 0,
      "group": "Mission",
      "shortDesc": "Yaw mode",
      "longDesc": "Specifies the heading in Auto.",
      "min": 0,
      "max": 4,
      "values": [
        {
          "value": 0,
          "description": "towards waypoint"
        },
        {
          "value": 1,
          "description": "towards home"
        },
        {
          "value": 2,
          "description": "away from home"
        },
        {
          "value": 3,
          "description": "along trajectory"
        },
        {
          "value": 4,
          "description": "towards waypoint (yaw first)"
        }
      ]
    },
    {
      "name": "NAV_ACC_RAD",
      "type": "Float",
      "default": 10.0,
      "group": "Mission",
      "shortDesc": "Acceptance Radius",
      "longDesc": "Default acceptance radius, overridden by acceptance radius of waypoint if set. For fixed wing the L1 turning distance is used for horizontal acceptance.",
      "min": 0.05,
      "max": 200.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "NAV_DLL_ACT",
      "type": "Int32",
      "default": 0,
      "group": "Mission",
      "shortDesc": "Set data link loss failsafe mode",
      "longDesc": "The data link loss failsafe will only be entered after a timeout, set by COM_DL_LOSS_T in seconds. Once the timeout occurs the selected action will be executed.",
      "values": [
        {
          "value": 0,
          "description": "Disabled"
        },
        {
          "value": 1,
          "description": "Hold mode"
        },
        {
          "value": 2,
          "description": "Return mode"
        },
        {
          "value": 3,
          "description": "Land mode"
        },
        {
          "value": 5,
          "description": "Terminate"
        },
        {
          "value": 6,
          "description": "Lockdown"
        }
      ]
    },
    {
      "name": "NAV_FORCE_VT",
      "type": "Int32",
      "default": 1,
      "group": "Mission",
      "shortDesc": "Force VTOL mode takeoff and land"
    },
    {
      "name": "NAV_FW_ALTL_RAD",
      "type": "Float",
      "default": 5.0,
      "group": "Mission",
      "shortDesc": "FW Altitude Acceptance Radius before a landing",
      "longDesc": "Altitude acceptance used for the last waypoint before a fixed-wing landing. This is usually smaller than the standard vertical acceptance because close to the ground higher accuracy is required.",
      "min": 0.05,
      "max": 200.0,
      "units": "m",
      "decimalPlaces": 1
    },
    {
      "name": "NAV_FW_ALT_RAD",
      "type": "Float",
      "default": 10.0,
      "group": "Mission",
      "shortDesc": "FW Altitude Acceptance Radius",
      "longDesc": "Acceptance radius for fixedwing altitude.",
      "min": 0.05,
      "max": 200.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "NAV_LOITER_RAD",
      "type": "Float",
      "default": 50.0,
      "group": "Mission",
      "shortDesc": "Loiter radius (FW only)",
      "longDesc": "Default value of loiter radius for missions, Hold mode, Return mode, etc. (fixedwing only).",
      "min": 25.0,
      "max": 1000.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "NAV_MC_ALT_RAD",
      "type": "Float",
      "default": 0.8,
      "group": "Mission",
      "shortDesc": "MC Altitude Acceptance Radius",
      "longDesc": "Acceptance radius for multicopter altitude.",
      "min": 0.05,
      "max": 200.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "NAV_RCL_ACT",
      "type": "Int32",
      "default": 2,
      "group": "Mission",
      "shortDesc": "Set RC loss failsafe mode",
      "longDesc": "The RC loss failsafe will only be entered after a timeout, set by COM_RC_LOSS_T in seconds. If RC input checks have been disabled by setting the COM_RC_IN_MODE param it will not be triggered.",
      "values": [
        {
          "value": 0,
          "description": "Disabled"
        },
        {
          "value": 1,
          "description": "Hold mode"
        },
        {
          "value": 2,
          "description": "Return mode"
        },
        {
          "value": 3,
          "description": "Land mode"
        },
        {
          "value": 5,
          "description": "Terminate"
        },
        {
          "value": 6,
          "description": "Lockdown"
        }
      ]
    },
    {
      "name": "NAV_TRAFF_AVOID",
      "type": "Int32",
      "default": 1,
      "group": "Mission",
      "shortDesc": "Set traffic avoidance mode",
      "longDesc": "Enabling this will allow the system to respond to transponder data from e.g. ADSB transponders",
      "values": [
        {
          "value": 0,
          "description": "Disabled"
        },
        {
          "value": 1,
          "description": "Warn only"
        },
        {
          "value": 2,
          "description": "Return mode"
        },
        {
          "value": 3,
          "description": "Land mode"
        },
        {
          "value": 4,
          "description": "Position Hold mode"
        }
      ]
    },
    {
      "name": "NAV_TRAFF_A_RADM",
      "type": "Float",
      "default": 500.0,
      "group": "Mission",
      "shortDesc": "Set NAV TRAFFIC AVOID RADIUS MANNED",
      "longDesc": "Defines the Radius where NAV TRAFFIC AVOID is Called For Manned Aviation",
      "min": 500.0,
      "units": "m"
    },
    {
      "name": "NAV_TRAFF_A_RADU",
      "type": "Float",
      "default": 10.0,
      "group": "Mission",
      "shortDesc": "Set NAV TRAFFIC AVOID RADIUS",
      "longDesc": "Defines the Radius where NAV TRAFFIC AVOID is Called For Unmanned Aviation",
      "min": 10.0,
      "max": 500.0,
      "units": "m"
    },
    {
      "name": "MC_AIRMODE",
      "type": "Int32",
      "default": 0,
      "group": "Mixer Output",
      "shortDesc": "Multicopter air-mode",
      "longDesc": "The air-mode enables the mixer to increase the total thrust of the multirotor in order to keep attitude and rate control even at low and high throttle. This function should be disabled during tuning as it will help the controller to diverge if the closed-loop is unstable (i.e. the vehicle is not tuned yet). Enabling air-mode for yaw requires the use of an arming switch.",
      "values": [
        {
          "value": 0,
          "description": "Disabled"
        },
        {
          "value": 1,
          "description": "Roll/Pitch"
        },
        {
          "value": 2,
          "description": "Roll/Pitch/Yaw"
        }
      ]
    },
    {
      "name": "MOT_ORDERING",
      "type": "Int32",
      "default": 0,
      "group": "Mixer Output",
      "shortDesc": "Motor Ordering",
      "longDesc": "Determines the motor ordering. This can be used for example in combination with a 4-in-1 ESC that assumes a motor ordering which is different from PX4. ONLY supported for Quads. When changing this, make sure to test the motor response without props first.",
      "values": [
        {
          "value": 0,
          "description": "PX4"
        },
        {
          "value": 1,
          "description": "Betaflight / Cleanflight"
        }
      ]
    },
    {
      "name": "MNT_DO_STAB",
      "type": "Int32",
      "default": 0,
      "group": "Mount",
      "shortDesc": "Stabilize the mount (set to true for servo gimbal, false for passthrough).\nDoes not affect MAVLINK_ROI input"
    },
    {
      "name": "MNT_MAN_PITCH",
      "type": "Int32",
      "default": 0,
      "group": "Mount",
      "shortDesc": "Auxiliary channel to control pitch (in AUX input or manual mode)",
      "min": 0,
      "max": 6,
      "values": [
        {
          "value": 0,
          "description": "Disable"
        },
        {
          "value": 1,
          "description": "AUX1"
        },
        {
          "value": 2,
          "description": "AUX2"
        },
        {
          "value": 3,
          "description": "AUX3"
        },
        {
          "value": 4,
          "description": "AUX4"
        },
        {
          "value": 5,
          "description": "AUX5"
        },
        {
          "value": 6,
          "description": "AUX6"
        }
      ]
    },
    {
      "name": "MNT_MAN_ROLL",
      "type": "Int32",
      "default": 0,
      "group": "Mount",
      "shortDesc": "Auxiliary channel to control roll (in AUX input or manual mode)",
      "min": 0,
      "max": 6,
      "values": [
        {
          "value": 0,
          "description": "Disable"
        },
        {
          "value": 1,
          "description": "AUX1"
        },
        {
          "value": 2,
          "description": "AUX2"
        },
        {
          "value": 3,
          "description": "AUX3"
        },
        {
          "value": 4,
          "description": "AUX4"
        },
        {
          "value": 5,
          "description": "AUX5"
        },
        {
          "value": 6,
          "description": "AUX6"
        }
      ]
    },
    {
      "name": "MNT_MAN_YAW",
      "type": "Int32",
      "default": 0,
      "group": "Mount",
      "shortDesc": "Auxiliary channel to control yaw (in AUX input or manual mode)",
      "min": 0,
      "max": 6,
      "values": [
        {
          "value": 0,
          "description": "Disable"
        },
        {
          "value": 1,
          "description": "AUX1"
        },
        {
          "value": 2,
          "description": "AUX2"
        },
        {
          "value": 3,
          "description": "AUX3"
        },
        {
          "value": 4,
          "description": "AUX4"
        },
        {
          "value": 5,
          "description": "AUX5"
        },
        {
          "value": 6,
          "description": "AUX6"
        }
      ]
    },
    {
      "name": "MNT_MAV_COMPID",
      "type": "Int32",
      "default": 154,
      "group": "Mount",
      "shortDesc": "Mavlink Component ID of the mount",
      "longDesc": "If MNT_MODE_OUT is MAVLINK, mount configure/control commands will be sent with this component ID."
    },
    {
      "name": "MNT_MAV_SYSID",
      "type": "Int32",
      "default": 1,
      "group": "Mount",
      "shortDesc": "Mavlink System ID of the mount",
      "longDesc": "If MNT_MODE_OUT is MAVLINK, mount configure/control commands will be sent with this target ID."
    },
    {
      "name": "MNT_MODE_IN",
      "type": "Int32",
      "default": -1,
      "group": "Mount",
      "shortDesc": "Mount input mode",
      "longDesc": "RC uses the AUX input channels (see MNT_MAN_* parameters), MAVLINK_ROI uses the MAV_CMD_DO_SET_ROI Mavlink message, and MAVLINK_DO_MOUNT the MAV_CMD_DO_MOUNT_CONFIGURE and MAV_CMD_DO_MOUNT_CONTROL messages to control a mount.",
      "min": -1,
      "max": 3,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "DISABLED"
        },
        {
          "value": 0,
          "description": "AUTO"
        },
        {
          "value": 1,
          "description": "RC"
        },
        {
          "value": 2,
          "description": "MAVLINK_ROI"
        },
        {
          "value": 3,
          "description": "MAVLINK_DO_MOUNT"
        }
      ]
    },
    {
      "name": "MNT_MODE_OUT",
      "type": "Int32",
      "default": 0,
      "group": "Mount",
      "shortDesc": "Mount output mode",
      "longDesc": "AUX uses the mixer output Control Group #2. MAVLINK uses the MAV_CMD_DO_MOUNT_CONFIGURE and MAV_CMD_DO_MOUNT_CONTROL MavLink messages to control a mount (set MNT_MAV_SYSID & MNT_MAV_COMPID)",
      "min": 0,
      "max": 1,
      "values": [
        {
          "value": 0,
          "description": "AUX"
        },
        {
          "value": 1,
          "description": "MAVLINK"
        }
      ]
    },
    {
      "name": "MNT_OB_LOCK_MODE",
      "type": "Float",
      "default": 0.0,
      "group": "Mount",
      "shortDesc": "Mixer value for selecting a locking mode\nif required for the gimbal (only in AUX output mode)",
      "min": -1.0,
      "max": 1.0,
      "decimalPlaces": 3
    },
    {
      "name": "MNT_OB_NORM_MODE",
      "type": "Float",
      "default": -1.0,
      "group": "Mount",
      "shortDesc": "Mixer value for selecting normal mode\nif required by the gimbal (only in AUX output mode)",
      "min": -1.0,
      "max": 1.0,
      "decimalPlaces": 3
    },
    {
      "name": "MNT_OFF_PITCH",
      "type": "Float",
      "default": 0.0,
      "group": "Mount",
      "shortDesc": "Offset for pitch channel output in degrees",
      "min": -360.0,
      "max": 360.0,
      "decimalPlaces": 1
    },
    {
      "name": "MNT_OFF_ROLL",
      "type": "Float",
      "default": 0.0,
      "group": "Mount",
      "shortDesc": "Offset for roll channel output in degrees",
      "min": -360.0,
      "max": 360.0,
      "decimalPlaces": 1
    },
    {
      "name": "MNT_OFF_YAW",
      "type": "Float",
      "default": 0.0,
      "group": "Mount",
      "shortDesc": "Offset for yaw channel output in degrees",
      "min": -360.0,
      "max": 360.0,
      "decimalPlaces": 1
    },
    {
      "name": "MNT_RANGE_PITCH",
      "type": "Float",
      "default": 360.0,
      "group": "Mount",
      "shortDesc": "Range of pitch channel output in degrees (only in AUX output mode)",
      "min": 1.0,
      "max": 720.0,
      "decimalPlaces": 1
    },
    {
      "name": "MNT_RANGE_ROLL",
      "type": "Float",
      "default": 360.0,
      "group": "Mount",
      "shortDesc": "Range of roll channel output in degrees (only in AUX output mode)",
      "min": 1.0,
      "max": 720.0,
      "decimalPlaces": 1
    },
    {
      "name": "MNT_RANGE_YAW",
      "type": "Float",
      "default": 360.0,
      "group": "Mount",
      "shortDesc": "Range of yaw channel output in degrees (only in AUX output mode)",
      "min": 1.0,
      "max": 720.0,
      "decimalPlaces": 1
    },
    {
      "name": "MC_PITCHRATE_MAX",
      "type": "Float",
      "default": 220.0,
      "group": "Multicopter Attitude Control",
      "shortDesc": "Max pitch rate",
      "longDesc": "Limit for pitch rate in manual and auto modes (except acro). Has effect for large rotations in autonomous mode, to avoid large control output and mixer saturation. This is not only limited by the vehicle's properties, but also by the maximum measurement rate of the gyro.",
      "min": 0.0,
      "max": 1800.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 5.0
    },
    {
      "name": "MC_PITCH_P",
      "type": "Float",
      "default": 6.5,
      "group": "Multicopter Attitude Control",
      "shortDesc": "Pitch P gain",
      "longDesc": "Pitch proportional gain, i.e. desired angular speed in rad/s for error 1 rad.",
      "min": 0.0,
      "max": 12.0,
      "units": "Hz",
      "decimalPlaces": 2,
      "increment": 0.1
    },
    {
      "name": "MC_RATT_TH",
      "type": "Float",
      "default": 0.8,
      "group": "Multicopter Attitude Control",
      "shortDesc": "Threshold for Rattitude mode",
      "longDesc": "Manual input needed in order to override attitude control rate setpoints and instead pass manual stick inputs as rate setpoints",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "MC_ROLLRATE_MAX",
      "type": "Float",
      "default": 220.0,
      "group": "Multicopter Attitude Control",
      "shortDesc": "Max roll rate",
      "longDesc": "Limit for roll rate in manual and auto modes (except acro). Has effect for large rotations in autonomous mode, to avoid large control output and mixer saturation. This is not only limited by the vehicle's properties, but also by the maximum measurement rate of the gyro.",
      "min": 0.0,
      "max": 1800.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 5.0
    },
    {
      "name": "MC_ROLL_P",
      "type": "Float",
      "default": 6.5,
      "group": "Multicopter Attitude Control",
      "shortDesc": "Roll P gain",
      "longDesc": "Roll proportional gain, i.e. desired angular speed in rad/s for error 1 rad.",
      "min": 0.0,
      "max": 12.0,
      "units": "Hz",
      "decimalPlaces": 2,
      "increment": 0.1
    },
    {
      "name": "MC_YAWRATE_MAX",
      "type": "Float",
      "default": 200.0,
      "group": "Multicopter Attitude Control",
      "shortDesc": "Max yaw rate",
      "min": 0.0,
      "max": 1800.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 5.0
    },
    {
      "name": "MC_YAW_P",
      "type": "Float",
      "default": 2.8,
      "group": "Multicopter Attitude Control",
      "shortDesc": "Yaw P gain",
      "longDesc": "Yaw proportional gain, i.e. desired angular speed in rad/s for error 1 rad.",
      "min": 0.0,
      "max": 5.0,
      "units": "Hz",
      "decimalPlaces": 2,
      "increment": 0.1
    },
    {
      "name": "MC_YAW_WEIGHT",
      "type": "Float",
      "default": 0.4,
      "group": "Multicopter Attitude Control",
      "shortDesc": "Yaw weight",
      "longDesc": "A fraction [0,1] deprioritizing yaw compared to roll and pitch in non-linear attitude control. Deprioritizing yaw is necessary because multicopters have much less control authority in yaw compared to the other axes and it makes sense because yaw is not critical for stable hovering or 3D navigation. For yaw control tuning use MC_YAW_P. This ratio has no inpact on the yaw gain.",
      "min": 0.0,
      "max": 1.0,
      "units": "Hz",
      "decimalPlaces": 2,
      "increment": 0.1
    },
    {
      "name": "MPC_YAWRAUTO_MAX",
      "type": "Float",
      "default": 45.0,
      "group": "Multicopter Attitude Control",
      "shortDesc": "Max yaw rate in auto mode",
      "longDesc": "Limit the rate of change of the yaw setpoint in autonomous mode to avoid large control output and mixer saturation.",
      "min": 0.0,
      "max": 360.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 5.0
    },
    {
      "name": "CP_DELAY",
      "type": "Float",
      "default": 0.4,
      "group": "Multicopter Position Control",
      "shortDesc": "Average delay of the range sensor message plus the tracking delay of the position controller in seconds",
      "longDesc": "Only used in Position mode.",
      "min": 0.0,
      "max": 1.0,
      "units": "s"
    },
    {
      "name": "CP_DIST",
      "type": "Float",
      "default": -1.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Minimum distance the vehicle should keep to all obstacles",
      "longDesc": "Only used in Position mode. Collision avoidance is disabled by setting this parameter to a negative value",
      "min": -1.0,
      "max": 15.0,
      "units": "m"
    },
    {
      "name": "CP_GO_NO_DATA",
      "type": "Float",
      "default": 0.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Boolean to allow moving into directions where there is no sensor data (outside FOV)",
      "longDesc": "Only used in Position mode."
    },
    {
      "name": "CP_GUIDE_ANG",
      "type": "Float",
      "default": 30.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Angle left/right from the commanded setpoint by which the collision prevention algorithm can choose to change the setpoint direction",
      "longDesc": "Only used in Position mode.",
      "min": 0.0,
      "max": 90.0,
      "units": "deg"
    },
    {
      "name": "MC_MAN_TILT_TAU",
      "type": "Float",
      "default": 0.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Manual tilt input filter time constant\nSetting this parameter to 0 disables the filter",
      "min": 0.0,
      "max": 2.0,
      "units": "s",
      "decimalPlaces": 2
    },
    {
      "name": "MPC_ACC_DOWN_MAX",
      "type": "Float",
      "default": 3.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum vertical acceleration in velocity controlled modes down",
      "min": 2.0,
      "max": 15.0,
      "units": "m/s^2",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "MPC_ACC_HOR",
      "type": "Float",
      "default": 3.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Acceleration for auto and for manual",
      "longDesc": "Note: In manual, this parameter is only used in MPC_POS_MODE 1.",
      "min": 2.0,
      "max": 15.0,
      "units": "m/s^2",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "MPC_ACC_HOR_MAX",
      "type": "Float",
      "default": 5.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum horizontal acceleration for auto mode and for manual mode",
      "longDesc": "Maximum deceleration for MPC_POS_MODE 1. Maximum acceleration and deceleration for MPC_POS_MODE 3.",
      "min": 2.0,
      "max": 15.0,
      "units": "m/s^2",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "MPC_ACC_UP_MAX",
      "type": "Float",
      "default": 4.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum vertical acceleration in velocity controlled modes upward",
      "min": 2.0,
      "max": 15.0,
      "units": "m/s^2",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "MPC_ALT_MODE",
      "type": "Int32",
      "default": 0,
      "group": "Multicopter Position Control",
      "shortDesc": "Altitude control mode",
      "longDesc": "Set to 0 to control height relative to the earth frame origin. This origin may move up and down in flight due to sensor drift. Set to 1 to control height relative to estimated distance to ground. The vehicle will move up and down with terrain height variation. Requires a distance to ground sensor. The height controller will revert to using height above origin if the distance to ground estimate becomes invalid as indicated by the local_position.distance_bottom_valid message being false. Set to 2 to control height relative to ground (requires a distance sensor) when stationary and relative to earth frame origin when moving horizontally. The speed threshold is controlled by the MPC_HOLD_MAX_XY parameter.",
      "min": 0,
      "max": 2,
      "values": [
        {
          "value": 0,
          "description": "Altitude following"
        },
        {
          "value": 1,
          "description": "Terrain following"
        },
        {
          "value": 2,
          "description": "Terrain hold"
        }
      ]
    },
    {
      "name": "MPC_DEC_HOR_SLOW",
      "type": "Float",
      "default": 5.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Slow horizontal manual deceleration for manual mode",
      "longDesc": "Note: This is only used when MPC_POS_MODE is set to 1.",
      "min": 0.5,
      "max": 10.0,
      "units": "m/s^2",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "MPC_HOLD_DZ",
      "type": "Float",
      "default": 0.1,
      "group": "Multicopter Position Control",
      "shortDesc": "Deadzone of sticks where position hold is enabled",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2
    },
    {
      "name": "MPC_HOLD_MAX_XY",
      "type": "Float",
      "default": 0.8,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum horizontal velocity for which position hold is enabled (use 0 to disable check)",
      "min": 0.0,
      "max": 3.0,
      "units": "m/s",
      "decimalPlaces": 2
    },
    {
      "name": "MPC_HOLD_MAX_Z",
      "type": "Float",
      "default": 0.6,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum vertical velocity for which position hold is enabled (use 0 to disable check)",
      "min": 0.0,
      "max": 3.0,
      "units": "m/s",
      "decimalPlaces": 2
    },
    {
      "name": "MPC_JERK_AUTO",
      "type": "Float",
      "default": 4.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Jerk limit in auto mode",
      "longDesc": "Limit the maximum jerk of the vehicle (how fast the acceleration can change). A lower value leads to smoother vehicle motions, but it also limits its agility.",
      "min": 1.0,
      "max": 80.0,
      "units": "m/s^3",
      "decimalPlaces": 1,
      "increment": 1.0
    },
    {
      "name": "MPC_JERK_MAX",
      "type": "Float",
      "default": 8.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum jerk limit",
      "longDesc": "Limit the maximum jerk of the vehicle (how fast the acceleration can change). A lower value leads to smoother vehicle motions, but it also limits its agility (how fast it can change directions or break). Setting this to the maximum value essentially disables the limit. Note: This is only used when MPC_POS_MODE is set to a smoothing mode 1 or 3.",
      "min": 0.5,
      "max": 500.0,
      "units": "m/s^3",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "MPC_JERK_MIN",
      "type": "Float",
      "default": 8.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Velocity-based jerk limit",
      "longDesc": "If this is not zero, a velocity-based maximum jerk limit is used: the applied jerk limit linearly increases with the vehicle's velocity between MPC_JERK_MIN (zero velocity) and MPC_JERK_MAX (maximum velocity). This means that the vehicle's motions are smooth for low velocities, but still allows fast direction changes or breaking at higher velocities. Set this to zero to use a fixed maximum jerk limit (MPC_JERK_MAX). Note: This is only used when MPC_POS_MODE is set to 1.",
      "min": 0.0,
      "max": 30.0,
      "units": "m/s^3",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "MPC_LAND_ALT1",
      "type": "Float",
      "default": 10.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Altitude for 1. step of slow landing (descend)",
      "longDesc": "Below this altitude: - descending velocity gets limited to a value between \"MPC_Z_VEL_MAX\" and \"MPC_LAND_SPEED\" - horizontal velocity gets limited to a value between \"MPC_VEL_MANUAL\" and \"MPC_LAND_VEL_XY\" for a smooth descent and landing experience. Value needs to be higher than \"MPC_LAND_ALT2\"",
      "min": 0.0,
      "max": 122.0,
      "units": "m",
      "decimalPlaces": 1
    },
    {
      "name": "MPC_LAND_ALT2",
      "type": "Float",
      "default": 5.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Altitude for 2. step of slow landing (landing)",
      "longDesc": "Below this altitude descending and horizontal velocities get limited to \"MPC_LAND_SPEED\" and \"MPC_LAND_VEL_XY\", respectively. Value needs to be lower than \"MPC_LAND_ALT1\"",
      "min": 0.0,
      "max": 122.0,
      "units": "m",
      "decimalPlaces": 1
    },
    {
      "name": "MPC_LAND_SPEED",
      "type": "Float",
      "default": 0.7,
      "group": "Multicopter Position Control",
      "shortDesc": "Landing descend rate",
      "min": 0.6,
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "MPC_LAND_VEL_XY",
      "type": "Float",
      "default": 10.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum horizontal position mode velocity when close to ground/home altitude\nSet the value higher than the otherwise expected maximum to disable any slowdown",
      "min": 0.0,
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "MPC_MANTHR_MIN",
      "type": "Float",
      "default": 0.08,
      "group": "Multicopter Position Control",
      "shortDesc": "Minimum manual thrust",
      "longDesc": "Minimum vertical thrust. It's recommended to set it > 0 to avoid free fall with zero thrust. With MC_AIRMODE set to 1, this can safely be set to 0.",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "MPC_MAN_TILT_MAX",
      "type": "Float",
      "default": 35.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximal tilt angle in manual or altitude mode",
      "min": 0.0,
      "max": 90.0,
      "units": "deg",
      "decimalPlaces": 1
    },
    {
      "name": "MPC_MAN_Y_MAX",
      "type": "Float",
      "default": 150.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Max manual yaw rate",
      "min": 0.0,
      "max": 400.0,
      "units": "deg/s",
      "decimalPlaces": 1
    },
    {
      "name": "MPC_MAN_Y_TAU",
      "type": "Float",
      "default": 0.08,
      "group": "Multicopter Position Control",
      "shortDesc": "Manual yaw rate input filter time constant\nSetting this parameter to 0 disables the filter",
      "min": 0.0,
      "max": 5.0,
      "units": "s",
      "decimalPlaces": 2
    },
    {
      "name": "MPC_POS_MODE",
      "type": "Int32",
      "default": 3,
      "group": "Multicopter Position Control",
      "shortDesc": "Manual-Position control sub-mode",
      "longDesc": "The supported sub-modes are: 0 Simple position control where sticks map directly to velocity setpoints without smoothing. Useful for velocity control tuning. 1 Smooth position control with maximum acceleration and jerk limits based on slew-rates. 3 Smooth position control with maximum acceleration and jerk limits based on jerk optimized trajectory generator (different algorithm than 1).",
      "values": [
        {
          "value": 0,
          "description": "Simple position control"
        },
        {
          "value": 1,
          "description": "Smooth position control"
        },
        {
          "value": 3,
          "description": "Smooth position control (Jerk optimized)"
        }
      ]
    },
    {
      "name": "MPC_SPOOLUP_TIME",
      "type": "Float",
      "default": 1.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Enforced delay between arming and takeoff",
      "longDesc": "For altitude controlled modes the time from arming the motors until a takeoff is possible gets forced to be at least MPC_SPOOLUP_TIME seconds to ensure the motors and propellers can sppol up and reach idle speed before getting commanded to spin faster. This delay is particularly useful for vehicles with slow motor spin-up e.g. because of large propellers.",
      "min": 0.0,
      "max": 10.0,
      "units": "s"
    },
    {
      "name": "MPC_THR_CURVE",
      "type": "Int32",
      "default": 0,
      "group": "Multicopter Position Control",
      "shortDesc": "Thrust curve in Manual Mode",
      "longDesc": "This parameter defines how the throttle stick input is mapped to commanded thrust in Manual/Stabilized flight mode. In case the default is used ('Rescale to hover thrust'), the stick input is linearly rescaled, such that a centered stick corresponds to the hover throttle (see MPC_THR_HOVER). Select 'No Rescale' to directly map the stick 1:1 to the output. This can be useful in case the hover thrust is very low and the default would lead to too much distortion (e.g. if hover thrust is set to 20%, 80% of the upper thrust range is squeezed into the upper half of the stick range). Note: In case MPC_THR_HOVER is set to 50%, the modes 0 and 1 are the same.",
      "values": [
        {
          "value": 0,
          "description": "Rescale to hover thrust"
        },
        {
          "value": 1,
          "description": "No Rescale"
        }
      ]
    },
    {
      "name": "MPC_THR_HOVER",
      "type": "Float",
      "default": 0.5,
      "group": "Multicopter Position Control",
      "shortDesc": "Hover thrust",
      "longDesc": "Vertical thrust required to hover. This value is mapped to center stick for manual throttle control. With this value set to the thrust required to hover, transition from manual to Altitude or Position mode while hovering will occur with the throttle stick near center, which is then interpreted as (near) zero demand for vertical speed. This parameter is also important for the landing detection to work correctly.",
      "min": 0.1,
      "max": 0.8,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "MPC_THR_MAX",
      "type": "Float",
      "default": 1.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum thrust in auto thrust control",
      "longDesc": "Limit max allowed thrust",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "MPC_THR_MIN",
      "type": "Float",
      "default": 0.12,
      "group": "Multicopter Position Control",
      "shortDesc": "Minimum thrust in auto thrust control",
      "longDesc": "It's recommended to set it > 0 to avoid free fall with zero thrust.",
      "min": 0.05,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "MPC_TILTMAX_AIR",
      "type": "Float",
      "default": 45.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum tilt angle in air",
      "longDesc": "Limits maximum tilt in AUTO and POSCTRL modes during flight.",
      "min": 20.0,
      "max": 89.0,
      "units": "deg",
      "decimalPlaces": 1
    },
    {
      "name": "MPC_TILTMAX_LND",
      "type": "Float",
      "default": 12.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum tilt during landing",
      "longDesc": "Limits maximum tilt angle on landing.",
      "min": 10.0,
      "max": 89.0,
      "units": "deg",
      "decimalPlaces": 1
    },
    {
      "name": "MPC_TKO_RAMP_T",
      "type": "Float",
      "default": 3.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Position control smooth takeoff ramp time constant",
      "longDesc": "Increasing this value will make automatic and manual takeoff slower. If it's too slow the drone might scratch the ground and tip over. A time constant of 0 disables the ramp",
      "min": 0.0,
      "max": 5.0
    },
    {
      "name": "MPC_TKO_SPEED",
      "type": "Float",
      "default": 1.5,
      "group": "Multicopter Position Control",
      "shortDesc": "Takeoff climb rate",
      "min": 1.0,
      "max": 5.0,
      "units": "m/s",
      "decimalPlaces": 2
    },
    {
      "name": "MPC_USE_HTE",
      "type": "Int32",
      "default": 1,
      "group": "Multicopter Position Control",
      "shortDesc": "Hover thrust source selector",
      "longDesc": "Set false to use the fixed parameter MPC_THR_HOVER Set true to use the value computed by the hover thrust estimator"
    },
    {
      "name": "MPC_VELD_LP",
      "type": "Float",
      "default": 5.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Low pass filter cut freq. for numerical velocity derivative",
      "min": 0.0,
      "max": 10.0,
      "units": "Hz",
      "decimalPlaces": 2
    },
    {
      "name": "MPC_VEL_MANUAL",
      "type": "Float",
      "default": 10.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum horizontal velocity setpoint for manual controlled mode\nIf velocity setpoint larger than MPC_XY_VEL_MAX is set, then\nthe setpoint will be capped to MPC_XY_VEL_MAX",
      "min": 3.0,
      "max": 20.0,
      "units": "m/s",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "MPC_XY_CRUISE",
      "type": "Float",
      "default": 5.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum horizontal velocity in mission",
      "longDesc": "Normal horizontal velocity in AUTO modes (includes also RTL / hold / etc.) and endpoint for position stabilized mode (POSCTRL).",
      "min": 3.0,
      "max": 20.0,
      "units": "m/s",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "MPC_XY_MAN_EXPO",
      "type": "Float",
      "default": 0.6,
      "group": "Multicopter Position Control",
      "shortDesc": "Manual position control stick exponential curve sensitivity",
      "longDesc": "The higher the value the less sensitivity the stick has around zero while still reaching the maximum value with full stick deflection. 0 Purely linear input curve (default) 1 Purely cubic input curve",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2
    },
    {
      "name": "MPC_XY_P",
      "type": "Float",
      "default": 0.95,
      "group": "Multicopter Position Control",
      "shortDesc": "Proportional gain for horizontal position error",
      "min": 0.0,
      "max": 2.0,
      "decimalPlaces": 2
    },
    {
      "name": "MPC_XY_TRAJ_P",
      "type": "Float",
      "default": 0.5,
      "group": "Multicopter Position Control",
      "shortDesc": "Proportional gain for horizontal trajectory position error",
      "min": 0.1,
      "max": 1.0,
      "decimalPlaces": 1
    },
    {
      "name": "MPC_XY_VEL_D_ACC",
      "type": "Float",
      "default": 0.2,
      "group": "Multicopter Position Control",
      "shortDesc": "Differential gain for horizontal velocity error. Small values help reduce fast oscillations. If value is too big oscillations will appear again",
      "longDesc": "defined as correction acceleration in m/s^2 per m/s^2 velocity derivative",
      "min": 0.1,
      "max": 2.0,
      "decimalPlaces": 3
    },
    {
      "name": "MPC_XY_VEL_I_ACC",
      "type": "Float",
      "default": 0.4,
      "group": "Multicopter Position Control",
      "shortDesc": "Integral gain for horizontal velocity error",
      "longDesc": "defined as correction acceleration in m/s^2 per m velocity integral Non-zero value allows to eliminate steady state errors in the presence of disturbances like wind.",
      "min": 0.0,
      "max": 60.0,
      "decimalPlaces": 3
    },
    {
      "name": "MPC_XY_VEL_MAX",
      "type": "Float",
      "default": 12.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum horizontal velocity",
      "longDesc": "Maximum horizontal velocity in AUTO mode. If higher speeds are commanded in a mission they will be capped to this velocity.",
      "min": 0.0,
      "max": 20.0,
      "units": "m/s",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "MPC_XY_VEL_P_ACC",
      "type": "Float",
      "default": 1.8,
      "group": "Multicopter Position Control",
      "shortDesc": "Proportional gain for horizontal velocity error",
      "longDesc": "defined as correction acceleration in m/s^2 per m/s velocity error",
      "min": 1.2,
      "max": 3.0,
      "decimalPlaces": 2
    },
    {
      "name": "MPC_YAW_EXPO",
      "type": "Float",
      "default": 0.6,
      "group": "Multicopter Position Control",
      "shortDesc": "Manual control stick yaw rotation exponential curve",
      "longDesc": "The higher the value the less sensitivity the stick has around zero while still reaching the maximum value with full stick deflection. 0 Purely linear input curve (default) 1 Purely cubic input curve",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2
    },
    {
      "name": "MPC_Z_MAN_EXPO",
      "type": "Float",
      "default": 0.6,
      "group": "Multicopter Position Control",
      "shortDesc": "Manual control stick vertical exponential curve",
      "longDesc": "The higher the value the less sensitivity the stick has around zero while still reaching the maximum value with full stick deflection. 0 Purely linear input curve (default) 1 Purely cubic input curve",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2
    },
    {
      "name": "MPC_Z_P",
      "type": "Float",
      "default": 1.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Proportional gain for vertical position error",
      "min": 0.0,
      "max": 1.5,
      "decimalPlaces": 2
    },
    {
      "name": "MPC_Z_VEL_D_ACC",
      "type": "Float",
      "default": 0.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Differential gain for vertical velocity error",
      "longDesc": "defined as correction acceleration in m/s^2 per m/s^2 velocity derivative",
      "min": 0.0,
      "max": 2.0,
      "decimalPlaces": 3
    },
    {
      "name": "MPC_Z_VEL_I_ACC",
      "type": "Float",
      "default": 2.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Integral gain for vertical velocity error",
      "longDesc": "defined as correction acceleration in m/s^2 per m velocity integral Non zero value allows hovering thrust estimation on stabilized or autonomous takeoff.",
      "min": 0.2,
      "max": 2.0,
      "decimalPlaces": 3
    },
    {
      "name": "MPC_Z_VEL_MAX_DN",
      "type": "Float",
      "default": 1.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum vertical descent velocity",
      "longDesc": "Maximum vertical velocity in AUTO mode and endpoint for stabilized modes (ALTCTRL, POSCTRL).",
      "min": 0.5,
      "max": 4.0,
      "units": "m/s"
    },
    {
      "name": "MPC_Z_VEL_MAX_UP",
      "type": "Float",
      "default": 3.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum vertical ascent velocity",
      "longDesc": "Maximum vertical velocity in AUTO mode and endpoint for stabilized modes (ALTCTRL, POSCTRL).",
      "min": 0.5,
      "max": 8.0,
      "units": "m/s",
      "decimalPlaces": 1
    },
    {
      "name": "MPC_Z_VEL_P_ACC",
      "type": "Float",
      "default": 4.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Proportional gain for vertical velocity error",
      "longDesc": "defined as correction acceleration in m/s^2 per m/s velocity error",
      "min": 2.0,
      "max": 8.0,
      "decimalPlaces": 2
    },
    {
      "name": "WV_EN",
      "type": "Int32",
      "default": 0,
      "group": "Multicopter Position Control",
      "shortDesc": "Enable weathervane"
    },
    {
      "name": "WV_ROLL_MIN",
      "type": "Float",
      "default": 1.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Minimum roll angle setpoint for weathervane controller to demand a yaw-rate",
      "min": 0.0,
      "max": 5.0,
      "units": "deg"
    },
    {
      "name": "WV_YRATE_MAX",
      "type": "Float",
      "default": 90.0,
      "group": "Multicopter Position Control",
      "shortDesc": "Maximum yawrate the weathervane controller is allowed to demand",
      "min": 0.0,
      "max": 120.0,
      "units": "deg/s"
    },
    {
      "name": "MC_ACRO_EXPO",
      "type": "Float",
      "default": 0.69,
      "group": "Multicopter Rate Control",
      "shortDesc": "Acro mode Expo factor for Roll and Pitch",
      "longDesc": "Exponential factor for tuning the input curve shape. 0 Purely linear input curve 1 Purely cubic input curve",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2
    },
    {
      "name": "MC_ACRO_EXPO_Y",
      "type": "Float",
      "default": 0.69,
      "group": "Multicopter Rate Control",
      "shortDesc": "Acro mode Expo factor for Yaw",
      "longDesc": "Exponential factor for tuning the input curve shape. 0 Purely linear input curve 1 Purely cubic input curve",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2
    },
    {
      "name": "MC_ACRO_P_MAX",
      "type": "Float",
      "default": 720.0,
      "group": "Multicopter Rate Control",
      "shortDesc": "Max acro pitch rate\ndefault: 2 turns per second",
      "min": 0.0,
      "max": 1800.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 5.0
    },
    {
      "name": "MC_ACRO_R_MAX",
      "type": "Float",
      "default": 720.0,
      "group": "Multicopter Rate Control",
      "shortDesc": "Max acro roll rate\ndefault: 2 turns per second",
      "min": 0.0,
      "max": 1800.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 5.0
    },
    {
      "name": "MC_ACRO_SUPEXPO",
      "type": "Float",
      "default": 0.7,
      "group": "Multicopter Rate Control",
      "shortDesc": "Acro mode SuperExpo factor for Roll and Pitch",
      "longDesc": "SuperExpo factor for refining the input curve shape tuned using MC_ACRO_EXPO. 0 Pure Expo function 0.7 resonable shape enhancement for intuitive stick feel 0.95 very strong bent input curve only near maxima have effect",
      "min": 0.0,
      "max": 0.95,
      "decimalPlaces": 2
    },
    {
      "name": "MC_ACRO_SUPEXPOY",
      "type": "Float",
      "default": 0.7,
      "group": "Multicopter Rate Control",
      "shortDesc": "Acro mode SuperExpo factor for Yaw",
      "longDesc": "SuperExpo factor for refining the input curve shape tuned using MC_ACRO_EXPO_Y. 0 Pure Expo function 0.7 resonable shape enhancement for intuitive stick feel 0.95 very strong bent input curve only near maxima have effect",
      "min": 0.0,
      "max": 0.95,
      "decimalPlaces": 2
    },
    {
      "name": "MC_ACRO_Y_MAX",
      "type": "Float",
      "default": 540.0,
      "group": "Multicopter Rate Control",
      "shortDesc": "Max acro yaw rate\ndefault 1.5 turns per second",
      "min": 0.0,
      "max": 1800.0,
      "units": "deg/s",
      "decimalPlaces": 1,
      "increment": 5.0
    },
    {
      "name": "MC_BAT_SCALE_EN",
      "type": "Int32",
      "default": 0,
      "group": "Multicopter Rate Control",
      "shortDesc": "Battery power level scaler",
      "longDesc": "This compensates for voltage drop of the battery over time by attempting to normalize performance across the operating range of the battery. The copter should constantly behave as if it was fully charged with reduced max acceleration at lower battery percentages. i.e. if hover is at 0.5 throttle at 100% battery, it will still be 0.5 at 60% battery."
    },
    {
      "name": "MC_PITCHRATE_D",
      "type": "Float",
      "default": 0.003,
      "group": "Multicopter Rate Control",
      "shortDesc": "Pitch rate D gain",
      "longDesc": "Pitch rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again.",
      "min": 0.0,
      "decimalPlaces": 4,
      "increment": 0.0005
    },
    {
      "name": "MC_PITCHRATE_FF",
      "type": "Float",
      "default": 0.0,
      "group": "Multicopter Rate Control",
      "shortDesc": "Pitch rate feedforward",
      "longDesc": "Improves tracking performance.",
      "min": 0.0,
      "decimalPlaces": 4
    },
    {
      "name": "MC_PITCHRATE_I",
      "type": "Float",
      "default": 0.2,
      "group": "Multicopter Rate Control",
      "shortDesc": "Pitch rate I gain",
      "longDesc": "Pitch rate integral gain. Can be set to compensate static thrust difference or gravity center offset.",
      "min": 0.0,
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "MC_PITCHRATE_K",
      "type": "Float",
      "default": 1.0,
      "group": "Multicopter Rate Control",
      "shortDesc": "Pitch rate controller gain",
      "longDesc": "Global gain of the controller. This gain scales the P, I and D terms of the controller: output = MC_PITCHRATE_K * (MC_PITCHRATE_P * error + MC_PITCHRATE_I * error_integral + MC_PITCHRATE_D * error_derivative) Set MC_PITCHRATE_P=1 to implement a PID in the ideal form. Set MC_PITCHRATE_K=1 to implement a PID in the parallel form.",
      "min": 0.01,
      "max": 5.0,
      "decimalPlaces": 4,
      "increment": 0.0005
    },
    {
      "name": "MC_PITCHRATE_P",
      "type": "Float",
      "default": 0.15,
      "group": "Multicopter Rate Control",
      "shortDesc": "Pitch rate P gain",
      "longDesc": "Pitch rate proportional gain, i.e. control output for angular speed error 1 rad/s.",
      "min": 0.01,
      "max": 0.6,
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "MC_PR_INT_LIM",
      "type": "Float",
      "default": 0.3,
      "group": "Multicopter Rate Control",
      "shortDesc": "Pitch rate integrator limit",
      "longDesc": "Pitch rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large pitch moment trim changes.",
      "min": 0.0,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "MC_ROLLRATE_D",
      "type": "Float",
      "default": 0.003,
      "group": "Multicopter Rate Control",
      "shortDesc": "Roll rate D gain",
      "longDesc": "Roll rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again.",
      "min": 0.0,
      "max": 0.01,
      "decimalPlaces": 4,
      "increment": 0.0005
    },
    {
      "name": "MC_ROLLRATE_FF",
      "type": "Float",
      "default": 0.0,
      "group": "Multicopter Rate Control",
      "shortDesc": "Roll rate feedforward",
      "longDesc": "Improves tracking performance.",
      "min": 0.0,
      "decimalPlaces": 4
    },
    {
      "name": "MC_ROLLRATE_I",
      "type": "Float",
      "default": 0.2,
      "group": "Multicopter Rate Control",
      "shortDesc": "Roll rate I gain",
      "longDesc": "Roll rate integral gain. Can be set to compensate static thrust difference or gravity center offset.",
      "min": 0.0,
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "MC_ROLLRATE_K",
      "type": "Float",
      "default": 1.0,
      "group": "Multicopter Rate Control",
      "shortDesc": "Roll rate controller gain",
      "longDesc": "Global gain of the controller. This gain scales the P, I and D terms of the controller: output = MC_ROLLRATE_K * (MC_ROLLRATE_P * error + MC_ROLLRATE_I * error_integral + MC_ROLLRATE_D * error_derivative) Set MC_ROLLRATE_P=1 to implement a PID in the ideal form. Set MC_ROLLRATE_K=1 to implement a PID in the parallel form.",
      "min": 0.01,
      "max": 5.0,
      "decimalPlaces": 4,
      "increment": 0.0005
    },
    {
      "name": "MC_ROLLRATE_P",
      "type": "Float",
      "default": 0.15,
      "group": "Multicopter Rate Control",
      "shortDesc": "Roll rate P gain",
      "longDesc": "Roll rate proportional gain, i.e. control output for angular speed error 1 rad/s.",
      "min": 0.01,
      "max": 0.5,
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "MC_RR_INT_LIM",
      "type": "Float",
      "default": 0.3,
      "group": "Multicopter Rate Control",
      "shortDesc": "Roll rate integrator limit",
      "longDesc": "Roll rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large roll moment trim changes.",
      "min": 0.0,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "MC_YAWRATE_D",
      "type": "Float",
      "default": 0.0,
      "group": "Multicopter Rate Control",
      "shortDesc": "Yaw rate D gain",
      "longDesc": "Yaw rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again.",
      "min": 0.0,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "MC_YAWRATE_FF",
      "type": "Float",
      "default": 0.0,
      "group": "Multicopter Rate Control",
      "shortDesc": "Yaw rate feedforward",
      "longDesc": "Improves tracking performance.",
      "min": 0.0,
      "decimalPlaces": 4,
      "increment": 0.01
    },
    {
      "name": "MC_YAWRATE_I",
      "type": "Float",
      "default": 0.1,
      "group": "Multicopter Rate Control",
      "shortDesc": "Yaw rate I gain",
      "longDesc": "Yaw rate integral gain. Can be set to compensate static thrust difference or gravity center offset.",
      "min": 0.0,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "MC_YAWRATE_K",
      "type": "Float",
      "default": 1.0,
      "group": "Multicopter Rate Control",
      "shortDesc": "Yaw rate controller gain",
      "longDesc": "Global gain of the controller. This gain scales the P, I and D terms of the controller: output = MC_YAWRATE_K * (MC_YAWRATE_P * error + MC_YAWRATE_I * error_integral + MC_YAWRATE_D * error_derivative) Set MC_YAWRATE_P=1 to implement a PID in the ideal form. Set MC_YAWRATE_K=1 to implement a PID in the parallel form.",
      "min": 0.0,
      "max": 5.0,
      "decimalPlaces": 4,
      "increment": 0.0005
    },
    {
      "name": "MC_YAWRATE_P",
      "type": "Float",
      "default": 0.2,
      "group": "Multicopter Rate Control",
      "shortDesc": "Yaw rate P gain",
      "longDesc": "Yaw rate proportional gain, i.e. control output for angular speed error 1 rad/s.",
      "min": 0.0,
      "max": 0.6,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "MC_YR_INT_LIM",
      "type": "Float",
      "default": 0.3,
      "group": "Multicopter Rate Control",
      "shortDesc": "Yaw rate integrator limit",
      "longDesc": "Yaw rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large yaw moment trim changes.",
      "min": 0.0,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "MOT_SLEW_MAX",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Minimum motor rise time (slew rate limit)",
      "longDesc": "Minimum time allowed for the motor input signal to pass through a range of 1000 PWM units. A value x means that the motor signal can only go from 1000 to 2000 PWM in maximum x seconds. Zero means that slew rate limiting is disabled.",
      "min": 0.0,
      "units": "s/(1000*PWM)"
    },
    {
      "name": "PWM_AUX_DIS1",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the auxiliary 1 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_DIS2",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the auxiliary 2 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_DIS3",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the auxiliary 3 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_DIS4",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the auxiliary 4 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_DIS5",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the auxiliary 5 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_DIS6",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the auxiliary 6 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_DIS7",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the auxiliary 7 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_DIS8",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the auxiliary 8 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_DISARMED",
      "type": "Int32",
      "default": 1500,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for auxiliary outputs",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. The main use of this parameter is to silence ESCs when they are disarmed.",
      "min": 0,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_FAIL1",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the auxiliary 1 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_FAIL2",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the auxiliary 2 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_FAIL3",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the auxiliary 3 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_FAIL4",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the auxiliary 4 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_FAIL5",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the auxiliary 5 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_FAIL6",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the auxiliary 6 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_FAIL7",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the auxiliary 7 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_FAIL8",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the auxiliary 8 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MAX",
      "type": "Int32",
      "default": 2000,
      "group": "PWM Outputs",
      "shortDesc": "Set the maximum PWM for the auxiliary outputs",
      "longDesc": "Set to 2000 for industry default or 2100 to increase servo travel.",
      "min": 1600,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MAX1",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the auxiliary 1 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MAX2",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the auxiliary 2 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MAX3",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the auxiliary 3 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MAX4",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the auxiliary 4 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MAX5",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the auxiliary 5 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MAX6",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the auxiliary 6 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MAX7",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the auxiliary 7 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MAX8",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the auxiliary 8 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MIN",
      "type": "Int32",
      "default": 1000,
      "group": "PWM Outputs",
      "shortDesc": "Set the minimum PWM for the auxiliary outputs",
      "longDesc": "Set to 1000 for industry default or 900 to increase servo travel.",
      "min": 800,
      "max": 1400,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MIN1",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the auxiliary 1 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MIN2",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the auxiliary 2 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MIN3",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the auxiliary 3 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MIN4",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the auxiliary 4 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MIN5",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the auxiliary 5 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MIN6",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the auxiliary 6 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MIN7",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the auxiliary 7 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_MIN8",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the auxiliary 8 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_RATE",
      "type": "Int32",
      "default": 50,
      "group": "PWM Outputs",
      "shortDesc": "Set the PWM output frequency for the auxiliary outputs",
      "longDesc": "Set to 400 for industry default or 1000 for high frequency ESCs. Set to 0 for Oneshot125.",
      "min": -1,
      "max": 2000,
      "units": "Hz",
      "rebootRequired": true
    },
    {
      "name": "PWM_AUX_REV1",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of auxiliary output channel 1",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_AUX_REV2",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of auxiliary output channel 2",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_AUX_REV3",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of auxiliary output channel 3",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_AUX_REV4",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of auxiliary output channel 4",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_AUX_REV5",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of auxiliary output channel 5",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_AUX_REV6",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of auxiliary output channel 6",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_AUX_REV7",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of auxiliary output channel 7",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_AUX_REV8",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of auxiliary output channel 8",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_AUX_TRIM1",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for auxiliary output channel 1",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_AUX_TRIM2",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for auxiliary output channel 2",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_AUX_TRIM3",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for auxiliary output channel 3",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_AUX_TRIM4",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for auxiliary output channel 4",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_AUX_TRIM5",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for auxiliary output channel 5",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_AUX_TRIM6",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for auxiliary output channel 6",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_AUX_TRIM7",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for auxiliary output channel 7",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_AUX_TRIM8",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for auxiliary output channel 8",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_DISARMED",
      "type": "Int32",
      "default": 900,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the main outputs",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. The main use of this parameter is to silence ESCs when they are disarmed.",
      "min": 0,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_DIS1",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the main 1 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_DIS2",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the main 2 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_DIS3",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the main 3 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_DIS4",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the main 4 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_DIS5",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the main 5 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_DIS6",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the main 6 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_DIS7",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the main 7 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_DIS8",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the disarmed PWM for the main 8 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_FAIL1",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the main 1 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_FAIL2",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the main 2 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_FAIL3",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the main 3 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_FAIL4",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the main 4 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_FAIL5",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the main 5 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_FAIL6",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the main 6 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_FAIL7",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the main 7 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_FAIL8",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the failsafe PWM for the main 8 output",
      "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MAX1",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the main 1 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MAX2",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the main 2 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MAX3",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the main 3 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MAX4",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the main 4 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MAX5",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the main 5 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MAX6",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the main 6 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MAX7",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the main 7 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MAX8",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the max PWM value for the main 8 output",
      "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MIN1",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the main 1 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MIN2",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the main 2 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MIN3",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the main 3 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MIN4",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the main 4 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MIN5",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the main 5 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MIN6",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the main 6 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MIN7",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the main 7 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_MIN8",
      "type": "Int32",
      "default": -1,
      "group": "PWM Outputs",
      "shortDesc": "Set the min PWM value for the main 8 output",
      "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used",
      "min": -1,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MAIN_REV1",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of main output channel 1",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_MAIN_REV2",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of main output channel 2",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_MAIN_REV3",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of main output channel 3",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_MAIN_REV4",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of main output channel 4",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_MAIN_REV5",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of main output channel 5",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_MAIN_REV6",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of main output channel 6",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_MAIN_REV7",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of main output channel 7",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_MAIN_REV8",
      "type": "Int32",
      "default": 0,
      "group": "PWM Outputs",
      "shortDesc": "Invert direction of main output channel 8",
      "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction."
    },
    {
      "name": "PWM_MAIN_TRIM1",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for main output channel 1",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_MAIN_TRIM2",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for main output channel 2",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_MAIN_TRIM3",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for main output channel 3",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_MAIN_TRIM4",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for main output channel 4",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_MAIN_TRIM5",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for main output channel 5",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_MAIN_TRIM6",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for main output channel 6",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_MAIN_TRIM7",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for main output channel 7",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_MAIN_TRIM8",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Trim value for main output channel 8",
      "longDesc": "Set to normalized offset",
      "min": -0.2,
      "max": 0.2,
      "decimalPlaces": 2
    },
    {
      "name": "PWM_MAX",
      "type": "Int32",
      "default": 2000,
      "group": "PWM Outputs",
      "shortDesc": "Set the maximum PWM for the main outputs",
      "longDesc": "Set to 2000 for industry default or 2100 to increase servo travel.",
      "min": 1600,
      "max": 2200,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_MIN",
      "type": "Int32",
      "default": 1000,
      "group": "PWM Outputs",
      "shortDesc": "Set the minimum PWM for the main outputs",
      "longDesc": "Set to 1000 for industry default or 900 to increase servo travel.",
      "min": 800,
      "max": 1400,
      "units": "us",
      "rebootRequired": true
    },
    {
      "name": "PWM_RATE",
      "type": "Int32",
      "default": 400,
      "group": "PWM Outputs",
      "shortDesc": "Set the PWM output frequency for the main outputs",
      "longDesc": "Set to 400 for industry default or 1000 for high frequency ESCs. Set to 0 for Oneshot125.",
      "min": -1,
      "max": 2000,
      "units": "Hz",
      "rebootRequired": true
    },
    {
      "name": "THR_MDL_FAC",
      "type": "Float",
      "default": 0.0,
      "group": "PWM Outputs",
      "shortDesc": "Thrust to motor control signal model parameter",
      "longDesc": "Parameter used to model the nonlinear relationship between motor control signal (e.g. PWM) and static thrust. The model is: rel_thrust = factor * rel_signal^2 + (1-factor) * rel_signal, where rel_thrust is the normalized thrust between 0 and 1, and rel_signal is the relative motor control signal between 0 and 1.",
      "min": 0.0,
      "max": 1.0
    },
    {
      "name": "PLD_BTOUT",
      "type": "Float",
      "default": 5.0,
      "group": "Precision Land",
      "shortDesc": "Landing Target Timeout",
      "longDesc": "Time after which the landing target is considered lost without any new measurements.",
      "min": 0.0,
      "max": 50.0,
      "units": "s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "PLD_FAPPR_ALT",
      "type": "Float",
      "default": 0.1,
      "group": "Precision Land",
      "shortDesc": "Final approach altitude",
      "longDesc": "Allow final approach (without horizontal positioning) if losing landing target closer than this to the ground.",
      "min": 0.0,
      "max": 10.0,
      "units": "m",
      "decimalPlaces": 2,
      "increment": 0.1
    },
    {
      "name": "PLD_HACC_RAD",
      "type": "Float",
      "default": 0.2,
      "group": "Precision Land",
      "shortDesc": "Horizontal acceptance radius",
      "longDesc": "Start descending if closer above landing target than this.",
      "min": 0.0,
      "max": 10.0,
      "units": "m",
      "decimalPlaces": 2,
      "increment": 0.1
    },
    {
      "name": "PLD_MAX_SRCH",
      "type": "Int32",
      "default": 3,
      "group": "Precision Land",
      "shortDesc": "Maximum number of search attempts",
      "longDesc": "Maximum number of times to seach for the landing target if it is lost during the precision landing.",
      "min": 0,
      "max": 100
    },
    {
      "name": "PLD_SRCH_ALT",
      "type": "Float",
      "default": 10.0,
      "group": "Precision Land",
      "shortDesc": "Search altitude",
      "longDesc": "Altitude above home to which to climb when searching for the landing target.",
      "min": 0.0,
      "max": 100.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.1
    },
    {
      "name": "PLD_SRCH_TOUT",
      "type": "Float",
      "default": 10.0,
      "group": "Precision Land",
      "shortDesc": "Search timeout",
      "longDesc": "Time allowed to search for the landing target before falling back to normal landing.",
      "min": 0.0,
      "max": 100.0,
      "units": "s",
      "decimalPlaces": 1,
      "increment": 0.1
    },
    {
      "name": "RC10_DZ",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 10 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC10_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 10 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC10_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 10 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC10_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 10 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC10_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 10 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC11_DZ",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 11 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC11_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 11 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC11_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 11 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC11_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 11 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC11_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 11 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC12_DZ",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 12 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC12_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 12 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC12_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 12 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC12_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 12 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC12_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 12 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC13_DZ",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 13 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC13_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 13 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC13_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 13 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC13_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 13 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC13_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 13 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC14_DZ",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 14 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC14_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 14 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC14_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 14 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC14_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 14 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC14_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 14 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC15_DZ",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 15 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC15_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 15 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC15_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 15 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC15_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 15 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC15_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 15 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC16_DZ",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 16 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC16_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 16 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC16_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 16 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC16_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 16 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC16_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 16 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC17_DZ",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 17 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC17_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 17 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC17_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 17 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC17_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 17 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC17_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 17 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC18_DZ",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 18 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC18_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 18 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC18_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 18 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC18_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 18 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC18_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 18 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC1_DZ",
      "type": "Float",
      "default": 10.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 1 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0,
      "units": "us"
    },
    {
      "name": "RC1_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 1 maximum",
      "longDesc": "Maximum value for RC channel 1",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC1_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 1 minimum",
      "longDesc": "Minimum value for RC channel 1",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC1_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 1 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC1_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 1 trim",
      "longDesc": "Mid point value (same as min for throttle)",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC2_DZ",
      "type": "Float",
      "default": 10.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 2 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0,
      "units": "us"
    },
    {
      "name": "RC2_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 2 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC2_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 2 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC2_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 2 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC2_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 2 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC3_DZ",
      "type": "Float",
      "default": 10.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 3 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0,
      "units": "us"
    },
    {
      "name": "RC3_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 3 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC3_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 3 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC3_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 3 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC3_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 3 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC4_DZ",
      "type": "Float",
      "default": 10.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 4 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0,
      "units": "us"
    },
    {
      "name": "RC4_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 4 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC4_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 4 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC4_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 4 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC4_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 4 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC5_DZ",
      "type": "Float",
      "default": 10.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 5 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC5_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 5 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC5_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 5 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC5_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 5 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC5_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 5 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC6_DZ",
      "type": "Float",
      "default": 10.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 6 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC6_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 6 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC6_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 6 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC6_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 6 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC6_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 6 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC7_DZ",
      "type": "Float",
      "default": 10.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 7 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC7_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 7 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC7_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 7 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC7_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 7 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC7_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 7 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC8_DZ",
      "type": "Float",
      "default": 10.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 8 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC8_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 8 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC8_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 8 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC8_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 8 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC8_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 8 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC9_DZ",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 9 dead zone",
      "longDesc": "The +- range of this value around the trim value will be considered as zero.",
      "min": 0.0,
      "max": 100.0
    },
    {
      "name": "RC9_MAX",
      "type": "Float",
      "default": 2000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 9 maximum",
      "longDesc": "Maximum value for this channel.",
      "min": 1500.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC9_MIN",
      "type": "Float",
      "default": 1000.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 9 minimum",
      "longDesc": "Minimum value for this channel.",
      "min": 800.0,
      "max": 1500.0,
      "units": "us"
    },
    {
      "name": "RC9_REV",
      "type": "Float",
      "default": 1.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 9 reverse",
      "longDesc": "Set to -1 to reverse channel.",
      "min": -1.0,
      "max": 1.0,
      "values": [
        {
          "value": -1.0,
          "description": "Reverse"
        },
        {
          "value": 1.0,
          "description": "Normal"
        }
      ]
    },
    {
      "name": "RC9_TRIM",
      "type": "Float",
      "default": 1500.0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel 9 trim",
      "longDesc": "Mid point value (has to be set to the same as min for throttle channel).",
      "min": 800.0,
      "max": 2200.0,
      "units": "us"
    },
    {
      "name": "RC_CHAN_CNT",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "RC channel count",
      "longDesc": "This parameter is used by Ground Station software to save the number of channels which were used during RC calibration. It is only meant for ground station use.",
      "min": 0,
      "max": 18
    },
    {
      "name": "RC_FAILS_THR",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "Failsafe channel PWM threshold",
      "longDesc": "Set to a value slightly above the PWM value assumed by throttle in a failsafe event, but ensure it is below the PWM value assumed by throttle during normal operation.",
      "min": 0,
      "max": 2200,
      "units": "us"
    },
    {
      "name": "RC_MAP_AUX1",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "AUX1 Passthrough RC channel",
      "longDesc": "Default function: Camera pitch",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_AUX2",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "AUX2 Passthrough RC channel",
      "longDesc": "Default function: Camera roll",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_AUX3",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "AUX3 Passthrough RC channel",
      "longDesc": "Default function: Camera azimuth / yaw",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_AUX4",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "AUX4 Passthrough RC channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_AUX5",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "AUX5 Passthrough RC channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_AUX6",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "AUX6 Passthrough RC channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_FAILSAFE",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "Failsafe channel mapping",
      "longDesc": "The RC mapping index indicates which channel is used for failsafe If 0, whichever channel is mapped to throttle is used otherwise the value indicates the specific RC channel to use",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_PARAM1",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "PARAM1 tuning channel",
      "longDesc": "Can be used for parameter tuning with the RC. This one is further referenced as the 1st parameter channel. Set to 0 to deactivate *",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_PARAM2",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "PARAM2 tuning channel",
      "longDesc": "Can be used for parameter tuning with the RC. This one is further referenced as the 2nd parameter channel. Set to 0 to deactivate *",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_PARAM3",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "PARAM3 tuning channel",
      "longDesc": "Can be used for parameter tuning with the RC. This one is further referenced as the 3th parameter channel. Set to 0 to deactivate *",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_PITCH",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "Pitch control channel mapping",
      "longDesc": "The channel index (starting from 1 for channel 1) indicates which channel should be used for reading pitch inputs from. A value of zero indicates the switch is not assigned.",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_ROLL",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "Roll control channel mapping",
      "longDesc": "The channel index (starting from 1 for channel 1) indicates which channel should be used for reading roll inputs from. A value of zero indicates the switch is not assigned.",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_THROTTLE",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "Throttle control channel mapping",
      "longDesc": "The channel index (starting from 1 for channel 1) indicates which channel should be used for reading throttle inputs from. A value of zero indicates the switch is not assigned.",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_YAW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Calibration",
      "shortDesc": "Yaw control channel mapping",
      "longDesc": "The channel index (starting from 1 for channel 1) indicates which channel should be used for reading yaw inputs from. A value of zero indicates the switch is not assigned.",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "TRIM_PITCH",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "Pitch trim",
      "longDesc": "The trim value is the actuator control value the system needs for straight and level flight. It can be calibrated by flying manually straight and level using the RC trims and copying them using the GCS.",
      "min": -0.25,
      "max": 0.25,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "TRIM_ROLL",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "Roll trim",
      "longDesc": "The trim value is the actuator control value the system needs for straight and level flight. It can be calibrated by flying manually straight and level using the RC trims and copying them using the GCS.",
      "min": -0.25,
      "max": 0.25,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "TRIM_YAW",
      "type": "Float",
      "default": 0.0,
      "group": "Radio Calibration",
      "shortDesc": "Yaw trim",
      "longDesc": "The trim value is the actuator control value the system needs for straight and level flight. It can be calibrated by flying manually straight and level using the RC trims and copying them using the GCS.",
      "min": -0.25,
      "max": 0.25,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "RC_ACRO_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for selecting acro mode",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_ARMSWITCH_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for the arm switch",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_ASSIST_TH",
      "type": "Float",
      "default": 0.25,
      "group": "Radio Switches",
      "shortDesc": "Threshold for selecting assist mode",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_AUTO_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for selecting auto mode",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_GEAR_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for the landing gear switch",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_KILLSWITCH_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for the kill switch",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_LOITER_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for selecting loiter mode",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_MAN_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for the manual switch",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_MAP_ACRO_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Acro switch channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_ARM_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Arm switch channel",
      "longDesc": "Use it to arm/disarm via switch instead of default throttle stick. If this is assigned, arming and disarming via stick is disabled.",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_FLAPS",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Flaps channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_FLTMODE",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Single channel flight mode selection",
      "longDesc": "If this parameter is non-zero, flight modes are only selected by this channel and are assigned to six slots.",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_GEAR_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Landing gear switch channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_KILL_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Emergency Kill switch channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_LOITER_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Loiter switch channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_MAN_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Manual switch channel mapping",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_MODE_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Mode switch channel mapping",
      "longDesc": "This is the main flight mode selector. The channel index (starting from 1 for channel 1) indicates which channel should be used for deciding about the main mode. A value of zero indicates the switch is not assigned.",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_OFFB_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Offboard switch channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_POSCTL_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Position Control switch channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_RATT_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Rattitude switch channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_RETURN_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Return switch channel",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_STAB_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "Stabilize switch channel mapping",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_MAP_TRANS_SW",
      "type": "Int32",
      "default": 0,
      "group": "Radio Switches",
      "shortDesc": "VTOL transition switch channel mapping",
      "min": 0,
      "max": 18,
      "values": [
        {
          "value": 0,
          "description": "Unassigned"
        },
        {
          "value": 1,
          "description": "Channel 1"
        },
        {
          "value": 2,
          "description": "Channel 2"
        },
        {
          "value": 3,
          "description": "Channel 3"
        },
        {
          "value": 4,
          "description": "Channel 4"
        },
        {
          "value": 5,
          "description": "Channel 5"
        },
        {
          "value": 6,
          "description": "Channel 6"
        },
        {
          "value": 7,
          "description": "Channel 7"
        },
        {
          "value": 8,
          "description": "Channel 8"
        },
        {
          "value": 9,
          "description": "Channel 9"
        },
        {
          "value": 10,
          "description": "Channel 10"
        },
        {
          "value": 11,
          "description": "Channel 11"
        },
        {
          "value": 12,
          "description": "Channel 12"
        },
        {
          "value": 13,
          "description": "Channel 13"
        },
        {
          "value": 14,
          "description": "Channel 14"
        },
        {
          "value": 15,
          "description": "Channel 15"
        },
        {
          "value": 16,
          "description": "Channel 16"
        },
        {
          "value": 17,
          "description": "Channel 17"
        },
        {
          "value": 18,
          "description": "Channel 18"
        }
      ]
    },
    {
      "name": "RC_OFFB_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for selecting offboard mode",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_POSCTL_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for selecting posctl mode",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_RATT_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for selecting rattitude mode",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_RETURN_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for selecting return to launch mode",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_STAB_TH",
      "type": "Float",
      "default": 0.5,
      "group": "Radio Switches",
      "shortDesc": "Threshold for the stabilize switch",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RC_TRANS_TH",
      "type": "Float",
      "default": 0.75,
      "group": "Radio Switches",
      "shortDesc": "Threshold for the VTOL transition switch",
      "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channel<th",
      "min": -1.0,
      "max": 1.0
    },
    {
      "name": "RTL_CONE_ANG",
      "type": "Int32",
      "default": 0,
      "group": "Return Mode",
      "shortDesc": "Half-angle of the return mode altitude cone",
      "longDesc": "Defines the half-angle of a cone centered around the destination position that affects the altitude at which the vehicle returns.",
      "min": 0,
      "max": 90,
      "units": "deg",
      "values": [
        {
          "value": 0,
          "description": "No cone, always climb to RTL_RETURN_ALT above destination."
        },
        {
          "value": 25,
          "description": "25 degrees half cone angle."
        },
        {
          "value": 45,
          "description": "45 degrees half cone angle."
        },
        {
          "value": 65,
          "description": "65 degrees half cone angle."
        },
        {
          "value": 80,
          "description": "80 degrees half cone angle."
        },
        {
          "value": 90,
          "description": "Only climb to at least RTL_DESCEND_ALT above destination."
        }
      ]
    },
    {
      "name": "RTL_DESCEND_ALT",
      "type": "Float",
      "default": 30.0,
      "group": "Return Mode",
      "shortDesc": "Return mode loiter altitude",
      "longDesc": "Descend to this altitude (above destination position) after return, and wait for time defined in RTL_LAND_DELAY. Land (i.e. slowly descend) from this altitude if autolanding allowed.",
      "min": 2.0,
      "max": 100.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "RTL_LAND_DELAY",
      "type": "Float",
      "default": -1.0,
      "group": "Return Mode",
      "shortDesc": "Return mode delay",
      "longDesc": "Delay before landing (after initial descent) in Return mode. If set to -1 the system will not land but loiter at RTL_DESCEND_ALT.",
      "min": -1.0,
      "max": 300.0,
      "units": "s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "RTL_MIN_DIST",
      "type": "Float",
      "default": 5.0,
      "group": "Return Mode",
      "shortDesc": "Maximum horizontal distance from return destination, below which RTL_DESCEND_ALT is used as return altitude",
      "longDesc": "If the vehicle is less than this horizontal distance from the return destination when return mode is activated it will ascend to RTL_DESCEND_ALT for the return journey (rather than the altitude set by RTL_RETURN_ALT and RTL_CONE_ANG).",
      "min": 0.5,
      "max": 100.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "RTL_RETURN_ALT",
      "type": "Float",
      "default": 60.0,
      "group": "Return Mode",
      "shortDesc": "Return mode return altitude",
      "longDesc": "Default minimum altitude above destination (e.g. home, safe point, landing pattern) for return flight. This is affected by RTL_MIN_DIST and RTL_CONE_ANG.",
      "min": 0.0,
      "max": 150.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "RTL_TYPE",
      "type": "Int32",
      "default": 0,
      "group": "Return Mode",
      "shortDesc": "Return type",
      "longDesc": "Return mode destination and flight path (home location, rally point, mission landing pattern, reverse mission)",
      "values": [
        {
          "value": 0,
          "description": "Return to closest safe point (home or rally point) via direct path."
        },
        {
          "value": 1,
          "description": "Return to closest safe point other than home (mission landing pattern or rally point), via direct path. If no mission landing or rally points are defined return home via direct path."
        },
        {
          "value": 2,
          "description": "Return to a planned mission landing, if available, using the mission path, else return to home via the reverse mission path. Do not consider rally points."
        },
        {
          "value": 3,
          "description": "Return via direct path to closest destination: home, start of mission landing pattern or safe point. If the destination is a mission landing pattern, follow the pattern to land."
        }
      ]
    },
    {
      "name": "RTL_PLD_MD",
      "type": "Int32",
      "default": 0,
      "group": "Return To Land",
      "shortDesc": "RTL precision land mode",
      "longDesc": "Use precision landing when doing an RTL landing phase.",
      "values": [
        {
          "value": 0,
          "description": "No precision landing"
        },
        {
          "value": 1,
          "description": "Opportunistic precision landing"
        },
        {
          "value": 2,
          "description": "Required precision landing"
        }
      ]
    },
    {
      "name": "GND_L1_DAMPING",
      "type": "Float",
      "default": 0.75,
      "group": "Rover Position Control",
      "shortDesc": "L1 damping",
      "longDesc": "Damping factor for L1 control.",
      "min": 0.6,
      "max": 0.9,
      "decimalPlaces": 2,
      "increment": 0.05
    },
    {
      "name": "GND_L1_DIST",
      "type": "Float",
      "default": 5.0,
      "group": "Rover Position Control",
      "shortDesc": "L1 distance",
      "longDesc": "This is the waypoint radius",
      "min": 0.0,
      "max": 100.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.1
    },
    {
      "name": "GND_L1_PERIOD",
      "type": "Float",
      "default": 10.0,
      "group": "Rover Position Control",
      "shortDesc": "L1 period",
      "longDesc": "This is the L1 distance and defines the tracking point ahead of the rover it's following. Using values around 2-5 for a traxxas stampede. Shorten slowly during tuning until response is sharp without oscillation.",
      "min": 0.0,
      "max": 50.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "GND_MAX_ANG",
      "type": "Float",
      "default": 0.7854,
      "group": "Rover Position Control",
      "shortDesc": "Maximum turn angle for Ackerman steering.\nAt a control output of 0, the steering wheels are at 0 radians.\nAt a control output of 1, the steering wheels are at GND_MAX_ANG radians",
      "min": 0.0,
      "max": 3.14159,
      "units": "rad",
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "GND_SPEED_D",
      "type": "Float",
      "default": 0.001,
      "group": "Rover Position Control",
      "shortDesc": "Speed proportional gain",
      "longDesc": "This is the derivative gain for the speed closed loop controller",
      "min": 0.0,
      "max": 50.0,
      "units": "%m/s",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "GND_SPEED_I",
      "type": "Float",
      "default": 3.0,
      "group": "Rover Position Control",
      "shortDesc": "Speed Integral gain",
      "longDesc": "This is the integral gain for the speed closed loop controller",
      "min": 0.0,
      "max": 50.0,
      "units": "%m/s",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "GND_SPEED_IMAX",
      "type": "Float",
      "default": 1.0,
      "group": "Rover Position Control",
      "shortDesc": "Speed integral maximum value",
      "longDesc": "This is the maxim value the integral can reach to prevent wind-up.",
      "min": 0.005,
      "max": 50.0,
      "units": "%m/s",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "GND_SPEED_MAX",
      "type": "Float",
      "default": 10.0,
      "group": "Rover Position Control",
      "shortDesc": "Maximum ground speed",
      "min": 0.0,
      "max": 40.0,
      "units": "m/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "GND_SPEED_P",
      "type": "Float",
      "default": 2.0,
      "group": "Rover Position Control",
      "shortDesc": "Speed proportional gain",
      "longDesc": "This is the proportional gain for the speed closed loop controller",
      "min": 0.005,
      "max": 50.0,
      "units": "%m/s",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "GND_SPEED_THR_SC",
      "type": "Float",
      "default": 1.0,
      "group": "Rover Position Control",
      "shortDesc": "Speed to throttle scaler",
      "longDesc": "This is a gain to map the speed control output to the throttle linearly.",
      "min": 0.005,
      "max": 50.0,
      "units": "%m/s",
      "decimalPlaces": 3,
      "increment": 0.005
    },
    {
      "name": "GND_SPEED_TRIM",
      "type": "Float",
      "default": 3.0,
      "group": "Rover Position Control",
      "shortDesc": "Trim ground speed",
      "min": 0.0,
      "max": 40.0,
      "units": "m/s",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "GND_SP_CTRL_MODE",
      "type": "Int32",
      "default": 1,
      "group": "Rover Position Control",
      "shortDesc": "Control mode for speed",
      "longDesc": "This allows the user to choose between closed loop gps speed or open loop cruise throttle speed",
      "min": 0,
      "max": 1,
      "values": [
        {
          "value": 0,
          "description": "open loop control"
        },
        {
          "value": 1,
          "description": "close the loop with gps speed"
        }
      ]
    },
    {
      "name": "GND_THR_CRUISE",
      "type": "Float",
      "default": 0.1,
      "group": "Rover Position Control",
      "shortDesc": "Cruise throttle",
      "longDesc": "This is the throttle setting required to achieve the desired cruise speed. 10% is ok for a traxxas stampede vxl with ESC set to training mode",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "GND_THR_IDLE",
      "type": "Float",
      "default": 0.0,
      "group": "Rover Position Control",
      "shortDesc": "Idle throttle",
      "longDesc": "This is the minimum throttle while on the ground, it should be 0 for a rover",
      "min": 0.0,
      "max": 0.4,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "GND_THR_MAX",
      "type": "Float",
      "default": 0.3,
      "group": "Rover Position Control",
      "shortDesc": "Throttle limit max",
      "longDesc": "This is the maximum throttle % that can be used by the controller. For a Traxxas stampede vxl with the ESC set to training, 30 % is enough",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "GND_THR_MIN",
      "type": "Float",
      "default": 0.0,
      "group": "Rover Position Control",
      "shortDesc": "Throttle limit min",
      "longDesc": "This is the minimum throttle % that can be used by the controller. Set to 0 for rover",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "GND_WHEEL_BASE",
      "type": "Float",
      "default": 2.0,
      "group": "Rover Position Control",
      "shortDesc": "Distance from front axle to rear axle",
      "min": 0.0,
      "units": "m",
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "RWTO_AIRSPD_SCL",
      "type": "Float",
      "default": 1.3,
      "group": "Runway Takeoff",
      "shortDesc": "Min. airspeed scaling factor for takeoff.\nPitch up will be commanded when the following airspeed is reached:\nFW_AIRSPD_MIN * RWTO_AIRSPD_SCL",
      "min": 0.0,
      "max": 2.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "RWTO_HDG",
      "type": "Int32",
      "default": 0,
      "group": "Runway Takeoff",
      "shortDesc": "Specifies which heading should be held during runnway takeoff",
      "longDesc": "0: airframe heading, 1: heading towards takeoff waypoint",
      "min": 0,
      "max": 1,
      "values": [
        {
          "value": 0,
          "description": "Airframe"
        },
        {
          "value": 1,
          "description": "Waypoint"
        }
      ]
    },
    {
      "name": "RWTO_MAX_PITCH",
      "type": "Float",
      "default": 20.0,
      "group": "Runway Takeoff",
      "shortDesc": "Max pitch during takeoff.\nFixed-wing settings are used if set to 0. Note that there is also a minimum\npitch of 10 degrees during takeoff, so this must be larger if set",
      "min": 0.0,
      "max": 60.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "RWTO_MAX_ROLL",
      "type": "Float",
      "default": 25.0,
      "group": "Runway Takeoff",
      "shortDesc": "Max roll during climbout.\nRoll is limited during climbout to ensure enough lift and prevents aggressive\nnavigation before we're on a safe height",
      "min": 0.0,
      "max": 60.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "RWTO_MAX_THR",
      "type": "Float",
      "default": 1.0,
      "group": "Runway Takeoff",
      "shortDesc": "Max throttle during runway takeoff.\n(Can be used to test taxi on runway)",
      "min": 0.0,
      "max": 1.0,
      "units": "norm",
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "RWTO_NAV_ALT",
      "type": "Float",
      "default": 5.0,
      "group": "Runway Takeoff",
      "shortDesc": "Altitude AGL at which we have enough ground clearance to allow some roll.\nUntil RWTO_NAV_ALT is reached the plane is held level and only\nrudder is used to keep the heading (see RWTO_HDG). This should be below\nFW_CLMBOUT_DIFF if FW_CLMBOUT_DIFF > 0",
      "min": 0.0,
      "max": 100.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 1.0
    },
    {
      "name": "RWTO_PSP",
      "type": "Float",
      "default": 0.0,
      "group": "Runway Takeoff",
      "shortDesc": "Pitch setpoint during taxi / before takeoff airspeed is reached.\nA taildragger with stearable wheel might need to pitch up\na little to keep it's wheel on the ground before airspeed\nto takeoff is reached",
      "min": -10.0,
      "max": 20.0,
      "units": "deg",
      "decimalPlaces": 1,
      "increment": 0.5
    },
    {
      "name": "RWTO_RAMP_TIME",
      "type": "Float",
      "default": 2.0,
      "group": "Runway Takeoff",
      "shortDesc": "Throttle ramp up time for runway takeoff",
      "min": 1.0,
      "max": 15.0,
      "units": "s",
      "decimalPlaces": 2,
      "increment": 0.1
    },
    {
      "name": "RWTO_TKOFF",
      "type": "Int32",
      "default": 0,
      "group": "Runway Takeoff",
      "shortDesc": "Runway takeoff with landing gear"
    },
    {
      "name": "SDLOG_BOOT_BAT",
      "type": "Int32",
      "default": 0,
      "group": "SD Logging",
      "shortDesc": "Battery-only Logging",
      "longDesc": "When enabled, logging will not start from boot if battery power is not detected (e.g. powered via USB on a test bench). This prevents extraneous flight logs from being created during bench testing. Note that this only applies to log-from-boot modes. This has no effect on arm-based modes."
    },
    {
      "name": "SDLOG_DIRS_MAX",
      "type": "Int32",
      "default": 0,
      "group": "SD Logging",
      "shortDesc": "Maximum number of log directories to keep",
      "longDesc": "If there are more log directories than this value, the system will delete the oldest directories during startup. In addition, the system will delete old logs if there is not enough free space left. The minimum amount is 300 MB. If this is set to 0, old directories will only be removed if the free space falls below the minimum. Note: this does not apply to mission log files.",
      "min": 0,
      "max": 1000,
      "rebootRequired": true
    },
    {
      "name": "SDLOG_MISSION",
      "type": "Int32",
      "default": 0,
      "group": "SD Logging",
      "shortDesc": "Mission Log",
      "longDesc": "If enabled, a small additional \"mission\" log file will be written to the SD card. The log contains just those messages that are useful for tasks like generating flight statistics and geotagging. The different modes can be used to further reduce the logged data (and thus the log file size). For example, choose geotagging mode to only log data required for geotagging. Note that the normal/full log is still created, and contains all the data in the mission log (and more).",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Disabled"
        },
        {
          "value": 1,
          "description": "All mission messages"
        },
        {
          "value": 2,
          "description": "Geotagging messages"
        }
      ]
    },
    {
      "name": "SDLOG_MODE",
      "type": "Int32",
      "default": 0,
      "group": "SD Logging",
      "shortDesc": "Logging Mode",
      "longDesc": "Determines when to start and stop logging. By default, logging is started when arming the system, and stopped when disarming.",
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "disabled"
        },
        {
          "value": 0,
          "description": "when armed until disarm (default)"
        },
        {
          "value": 1,
          "description": "from boot until disarm"
        },
        {
          "value": 2,
          "description": "from boot until shutdown"
        },
        {
          "value": 3,
          "description": "depending on AUX1 RC channel"
        }
      ]
    },
    {
      "name": "SDLOG_PROFILE",
      "type": "Int32",
      "default": 1,
      "group": "SD Logging",
      "shortDesc": "Logging topic profile (integer bitmask)",
      "longDesc": "This integer bitmask controls the set and rates of logged topics. The default allows for general log analysis and estimator replay, while keeping the log file size reasonably small. Enabling multiple sets leads to higher bandwidth requirements and larger log files. Set bits true to enable: 0 : Default set (used for general log analysis) 1 : Full rate estimator (EKF2) replay topics 2 : Topics for thermal calibration (high rate raw IMU and Baro sensor data) 3 : Topics for system identification (high rate actuator control and IMU data) 4 : Full rates for analysis of fast maneuvers (RC, attitude, rates and actuators) 5 : Debugging topics (debug_*.msg topics, for custom code) 6 : Topics for sensor comparison (low rate raw IMU, Baro and Magnetomer data) 7 : Topics for computer vision and collision avoidance 8 : Raw FIFO high-rate IMU (Gyro) 9 : Raw FIFO high-rate IMU (Accel)",
      "min": 0,
      "max": 1023,
      "rebootRequired": true,
      "bitmask": [
        {
          "index": 0,
          "description": "Default set (general log analysis)"
        },
        {
          "index": 1,
          "description": "Estimator replay (EKF2)"
        },
        {
          "index": 2,
          "description": "Thermal calibration"
        },
        {
          "index": 3,
          "description": "System identification"
        },
        {
          "index": 4,
          "description": "High rate"
        },
        {
          "index": 5,
          "description": "Debug"
        },
        {
          "index": 6,
          "description": "Sensor comparison"
        },
        {
          "index": 7,
          "description": "Computer Vision and Avoidance"
        },
        {
          "index": 8,
          "description": "Raw FIFO high-rate IMU (Gyro)"
        },
        {
          "index": 9,
          "description": "Raw FIFO high-rate IMU (Accel)"
        }
      ]
    },
    {
      "name": "SDLOG_UTC_OFFSET",
      "type": "Int32",
      "default": 0,
      "group": "SD Logging",
      "shortDesc": "UTC offset (unit: min)",
      "longDesc": "the difference in hours and minutes from Coordinated Universal Time (UTC) for a your place and date. for example, In case of South Korea(UTC+09:00), UTC offset is 540 min (9*60) refer to https://en.wikipedia.org/wiki/List_of_UTC_time_offsets",
      "min": -1000,
      "max": 1000,
      "units": "min"
    },
    {
      "name": "SDLOG_UUID",
      "type": "Int32",
      "default": 1,
      "group": "SD Logging",
      "shortDesc": "Log UUID",
      "longDesc": "If set to 1, add an ID to the log, which uniquely identifies the vehicle"
    },
    {
      "name": "SIM_BAT_DRAIN",
      "type": "Float",
      "default": 60.0,
      "group": "SITL",
      "shortDesc": "Simulator Battery drain interval",
      "min": 1.0,
      "max": 86400.0,
      "units": "s",
      "increment": 1.0
    },
    {
      "name": "SIM_BAT_MIN_PCT",
      "type": "Float",
      "default": 50.0,
      "group": "SITL",
      "shortDesc": "Simulator Battery minimal percentage. Can be used to alter\nthe battery level during SITL- or HITL-simulation on the fly.\nParticularly useful for testing different low-battery behaviour",
      "min": 0.0,
      "max": 100.0,
      "units": "%",
      "increment": 0.1
    },
    {
      "name": "CAL_ACC0_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of the Accelerometer that the calibration is for"
    },
    {
      "name": "CAL_ACC0_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer 0 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_ACC0_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of accelerometer 0 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_ACC0_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer X-axis offset"
    },
    {
      "name": "CAL_ACC0_XSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer X-axis scaling factor"
    },
    {
      "name": "CAL_ACC0_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Y-axis offset"
    },
    {
      "name": "CAL_ACC0_YSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Y-axis scaling factor"
    },
    {
      "name": "CAL_ACC0_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Z-axis offset"
    },
    {
      "name": "CAL_ACC0_ZSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Z-axis scaling factor"
    },
    {
      "name": "CAL_ACC1_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of the Accelerometer that the calibration is for"
    },
    {
      "name": "CAL_ACC1_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer 1 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_ACC1_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of accelerometer 1 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_ACC1_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer X-axis offset"
    },
    {
      "name": "CAL_ACC1_XSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer X-axis scaling factor"
    },
    {
      "name": "CAL_ACC1_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Y-axis offset"
    },
    {
      "name": "CAL_ACC1_YSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Y-axis scaling factor"
    },
    {
      "name": "CAL_ACC1_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Z-axis offset"
    },
    {
      "name": "CAL_ACC1_ZSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Z-axis scaling factor"
    },
    {
      "name": "CAL_ACC2_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of the Accelerometer that the calibration is for"
    },
    {
      "name": "CAL_ACC2_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer 2 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_ACC2_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of accelerometer 2 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_ACC2_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer X-axis offset"
    },
    {
      "name": "CAL_ACC2_XSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer X-axis scaling factor"
    },
    {
      "name": "CAL_ACC2_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Y-axis offset"
    },
    {
      "name": "CAL_ACC2_YSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Y-axis scaling factor"
    },
    {
      "name": "CAL_ACC2_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Z-axis offset"
    },
    {
      "name": "CAL_ACC2_ZSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Z-axis scaling factor"
    },
    {
      "name": "CAL_ACC3_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of the Accelerometer that the calibration is for"
    },
    {
      "name": "CAL_ACC3_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer 3 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_ACC3_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of accelerometer 3 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_ACC3_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer X-axis offset"
    },
    {
      "name": "CAL_ACC3_XSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer X-axis scaling factor"
    },
    {
      "name": "CAL_ACC3_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Y-axis offset"
    },
    {
      "name": "CAL_ACC3_YSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Y-axis scaling factor"
    },
    {
      "name": "CAL_ACC3_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Z-axis offset"
    },
    {
      "name": "CAL_ACC3_ZSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Accelerometer Z-axis scaling factor"
    },
    {
      "name": "CAL_GYRO0_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of the Gyro that the calibration is for"
    },
    {
      "name": "CAL_GYRO0_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro 0 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_GYRO0_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of gyro 0 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_GYRO0_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro X-axis offset"
    },
    {
      "name": "CAL_GYRO0_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro Y-axis offset"
    },
    {
      "name": "CAL_GYRO0_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro Z-axis offset"
    },
    {
      "name": "CAL_GYRO1_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of the Gyro that the calibration is for"
    },
    {
      "name": "CAL_GYRO1_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro 1 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_GYRO1_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of gyro 1 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_GYRO1_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro X-axis offset"
    },
    {
      "name": "CAL_GYRO1_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro Y-axis offset"
    },
    {
      "name": "CAL_GYRO1_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro Z-axis offset"
    },
    {
      "name": "CAL_GYRO2_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of the Gyro that the calibration is for"
    },
    {
      "name": "CAL_GYRO2_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro 2 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_GYRO2_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of gyro 2 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_GYRO2_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro X-axis offset"
    },
    {
      "name": "CAL_GYRO2_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro Y-axis offset"
    },
    {
      "name": "CAL_GYRO2_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro Z-axis offset"
    },
    {
      "name": "CAL_GYRO3_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of the Gyro that the calibration is for"
    },
    {
      "name": "CAL_GYRO3_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro 3 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_GYRO3_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of gyro 3 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_GYRO3_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro X-axis offset"
    },
    {
      "name": "CAL_GYRO3_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro Y-axis offset"
    },
    {
      "name": "CAL_GYRO3_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Gyro Z-axis offset"
    },
    {
      "name": "CAL_MAG0_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of Magnetometer the calibration is for"
    },
    {
      "name": "CAL_MAG0_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Mag 0 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_MAG0_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of magnetometer 0 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_MAG0_XCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nX component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG0_XODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG0_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis offset"
    },
    {
      "name": "CAL_MAG0_XSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis scaling factor"
    },
    {
      "name": "CAL_MAG0_YCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nY component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG0_YODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG0_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis offset"
    },
    {
      "name": "CAL_MAG0_YSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis scaling factor"
    },
    {
      "name": "CAL_MAG0_ZCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nZ component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG0_ZODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG0_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis offset"
    },
    {
      "name": "CAL_MAG0_ZSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis scaling factor"
    },
    {
      "name": "CAL_MAG1_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of Magnetometer the calibration is for"
    },
    {
      "name": "CAL_MAG1_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Mag 1 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_MAG1_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of magnetometer 1 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_MAG1_XCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nX component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG1_XODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG1_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis offset"
    },
    {
      "name": "CAL_MAG1_XSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis scaling factor"
    },
    {
      "name": "CAL_MAG1_YCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nY component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG1_YODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG1_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis offset"
    },
    {
      "name": "CAL_MAG1_YSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis scaling factor"
    },
    {
      "name": "CAL_MAG1_ZCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nZ component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG1_ZODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG1_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis offset"
    },
    {
      "name": "CAL_MAG1_ZSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis scaling factor"
    },
    {
      "name": "CAL_MAG2_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of Magnetometer the calibration is for"
    },
    {
      "name": "CAL_MAG2_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Mag 2 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_MAG2_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of magnetometer 2 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_MAG2_XCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nX component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG2_XODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG2_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis offset"
    },
    {
      "name": "CAL_MAG2_XSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis scaling factor"
    },
    {
      "name": "CAL_MAG2_YCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nY component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG2_YODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG2_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis offset"
    },
    {
      "name": "CAL_MAG2_YSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis scaling factor"
    },
    {
      "name": "CAL_MAG2_ZCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nZ component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG2_ZODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG2_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis offset"
    },
    {
      "name": "CAL_MAG2_ZSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis scaling factor"
    },
    {
      "name": "CAL_MAG3_ID",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "ID of Magnetometer the calibration is for"
    },
    {
      "name": "CAL_MAG3_PRIO",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Mag 3 priority",
      "values": [
        {
          "value": -1,
          "description": " Uninitialized"
        },
        {
          "value": 0,
          "description": "  Disabled"
        },
        {
          "value": 1,
          "description": "  Min"
        },
        {
          "value": 25,
          "description": " Low"
        },
        {
          "value": 50,
          "description": " Medium (Default)"
        },
        {
          "value": 75,
          "description": " High"
        },
        {
          "value": 100,
          "description": "Max"
        }
      ]
    },
    {
      "name": "CAL_MAG3_ROT",
      "type": "Int32",
      "default": -1,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Rotation of magnetometer 3 relative to airframe",
      "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "Internal"
        },
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "CAL_MAG3_XCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nX component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG3_XODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG3_XOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis offset"
    },
    {
      "name": "CAL_MAG3_XSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer X-axis scaling factor"
    },
    {
      "name": "CAL_MAG3_YCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nY component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG3_YODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG3_YOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis offset"
    },
    {
      "name": "CAL_MAG3_YSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Y-axis scaling factor"
    },
    {
      "name": "CAL_MAG3_ZCOMP",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Coefficient describing linear relationship between\nZ component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]"
    },
    {
      "name": "CAL_MAG3_ZODIAG",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis off diagonal factor"
    },
    {
      "name": "CAL_MAG3_ZOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis offset"
    },
    {
      "name": "CAL_MAG3_ZSCALE",
      "type": "Float",
      "default": 1.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Magnetometer Z-axis scaling factor"
    },
    {
      "name": "CAL_MAG_COMP_TYP",
      "type": "Int32",
      "default": 0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Type of magnetometer compensation",
      "values": [
        {
          "value": 0,
          "description": "Disabled"
        },
        {
          "value": 1,
          "description": "Throttle-based compensation"
        },
        {
          "value": 2,
          "description": "Current-based compensation (battery_status instance 0)"
        },
        {
          "value": 3,
          "description": "Current-based compensation (battery_status instance 1)"
        }
      ]
    },
    {
      "name": "SENS_DPRES_ANSC",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "shortDesc": "Differential pressure sensor analog scaling",
      "longDesc": "Pick the appropriate scaling from the datasheet. this number defines the (linear) conversion from voltage to Pascal (pa). For the MPXV7002DP this is 1000. NOTE: If the sensor always registers zero, try switching the static and dynamic tubes."
    },
    {
      "name": "SENS_DPRES_OFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensor Calibration",
      "category": "System",
      "shortDesc": "Differential pressure sensor offset",
      "longDesc": "The offset (zero-reading) in Pascal"
    },
    {
      "name": "SENS_FLOW_MAXHGT",
      "type": "Float",
      "default": 3.0,
      "group": "Sensor Calibration",
      "shortDesc": "Maximum height above ground when reliant on optical flow",
      "longDesc": "This parameter defines the maximum distance from ground at which the optical flow sensor operates reliably. The height setpoint will be limited to be no greater than this value when the navigation system is completely reliant on optical flow data and the height above ground estimate is valid. The sensor may be usable above this height, but accuracy will progressively degrade.",
      "min": 1.0,
      "max": 25.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.1
    },
    {
      "name": "SENS_FLOW_MAXR",
      "type": "Float",
      "default": 2.5,
      "group": "Sensor Calibration",
      "shortDesc": "Magnitude of maximum angular flow rate reliably measurable by the optical flow sensor.\nOptical flow data will not fused by the estimators if the magnitude of the flow rate exceeds this value and\ncontrol loops will be instructed to limit ground speed such that the flow rate produced by movement over ground\nis less than 50% of this value",
      "min": 1.0,
      "units": "rad/s",
      "decimalPlaces": 2
    },
    {
      "name": "SENS_FLOW_MINHGT",
      "type": "Float",
      "default": 0.7,
      "group": "Sensor Calibration",
      "shortDesc": "Minimum height above ground when reliant on optical flow",
      "longDesc": "This parameter defines the minimum distance from ground at which the optical flow sensor operates reliably. The sensor may be usable below this height, but accuracy will progressively reduce to loss of focus.",
      "min": 0.0,
      "max": 1.0,
      "units": "m",
      "decimalPlaces": 1,
      "increment": 0.1
    },
    {
      "name": "CAL_AIR_CMODEL",
      "type": "Int32",
      "default": 0,
      "group": "Sensors",
      "shortDesc": "Airspeed sensor compensation model for the SDP3x",
      "longDesc": "Model with Pitot CAL_AIR_TUBED_MM: Not used, 1.5 mm tubes assumed. CAL_AIR_TUBELEN: Length of the tubes connecting the pitot to the sensor. Model without Pitot (1.5 mm tubes) CAL_AIR_TUBED_MM: Not used, 1.5 mm tubes assumed. CAL_AIR_TUBELEN: Length of the tubes connecting the pitot to the sensor. Tube Pressure Drop CAL_AIR_TUBED_MM: Diameter in mm of the pitot and tubes, must have the same diameter. CAL_AIR_TUBELEN: Length of the tubes connecting the pitot to the sensor and the static + dynamic port length of the pitot.",
      "values": [
        {
          "value": 0,
          "description": "Model with Pitot"
        },
        {
          "value": 1,
          "description": "Model without Pitot (1.5 mm tubes)"
        },
        {
          "value": 2,
          "description": "Tube Pressure Drop"
        }
      ]
    },
    {
      "name": "CAL_AIR_TUBED_MM",
      "type": "Float",
      "default": 1.5,
      "group": "Sensors",
      "shortDesc": "Airspeed sensor tube diameter. Only used for the Tube Pressure Drop Compensation",
      "min": 0.1,
      "max": 100.0,
      "units": "mm"
    },
    {
      "name": "CAL_AIR_TUBELEN",
      "type": "Float",
      "default": 0.2,
      "group": "Sensors",
      "shortDesc": "Airspeed sensor tube length",
      "longDesc": "See the CAL_AIR_CMODEL explanation on how this parameter should be set.",
      "min": 0.01,
      "max": 2.0,
      "units": "m"
    },
    {
      "name": "CAL_MAG_ROT_AUTO",
      "type": "Int32",
      "default": 1,
      "group": "Sensors",
      "shortDesc": "Automatically set external rotations",
      "longDesc": "During calibration attempt to automatically determine the rotation of external magnetometers."
    },
    {
      "name": "CAL_MAG_SIDES",
      "type": "Int32",
      "default": 63,
      "group": "Sensors",
      "shortDesc": "Bitfield selecting mag sides for calibration",
      "longDesc": "If set to two side calibration, only the offsets are estimated, the scale calibration is left unchanged. Thus an initial six side calibration is recommended. Bits: ORIENTATION_TAIL_DOWN = 1 ORIENTATION_NOSE_DOWN = 2 ORIENTATION_LEFT = 4 ORIENTATION_RIGHT = 8 ORIENTATION_UPSIDE_DOWN = 16 ORIENTATION_RIGHTSIDE_UP = 32",
      "min": 34,
      "max": 63,
      "values": [
        {
          "value": 34,
          "description": "Two side calibration"
        },
        {
          "value": 38,
          "description": "Three side calibration"
        },
        {
          "value": 63,
          "description": "Six side calibration"
        }
      ]
    },
    {
      "name": "IMU_ACCEL_CUTOFF",
      "type": "Float",
      "default": 30.0,
      "group": "Sensors",
      "shortDesc": "Low pass filter cutoff frequency for accel",
      "longDesc": "The cutoff frequency for the 2nd order butterworth filter on the primary accelerometer. This only affects the signal sent to the controllers, not the estimators. 0 disables the filter.",
      "min": 0.0,
      "max": 1000.0,
      "units": "Hz",
      "rebootRequired": true
    },
    {
      "name": "IMU_DGYRO_CUTOFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensors",
      "shortDesc": "Cutoff frequency for angular acceleration (D-Term filter)",
      "longDesc": "The cutoff frequency for the 2nd order butterworth filter used on the time derivative of the measured angular velocity, also known as the D-term filter in the rate controller. The D-term uses the derivative of the rate and thus is the most susceptible to noise. Therefore, using a D-term filter allows to increase IMU_GYRO_CUTOFF, which leads to reduced control latency and permits to increase the P gains. A value of 0 disables the filter.",
      "min": 0.0,
      "max": 1000.0,
      "units": "Hz",
      "rebootRequired": true
    },
    {
      "name": "IMU_GYRO_CUTOFF",
      "type": "Float",
      "default": 30.0,
      "group": "Sensors",
      "shortDesc": "Low pass filter cutoff frequency for gyro",
      "longDesc": "The cutoff frequency for the 2nd order butterworth filter on the primary gyro. This only affects the angular velocity sent to the controllers, not the estimators. It applies also to the angular acceleration (D-Term filter), see IMU_DGYRO_CUTOFF. A value of 0 disables the filter.",
      "min": 0.0,
      "max": 1000.0,
      "units": "Hz",
      "rebootRequired": true
    },
    {
      "name": "IMU_GYRO_NF_BW",
      "type": "Float",
      "default": 20.0,
      "group": "Sensors",
      "shortDesc": "Notch filter bandwidth for gyro",
      "longDesc": "The frequency width of the stop band for the 2nd order notch filter on the primary gyro. See \"IMU_GYRO_NF_FREQ\" to activate the filter and to set the notch frequency. Applies to both angular velocity and angular acceleration sent to the controllers.",
      "min": 0.0,
      "max": 100.0,
      "units": "Hz",
      "rebootRequired": true
    },
    {
      "name": "IMU_GYRO_NF_FREQ",
      "type": "Float",
      "default": 0.0,
      "group": "Sensors",
      "shortDesc": "Notch filter frequency for gyro",
      "longDesc": "The center frequency for the 2nd order notch filter on the primary gyro. This filter can be enabled to avoid feedback amplification of structural resonances at a specific frequency. This only affects the signal sent to the controllers, not the estimators. Applies to both angular velocity and angular acceleration sent to the controllers. See \"IMU_GYRO_NF_BW\" to set the bandwidth of the filter. A value of 0 disables the filter.",
      "min": 0.0,
      "max": 1000.0,
      "units": "Hz",
      "rebootRequired": true
    },
    {
      "name": "IMU_GYRO_RATEMAX",
      "type": "Int32",
      "default": 0,
      "group": "Sensors",
      "shortDesc": "Gyro control data maximum publication rate",
      "longDesc": "This is the maximum rate the gyro control data (sensor_gyro) will be allowed to publish at. Set to 0 to disable and publish at the native sensor sample rate.",
      "min": 0,
      "max": 2000,
      "units": "Hz",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "0 (no limit)"
        },
        {
          "value": 50,
          "description": "50 Hz"
        },
        {
          "value": 250,
          "description": "250 Hz"
        },
        {
          "value": 400,
          "description": "400 Hz"
        },
        {
          "value": 1000,
          "description": "1000 Hz"
        },
        {
          "value": 2000,
          "description": "2000 Hz"
        }
      ]
    },
    {
      "name": "IMU_INTEG_RATE",
      "type": "Int32",
      "default": 200,
      "group": "Sensors",
      "shortDesc": "IMU integration rate",
      "longDesc": "The rate at which raw IMU data is integrated to produce delta angles and delta velocities. Recommended to set this to a multiple of the estimator update period (currently 10 ms for ekf2).",
      "min": 100,
      "max": 1000,
      "units": "Hz",
      "rebootRequired": true,
      "values": [
        {
          "value": 100,
          "description": "100 Hz"
        },
        {
          "value": 200,
          "description": "200 Hz"
        },
        {
          "value": 400,
          "description": "400 Hz"
        }
      ]
    },
    {
      "name": "SENS_BARO_QNH",
      "type": "Float",
      "default": 1013.25,
      "group": "Sensors",
      "shortDesc": "QNH for barometer",
      "min": 500.0,
      "max": 1500.0,
      "units": "hPa",
      "rebootRequired": true
    },
    {
      "name": "SENS_BARO_RATE",
      "type": "Float",
      "default": 20.0,
      "group": "Sensors",
      "shortDesc": "Baro max rate",
      "longDesc": "Barometric air data maximum publication rate. This is an upper bound, actual barometric data rate is still dependant on the sensor.",
      "min": 1.0,
      "max": 200.0,
      "units": "Hz",
      "rebootRequired": true
    },
    {
      "name": "SENS_BOARD_ROT",
      "type": "Int32",
      "default": 0,
      "group": "Sensors",
      "shortDesc": "Board rotation",
      "longDesc": "This parameter defines the rotation of the FMU board relative to the platform.",
      "min": -1,
      "max": 41,
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        },
        {
          "value": 8,
          "description": "Roll 180\u00b0"
        },
        {
          "value": 9,
          "description": "Roll 180\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 10,
          "description": "Roll 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 11,
          "description": "Roll 180\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 12,
          "description": "Pitch 180\u00b0"
        },
        {
          "value": 13,
          "description": "Roll 180\u00b0, Yaw 225\u00b0"
        },
        {
          "value": 14,
          "description": "Roll 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 15,
          "description": "Roll 180\u00b0, Yaw 315\u00b0"
        },
        {
          "value": 16,
          "description": "Roll 90\u00b0"
        },
        {
          "value": 17,
          "description": "Roll 90\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 18,
          "description": "Roll 90\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 19,
          "description": "Roll 90\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 20,
          "description": "Roll 270\u00b0"
        },
        {
          "value": 21,
          "description": "Roll 270\u00b0, Yaw 45\u00b0"
        },
        {
          "value": 22,
          "description": "Roll 270\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 23,
          "description": "Roll 270\u00b0, Yaw 135\u00b0"
        },
        {
          "value": 24,
          "description": "Pitch 90\u00b0"
        },
        {
          "value": 25,
          "description": "Pitch 270\u00b0"
        },
        {
          "value": 26,
          "description": "Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 27,
          "description": "Pitch 180\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 28,
          "description": "Roll 90\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 29,
          "description": "Roll 180\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 30,
          "description": "Roll 270\u00b0, Pitch 90\u00b0"
        },
        {
          "value": 31,
          "description": "Roll 90\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 32,
          "description": "Roll 270\u00b0, Pitch 180\u00b0"
        },
        {
          "value": 33,
          "description": "Roll 90\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 34,
          "description": "Roll 180\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 35,
          "description": "Roll 270\u00b0, Pitch 270\u00b0"
        },
        {
          "value": 36,
          "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0"
        },
        {
          "value": 37,
          "description": "Roll 90\u00b0, Yaw 270\u00b0"
        },
        {
          "value": 38,
          "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0"
        },
        {
          "value": 39,
          "description": "Pitch 315\u00b0"
        },
        {
          "value": 40,
          "description": "Roll 90\u00b0, Pitch 315\u00b0"
        },
        {
          "value": 41,
          "description": "Roll 270\u00b0, Yaw 180\u00b0"
        }
      ]
    },
    {
      "name": "SENS_BOARD_X_OFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensors",
      "shortDesc": "Board rotation X (Roll) offset",
      "longDesc": "This parameter defines a rotational offset in degrees around the X (Roll) axis It allows the user to fine tune the board offset in the event of misalignment.",
      "units": "deg"
    },
    {
      "name": "SENS_BOARD_Y_OFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensors",
      "shortDesc": "Board rotation Y (Pitch) offset",
      "longDesc": "This parameter defines a rotational offset in degrees around the Y (Pitch) axis. It allows the user to fine tune the board offset in the event of misalignment.",
      "units": "deg"
    },
    {
      "name": "SENS_BOARD_Z_OFF",
      "type": "Float",
      "default": 0.0,
      "group": "Sensors",
      "shortDesc": "Board rotation Z (YAW) offset",
      "longDesc": "This parameter defines a rotational offset in degrees around the Z (Yaw) axis. It allows the user to fine tune the board offset in the event of misalignment.",
      "units": "deg"
    },
    {
      "name": "SENS_EN_THERMAL",
      "type": "Int32",
      "default": -1,
      "group": "Sensors",
      "category": "System",
      "shortDesc": "Thermal control of sensor temperature",
      "values": [
        {
          "value": -1,
          "description": "Thermal control unavailable"
        },
        {
          "value": 0,
          "description": "Thermal control off"
        },
        {
          "value": 1,
          "description": "Thermal control enabled"
        }
      ]
    },
    {
      "name": "SENS_EXT_I2C_PRB",
      "type": "Int32",
      "default": 1,
      "group": "Sensors",
      "category": "System",
      "shortDesc": "External I2C probe",
      "longDesc": "Probe for optional external I2C devices."
    },
    {
      "name": "SENS_FLOW_ROT",
      "type": "Int32",
      "default": 6,
      "group": "Sensors",
      "shortDesc": "PX4Flow board rotation",
      "longDesc": "This parameter defines the yaw rotation of the PX4FLOW board relative to the vehicle body frame. Zero rotation is defined as X on flow board pointing towards front of vehicle. The recommneded installation default for the PX4FLOW board is with the Y axis forward (270 deg yaw).",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "No rotation"
        },
        {
          "value": 1,
          "description": "Yaw 45\u00b0"
        },
        {
          "value": 2,
          "description": "Yaw 90\u00b0"
        },
        {
          "value": 3,
          "description": "Yaw 135\u00b0"
        },
        {
          "value": 4,
          "description": "Yaw 180\u00b0"
        },
        {
          "value": 5,
          "description": "Yaw 225\u00b0"
        },
        {
          "value": 6,
          "description": "Yaw 270\u00b0"
        },
        {
          "value": 7,
          "description": "Yaw 315\u00b0"
        }
      ]
    },
    {
      "name": "SENS_GPS_MASK",
      "type": "Int32",
      "default": 0,
      "group": "Sensors",
      "shortDesc": "Multi GPS Blending Control Mask",
      "longDesc": "Set bits in the following positions to set which GPS accuracy metrics will be used to calculate the blending weight. Set to zero to disable and always used first GPS instance. 0 : Set to true to use speed accuracy 1 : Set to true to use horizontal position accuracy 2 : Set to true to use vertical position accuracy",
      "min": 0,
      "max": 7,
      "bitmask": [
        {
          "index": 0,
          "description": "use speed accuracy"
        },
        {
          "index": 1,
          "description": "use hpos accuracy"
        },
        {
          "index": 2,
          "description": "use vpos accuracy"
        }
      ]
    },
    {
      "name": "SENS_GPS_TAU",
      "type": "Float",
      "default": 10.0,
      "group": "Sensors",
      "shortDesc": "Multi GPS Blending Time Constant",
      "longDesc": "Sets the longest time constant that will be applied to the calculation of GPS position and height offsets used to correct data from multiple GPS data for steady state position differences.",
      "min": 1.0,
      "max": 100.0,
      "units": "s",
      "decimalPlaces": 1
    },
    {
      "name": "SENS_IMU_MODE",
      "type": "Int32",
      "default": 1,
      "group": "Sensors",
      "category": "System",
      "shortDesc": "Sensors hub IMU mode",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Disabled"
        },
        {
          "value": 1,
          "description": "Publish primary IMU selection"
        }
      ]
    },
    {
      "name": "SENS_MAG_MODE",
      "type": "Int32",
      "default": 1,
      "group": "Sensors",
      "category": "System",
      "shortDesc": "Sensors hub mag mode",
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Publish all magnetometers"
        },
        {
          "value": 1,
          "description": "Publish primary magnetometer"
        }
      ]
    },
    {
      "name": "SENS_MAG_RATE",
      "type": "Float",
      "default": 50.0,
      "group": "Sensors",
      "shortDesc": "Magnetometer max rate",
      "longDesc": "Magnetometer data maximum publication rate. This is an upper bound, actual magnetometer data rate is still dependant on the sensor.",
      "min": 1.0,
      "max": 200.0,
      "units": "Hz",
      "rebootRequired": true
    },
    {
      "name": "SYS_AUTOCONFIG",
      "type": "Int32",
      "default": 0,
      "group": "System",
      "shortDesc": "Automatically configure default values",
      "longDesc": "Set to 1 to reset parameters on next system startup (setting defaults). Platform-specific values are used if available. RC* parameters are preserved.",
      "values": [
        {
          "value": 0,
          "description": "Keep parameters"
        },
        {
          "value": 1,
          "description": "Reset parameters"
        },
        {
          "value": 2,
          "description": "Reload airframe parameters"
        }
      ]
    },
    {
      "name": "SYS_AUTOSTART",
      "type": "Int32",
      "default": 0,
      "group": "System",
      "shortDesc": "Auto-start script index",
      "longDesc": "CHANGING THIS VALUE REQUIRES A RESTART. Defines the auto-start script used to bootstrap the system.",
      "min": 0,
      "max": 9999999,
      "rebootRequired": true
    },
    {
      "name": "SYS_BL_UPDATE",
      "type": "Int32",
      "default": 0,
      "group": "System",
      "shortDesc": "Bootloader update",
      "longDesc": "If enabled, update the bootloader on the next boot. WARNING: do not cut the power during an update process, otherwise you will have to recover using some alternative method (e.g. JTAG). Instructions: - Insert an SD card - Enable this parameter - Reboot the board (plug the power or send a reboot command) - Wait until the board comes back up (or at least 2 minutes) - If it does not come back, check the file bootlog.txt on the SD card",
      "rebootRequired": true
    },
    {
      "name": "SYS_CAL_ACCEL",
      "type": "Int32",
      "default": 0,
      "group": "System",
      "shortDesc": "Enable auto start of accelerometer thermal calibration at the next power up",
      "longDesc": "0 : Set to 0 to do nothing 1 : Set to 1 to start a calibration at next boot This parameter is reset to zero when the the temperature calibration starts. default (0, no calibration)",
      "min": 0,
      "max": 1
    },
    {
      "name": "SYS_CAL_BARO",
      "type": "Int32",
      "default": 0,
      "group": "System",
      "shortDesc": "Enable auto start of barometer thermal calibration at the next power up",
      "longDesc": "0 : Set to 0 to do nothing 1 : Set to 1 to start a calibration at next boot This parameter is reset to zero when the the temperature calibration starts. default (0, no calibration)",
      "min": 0,
      "max": 1
    },
    {
      "name": "SYS_CAL_GYRO",
      "type": "Int32",
      "default": 0,
      "group": "System",
      "shortDesc": "Enable auto start of rate gyro thermal calibration at the next power up",
      "longDesc": "0 : Set to 0 to do nothing 1 : Set to 1 to start a calibration at next boot This parameter is reset to zero when the the temperature calibration starts. default (0, no calibration)",
      "min": 0,
      "max": 1
    },
    {
      "name": "SYS_CAL_TDEL",
      "type": "Int32",
      "default": 24,
      "group": "System",
      "shortDesc": "Required temperature rise during thermal calibration",
      "longDesc": "A temperature increase greater than this value is required during calibration. Calibration will complete for each sensor when the temperature increase above the starting temeprature exceeds the value set by SYS_CAL_TDEL. If the temperature rise is insufficient, the calibration will continue indefinitely and the board will need to be repowered to exit.",
      "min": 10,
      "units": "celcius"
    },
    {
      "name": "SYS_CAL_TMAX",
      "type": "Int32",
      "default": 10,
      "group": "System",
      "shortDesc": "Maximum starting temperature for thermal calibration",
      "longDesc": "Temperature calibration will not start if the temperature of any sensor is higher than the value set by SYS_CAL_TMAX.",
      "units": "celcius"
    },
    {
      "name": "SYS_CAL_TMIN",
      "type": "Int32",
      "default": 5,
      "group": "System",
      "shortDesc": "Minimum starting temperature for thermal calibration",
      "longDesc": "Temperature calibration for each sensor will ignore data if the temperature is lower than the value set by SYS_CAL_TMIN.",
      "units": "celcius"
    },
    {
      "name": "SYS_FAC_CAL_MODE",
      "type": "Int32",
      "default": 0,
      "group": "System",
      "shortDesc": "Enable factory calibration mode",
      "longDesc": "If enabled, future sensor calibrations will be stored to /fs/mtd_caldata. Note: this is only supported on boards with a separate calibration storage /fs/mtd_caldata."
    },
    {
      "name": "SYS_FAILURE_EN",
      "type": "Int32",
      "default": 0,
      "group": "System",
      "shortDesc": "Enable failure injection",
      "longDesc": "If enabled allows MAVLink INJECT_FAILURE commands. WARNING: the failures can easily cause crashes and are to be used with caution!"
    },
    {
      "name": "SYS_HAS_BARO",
      "type": "Int32",
      "default": 1,
      "group": "System",
      "shortDesc": "Control if the vehicle has a barometer",
      "longDesc": "Disable this if the board has no barometer, such as some of the the Omnibus F4 SD variants. If disabled, the preflight checks will not check for the presence of a barometer.",
      "rebootRequired": true
    },
    {
      "name": "SYS_HAS_MAG",
      "type": "Int32",
      "default": 1,
      "group": "System",
      "shortDesc": "Control if the vehicle has a magnetometer",
      "longDesc": "Disable this if the board has no magnetometer, such as the Omnibus F4 SD. If disabled, the preflight checks will not check for the presence of a magnetometer.",
      "rebootRequired": true
    },
    {
      "name": "SYS_HITL",
      "type": "Int32",
      "default": 0,
      "group": "System",
      "shortDesc": "Enable HITL/SIH mode on next boot",
      "longDesc": "While enabled the system will boot in Hardware-In-The-Loop (HITL) or Simulation-In-Hardware (SIH) mode and not enable all sensors and checks. When disabled the same vehicle can be flown normally. Set to 'external HITL', if the system should perform as if it were a real vehicle (the only difference to a real system is then only the parameter value, which can be used for log analysis).",
      "rebootRequired": true,
      "values": [
        {
          "value": -1,
          "description": "external HITL"
        },
        {
          "value": 0,
          "description": "HITL and SIH disabled"
        },
        {
          "value": 1,
          "description": "HITL enabled"
        },
        {
          "value": 2,
          "description": "SIH enabled"
        }
      ]
    },
    {
      "name": "SYS_MC_EST_GROUP",
      "type": "Int32",
      "default": 2,
      "group": "System",
      "shortDesc": "Set multicopter estimator group",
      "longDesc": "Set the group of estimators used for multicopters and VTOLs",
      "rebootRequired": true,
      "values": [
        {
          "value": 1,
          "description": "local_position_estimator, attitude_estimator_q (unsupported)"
        },
        {
          "value": 2,
          "description": "ekf2 (recommended)"
        },
        {
          "value": 3,
          "description": "Q attitude estimator (no position)"
        }
      ]
    },
    {
      "name": "SYS_PARAM_VER",
      "type": "Int32",
      "default": 1,
      "group": "System",
      "shortDesc": "Parameter version",
      "longDesc": "This is used internally only: an airframe configuration might set an expected parameter version value via PARAM_DEFAULTS_VER. This is checked on bootup against SYS_PARAM_VER, and if they do not match, parameters from the airframe configuration are reloaded.",
      "min": 0
    },
    {
      "name": "SYS_RESTART_TYPE",
      "type": "Int32",
      "default": 2,
      "group": "System",
      "category": "System",
      "volatile": true,
      "shortDesc": "Set restart type",
      "longDesc": "Set by px4io to indicate type of restart",
      "min": 0,
      "max": 2,
      "values": [
        {
          "value": 0,
          "description": "Data survives resets"
        },
        {
          "value": 1,
          "description": "Data survives in-flight resets only"
        },
        {
          "value": 2,
          "description": "Data does not survive reset"
        }
      ]
    },
    {
      "name": "TEST_1",
      "type": "Int32",
      "default": 2,
      "group": "Testing",
      "shortDesc": "TEST_1"
    },
    {
      "name": "TEST_2",
      "type": "Int32",
      "default": 4,
      "group": "Testing",
      "shortDesc": "TEST_2"
    },
    {
      "name": "TEST_3",
      "type": "Float",
      "default": 5.0,
      "group": "Testing",
      "shortDesc": "TEST_3"
    },
    {
      "name": "TEST_D",
      "type": "Float",
      "default": 0.01,
      "group": "Testing",
      "shortDesc": "TEST_D"
    },
    {
      "name": "TEST_DEV",
      "type": "Float",
      "default": 2.0,
      "group": "Testing",
      "shortDesc": "TEST_DEV"
    },
    {
      "name": "TEST_D_LP",
      "type": "Float",
      "default": 10.0,
      "group": "Testing",
      "shortDesc": "TEST_D_LP"
    },
    {
      "name": "TEST_HP",
      "type": "Float",
      "default": 10.0,
      "group": "Testing",
      "shortDesc": "TEST_HP"
    },
    {
      "name": "TEST_I",
      "type": "Float",
      "default": 0.1,
      "group": "Testing",
      "shortDesc": "TEST_I"
    },
    {
      "name": "TEST_I_MAX",
      "type": "Float",
      "default": 1.0,
      "group": "Testing",
      "shortDesc": "TEST_I_MAX"
    },
    {
      "name": "TEST_LP",
      "type": "Float",
      "default": 10.0,
      "group": "Testing",
      "shortDesc": "TEST_LP"
    },
    {
      "name": "TEST_MAX",
      "type": "Float",
      "default": 1.0,
      "group": "Testing",
      "shortDesc": "TEST_MAX"
    },
    {
      "name": "TEST_MEAN",
      "type": "Float",
      "default": 1.0,
      "group": "Testing",
      "shortDesc": "TEST_MEAN"
    },
    {
      "name": "TEST_MIN",
      "type": "Float",
      "default": -1.0,
      "group": "Testing",
      "shortDesc": "TEST_MIN"
    },
    {
      "name": "TEST_P",
      "type": "Float",
      "default": 0.2,
      "group": "Testing",
      "shortDesc": "TEST_P"
    },
    {
      "name": "TEST_PARAMS",
      "type": "Int32",
      "default": 12345678,
      "group": "Testing",
      "shortDesc": "TEST_PARAMS"
    },
    {
      "name": "TEST_RC2_X",
      "type": "Int32",
      "default": 16,
      "group": "Testing",
      "shortDesc": "TEST_RC2_X"
    },
    {
      "name": "TEST_RC_X",
      "type": "Int32",
      "default": 8,
      "group": "Testing",
      "shortDesc": "TEST_RC_X"
    },
    {
      "name": "TEST_TRIM",
      "type": "Float",
      "default": 0.5,
      "group": "Testing",
      "shortDesc": "TEST_TRIM"
    },
    {
      "name": "TC_A0_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Accelerometer that the calibration is for"
    },
    {
      "name": "TC_A0_TMAX",
      "type": "Float",
      "default": 100.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration maximum temperature"
    },
    {
      "name": "TC_A0_TMIN",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration minimum temperature"
    },
    {
      "name": "TC_A0_TREF",
      "type": "Float",
      "default": 25.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration reference temperature"
    },
    {
      "name": "TC_A0_X0_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A0_X0_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A0_X0_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A0_X1_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A0_X1_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A0_X1_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A0_X2_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A0_X2_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A0_X2_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A0_X3_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A0_X3_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A0_X3_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A1_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Accelerometer that the calibration is for"
    },
    {
      "name": "TC_A1_TMAX",
      "type": "Float",
      "default": 100.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration maximum temperature"
    },
    {
      "name": "TC_A1_TMIN",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration minimum temperature"
    },
    {
      "name": "TC_A1_TREF",
      "type": "Float",
      "default": 25.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration reference temperature"
    },
    {
      "name": "TC_A1_X0_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A1_X0_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A1_X0_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A1_X1_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A1_X1_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A1_X1_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A1_X2_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A1_X2_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A1_X2_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A1_X3_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A1_X3_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A1_X3_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A2_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Accelerometer that the calibration is for"
    },
    {
      "name": "TC_A2_TMAX",
      "type": "Float",
      "default": 100.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration maximum temperature"
    },
    {
      "name": "TC_A2_TMIN",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration minimum temperature"
    },
    {
      "name": "TC_A2_TREF",
      "type": "Float",
      "default": 25.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration reference temperature"
    },
    {
      "name": "TC_A2_X0_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A2_X0_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A2_X0_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A2_X1_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A2_X1_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A2_X1_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A2_X2_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A2_X2_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A2_X2_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A2_X3_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A2_X3_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A2_X3_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A3_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Accelerometer that the calibration is for"
    },
    {
      "name": "TC_A3_TMAX",
      "type": "Float",
      "default": 100.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration maximum temperature"
    },
    {
      "name": "TC_A3_TMIN",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration minimum temperature"
    },
    {
      "name": "TC_A3_TREF",
      "type": "Float",
      "default": 25.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer calibration reference temperature"
    },
    {
      "name": "TC_A3_X0_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A3_X0_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A3_X0_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A3_X1_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A3_X1_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A3_X1_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A3_X2_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A3_X2_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A3_X2_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A3_X3_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - X axis"
    },
    {
      "name": "TC_A3_X3_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_A3_X3_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_A_ENABLE",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "shortDesc": "Thermal compensation for accelerometer sensors",
      "rebootRequired": true
    },
    {
      "name": "TC_B0_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Barometer that the calibration is for"
    },
    {
      "name": "TC_B0_TMAX",
      "type": "Float",
      "default": 75.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration maximum temperature"
    },
    {
      "name": "TC_B0_TMIN",
      "type": "Float",
      "default": 5.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration minimum temperature"
    },
    {
      "name": "TC_B0_TREF",
      "type": "Float",
      "default": 40.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration reference temperature"
    },
    {
      "name": "TC_B0_X0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^0 polynomial coefficient"
    },
    {
      "name": "TC_B0_X1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^1 polynomial coefficients"
    },
    {
      "name": "TC_B0_X2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^2 polynomial coefficient"
    },
    {
      "name": "TC_B0_X3",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^3 polynomial coefficient"
    },
    {
      "name": "TC_B0_X4",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^4 polynomial coefficient"
    },
    {
      "name": "TC_B0_X5",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^5 polynomial coefficient"
    },
    {
      "name": "TC_B1_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Barometer that the calibration is for"
    },
    {
      "name": "TC_B1_TMAX",
      "type": "Float",
      "default": 75.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration maximum temperature"
    },
    {
      "name": "TC_B1_TMIN",
      "type": "Float",
      "default": 5.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration minimum temperature"
    },
    {
      "name": "TC_B1_TREF",
      "type": "Float",
      "default": 40.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration reference temperature"
    },
    {
      "name": "TC_B1_X0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^0 polynomial coefficient"
    },
    {
      "name": "TC_B1_X1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^1 polynomial coefficients"
    },
    {
      "name": "TC_B1_X2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^2 polynomial coefficient"
    },
    {
      "name": "TC_B1_X3",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^3 polynomial coefficient"
    },
    {
      "name": "TC_B1_X4",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^4 polynomial coefficient"
    },
    {
      "name": "TC_B1_X5",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^5 polynomial coefficient"
    },
    {
      "name": "TC_B2_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Barometer that the calibration is for"
    },
    {
      "name": "TC_B2_TMAX",
      "type": "Float",
      "default": 75.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration maximum temperature"
    },
    {
      "name": "TC_B2_TMIN",
      "type": "Float",
      "default": 5.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration minimum temperature"
    },
    {
      "name": "TC_B2_TREF",
      "type": "Float",
      "default": 40.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration reference temperature"
    },
    {
      "name": "TC_B2_X0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^0 polynomial coefficient"
    },
    {
      "name": "TC_B2_X1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^1 polynomial coefficients"
    },
    {
      "name": "TC_B2_X2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^2 polynomial coefficient"
    },
    {
      "name": "TC_B2_X3",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^3 polynomial coefficient"
    },
    {
      "name": "TC_B2_X4",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^4 polynomial coefficient"
    },
    {
      "name": "TC_B2_X5",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^5 polynomial coefficient"
    },
    {
      "name": "TC_B3_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Barometer that the calibration is for"
    },
    {
      "name": "TC_B3_TMAX",
      "type": "Float",
      "default": 75.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration maximum temperature"
    },
    {
      "name": "TC_B3_TMIN",
      "type": "Float",
      "default": 5.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration minimum temperature"
    },
    {
      "name": "TC_B3_TREF",
      "type": "Float",
      "default": 40.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer calibration reference temperature"
    },
    {
      "name": "TC_B3_X0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^0 polynomial coefficient"
    },
    {
      "name": "TC_B3_X1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^1 polynomial coefficients"
    },
    {
      "name": "TC_B3_X2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^2 polynomial coefficient"
    },
    {
      "name": "TC_B3_X3",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^3 polynomial coefficient"
    },
    {
      "name": "TC_B3_X4",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^4 polynomial coefficient"
    },
    {
      "name": "TC_B3_X5",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Barometer offset temperature ^5 polynomial coefficient"
    },
    {
      "name": "TC_B_ENABLE",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "shortDesc": "Thermal compensation for barometric pressure sensors",
      "rebootRequired": true
    },
    {
      "name": "TC_G0_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Gyro that the calibration is for"
    },
    {
      "name": "TC_G0_TMAX",
      "type": "Float",
      "default": 100.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration maximum temperature"
    },
    {
      "name": "TC_G0_TMIN",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration minimum temperature"
    },
    {
      "name": "TC_G0_TREF",
      "type": "Float",
      "default": 25.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration reference temperature"
    },
    {
      "name": "TC_G0_X0_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G0_X0_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G0_X0_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G0_X1_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G0_X1_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G0_X1_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G0_X2_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G0_X2_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G0_X2_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G0_X3_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G0_X3_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G0_X3_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G1_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Gyro that the calibration is for"
    },
    {
      "name": "TC_G1_TMAX",
      "type": "Float",
      "default": 100.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration maximum temperature"
    },
    {
      "name": "TC_G1_TMIN",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration minimum temperature"
    },
    {
      "name": "TC_G1_TREF",
      "type": "Float",
      "default": 25.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration reference temperature"
    },
    {
      "name": "TC_G1_X0_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G1_X0_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G1_X0_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G1_X1_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G1_X1_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G1_X1_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G1_X2_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G1_X2_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G1_X2_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G1_X3_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G1_X3_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G1_X3_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G2_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Gyro that the calibration is for"
    },
    {
      "name": "TC_G2_TMAX",
      "type": "Float",
      "default": 100.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration maximum temperature"
    },
    {
      "name": "TC_G2_TMIN",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration minimum temperature"
    },
    {
      "name": "TC_G2_TREF",
      "type": "Float",
      "default": 25.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration reference temperature"
    },
    {
      "name": "TC_G2_X0_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G2_X0_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G2_X0_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G2_X1_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G2_X1_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G2_X1_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G2_X2_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G2_X2_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G2_X2_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G2_X3_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G2_X3_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G2_X3_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G3_ID",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "ID of Gyro that the calibration is for"
    },
    {
      "name": "TC_G3_TMAX",
      "type": "Float",
      "default": 100.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration maximum temperature"
    },
    {
      "name": "TC_G3_TMIN",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration minimum temperature"
    },
    {
      "name": "TC_G3_TREF",
      "type": "Float",
      "default": 25.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro calibration reference temperature"
    },
    {
      "name": "TC_G3_X0_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G3_X0_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G3_X0_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G3_X1_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G3_X1_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G3_X1_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G3_X2_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G3_X2_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G3_X2_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G3_X3_0",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - X axis"
    },
    {
      "name": "TC_G3_X3_1",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Y axis"
    },
    {
      "name": "TC_G3_X3_2",
      "type": "Float",
      "default": 0.0,
      "group": "Thermal Compensation",
      "category": "System",
      "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Z axis"
    },
    {
      "name": "TC_G_ENABLE",
      "type": "Int32",
      "default": 0,
      "group": "Thermal Compensation",
      "shortDesc": "Thermal compensation for rate gyro sensors",
      "rebootRequired": true
    },
    {
      "name": "UUV_DIRCT_PITCH",
      "type": "Float",
      "default": 0.0,
      "group": "UUV Attitude Control",
      "shortDesc": "Direct pitch input"
    },
    {
      "name": "UUV_DIRCT_ROLL",
      "type": "Float",
      "default": 0.0,
      "group": "UUV Attitude Control",
      "shortDesc": "Direct roll input"
    },
    {
      "name": "UUV_DIRCT_THRUST",
      "type": "Float",
      "default": 0.0,
      "group": "UUV Attitude Control",
      "shortDesc": "Direct thrust input"
    },
    {
      "name": "UUV_DIRCT_YAW",
      "type": "Float",
      "default": 0.0,
      "group": "UUV Attitude Control",
      "shortDesc": "Direct yaw input"
    },
    {
      "name": "UUV_INPUT_MODE",
      "type": "Int32",
      "default": 0,
      "group": "UUV Attitude Control",
      "shortDesc": "Select Input Mode",
      "values": [
        {
          "value": 0,
          "description": "use Attitude Setpoints"
        },
        {
          "value": 1,
          "description": "Direct Feedthrough"
        }
      ]
    },
    {
      "name": "UUV_PITCH_D",
      "type": "Float",
      "default": 2.0,
      "group": "UUV Attitude Control",
      "shortDesc": "Pitch differential gain"
    },
    {
      "name": "UUV_PITCH_P",
      "type": "Float",
      "default": 4.0,
      "group": "UUV Attitude Control",
      "shortDesc": "Pitch proportional gain"
    },
    {
      "name": "UUV_ROLL_D",
      "type": "Float",
      "default": 1.5,
      "group": "UUV Attitude Control",
      "shortDesc": "Roll differential gain"
    },
    {
      "name": "UUV_ROLL_P",
      "type": "Float",
      "default": 4.0,
      "group": "UUV Attitude Control",
      "shortDesc": "Roll proportional gain"
    },
    {
      "name": "UUV_YAW_D",
      "type": "Float",
      "default": 2.0,
      "group": "UUV Attitude Control",
      "shortDesc": "Yaw differential gain"
    },
    {
      "name": "UUV_YAW_P",
      "type": "Float",
      "default": 4.0,
      "group": "UUV Attitude Control",
      "shortDesc": "Yawh proportional gain"
    },
    {
      "name": "VT_ARSP_BLEND",
      "type": "Float",
      "default": 8.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Transition blending airspeed",
      "longDesc": "Airspeed at which we can start blending both fw and mc controls. Set to 0 to disable.",
      "min": 0.0,
      "max": 30.0,
      "units": "m/s",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "VT_ARSP_TRANS",
      "type": "Float",
      "default": 10.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Transition airspeed",
      "longDesc": "Airspeed at which we can switch to fw mode",
      "min": 0.0,
      "max": 30.0,
      "units": "m/s",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "VT_B_DEC_FF",
      "type": "Float",
      "default": 0.12,
      "group": "VTOL Attitude Control",
      "shortDesc": "Backtransition deceleration setpoint to pitch feedforward gain",
      "min": 0.0,
      "max": 0.2,
      "units": "rad s^2/m",
      "decimalPlaces": 1,
      "increment": 0.05
    },
    {
      "name": "VT_B_DEC_I",
      "type": "Float",
      "default": 0.1,
      "group": "VTOL Attitude Control",
      "shortDesc": "Backtransition deceleration setpoint to pitch I gain",
      "min": 0.0,
      "max": 0.3,
      "units": "rad s/m",
      "decimalPlaces": 1,
      "increment": 0.05
    },
    {
      "name": "VT_B_DEC_MSS",
      "type": "Float",
      "default": 2.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Approximate deceleration during back transition",
      "longDesc": "The approximate deceleration during a back transition in m/s/s Used to calculate back transition distance in mission mode. A lower value will make the VTOL transition further from the destination waypoint. For standard vtol and tiltrotors a controller is used to track this value during the transition.",
      "min": 0.5,
      "max": 10.0,
      "units": "m/s^2",
      "decimalPlaces": 2,
      "increment": 0.1
    },
    {
      "name": "VT_B_REV_DEL",
      "type": "Float",
      "default": 0.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Delay in seconds before applying back transition throttle\nSet this to a value greater than 0 to give the motor time to spin down",
      "longDesc": "unit s",
      "min": 0.0,
      "max": 10.0,
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "VT_B_REV_OUT",
      "type": "Float",
      "default": 0.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Output on airbrakes channel during back transition\nUsed for airbrakes or with ESCs that have reverse thrust enabled on a seperate channel\nAirbrakes need to be enables for your selected model/mixer",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "VT_B_TRANS_DUR",
      "type": "Float",
      "default": 4.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Duration of a back transition",
      "longDesc": "Time in seconds used for a back transition",
      "min": 0.0,
      "max": 20.0,
      "units": "s",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "VT_B_TRANS_RAMP",
      "type": "Float",
      "default": 3.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Back transition MC motor ramp up time",
      "longDesc": "This sets the duration during which the MC motors ramp up to the commanded thrust during the back transition stage.",
      "min": 0.0,
      "max": 20.0,
      "units": "s"
    },
    {
      "name": "VT_B_TRANS_THR",
      "type": "Float",
      "default": 0.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Target throttle value for the transition to hover flight.\nstandard vtol: pusher\ntailsitter, tiltrotor: main throttle",
      "longDesc": "Note for standard vtol: For ESCs and mixers that support reverse thrust on low PWM values set this to a negative value to apply active breaking For ESCs that support thrust reversal with a control channel please set VT_B_REV_OUT and set this to a positive value to apply active breaking",
      "min": -1.0,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "VT_DWN_PITCH_MAX",
      "type": "Float",
      "default": 5.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Maximum allowed angle the vehicle is allowed to pitch down to generate forward force\nwhen fixed-wing forward actuation is active (seeVT_FW_TRHUST_EN).\nIf demanded down pitch exceeds this limmit, the fixed-wing forward actuators are used instead",
      "min": 0.0,
      "max": 45.0
    },
    {
      "name": "VT_ELEV_MC_LOCK",
      "type": "Int32",
      "default": 1,
      "group": "VTOL Attitude Control",
      "shortDesc": "Lock elevons in multicopter mode",
      "longDesc": "If set to 1 the elevons are locked in multicopter mode"
    },
    {
      "name": "VT_FWD_THRUST_EN",
      "type": "Int32",
      "default": 0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Enable/disable usage of fixed-wing actuators in hover to generate forward force (instead of pitching down).\nThis technique can be used to avoid the plane having to pitch down in order to move forward.\nThis prevents large, negative lift values being created when facing strong winds.\nFixed-wing forward actuators refers to puller/pusher (standard VTOL), or forward-tilt (tiltrotor VTOL).\nOnly active if demaded down pitch is above VT_DWN_PITCH_MAX, and uses VT_FWD_THRUST_SC to get from\ndemanded down pitch to fixed-wing actuation",
      "values": [
        {
          "value": 0,
          "description": "Disable FW forward actuation in hover."
        },
        {
          "value": 1,
          "description": "Enable FW forward actuation in hover in altitude, position and auto modes (except LANDING)."
        },
        {
          "value": 2,
          "description": "Enable FW forward actuation in hover in altitude, position and auto modes if above MPC_LAND_ALT1."
        },
        {
          "value": 3,
          "description": "Enable FW forward actuation in hover in altitude, position and auto modes if above MPC_LAND_ALT2."
        },
        {
          "value": 4,
          "description": "Enable FW forward actuation in hover in altitude, position and auto modes."
        }
      ]
    },
    {
      "name": "VT_FWD_THRUST_SC",
      "type": "Float",
      "default": 0.7,
      "group": "VTOL Attitude Control",
      "shortDesc": "Fixed-wing actuator thrust scale for hover forward flight",
      "longDesc": "Scale applied to the demanded down-pitch to get the fixed-wing forward actuation in hover mode. Only active if demaded down pitch is above VT_DWN_PITCH_MAX. Enabled via VT_FWD_THRUST_EN.",
      "min": 0.0,
      "max": 2.0
    },
    {
      "name": "VT_FW_ALT_ERR",
      "type": "Float",
      "default": 0.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Adaptive QuadChute",
      "longDesc": "Maximum negative altitude error for fixed wing flight. If the altitude drops below this value below the altitude setpoint the vehicle will transition back to MC mode and enter failsafe RTL.",
      "min": 0.0,
      "max": 200.0
    },
    {
      "name": "VT_FW_DIFTHR_EN",
      "type": "Int32",
      "default": 0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Differential thrust in forwards flight",
      "longDesc": "Set to 1 to enable differential thrust in fixed-wing flight.",
      "min": 0,
      "max": 1,
      "decimalPlaces": 0
    },
    {
      "name": "VT_FW_DIFTHR_SC",
      "type": "Float",
      "default": 0.1,
      "group": "VTOL Attitude Control",
      "shortDesc": "Differential thrust scaling factor",
      "longDesc": "This factor specifies how the yaw input gets mapped to differential thrust in forwards flight.",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 2,
      "increment": 0.1
    },
    {
      "name": "VT_FW_MIN_ALT",
      "type": "Float",
      "default": 0.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "QuadChute Altitude",
      "longDesc": "Minimum altitude for fixed wing flight, when in fixed wing the altitude drops below this altitude the vehicle will transition back to MC mode and enter failsafe RTL",
      "min": 0.0,
      "max": 200.0
    },
    {
      "name": "VT_FW_MOT_OFFID",
      "type": "Int32",
      "default": 0,
      "group": "VTOL Attitude Control",
      "shortDesc": "The channel number of motors that must be turned off in fixed wing mode",
      "min": 0,
      "max": 12345678,
      "decimalPlaces": 0,
      "increment": 1
    },
    {
      "name": "VT_FW_PERM_STAB",
      "type": "Int32",
      "default": 0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Permanent stabilization in fw mode",
      "longDesc": "If set to one this parameter will cause permanent attitude stabilization in fw mode. This parameter has been introduced for pure convenience sake."
    },
    {
      "name": "VT_FW_QC_P",
      "type": "Int32",
      "default": 0,
      "group": "VTOL Attitude Control",
      "shortDesc": "QuadChute Max Pitch",
      "longDesc": "Maximum pitch angle before QuadChute engages Above this the vehicle will transition back to MC mode and enter failsafe RTL",
      "min": 0,
      "max": 180
    },
    {
      "name": "VT_FW_QC_R",
      "type": "Int32",
      "default": 0,
      "group": "VTOL Attitude Control",
      "shortDesc": "QuadChute Max Roll",
      "longDesc": "Maximum roll angle before QuadChute engages Above this the vehicle will transition back to MC mode and enter failsafe RTL",
      "min": 0,
      "max": 180
    },
    {
      "name": "VT_F_TRANS_DUR",
      "type": "Float",
      "default": 5.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Duration of a front transition",
      "longDesc": "Time in seconds used for a transition",
      "min": 0.0,
      "max": 20.0,
      "units": "s",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "VT_F_TRANS_THR",
      "type": "Float",
      "default": 1.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Target throttle value for the transition to fixed wing flight.\nstandard vtol: pusher\ntailsitter, tiltrotor: main throttle",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "VT_F_TR_OL_TM",
      "type": "Float",
      "default": 6.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Airspeed less front transition time (open loop)",
      "longDesc": "The duration of the front transition when there is no airspeed feedback available.",
      "min": 1.0,
      "max": 30.0,
      "units": "s"
    },
    {
      "name": "VT_IDLE_PWM_MC",
      "type": "Int32",
      "default": 900,
      "group": "VTOL Attitude Control",
      "shortDesc": "Idle speed of VTOL when in multicopter mode",
      "min": 900,
      "max": 2000,
      "units": "us",
      "decimalPlaces": 0,
      "increment": 1
    },
    {
      "name": "VT_MC_ON_FMU",
      "type": "Int32",
      "default": 0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Enable the usage of AUX outputs for hover motors",
      "longDesc": "Set this parameter to true if the vehicle's hover motors are connected to the FMU (AUX) port. Not required for boards that only have a FMU, and no IO. Only applies for standard VTOL and tiltrotor."
    },
    {
      "name": "VT_MOT_ID",
      "type": "Int32",
      "default": 0,
      "group": "VTOL Attitude Control",
      "shortDesc": "The channel number of motors which provide lift during hover",
      "min": 0,
      "max": 12345678,
      "decimalPlaces": 0,
      "increment": 1
    },
    {
      "name": "VT_PSHER_RMP_DT",
      "type": "Float",
      "default": 3.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Defines the time window during which the pusher throttle will be ramped up linearly to VT_F_TRANS_THR during a transition\nto fixed wing mode. Zero or negative values will produce an instant throttle rise to VT_F_TRANS_THR",
      "max": 20.0,
      "decimalPlaces": 2,
      "increment": 0.01
    },
    {
      "name": "VT_TILT_FW",
      "type": "Float",
      "default": 1.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Position of tilt servo in fw mode",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "VT_TILT_MC",
      "type": "Float",
      "default": 0.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Position of tilt servo in mc mode",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "VT_TILT_SPINUP",
      "type": "Float",
      "default": 0.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Tilt actuator control value commanded when disarmed and during the first second after arming",
      "longDesc": "This specific tilt during spin-up is necessary for some systems whose motors otherwise don't spin-up freely.",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "VT_TILT_TRANS",
      "type": "Float",
      "default": 0.3,
      "group": "VTOL Attitude Control",
      "shortDesc": "Position of tilt servo in transition mode",
      "min": 0.0,
      "max": 1.0,
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "VT_TRANS_MIN_TM",
      "type": "Float",
      "default": 2.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Front transition minimum time",
      "longDesc": "Minimum time in seconds for front transition.",
      "min": 0.0,
      "max": 20.0,
      "units": "s"
    },
    {
      "name": "VT_TRANS_P2_DUR",
      "type": "Float",
      "default": 0.5,
      "group": "VTOL Attitude Control",
      "shortDesc": "Duration of front transition phase 2",
      "longDesc": "Time in seconds it should take for the rotors to rotate forward completely from the point when the plane has picked up enough airspeed and is ready to go into fixed wind mode.",
      "min": 0.1,
      "max": 5.0,
      "units": "s",
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "VT_TRANS_TIMEOUT",
      "type": "Float",
      "default": 15.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Front transition timeout",
      "longDesc": "Time in seconds after which transition will be cancelled. Disabled if set to 0.",
      "min": 0.0,
      "max": 30.0,
      "units": "s",
      "decimalPlaces": 2,
      "increment": 1.0
    },
    {
      "name": "VT_TYPE",
      "type": "Int32",
      "default": 0,
      "group": "VTOL Attitude Control",
      "shortDesc": "VTOL Type (Tailsitter=0, Tiltrotor=1, Standard=2)",
      "min": 0,
      "max": 2,
      "decimalPlaces": 0,
      "rebootRequired": true,
      "values": [
        {
          "value": 0,
          "description": "Tailsitter"
        },
        {
          "value": 1,
          "description": "Tiltrotor"
        },
        {
          "value": 2,
          "description": "Standard"
        }
      ]
    },
    {
      "name": "WV_GAIN",
      "type": "Float",
      "default": 1.0,
      "group": "VTOL Attitude Control",
      "shortDesc": "Weather-vane roll angle to yawrate",
      "longDesc": "The desired gain to convert roll sp into yaw rate sp.",
      "min": 0.0,
      "max": 3.0,
      "units": "Hz",
      "decimalPlaces": 3,
      "increment": 0.01
    },
    {
      "name": "EXFW_HDNG_P",
      "type": "Float",
      "default": 0.1,
      "group": "Miscellaneous",
      "shortDesc": "EXFW_HDNG_P"
    },
    {
      "name": "EXFW_PITCH_P",
      "type": "Float",
      "default": 0.2,
      "group": "Miscellaneous",
      "shortDesc": "EXFW_PITCH_P"
    },
    {
      "name": "EXFW_ROLL_P",
      "type": "Float",
      "default": 0.2,
      "group": "Miscellaneous",
      "shortDesc": "EXFW_ROLL_P"
    },
    {
      "name": "MPC_LAND_RC_HELP",
      "type": "Int32",
      "default": 0,
      "group": "Miscellaneous",
      "shortDesc": "Enable user assisted descent speed for autonomous land routine",
      "longDesc": "When enabled, descent speed will be: stick full up - 0 stick centered - MPC_LAND_SPEED stick full down - 2 * MPC_LAND_SPEED",
      "min": 0,
      "max": 1,
      "values": [
        {
          "value": 0,
          "description": "Fixed descent speed of MPC_LAND_SPEED"
        },
        {
          "value": 1,
          "description": "User assisted descent speed"
        }
      ]
    },
    {
      "name": "RV_YAW_P",
      "type": "Float",
      "default": 0.1,
      "group": "Miscellaneous",
      "shortDesc": "RV_YAW_P"
    }
  ]
}