{
  "": {
    "AEROM_ALT_ABORT": {
      "Description": "Maximum allowable loss in altitude during a trick or sequence from its starting altitude.",
      "DisplayName": "Altitude Abort",
      "Units": "m"
    },
    "AEROM_ANG_ACCEL": {
      "Description": "Maximum angular acceleration in maneuvers",
      "DisplayName": "Angular acceleration limit",
      "Units": "deg/s/s"
    },
    "AEROM_ANG_TC": {
      "Description": "This is the time over which we filter the desired roll to smooth it",
      "DisplayName": "Roll control filtertime constant",
      "Units": "s"
    },
    "AEROM_BOX_WIDTH": {
      "Description": "Length of aerobatic \"box\"",
      "DisplayName": "Box Width",
      "Units": "m"
    },
    "AEROM_DEBUG": {
      "Description": "This controls the printing of extra debug information on paths",
      "DisplayName": "Debug control"
    },
    "AEROM_ENTRY_RATE": {
      "Description": "This controls how rapidly we roll into a new orientation",
      "DisplayName": "The roll rate to use when entering a roll maneuver",
      "Units": "deg/s"
    },
    "AEROM_ERR_COR_D": {
      "Description": "This controls how rapidly we correct back onto the desired path",
      "DisplayName": "D gain for path error corrections"
    },
    "AEROM_ERR_COR_P": {
      "Description": "This controls how rapidly we correct back onto the desired path",
      "DisplayName": "P gain for path error corrections"
    },
    "AEROM_KE_RUDD": {
      "Description": "Percent of rudder normally uses to sustain knife-edge at trick speed",
      "DisplayName": "KnifeEdge Rudder",
      "Units": "%"
    },
    "AEROM_KE_RUDD_LK": {
      "Description": "Time to look ahead in the path to calculate rudder correction for bank angle",
      "DisplayName": "KnifeEdge Rudder lookahead",
      "Units": "s"
    },
    "AEROM_LKAHD": {
      "Description": "This is how much time to look ahead in the path for calculating path rates",
      "DisplayName": "Lookahead",
      "Units": "s"
    },
    "AEROM_MIS_ANGLE": {
      "Description": "When set to a non-zero value, this is the assumed direction of the mission. Otherwise the waypoint angle is used",
      "DisplayName": "Mission angle",
      "Units": "deg"
    },
    "AEROM_OPTIONS": {
      "Bitmask": {
        "0": "UseRTLOnAbort",
        "1": "AddAtToMessages",
        "2": "DualAircraftSynchronised"
      },
      "Description": "Options to control aerobatic behavior",
      "DisplayName": "Aerobatic options",
      "Units": "deg"
    },
    "AEROM_PATH_SCALE": {
      "Description": "Scale factor for Path/Box size. 0.5 would half the distances in maneuvers. Radii are unaffected.",
      "DisplayName": "Path Scale",
      "Range": {
        "high": "100",
        "low": "0.1"
      }
    },
    "AEROM_ROL_COR_TC": {
      "Description": "This is the time constant for correcting roll errors. A smaller value leads to faster roll corrections",
      "DisplayName": "Roll control time constant",
      "Units": "s"
    },
    "AEROM_SPD_I": {
      "Description": "This controls how rapidly the throttle is raised to compensate for a speed error",
      "DisplayName": "I gain for speed controller",
      "Units": "%"
    },
    "AEROM_SPD_P": {
      "Description": "This controls how rapidly the throttle is raised to compensate for a speed error",
      "DisplayName": "P gain for speed controller",
      "Units": "%"
    },
    "AEROM_STALL_PIT": {
      "Description": "Pitch threashold for moving to final stage of stall turn",
      "DisplayName": "Stall turn pitch threshold",
      "Units": "deg"
    },
    "AEROM_STALL_THR": {
      "Description": "Amount of throttle to reduce to for a stall turn",
      "DisplayName": "Stall turn throttle",
      "Units": "%"
    },
    "AEROM_THR_BOOST": {
      "Description": "This is the extra throttle added in schedule elements marked as needing a throttle boost",
      "DisplayName": "Throttle boost",
      "Units": "%"
    },
    "AEROM_THR_LKAHD": {
      "Description": "This controls how far ahead we look in time along the path for the target throttle",
      "DisplayName": "The lookahead for throttle control",
      "Units": "s"
    },
    "AEROM_THR_MIN": {
      "Description": "Lowest throttle used during maneuvers",
      "DisplayName": "Minimum Throttle",
      "Units": "%"
    },
    "AEROM_THR_PIT_FF": {
      "Description": "This controls how much extra throttle to add based on pitch ange. The value is for 90 degrees and is applied in proportion to pitch",
      "DisplayName": "Throttle feed forward from pitch",
      "Units": "%"
    },
    "AEROM_TIME_COR_P": {
      "Description": "This is the time constant for correcting path position errors",
      "DisplayName": "Time constant for correction of our distance along the path",
      "Units": "s"
    },
    "AEROM_TS_I": {
      "Description": "This controls how rapidly two aircraft are brought back into time sync",
      "DisplayName": "Timesync I gain"
    },
    "AEROM_TS_P": {
      "Description": "This controls how rapidly two aircraft are brought back into time sync",
      "DisplayName": "Timesync P gain"
    },
    "AEROM_TS_RATE": {
      "Description": "This sets the rate we send data for time sync between aircraft",
      "DisplayName": "Timesync rate of send of NAMED_VALUE_FLOAT data",
      "Units": "Hz"
    },
    "AEROM_TS_SPDMAX": {
      "Description": "This sets the maximum speed adjustment for time sync between aircraft",
      "DisplayName": "Timesync speed max",
      "Units": "m/s"
    },
    "AEROM_YAW_ACCEL": {
      "Description": "This is maximum yaw acceleration to use",
      "DisplayName": "Yaw acceleration",
      "Units": "deg/s/s"
    },
    "AHRS_ORIG_ALT": {
      "Description": "AHRS/EKF origin will be set to this altitude (in meters above sea level) if not already set",
      "DisplayName": "AHRS/EKF Origin Altitude",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Standard"
    },
    "AHRS_ORIG_LAT": {
      "Description": "AHRS/EKF origin will be set to this latitude if not already set",
      "DisplayName": "AHRS/EKF Origin Latitude",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "User": "Standard"
    },
    "AHRS_ORIG_LON": {
      "Description": "AHRS/EKF origin will be set to this longitude if not already set",
      "DisplayName": "AHRS/EKF Origin Longitude",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "User": "Standard"
    },
    "ALAND_ENABLE": {
      "Description": "enable Auto land script action",
      "DisplayName": "Auto land enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "ALAND_WP_ALT": {
      "Description": "Altitude of final approach waypoint created by script",
      "DisplayName": "Final approach waypoint alt",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "m",
      "User": "Standard"
    },
    "ALAND_WP_DIST": {
      "Description": "Distance from landing point (HOME) to final approach waypoint created by script in the opposite direction of initial takeoff",
      "DisplayName": "Final approach waypoint distance",
      "Range": {
        "high": "1000",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "ARM_C_RTL_ALT_M": {
      "Description": "RTL_ALT_M should be < 120m (400ft). 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "RTL_ALT_M should be a valid value",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_ESTOP": {
      "Description": "Emergency Stop disables arming. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "Motors EStopped",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_FENCE": {
      "Description": "Fences loaded but no fence enabled. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "Fence not enabled",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_FOLL_OFS_DEF": {
      "Description": "Follow offsets should not be left as default (zero) if FOLL_ENABLE = 1. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "Follow Offsets defaulted",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_FOLL_SYSID": {
      "Description": "If FOLL_ENABLE = 1, check that FOLL_SYSID has been set. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "FOLL_SYSID must be set",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_FOLL_SYSID_X": {
      "Description": "If FOLL_ENABLE = 1, check that FOLL_SYSID is different to MAV_SYSID. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "Vehicle should not follow itself",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_MNTX_SYSID": {
      "Description": "If FOLL_ENABLE = 1 and MNTx_SYSID_DEFLT is set, check that FOLL_SYSID is equal MNTx. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "Follow and Mount should follow the same vehicle",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_P_AIRSPEED": {
      "Description": "Validate that AIRSPEED_STALL(if set) < MIN < CRUISE < MAX d. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "Check AIRSPEED_ parameters",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_P_QRTL_ALT": {
      "Description": "Q_RTL_ALT should be < 120m (400ft). 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "Q_RTL_ALT should be a valid value",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_P_Q_FS_LAND": {
      "Description": "Notify the user that on failsafe a QuadPlan will land. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "Warn if Q failsafe will land",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_P_Q_FS_RTL": {
      "Description": "Notify the user that on failsafe a QuadPlan will QRTL. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "Warn if Q failsafe will QRTL",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_P_RTL_ALT": {
      "Description": "RTL_ALTITITUDE should be < 120m (400ft). 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "RTL_ALTITUDE should be a valid value",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_P_SCALING": {
      "Description": "Validate that SCALING_SPEED is within 20% of AIRSPEED_CRUISE. If SCALING_SPEED changes the vehicle may need to be retuned. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "SCALING_SPEED valid",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_P_STALL": {
      "Description": "Validate that AIRSPEED_MIN is at least 25% above AIRSPEED_STALL(if set). 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "AIRSPEED_MIN should be 25% above STALL",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_RALLY": {
      "Description": "Rally Point more than RALLY_LIMIT_KM kilometers away. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "Rally too far",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_RTL_CLIMB": {
      "Description": "RTL_CLIMB_MIN should be < 120m (400ft). 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "RTL_CLIMB_MIN should be a valid value",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_SYSID": {
      "Description": "Check that MAV_SYSID (or SYDID_THISMAV) has been set. 3 or less to prevent arming. -1 to disable.",
      "DisplayName": "MAV_SYSID must be set",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Emergency(PreArm)",
        "1": "Alert(PreArm)",
        "2": "Critical(PreArm)",
        "3": "Error(PreArm)",
        "4": "Warning",
        "5": "Notice",
        "6": "Info",
        "7": "Debug"
      }
    },
    "ARM_V_ALT_LEGAL": {
      "Description": "Legal max altitude for UAV/RPAS/drones in your jurisdiction",
      "DisplayName": "Legal max altitude",
      "Units": "m",
      "User": "Standard"
    },
    "BATT_ANX_CANDRV": {
      "Description": "Set ANX CAN driver",
      "DisplayName": "Set ANX CAN driver",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "1stCANDriver",
        "2": "2ndCanDriver"
      }
    },
    "BATT_ANX_ENABLE": {
      "Description": "Enable ANX battery support",
      "DisplayName": "Enable ANX battery support",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "BATT_ANX_INDEX": {
      "Description": "ANX CAN battery index",
      "DisplayName": "ANX CAN battery index",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Standard"
    },
    "BATT_IDX": {
      "Description": "Ensure this battery is configured with `BATT*_MONITOR=29`.",
      "DisplayName": "Index of assigned battery.",
      "User": "Standard"
    },
    "BATT_SOC1_C1": {
      "Description": "Battery estimator coefficient1",
      "DisplayName": "Battery estimator coefficient1",
      "Range": {
        "high": "200",
        "low": "100"
      },
      "User": "Standard"
    },
    "BATT_SOC1_C2": {
      "Description": "Battery estimator coefficient2",
      "DisplayName": "Battery estimator coefficient2",
      "Range": {
        "high": "5",
        "low": "2"
      },
      "User": "Standard"
    },
    "BATT_SOC1_C3": {
      "Description": "Battery estimator coefficient3",
      "DisplayName": "Battery estimator coefficient3",
      "Range": {
        "high": "0.5",
        "low": "0.01"
      },
      "User": "Standard"
    },
    "BATT_SOC1_C4": {
      "Description": "Battery estimator coefficient4",
      "DisplayName": "Battery estimator coefficient4",
      "Range": {
        "high": "100",
        "low": "5"
      },
      "User": "Standard"
    },
    "BATT_SOC1_IDX": {
      "Description": "Battery estimator index",
      "DisplayName": "Battery estimator index",
      "Range": {
        "high": "4",
        "low": "0"
      },
      "User": "Standard"
    },
    "BATT_SOC1_NCELL": {
      "Description": "Battery estimator cell count",
      "DisplayName": "Battery estimator cell count",
      "Range": {
        "high": "48",
        "low": "0"
      },
      "User": "Standard"
    },
    "BATT_SOC2_C1": {
      "Description": "Battery estimator coefficient1",
      "DisplayName": "Battery estimator coefficient1",
      "Range": {
        "high": "200",
        "low": "100"
      },
      "User": "Standard"
    },
    "BATT_SOC2_C2": {
      "Description": "Battery estimator coefficient2",
      "DisplayName": "Battery estimator coefficient2",
      "Range": {
        "high": "5",
        "low": "2"
      },
      "User": "Standard"
    },
    "BATT_SOC2_C3": {
      "Description": "Battery estimator coefficient3",
      "DisplayName": "Battery estimator coefficient3",
      "Range": {
        "high": "0.5",
        "low": "0.01"
      },
      "User": "Standard"
    },
    "BATT_SOC2_C4": {
      "Description": "Battery estimator coefficient4",
      "DisplayName": "Battery estimator coefficient4",
      "Range": {
        "high": "100",
        "low": "5"
      },
      "User": "Standard"
    },
    "BATT_SOC2_IDX": {
      "Description": "Battery estimator index",
      "DisplayName": "Battery estimator index",
      "Range": {
        "high": "4",
        "low": "0"
      },
      "User": "Standard"
    },
    "BATT_SOC2_NCELL": {
      "Description": "Battery estimator cell count",
      "DisplayName": "Battery estimator cell count",
      "Range": {
        "high": "48",
        "low": "0"
      },
      "User": "Standard"
    },
    "BATT_SOC3_C1": {
      "Description": "Battery estimator coefficient1",
      "DisplayName": "Battery estimator coefficient1",
      "Range": {
        "high": "200",
        "low": "100"
      },
      "User": "Standard"
    },
    "BATT_SOC3_C2": {
      "Description": "Battery estimator coefficient2",
      "DisplayName": "Battery estimator coefficient2",
      "Range": {
        "high": "5",
        "low": "2"
      },
      "User": "Standard"
    },
    "BATT_SOC3_C3": {
      "Description": "Battery estimator coefficient3",
      "DisplayName": "Battery estimator coefficient3",
      "Range": {
        "high": "0.5",
        "low": "0.01"
      },
      "User": "Standard"
    },
    "BATT_SOC3_C4": {
      "Description": "Battery estimator coefficient4",
      "DisplayName": "Battery estimator coefficient4",
      "Range": {
        "high": "100",
        "low": "5"
      },
      "User": "Standard"
    },
    "BATT_SOC3_IDX": {
      "Description": "Battery estimator index",
      "DisplayName": "Battery estimator index",
      "Range": {
        "high": "4",
        "low": "0"
      },
      "User": "Standard"
    },
    "BATT_SOC3_NCELL": {
      "Description": "Battery estimator cell count",
      "DisplayName": "Battery estimator cell count",
      "Range": {
        "high": "48",
        "low": "0"
      },
      "User": "Standard"
    },
    "BATT_SOC4_C1": {
      "Description": "Battery estimator coefficient1",
      "DisplayName": "Battery estimator coefficient1",
      "Range": {
        "high": "200",
        "low": "100"
      },
      "User": "Standard"
    },
    "BATT_SOC4_C2": {
      "Description": "Battery estimator coefficient2",
      "DisplayName": "Battery estimator coefficient2",
      "Range": {
        "high": "5",
        "low": "2"
      },
      "User": "Standard"
    },
    "BATT_SOC4_C3": {
      "Description": "Battery estimator coefficient3",
      "DisplayName": "Battery estimator coefficient3",
      "Range": {
        "high": "0.5",
        "low": "0.01"
      },
      "User": "Standard"
    },
    "BATT_SOC4_C4": {
      "Description": "Battery estimator coefficient4",
      "DisplayName": "Battery estimator coefficient4",
      "Range": {
        "high": "100",
        "low": "5"
      },
      "User": "Standard"
    },
    "BATT_SOC4_IDX": {
      "Description": "Battery estimator index",
      "DisplayName": "Battery estimator index",
      "Range": {
        "high": "4",
        "low": "0"
      },
      "User": "Standard"
    },
    "BATT_SOC4_NCELL": {
      "Description": "Battery estimator cell count",
      "DisplayName": "Battery estimator cell count",
      "Range": {
        "high": "48",
        "low": "0"
      },
      "User": "Standard"
    },
    "BATT_SOC_COUNT": {
      "Description": "Number of battery SOC estimators",
      "DisplayName": "Count of SOC estimators",
      "Range": {
        "high": "4",
        "low": "0"
      },
      "User": "Standard"
    },
    "BTAG_CUR_CYCLES": {
      "Description": "this is the highest value for battery cycles for all connected batteries",
      "DisplayName": "current battery cycles",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BTAG_ENABLE": {
      "Description": "enable battery info support",
      "DisplayName": "enable battery info support",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "BTAG_MAX_CYCLES": {
      "Description": "max battery cycles for arming",
      "DisplayName": "max battery cycles",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Standard"
    },
    "CAM1_THERM_GAIN": {
      "Description": "thermal image temperature range",
      "DisplayName": "Camera1 Thermal Gain",
      "User": "Standard",
      "Values": {
        "-1": "Leave Unchanged",
        "0": "LowGain (50C to 550C)",
        "1": "HighGain (-20C to 150C)"
      }
    },
    "CAM1_THERM_PAL": {
      "Description": "thermal image colour palette",
      "DisplayName": "Camera1 Thermal Palette",
      "User": "Standard",
      "Values": {
        "-1": "Leave Unchanged",
        "0": "WhiteHot",
        "10": "BlackHot",
        "11": "GloryHot",
        "2": "Sepia",
        "3": "IronBow",
        "4": "Rainbow",
        "5": "Night",
        "6": "Aurora",
        "7": "RedHot",
        "8": "Jungle",
        "9": "Medical"
      }
    },
    "CAM1_THERM_RAW": {
      "Description": "save images with raw temperatures",
      "DisplayName": "Camera1 Thermal Raw Data",
      "Units": "m",
      "User": "Standard",
      "Values": {
        "-1": "Leave Unchanged",
        "0": "Disabled (30fps)",
        "1": "Enabled (25 fps)"
      }
    },
    "CFACT": {
      "Description": "This is multiplicative factor to correct the measured flow. Set to <1 if your sensor measures too high.",
      "DisplayName": "Measurement correction factor",
      "User": "Standard"
    },
    "CGA_RATIO": {
      "Description": "The ratio between the front and back motor outputs during steady-state hover. Positive when the CoG is in front of the motors midpoint (front motors work harder).",
      "DisplayName": "CoG adjustment ratio",
      "Range": {
        "high": "2",
        "low": "0.5"
      },
      "User": "Advanced"
    },
    "DCS1_BATT_IDX": {
      "Description": "Battery monitor instance to feed with this circuit. Set to 1 for BATT, 2 for BATT2 etc. The corresponding BATTn_MONITOR must be 29 (scripting). Set to 0 to disable.",
      "DisplayName": "CircuitStatus battery index",
      "Range": {
        "high": "9",
        "low": "0"
      },
      "User": "Standard"
    },
    "DCS1_CIRCUIT_ID": {
      "Description": "circuit_id of the CircuitStatus message to use for this instance. Set to -1 to disable.",
      "DisplayName": "CircuitStatus circuit ID",
      "Range": {
        "high": "65535",
        "low": "-1"
      },
      "User": "Standard"
    },
    "DCS_NUM_CIRCUITS": {
      "Description": "Number of DroneCAN CircuitStatus battery monitor instances. The per-instance DCSx_ parameters are created based on this value.",
      "DisplayName": "Number of CircuitStatus monitors",
      "Range": {
        "high": "9",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Standard"
    },
    "DIST_CUTOFF": {
      "Description": "The distance from target beyond which the target is ignored",
      "DisplayName": "Precland distance cutoff",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "DJIR_DEBUG": {
      "Description": "Enable DJIRS2 debug",
      "DisplayName": "DJIRS2 debug",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "Enabled with attitude reporting"
      }
    },
    "DJIR_UPSIDEDOWN": {
      "Description": "DJIRS2 upside down",
      "DisplayName": "DJIRS2 upside down",
      "User": "Standard",
      "Values": {
        "0": "Right side up",
        "1": "Upside down"
      }
    },
    "DR_ENABLE": {
      "Description": "Deadreckoning Enable",
      "DisplayName": "Deadreckoning Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "DR_ENABLE_DIST": {
      "Description": "Distance from home (in meters) beyond which the dead reckoning will be enabled",
      "DisplayName": "Deadreckoning Enable Distance",
      "Units": "m",
      "User": "Standard"
    },
    "DR_FLY_ALT_MIN": {
      "Description": "Copter will fly at at least this altitude (in meters) above home during deadreckoning",
      "DisplayName": "Deadreckoning Altitude Min",
      "Range": {
        "high": "1000",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "DR_FLY_ANGLE": {
      "Description": "lean angle (in degrees) during deadreckoning",
      "DisplayName": "Deadreckoning Lean Angle",
      "Range": {
        "high": "45",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "DR_FLY_TIMEOUT": {
      "Description": "Copter will attempt to switch to NEXT_MODE after this many seconds of deadreckoning.  If it cannot switch modes it will continue in Guided_NoGPS.  Set to 0 to disable timeout",
      "DisplayName": "Deadreckoning flight timeout",
      "Units": "s",
      "User": "Standard"
    },
    "DR_GPS_SACC_MAX": {
      "Description": "GPS speed accuracy maximum, above which deadreckoning home will begin (default is 0.8).  Lower values trigger with good GPS quality, higher values will allow poorer GPS before triggering. Set to 0 to disable use of GPS speed accuracy",
      "DisplayName": "Deadreckoning GPS speed accuracy maximum threshold",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Standard"
    },
    "DR_GPS_SAT_MIN": {
      "Description": "GPS satellite count threshold below which deadreckoning home will begin (default is 6).  Higher values trigger with good GPS quality, Lower values trigger with worse GPS quality. Set to 0 to disable use of GPS satellite count",
      "DisplayName": "Deadreckoning GPS satellite count min threshold",
      "Range": {
        "high": "30",
        "low": "0"
      },
      "User": "Standard"
    },
    "DR_GPS_TRIGG_SEC": {
      "Description": "GPS checks must fail for this many seconds before dead reckoning will be triggered",
      "DisplayName": "Deadreckoning GPS check trigger seconds",
      "Units": "s",
      "User": "Standard"
    },
    "DR_NEXT_MODE": {
      "Description": "Copter switch to this mode after GPS recovers or DR_FLY_TIMEOUT has elapsed.  Default is 6/RTL.  Set to -1 to return to mode used before deadreckoning was triggered",
      "DisplayName": "Deadreckoning Next Mode",
      "User": "Standard",
      "Values": {
        "16": "PosHold",
        "17": "Brake",
        "2": "AltHold",
        "20": "Guided_NoGPS",
        "21": "Smart_RTL",
        "27": "Auto RTL",
        "3": "Auto",
        "4": "Guided",
        "5": "Loiter",
        "6": "RTL",
        "7": "Circle",
        "9": "Land"
      }
    },
    "EFI_2K_CANDRV": {
      "Description": "NMEA 2000 CAN driver. Use 1 for first CAN scripting driver, 2 for 2nd driver",
      "DisplayName": "NMEA 2000 CAN driver",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "FirstCAN",
        "2": "SecondCAN"
      }
    },
    "EFI_2K_ENABLE": {
      "Description": "Enable NMEA 2000 EFI driver",
      "DisplayName": "Enable NMEA 2000 EFI driver",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EFI_DLA64_ENABLE": {
      "Description": "Enable EFI DLA64 driver",
      "DisplayName": "EFI DLA64 enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EFI_DLA_ENABLE": {
      "Description": "Enable EFI DLA driver",
      "DisplayName": "EFI DLA enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EFI_DLA_LPS": {
      "Description": "EFI DLA litres of fuel per second of injection time",
      "DisplayName": "EFI DLA fuel scale",
      "Range": {
        "high": "1",
        "low": "0.00001"
      },
      "Units": "litres",
      "User": "Standard"
    },
    "EFI_H6K_CANDRV": {
      "Description": "Halo6000 CAN driver. Use 1 for first CAN scripting driver, 2 for 2nd driver",
      "DisplayName": "Halo6000 CAN driver",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "FirstCAN",
        "2": "SecondCAN"
      }
    },
    "EFI_H6K_ENABLE": {
      "Description": "Enable Halo6000 EFI driver",
      "DisplayName": "Enable Halo6000 EFI driver",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EFI_H6K_FUELTOT": {
      "Description": "The capacity of the tank in litres",
      "DisplayName": "Halo6000 total fuel capacity",
      "Units": "litres",
      "User": "Standard"
    },
    "EFI_H6K_START_FN": {
      "Description": "The RC auxilliary function number for start/stop of the generator. Zero to disable start function",
      "DisplayName": "Halo6000 start auxilliary function",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "300": "300",
        "301": "301",
        "302": "302",
        "303": "303",
        "304": "304",
        "305": "305",
        "306": "306",
        "307": "307"
      }
    },
    "EFI_H6K_TELEM_RT": {
      "Description": "The rate that additional generator telemetry is sent",
      "DisplayName": "Halo6000 telemetry rate",
      "Units": "Hz",
      "User": "Standard"
    },
    "EFI_HFE_CANDRV": {
      "Description": "HFI EFI CAN driver",
      "DisplayName": "HFI EFI CAN driver",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "1stCANDriver",
        "2": "2ndCanDriver"
      }
    },
    "EFI_HFE_ECU_IDX": {
      "Description": "HFI EFI ECU index, 0 for automatic",
      "DisplayName": "HFI EFI ECU index",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Standard"
    },
    "EFI_HFE_ENABLE": {
      "Description": "Enable HFE EFI driver",
      "DisplayName": "Enable HFE EFI driver",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EFI_HFE_FUEL_DTY": {
      "Description": "HFI EFI fuel density in gram per litre",
      "DisplayName": "HFI EFI fuel density",
      "Range": {
        "high": "2000",
        "low": "0"
      },
      "User": "Standard"
    },
    "EFI_HFE_RATE_HZ": {
      "Description": "HFI EFI Update rate",
      "DisplayName": "HFI EFI Update rate",
      "Range": {
        "high": "400",
        "low": "0"
      },
      "User": "Standard"
    },
    "EFI_HFE_REL_IDX": {
      "Description": "HFI EFI relay index",
      "DisplayName": "HFI EFI relay index",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Standard"
    },
    "EFI_INF_ENABLE": {
      "Description": "Enable EFI INF-Inject driver",
      "DisplayName": "EFI INF-Inject enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EFI_INF_IGN_AUX": {
      "Description": "EFI INF throttle ignition aux function",
      "DisplayName": "EFI INF-Inject ignition aux function",
      "User": "Standard"
    },
    "EFI_INF_OPTIONS": {
      "Bitmask": {
        "0": "EnableLogging"
      },
      "Description": "EFI INF driver options",
      "DisplayName": "EFI INF-Inject options",
      "User": "Standard"
    },
    "EFI_INF_THR_HZ": {
      "Description": "EFI INF throttle output rate",
      "DisplayName": "EFI INF-Inject throttle rate",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "EFI_SP_CANDRV": {
      "Description": "Set SkyPower EFI CAN driver",
      "DisplayName": "Set SkyPower EFI CAN driver",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "1stCANDriver",
        "2": "2ndCanDriver"
      }
    },
    "EFI_SP_ENABLE": {
      "Description": "Enable SkyPower EFI support",
      "DisplayName": "Enable SkyPower EFI support",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EFI_SP_GEN_CTRL": {
      "Description": "SkyPower EFI enable generator control",
      "DisplayName": "SkyPower EFI enable generator control",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EFI_SP_GEN_FN": {
      "Description": "SkyPower EFI generator control function. This is the RCn_OPTION value to use to find the R/C channel used for controlling generator start/stop",
      "DisplayName": "SkyPower EFI generator control function",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "300": "300",
        "301": "301",
        "302": "302",
        "303": "303",
        "304": "304",
        "305": "305",
        "306": "306",
        "307": "307"
      }
    },
    "EFI_SP_LOG_RT": {
      "Description": "SkyPower EFI log rate. This is the rate at which extra logging of the SkyPower EFI is performed",
      "DisplayName": "SkyPower EFI log rate",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "EFI_SP_MIN_RPM": {
      "Description": "SkyPower EFI minimum RPM. This is the RPM below which the engine is considered to be stopped",
      "DisplayName": "SkyPower EFI minimum RPM",
      "Range": {
        "high": "1000",
        "low": "1"
      },
      "User": "Advanced"
    },
    "EFI_SP_MODEL": {
      "Description": "SkyPower EFI ECU model",
      "DisplayName": "SkyPower EFI ECU model",
      "User": "Standard",
      "Values": {
        "0": "SRE_180",
        "1": "SP_275"
      }
    },
    "EFI_SP_RST_TIME": {
      "Description": "SkyPower EFI restart time. If engine should be running and it has stopped for this amount of time then auto-restart. To disable this feature set this value to zero.",
      "DisplayName": "SkyPower EFI restart time",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "EFI_SP_START_FN": {
      "Description": "SkyPower EFI start function. This is the RCn_OPTION value to use to find the R/C channel used for controlling engine start",
      "DisplayName": "SkyPower EFI start function",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "300": "300",
        "301": "301",
        "302": "302",
        "303": "303",
        "304": "304",
        "305": "305",
        "306": "306",
        "307": "307"
      }
    },
    "EFI_SP_ST_DISARM": {
      "Description": "SkyPower EFI allow start disarmed. This controls if starting the engine while disarmed is allowed",
      "DisplayName": "SkyPower EFI allow start disarmed",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EFI_SP_THR_FN": {
      "Description": "SkyPower EFI throttle function. This sets which SERVOn_FUNCTION to use for the target throttle. This should be 70 for fixed wing aircraft and 31 for helicopter rotor speed control",
      "DisplayName": "SkyPower EFI throttle function",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "31": "HeliRSC",
        "70": "FixedWing"
      }
    },
    "EFI_SP_THR_RATE": {
      "Description": "SkyPower EFI throttle rate. This sets rate at which throttle updates are sent to the engine",
      "DisplayName": "SkyPower EFI throttle rate",
      "Range": {
        "high": "100",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "EFI_SP_TLM_RT": {
      "Description": "SkyPower EFI telemetry rate. This is the rate at which extra telemetry values are sent to the GCS",
      "DisplayName": "SkyPower EFI telemetry rate",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "EFI_SP_UPDATE_HZ": {
      "Description": "SkyPower EFI update rate",
      "DisplayName": "SkyPower EFI update rate",
      "Range": {
        "high": "200",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "EFI_SVF_ARMCHECK": {
      "Description": "Check for Generator ARM state before arming",
      "DisplayName": "Generator SVFFI arming check",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EFI_SVF_ENABLE": {
      "Description": "Enable SVFFI generator support",
      "DisplayName": "Generator SVFFI enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "ENABLE": {
      "Description": "When set to 0 this script will not run. When set to 1 this script will run.",
      "DisplayName": "Enable this script",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "User": "Standard"
    },
    "ESC_HW_ENABLE": {
      "Description": "Enable Hobbywing ESC telemetry",
      "DisplayName": "Hobbywing ESC Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "ESC_HW_OFS": {
      "Description": "Motor number offset of first ESC",
      "DisplayName": "Hobbywing ESC motor offset",
      "Range": {
        "high": "31",
        "low": "0"
      },
      "User": "Standard"
    },
    "ESC_HW_POLES": {
      "Description": "Number of motor poles for eRPM scaling",
      "DisplayName": "Hobbywing ESC motor poles",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "User": "Standard"
    },
    "ESRC_EXTN_QUAL": {
      "Description": "ExternalNav may be used if quality is above this threshold",
      "DisplayName": "EKF Source ExternalNav Quality Threshold",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "%",
      "User": "Standard"
    },
    "ESRC_EXTN_THRESH": {
      "Description": "ExternalNav may be used if innovations are below this threshold",
      "DisplayName": "EKF Source ExternalNav Innovation Threshold",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "User": "Standard"
    },
    "ESRC_FLOW_QUAL": {
      "Description": "OpticalFlow may be used if quality is above this threshold",
      "DisplayName": "EKF Source OpticalFlow Quality Threshold",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "%",
      "User": "Standard"
    },
    "ESRC_FLOW_THRESH": {
      "Description": "OpticalFlow may be used if innovations are below this threshold",
      "DisplayName": "EKF Source OpticalFlow Innovation Threshold",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "User": "Standard"
    },
    "ESRC_RNGFND_MAX": {
      "Description": "OpticalFlow may be used if rangefinder distance is below this threshold",
      "DisplayName": "EKF Source Rangefinder Max",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "FOLLP_ACT_FN": {
      "Description": "Setting an RC channel's _OPTION to this value will use it for Plane Follow enable/disable",
      "DisplayName": "Plane Follow Scripting ActivationFunction",
      "Range": {
        "high": "307",
        "low": "300"
      }
    },
    "FOLLP_ALT": {
      "Description": "When non zero, this altitude value (in FOLL_ALT_TYPE frame) overrides the value sent by the target vehicle",
      "DisplayName": "Plane Follow Scripting Altitude Override",
      "Range": {
        "high": "1000",
        "low": "0"
      },
      "Units": "m"
    },
    "FOLLP_DIST_CLOSE": {
      "Description": "When closer than this distance assume we track by heading",
      "DisplayName": "Plane Follow Scripting Close Distance",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "m"
    },
    "FOLLP_D_D": {
      "Description": "D gain for the speed PID controller distance component",
      "DisplayName": "Plane Follow Scripting distance D gain",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "FOLLP_D_I": {
      "Description": "I gain for the speed PID  distance component",
      "DisplayName": "Plane Follow Scripting distance I gain",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "FOLLP_D_P": {
      "Description": "P gain for the speed PID controller distance component",
      "DisplayName": "Plane Follow Scripting distance P gain",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "FOLLP_EXIT_MODE": {
      "Description": "Mode to switch to when follow mode is exited normally",
      "DisplayName": "Plane Follow exit mode",
      "User": "Standard"
    },
    "FOLLP_FAIL_MODE": {
      "Description": "Mode to switch to if the target is lost (no signal or > FOLL_DIST_MAX).",
      "DisplayName": "Plane Follow lost target mode",
      "User": "Standard"
    },
    "FOLLP_LkAHD": {
      "Description": "Time to \"lookahead\" when calculating distance errors",
      "DisplayName": "Plane Follow Lookahead seconds",
      "Units": "s"
    },
    "FOLLP_OVRSHT_DEG": {
      "Description": "If the target is greater than this many degrees left or right, assume an overshoot",
      "DisplayName": "Plane Follow Scripting Overshoot Angle",
      "Range": {
        "high": "180",
        "low": "0"
      },
      "Units": "deg"
    },
    "FOLLP_REFRESH": {
      "Description": "refresh rate for Plane Follow updates",
      "DisplayName": "Plane Follow refresh rate",
      "Range": {
        "high": "0.2",
        "low": "0"
      },
      "Units": "s"
    },
    "FOLLP_SIM_TLF_FN": {
      "Description": "Set this switch to simulate losing telemetry from the other vehicle",
      "DisplayName": "Plane Follow Simulate Telemetry fail function",
      "Range": {
        "high": "307",
        "low": "300"
      }
    },
    "FOLLP_TIMEOUT": {
      "Description": "How long to try reaquire a target if telemetry from the lead vehicle is lost.",
      "DisplayName": "Plane Follow Telemetry Timeout",
      "Range": {
        "high": "30",
        "low": "0"
      },
      "Units": "s"
    },
    "FOLLP_TURN_DEG": {
      "Description": "If the target is greater than this many degrees left or right, assume it's turning",
      "DisplayName": "Plane Follow Scripting Turn Angle",
      "Range": {
        "high": "180",
        "low": "0"
      },
      "Units": "deg"
    },
    "FOLLP_V_D": {
      "Description": "D gain for the speed PID controller velocity component",
      "DisplayName": "Plane Follow Scripting speed D gain",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "FOLLP_V_I": {
      "Description": "I gain for the speed PID controller velocity component",
      "DisplayName": "Plane Follow Scripting speed I gain",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "FOLLP_V_P": {
      "Description": "P gain for the speed PID controller velocity component",
      "DisplayName": "Plane Follow Scripting speed P gain",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "FOLLP_WIDE_TURNS": {
      "Description": "Use wide turns when following a turning target. Alternative is \"cutting the corner\"",
      "DisplayName": "Plane Follow Scripting Wide Turns",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "FOLLP_XT_D": {
      "Description": "D term for the crosstrack/heading PID controller",
      "DisplayName": "Plane Follow crosstrack PID controller D term",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "FOLLP_XT_I": {
      "Description": "I term for the crosstrack/heading PID controller",
      "DisplayName": "Plane Follow crosstrack PID controller I term",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "FOLLP_XT_I_MAX": {
      "Description": "maximum I applied the crosstrack/heading PID controller",
      "DisplayName": "Plane Follow crosstrack PID controller maximum integral",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "ms"
    },
    "FOLLP_XT_MAX": {
      "Description": "maximum correction retured by the crosstrack/heading PID controller",
      "DisplayName": "Plane Follow crosstrack PID controller maximum correction",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "Units": "deg"
    },
    "FOLLP_XT_P": {
      "Description": "P term for the crosstrack/heading PID controller",
      "DisplayName": "Plane Follow crosstrack PID controller P term",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "FOLT_ENABLE": {
      "Description": "Follow Target Send Enable",
      "DisplayName": "Follow Target Send Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "FOLT_MAV_CHAN": {
      "Description": "MAVLink channel to which FOLLOW_TARGET should be sent",
      "DisplayName": "Follow Target Send MAVLink Channel",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Standard"
    },
    "LTE_BAND": {
      "Description": "This allows selection of LTE band. A value of -1 means no band setting change is made. A value of 0 sets all bands. Otherwise the specified band is set.",
      "DisplayName": "LTE band selection",
      "Range": {
        "high": "50",
        "low": "-1"
      },
      "User": "Standard"
    },
    "LTE_BAUD": {
      "Description": "Baud rate for the serial port to the LTE modem when connected. Initial power on baudrate is in LTE_IBAUD",
      "DisplayName": "Serial Baud Rate",
      "User": "Standard",
      "Values": {
        "115200": "115200",
        "19200": "19200",
        "230400": "230400",
        "3686400": "3686400",
        "38400": "38400",
        "460800": "460800",
        "57600": "57600",
        "921600": "921600"
      }
    },
    "LTE_ENABLE": {
      "Description": "Enable or disable the LTE modem driver",
      "DisplayName": "LTE Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "LTE_IBAUD": {
      "Description": "This is the initial baud rate on power on for the modem. This is set in the modem with the AT+IREX=baud command",
      "DisplayName": "LTE initial baudrate",
      "User": "Standard",
      "Values": {
        "115200": "115200",
        "19200": "19200",
        "230400": "230400",
        "3686400": "3686400",
        "38400": "38400",
        "460800": "460800",
        "57600": "57600",
        "921600": "921600"
      }
    },
    "LTE_MCCMNC": {
      "Description": "This allows selection of network operator",
      "DisplayName": "LTE operator selection",
      "User": "Standard",
      "Values": {
        "-1": "NoChange",
        "0": "Default",
        "50501": "AU-Telstra",
        "50502": "AU-Optus",
        "50503": "AU-Vodafone"
      }
    },
    "LTE_OPTIONS": {
      "Bitmask": {
        "0": "LogAllData",
        "1": "VerboseSignalInfoGCS",
        "2": "DisableMultiplexing",
        "3": "DisableSignalQueries",
        "4": "UseTCP"
      },
      "Description": "Options to control the LTE modem driver. If VerboseSignalInfoGCS is set then additional NAMED_VALUE_FLOAT values are sent with verbose signal information",
      "DisplayName": "LTE options",
      "User": "Standard"
    },
    "LTE_PROTOCOL": {
      "Description": "The protocol that we will use in communication with the LTE modem. If this is PPP then the LTE_SERVER parameters are not used and instead a PPP connection will be established and you should use the NET_ parameters to enable network ports. If this is MAVLink2 then the LTE_SERVER parameters are used to create a TCP or UDP connection to a single server.",
      "DisplayName": "LTE protocol",
      "User": "Standard",
      "Values": {
        "2": "MavLink2",
        "48": "PPP"
      }
    },
    "LTE_SCRPORT": {
      "Description": "Scripting Serial port to use for the LTE modem. This is the index of the SCR_SDEV ports that are set to 2 for \"MAVLink2\"",
      "DisplayName": "Scripting Serial Port",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Standard"
    },
    "LTE_SERPORT": {
      "Description": "Serial port to use for the LTE modem. This is the index of the SERIALn_ ports that are set to 28 for \"scripting\"",
      "DisplayName": "Serial Port",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Standard"
    },
    "LTE_SERVER_IP0": {
      "Description": "First octet of the server IP address to connect to",
      "DisplayName": "Server IP 0",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Standard"
    },
    "LTE_SERVER_IP1": {
      "Description": "Second octet of the server IP address to connect to",
      "DisplayName": "Server IP 1",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Standard"
    },
    "LTE_SERVER_IP2": {
      "Description": "Third octet of the server IP address to connect to",
      "DisplayName": "Server IP 2",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Standard"
    },
    "LTE_SERVER_IP3": {
      "Description": "Fourth octet of the server IP address to connect to",
      "DisplayName": "Server IP 3",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Standard"
    },
    "LTE_SERVER_PORT": {
      "Description": "IPv4 Port of the server to connect to",
      "DisplayName": "Server Port",
      "Range": {
        "high": "65525",
        "low": "1"
      },
      "User": "Standard"
    },
    "LTE_TIMEOUT": {
      "Description": "Timeout in seconds for the LTE connection. If no data is received for this time, the connection will be reset. A value of zero disables the timeout",
      "DisplayName": "Timeout",
      "Range": {
        "high": "60",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "LTE_TX_RATE": {
      "Description": "Maximum data transmit rate to the modem in bytes/second. Use zero for unlimited",
      "DisplayName": "Max transmit rate",
      "User": "Standard"
    },
    "MODE": {
      "Description": "0: The sensor will save the fuel consumption across power resets. 1: The sensor will reset the power consumption.",
      "DisplayName": "Sensor operating mode",
      "User": "Standard"
    },
    "PARAM_LOCK_ENAB": {
      "Description": "Param Lockdown enable",
      "DisplayName": "Param Lockdown enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "PLND_ALT_CUTOFF": {
      "Description": "The altitude (rangefinder distance) below which we stop using the precision landing sensor and continue landing",
      "DisplayName": "Precland altitude cutoff",
      "Range": {
        "high": "20",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "POI_DIST_MAX": {
      "Description": "POI's max distance (in meters) from the vehicle",
      "DisplayName": "Mount POI distance max",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Standard"
    },
    "PORT": {
      "Description": "Which Scripting serial port the sensor is connected at.",
      "DisplayName": "Scripting serial port number",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Standard"
    },
    "PREV_ENABLE": {
      "Description": "Enable parameter reversion system",
      "DisplayName": "parameter reversion enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "PREV_RC_FUNC": {
      "Description": "RCn_OPTION number to used to trigger parameter reversion",
      "DisplayName": "param reversion RC function",
      "User": "Standard"
    },
    "QUIK_ANGLE_MAX": {
      "Description": "If while tuning the angle error goes over this limit then the tune will aborts to prevent a bad oscillation in the case of the tuning algorithm failing. If you get an error \"Tuning: attitude error ABORTING\" and you think it is a false positive then you can either raise this parameter or you can try increasing the QUIK_DOUBLE_TIME to do the tune more slowly. A value of zero disables this check.",
      "DisplayName": "maximum angle error for tune abort",
      "Units": "deg",
      "User": "Standard"
    },
    "QUIK_AUTO_FILTER": {
      "Description": "When enabled the PID filter settings are automatically set based on INS_GYRO_FILTER",
      "DisplayName": "Quicktune auto filter enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "QUIK_AUTO_SAVE": {
      "Description": "Number of seconds after completion of tune to auto-save. This is useful when using a 2 position switch for quicktune",
      "DisplayName": "Quicktune auto save",
      "Units": "s",
      "User": "Standard"
    },
    "QUIK_AXES": {
      "Bitmask": {
        "0": "Roll",
        "1": "Pitch",
        "2": "Yaw"
      },
      "Description": "axes to tune",
      "DisplayName": "Quicktune axes",
      "User": "Standard"
    },
    "QUIK_DOUBLE_TIME": {
      "Description": "Time to double a tuning parameter. Raise this for a slower tune.",
      "DisplayName": "Quicktune doubling time",
      "Range": {
        "high": "20",
        "low": "5"
      },
      "Units": "s",
      "User": "Standard"
    },
    "QUIK_ENABLE": {
      "Description": "Enable quicktune system",
      "DisplayName": "Quicktune enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "QUIK_GAIN_MARGIN": {
      "Description": "Reduction in gain after oscillation detected. Raise this number to get a more conservative tune",
      "DisplayName": "Quicktune gain margin",
      "Range": {
        "high": "80",
        "low": "20"
      },
      "Units": "%",
      "User": "Standard"
    },
    "QUIK_MAX_REDUCE": {
      "Description": "This controls how much quicktune is allowed to lower gains from the original gains. If the vehicle already has a reasonable tune and is not oscillating then you can set this to zero to prevent gain reductions. The default of 20% is reasonable for most vehicles. Using a maximum gain reduction lowers the chance of an angle P oscillation happening if quicktune gets a false positive oscillation at a low gain, which can result in very low rate gains and a dangerous angle P oscillation.",
      "DisplayName": "Quicktune maximum gain reduction",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "%",
      "User": "Standard"
    },
    "QUIK_OPTIONS": {
      "Bitmask": {
        "0": "UseTwoPositionSwitch"
      },
      "Description": "Additional options. When the Two Position Switch option is enabled then a high switch position will start the tune, low will disable the tune. you should also set a QUIK_AUTO_SAVE time so that you will be able to save the tune.",
      "DisplayName": "Quicktune options",
      "User": "Standard"
    },
    "QUIK_OSC_SMAX": {
      "Description": "Threshold for oscillation detection. A lower value will lead to a more conservative tune.",
      "DisplayName": "Quicktune oscillation rate threshold",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Standard"
    },
    "QUIK_RC_FUNC": {
      "Description": "RCn_OPTION number to use to control tuning stop/start/save",
      "DisplayName": "Quicktune RC function",
      "User": "Standard"
    },
    "QUIK_RP_PI_RATIO": {
      "Description": "Ratio between P and I gains for roll and pitch. Raise this to get a lower I gain",
      "DisplayName": "Quicktune roll/pitch PI ratio",
      "Range": {
        "high": "1.0",
        "low": "0.5"
      },
      "User": "Standard"
    },
    "QUIK_YAW_D_MAX": {
      "Description": "Maximum value for yaw D gain",
      "DisplayName": "Quicktune Yaw D max",
      "Range": {
        "high": "1",
        "low": "0.001"
      },
      "User": "Standard"
    },
    "QUIK_YAW_P_MAX": {
      "Description": "Maximum value for yaw P gain",
      "DisplayName": "Quicktune Yaw P max",
      "Range": {
        "high": "3",
        "low": "0.1"
      },
      "User": "Standard"
    },
    "QUIK_Y_PI_RATIO": {
      "Description": "Ratio between P and I gains for yaw. Raise this to get a lower I gain",
      "DisplayName": "Quicktune Yaw PI ratio",
      "Range": {
        "high": "20",
        "low": "0.5"
      },
      "User": "Standard"
    },
    "RCK_DEBUG": {
      "Description": "Sends Rockblock debug text to GCS via statustexts",
      "DisplayName": "Display Rockblock debugging text",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "RCK_ENABLE": {
      "Description": "Enables the Rockblock sending and recieving",
      "DisplayName": "Enable Message transmission",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "RCK_FORCEHL": {
      "Description": "Automatically enables High Latency mode if not already enabled",
      "DisplayName": "Force enable High Latency mode",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "Enabled on telemetry loss"
      }
    },
    "RCK_PERIOD": {
      "Description": "When in High Latency mode, send Rockblock updates every N seconds",
      "DisplayName": "Update rate",
      "Range": {
        "high": "600",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "RCK_TIMEOUT": {
      "Description": "If RCK_FORCEHL=2, this is the number of seconds of GCS timeout until High Latency mode is auto-enabled",
      "DisplayName": "GCS timeout to start sendin Rockblock messages",
      "Range": {
        "high": "600",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "RK9_BOOTED": {
      "Description": "SERVOn GPIO channel that reads the Rockblock booted state. This connects to I_BTD on the Rockblock header. Requires SERVON_FUNCTION=-1",
      "DisplayName": "Rockblock booted feedback",
      "Range": {
        "high": "110",
        "low": "50"
      },
      "User": "Standard"
    },
    "RK9_DEBUG": {
      "Description": "Sends Rockblock debug text to GCS via statustexts",
      "DisplayName": "Display Rockblock debugging text",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "RK9_ENABLE": {
      "Description": "Enables the Rockblock sending and recieving",
      "DisplayName": "Enable Message transmission",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "RK9_FORCEHL": {
      "Description": "Automatically enables High Latency mode if not already enabled",
      "DisplayName": "Force enable High Latency mode",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "Enabled on telemetry loss"
      }
    },
    "RK9_PERIOD": {
      "Description": "When in High Latency mode, send Rockblock updates every N seconds",
      "DisplayName": "Update rate",
      "Range": {
        "high": "600",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "RK9_RELAY": {
      "Description": "RELAYn output to control Rockblock power. This connects to I_EN on the Rockblock header.",
      "DisplayName": "Rockblock Power Relay",
      "Range": {
        "high": "8",
        "low": "1"
      },
      "User": "Standard"
    },
    "RK9_SCRPORT": {
      "Description": "Scripting Serial port number to which the Rockblock is connected for HL2 messages This is the index of the SCR_SDEV ports that are set to 2 for \"MavlinkHL\"",
      "DisplayName": "Rockblock Scripting Serial Port",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Standard"
    },
    "RK9_SERPORT": {
      "Description": "Serial port number to which the Rockblock is connected.This is the index of the SERIALn_ ports that are set to 28 for \"scripting\"",
      "DisplayName": "Rockblock Serial Port",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Standard"
    },
    "RK9_TIMEOUT": {
      "Description": "If RK9_FORCEHL=2, this is the number of seconds of GCS timeout until High Latency mode is auto-enabled",
      "DisplayName": "GCS timeout to start sendin Rockblock messages",
      "Range": {
        "high": "600",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "RTUN_AUTO_FILTER": {
      "Description": "When enabled the PID filter settings are automatically set based on INS_GYRO_FILTER",
      "DisplayName": "Rover Quicktune auto filter enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "RTUN_AUTO_SAVE": {
      "Description": "Number of seconds after completion of tune to auto-save. This is useful when using a 2 position switch for quicktune",
      "DisplayName": "Rover Quicktune auto save",
      "Units": "s",
      "User": "Standard"
    },
    "RTUN_AXES": {
      "Bitmask": {
        "0": "Steering",
        "1": "Speed"
      },
      "Description": "axes to tune",
      "DisplayName": "Rover Quicktune axes",
      "User": "Standard"
    },
    "RTUN_ENABLE": {
      "Description": "Enable quicktune system",
      "DisplayName": "Rover Quicktune enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "RTUN_RC_FUNC": {
      "Description": "RCn_OPTION number to use to control tuning stop/start/save",
      "DisplayName": "Rover Quicktune RC function",
      "User": "Standard",
      "Values": {
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8"
      }
    },
    "RTUN_SPD_FFRATIO": {
      "Description": "Ratio between measured response and CRUISE_THROTTLE value. Raise this to get a higher CRUISE_THROTTLE value",
      "DisplayName": "Rover Quicktune Speed FeedForward (equivalent) ratio",
      "Range": {
        "high": "1.0",
        "low": "0"
      },
      "User": "Standard"
    },
    "RTUN_SPD_I_RATIO": {
      "Description": "Ratio between speed FF and I gain. Raise this to get a higher I gain, 0 to leave I unchanged",
      "DisplayName": "Rover Quicktune Speed FF to I ratio",
      "Range": {
        "high": "2.0",
        "low": "0"
      },
      "User": "Standard"
    },
    "RTUN_SPD_P_RATIO": {
      "Description": "Ratio between speed FF and P gain. Raise this to get a higher P gain, 0 to leave P unchanged",
      "DisplayName": "Rover Quicktune Speed FF to P ratio",
      "Range": {
        "high": "2.0",
        "low": "0"
      },
      "User": "Standard"
    },
    "RTUN_SPEED_MIN": {
      "Description": "The mimimum speed in m/s required for tuning to start",
      "DisplayName": "Rover Quicktune minimum speed for tuning",
      "Range": {
        "high": "0.5",
        "low": "0.1"
      },
      "Units": "m/s",
      "User": "Standard"
    },
    "RTUN_STR_FFRATIO": {
      "Description": "Ratio between measured response and FF gain. Raise this to get a higher FF gain",
      "DisplayName": "Rover Quicktune Steering Rate FeedForward ratio",
      "Range": {
        "high": "1.0",
        "low": "0"
      },
      "User": "Standard"
    },
    "RTUN_STR_I_RATIO": {
      "Description": "Ratio between steering FF and I gains. Raise this to get a higher I gain, 0 to leave I unchanged",
      "DisplayName": "Rover Quicktune Steering FF to I ratio",
      "Range": {
        "high": "2.0",
        "low": "0"
      },
      "User": "Standard"
    },
    "RTUN_STR_P_RATIO": {
      "Description": "Ratio between steering FF and P gains. Raise this to get a higher P gain, 0 to leave P unchanged",
      "DisplayName": "Rover Quicktune Steering FF to P ratio",
      "Range": {
        "high": "2.0",
        "low": "0"
      },
      "User": "Standard"
    },
    "SHIP_AUTO_OFS": {
      "Description": "Settings this parameter to one triggers an automatic follow offset calculation based on current position of the vehicle and the landing target. NOTE: This parameter will auto-reset to zero once the offset has been calculated.",
      "DisplayName": "Ship automatic offset trigger",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Trigger"
      }
    },
    "SHIP_ENABLE": {
      "Description": "Enable ship landing system",
      "DisplayName": "Ship landing enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SHIP_LAND_ANGLE": {
      "Description": "Angle from the stern of the ship for landing approach. Use this to ensure that on a go-around that ship superstructure and cables are avoided. A value of zero means to approach from the rear of the ship. A value of 90 means the landing will approach from the port (left) side of the ship. A value of -90 will mean approaching from the starboard (right) side of the ship. A value of 180 will approach from the bow of the ship. This parameter is combined with the sign of the RTL_RADIUS parameter to determine the holdoff pattern. If RTL_RADIUS is positive then a clockwise loiter is performed, if RTL_RADIUS is negative then a counter-clockwise loiter is used.",
      "DisplayName": "Ship landing angle",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "SLUP_DEBUG": {
      "Description": "Slung payload debug output, set to 1 to enable debug",
      "DisplayName": "Slung Payload debug output",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SLUP_DIST_MAX": {
      "Description": "Oscillation is suppressed when vehicle and payload are no more than this distance horizontally.  Set to 0 to always suppress",
      "DisplayName": "Slung Payload horizontal distance max",
      "Range": {
        "high": "30",
        "low": "0"
      },
      "User": "Standard"
    },
    "SLUP_ENABLE": {
      "Description": "Slung Payload enable",
      "DisplayName": "Slung Payload enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SLUP_RESTOFS_TC": {
      "Description": "payload's position estimator's time constant used to compensate for GPS errors and wind.  Higher values result in smoother estimate but slower response",
      "DisplayName": "Slung Payload resting offset estimate filter time constant",
      "Range": {
        "high": "20",
        "low": "1"
      },
      "User": "Standard"
    },
    "SLUP_SYSID": {
      "Description": "Slung Payload mavlink system id.  0 to use any/all system ids",
      "DisplayName": "Slung Payload mavlink system id",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Standard"
    },
    "SLUP_VEL_P": {
      "Description": "Slung Payload Velocity P gain, higher values will result in faster movements in sync with payload",
      "DisplayName": "Slung Payload Velocity P gain",
      "Range": {
        "high": "0.8",
        "low": "0"
      },
      "User": "Standard"
    },
    "SLUP_WP_POS_P": {
      "Description": "WP position P gain. higher values will result in vehicle moving more quickly back to the original waypoint",
      "DisplayName": "Slung Payload return to WP position P gain",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "User": "Standard"
    },
    "TA_ACT_FN": {
      "Description": "Setting an RC channel's _OPTION to this value will use it for Terrain Avoidance enable/disable",
      "DisplayName": "Activation Function for Terrain Avoidance",
      "Range": {
        "high": "307",
        "low": "300"
      }
    },
    "TA_ALT_MAX": {
      "Description": "This is a limit on how high the terrain avoidane will take the vehicle. It acts a failsafe to prevent vertical flyaways.",
      "DisplayName": "ceiling for pitching/quading",
      "Range": {
        "high": "1000",
        "low": "20"
      },
      "Units": "m"
    },
    "TA_CMTC_ENABLE": {
      "Description": "Whether to enable Can't Make That Climb while running Terrain Avoidance",
      "DisplayName": "CMTC Enable",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "TA_CMTC_HGT": {
      "Description": "The minimum Height above terrain to maintain when following an AUTO mission or RTL. If zero(0) use TA_PTCH_DOW_MIN.",
      "DisplayName": "CMTC Height",
      "Units": "m"
    },
    "TA_CMTC_RAD": {
      "Description": "Use this radius for the loiter when trying to gain altitude. If not set or <=0 use WP_LOITER_RAD",
      "DisplayName": "CMTC loiter radius",
      "Units": "m"
    },
    "TA_GSP_AIRBRAKE": {
      "Description": "This is the limit for triggering airbrake to slow groundspeed as a difference between the airspeed and groundspeed. -1 for disabled.",
      "DisplayName": "Groudspeed Airbrake limt",
      "Range": {
        "high": "-10",
        "low": "-1"
      },
      "Units": "m/s"
    },
    "TA_GSP_MAX": {
      "Description": "This is a limit on how fast in groundspeeed terrain avoidance will take the vehicle. This is to allow for reliable sensor readings. -1 for disabled.",
      "DisplayName": "Maximum Groundspeed",
      "Range": {
        "high": "40",
        "low": "10"
      },
      "Units": "m/s"
    },
    "TA_HOME_DIST": {
      "Description": "Terrain avoidance will not be applied if the vehicle is less than this distance from home",
      "DisplayName": "safe distance around home",
      "Units": "m"
    },
    "TA_PTCH_DWN_MIN": {
      "Description": "If the downward distance is less than this value then start Pitching up to gain altitude.",
      "DisplayName": "down distance minimum for Pitching",
      "Units": "m"
    },
    "TA_PTCH_FWD_MIN": {
      "Description": "If the farwardward distance is less than this value then start Pitching up to gain altitude.",
      "DisplayName": "forward distance minimum for Pitching",
      "Units": "m"
    },
    "TA_PTCH_GSP_MIN": {
      "Description": "Minimum Groundspeed (not airspeed) to be flying for Pitching to be used.",
      "DisplayName": "minimum ground speed for Pitching",
      "Units": "m/s"
    },
    "TA_PTCH_TIMEOUT": {
      "Description": "Minimum down or forward distance must be triggered for more than this many seconds to start Pitching",
      "DisplayName": "timeout Pitching",
      "Units": "s"
    },
    "TA_QUAD_DWN_MIN": {
      "Description": "If the downward distance is less than this value then start Quading up to gain altitude.",
      "DisplayName": "Downward distance minimum Quading",
      "Units": "m"
    },
    "TA_QUAD_FWD_MIN": {
      "Description": "If the farwardward distance is less than this value then start Quading up to gain altitude.",
      "DisplayName": "minimum forward distance for Quading",
      "Units": "m"
    },
    "TA_UPDATE_RATE": {
      "Description": "Avoidance processing rate",
      "DisplayName": "Frequency to process avoidance",
      "Units": "Hz"
    },
    "TERR_BRK_ALT": {
      "Description": "terrain brake altitude. The altitude above the ground below which BRAKE mode will be engaged if in LOITER mode.",
      "DisplayName": "terrain brake altitude",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "m",
      "User": "Standard"
    },
    "TERR_BRK_ENABLE": {
      "Description": "terrain brake enable",
      "DisplayName": "terrain brake enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "TERR_BRK_HDIST": {
      "Description": "terrain brake home distance. The distance from home where the auto BRAKE will be enabled. When within this distance of home the script will not activate",
      "DisplayName": "terrain brake home distance",
      "Range": {
        "high": "1000",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "TERR_BRK_SPD": {
      "Description": "terrain brake speed threshold. Don't trigger BRAKE if both horizontal speed and descent rate are below this threshold. By setting this to a small value this can be used to allow the user to climb up to a safe altitude in LOITER mode. A value of 0.5 is recommended if you want to use LOITER to recover from an emergency terrain BRAKE mode change.",
      "DisplayName": "terrain brake speed threshold",
      "Range": {
        "high": "5",
        "low": "0"
      },
      "Units": "m/s",
      "User": "Standard"
    },
    "THR_KILL_CHAN": {
      "Description": "output channel to change on throttle kill, a value of zero disables the feature",
      "DisplayName": "output channel to change on throttle kill",
      "Range": {
        "high": "32",
        "low": "0"
      },
      "User": "Standard"
    },
    "THR_KILL_DEF": {
      "Description": "throttle kill default value. The default auxilliary function position on boot",
      "DisplayName": "throttle kill default value",
      "Range": {
        "high": "2",
        "low": "0"
      },
      "User": "Standard"
    },
    "THR_KILL_FUNC": {
      "Description": "AUX function to kill engine. This can be activated either with a RCn_OPTION and a R/C switch or with a ground station auxilliary function",
      "DisplayName": "AUX function to kill engine",
      "Range": {
        "high": "307",
        "low": "300"
      },
      "User": "Standard"
    },
    "THR_KILL_PWM": {
      "Description": "PWM on kill active",
      "DisplayName": "PWM on kill active",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "User": "Standard"
    },
    "THR_KILL_VAL": {
      "Description": "auxilliary value to kill throttle. Set to 2 to kill the throttle when the auxilliary is high. Set to 0 to kill when auxilliary is low",
      "DisplayName": "auxilliary value to kill throttle",
      "Range": {
        "high": "2",
        "low": "0"
      },
      "User": "Standard"
    },
    "TOFSENSE_ID1": {
      "Description": "First TOFSENSE-M sensor ID. Leave this at 0 to accept all IDs and if only one sensor is present. You can change ID of sensor from NAssistant Software",
      "DisplayName": "TOFSENSE-M First ID",
      "Range": {
        "high": "255",
        "low": "1"
      },
      "User": "Standard"
    },
    "TOFSENSE_ID2": {
      "Description": "Second TOFSENSE-M sensor ID. This cannot be 0. You can change ID of sensor from NAssistant Software",
      "DisplayName": "TOFSENSE-M Second ID",
      "Range": {
        "high": "255",
        "low": "1"
      },
      "User": "Standard"
    },
    "TOFSENSE_ID3": {
      "Description": "Third TOFSENSE-M sensor ID. This cannot be 0. You can change ID of sensor from NAssistant Software",
      "DisplayName": "TOFSENSE-M Thir ID",
      "Range": {
        "high": "255",
        "low": "1"
      },
      "User": "Standard"
    },
    "TOFSENSE_INST1": {
      "Description": "First TOFSENSE-M sensors backend Instance. Setting this to 1 will pick the first backend from PRX_ or RNG_ Parameters (Depending on TOFSENSE_PRX)",
      "DisplayName": "TOFSENSE-M First Instance",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "User": "Standard"
    },
    "TOFSENSE_INST2": {
      "Description": "Second TOFSENSE-M sensors backend Instance. Setting this to 2 will pick the second backend from PRX_ or RNG_ Parameters (Depending on TOFSENSE_PRX)",
      "DisplayName": "TOFSENSE-M Second Instance",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "User": "Standard"
    },
    "TOFSENSE_INST3": {
      "Description": "Third TOFSENSE-M sensors backend Instance. Setting this to 3 will pick the second backend from PRX_ or RNG_ Parameters (Depending on TOFSENSE_PRX)",
      "DisplayName": "TOFSENSE-M Third Instance",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "User": "Standard"
    },
    "TOFSENSE_MODE": {
      "Description": "TOFSENSE-M mode to be used. 0 for 8x8 mode. 1 for 4x4 mode",
      "DisplayName": "TOFSENSE-M mode to be used",
      "User": "Standard",
      "Values": {
        "0": "8x8 mode",
        "1": "4x4 mode"
      }
    },
    "TOFSENSE_NO": {
      "Description": "Number of TOFSENSE-M CAN sensors connected",
      "DisplayName": "TOFSENSE-M Connected",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "User": "Standard"
    },
    "TOFSENSE_PRX": {
      "Description": "Set 0 if sensor is to be used as a 1-D rangefinder (minimum of all distances will be sent, typically used for height detection). Set 1 if it should be used as a 3-D proximity device (Eg. Obstacle Avoidance)",
      "DisplayName": "TOFSENSE-M to be used as Proximity sensor",
      "User": "Standard",
      "Values": {
        "0": "Set as Rangefinder",
        "1": "Set as Proximity sensor"
      }
    },
    "TOFSENSE_S1_BR": {
      "Description": "Serial Port baud rate. Sensor baud rate can be changed from Nassistant software",
      "DisplayName": "TOFSENSE-M serial port baudrate",
      "User": "Standard"
    },
    "TOFSENSE_S1_PRX": {
      "Description": "Set 0 if sensor is to be used as a 1-D rangefinder (minimum of all distances will be sent, typically used for height detection). Set 1 if it should be used as a 3-D proximity device (Eg. Obstacle Avoidance)",
      "DisplayName": "TOFSENSE-M to be used as Proximity sensor",
      "User": "Standard",
      "Values": {
        "0": "Set as Rangefinder",
        "1": "Set as Proximity sensor"
      }
    },
    "TOFSENSE_S1_SP": {
      "Description": "UART instance sensor is connected to. Set 1 if sensor is connected to the port with fist SERIALx_PROTOCOL = 28.",
      "DisplayName": "TOFSENSE-M serial port config",
      "Range": {
        "high": "4",
        "low": "1"
      },
      "User": "Standard"
    },
    "TRIK_ACT_FN": {
      "Description": "Setting an RC channel's _OPTION to this value will use it for trick action (abort,announce,execute)",
      "DisplayName": "Trik Action Scripting Function",
      "Range": {
        "high": "307",
        "low": "301"
      }
    },
    "TRIK_COUNT": {
      "Description": "Number of tricks which can be selected over the range of the trik selection RC channel",
      "DisplayName": "Trik Count",
      "Range": {
        "high": "11",
        "low": "1"
      }
    },
    "TRIK_ENABLE": {
      "Description": "Enables Tricks on Switch. TRIK params hidden until enabled",
      "DisplayName": "Tricks on Switch Enable"
    },
    "TRIK_SEL_FN": {
      "Description": "Setting an RC channel's _OPTION to this value will use it for trick selection",
      "DisplayName": "Trik Selection Scripting Function",
      "Range": {
        "high": "307",
        "low": "301"
      }
    },
    "TRQL_DEBUG": {
      "Description": "Torqeedo TorqLink Debug Level",
      "DisplayName": "Torqeedo TorqLink Debug Level",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Low",
        "2": "Medium",
        "3": "High"
      }
    },
    "TRQL_ENABLE": {
      "Description": "Torqeedo TorqLink Enable",
      "DisplayName": "Torqeedo TorqLink Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "UM_CANDRV": {
      "Description": "Set CAN driver",
      "DisplayName": "Set CAN driver",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "1stCANDriver",
        "2": "2ndCanDriver"
      }
    },
    "UM_OPTIONS": {
      "Bitmask": {
        "1": "ParseTelemetry",
        "2": "SendPosAsNamedValueFloat"
      },
      "Description": "Optional settings",
      "DisplayName": "Optional settings",
      "User": "Standard"
    },
    "UM_RATE_HZ": {
      "Description": "Update rate for UltraMotion servos",
      "DisplayName": "Update rate for UltraMotion servos",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "UM_SERVO_MASK": {
      "Bitmask": {
        "0": "SERVO1",
        "1": "SERVO2",
        "10": "SERVO11",
        "11": "SERVO12",
        "2": "SERVO3",
        "3": "SERVO4",
        "4": "SERVO5",
        "5": "SERVO6",
        "6": "SERVO7",
        "7": "SERVO8",
        "8": "SERVO9",
        "9": "SERVO10"
      },
      "Description": "Mask of UltraMotion servos",
      "DisplayName": "Mask of UltraMotion servos",
      "User": "Standard"
    },
    "VID1_BITRATE": {
      "Description": "Video stream bitrate",
      "DisplayName": "Camera1 Video Stream Bitrate",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Standard"
    },
    "VID1_CAMMODEL": {
      "Description": "Video stream camera model",
      "DisplayName": "Camera1 Video Stream Camera Model",
      "User": "Standard",
      "Values": {
        "0": "Unknown",
        "1": "Siyi A8",
        "10": "Herelink USB-tethering",
        "11": "Topotek 1080p",
        "12": "Topotek 480p",
        "13": "Viewpro",
        "2": "Siyi ZR10",
        "3": "Siyi ZR30",
        "4": "Siyi ZT30 Zoom",
        "5": "Siyi ZT30 Wide",
        "6": "Siyi ZT30 IR",
        "7": "Siyi ZT6 RGB",
        "8": "Siyi ZT6 IR",
        "9": "Herelink WifiAP"
      }
    },
    "VID1_ENCODING": {
      "Description": "Video stream encoding",
      "DisplayName": "Camera1 Video Stream Encoding",
      "User": "Standard",
      "Values": {
        "0": "Unknown",
        "1": "H264",
        "2": "H265"
      }
    },
    "VID1_FLAG": {
      "Bitmask": {
        "0": "Running",
        "1": "Thermal",
        "2": "Thermal Range Enabled"
      },
      "Description": "Video stream flags",
      "DisplayName": "Camera1 Video Stream Flags",
      "User": "Standard"
    },
    "VID1_FRAME_RATE": {
      "Description": "Video stream frame rate",
      "DisplayName": "Camera1 Video Stream Frame Rate",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "User": "Standard"
    },
    "VID1_HFOV": {
      "Description": "Video stream horizontal FOV",
      "DisplayName": "Camera1 Video Stream Horizontal FOV",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "User": "Standard"
    },
    "VID1_HRES": {
      "Description": "Video stream horizontal resolution",
      "DisplayName": "Camera1 Video Stream Horizontal Resolution",
      "Range": {
        "high": "4096",
        "low": "0"
      },
      "User": "Standard"
    },
    "VID1_ID": {
      "Description": "Video stream id",
      "DisplayName": "Camera1 Video Stream Id",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "User": "Standard"
    },
    "VID1_IPADDR0": {
      "Description": "Video stream IP Address first octet",
      "DisplayName": "Camera1 Video Stream IP Address 0",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Standard"
    },
    "VID1_IPADDR1": {
      "Description": "Video stream IP Address second octet",
      "DisplayName": "Camera1 Video Stream IP Address 1",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Standard"
    },
    "VID1_IPADDR2": {
      "Description": "Video stream IP Address third octet",
      "DisplayName": "Camera1 Video Stream IP Address 2",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Standard"
    },
    "VID1_IPADDR3": {
      "Description": "Video stream IP Address fourth octet",
      "DisplayName": "Camera1 Video Stream IP Address 3",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Standard"
    },
    "VID1_IPPORT": {
      "Description": "Video stream IP Address Port",
      "DisplayName": "Camera1 Video Stream IP Address Port",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Standard"
    },
    "VID1_TYPE": {
      "Description": "Video stream type",
      "DisplayName": "Camera1 Video Stream Type",
      "User": "Standard",
      "Values": {
        "0": "RTSP",
        "1": "RTPUDP",
        "2": "TCP_MPEG",
        "3": "MPEG_TS"
      }
    },
    "VID1_VRES": {
      "Description": "Video stream vertical resolution",
      "DisplayName": "Camera1 Video Stream Vertical Resolution",
      "Range": {
        "high": "4096",
        "low": "0"
      },
      "User": "Standard"
    },
    "WEB_BIND_PORT": {
      "Description": "web server TCP port",
      "DisplayName": "web server TCP port",
      "Range": {
        "high": "65535",
        "low": "1"
      },
      "User": "Standard"
    },
    "WEB_BLOCK_SIZE": {
      "Description": "web server block size for download",
      "DisplayName": "web server block size",
      "Range": {
        "high": "65535",
        "low": "1"
      },
      "User": "Advanced"
    },
    "WEB_DEBUG": {
      "Description": "web server debugging",
      "DisplayName": "web server debugging",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "WEB_ENABLE": {
      "Description": "enable web server",
      "DisplayName": "enable web server",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "WEB_SENDFILE_MIN": {
      "Description": "sendfile is an offloading mechanism for faster file download. If this is non-zero and the file is larger than this size then sendfile will be used for file download",
      "DisplayName": "web server minimum file size for sendfile",
      "Range": {
        "high": "10000000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "WEB_TIMEOUT": {
      "Description": "timeout for inactive connections",
      "DisplayName": "web server timeout",
      "Range": {
        "high": "60",
        "low": "0.1"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "WINCH_RATE_DN": {
      "Description": "Maximum rate when releasing line",
      "DisplayName": "WinchControl Rate Down",
      "Range": {
        "high": "5.0",
        "low": "0.1"
      },
      "User": "Standard"
    },
    "WINCH_RATE_UP": {
      "Description": "Maximum rate when retracting line",
      "DisplayName": "WinchControl Rate Up",
      "Range": {
        "high": "5.0",
        "low": "0.1"
      },
      "User": "Standard"
    },
    "WINCH_RC_FUNC": {
      "Description": "RCn_OPTION number to use to control winch rate",
      "DisplayName": "Winch Rate Control RC function",
      "User": "Standard",
      "Values": {
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8"
      }
    }
  },
  "ACTUATOR": {
    "ACTUATOR1_INC": {
      "Description": "Initial increment step for changing the actuator's PWM",
      "DisplayName": "Increment step for actuator 1",
      "Units": "us",
      "User": "Standard"
    },
    "ACTUATOR2_INC": {
      "Description": "Initial increment step for changing the actuator's PWM",
      "DisplayName": "Increment step for actuator 2",
      "Units": "us",
      "User": "Standard"
    },
    "ACTUATOR3_INC": {
      "Description": "Initial increment step for changing the actuator's PWM",
      "DisplayName": "Increment step for actuator 3",
      "Units": "us",
      "User": "Standard"
    },
    "ACTUATOR4_INC": {
      "Description": "Initial increment step for changing the actuator's PWM",
      "DisplayName": "Increment step for actuator 4",
      "Units": "us",
      "User": "Standard"
    },
    "ACTUATOR5_INC": {
      "Description": "Initial increment step for changing the actuator's PWM",
      "DisplayName": "Increment step for actuator 5",
      "Units": "us",
      "User": "Standard"
    },
    "ACTUATOR6_INC": {
      "Description": "Initial increment step for changing the actuator's PWM",
      "DisplayName": "Increment step for actuator 6",
      "Units": "us",
      "User": "Standard"
    }
  },
  "AHRS_": {
    "AHRS_COMP_BETA": {
      "Description": "This controls the time constant for the cross-over frequency used to fuse AHRS (airspeed and heading) and GPS data to estimate ground velocity. Time constant is 0.1/beta. A larger time constant will use GPS data less and a small time constant will use air data less.",
      "DisplayName": "AHRS Velocity Complementary Filter Beta Coefficient",
      "Increment": "0.01",
      "Range": {
        "high": "0.5",
        "low": "0.001"
      },
      "User": "Advanced"
    },
    "AHRS_EKF_TYPE": {
      "Description": "This controls which NavEKF Kalman filter version is used for attitude and position estimation",
      "DisplayName": "Use NavEKF Kalman filter for attitude and position estimation",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "10": "Sim",
        "11": "ExternalAHRS",
        "2": "Enable EKF2",
        "3": "Enable EKF3"
      }
    },
    "AHRS_GPS_GAIN": {
      "Description": "This controls how much to use the GPS to correct the attitude. This should never be set to zero for a plane as it would result in the plane losing control in turns. For a plane please use the default value of 1.0.",
      "DisplayName": "AHRS GPS gain",
      "Increment": "0.01",
      "Range": {
        "high": "1.0",
        "low": "0.0"
      },
      "User": "Advanced"
    },
    "AHRS_GPS_MINSATS": {
      "Description": "Minimum number of satellites visible to use GPS for velocity based corrections attitude correction. This defaults to 6, which is about the point at which the velocity numbers from a GPS become too unreliable for accurate correction of the accelerometers.",
      "DisplayName": "AHRS GPS Minimum satellites",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "AHRS_GPS_USE": {
      "Description": "This controls whether to use dead-reckoning or GPS based navigation. If set to 0 then the GPS won't be used for navigation, and only dead reckoning will be used. A value of zero should never be used for normal flight. Currently this affects only the DCM-based AHRS: the EKF uses GPS according to its own parameters. A value of 2 means to use GPS for height as well as position - both in DCM estimation and when determining altitude-above-home.",
      "DisplayName": "AHRS use GPS for DCM navigation and position-down",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Use GPS for DCM position",
        "2": "Use GPS for DCM position and height"
      }
    },
    "AHRS_OPTIONS": {
      "Bitmask": {
        "0": "DisableDCMFallbackFW",
        "1": "DisableDCMFallbackVTOL",
        "2": "DontDisableAirspeedUsingEKF",
        "3": "RecordOrigin",
        "4": "UseRecordedOriginForNonGPS"
      },
      "Description": "This controls optional AHRS behaviour. Setting DisableDCMFallbackFW will change the AHRS behaviour for fixed wing aircraft in fly-forward flight to not fall back to DCM when the EKF stops navigating. Setting DisableDCMFallbackVTOL will change the AHRS behaviour for fixed wing aircraft in non fly-forward (VTOL) flight to not fall back to DCM when the EKF stops navigating. Setting DontDisableAirspeedUsingEKF disables the EKF based innovation check for airspeed consistency. Setting AutoRecordOrigin will auto-save the EKF origin to parameters when it becomes valid.",
      "DisplayName": "Optional AHRS behaviour",
      "User": "Advanced"
    },
    "AHRS_ORIENTATION": {
      "Description": "Overall board orientation relative to the standard orientation for the board type. This rotates the IMU and compass readings to allow the board to be oriented in your vehicle at any 90 or 45 degree angle. The label for each option is specified in the order of rotations for that orientation. This option takes affect on next boot. After changing you will need to re-level your vehicle. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the AHRS_CUSTOM_ROLL/PIT/YAW angles for AHRS orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_ROT1_ROLL/PIT/YAW or CUST_ROT2_ROLL/PIT/YAW angles.",
      "DisplayName": "Board Orientation",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Yaw45",
        "10": "Yaw90Roll180",
        "100": "Custom 4.1 and older",
        "101": "Custom 1",
        "102": "Custom 2",
        "11": "Yaw135Roll180",
        "12": "Pitch180",
        "13": "Yaw225Roll180",
        "14": "Yaw270Roll180",
        "15": "Yaw315Roll180",
        "16": "Roll90",
        "17": "Yaw45Roll90",
        "18": "Yaw90Roll90",
        "19": "Yaw135Roll90",
        "2": "Yaw90",
        "20": "Roll270",
        "21": "Yaw45Roll270",
        "22": "Yaw90Roll270",
        "23": "Yaw135Roll270",
        "24": "Pitch90",
        "25": "Pitch270",
        "26": "Yaw90Pitch180",
        "27": "Yaw270Pitch180",
        "28": "Pitch90Roll90",
        "29": "Pitch90Roll180",
        "3": "Yaw135",
        "30": "Pitch90Roll270",
        "31": "Pitch180Roll90",
        "32": "Pitch180Roll270",
        "33": "Pitch270Roll90",
        "34": "Pitch270Roll180",
        "35": "Pitch270Roll270",
        "36": "Yaw90Pitch180Roll90",
        "37": "Yaw270Roll90",
        "38": "Yaw293Pitch68Roll180",
        "39": "Pitch315",
        "4": "Yaw180",
        "40": "Pitch315Roll90",
        "42": "Roll45",
        "43": "Roll315",
        "5": "Yaw225",
        "6": "Yaw270",
        "7": "Yaw315",
        "8": "Roll180",
        "9": "Yaw45Roll180"
      }
    },
    "AHRS_ORIGIN_ALT": {
      "Description": "AHRS last origin altitude in meters",
      "DisplayName": "AHRS last origin altitude",
      "Range": {
        "high": "5000",
        "low": "-200"
      },
      "User": "Advanced"
    },
    "AHRS_ORIGIN_LAT": {
      "Description": "AHRS last origin latitude in degrees",
      "DisplayName": "AHRS last origin latitude",
      "Increment": "1",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "User": "Advanced"
    },
    "AHRS_ORIGIN_LON": {
      "Description": "AHRS last origin longitude in degrees",
      "DisplayName": "AHRS last origin longitude",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "User": "Advanced"
    },
    "AHRS_RP_P": {
      "Description": "This controls how fast the accelerometers correct the attitude",
      "DisplayName": "AHRS RP_P",
      "Increment": "0.01",
      "Range": {
        "high": "0.4",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "AHRS_TRIM_X": {
      "Description": "Compensates for the roll angle difference between the control board and the frame. Positive values make the vehicle roll right.",
      "DisplayName": "AHRS Trim Roll",
      "Increment": "0.01",
      "Range": {
        "high": "+0.1745",
        "low": "-0.1745"
      },
      "Units": "rad",
      "User": "Standard"
    },
    "AHRS_TRIM_Y": {
      "Description": "Compensates for the pitch angle difference between the control board and the frame. Positive values make the vehicle pitch up/back.",
      "DisplayName": "AHRS Trim Pitch",
      "Increment": "0.01",
      "Range": {
        "high": "+0.1745",
        "low": "-0.1745"
      },
      "Units": "rad",
      "User": "Standard"
    },
    "AHRS_TRIM_Z": {
      "Description": "Not Used",
      "DisplayName": "AHRS Trim Yaw",
      "Increment": "0.01",
      "Range": {
        "high": "+0.1745",
        "low": "-0.1745"
      },
      "Units": "rad",
      "User": "Advanced"
    },
    "AHRS_WIND_MAX": {
      "Description": "This sets the maximum allowable difference between ground speed and airspeed. A value of zero means to use the airspeed as is. This allows the plane to cope with a failing airspeed sensor by clipping it to groundspeed plus/minus this limit. See ARSPD_OPTIONS and ARSPD_WIND_MAX to disable airspeed sensors.",
      "DisplayName": "Maximum wind",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "AHRS_YAW_P": {
      "Description": "This controls the weight the compass or GPS has on the heading. A higher value means the heading will track the yaw source (GPS or compass) more rapidly.",
      "DisplayName": "Yaw P",
      "Increment": "0.01",
      "Range": {
        "high": "0.4",
        "low": "0.1"
      },
      "User": "Advanced"
    }
  },
  "AIS_": {
    "AIS_LIST_MAX": {
      "Description": "AIS list size of nearest vessels. Longer lists take longer to refresh with lower SRx_ADSB values.",
      "DisplayName": "AIS vessel list size",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "User": "Advanced"
    },
    "AIS_LOGGING": {
      "Bitmask": {
        "0": "Log all AIVDM messages",
        "1": "Log only unsupported AIVDM messages",
        "2": "Log decoded messages"
      },
      "Description": "Bitmask of AIS logging options",
      "DisplayName": "AIS logging options",
      "User": "Advanced"
    },
    "AIS_TIME_OUT": {
      "Description": "if no updates are received in this time a vessel will be removed from the list",
      "DisplayName": "AIS vessel time out",
      "Range": {
        "high": "2000",
        "low": "1"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "AIS_TYPE": {
      "Description": "AIS receiver type",
      "DisplayName": "AIS receiver type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "NMEA AIVDM message"
      }
    }
  },
  "ARMING_": {
    "ARMING_ACCTHRESH": {
      "Description": "Accelerometer error threshold used to determine inconsistent accelerometers. Compares this error range to other accelerometers to detect a hardware or calibration error. Lower value means tighter check and harder to pass arming check. Not all accelerometers are created equal.",
      "DisplayName": "Accelerometer error threshold",
      "Range": {
        "high": "3.0",
        "low": "0.25"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "ARMING_CRSDP_IGN": {
      "Description": "Must have value \"1\" if crashdump data is present on the system, or a prearm failure will be raised.  Do not set this parameter unless the risks of doing so are fully understood.  The presence of a crash dump means that the firmware currently installed has suffered a critical software failure which resulted in the autopilot immediately rebooting.  The crashdump file gives diagnostic information which can help in finding the issue, please contact the ArduPIlot support team.  If this crashdump data is present, the vehicle is likely unsafe to fly.  Check the ArduPilot documentation for more details.",
      "DisplayName": "Disable CrashDump Arming check",
      "User": "Advanced",
      "Values": {
        "0": "Crash Dump arming check active",
        "1": "Crash Dump arming check deactivated"
      }
    },
    "ARMING_MAGTHRESH": {
      "Description": "Compass magnetic field strength error threshold vs earth magnetic model.  X and y axis are compared using this threhold, Z axis uses 2x this threshold.  0 to disable check",
      "DisplayName": "Compass magnetic field strength error threshold vs earth magnetic model",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "ARMING_MIS_ITEMS": {
      "Bitmask": {
        "0": "Land",
        "1": "VTOL Land",
        "2": "DO_LAND_START",
        "3": "Takeoff",
        "4": "VTOL Takeoff",
        "5": "Rallypoint",
        "6": "RTL"
      },
      "Description": "Bitmask of mission items that are required to be planned in order to arm the aircraft",
      "DisplayName": "Required mission items",
      "User": "Advanced"
    },
    "ARMING_OPTIONS": {
      "Bitmask": {
        "0": "Disable prearm display",
        "1": "Do not send status text on state change",
        "2": "Skip IMU consistency checks when ICE motor running"
      },
      "Description": "Options that can be applied to change arming behaviour",
      "DisplayName": "Arming options",
      "User": "Advanced"
    },
    "ARMING_SKIPCHK": {
      "Bitmask": {
        "1": "Barometer",
        "10": "Logging Available",
        "11": "Hardware safety switch",
        "12": "GPS Configuration",
        "13": "System",
        "14": "Mission",
        "15": "Rangefinder",
        "16": "Camera",
        "17": "AuxAuth",
        "18": "VisualOdometry",
        "19": "FFT",
        "2": "Compass",
        "3": "GPS lock",
        "4": "INS",
        "5": "Parameters",
        "6": "RC Channels",
        "7": "Board voltage",
        "8": "Battery Level"
      },
      "Description": "Checks to skip prior to arming motor. This is a bitmask of checks before allowing arming that will be skipped. For most users it is recommended to leave this at the default of 0 (no checks skipped). In extreme circumstances, a value of -1 can be used to skip all non-mandatory current and future checks.",
      "DisplayName": "Arm Checks to Skip (bitmask)",
      "User": "Standard"
    }
  },
  "ARSPD": {
    "ARSPD_ENABLE": {
      "Description": "Enable airspeed sensor support",
      "DisplayName": "Airspeed Enable",
      "User": "Standard",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "ARSPD_OPTIONS": {
      "Bitmask": {
        "0": "SpeedMismatchDisable",
        "1": "AllowSpeedMismatchRecovery",
        "2": "DisableVoltageCorrection",
        "3": "UseEkf3Consistency",
        "4": "ReportOffset"
      },
      "Description": "This parameter and function is not used by this vehicle. Always set to 0.",
      "DisplayName": "Airspeed options bitmask",
      "User": "Advanced"
    },
    "ARSPD_PRIMARY": {
      "Description": "This selects which airspeed sensor will be the primary if multiple sensors are found",
      "DisplayName": "Primary airspeed sensor",
      "User": "Advanced",
      "Values": {
        "0": "FirstSensor",
        "1": "2nd Sensor",
        "2": "3rd Sensor",
        "3": "4th Sensor",
        "4": "5th Sensor",
        "5": "6th Sensor"
      }
    },
    "ARSPD_TUBE_ORDER": {
      "Description": "This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",
      "DisplayName": "Control pitot tube order",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Swapped",
        "2": "Auto Detect"
      }
    },
    "ARSPD_WIND_GATE": {
      "Description": "This parameter and function is not used by this vehicle.",
      "DisplayName": "Re-enable Consistency Check Gate Size",
      "Range": {
        "high": "10.0",
        "low": "0.0"
      },
      "User": "Advanced"
    },
    "ARSPD_WIND_MAX": {
      "Description": "This parameter and function is not used by this vehicle. Always set to 0.",
      "DisplayName": "Maximum airspeed and ground speed difference",
      "Units": "m/s",
      "User": "Advanced"
    },
    "ARSPD_WIND_WARN": {
      "Description": "This parameter and function is not used by this vehicle. Always set to 0.",
      "DisplayName": "Airspeed and GPS speed difference that gives a warning",
      "Units": "m/s",
      "User": "Advanced"
    }
  },
  "ARSPD2_": {
    "ARSPD2_AUTOCAL": {
      "Description": "Enables automatic adjustment of airspeed ratio during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",
      "DisplayName": "This parameter and function is not used by this vehicle. Always set to 0.",
      "User": "Advanced"
    },
    "ARSPD2_BUS": {
      "Description": "Bus number of the I2C bus where the airspeed sensor is connected. May not correspond to board's I2C bus number labels. Retry another bus and reboot if airspeed sensor fails to initialize.",
      "DisplayName": "Airspeed I2C bus",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Bus0",
        "1": "Bus1",
        "2": "Bus2",
        "3": "Bus3"
      }
    },
    "ARSPD2_DEVID": {
      "Description": "Airspeed sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Airspeed ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "ARSPD2_OFFSET": {
      "Description": "Airspeed calibration offset",
      "DisplayName": "Airspeed offset",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD2_PIN": {
      "Description": "The pin number that the airspeed sensor is connected to for analog sensors. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Airspeed pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "ARSPD2_PSI_RANGE": {
      "Description": "This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",
      "DisplayName": "The PSI range of the device",
      "User": "Advanced"
    },
    "ARSPD2_RATIO": {
      "Description": "Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",
      "DisplayName": "Airspeed ratio",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD2_SKIP_CAL": {
      "Description": "This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration or requiring a manual calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",
      "DisplayName": "Skip airspeed offset calibration on startup",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Do not require offset calibration before flight. Manual calibration should be performed during initial setup.",
        "2": "Do not calibrate on start up. Manual calibration must be performed once per boot."
      }
    },
    "ARSPD2_TUBE_ORDR": {
      "Description": "This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",
      "DisplayName": "Control pitot tube order",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Swapped",
        "2": "Auto Detect"
      }
    },
    "ARSPD2_TYPE": {
      "Description": "Type of airspeed sensor",
      "DisplayName": "Airspeed type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "I2C-MS4525D0",
        "10": "I2C-DLVR-20in",
        "100": "SITL",
        "11": "I2C-DLVR-30in",
        "12": "I2C-DLVR-60in",
        "13": "NMEA water speed",
        "14": "MSP",
        "15": "ASP5033",
        "16": "ExternalAHRS",
        "17": "AUAV-10in",
        "18": "AUAV-5in",
        "19": "AUAV-30in",
        "2": "Analog",
        "20": "Scripting",
        "3": "I2C-MS5525",
        "4": "I2C-MS5525 (0x76)",
        "5": "I2C-MS5525 (0x77)",
        "6": "I2C-SDP3X",
        "7": "I2C-DLVR-5in",
        "8": "DroneCAN",
        "9": "I2C-DLVR-10in"
      }
    },
    "ARSPD2_USE": {
      "Description": "This parameter is not used by this vehicle. Always set to 0.",
      "DisplayName": "Airspeed use",
      "User": "Standard",
      "Values": {
        "0": "DoNotUse",
        "1": "Use",
        "2": "UseWhenZeroThrottle"
      }
    }
  },
  "ARSPD3_": {
    "ARSPD3_AUTOCAL": {
      "Description": "Enables automatic adjustment of airspeed ratio during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",
      "DisplayName": "This parameter and function is not used by this vehicle. Always set to 0.",
      "User": "Advanced"
    },
    "ARSPD3_BUS": {
      "Description": "Bus number of the I2C bus where the airspeed sensor is connected. May not correspond to board's I2C bus number labels. Retry another bus and reboot if airspeed sensor fails to initialize.",
      "DisplayName": "Airspeed I2C bus",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Bus0",
        "1": "Bus1",
        "2": "Bus2",
        "3": "Bus3"
      }
    },
    "ARSPD3_DEVID": {
      "Description": "Airspeed sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Airspeed ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "ARSPD3_OFFSET": {
      "Description": "Airspeed calibration offset",
      "DisplayName": "Airspeed offset",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD3_PIN": {
      "Description": "The pin number that the airspeed sensor is connected to for analog sensors. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Airspeed pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "ARSPD3_PSI_RANGE": {
      "Description": "This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",
      "DisplayName": "The PSI range of the device",
      "User": "Advanced"
    },
    "ARSPD3_RATIO": {
      "Description": "Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",
      "DisplayName": "Airspeed ratio",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD3_SKIP_CAL": {
      "Description": "This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration or requiring a manual calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",
      "DisplayName": "Skip airspeed offset calibration on startup",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Do not require offset calibration before flight. Manual calibration should be performed during initial setup.",
        "2": "Do not calibrate on start up. Manual calibration must be performed once per boot."
      }
    },
    "ARSPD3_TUBE_ORDR": {
      "Description": "This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",
      "DisplayName": "Control pitot tube order",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Swapped",
        "2": "Auto Detect"
      }
    },
    "ARSPD3_TYPE": {
      "Description": "Type of airspeed sensor",
      "DisplayName": "Airspeed type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "I2C-MS4525D0",
        "10": "I2C-DLVR-20in",
        "100": "SITL",
        "11": "I2C-DLVR-30in",
        "12": "I2C-DLVR-60in",
        "13": "NMEA water speed",
        "14": "MSP",
        "15": "ASP5033",
        "16": "ExternalAHRS",
        "17": "AUAV-10in",
        "18": "AUAV-5in",
        "19": "AUAV-30in",
        "2": "Analog",
        "20": "Scripting",
        "3": "I2C-MS5525",
        "4": "I2C-MS5525 (0x76)",
        "5": "I2C-MS5525 (0x77)",
        "6": "I2C-SDP3X",
        "7": "I2C-DLVR-5in",
        "8": "DroneCAN",
        "9": "I2C-DLVR-10in"
      }
    },
    "ARSPD3_USE": {
      "Description": "This parameter is not used by this vehicle. Always set to 0.",
      "DisplayName": "Airspeed use",
      "User": "Standard",
      "Values": {
        "0": "DoNotUse",
        "1": "Use",
        "2": "UseWhenZeroThrottle"
      }
    }
  },
  "ARSPD4_": {
    "ARSPD4_AUTOCAL": {
      "Description": "Enables automatic adjustment of airspeed ratio during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",
      "DisplayName": "This parameter and function is not used by this vehicle. Always set to 0.",
      "User": "Advanced"
    },
    "ARSPD4_BUS": {
      "Description": "Bus number of the I2C bus where the airspeed sensor is connected. May not correspond to board's I2C bus number labels. Retry another bus and reboot if airspeed sensor fails to initialize.",
      "DisplayName": "Airspeed I2C bus",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Bus0",
        "1": "Bus1",
        "2": "Bus2",
        "3": "Bus3"
      }
    },
    "ARSPD4_DEVID": {
      "Description": "Airspeed sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Airspeed ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "ARSPD4_OFFSET": {
      "Description": "Airspeed calibration offset",
      "DisplayName": "Airspeed offset",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD4_PIN": {
      "Description": "The pin number that the airspeed sensor is connected to for analog sensors. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Airspeed pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "ARSPD4_PSI_RANGE": {
      "Description": "This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",
      "DisplayName": "The PSI range of the device",
      "User": "Advanced"
    },
    "ARSPD4_RATIO": {
      "Description": "Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",
      "DisplayName": "Airspeed ratio",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD4_SKIP_CAL": {
      "Description": "This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration or requiring a manual calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",
      "DisplayName": "Skip airspeed offset calibration on startup",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Do not require offset calibration before flight. Manual calibration should be performed during initial setup.",
        "2": "Do not calibrate on start up. Manual calibration must be performed once per boot."
      }
    },
    "ARSPD4_TUBE_ORDR": {
      "Description": "This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",
      "DisplayName": "Control pitot tube order",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Swapped",
        "2": "Auto Detect"
      }
    },
    "ARSPD4_TYPE": {
      "Description": "Type of airspeed sensor",
      "DisplayName": "Airspeed type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "I2C-MS4525D0",
        "10": "I2C-DLVR-20in",
        "100": "SITL",
        "11": "I2C-DLVR-30in",
        "12": "I2C-DLVR-60in",
        "13": "NMEA water speed",
        "14": "MSP",
        "15": "ASP5033",
        "16": "ExternalAHRS",
        "17": "AUAV-10in",
        "18": "AUAV-5in",
        "19": "AUAV-30in",
        "2": "Analog",
        "20": "Scripting",
        "3": "I2C-MS5525",
        "4": "I2C-MS5525 (0x76)",
        "5": "I2C-MS5525 (0x77)",
        "6": "I2C-SDP3X",
        "7": "I2C-DLVR-5in",
        "8": "DroneCAN",
        "9": "I2C-DLVR-10in"
      }
    },
    "ARSPD4_USE": {
      "Description": "This parameter is not used by this vehicle. Always set to 0.",
      "DisplayName": "Airspeed use",
      "User": "Standard",
      "Values": {
        "0": "DoNotUse",
        "1": "Use",
        "2": "UseWhenZeroThrottle"
      }
    }
  },
  "ARSPD5_": {
    "ARSPD5_AUTOCAL": {
      "Description": "Enables automatic adjustment of airspeed ratio during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",
      "DisplayName": "This parameter and function is not used by this vehicle. Always set to 0.",
      "User": "Advanced"
    },
    "ARSPD5_BUS": {
      "Description": "Bus number of the I2C bus where the airspeed sensor is connected. May not correspond to board's I2C bus number labels. Retry another bus and reboot if airspeed sensor fails to initialize.",
      "DisplayName": "Airspeed I2C bus",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Bus0",
        "1": "Bus1",
        "2": "Bus2",
        "3": "Bus3"
      }
    },
    "ARSPD5_DEVID": {
      "Description": "Airspeed sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Airspeed ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "ARSPD5_OFFSET": {
      "Description": "Airspeed calibration offset",
      "DisplayName": "Airspeed offset",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD5_PIN": {
      "Description": "The pin number that the airspeed sensor is connected to for analog sensors. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Airspeed pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "ARSPD5_PSI_RANGE": {
      "Description": "This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",
      "DisplayName": "The PSI range of the device",
      "User": "Advanced"
    },
    "ARSPD5_RATIO": {
      "Description": "Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",
      "DisplayName": "Airspeed ratio",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD5_SKIP_CAL": {
      "Description": "This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration or requiring a manual calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",
      "DisplayName": "Skip airspeed offset calibration on startup",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Do not require offset calibration before flight. Manual calibration should be performed during initial setup.",
        "2": "Do not calibrate on start up. Manual calibration must be performed once per boot."
      }
    },
    "ARSPD5_TUBE_ORDR": {
      "Description": "This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",
      "DisplayName": "Control pitot tube order",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Swapped",
        "2": "Auto Detect"
      }
    },
    "ARSPD5_TYPE": {
      "Description": "Type of airspeed sensor",
      "DisplayName": "Airspeed type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "I2C-MS4525D0",
        "10": "I2C-DLVR-20in",
        "100": "SITL",
        "11": "I2C-DLVR-30in",
        "12": "I2C-DLVR-60in",
        "13": "NMEA water speed",
        "14": "MSP",
        "15": "ASP5033",
        "16": "ExternalAHRS",
        "17": "AUAV-10in",
        "18": "AUAV-5in",
        "19": "AUAV-30in",
        "2": "Analog",
        "20": "Scripting",
        "3": "I2C-MS5525",
        "4": "I2C-MS5525 (0x76)",
        "5": "I2C-MS5525 (0x77)",
        "6": "I2C-SDP3X",
        "7": "I2C-DLVR-5in",
        "8": "DroneCAN",
        "9": "I2C-DLVR-10in"
      }
    },
    "ARSPD5_USE": {
      "Description": "This parameter is not used by this vehicle. Always set to 0.",
      "DisplayName": "Airspeed use",
      "User": "Standard",
      "Values": {
        "0": "DoNotUse",
        "1": "Use",
        "2": "UseWhenZeroThrottle"
      }
    }
  },
  "ARSPD6_": {
    "ARSPD6_AUTOCAL": {
      "Description": "Enables automatic adjustment of airspeed ratio during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",
      "DisplayName": "This parameter and function is not used by this vehicle. Always set to 0.",
      "User": "Advanced"
    },
    "ARSPD6_BUS": {
      "Description": "Bus number of the I2C bus where the airspeed sensor is connected. May not correspond to board's I2C bus number labels. Retry another bus and reboot if airspeed sensor fails to initialize.",
      "DisplayName": "Airspeed I2C bus",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Bus0",
        "1": "Bus1",
        "2": "Bus2",
        "3": "Bus3"
      }
    },
    "ARSPD6_DEVID": {
      "Description": "Airspeed sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Airspeed ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "ARSPD6_OFFSET": {
      "Description": "Airspeed calibration offset",
      "DisplayName": "Airspeed offset",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD6_PIN": {
      "Description": "The pin number that the airspeed sensor is connected to for analog sensors. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Airspeed pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "ARSPD6_PSI_RANGE": {
      "Description": "This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",
      "DisplayName": "The PSI range of the device",
      "User": "Advanced"
    },
    "ARSPD6_RATIO": {
      "Description": "Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",
      "DisplayName": "Airspeed ratio",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD6_SKIP_CAL": {
      "Description": "This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration or requiring a manual calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",
      "DisplayName": "Skip airspeed offset calibration on startup",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Do not require offset calibration before flight. Manual calibration should be performed during initial setup.",
        "2": "Do not calibrate on start up. Manual calibration must be performed once per boot."
      }
    },
    "ARSPD6_TUBE_ORDR": {
      "Description": "This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",
      "DisplayName": "Control pitot tube order",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Swapped",
        "2": "Auto Detect"
      }
    },
    "ARSPD6_TYPE": {
      "Description": "Type of airspeed sensor",
      "DisplayName": "Airspeed type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "I2C-MS4525D0",
        "10": "I2C-DLVR-20in",
        "100": "SITL",
        "11": "I2C-DLVR-30in",
        "12": "I2C-DLVR-60in",
        "13": "NMEA water speed",
        "14": "MSP",
        "15": "ASP5033",
        "16": "ExternalAHRS",
        "17": "AUAV-10in",
        "18": "AUAV-5in",
        "19": "AUAV-30in",
        "2": "Analog",
        "20": "Scripting",
        "3": "I2C-MS5525",
        "4": "I2C-MS5525 (0x76)",
        "5": "I2C-MS5525 (0x77)",
        "6": "I2C-SDP3X",
        "7": "I2C-DLVR-5in",
        "8": "DroneCAN",
        "9": "I2C-DLVR-10in"
      }
    },
    "ARSPD6_USE": {
      "Description": "This parameter is not used by this vehicle. Always set to 0.",
      "DisplayName": "Airspeed use",
      "User": "Standard",
      "Values": {
        "0": "DoNotUse",
        "1": "Use",
        "2": "UseWhenZeroThrottle"
      }
    }
  },
  "ARSPD_": {
    "ARSPD_AUTOCAL": {
      "Description": "Enables automatic adjustment of airspeed ratio during a calibration flight based on estimation of ground speed and true airspeed. New ratio saved every 2 minutes if change is > 5%. Should not be left enabled.",
      "DisplayName": "This parameter and function is not used by this vehicle. Always set to 0.",
      "User": "Advanced"
    },
    "ARSPD_BUS": {
      "Description": "Bus number of the I2C bus where the airspeed sensor is connected. May not correspond to board's I2C bus number labels. Retry another bus and reboot if airspeed sensor fails to initialize.",
      "DisplayName": "Airspeed I2C bus",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Bus0",
        "1": "Bus1",
        "2": "Bus2",
        "3": "Bus3"
      }
    },
    "ARSPD_DEVID": {
      "Description": "Airspeed sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Airspeed ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "ARSPD_OFFSET": {
      "Description": "Airspeed calibration offset",
      "DisplayName": "Airspeed offset",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD_PIN": {
      "Description": "The pin number that the airspeed sensor is connected to for analog sensors. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Airspeed pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "ARSPD_PSI_RANGE": {
      "Description": "This parameter allows you to set the PSI (pounds per square inch) range for your sensor. You should not change this unless you examine the datasheet for your device",
      "DisplayName": "The PSI range of the device",
      "User": "Advanced"
    },
    "ARSPD_RATIO": {
      "Description": "Calibrates pitot tube pressure to velocity. Increasing this value will indicate a higher airspeed at any given dynamic pressure.",
      "DisplayName": "Airspeed ratio",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "ARSPD_SKIP_CAL": {
      "Description": "This parameter allows you to skip airspeed offset calibration on startup, instead using the offset from the last calibration or requiring a manual calibration. This may be desirable if the offset variance between flights for your sensor is low and you want to avoid having to cover the pitot tube on each boot.",
      "DisplayName": "Skip airspeed offset calibration on startup",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Do not require offset calibration before flight. Manual calibration should be performed during initial setup.",
        "2": "Do not calibrate on start up. Manual calibration must be performed once per boot."
      }
    },
    "ARSPD_TUBE_ORDR": {
      "Description": "This parameter allows you to control whether the order in which the tubes are attached to your pitot tube matters. If you set this to 0 then the first (often the top) connector on the sensor needs to be the stagnation pressure (the pressure at the tip of the pitot tube). If set to 1 then the second (often the bottom) connector needs to be the stagnation pressure. If set to 2 (the default) then the airspeed driver will accept either order. The reason you may wish to specify the order is it will allow your airspeed sensor to detect if the aircraft is receiving excessive pressure on the static port compared to the stagnation port such as during a stall, which would otherwise be seen as a positive airspeed.",
      "DisplayName": "Control pitot tube order",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Swapped",
        "2": "Auto Detect"
      }
    },
    "ARSPD_TYPE": {
      "Description": "Type of airspeed sensor",
      "DisplayName": "Airspeed type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "I2C-MS4525D0",
        "10": "I2C-DLVR-20in",
        "100": "SITL",
        "11": "I2C-DLVR-30in",
        "12": "I2C-DLVR-60in",
        "13": "NMEA water speed",
        "14": "MSP",
        "15": "ASP5033",
        "16": "ExternalAHRS",
        "17": "AUAV-10in",
        "18": "AUAV-5in",
        "19": "AUAV-30in",
        "2": "Analog",
        "20": "Scripting",
        "3": "I2C-MS5525",
        "4": "I2C-MS5525 (0x76)",
        "5": "I2C-MS5525 (0x77)",
        "6": "I2C-SDP3X",
        "7": "I2C-DLVR-5in",
        "8": "DroneCAN",
        "9": "I2C-DLVR-10in"
      }
    },
    "ARSPD_USE": {
      "Description": "This parameter is not used by this vehicle. Always set to 0.",
      "DisplayName": "Airspeed use",
      "User": "Standard",
      "Values": {
        "0": "DoNotUse",
        "1": "Use",
        "2": "UseWhenZeroThrottle"
      }
    }
  },
  "ATC_": {
    "ATC_ACC_P_MAX": {
      "Description": "Maximum acceleration in pitch axis",
      "DisplayName": "Acceleration Max for Pitch",
      "Increment": "10",
      "Range": {
        "high": "1800",
        "low": "0"
      },
      "Units": "deg/s/s",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1080": "Medium",
        "1620": "Fast",
        "300": "VerySlow",
        "720": "Slow"
      }
    },
    "ATC_ACC_R_MAX": {
      "Description": "Maximum acceleration in roll axis",
      "DisplayName": "Acceleration Max for Roll",
      "Increment": "10",
      "Range": {
        "high": "1800",
        "low": "0"
      },
      "Units": "deg/s/s",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1080": "Medium",
        "1620": "Fast",
        "300": "VerySlow",
        "720": "Slow"
      }
    },
    "ATC_ACC_Y_MAX": {
      "Description": "Maximum acceleration in yaw axis",
      "DisplayName": "Acceleration Max for Yaw",
      "Increment": "10",
      "Range": {
        "high": "720",
        "low": "0"
      },
      "Units": "deg/s/s",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "180": "Slow",
        "360": "Medium",
        "540": "Fast",
        "90": "VerySlow"
      }
    },
    "ATC_ANGLE_BOOST": {
      "Description": "Angle Boost increases output throttle as the vehicle leans to reduce loss of altitude",
      "DisplayName": "Angle Boost",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "ATC_ANGLE_MAX": {
      "Description": "Maximum lean angle in all flight modes",
      "DisplayName": "Angle Max",
      "Increment": "0.1",
      "Range": {
        "high": "80.0",
        "low": "10.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "ATC_ANG_LIM_TC": {
      "Description": "Angle Limit (to maintain altitude) Time Constant",
      "DisplayName": "Angle Limit (to maintain altitude) Time Constant",
      "Range": {
        "high": "10.0",
        "low": "0.5"
      },
      "User": "Advanced"
    },
    "ATC_ANG_PIT_P": {
      "Description": "Pitch axis angle controller P gain.  Converts the error between the desired pitch angle and actual angle to a desired pitch rate",
      "DisplayName": "Pitch axis angle controller P gain",
      "Increment": "0.01",
      "Range": {
        "high": "12.000",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "ATC_ANG_RLL_P": {
      "Description": "Roll axis angle controller P gain.  Converts the error between the desired roll angle and actual angle to a desired roll rate",
      "DisplayName": "Roll axis angle controller P gain",
      "Increment": "0.01",
      "Range": {
        "high": "12.000",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "ATC_ANG_YAW_P": {
      "Description": "Yaw axis angle controller P gain.  Converts the error between the desired yaw angle and actual angle to a desired yaw rate",
      "DisplayName": "Yaw axis angle controller P gain",
      "Increment": "0.01",
      "Range": {
        "high": "6.000",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "ATC_INPUT_TC": {
      "Description": "Attitude control input time constant.  Low numbers lead to sharper response, higher numbers to softer response",
      "DisplayName": "Attitude control input time constant",
      "Increment": "0.01",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard",
      "Values": {
        "0.05": "Very Crisp",
        "0.1": "Crisp",
        "0.15": "Medium",
        "0.2": "Soft",
        "0.5": "Very Soft"
      }
    },
    "ATC_LAND_P_MULT": {
      "Description": "Pitch gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the pitch axis.",
      "DisplayName": "Landed pitch gain multiplier",
      "Range": {
        "high": "1.0",
        "low": "0.25"
      },
      "User": "Advanced"
    },
    "ATC_LAND_R_MULT": {
      "Description": "Roll gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the roll axis.",
      "DisplayName": "Landed roll gain multiplier",
      "Range": {
        "high": "1.0",
        "low": "0.25"
      },
      "User": "Advanced"
    },
    "ATC_LAND_Y_MULT": {
      "Description": "Yaw gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the yaw axis.",
      "DisplayName": "Landed yaw gain multiplier",
      "Range": {
        "high": "1.0",
        "low": "0.25"
      },
      "User": "Advanced"
    },
    "ATC_RATE_FF_ENAB": {
      "Description": "Controls whether body-frame rate feedforward is enabled or disabled",
      "DisplayName": "Rate Feedforward Enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "ATC_RATE_P_MAX": {
      "Description": "Maximum angular velocity in pitch axis",
      "DisplayName": "Angular Velocity Max for Pitch",
      "Increment": "1",
      "Range": {
        "high": "1080",
        "low": "0"
      },
      "Units": "deg/s",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "180": "Medium",
        "360": "Fast",
        "60": "Slow"
      }
    },
    "ATC_RATE_R_MAX": {
      "Description": "Maximum angular velocity in roll axis",
      "DisplayName": "Angular Velocity Max for Roll",
      "Increment": "1",
      "Range": {
        "high": "1080",
        "low": "0"
      },
      "Units": "deg/s",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "180": "Medium",
        "360": "Fast",
        "60": "Slow"
      }
    },
    "ATC_RATE_WPY_MAX": {
      "Description": "Maximum rate the yaw target can be updated in Auto, Guided, Circle, Follow, RTL, SmartRTL, Throw and ZigZag flight modes",
      "DisplayName": "Yaw target slew rate",
      "Increment": "1",
      "Range": {
        "high": "180",
        "low": "5"
      },
      "Units": "deg/s",
      "User": "Advanced"
    },
    "ATC_RATE_Y_MAX": {
      "Description": "Maximum angular velocity in yaw axis",
      "DisplayName": "Angular Velocity Max for Yaw",
      "Increment": "1",
      "Range": {
        "high": "1080",
        "low": "0"
      },
      "Units": "deg/s",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "180": "Medium",
        "360": "Fast",
        "60": "Slow"
      }
    },
    "ATC_RAT_PIT_D": {
      "Description": "Pitch axis rate controller D gain.  Compensates for short-term change in desired pitch rate vs actual pitch rate",
      "DisplayName": "Pitch axis rate controller D gain",
      "Increment": "0.001",
      "Range": {
        "high": "0.02",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "ATC_RAT_PIT_D_FF": {
      "Description": "FF D Gain which produces an output that is proportional to the rate of change of the target",
      "DisplayName": "Pitch Derivative FeedForward Gain",
      "Increment": "0.0001",
      "Range": {
        "high": "0.02",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_RAT_PIT_FF": {
      "Description": "Pitch axis rate controller feed forward",
      "DisplayName": "Pitch axis rate controller feed forward",
      "Increment": "0.001",
      "Range": {
        "high": "0.5",
        "low": "0"
      },
      "User": "Standard"
    },
    "ATC_RAT_PIT_FLTD": {
      "Description": "Pitch axis rate controller input frequency in Hz",
      "DisplayName": "Pitch axis rate controller input frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "ATC_RAT_PIT_FLTE": {
      "Description": "Pitch axis rate controller input frequency in Hz",
      "DisplayName": "Pitch axis rate controller input frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "ATC_RAT_PIT_FLTT": {
      "Description": "Pitch axis rate controller input frequency in Hz",
      "DisplayName": "Pitch axis rate controller input frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "ATC_RAT_PIT_I": {
      "Description": "Pitch axis rate controller I gain.  Corrects long-term difference in desired pitch rate vs actual pitch rate",
      "DisplayName": "Pitch axis rate controller I gain",
      "Increment": "0.01",
      "Range": {
        "high": "0.5",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "ATC_RAT_PIT_IMAX": {
      "Description": "Pitch axis rate controller I gain maximum.  Constrains the maximum that the I term will output",
      "DisplayName": "Pitch axis rate controller I gain maximum",
      "Increment": "0.01",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "User": "Standard"
    },
    "ATC_RAT_PIT_NEF": {
      "Description": "Pitch Error notch filter index, zero disables",
      "DisplayName": "Pitch Error notch filter index",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_RAT_PIT_NTF": {
      "Description": "Pitch Target notch filter index, zero disables",
      "DisplayName": "Pitch Target notch filter index",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_RAT_PIT_P": {
      "Description": "Pitch axis rate controller P gain.  Corrects in proportion to the difference between the desired pitch rate vs actual pitch rate",
      "DisplayName": "Pitch axis rate controller P gain",
      "Increment": "0.005",
      "Range": {
        "high": "0.30",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "ATC_RAT_PIT_PDMX": {
      "Description": "Pitch axis rate controller PD sum maximum.  The maximum/minimum value that the sum of the P and D term can output",
      "DisplayName": "Pitch axis rate controller PD sum maximum",
      "Increment": "0.01",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "ATC_RAT_PIT_SMAX": {
      "Description": "Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",
      "DisplayName": "Pitch slew rate limit",
      "Increment": "0.5",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_RAT_RLL_D": {
      "Description": "Roll axis rate controller D gain.  Compensates for short-term change in desired roll rate vs actual roll rate",
      "DisplayName": "Roll axis rate controller D gain",
      "Increment": "0.001",
      "Range": {
        "high": "0.02",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "ATC_RAT_RLL_D_FF": {
      "Description": "FF D Gain which produces an output that is proportional to the rate of change of the target",
      "DisplayName": "Roll Derivative FeedForward Gain",
      "Increment": "0.0001",
      "Range": {
        "high": "0.02",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_RAT_RLL_FF": {
      "Description": "Roll axis rate controller feed forward",
      "DisplayName": "Roll axis rate controller feed forward",
      "Increment": "0.001",
      "Range": {
        "high": "0.5",
        "low": "0"
      },
      "User": "Standard"
    },
    "ATC_RAT_RLL_FLTD": {
      "Description": "Roll axis rate controller input frequency in Hz",
      "DisplayName": "Roll axis rate controller input frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "ATC_RAT_RLL_FLTE": {
      "Description": "Roll axis rate controller input frequency in Hz",
      "DisplayName": "Roll axis rate controller input frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "ATC_RAT_RLL_FLTT": {
      "Description": "Roll axis rate controller input frequency in Hz",
      "DisplayName": "Roll axis rate controller input frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "ATC_RAT_RLL_I": {
      "Description": "Roll axis rate controller I gain.  Corrects long-term difference in desired roll rate vs actual roll rate",
      "DisplayName": "Roll axis rate controller I gain",
      "Increment": "0.01",
      "Range": {
        "high": "0.5",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "ATC_RAT_RLL_IMAX": {
      "Description": "Roll axis rate controller I gain maximum.  Constrains the maximum that the I term will output",
      "DisplayName": "Roll axis rate controller I gain maximum",
      "Increment": "0.01",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "User": "Standard"
    },
    "ATC_RAT_RLL_NEF": {
      "Description": "Roll Error notch filter index, zero disables",
      "DisplayName": "Roll Error notch filter index",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_RAT_RLL_NTF": {
      "Description": "Roll Target notch filter index, zero disables",
      "DisplayName": "Roll Target notch filter index",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_RAT_RLL_P": {
      "Description": "Roll axis rate controller P gain.  Corrects in proportion to the difference between the desired roll rate vs actual roll rate",
      "DisplayName": "Roll axis rate controller P gain",
      "Increment": "0.005",
      "Range": {
        "high": "0.30",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "ATC_RAT_RLL_PDMX": {
      "Description": "Roll axis rate controller PD sum maximum.  The maximum/minimum value that the sum of the P and D term can output",
      "DisplayName": "Roll axis rate controller PD sum maximum",
      "Increment": "0.01",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "ATC_RAT_RLL_SMAX": {
      "Description": "Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",
      "DisplayName": "Roll slew rate limit",
      "Increment": "0.5",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_RAT_YAW_D": {
      "Description": "Yaw axis rate controller D gain.  Compensates for short-term change in desired yaw rate vs actual yaw rate",
      "DisplayName": "Yaw axis rate controller D gain",
      "Increment": "0.001",
      "Range": {
        "high": "0.02",
        "low": "0.000"
      },
      "User": "Standard"
    },
    "ATC_RAT_YAW_D_FF": {
      "Description": "FF D Gain which produces an output that is proportional to the rate of change of the target",
      "DisplayName": "Yaw Derivative FeedForward Gain",
      "Increment": "0.0001",
      "Range": {
        "high": "0.02",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_RAT_YAW_FF": {
      "Description": "Yaw axis rate controller feed forward",
      "DisplayName": "Yaw axis rate controller feed forward",
      "Increment": "0.001",
      "Range": {
        "high": "0.5",
        "low": "0"
      },
      "User": "Standard"
    },
    "ATC_RAT_YAW_FLTD": {
      "Description": "Yaw axis rate controller input frequency in Hz",
      "DisplayName": "Yaw axis rate controller input frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "ATC_RAT_YAW_FLTE": {
      "Description": "Yaw axis rate controller input frequency in Hz",
      "DisplayName": "Yaw axis rate controller input frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "ATC_RAT_YAW_FLTT": {
      "Description": "Yaw axis rate controller input frequency in Hz",
      "DisplayName": "Yaw axis rate controller input frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "ATC_RAT_YAW_I": {
      "Description": "Yaw axis rate controller I gain.  Corrects long-term difference in desired yaw rate vs actual yaw rate",
      "DisplayName": "Yaw axis rate controller I gain",
      "Increment": "0.01",
      "Range": {
        "high": "0.05",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "ATC_RAT_YAW_IMAX": {
      "Description": "Yaw axis rate controller I gain maximum.  Constrains the maximum that the I term will output",
      "DisplayName": "Yaw axis rate controller I gain maximum",
      "Increment": "0.01",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "User": "Standard"
    },
    "ATC_RAT_YAW_NEF": {
      "Description": "Yaw Error notch filter index, zero disables",
      "DisplayName": "Yaw Error notch filter index",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_RAT_YAW_NTF": {
      "Description": "Yaw Target notch filter index, zero disables",
      "DisplayName": "Yaw Target notch filter index",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_RAT_YAW_P": {
      "Description": "Yaw axis rate controller P gain.  Corrects in proportion to the difference between the desired yaw rate vs actual yaw rate",
      "DisplayName": "Yaw axis rate controller P gain",
      "Increment": "0.005",
      "Range": {
        "high": "0.50",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "ATC_RAT_YAW_PDMX": {
      "Description": "Yaw axis rate controller PD sum maximum.  The maximum/minimum value that the sum of the P and D term can output",
      "DisplayName": "Yaw axis rate controller PD sum maximum",
      "Increment": "0.01",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "ATC_RAT_YAW_SMAX": {
      "Description": "Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",
      "DisplayName": "Yaw slew rate limit",
      "Increment": "0.5",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ATC_THR_MIX_MAN": {
      "Description": "Throttle vs attitude control prioritisation used during manual flight (higher values mean we prioritise attitude control over throttle)",
      "DisplayName": "Throttle Mix Manual",
      "Range": {
        "high": "0.9",
        "low": "0.5"
      },
      "User": "Advanced"
    },
    "ATC_THR_MIX_MAX": {
      "Description": "Throttle vs attitude control prioritisation used during active flight (higher values mean we prioritise attitude control over throttle)",
      "DisplayName": "Throttle Mix Maximum",
      "Range": {
        "high": "0.9",
        "low": "0.5"
      },
      "User": "Advanced"
    },
    "ATC_THR_MIX_MIN": {
      "Description": "Throttle vs attitude control prioritisation used when landing (higher values mean we prioritise attitude control over throttle)",
      "DisplayName": "Throttle Mix Minimum",
      "Range": {
        "high": "0.25",
        "low": "0.1"
      },
      "User": "Advanced"
    }
  },
  "AVOID_": {
    "AVOID_ACCEL_MAX": {
      "Description": "Maximum acceleration with which obstacles will be avoided with. Set zero to disable acceleration limits",
      "DisplayName": "Avoidance maximum acceleration",
      "Range": {
        "high": "9",
        "low": "0"
      },
      "Units": "m/s/s",
      "User": "Standard"
    },
    "AVOID_BACKUP_DZ": {
      "Description": "Distance beyond AVOID_MARGIN parameter, after which vehicle will backaway from obstacles. Increase this parameter if you see vehicle going back and forth in front of obstacle.",
      "DisplayName": "Avoidance deadzone between stopping and backing away from obstacle",
      "Range": {
        "high": "2",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "AVOID_BACKUP_SPD": {
      "Description": "Maximum speed that will be used to back away from obstacles horizontally in position control modes (m/s). Set zero to disable horizontal backup.",
      "DisplayName": "Avoidance maximum horizontal backup speed",
      "Range": {
        "high": "2",
        "low": "0"
      },
      "Units": "m/s",
      "User": "Standard"
    },
    "AVOID_BACKZ_SPD": {
      "Description": "Maximum speed that will be used to back away from obstacles vertically in height control modes (m/s). Set zero to disable vertical backup.",
      "DisplayName": "Avoidance maximum vertical backup speed",
      "Range": {
        "high": "2",
        "low": "0"
      },
      "Units": "m/s",
      "User": "Standard"
    },
    "AVOID_ENABLE": {
      "Bitmask": {
        "0": "UseFence",
        "1": "UseProximitySensor",
        "2": "UseBeaconFence"
      },
      "Description": "Enabled/disable avoidance input sources",
      "DisplayName": "Avoidance control enable/disable",
      "User": "Standard"
    },
    "AVOID_MARGIN": {
      "Description": "Vehicle will attempt to stay at least this distance (in meters) from objects while in GPS modes",
      "DisplayName": "Avoidance distance margin in GPS modes",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "Units": "m",
      "User": "Standard"
    }
  },
  "BARO": {
    "BARO1_DEVID": {
      "Description": "Barometer sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Baro ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "BARO1_GND_PRESS": {
      "Description": "calibrated ground pressure in Pascals",
      "DisplayName": "Ground Pressure",
      "Increment": "1",
      "ReadOnly": "True",
      "Units": "Pa",
      "User": "Advanced",
      "Volatile": "True"
    },
    "BARO1_THST_SCALE": {
      "Description": "Thrust scaling in Pascals. This value scaled by the normalized thrust is subtracted from the barometer pressure. This is used to adjust linearly based on the thrust output for local pressure difference induced by the props.",
      "DisplayName": "Thrust compensation",
      "Range": {
        "high": "300",
        "low": "-300"
      },
      "User": "Advanced"
    },
    "BARO2_DEVID": {
      "Description": "Barometer2 sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Baro ID2",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "BARO2_GND_PRESS": {
      "Description": "calibrated ground pressure in Pascals",
      "DisplayName": "Ground Pressure",
      "Increment": "1",
      "ReadOnly": "True",
      "Units": "Pa",
      "User": "Advanced",
      "Volatile": "True"
    },
    "BARO3_DEVID": {
      "Description": "Barometer3 sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Baro ID3",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "BARO3_GND_PRESS": {
      "Description": "calibrated ground pressure in Pascals",
      "DisplayName": "Absolute Pressure",
      "Increment": "1",
      "ReadOnly": "True",
      "Units": "Pa",
      "User": "Advanced",
      "Volatile": "True"
    },
    "BARO_ALT_OFFSET": {
      "Description": "altitude offset in meters added to barometric altitude. This is used to allow for automatic adjustment of the base barometric altitude by a ground station equipped with a barometer. The value is added to the barometric altitude read by the aircraft. It is automatically reset to 0 when the barometer is calibrated on each reboot or when a preflight calibration is performed.",
      "DisplayName": "altitude offset",
      "Increment": "0.1",
      "Units": "m",
      "User": "Advanced"
    },
    "BARO_EXT_BUS": {
      "Description": "This selects the bus number for looking for an I2C barometer. When set to -1 it will probe all external i2c buses based on the BARO_PROBE_EXT parameter.",
      "DisplayName": "External baro bus",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Bus0",
        "1": "Bus1",
        "6": "Bus6"
      }
    },
    "BARO_FLTR_RNG": {
      "Description": "This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",
      "DisplayName": "Range in which sample is accepted",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "%"
    },
    "BARO_GND_TEMP": {
      "Description": "User provided ambient ground temperature in degrees Celsius. This is used to improve the calculation of the altitude the vehicle is at. This parameter is not persistent and will be reset to 0 every time the vehicle is rebooted. A value of 0 means use the internal measurement ambient temperature.",
      "DisplayName": "ground temperature",
      "Increment": "1",
      "Units": "degC",
      "User": "Advanced",
      "Volatile": "True"
    },
    "BARO_PRIMARY": {
      "Description": "This selects which barometer will be the primary if multiple barometers are found",
      "DisplayName": "Primary barometer",
      "User": "Advanced",
      "Values": {
        "0": "FirstBaro",
        "1": "2ndBaro",
        "2": "3rdBaro"
      }
    },
    "BARO_PROBE_EXT": {
      "Bitmask": {
        "0": "BMP085",
        "1": "BMP280",
        "10": "BMP388",
        "11": "SPL06",
        "12": "MSP",
        "13": "BMP581",
        "14": "AUAV",
        "2": "MS5611",
        "3": "MS5607",
        "4": "MS5637",
        "5": "FBM320",
        "6": "DPS280",
        "7": "LPS25H",
        "8": "Keller",
        "9": "MS5837"
      },
      "Description": "This sets which types of external i2c barometer to look for. It is a bitmask of barometer types. The I2C buses to probe is based on BARO_EXT_BUS. If BARO_EXT_BUS is -1 then it will probe all external buses, otherwise it will probe just the bus number given in BARO_EXT_BUS.",
      "DisplayName": "External barometers to probe",
      "User": "Advanced"
    },
    "BARO_SPEC_GRAV": {
      "Description": "This sets the specific gravity of the fluid when flying an underwater ROV.",
      "DisplayName": "Specific Gravity (For water depth measurement)",
      "Range": {
        "high": "1.05",
        "low": "0.98"
      },
      "Values": {
        "1.0": "Freshwater",
        "1.024": "Saltwater"
      }
    },
    "BARO_THST_FILT": {
      "Description": "Low-pass filter cutoff frequency for thrust compensation. This smooths the throttle input to prevent rapid baro altitude changes during throttle transients. Set to 0 to disable filtering.",
      "DisplayName": "Thrust compensation filter cutoff",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "BARO1_WCF_": {
    "BARO1_WCF_BCK": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in negative X direction (backwards)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO1_WCF_DN": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Z body axis. If the baro height estimate rises above truth height during descending flight (or forward flight with a high backwards lean angle, eg braking manoeuvre), then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in negative Z direction (down)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO1_WCF_ENABLE": {
      "Description": "This enables the use of wind coefficients for barometer compensation",
      "DisplayName": "Wind coefficient enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "BARO1_WCF_FWD": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in positive X direction (forward)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO1_WCF_LFT": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in negative Y direction (left)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO1_WCF_RGT": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in positive Y direction (right)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO1_WCF_UP": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Z body axis. If the baro height estimate rises above truth height during climbing flight (or forward flight with a high forwards lean angle), then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in positive Z direction (up)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    }
  },
  "BARO2_WCF_": {
    "BARO2_WCF_BCK": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in negative X direction (backwards)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO2_WCF_DN": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Z body axis. If the baro height estimate rises above truth height during descending flight (or forward flight with a high backwards lean angle, eg braking manoeuvre), then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in negative Z direction (down)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO2_WCF_ENABLE": {
      "Description": "This enables the use of wind coefficients for barometer compensation",
      "DisplayName": "Wind coefficient enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "BARO2_WCF_FWD": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in positive X direction (forward)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO2_WCF_LFT": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in negative Y direction (left)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO2_WCF_RGT": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in positive Y direction (right)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO2_WCF_UP": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Z body axis. If the baro height estimate rises above truth height during climbing flight (or forward flight with a high forwards lean angle), then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in positive Z direction (up)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    }
  },
  "BARO3_WCF_": {
    "BARO3_WCF_BCK": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis. If the baro height estimate rises during backwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in negative X direction (backwards)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO3_WCF_DN": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Z body axis. If the baro height estimate rises above truth height during descending flight (or forward flight with a high backwards lean angle, eg braking manoeuvre), then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in negative Z direction (down)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO3_WCF_ENABLE": {
      "Description": "This enables the use of wind coefficients for barometer compensation",
      "DisplayName": "Wind coefficient enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "BARO3_WCF_FWD": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis. If the baro height estimate rises during forwards flight, then this will be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in positive X direction (forward)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO3_WCF_LFT": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the left, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in negative Y direction (left)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO3_WCF_RGT": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Y body axis. If the baro height estimate rises during sideways flight to the right, then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in positive Y direction (right)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "BARO3_WCF_UP": {
      "Description": "This is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the Z body axis. If the baro height estimate rises above truth height during climbing flight (or forward flight with a high forwards lean angle), then this should be a negative number. Multirotors can use this feature only if using EKF3 and if the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters have been tuned.",
      "DisplayName": "Pressure error coefficient in positive Z direction (up)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    }
  },
  "BATT2_": {
    "BATT2_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT2_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT2_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT2_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATT2_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATT2_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT2_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATT2_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATT2_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT2_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT2_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATT2_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT2_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATT2_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATT2_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT2_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATT2_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT2_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT2_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT2_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATT2_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATT2_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATT2_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT2_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT2_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATT2_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT2_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT2_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT2_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATT2_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT2_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT2_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT2_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT2_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATT2_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATT2_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATT2_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATT2_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT2_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATT2_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT2_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATT2_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT2_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATT3_": {
    "BATT3_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT3_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT3_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT3_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATT3_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATT3_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT3_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATT3_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATT3_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT3_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT3_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATT3_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT3_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATT3_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATT3_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT3_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATT3_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT3_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT3_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT3_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATT3_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATT3_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATT3_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT3_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT3_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATT3_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT3_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT3_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT3_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATT3_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT3_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT3_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT3_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT3_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATT3_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATT3_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATT3_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATT3_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT3_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATT3_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT3_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATT3_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT3_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATT4_": {
    "BATT4_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT4_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT4_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT4_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATT4_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATT4_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT4_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATT4_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATT4_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT4_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT4_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATT4_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT4_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATT4_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATT4_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT4_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATT4_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT4_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT4_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT4_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATT4_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATT4_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATT4_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT4_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT4_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATT4_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT4_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT4_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT4_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATT4_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT4_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT4_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT4_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT4_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATT4_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATT4_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATT4_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATT4_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT4_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATT4_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT4_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATT4_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT4_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATT5_": {
    "BATT5_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT5_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT5_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT5_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATT5_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATT5_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT5_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATT5_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATT5_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT5_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT5_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATT5_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT5_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATT5_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATT5_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT5_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATT5_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT5_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT5_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT5_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATT5_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATT5_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATT5_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT5_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT5_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATT5_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT5_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT5_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT5_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATT5_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT5_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT5_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT5_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT5_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATT5_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATT5_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATT5_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATT5_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT5_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATT5_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT5_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATT5_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT5_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATT6_": {
    "BATT6_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT6_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT6_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT6_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATT6_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATT6_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT6_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATT6_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATT6_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT6_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT6_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATT6_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT6_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATT6_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATT6_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT6_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATT6_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT6_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT6_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT6_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATT6_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATT6_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATT6_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT6_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT6_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATT6_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT6_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT6_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT6_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATT6_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT6_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT6_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT6_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT6_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATT6_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATT6_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATT6_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATT6_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT6_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATT6_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT6_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATT6_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT6_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATT7_": {
    "BATT7_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT7_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT7_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT7_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATT7_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATT7_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT7_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATT7_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATT7_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT7_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT7_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATT7_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT7_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATT7_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATT7_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT7_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATT7_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT7_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT7_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT7_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATT7_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATT7_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATT7_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT7_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT7_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATT7_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT7_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT7_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT7_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATT7_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT7_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT7_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT7_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT7_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATT7_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATT7_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATT7_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATT7_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT7_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATT7_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT7_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATT7_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT7_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATT8_": {
    "BATT8_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT8_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT8_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT8_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATT8_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATT8_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT8_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATT8_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATT8_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT8_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT8_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATT8_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT8_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATT8_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATT8_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT8_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATT8_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT8_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT8_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT8_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATT8_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATT8_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATT8_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT8_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT8_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATT8_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT8_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT8_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT8_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATT8_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT8_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT8_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT8_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT8_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATT8_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATT8_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATT8_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATT8_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT8_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATT8_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT8_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATT8_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT8_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATT9_": {
    "BATT9_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT9_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT9_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT9_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATT9_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATT9_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT9_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATT9_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATT9_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT9_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT9_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATT9_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT9_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATT9_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATT9_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT9_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATT9_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT9_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT9_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT9_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATT9_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATT9_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATT9_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT9_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT9_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATT9_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT9_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT9_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT9_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATT9_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT9_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT9_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT9_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT9_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATT9_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATT9_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATT9_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATT9_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT9_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATT9_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT9_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATT9_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT9_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATTA_": {
    "BATTA_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTA_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTA_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATTA_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATTA_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATTA_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTA_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATTA_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATTA_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTA_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTA_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTA_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTA_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTA_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATTA_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTA_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATTA_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATTA_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTA_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATTA_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTA_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTA_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTA_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATTA_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATTA_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATTA_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTA_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTA_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATTA_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTA_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTA_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTA_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTA_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATTA_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTA_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTA_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTA_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTA_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATTA_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATTA_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATTA_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATTA_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTA_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATTA_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTA_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATTA_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTA_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATTB_": {
    "BATTB_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTB_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTB_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATTB_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATTB_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATTB_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTB_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATTB_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATTB_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTB_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTB_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTB_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTB_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTB_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATTB_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTB_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATTB_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATTB_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTB_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATTB_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTB_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTB_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTB_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATTB_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATTB_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATTB_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTB_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTB_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATTB_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTB_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTB_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTB_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTB_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATTB_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTB_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTB_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTB_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTB_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATTB_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATTB_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATTB_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATTB_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTB_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATTB_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTB_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATTB_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTB_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATTC_": {
    "BATTC_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTC_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTC_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATTC_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATTC_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATTC_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTC_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATTC_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATTC_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTC_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTC_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTC_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTC_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTC_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATTC_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTC_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATTC_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATTC_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTC_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATTC_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTC_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTC_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTC_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATTC_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATTC_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATTC_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTC_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTC_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATTC_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTC_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTC_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTC_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTC_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATTC_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTC_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTC_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTC_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTC_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATTC_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATTC_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATTC_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATTC_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTC_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATTC_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTC_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATTC_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTC_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATTD_": {
    "BATTD_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTD_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTD_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATTD_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATTD_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATTD_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTD_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATTD_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATTD_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTD_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTD_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTD_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTD_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTD_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATTD_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTD_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATTD_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATTD_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTD_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATTD_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTD_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTD_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTD_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATTD_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATTD_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATTD_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTD_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTD_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATTD_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTD_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTD_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTD_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTD_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATTD_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTD_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTD_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTD_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTD_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATTD_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATTD_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATTD_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATTD_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTD_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATTD_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTD_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATTD_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTD_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATTE_": {
    "BATTE_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTE_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTE_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATTE_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATTE_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATTE_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTE_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATTE_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATTE_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTE_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTE_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTE_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTE_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTE_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATTE_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTE_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATTE_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATTE_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTE_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATTE_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTE_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTE_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTE_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATTE_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATTE_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATTE_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTE_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTE_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATTE_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTE_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTE_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTE_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTE_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATTE_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTE_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTE_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTE_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTE_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATTE_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATTE_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATTE_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATTE_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTE_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATTE_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTE_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATTE_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTE_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATTF_": {
    "BATTF_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTF_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTF_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATTF_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATTF_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATTF_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTF_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATTF_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATTF_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTF_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTF_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTF_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTF_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTF_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATTF_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTF_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATTF_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATTF_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTF_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATTF_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTF_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTF_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTF_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATTF_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATTF_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATTF_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTF_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTF_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATTF_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTF_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTF_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTF_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTF_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATTF_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTF_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTF_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTF_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTF_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATTF_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATTF_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATTF_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATTF_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTF_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATTF_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTF_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATTF_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTF_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATTG_": {
    "BATTG_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTG_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTG_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATTG_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATTG_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATTG_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTG_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATTG_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATTG_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTG_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTG_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTG_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTG_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTG_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATTG_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTG_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATTG_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATTG_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTG_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATTG_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTG_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTG_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATTG_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATTG_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATTG_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATTG_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTG_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATTG_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATTG_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTG_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATTG_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATTG_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATTG_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATTG_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATTG_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATTG_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATTG_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTG_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATTG_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATTG_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATTG_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATTG_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATTG_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATTG_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTG_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATTG_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATTG_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BATT_": {
    "BATT_AMP_OFFSET": {
      "Description": "Voltage offset at zero current on current sensor",
      "DisplayName": "AMP offset",
      "Units": "V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT_AMP_PERVLT": {
      "Description": "Number of amps that a 1V reading on the current sensor corresponds to.",
      "DisplayName": "Amps per volt",
      "Units": "A/V",
      "User": "Standard",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT_ARM_MAH": {
      "Description": "Battery capacity remaining which is required to arm the aircraft. Set to 0 to allow arming at any capacity. Note that execept for smart batteries rebooting the vehicle will always reset the remaining capacity estimate, which can lead to this check not providing sufficent protection, it is recommended to always use this in conjunction with the BATT_ARM_VOLT parameter.",
      "DisplayName": "Required arming remaining capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Advanced"
    },
    "BATT_ARM_VOLT": {
      "Description": "Battery voltage level which is required to arm the aircraft. Set to 0 to allow arming at any voltage.",
      "DisplayName": "Required arming voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Advanced"
    },
    "BATT_CAPACITY": {
      "Description": "Capacity of the battery in mAh when full",
      "DisplayName": "Battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT_CFG_UPDATE": {
      "Description": "Controls startup configuration behavior. 1 writes configuration once then clears to 0. 2 checks current configuration and writes only if needed.",
      "DisplayName": "Battery BMS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Write configuration once",
        "2": "Check and update if needed"
      }
    },
    "BATT_CHANNEL": {
      "Description": "INA3221 channel to return data for",
      "DisplayName": "INA3221 channel",
      "Range": {
        "high": "3",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BATT_CRT_MAH": {
      "Description": "Battery capacity at which the critical battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT_FS_CRT_ACT parameter.",
      "DisplayName": "Battery critical capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT_CRT_VOLT": {
      "Description": "Battery voltage that triggers a critical battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_CRT_ACT parameter.",
      "DisplayName": "Critical battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT_CURR_MULT": {
      "Description": "Multiplier applied to all current related reports to allow for adjustment if no UAVCAN param access or current splitting applications",
      "DisplayName": "Scales reported power monitor current",
      "Range": {
        "high": "10",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "BATT_CURR_PIN": {
      "Description": "Sets the analog input pin that should be used for Current monitoring on AD7091R5.",
      "DisplayName": "Battery Current sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write voltage, current, consumption and temperature data to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BATT_ESC_MASK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "If 0 all connected ESCs will be used. If non-zero, only those selected in will be used.",
      "DisplayName": "ESC mask",
      "User": "Standard"
    },
    "BATT_FL_FF": {
      "Description": "First order polynomial fit term",
      "DisplayName": "First order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT_FL_FLTR": {
      "Description": "Filter frequency in Hertz where a low pass filter is used. This is used to filter out tank slosh from the fuel level reading. A value of -1 disables the filter and unfiltered voltage is used to determine the fuel level. The suggested values at in the range of 0.2 Hz to 0.5 Hz.",
      "DisplayName": "Fuel level filter frequency",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "BATT_FL_FS": {
      "Description": "Second order polynomial fit term",
      "DisplayName": "Second order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT_FL_FT": {
      "Description": "Third order polynomial fit term",
      "DisplayName": "Third order term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT_FL_OFF": {
      "Description": "Offset polynomial fit term",
      "DisplayName": "Offset term",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "User": "Advanced"
    },
    "BATT_FL_PIN": {
      "Description": "Analog input pin that fuel level sensor is connected to.Analog Airspeed or RSSI ports can be used for Analog input( some autopilots provide others also). Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Fuel level analog pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "BATT_FL_VLT_MIN": {
      "Description": "The voltage seen on the analog pin when the fuel tank is empty. Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Empty fuel level voltage",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BATT_FL_V_MULT": {
      "Description": "Voltage multiplier to determine what the full tank voltage reading is. This is calculated as 1 / (Voltage_Full - Voltage_Empty) Note: For this type of battery monitor, the voltage seen by the analog pin is displayed as battery voltage on a GCS.",
      "DisplayName": "Fuel level voltage multiplier",
      "Range": {
        "high": "10",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "BATT_FS_CRT_ACT": {
      "Description": "What action the vehicle should perform if it hits a critical battery failsafe",
      "DisplayName": "Critical battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT_FS_LOW_ACT": {
      "Description": "What action the vehicle should perform if it hits a low battery failsafe",
      "DisplayName": "Low battery failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Warn only",
        "2": "Disarm",
        "3": "Enter surface mode"
      }
    },
    "BATT_FS_VOLTSRC": {
      "Description": "Voltage type used for detection of low voltage event",
      "DisplayName": "Failsafe voltage source",
      "User": "Advanced",
      "Values": {
        "0": "Raw Voltage",
        "1": "Sag Compensated Voltage"
      }
    },
    "BATT_I2C_ADDR": {
      "Description": "Battery monitor I2C address. If this is zero then probe list of supported addresses",
      "DisplayName": "Battery monitor I2C address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT_I2C_BUS": {
      "Description": "Battery monitor I2C bus number",
      "DisplayName": "Battery monitor I2C bus number",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA3221"
    },
    "BATT_LOW_MAH": {
      "Description": "Battery capacity at which the low battery failsafe is triggered. Set to 0 to disable battery remaining failsafe. If the battery capacity drops below this level the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery capacity",
      "Increment": "50",
      "Units": "mAh",
      "User": "Standard"
    },
    "BATT_LOW_TIMER": {
      "Description": "This is the timeout in seconds before a low voltage event will be triggered. For aircraft with low C batteries it may be necessary to raise this in order to cope with low voltage on long takeoffs. A value of zero disables low voltage errors.",
      "DisplayName": "Low voltage timeout",
      "Increment": "1",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "BATT_LOW_VOLT": {
      "Description": "Battery voltage that triggers a low battery failsafe. Set to 0 to disable. If the battery voltage drops below this voltage continuously for more then the period specified by the BATT_LOW_TIMER parameter then the vehicle will perform the failsafe specified by the BATT_FS_LOW_ACT parameter.",
      "DisplayName": "Low battery voltage",
      "Increment": "0.1",
      "Units": "V",
      "User": "Standard"
    },
    "BATT_MAX_AMPS": {
      "Description": "This controls the maximum current the INA239 sensor will work with.",
      "DisplayName": "Battery monitor max current",
      "Range": {
        "high": "400",
        "low": "1"
      },
      "Units": "A",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT_MAX_VOLT": {
      "Description": "Maximum voltage of battery. Provides scaling of current versus voltage",
      "DisplayName": "Maximum Battery Voltage",
      "Range": {
        "high": "100",
        "low": "7"
      },
      "User": "Advanced"
    },
    "BATT_MONITOR": {
      "Description": "Controls enabling monitoring of the battery's voltage and current",
      "DisplayName": "Battery monitoring",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "10": "Sum Of Selected Monitors",
        "11": "FuelFlow",
        "12": "FuelLevelPWM",
        "13": "SMBUS-SUI3",
        "14": "SMBUS-SUI6",
        "15": "NeoDesign",
        "16": "SMBus-Maxell",
        "17": "Generator-Elec",
        "18": "Generator-Fuel",
        "19": "Rotoye",
        "20": "MPPT",
        "21": "INA2XX (INA226 INA228 INA238 INA231 INA260)",
        "22": "LTC2946",
        "23": "Torqeedo",
        "24": "FuelLevelAnalog",
        "25": "Synthetic Current and Analog Voltage",
        "26": "INA239_SPI",
        "27": "EFI",
        "28": "AD7091R5",
        "29": "Scripting",
        "3": "Analog Voltage Only",
        "30": "INA3221",
        "31": "Analog Current Only",
        "32": "TIBQ76952-I2C (Periph only)",
        "4": "Analog Voltage and Current",
        "5": "Solo",
        "6": "Bebop",
        "7": "SMBus-Generic",
        "8": "DroneCAN-BatteryInfo",
        "9": "ESC"
      }
    },
    "BATT_OPTIONS": {
      "Bitmask": {
        "0": "Ignore DroneCAN SoC",
        "1": "MPPT reports input voltage and current",
        "10": "Allow DroneCAN dynamic node update on hot-swap",
        "2": "MPPT Powered off when disarmed",
        "3": "MPPT Powered on when armed",
        "4": "MPPT Powered off at boot",
        "5": "MPPT Powered on at boot",
        "6": "Send resistance compensated voltage to GCS",
        "7": "Allow DroneCAN InfoAux to be from a different CAN node",
        "8": "Battery is for internal autopilot use only",
        "9": "Sum monitor measures minimum voltage instead of average"
      },
      "Description": "This sets options to change the behaviour of the battery monitor",
      "DisplayName": "Battery monitor options",
      "User": "Advanced"
    },
    "BATT_SERIAL_NUM": {
      "Description": "Battery serial number, automatically filled in for SMBus batteries, otherwise will be -1. With DroneCan it is the battery_id.",
      "DisplayName": "Battery serial number",
      "User": "Advanced"
    },
    "BATT_SHUNT": {
      "Description": "This sets the shunt resistor used in the device",
      "DisplayName": "Battery monitor shunt resistor",
      "Increment": "0.0001",
      "Range": {
        "high": "0.01",
        "low": "0.0001"
      },
      "Units": "Ohm",
      "User": "Advanced",
      "path": "AP_BattMonitor_INA239"
    },
    "BATT_SUM_MASK": {
      "Bitmask": {
        "0": "monitor 1",
        "1": "monitor 2",
        "2": "monitor 3",
        "3": "monitor 4",
        "4": "monitor 5",
        "5": "monitor 6",
        "6": "monitor 7",
        "7": "monitor 8",
        "8": "monitor 9"
      },
      "Description": "0: sum of remaining battery monitors, If none 0 sum of specified monitors. Current will be summed and voltages averaged.",
      "DisplayName": "Battery Sum mask",
      "User": "Standard"
    },
    "BATT_VLT_OFFSET": {
      "Description": "Voltage offset on voltage pin. This allows for an offset due to a diode. This voltage is subtracted before the scaling is applied",
      "DisplayName": "Volage offset",
      "Units": "V",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT_VOLT_MULT": {
      "Description": "Used to convert the voltage of the voltage sensing pin (BATT_VOLT_PIN) to the actual battery's voltage (pin_voltage * VOLT_MULT).",
      "DisplayName": "Voltage Multiplier",
      "User": "Advanced",
      "path": "AP_BattMonitor_AD7091R5"
    },
    "BATT_VOLT_PIN": {
      "Description": "Sets the analog input pin that should be used for voltage monitoring on AD7091R5.",
      "DisplayName": "Battery Voltage sensing pin on the AD7091R5 Ic",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled"
      },
      "path": "AP_BattMonitor_AD7091R5"
    }
  },
  "BCN": {
    "BCN_ALT": {
      "Description": "Beacon origin's altitude above sealevel in meters",
      "DisplayName": "Beacon origin's altitude above sealevel in meters",
      "Increment": "1",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "BCN_LATITUDE": {
      "Description": "Beacon origin's latitude",
      "DisplayName": "Beacon origin's latitude",
      "Increment": "0.000001",
      "Range": {
        "high": "90",
        "low": "-90"
      },
      "Units": "deg",
      "User": "Advanced"
    },
    "BCN_LONGITUDE": {
      "Description": "Beacon origin's longitude",
      "DisplayName": "Beacon origin's longitude",
      "Increment": "0.000001",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Advanced"
    },
    "BCN_ORIENT_YAW": {
      "Description": "Beacon systems rotation from north in degrees",
      "DisplayName": "Beacon systems rotation from north in degrees",
      "Increment": "1",
      "Range": {
        "high": "+180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Advanced"
    },
    "BCN_TYPE": {
      "Description": "What type of beacon based position estimation device is connected",
      "DisplayName": "Beacon based position estimation device type",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Pozyx",
        "10": "SITL",
        "2": "Marvelmind",
        "3": "Nooploop"
      }
    }
  },
  "BRD_": {
    "BRD_ALT_CONFIG": {
      "Description": "Select an alternative hardware configuration. A value of zero selects the default configuration for this board. Other values are board specific. Please see the documentation for your board for details on any alternative configuration values that may be available.",
      "DisplayName": "Alternative HW config",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BRD_BOOT_DELAY": {
      "Description": "This adds a delay in milliseconds to boot to ensure peripherals initialise fully",
      "DisplayName": "Boot delay",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "Units": "ms",
      "User": "Advanced"
    },
    "BRD_HEAT_I": {
      "Description": "Board Heater integrator gain",
      "DisplayName": "Board Heater I gain",
      "Increment": "0.1",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BRD_HEAT_IMAX": {
      "Description": "Board Heater integrator maximum",
      "DisplayName": "Board Heater IMAX",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BRD_HEAT_LOWMGN": {
      "Description": "Arming check will fail if temp is lower than this margin below BRD_HEAT_TARG. 0 disables the low temperature check",
      "DisplayName": "Board heater temp lower margin",
      "Range": {
        "high": "20",
        "low": "0"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "BRD_HEAT_P": {
      "Description": "Board Heater P gain",
      "DisplayName": "Board Heater P gain",
      "Increment": "1",
      "Range": {
        "high": "500",
        "low": "1"
      },
      "User": "Advanced"
    },
    "BRD_HEAT_TARG": {
      "Description": "Board heater target temperature for boards with controllable heating units. Set to -1 to disable the heater, please reboot after setting to -1.",
      "DisplayName": "Board heater temperature target",
      "Range": {
        "high": "80",
        "low": "-1"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "BRD_IDLE_STATS": {
      "Description": "Capture and calculate true CPU load using idle threads",
      "DisplayName": "Capture and calculate true CPU load using idle threads",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "BRD_IO_DSHOT": {
      "Description": "This loads the DShot firmware on the IO co-processor",
      "DisplayName": "Load DShot FW on IO",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "StandardFW",
        "1": "DshotFW"
      }
    },
    "BRD_IO_ENABLE": {
      "Description": "This allows for the IO co-processor on boards with an IOMCU to be disabled. Setting to 2 will enable the IOMCU but not attempt to update firmware on startup",
      "DisplayName": "Enable IO co-processor",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "EnableNoFWUpdate"
      }
    },
    "BRD_OPTIONS": {
      "Bitmask": {
        "0": "Enable hardware watchdog",
        "1": "Disable MAVftp",
        "2": "Enable set of internal parameters",
        "3": "Enable Debug Pins",
        "4": "Unlock flash on reboot",
        "5": "Write protect firmware flash on reboot",
        "6": "Write protect bootloader flash on reboot",
        "7": "Skip board validation",
        "8": "Disable board arming gpio output change on arm/disarm",
        "9": "Use safety pins as profiled"
      },
      "Description": "Board specific option flags",
      "DisplayName": "Board options",
      "User": "Advanced"
    },
    "BRD_PWM_VOLT_SEL": {
      "Description": "This sets the voltage max for PWM output pulses. 0 for 3.3V and 1 for 5V output. On boards with an IOMCU that support this parameter this option only affects the 8 main outputs, not the 6 auxiliary outputs. Using 5V output can help to reduce the impact of ESC noise interference corrupting signals to the ESCs.",
      "DisplayName": "Set PWM Out Voltage",
      "User": "Advanced",
      "Values": {
        "0": "3.3V",
        "1": "5V"
      }
    },
    "BRD_SAFETYOPTION": {
      "Bitmask": {
        "0": "ActiveForSafetyDisable",
        "1": "ActiveForSafetyEnable",
        "2": "ActiveWhenArmed",
        "3": "Force safety on when the aircraft disarms"
      },
      "Description": "This controls the activation of the safety button. It allows you to control if the safety button can be used for safety enable and/or disable, and whether the button is only active when disarmed",
      "DisplayName": "Options for safety button behavior",
      "User": "Standard"
    },
    "BRD_SAFETY_DEFLT": {
      "Description": "This controls the default state of the safety switch at startup. When set to 1 the safety switch will start in the safe state (flashing) at boot. When set to zero the safety switch will start in the unsafe state (solid) at startup. Note that if a safety switch is fitted the user can still control the safety state after startup using the switch. The safety state can also be controlled in software using a MAVLink message.",
      "DisplayName": "Sets default state of the safety switch",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "BRD_SAFETY_MASK": {
      "Bitmask": {
        "0": "Output1",
        "1": "Output2",
        "10": "Output11",
        "11": "Output12",
        "12": "Output13",
        "13": "Output14",
        "14": "Output15",
        "15": "Output16",
        "16": "Output17",
        "17": "Output18",
        "18": "Output19",
        "19": "Output20",
        "2": "Output3",
        "20": "Output21",
        "21": "Output22",
        "22": "Output23",
        "23": "Output24",
        "24": "Output25",
        "25": "Output26",
        "26": "Output27",
        "27": "Output28",
        "28": "Output29",
        "29": "Output30",
        "3": "Output4",
        "30": "Output31",
        "31": "Output32",
        "4": "Output5",
        "5": "Output6",
        "6": "Output7",
        "7": "Output8",
        "8": "Output9",
        "9": "Output10"
      },
      "Description": "A bitmask which controls what outputs can move while the safety switch has not been pressed",
      "DisplayName": "Outputs which ignore the safety switch state",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BRD_SBUS_OUT": {
      "Description": "This sets the SBUS output frame rate in Hz",
      "DisplayName": "SBUS output rate",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "50Hz",
        "2": "75Hz",
        "3": "100Hz",
        "4": "150Hz",
        "5": "200Hz",
        "6": "250Hz",
        "7": "300Hz"
      }
    },
    "BRD_SD_FENCE": {
      "Description": "This sets the amount of storage in kilobytes reserved on the microsd card in fence.stg for fence storage.",
      "DisplayName": "SDCard Fence size",
      "Range": {
        "high": "64",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BRD_SD_MISSION": {
      "Description": "This sets the amount of storage in kilobytes reserved on the microsd card in mission.stg for waypoint storage. Each waypoint uses 15 bytes.",
      "DisplayName": "SDCard Mission size",
      "Range": {
        "high": "64",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "BRD_SD_SLOWDOWN": {
      "Description": "This is a scaling factor to slow down microSD operation. It can be used on flight board and microSD card combinations where full speed is not reliable. For normal full speed operation a value of 0 should be used.",
      "DisplayName": "microSD slowdown",
      "Increment": "1",
      "Range": {
        "high": "32",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BRD_SER1_RTSCTS": {
      "Description": "Enable flow control on serial 1 (telemetry 1). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup. Note that the PX4v1 does not have hardware flow control pins on this port, so you should leave this disabled.",
      "DisplayName": "Serial 1 flow control",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "Auto",
        "3": "RS-485 Driver enable RTS pin"
      }
    },
    "BRD_SER2_RTSCTS": {
      "Description": "Enable flow control on serial 2 (telemetry 2). You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",
      "DisplayName": "Serial 2 flow control",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "Auto",
        "3": "RS-485 Driver enable RTS pin"
      }
    },
    "BRD_SER3_RTSCTS": {
      "Description": "Enable flow control on serial 3. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",
      "DisplayName": "Serial 3 flow control",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "Auto",
        "3": "RS-485 Driver enable RTS pin"
      }
    },
    "BRD_SER4_RTSCTS": {
      "Description": "Enable flow control on serial 4. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",
      "DisplayName": "Serial 4 flow control",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "Auto",
        "3": "RS-485 Driver enable RTS pin"
      }
    },
    "BRD_SER5_RTSCTS": {
      "Description": "Enable flow control on serial 5. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",
      "DisplayName": "Serial 5 flow control",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "Auto",
        "3": "RS-485 Driver enable RTS pin"
      }
    },
    "BRD_SER6_RTSCTS": {
      "Description": "Enable flow control on serial 6. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",
      "DisplayName": "Serial 6 flow control",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "Auto",
        "3": "RS-485 Driver enable RTS pin"
      }
    },
    "BRD_SER7_RTSCTS": {
      "Description": "Enable flow control on serial 7. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",
      "DisplayName": "Serial 7 flow control",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "Auto",
        "3": "RS-485 Driver enable RTS pin"
      }
    },
    "BRD_SER8_RTSCTS": {
      "Description": "Enable flow control on serial 8. You must have the RTS and CTS pins connected to your radio. The standard DF13 6 pin connector for a 3DR radio does have those pins connected. If this is set to 2 then flow control will be auto-detected by checking for the output buffer filling on startup.",
      "DisplayName": "Serial 8 flow control"
    },
    "BRD_SERIAL_NUM": {
      "Description": "User-defined serial number of this vehicle, it can be any arbitrary number you want and has no effect on the autopilot",
      "DisplayName": "User-defined serial number",
      "Range": {
        "high": "8388607",
        "low": "-8388608"
      },
      "User": "Standard"
    },
    "BRD_TYPE": {
      "Description": "This allows selection of a PX4 or VRBRAIN board type. If set to zero then the board type is auto-detected (PX4)",
      "DisplayName": "Board type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "AUTO",
        "1": "PX4V1",
        "100": "PX4 OLDDRIVERS",
        "2": "Pixhawk",
        "20": "AUAV2.1",
        "3": "Cube/Pixhawk2",
        "5": "PixhawkMini",
        "6": "Pixhawk2Slim"
      }
    },
    "BRD_VBUS_MIN": {
      "Description": "Minimum voltage on the autopilot power rail to allow the aircraft to arm. 0 to disable the check.",
      "DisplayName": "Autopilot board voltage requirement",
      "Increment": "0.1",
      "Range": {
        "high": "5.5",
        "low": "4.0"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "BRD_VSERVO_MIN": {
      "Description": "Minimum voltage on the servo rail to allow the aircraft to arm. 0 to disable the check.",
      "DisplayName": "Servo voltage requirement",
      "Increment": "0.1",
      "Range": {
        "high": "12.0",
        "low": "3.3"
      },
      "Units": "V",
      "User": "Advanced"
    }
  },
  "BRD_RADIO": {
    "BRD_RADIO_ABLVL": {
      "Description": "This sets the minimum RSSI of an auto-bind packet for it to be accepted. This should be set so that auto-bind will only happen at short range to minimise the change of an auto-bind happening accidentially",
      "DisplayName": "Auto-bind level",
      "Range": {
        "high": "31",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BRD_RADIO_ABTIME": {
      "Description": "When non-zero this sets the time with no transmitter packets before we start looking for auto-bind packets.",
      "DisplayName": "Auto-bind time",
      "Range": {
        "high": "120",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BRD_RADIO_BZOFS": {
      "Description": "Set transmitter buzzer note adjustment (adjust frequency up)",
      "DisplayName": "Transmitter buzzer adjustment",
      "Range": {
        "high": "40",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BRD_RADIO_DEBUG": {
      "Description": "radio debug level",
      "DisplayName": "debug level",
      "Range": {
        "high": "4",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BRD_RADIO_DISCRC": {
      "Description": "disable receive CRC (for debug)",
      "DisplayName": "disable receive CRC",
      "User": "Advanced",
      "Values": {
        "0": "NotDisabled",
        "1": "Disabled"
      }
    },
    "BRD_RADIO_FCCTST": {
      "Description": "If this is enabled then the radio will continuously transmit as required for FCC testing. The transmit channel is set by the value of the parameter. The radio will not work for RC input while this is enabled",
      "DisplayName": "Put radio into FCC test mode",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "MinChannel",
        "2": "MidChannel",
        "3": "MaxChannel",
        "4": "MinChannelCW",
        "5": "MidChannelCW",
        "6": "MaxChannelCW"
      }
    },
    "BRD_RADIO_PPSCH": {
      "Description": "Channel to show received packet-per-second rate, or zero for disabled",
      "DisplayName": "Packet rate channel",
      "Range": {
        "high": "16",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BRD_RADIO_PROT": {
      "Description": "Select air protocol",
      "DisplayName": "protocol",
      "User": "Advanced",
      "Values": {
        "0": "Auto",
        "1": "DSM2",
        "2": "DSMX"
      }
    },
    "BRD_RADIO_SIGCH": {
      "Description": "Channel to show receive RSSI signal strength, or zero for disabled",
      "DisplayName": "RSSI signal strength",
      "Range": {
        "high": "16",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BRD_RADIO_STKMD": {
      "Description": "This selects between different stick input modes. The default is mode2, which has throttle on the left stick and pitch on the right stick. You can instead set mode1, which has throttle on the right stick and pitch on the left stick.",
      "DisplayName": "Stick input mode",
      "User": "Advanced",
      "Values": {
        "1": "Mode1",
        "2": "Mode2",
        "3": "Mode3",
        "4": "Mode4"
      }
    },
    "BRD_RADIO_TELEM": {
      "Description": "If this is non-zero then telemetry packets will be sent over DSM",
      "DisplayName": "Enable telemetry",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "BRD_RADIO_TESTCH": {
      "Description": "This sets the radio to a fixed test channel for factory testing. Using a fixed channel avoids the need for binding in factory testing.",
      "DisplayName": "Set radio to factory test channel",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "TestChan1",
        "2": "TestChan2",
        "3": "TestChan3",
        "4": "TestChan4",
        "5": "TestChan5",
        "6": "TestChan6",
        "7": "TestChan7",
        "8": "TestChan8"
      }
    },
    "BRD_RADIO_TPPSCH": {
      "Description": "Channel to show telemetry packets-per-second value, as received at TX",
      "DisplayName": "Telemetry PPS channel",
      "Range": {
        "high": "16",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BRD_RADIO_TSIGCH": {
      "Description": "Channel to show telemetry RSSI value as received by TX",
      "DisplayName": "RSSI value channel for telemetry data on transmitter",
      "Range": {
        "high": "16",
        "low": "0"
      },
      "User": "Advanced"
    },
    "BRD_RADIO_TXMAX": {
      "Description": "Set transmitter maximum transmit power (from 1 to 8)",
      "DisplayName": "Transmitter transmit power",
      "Range": {
        "high": "8",
        "low": "1"
      },
      "User": "Advanced"
    },
    "BRD_RADIO_TXPOW": {
      "Description": "Set telemetry transmit power. This is the power level (from 1 to 8) for telemetry packets sent from the RX to the TX",
      "DisplayName": "Telemetry Transmit power",
      "Range": {
        "high": "8",
        "low": "1"
      },
      "User": "Advanced"
    },
    "BRD_RADIO_TYPE": {
      "Description": "This enables support for direct attached radio receivers",
      "DisplayName": "Set type of direct attached radio",
      "Values": {
        "0": "None",
        "1": "CYRF6936",
        "2": "CC2500",
        "3": "BK2425"
      }
    }
  },
  "BRD_RTC": {
    "BRD_RTC_TYPES": {
      "Bitmask": {
        "0": "GPS",
        "1": "MAVLINK_SYSTEM_TIME",
        "2": "HW"
      },
      "Description": "Specifies which sources of UTC time will be accepted",
      "DisplayName": "Allowed sources of RTC time",
      "User": "Advanced"
    },
    "BRD_RTC_TZ_MIN": {
      "Description": "Adds offset in +- minutes from UTC to calculate local time",
      "DisplayName": "Timezone offset from UTC",
      "Range": {
        "high": "+840",
        "low": "-720"
      },
      "User": "Advanced"
    }
  },
  "BTN0_": {
    "BTN0_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN0_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN10_": {
    "BTN10_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN10_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN11_": {
    "BTN11_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN11_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN12_": {
    "BTN12_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN12_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN13_": {
    "BTN13_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN13_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN14_": {
    "BTN14_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN14_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN15_": {
    "BTN15_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN15_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN16_": {
    "BTN16_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN16_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN17_": {
    "BTN17_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN17_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN18_": {
    "BTN18_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN18_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN19_": {
    "BTN19_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN19_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN1_": {
    "BTN1_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN1_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN20_": {
    "BTN20_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN20_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN21_": {
    "BTN21_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN21_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN22_": {
    "BTN22_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN22_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN23_": {
    "BTN23_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN23_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN24_": {
    "BTN24_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN24_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN25_": {
    "BTN25_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN25_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN26_": {
    "BTN26_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN26_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN27_": {
    "BTN27_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN27_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN28_": {
    "BTN28_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN28_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN29_": {
    "BTN29_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN29_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN2_": {
    "BTN2_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN2_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN30_": {
    "BTN30_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN30_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN31_": {
    "BTN31_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN31_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN3_": {
    "BTN3_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN3_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN4_": {
    "BTN4_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN4_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN5_": {
    "BTN5_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN5_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN6_": {
    "BTN6_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN6_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN7_": {
    "BTN7_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN7_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN8_": {
    "BTN8_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN8_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "BTN9_": {
    "BTN9_FUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    },
    "BTN9_SFUNCTION": {
      "Description": "Set to 0 to disable or choose a function",
      "DisplayName": "Function for button when the shift mode is toggled on",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "shift",
        "10": "mode_circle",
        "101": "relay_4_on",
        "102": "relay_4_off",
        "103": "relay_4_toggle",
        "104": "relay_1_momentary",
        "105": "relay_2_momentary",
        "106": "relay_3_momentary",
        "107": "relay_4_momentary",
        "108": "script_1",
        "109": "script_2",
        "11": "mode_guided",
        "110": "script_3",
        "111": "script_4",
        "112": "actuator_4_min",
        "113": "actuator_4_max",
        "114": "actuator_4_center",
        "115": "actuator_4_inc",
        "116": "actuator_4_dec",
        "117": "actuator_4_min_momentary",
        "118": "actuator_4_max_momentary",
        "119": "actuator_4_min_toggle",
        "12": "mode_acro",
        "120": "actuator_4_max_toggle",
        "121": "actuator_5_min",
        "122": "actuator_5_max",
        "123": "actuator_5_center",
        "124": "actuator_5_inc",
        "125": "actuator_5_dec",
        "126": "actuator_5_min_momentary",
        "127": "actuator_5_max_momentary",
        "128": "actuator_5_min_toggle",
        "129": "actuator_5_max_toggle",
        "13": "mode_surftrak",
        "130": "actuator_6_min",
        "131": "actuator_6_max",
        "132": "actuator_6_center",
        "133": "actuator_6_inc",
        "134": "actuator_6_dec",
        "135": "actuator_6_min_momentary",
        "136": "actuator_6_max_momentary",
        "137": "actuator_6_min_toggle",
        "138": "actuator_6_max_toggle",
        "2": "arm_toggle",
        "21": "mount_center",
        "22": "mount_tilt_up",
        "23": "mount_tilt_down",
        "24": "camera_trigger",
        "25": "camera_source_toggle",
        "26": "mount_pan_right",
        "27": "mount_pan_left",
        "3": "arm",
        "31": "lights1_cycle",
        "32": "lights1_brighter",
        "33": "lights1_dimmer",
        "34": "lights2_cycle",
        "35": "lights2_brighter",
        "36": "lights2_dimmer",
        "4": "disarm",
        "41": "gain_toggle",
        "42": "gain_inc",
        "43": "gain_dec",
        "44": "trim_roll_inc",
        "45": "trim_roll_dec",
        "46": "trim_pitch_inc",
        "47": "trim_pitch_dec",
        "48": "input_hold_set",
        "49": "roll_pitch_toggle",
        "5": "mode_manual",
        "51": "relay_1_on",
        "52": "relay_1_off",
        "53": "relay_1_toggle",
        "54": "relay_2_on",
        "55": "relay_2_off",
        "56": "relay_2_toggle",
        "57": "relay_3_on",
        "58": "relay_3_off",
        "59": "relay_3_toggle",
        "6": "mode_stabilize",
        "61": "actuator_1_inc",
        "62": "actuator_1_dec",
        "63": "actuator_1_min",
        "64": "actuator_1_max",
        "65": "actuator_1_center",
        "66": "actuator_2_inc",
        "67": "actuator_2_dec",
        "68": "actuator_2_min",
        "69": "actuator_2_max",
        "7": "mode_depth_hold",
        "70": "actuator_2_center",
        "71": "actuator_3_inc",
        "72": "actuator_3_dec",
        "73": "actuator_3_min",
        "74": "actuator_3_max",
        "75": "actuator_3_center",
        "76": "actuator_1_min_momentary",
        "77": "actuator_1_max_momentary",
        "78": "actuator_1_min_toggle",
        "79": "actuator_1_max_toggle",
        "8": "mode_poshold",
        "80": "actuator_2_min_momentary",
        "81": "actuator_2_max_momentary",
        "82": "actuator_2_min_toggle",
        "83": "actuator_2_max_toggle",
        "84": "actuator_3_min_momentary",
        "85": "actuator_3_max_momentary",
        "86": "actuator_3_min_toggle",
        "87": "actuator_3_max_toggle",
        "9": "mode_auto",
        "91": "custom_1",
        "92": "custom_2",
        "93": "custom_3",
        "94": "custom_4",
        "95": "custom_5",
        "96": "custom_6"
      }
    }
  },
  "CAM": {
    "CAM_AUTO_ONLY": {
      "Description": "When enabled, trigging by distance is done in AUTO mode only.",
      "DisplayName": "Distance-trigging in AUTO mode only",
      "User": "Standard",
      "Values": {
        "0": "Always",
        "1": "Only when in AUTO"
      }
    },
    "CAM_MAX_ROLL": {
      "Description": "Postpone shooting if roll is greater than limit. (0=Disable, will shoot regardless of roll).",
      "DisplayName": "Maximum photo roll angle.",
      "Range": {
        "high": "180",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    }
  },
  "CAM1": {
    "CAM1_COMPID": {
      "Description": "Component ID of the camera when using MAVLinkCamV2 (CAMn_TYPE=6). Zero selects MAV_COMP_ID_CAMERA plus the zero-based camera instance (100 for camera 1, 101 for camera 2). Values 7 to 255 select the specified component ID. IDs 1 to 6 are reserved for autopilot-connected cameras.",
      "DisplayName": "MAVLink camera component ID",
      "Increment": "1",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "CAM1_DURATION": {
      "Description": "Duration in seconds that the camera shutter is held open",
      "DisplayName": "Camera shutter duration held open",
      "Range": {
        "high": "5",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "CAM1_FEEDBAK_PIN": {
      "Description": "pin number to use for save accurate camera feedback messages. If set to -1 then don't use a pin flag for this, otherwise this is a pin number which if held high after a picture trigger order, will save camera messages when camera really takes a picture. A universal camera hot shoe is needed. The pin should be held high for at least 2 milliseconds for reliable trigger detection.  Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot. See also the CAMx_FEEDBCK_POL option.",
      "DisplayName": "Camera feedback pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "CAM1_FEEDBAK_POL": {
      "Description": "Polarity for feedback pin. If this is 1 then the feedback pin should go high on trigger. If set to 0 then it should go low",
      "DisplayName": "Camera feedback pin polarity",
      "User": "Standard",
      "Values": {
        "0": "TriggerLow",
        "1": "TriggerHigh"
      }
    },
    "CAM1_FOC_RAT_MAX": {
      "Description": "Speed at which the focus output moves for continuous (rate) focus commands. Only used by the Servo camera type. The default of 5%/s moves across the full range in 20 seconds",
      "DisplayName": "Camera focus speed",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "%/s",
      "User": "Standard"
    },
    "CAM1_HFOV": {
      "Description": "Camera horizontal field of view. 0 if unknown",
      "DisplayName": "Camera horizontal field of view",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "CAM1_INTRVAL_MIN": {
      "Description": "Postpone shooting if previous picture was taken less than this many seconds ago",
      "DisplayName": "Camera minimum time interval between photos",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "CAM1_MNT_INST": {
      "Description": "Mount instance camera is associated with. 0 means camera and mount have identical instance numbers e.g. camera1 and mount1",
      "DisplayName": "Camera Mount instance",
      "User": "Standard"
    },
    "CAM1_OPTIONS": {
      "Bitmask": {
        "0": "Recording Starts at arming and stops at disarming"
      },
      "Description": "Camera options bitmask",
      "DisplayName": "Camera options",
      "User": "Standard"
    },
    "CAM1_RELAY_ON": {
      "Description": "This sets whether the relay goes high or low when it triggers. Note that you should also set RELAY_DEFAULT appropriately for your camera",
      "DisplayName": "Camera relay ON value",
      "User": "Standard",
      "Values": {
        "0": "Low",
        "1": "High"
      }
    },
    "CAM1_SERVO_OFF": {
      "Description": "PWM value in microseconds to move servo to when shutter is deactivated",
      "DisplayName": "Camera servo OFF PWM value",
      "Range": {
        "high": "2000",
        "low": "1000"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "CAM1_SERVO_ON": {
      "Description": "PWM value in microseconds to move servo to when shutter is activated",
      "DisplayName": "Camera servo ON PWM value",
      "Range": {
        "high": "2000",
        "low": "1000"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "CAM1_TRIGG_DIST": {
      "Description": "Distance in meters between camera triggers. If this value is non-zero then the camera will trigger whenever the position changes by this number of meters regardless of what mode the APM is in. Note that this parameter can also be set in an auto mission using the DO_SET_CAM_TRIGG_DIST command, allowing you to enable/disable the triggering of the camera during the flight.",
      "DisplayName": "Camera trigger distance",
      "Range": {
        "high": "1000",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "CAM1_TYPE": {
      "Description": "how to trigger the camera to take a picture",
      "DisplayName": "Camera shutter (trigger) type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Servo",
        "2": "Relay",
        "3": "GoPro in Solo Gimbal",
        "4": "Mount (Siyi/Topotek/Viewpro/Xacti)",
        "5": "MAVLink",
        "6": "MAVLinkCamV2 (Gremsy/AVT)",
        "7": "Scripting",
        "8": "RunCam"
      }
    },
    "CAM1_VFOV": {
      "Description": "Camera vertical field of view. 0 if unknown",
      "DisplayName": "Camera vertical field of view",
      "Range": {
        "high": "180",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "CAM1_ZOM_RAT_MAX": {
      "Description": "Speed at which the zoom output moves for continuous (rate) zoom commands. Only used by the Servo camera type. The default of 5%/s moves across the full range in 20 seconds",
      "DisplayName": "Camera zoom speed",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "%/s",
      "User": "Standard"
    }
  },
  "CAM1_RC_": {
    "CAM1_RC_BTN_DELY": {
      "Description": "Time it takes for the a RunCam button press to be actived in ms. If this is too short then commands can get out of sync.",
      "DisplayName": "RunCam button delay before allowing further button presses",
      "User": "Advanced"
    },
    "CAM1_RC_BT_DELAY": {
      "Description": "Time it takes for the RunCam to become fully ready in ms. If this is too short then commands can get out of sync.",
      "DisplayName": "RunCam boot delay before allowing updates",
      "User": "Advanced"
    },
    "CAM1_RC_CONTROL": {
      "Bitmask": {
        "0": "Stick yaw right",
        "1": "Stick roll right",
        "2": "3-position switch",
        "3": "2-position switch",
        "4": "Autorecording enabled"
      },
      "Description": "Specifies the allowed actions required to enter the OSD menu and other option like autorecording",
      "DisplayName": "RunCam control option",
      "User": "Advanced"
    },
    "CAM1_RC_FEATURES": {
      "Bitmask": {
        "0": "Power Button",
        "1": "WiFi Button",
        "2": "Change Mode",
        "3": "5-Key OSD",
        "4": "Settings Access",
        "5": "DisplayPort",
        "6": "Start Recording",
        "7": "Stop Recording"
      },
      "Description": "The available features of the attached RunCam device. If 0 then the RunCam device will be queried for the features it supports, otherwise this setting is used.",
      "DisplayName": "RunCam features available",
      "User": "Advanced"
    },
    "CAM1_RC_MDE_DELY": {
      "Description": "Time it takes for the a RunCam mode button press to be actived in ms. If a mode change first requires a video recording change then double this value is used. If this is too short then commands can get out of sync.",
      "DisplayName": "RunCam mode delay before allowing further button presses",
      "User": "Advanced"
    },
    "CAM1_RC_TYPE": {
      "Description": "RunCam device type used to determine OSD menu structure and shutter options.",
      "DisplayName": "RunCam device type",
      "Values": {
        "0": "Disabled",
        "1": "RunCam Split Micro/RunCam with UART",
        "2": "RunCam Split",
        "3": "RunCam Split4 4k",
        "4": "RunCam Hybrid/RunCam Thumb Pro",
        "5": "Runcam 2 4k"
      }
    }
  },
  "CAM2": {
    "CAM2_COMPID": {
      "Description": "Component ID of the camera when using MAVLinkCamV2 (CAMn_TYPE=6). Zero selects MAV_COMP_ID_CAMERA plus the zero-based camera instance (100 for camera 1, 101 for camera 2). Values 7 to 255 select the specified component ID. IDs 1 to 6 are reserved for autopilot-connected cameras.",
      "DisplayName": "MAVLink camera component ID",
      "Increment": "1",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "CAM2_DURATION": {
      "Description": "Duration in seconds that the camera shutter is held open",
      "DisplayName": "Camera shutter duration held open",
      "Range": {
        "high": "5",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "CAM2_FEEDBAK_PIN": {
      "Description": "pin number to use for save accurate camera feedback messages. If set to -1 then don't use a pin flag for this, otherwise this is a pin number which if held high after a picture trigger order, will save camera messages when camera really takes a picture. A universal camera hot shoe is needed. The pin should be held high for at least 2 milliseconds for reliable trigger detection.  Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot. See also the CAMx_FEEDBCK_POL option.",
      "DisplayName": "Camera feedback pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "CAM2_FEEDBAK_POL": {
      "Description": "Polarity for feedback pin. If this is 1 then the feedback pin should go high on trigger. If set to 0 then it should go low",
      "DisplayName": "Camera feedback pin polarity",
      "User": "Standard",
      "Values": {
        "0": "TriggerLow",
        "1": "TriggerHigh"
      }
    },
    "CAM2_FOC_RAT_MAX": {
      "Description": "Speed at which the focus output moves for continuous (rate) focus commands. Only used by the Servo camera type. The default of 5%/s moves across the full range in 20 seconds",
      "DisplayName": "Camera focus speed",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "%/s",
      "User": "Standard"
    },
    "CAM2_HFOV": {
      "Description": "Camera horizontal field of view. 0 if unknown",
      "DisplayName": "Camera horizontal field of view",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "CAM2_INTRVAL_MIN": {
      "Description": "Postpone shooting if previous picture was taken less than this many seconds ago",
      "DisplayName": "Camera minimum time interval between photos",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "CAM2_MNT_INST": {
      "Description": "Mount instance camera is associated with. 0 means camera and mount have identical instance numbers e.g. camera1 and mount1",
      "DisplayName": "Camera Mount instance",
      "User": "Standard"
    },
    "CAM2_OPTIONS": {
      "Bitmask": {
        "0": "Recording Starts at arming and stops at disarming"
      },
      "Description": "Camera options bitmask",
      "DisplayName": "Camera options",
      "User": "Standard"
    },
    "CAM2_RELAY_ON": {
      "Description": "This sets whether the relay goes high or low when it triggers. Note that you should also set RELAY_DEFAULT appropriately for your camera",
      "DisplayName": "Camera relay ON value",
      "User": "Standard",
      "Values": {
        "0": "Low",
        "1": "High"
      }
    },
    "CAM2_SERVO_OFF": {
      "Description": "PWM value in microseconds to move servo to when shutter is deactivated",
      "DisplayName": "Camera servo OFF PWM value",
      "Range": {
        "high": "2000",
        "low": "1000"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "CAM2_SERVO_ON": {
      "Description": "PWM value in microseconds to move servo to when shutter is activated",
      "DisplayName": "Camera servo ON PWM value",
      "Range": {
        "high": "2000",
        "low": "1000"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "CAM2_TRIGG_DIST": {
      "Description": "Distance in meters between camera triggers. If this value is non-zero then the camera will trigger whenever the position changes by this number of meters regardless of what mode the APM is in. Note that this parameter can also be set in an auto mission using the DO_SET_CAM_TRIGG_DIST command, allowing you to enable/disable the triggering of the camera during the flight.",
      "DisplayName": "Camera trigger distance",
      "Range": {
        "high": "1000",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "CAM2_TYPE": {
      "Description": "how to trigger the camera to take a picture",
      "DisplayName": "Camera shutter (trigger) type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Servo",
        "2": "Relay",
        "3": "GoPro in Solo Gimbal",
        "4": "Mount (Siyi/Topotek/Viewpro/Xacti)",
        "5": "MAVLink",
        "6": "MAVLinkCamV2 (Gremsy/AVT)",
        "7": "Scripting",
        "8": "RunCam"
      }
    },
    "CAM2_VFOV": {
      "Description": "Camera vertical field of view. 0 if unknown",
      "DisplayName": "Camera vertical field of view",
      "Range": {
        "high": "180",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "CAM2_ZOM_RAT_MAX": {
      "Description": "Speed at which the zoom output moves for continuous (rate) zoom commands. Only used by the Servo camera type. The default of 5%/s moves across the full range in 20 seconds",
      "DisplayName": "Camera zoom speed",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "%/s",
      "User": "Standard"
    }
  },
  "CAM2_RC_": {
    "CAM2_RC_BTN_DELY": {
      "Description": "Time it takes for the a RunCam button press to be actived in ms. If this is too short then commands can get out of sync.",
      "DisplayName": "RunCam button delay before allowing further button presses",
      "User": "Advanced"
    },
    "CAM2_RC_BT_DELAY": {
      "Description": "Time it takes for the RunCam to become fully ready in ms. If this is too short then commands can get out of sync.",
      "DisplayName": "RunCam boot delay before allowing updates",
      "User": "Advanced"
    },
    "CAM2_RC_CONTROL": {
      "Bitmask": {
        "0": "Stick yaw right",
        "1": "Stick roll right",
        "2": "3-position switch",
        "3": "2-position switch",
        "4": "Autorecording enabled"
      },
      "Description": "Specifies the allowed actions required to enter the OSD menu and other option like autorecording",
      "DisplayName": "RunCam control option",
      "User": "Advanced"
    },
    "CAM2_RC_FEATURES": {
      "Bitmask": {
        "0": "Power Button",
        "1": "WiFi Button",
        "2": "Change Mode",
        "3": "5-Key OSD",
        "4": "Settings Access",
        "5": "DisplayPort",
        "6": "Start Recording",
        "7": "Stop Recording"
      },
      "Description": "The available features of the attached RunCam device. If 0 then the RunCam device will be queried for the features it supports, otherwise this setting is used.",
      "DisplayName": "RunCam features available",
      "User": "Advanced"
    },
    "CAM2_RC_MDE_DELY": {
      "Description": "Time it takes for the a RunCam mode button press to be actived in ms. If a mode change first requires a video recording change then double this value is used. If this is too short then commands can get out of sync.",
      "DisplayName": "RunCam mode delay before allowing further button presses",
      "User": "Advanced"
    },
    "CAM2_RC_TYPE": {
      "Description": "RunCam device type used to determine OSD menu structure and shutter options.",
      "DisplayName": "RunCam device type",
      "Values": {
        "0": "Disabled",
        "1": "RunCam Split Micro/RunCam with UART",
        "2": "RunCam Split",
        "3": "RunCam Split4 4k",
        "4": "RunCam Hybrid/RunCam Thumb Pro",
        "5": "Runcam 2 4k"
      }
    }
  },
  "CAN_": {
    "CAN_LOGLEVEL": {
      "Description": "Loglevel for recording initialisation and debug information from CAN Interface",
      "DisplayName": "Loglevel",
      "Range": {
        "high": "4",
        "low": "0"
      },
      "User": "Advanced",
      "Values": {
        "0": "Log None",
        "1": "Log Error",
        "2": "Log Warning and below",
        "3": "Log Info and below",
        "4": "Log Everything"
      }
    }
  },
  "CAN_D1_": {
    "CAN_D1_PROTOCOL": {
      "Description": "Enabling this option starts selected protocol that will use this virtual driver",
      "DisplayName": "Enable use of specific protocol over virtual driver",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "DroneCAN",
        "10": "Scripting",
        "11": "Benewake",
        "12": "Scripting2",
        "13": "TOFSenseP",
        "14": "RadarCAN (NanoRadar/Hexsoon)",
        "4": "PiccoloCAN",
        "6": "EFI_NWPMU",
        "7": "USD1",
        "8": "KDECAN"
      }
    },
    "CAN_D1_PROTOCOL2": {
      "Description": "Secondary protocol with 11 bit CAN addressing",
      "DisplayName": "Secondary protocol with 11 bit CAN addressing",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "10": "Scripting",
        "11": "Benewake",
        "12": "Scripting2",
        "13": "TOFSenseP",
        "14": "RadarCAN (NanoRadar/Hexsoon)",
        "7": "USD1"
      }
    }
  },
  "CAN_D1_PC_": {
    "CAN_D1_PC_ECU_ID": {
      "Description": "Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",
      "DisplayName": "ECU Node ID",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "CAN_D1_PC_ECU_RT": {
      "Description": "Output rate of ECU command messages",
      "DisplayName": "ECU command output rate",
      "Range": {
        "high": "500",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D1_PC_ESC_BM": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",
      "DisplayName": "ESC channels",
      "User": "Advanced"
    },
    "CAN_D1_PC_ESC_RT": {
      "Description": "Output rate of ESC command messages",
      "DisplayName": "ESC output rate",
      "Range": {
        "high": "500",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D1_PC_SRV_BM": {
      "Bitmask": {
        "0": "Servo 1",
        "1": "Servo 2",
        "10": "Servo 11",
        "11": "Servo 12",
        "12": "Servo 13",
        "13": "Servo 14",
        "14": "Servo 15",
        "15": "Servo 16",
        "2": "Servo 3",
        "3": "Servo 4",
        "4": "Servo 5",
        "5": "Servo 6",
        "6": "Servo 7",
        "7": "Servo 8",
        "8": "Servo 9",
        "9": "Servo 10"
      },
      "Description": "Bitmask defining which servo channels are to be transmitted over Piccolo CAN",
      "DisplayName": "Servo channels",
      "User": "Advanced"
    },
    "CAN_D1_PC_SRV_RT": {
      "Description": "Output rate of servo command messages",
      "DisplayName": "Servo command output rate",
      "Range": {
        "high": "500",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "CAN_D1_UC_": {
    "CAN_D1_UC_ESC_BM": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask with one set for channel to be transmitted as a ESC command over DroneCAN",
      "DisplayName": "Output channels to be transmitted as ESC over DroneCAN",
      "User": "Advanced"
    },
    "CAN_D1_UC_ESC_OF": {
      "Description": "Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo outputs 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficient usage of CAN bandwidth",
      "DisplayName": "ESC Output channels offset",
      "Range": {
        "high": "18",
        "low": "0"
      },
      "User": "Advanced"
    },
    "CAN_D1_UC_ESC_RV": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask with one set for each output channel that uses a reversible ESC over DroneCAN. Reversible ESCs use both positive and negative values in RawCommands, with positive commanding the forward direction and negative commanding the reverse direction.",
      "DisplayName": "Bitmask for output channels for reversible ESCs over DroneCAN.",
      "User": "Advanced"
    },
    "CAN_D1_UC_NODE": {
      "Description": "DroneCAN node ID used by the driver itself on this network",
      "DisplayName": "Own node ID",
      "Range": {
        "high": "125",
        "low": "1"
      },
      "User": "Advanced"
    },
    "CAN_D1_UC_NTF_RT": {
      "Description": "Maximum transmit rate for Notify State Message",
      "DisplayName": "Notify State rate",
      "Range": {
        "high": "200",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D1_UC_OPTION": {
      "Bitmask": {
        "0": "ClearDNADatabase",
        "1": "IgnoreDNANodeConflicts",
        "10": "SecondaryAllowExtendedFrames",
        "2": "EnableCanfd",
        "3": "IgnoreDNANodeUnhealthy",
        "4": "SendServoAsPWM",
        "5": "SendGNSS",
        "6": "UseHimarkServo",
        "7": "HobbyWingESC",
        "8": "EnableStats",
        "9": "EnableFlexDebug"
      },
      "Description": "Option flags",
      "DisplayName": "DroneCAN options",
      "User": "Advanced"
    },
    "CAN_D1_UC_POOL": {
      "Description": "Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",
      "DisplayName": "CAN pool size",
      "Range": {
        "high": "16384",
        "low": "1024"
      },
      "User": "Advanced"
    },
    "CAN_D1_UC_RLY_RT": {
      "Description": "Maximum transmit rate for relay outputs, note that this rate is per message each message does 1 relay, so if with more relays will take longer to update at the same rate, a extra message will be sent when a relay changes state",
      "DisplayName": "DroneCAN relay output rate",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D1_UC_S1_BD": {
      "Description": "Serial baud rate on remote CAN node",
      "DisplayName": "DroneCAN Serial default baud rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "CAN_D1_UC_S1_IDX": {
      "Description": "Serial port number on remote CAN node",
      "DisplayName": "DroneCAN Serial1 index",
      "Range": {
        "high": "100",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "CAN_D1_UC_S1_NOD": {
      "Description": "CAN remote node number for serial port",
      "DisplayName": "Serial CAN remote node number",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "CAN_D1_UC_S1_PRO": {
      "Description": "Serial protocol of DroneCAN serial port",
      "DisplayName": "Serial protocol of DroneCAN serial port",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "CAN_D1_UC_S2_BD": {
      "Description": "Serial baud rate on remote CAN node",
      "DisplayName": "DroneCAN Serial default baud rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "CAN_D1_UC_S2_IDX": {
      "Description": "Serial port number on remote CAN node",
      "DisplayName": "Serial port number on remote CAN node",
      "Range": {
        "high": "100",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "CAN_D1_UC_S2_NOD": {
      "Description": "CAN remote node number for serial port",
      "DisplayName": "Serial CAN remote node number",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "CAN_D1_UC_S2_PRO": {
      "Description": "Serial protocol of DroneCAN serial port",
      "DisplayName": "Serial protocol of DroneCAN serial port",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "CAN_D1_UC_S3_BD": {
      "Description": "Serial baud rate on remote CAN node",
      "DisplayName": "Serial baud rate on remote CAN node",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "CAN_D1_UC_S3_IDX": {
      "Description": "Serial port number on remote CAN node",
      "DisplayName": "Serial port number on remote CAN node",
      "Range": {
        "high": "100",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "CAN_D1_UC_S3_NOD": {
      "Description": "CAN node number for serial port",
      "DisplayName": "Serial CAN remote node number",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "CAN_D1_UC_S3_PRO": {
      "Description": "Serial protocol of DroneCAN serial port",
      "DisplayName": "Serial protocol of DroneCAN serial port",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "CAN_D1_UC_SER_EN": {
      "Description": "Enable DroneCAN virtual serial ports",
      "DisplayName": "DroneCAN Serial enable",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "CAN_D1_UC_SRV_BM": {
      "Bitmask": {
        "0": "Servo 1",
        "1": "Servo 2",
        "10": "Servo 11",
        "11": "Servo 12",
        "12": "Servo 13",
        "13": "Servo 14",
        "14": "Servo 15",
        "15": "Servo 16",
        "16": "Servo 17",
        "17": "Servo 18",
        "18": "Servo 19",
        "19": "Servo 20",
        "2": "Servo 3",
        "20": "Servo 21",
        "21": "Servo 22",
        "22": "Servo 23",
        "23": "Servo 24",
        "24": "Servo 25",
        "25": "Servo 26",
        "26": "Servo 27",
        "27": "Servo 28",
        "28": "Servo 29",
        "29": "Servo 30",
        "3": "Servo 4",
        "30": "Servo 31",
        "31": "Servo 32",
        "4": "Servo 5",
        "5": "Servo 6",
        "6": "Servo 7",
        "7": "Servo 8",
        "8": "Servo 9",
        "9": "Servo 10"
      },
      "Description": "Bitmask with one set for channel to be transmitted as a servo command over DroneCAN",
      "DisplayName": "Output channels to be transmitted as servo over DroneCAN"
    },
    "CAN_D1_UC_SRV_RT": {
      "Description": "Maximum transmit rate for servo outputs",
      "DisplayName": "Servo output rate",
      "Range": {
        "high": "200",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "CAN_D2_": {
    "CAN_D2_PROTOCOL": {
      "Description": "Enabling this option starts selected protocol that will use this virtual driver",
      "DisplayName": "Enable use of specific protocol over virtual driver",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "DroneCAN",
        "10": "Scripting",
        "11": "Benewake",
        "12": "Scripting2",
        "13": "TOFSenseP",
        "14": "RadarCAN (NanoRadar/Hexsoon)",
        "4": "PiccoloCAN",
        "6": "EFI_NWPMU",
        "7": "USD1",
        "8": "KDECAN"
      }
    },
    "CAN_D2_PROTOCOL2": {
      "Description": "Secondary protocol with 11 bit CAN addressing",
      "DisplayName": "Secondary protocol with 11 bit CAN addressing",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "10": "Scripting",
        "11": "Benewake",
        "12": "Scripting2",
        "13": "TOFSenseP",
        "14": "RadarCAN (NanoRadar/Hexsoon)",
        "7": "USD1"
      }
    }
  },
  "CAN_D2_PC_": {
    "CAN_D2_PC_ECU_ID": {
      "Description": "Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",
      "DisplayName": "ECU Node ID",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "CAN_D2_PC_ECU_RT": {
      "Description": "Output rate of ECU command messages",
      "DisplayName": "ECU command output rate",
      "Range": {
        "high": "500",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D2_PC_ESC_BM": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",
      "DisplayName": "ESC channels",
      "User": "Advanced"
    },
    "CAN_D2_PC_ESC_RT": {
      "Description": "Output rate of ESC command messages",
      "DisplayName": "ESC output rate",
      "Range": {
        "high": "500",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D2_PC_SRV_BM": {
      "Bitmask": {
        "0": "Servo 1",
        "1": "Servo 2",
        "10": "Servo 11",
        "11": "Servo 12",
        "12": "Servo 13",
        "13": "Servo 14",
        "14": "Servo 15",
        "15": "Servo 16",
        "2": "Servo 3",
        "3": "Servo 4",
        "4": "Servo 5",
        "5": "Servo 6",
        "6": "Servo 7",
        "7": "Servo 8",
        "8": "Servo 9",
        "9": "Servo 10"
      },
      "Description": "Bitmask defining which servo channels are to be transmitted over Piccolo CAN",
      "DisplayName": "Servo channels",
      "User": "Advanced"
    },
    "CAN_D2_PC_SRV_RT": {
      "Description": "Output rate of servo command messages",
      "DisplayName": "Servo command output rate",
      "Range": {
        "high": "500",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "CAN_D2_UC_": {
    "CAN_D2_UC_ESC_BM": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask with one set for channel to be transmitted as a ESC command over DroneCAN",
      "DisplayName": "Output channels to be transmitted as ESC over DroneCAN",
      "User": "Advanced"
    },
    "CAN_D2_UC_ESC_OF": {
      "Description": "Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo outputs 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficient usage of CAN bandwidth",
      "DisplayName": "ESC Output channels offset",
      "Range": {
        "high": "18",
        "low": "0"
      },
      "User": "Advanced"
    },
    "CAN_D2_UC_ESC_RV": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask with one set for each output channel that uses a reversible ESC over DroneCAN. Reversible ESCs use both positive and negative values in RawCommands, with positive commanding the forward direction and negative commanding the reverse direction.",
      "DisplayName": "Bitmask for output channels for reversible ESCs over DroneCAN.",
      "User": "Advanced"
    },
    "CAN_D2_UC_NODE": {
      "Description": "DroneCAN node ID used by the driver itself on this network",
      "DisplayName": "Own node ID",
      "Range": {
        "high": "125",
        "low": "1"
      },
      "User": "Advanced"
    },
    "CAN_D2_UC_NTF_RT": {
      "Description": "Maximum transmit rate for Notify State Message",
      "DisplayName": "Notify State rate",
      "Range": {
        "high": "200",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D2_UC_OPTION": {
      "Bitmask": {
        "0": "ClearDNADatabase",
        "1": "IgnoreDNANodeConflicts",
        "10": "SecondaryAllowExtendedFrames",
        "2": "EnableCanfd",
        "3": "IgnoreDNANodeUnhealthy",
        "4": "SendServoAsPWM",
        "5": "SendGNSS",
        "6": "UseHimarkServo",
        "7": "HobbyWingESC",
        "8": "EnableStats",
        "9": "EnableFlexDebug"
      },
      "Description": "Option flags",
      "DisplayName": "DroneCAN options",
      "User": "Advanced"
    },
    "CAN_D2_UC_POOL": {
      "Description": "Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",
      "DisplayName": "CAN pool size",
      "Range": {
        "high": "16384",
        "low": "1024"
      },
      "User": "Advanced"
    },
    "CAN_D2_UC_RLY_RT": {
      "Description": "Maximum transmit rate for relay outputs, note that this rate is per message each message does 1 relay, so if with more relays will take longer to update at the same rate, a extra message will be sent when a relay changes state",
      "DisplayName": "DroneCAN relay output rate",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D2_UC_S1_BD": {
      "Description": "Serial baud rate on remote CAN node",
      "DisplayName": "DroneCAN Serial default baud rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "CAN_D2_UC_S1_IDX": {
      "Description": "Serial port number on remote CAN node",
      "DisplayName": "DroneCAN Serial1 index",
      "Range": {
        "high": "100",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "CAN_D2_UC_S1_NOD": {
      "Description": "CAN remote node number for serial port",
      "DisplayName": "Serial CAN remote node number",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "CAN_D2_UC_S1_PRO": {
      "Description": "Serial protocol of DroneCAN serial port",
      "DisplayName": "Serial protocol of DroneCAN serial port",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "CAN_D2_UC_S2_BD": {
      "Description": "Serial baud rate on remote CAN node",
      "DisplayName": "DroneCAN Serial default baud rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "CAN_D2_UC_S2_IDX": {
      "Description": "Serial port number on remote CAN node",
      "DisplayName": "Serial port number on remote CAN node",
      "Range": {
        "high": "100",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "CAN_D2_UC_S2_NOD": {
      "Description": "CAN remote node number for serial port",
      "DisplayName": "Serial CAN remote node number",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "CAN_D2_UC_S2_PRO": {
      "Description": "Serial protocol of DroneCAN serial port",
      "DisplayName": "Serial protocol of DroneCAN serial port",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "CAN_D2_UC_S3_BD": {
      "Description": "Serial baud rate on remote CAN node",
      "DisplayName": "Serial baud rate on remote CAN node",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "CAN_D2_UC_S3_IDX": {
      "Description": "Serial port number on remote CAN node",
      "DisplayName": "Serial port number on remote CAN node",
      "Range": {
        "high": "100",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "CAN_D2_UC_S3_NOD": {
      "Description": "CAN node number for serial port",
      "DisplayName": "Serial CAN remote node number",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "CAN_D2_UC_S3_PRO": {
      "Description": "Serial protocol of DroneCAN serial port",
      "DisplayName": "Serial protocol of DroneCAN serial port",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "CAN_D2_UC_SER_EN": {
      "Description": "Enable DroneCAN virtual serial ports",
      "DisplayName": "DroneCAN Serial enable",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "CAN_D2_UC_SRV_BM": {
      "Bitmask": {
        "0": "Servo 1",
        "1": "Servo 2",
        "10": "Servo 11",
        "11": "Servo 12",
        "12": "Servo 13",
        "13": "Servo 14",
        "14": "Servo 15",
        "15": "Servo 16",
        "16": "Servo 17",
        "17": "Servo 18",
        "18": "Servo 19",
        "19": "Servo 20",
        "2": "Servo 3",
        "20": "Servo 21",
        "21": "Servo 22",
        "22": "Servo 23",
        "23": "Servo 24",
        "24": "Servo 25",
        "25": "Servo 26",
        "26": "Servo 27",
        "27": "Servo 28",
        "28": "Servo 29",
        "29": "Servo 30",
        "3": "Servo 4",
        "30": "Servo 31",
        "31": "Servo 32",
        "4": "Servo 5",
        "5": "Servo 6",
        "6": "Servo 7",
        "7": "Servo 8",
        "8": "Servo 9",
        "9": "Servo 10"
      },
      "Description": "Bitmask with one set for channel to be transmitted as a servo command over DroneCAN",
      "DisplayName": "Output channels to be transmitted as servo over DroneCAN"
    },
    "CAN_D2_UC_SRV_RT": {
      "Description": "Maximum transmit rate for servo outputs",
      "DisplayName": "Servo output rate",
      "Range": {
        "high": "200",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "CAN_D3_": {
    "CAN_D3_PROTOCOL": {
      "Description": "Enabling this option starts selected protocol that will use this virtual driver",
      "DisplayName": "Enable use of specific protocol over virtual driver",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "DroneCAN",
        "10": "Scripting",
        "11": "Benewake",
        "12": "Scripting2",
        "13": "TOFSenseP",
        "14": "RadarCAN (NanoRadar/Hexsoon)",
        "4": "PiccoloCAN",
        "6": "EFI_NWPMU",
        "7": "USD1",
        "8": "KDECAN"
      }
    },
    "CAN_D3_PROTOCOL2": {
      "Description": "Secondary protocol with 11 bit CAN addressing",
      "DisplayName": "Secondary protocol with 11 bit CAN addressing",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "10": "Scripting",
        "11": "Benewake",
        "12": "Scripting2",
        "13": "TOFSenseP",
        "14": "RadarCAN (NanoRadar/Hexsoon)",
        "7": "USD1"
      }
    }
  },
  "CAN_D3_PC_": {
    "CAN_D3_PC_ECU_ID": {
      "Description": "Node ID to send ECU throttle messages to. Set to zero to disable ECU throttle messages. Set to 255 to broadcast to all ECUs.",
      "DisplayName": "ECU Node ID",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "CAN_D3_PC_ECU_RT": {
      "Description": "Output rate of ECU command messages",
      "DisplayName": "ECU command output rate",
      "Range": {
        "high": "500",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D3_PC_ESC_BM": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask defining which ESC (motor) channels are to be transmitted over Piccolo CAN",
      "DisplayName": "ESC channels",
      "User": "Advanced"
    },
    "CAN_D3_PC_ESC_RT": {
      "Description": "Output rate of ESC command messages",
      "DisplayName": "ESC output rate",
      "Range": {
        "high": "500",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D3_PC_SRV_BM": {
      "Bitmask": {
        "0": "Servo 1",
        "1": "Servo 2",
        "10": "Servo 11",
        "11": "Servo 12",
        "12": "Servo 13",
        "13": "Servo 14",
        "14": "Servo 15",
        "15": "Servo 16",
        "2": "Servo 3",
        "3": "Servo 4",
        "4": "Servo 5",
        "5": "Servo 6",
        "6": "Servo 7",
        "7": "Servo 8",
        "8": "Servo 9",
        "9": "Servo 10"
      },
      "Description": "Bitmask defining which servo channels are to be transmitted over Piccolo CAN",
      "DisplayName": "Servo channels",
      "User": "Advanced"
    },
    "CAN_D3_PC_SRV_RT": {
      "Description": "Output rate of servo command messages",
      "DisplayName": "Servo command output rate",
      "Range": {
        "high": "500",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "CAN_D3_UC_": {
    "CAN_D3_UC_ESC_BM": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask with one set for channel to be transmitted as a ESC command over DroneCAN",
      "DisplayName": "Output channels to be transmitted as ESC over DroneCAN",
      "User": "Advanced"
    },
    "CAN_D3_UC_ESC_OF": {
      "Description": "Offset for ESC numbering in DroneCAN ESC RawCommand messages. This allows for more efficient packing of ESC command messages. If your ESCs are on servo outputs 5 to 8 and you set this parameter to 4 then the ESC RawCommand will be sent with the first 4 slots filled. This can be used for more efficient usage of CAN bandwidth",
      "DisplayName": "ESC Output channels offset",
      "Range": {
        "high": "18",
        "low": "0"
      },
      "User": "Advanced"
    },
    "CAN_D3_UC_ESC_RV": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask with one set for each output channel that uses a reversible ESC over DroneCAN. Reversible ESCs use both positive and negative values in RawCommands, with positive commanding the forward direction and negative commanding the reverse direction.",
      "DisplayName": "Bitmask for output channels for reversible ESCs over DroneCAN.",
      "User": "Advanced"
    },
    "CAN_D3_UC_NODE": {
      "Description": "DroneCAN node ID used by the driver itself on this network",
      "DisplayName": "Own node ID",
      "Range": {
        "high": "125",
        "low": "1"
      },
      "User": "Advanced"
    },
    "CAN_D3_UC_NTF_RT": {
      "Description": "Maximum transmit rate for Notify State Message",
      "DisplayName": "Notify State rate",
      "Range": {
        "high": "200",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D3_UC_OPTION": {
      "Bitmask": {
        "0": "ClearDNADatabase",
        "1": "IgnoreDNANodeConflicts",
        "10": "SecondaryAllowExtendedFrames",
        "2": "EnableCanfd",
        "3": "IgnoreDNANodeUnhealthy",
        "4": "SendServoAsPWM",
        "5": "SendGNSS",
        "6": "UseHimarkServo",
        "7": "HobbyWingESC",
        "8": "EnableStats",
        "9": "EnableFlexDebug"
      },
      "Description": "Option flags",
      "DisplayName": "DroneCAN options",
      "User": "Advanced"
    },
    "CAN_D3_UC_POOL": {
      "Description": "Amount of memory in bytes to allocate for the DroneCAN memory pool. More memory is needed for higher CAN bus loads",
      "DisplayName": "CAN pool size",
      "Range": {
        "high": "16384",
        "low": "1024"
      },
      "User": "Advanced"
    },
    "CAN_D3_UC_RLY_RT": {
      "Description": "Maximum transmit rate for relay outputs, note that this rate is per message each message does 1 relay, so if with more relays will take longer to update at the same rate, a extra message will be sent when a relay changes state",
      "DisplayName": "DroneCAN relay output rate",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "CAN_D3_UC_S1_BD": {
      "Description": "Serial baud rate on remote CAN node",
      "DisplayName": "DroneCAN Serial default baud rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "CAN_D3_UC_S1_IDX": {
      "Description": "Serial port number on remote CAN node",
      "DisplayName": "DroneCAN Serial1 index",
      "Range": {
        "high": "100",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "CAN_D3_UC_S1_NOD": {
      "Description": "CAN remote node number for serial port",
      "DisplayName": "Serial CAN remote node number",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "CAN_D3_UC_S1_PRO": {
      "Description": "Serial protocol of DroneCAN serial port",
      "DisplayName": "Serial protocol of DroneCAN serial port",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "CAN_D3_UC_S2_BD": {
      "Description": "Serial baud rate on remote CAN node",
      "DisplayName": "DroneCAN Serial default baud rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "CAN_D3_UC_S2_IDX": {
      "Description": "Serial port number on remote CAN node",
      "DisplayName": "Serial port number on remote CAN node",
      "Range": {
        "high": "100",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "CAN_D3_UC_S2_NOD": {
      "Description": "CAN remote node number for serial port",
      "DisplayName": "Serial CAN remote node number",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "CAN_D3_UC_S2_PRO": {
      "Description": "Serial protocol of DroneCAN serial port",
      "DisplayName": "Serial protocol of DroneCAN serial port",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "CAN_D3_UC_S3_BD": {
      "Description": "Serial baud rate on remote CAN node",
      "DisplayName": "Serial baud rate on remote CAN node",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "CAN_D3_UC_S3_IDX": {
      "Description": "Serial port number on remote CAN node",
      "DisplayName": "Serial port number on remote CAN node",
      "Range": {
        "high": "100",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "CAN_D3_UC_S3_NOD": {
      "Description": "CAN node number for serial port",
      "DisplayName": "Serial CAN remote node number",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "CAN_D3_UC_S3_PRO": {
      "Description": "Serial protocol of DroneCAN serial port",
      "DisplayName": "Serial protocol of DroneCAN serial port",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "CAN_D3_UC_SER_EN": {
      "Description": "Enable DroneCAN virtual serial ports",
      "DisplayName": "DroneCAN Serial enable",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "CAN_D3_UC_SRV_BM": {
      "Bitmask": {
        "0": "Servo 1",
        "1": "Servo 2",
        "10": "Servo 11",
        "11": "Servo 12",
        "12": "Servo 13",
        "13": "Servo 14",
        "14": "Servo 15",
        "15": "Servo 16",
        "16": "Servo 17",
        "17": "Servo 18",
        "18": "Servo 19",
        "19": "Servo 20",
        "2": "Servo 3",
        "20": "Servo 21",
        "21": "Servo 22",
        "22": "Servo 23",
        "23": "Servo 24",
        "24": "Servo 25",
        "25": "Servo 26",
        "26": "Servo 27",
        "27": "Servo 28",
        "28": "Servo 29",
        "29": "Servo 30",
        "3": "Servo 4",
        "30": "Servo 31",
        "31": "Servo 32",
        "4": "Servo 5",
        "5": "Servo 6",
        "6": "Servo 7",
        "7": "Servo 8",
        "8": "Servo 9",
        "9": "Servo 10"
      },
      "Description": "Bitmask with one set for channel to be transmitted as a servo command over DroneCAN",
      "DisplayName": "Output channels to be transmitted as servo over DroneCAN"
    },
    "CAN_D3_UC_SRV_RT": {
      "Description": "Maximum transmit rate for servo outputs",
      "DisplayName": "Servo output rate",
      "Range": {
        "high": "200",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "CAN_P1_": {
    "CAN_P1_BITRATE": {
      "Description": "Bit rate can be set up to from 10000 to 1000000",
      "DisplayName": "Bitrate of CAN interface",
      "Range": {
        "high": "1000000",
        "low": "10000"
      },
      "User": "Advanced"
    },
    "CAN_P1_DRIVER": {
      "Description": "Enabling this option enables use of CAN buses.",
      "DisplayName": "Index of virtual driver to be used with physical CAN interface",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "First driver",
        "2": "Second driver",
        "3": "Third driver"
      }
    },
    "CAN_P1_FDBITRATE": {
      "Description": "Bit rate can be set up to from 1000000 to 8000000",
      "DisplayName": "Bitrate of CANFD interface",
      "User": "Advanced",
      "Values": {
        "1": "1M",
        "2": "2M",
        "4": "4M",
        "5": "5M",
        "8": "8M"
      }
    },
    "CAN_P1_OPTIONS": {
      "Bitmask": {
        "0": "LogAllFrames"
      },
      "Description": "CAN per-interface options",
      "DisplayName": "CAN per-interface options",
      "User": "Advanced"
    }
  },
  "CAN_P2_": {
    "CAN_P2_BITRATE": {
      "Description": "Bit rate can be set up to from 10000 to 1000000",
      "DisplayName": "Bitrate of CAN interface",
      "Range": {
        "high": "1000000",
        "low": "10000"
      },
      "User": "Advanced"
    },
    "CAN_P2_DRIVER": {
      "Description": "Enabling this option enables use of CAN buses.",
      "DisplayName": "Index of virtual driver to be used with physical CAN interface",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "First driver",
        "2": "Second driver",
        "3": "Third driver"
      }
    },
    "CAN_P2_FDBITRATE": {
      "Description": "Bit rate can be set up to from 1000000 to 8000000",
      "DisplayName": "Bitrate of CANFD interface",
      "User": "Advanced",
      "Values": {
        "1": "1M",
        "2": "2M",
        "4": "4M",
        "5": "5M",
        "8": "8M"
      }
    },
    "CAN_P2_OPTIONS": {
      "Bitmask": {
        "0": "LogAllFrames"
      },
      "Description": "CAN per-interface options",
      "DisplayName": "CAN per-interface options",
      "User": "Advanced"
    }
  },
  "CAN_P3_": {
    "CAN_P3_BITRATE": {
      "Description": "Bit rate can be set up to from 10000 to 1000000",
      "DisplayName": "Bitrate of CAN interface",
      "Range": {
        "high": "1000000",
        "low": "10000"
      },
      "User": "Advanced"
    },
    "CAN_P3_DRIVER": {
      "Description": "Enabling this option enables use of CAN buses.",
      "DisplayName": "Index of virtual driver to be used with physical CAN interface",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "First driver",
        "2": "Second driver",
        "3": "Third driver"
      }
    },
    "CAN_P3_FDBITRATE": {
      "Description": "Bit rate can be set up to from 1000000 to 8000000",
      "DisplayName": "Bitrate of CANFD interface",
      "User": "Advanced",
      "Values": {
        "1": "1M",
        "2": "2M",
        "4": "4M",
        "5": "5M",
        "8": "8M"
      }
    },
    "CAN_P3_OPTIONS": {
      "Bitmask": {
        "0": "LogAllFrames"
      },
      "Description": "CAN per-interface options",
      "DisplayName": "CAN per-interface options",
      "User": "Advanced"
    }
  },
  "CAN_SLCAN_": {
    "CAN_SLCAN_CPORT": {
      "Description": "CAN Interface ID to be routed to SLCAN, 0 means no routing",
      "DisplayName": "SLCAN Route",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "First interface",
        "2": "Second interface"
      }
    },
    "CAN_SLCAN_SDELAY": {
      "Description": "Duration after which slcan starts after setting SERNUM in seconds.",
      "DisplayName": "SLCAN Start Delay",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "CAN_SLCAN_SERNUM": {
      "Description": "Serial Port ID to be used for temporary SLCAN iface, -1 means no temporary serial. This parameter is automatically reset on reboot or on timeout. See CAN_SLCAN_TIMOUT for timeout details",
      "DisplayName": "SLCAN Serial Port",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "CAN_SLCAN_TIMOUT": {
      "Description": "Duration of inactivity after which SLCAN is switched back to original driver in seconds.",
      "DisplayName": "SLCAN Timeout",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "CIRCLE_": {
    "CIRCLE_OPTIONS": {
      "Bitmask": {
        "0": "RC pitch and roll control radius and rate",
        "1": "Face direction of travel",
        "2": "Start at center rather than on perimeter",
        "3": "Make Mount ROI the center of the circle"
      },
      "Description": "Circle behaviour options",
      "DisplayName": "Circle options",
      "User": "Standard"
    },
    "CIRCLE_RADIUS_M": {
      "Description": "Radius of the circle the vehicle will fly when in Circle flight mode",
      "DisplayName": "Circle Radius",
      "Increment": "1",
      "Range": {
        "high": "2000",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "CIRCLE_RATE": {
      "Description": "Circle mode's maximum turn rate in deg/sec.  Positive to turn clockwise, negative for counter clockwise. Final circle rate is also limited by speed and acceleration settings.",
      "DisplayName": "Circle rate",
      "Increment": "1",
      "Range": {
        "high": "90",
        "low": "-90"
      },
      "Units": "deg/s",
      "User": "Standard"
    }
  },
  "COMPASS_": {
    "COMPASS_AUTODEC": {
      "Description": "Enable or disable the automatic calculation of the declination based on gps location",
      "DisplayName": "Auto Declination",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "COMPASS_AUTO_ROT": {
      "Description": "When enabled this will automatically check the orientation of compasses on successful completion of compass calibration. If set to 2 then external compasses will have their orientation automatically corrected.",
      "DisplayName": "Automatically check orientation",
      "Values": {
        "0": "Disabled",
        "1": "CheckOnly",
        "2": "CheckAndFix",
        "3": "use same tolerance to auto rotate 45 deg rotations"
      }
    },
    "COMPASS_CAL_FIT": {
      "Description": "This controls the fitness level required for a successful compass calibration. A lower value makes for a stricter fit (less likely to pass). This is the value used for the primary magnetometer. Other magnetometers get double the value.",
      "DisplayName": "Compass calibration fitness",
      "Increment": "0.1",
      "Range": {
        "high": "32",
        "low": "4"
      },
      "User": "Advanced",
      "Values": {
        "16": "Default",
        "32": "Relaxed",
        "4": "Very Strict",
        "8": "Strict"
      }
    },
    "COMPASS_DEC": {
      "Description": "An angle to compensate between the true north and magnetic north",
      "DisplayName": "Compass declination",
      "Increment": "0.01",
      "Range": {
        "high": "3.142",
        "low": "-3.142"
      },
      "Units": "rad",
      "User": "Standard"
    },
    "COMPASS_DEV_ID": {
      "Description": "Compass device id.  Automatically detected, do not set manually",
      "DisplayName": "Compass device id",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "COMPASS_DEV_ID2": {
      "Description": "Second compass's device id.  Automatically detected, do not set manually",
      "DisplayName": "Compass2 device id",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "COMPASS_DEV_ID3": {
      "Description": "Third compass's device id.  Automatically detected, do not set manually",
      "DisplayName": "Compass3 device id",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "COMPASS_DEV_ID4": {
      "Description": "Extra 4th compass's device id.  Automatically detected, do not set manually",
      "DisplayName": "Compass4 device id",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "COMPASS_DEV_ID5": {
      "Description": "Extra 5th compass's device id.  Automatically detected, do not set manually",
      "DisplayName": "Compass5 device id",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "COMPASS_DEV_ID6": {
      "Description": "Extra 6th compass's device id.  Automatically detected, do not set manually",
      "DisplayName": "Compass6 device id",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "COMPASS_DEV_ID7": {
      "Description": "Extra 7th compass's device id.  Automatically detected, do not set manually",
      "DisplayName": "Compass7 device id",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "COMPASS_DEV_ID8": {
      "Description": "Extra 8th compass's device id.  Automatically detected, do not set manually",
      "DisplayName": "Compass8 device id",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "COMPASS_DIA2_X": {
      "Calibration": "1",
      "Description": "DIA_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass2 soft-iron diagonal X component",
      "User": "Advanced"
    },
    "COMPASS_DIA2_Y": {
      "Calibration": "1",
      "Description": "DIA_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass2 soft-iron diagonal Y component",
      "User": "Advanced"
    },
    "COMPASS_DIA2_Z": {
      "Calibration": "1",
      "Description": "DIA_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass2 soft-iron diagonal Z component",
      "User": "Advanced"
    },
    "COMPASS_DIA3_X": {
      "Calibration": "1",
      "Description": "DIA_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass3 soft-iron diagonal X component",
      "User": "Advanced"
    },
    "COMPASS_DIA3_Y": {
      "Calibration": "1",
      "Description": "DIA_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass3 soft-iron diagonal Y component",
      "User": "Advanced"
    },
    "COMPASS_DIA3_Z": {
      "Calibration": "1",
      "Description": "DIA_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass3 soft-iron diagonal Z component",
      "User": "Advanced"
    },
    "COMPASS_DIA_X": {
      "Calibration": "1",
      "Description": "DIA_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass soft-iron diagonal X component",
      "User": "Advanced"
    },
    "COMPASS_DIA_Y": {
      "Calibration": "1",
      "Description": "DIA_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass soft-iron diagonal Y component",
      "User": "Advanced"
    },
    "COMPASS_DIA_Z": {
      "Calibration": "1",
      "Description": "DIA_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass soft-iron diagonal Z component",
      "User": "Advanced"
    },
    "COMPASS_DISBLMSK": {
      "Bitmask": {
        "0": "HMC5883",
        "1": "LSM303D",
        "11": "DroneCAN",
        "12": "QMC5883",
        "14": "MAG3110",
        "15": "IST8308",
        "16": "RM3100",
        "17": "MSP",
        "18": "ExternalAHRS",
        "19": "MMC5XX3",
        "2": "AK8963",
        "20": "QMC5883P",
        "21": "BMM350",
        "22": "IIS2MDC or LIS2MDL",
        "24": "AF9838",
        "25": "AK09940A",
        "3": "BMM150",
        "4": "LSM9DS1",
        "5": "LIS3MDL",
        "6": "AK0991x",
        "7": "IST8310",
        "8": "ICM20948",
        "9": "MMC3416"
      },
      "Description": "This is a bitmask of driver types to disable. If a driver type is set in this mask then that driver will not try to find a sensor at startup",
      "DisplayName": "Compass disable driver type mask",
      "User": "Advanced"
    },
    "COMPASS_ENABLE": {
      "Description": "Setting this to Enabled(1) will enable the compass. Setting this to Disabled(0) will disable the compass. Note that this is separate from COMPASS_USE. This will enable the low level senor, and will enable logging of magnetometer data. To use the compass for navigation you must also set COMPASS_USE to 1.",
      "DisplayName": "Enable Compass",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "COMPASS_EXTERN2": {
      "Description": "Configure second compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",
      "DisplayName": "Compass2 is attached via an external cable",
      "User": "Advanced",
      "Values": {
        "0": "Internal",
        "1": "External",
        "2": "ForcedExternal"
      }
    },
    "COMPASS_EXTERN3": {
      "Description": "Configure third compass so it is attached externally. This is auto-detected on most boards. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",
      "DisplayName": "Compass3 is attached via an external cable",
      "User": "Advanced",
      "Values": {
        "0": "Internal",
        "1": "External",
        "2": "ForcedExternal"
      }
    },
    "COMPASS_EXTERNAL": {
      "Description": "Configure compass so it is attached externally. This is auto-detected on most boards. Set to 1 if the compass is externally connected. When externally connected the COMPASS_ORIENT option operates independently of the AHRS_ORIENTATION board orientation option. If set to 0 or 1 then auto-detection by bus connection can override the value. If set to 2 then auto-detection will be disabled.",
      "DisplayName": "Compass is attached via an external cable",
      "User": "Advanced",
      "Values": {
        "0": "Internal",
        "1": "External",
        "2": "ForcedExternal"
      }
    },
    "COMPASS_FLTR_RNG": {
      "Description": "This sets the range around the average value that new samples must be within to be accepted. This can help reduce the impact of noise on sensors that are on long I2C cables. The value is a percentage from the average value. A value of zero disables this filter.",
      "DisplayName": "Range in which sample is accepted",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "%"
    },
    "COMPASS_LEARN": {
      "Description": "Enable or disable the automatic learning of compass offsets. EKF-Learning uses the offsets learnt by the active EKF state estimator; those offsets are saved when you disarm the vehicle, and it does nothing on firmware built without the CompassLearnCopyFromEKF feature. If InFlight learning is enabled then the compass will automatically start learning once a flight starts (must be armed). While InFlight learning is running you cannot use position control modes.",
      "DisplayName": "Learn compass offsets automatically",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "2": "EKF-Learning",
        "3": "InFlight-Learning"
      }
    },
    "COMPASS_MOT2_X": {
      "Calibration": "1",
      "Description": "Multiplied by the current throttle and added to compass2's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",
      "DisplayName": "Motor interference compensation to compass2 for body frame X axis",
      "Increment": "1",
      "Range": {
        "high": "1000",
        "low": "-1000"
      },
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "COMPASS_MOT2_Y": {
      "Calibration": "1",
      "Description": "Multiplied by the current throttle and added to compass2's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",
      "DisplayName": "Motor interference compensation to compass2 for body frame Y axis",
      "Increment": "1",
      "Range": {
        "high": "1000",
        "low": "-1000"
      },
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "COMPASS_MOT2_Z": {
      "Calibration": "1",
      "Description": "Multiplied by the current throttle and added to compass2's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",
      "DisplayName": "Motor interference compensation to compass2 for body frame Z axis",
      "Increment": "1",
      "Range": {
        "high": "1000",
        "low": "-1000"
      },
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "COMPASS_MOT3_X": {
      "Calibration": "1",
      "Description": "Multiplied by the current throttle and added to compass3's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",
      "DisplayName": "Motor interference compensation to compass3 for body frame X axis",
      "Increment": "1",
      "Range": {
        "high": "1000",
        "low": "-1000"
      },
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "COMPASS_MOT3_Y": {
      "Calibration": "1",
      "Description": "Multiplied by the current throttle and added to compass3's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",
      "DisplayName": "Motor interference compensation to compass3 for body frame Y axis",
      "Increment": "1",
      "Range": {
        "high": "1000",
        "low": "-1000"
      },
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "COMPASS_MOT3_Z": {
      "Calibration": "1",
      "Description": "Multiplied by the current throttle and added to compass3's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",
      "DisplayName": "Motor interference compensation to compass3 for body frame Z axis",
      "Increment": "1",
      "Range": {
        "high": "1000",
        "low": "-1000"
      },
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "COMPASS_MOTCT": {
      "Calibration": "1",
      "Description": "Set motor interference compensation type to disabled, throttle or current.  Do not change manually.",
      "DisplayName": "Motor interference compensation type",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Use Throttle",
        "2": "Use Current"
      }
    },
    "COMPASS_MOT_X": {
      "Calibration": "1",
      "Description": "Multiplied by the current throttle and added to the compass's x-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",
      "DisplayName": "Motor interference compensation for body frame X axis",
      "Increment": "1",
      "Range": {
        "high": "1000",
        "low": "-1000"
      },
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "COMPASS_MOT_Y": {
      "Calibration": "1",
      "Description": "Multiplied by the current throttle and added to the compass's y-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",
      "DisplayName": "Motor interference compensation for body frame Y axis",
      "Increment": "1",
      "Range": {
        "high": "1000",
        "low": "-1000"
      },
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "COMPASS_MOT_Z": {
      "Calibration": "1",
      "Description": "Multiplied by the current throttle and added to the compass's z-axis values to compensate for motor interference (Offset per Amp or at Full Throttle)",
      "DisplayName": "Motor interference compensation for body frame Z axis",
      "Increment": "1",
      "Range": {
        "high": "1000",
        "low": "-1000"
      },
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "COMPASS_ODI2_X": {
      "Calibration": "1",
      "Description": "ODI_X in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass2 soft-iron off-diagonal X component",
      "User": "Advanced"
    },
    "COMPASS_ODI2_Y": {
      "Calibration": "1",
      "Description": "ODI_Y in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass2 soft-iron off-diagonal Y component",
      "User": "Advanced"
    },
    "COMPASS_ODI2_Z": {
      "Calibration": "1",
      "Description": "ODI_Z in the compass2 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass2 soft-iron off-diagonal Z component",
      "User": "Advanced"
    },
    "COMPASS_ODI3_X": {
      "Calibration": "1",
      "Description": "ODI_X in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass3 soft-iron off-diagonal X component",
      "User": "Advanced"
    },
    "COMPASS_ODI3_Y": {
      "Calibration": "1",
      "Description": "ODI_Y in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass3 soft-iron off-diagonal Y component",
      "User": "Advanced"
    },
    "COMPASS_ODI3_Z": {
      "Calibration": "1",
      "Description": "ODI_Z in the compass3 soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass3 soft-iron off-diagonal Z component",
      "User": "Advanced"
    },
    "COMPASS_ODI_X": {
      "Calibration": "1",
      "Description": "ODI_X in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass soft-iron off-diagonal X component",
      "User": "Advanced"
    },
    "COMPASS_ODI_Y": {
      "Calibration": "1",
      "Description": "ODI_Y in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass soft-iron off-diagonal Y component",
      "User": "Advanced"
    },
    "COMPASS_ODI_Z": {
      "Calibration": "1",
      "Description": "ODI_Z in the compass soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Compass soft-iron off-diagonal Z component",
      "User": "Advanced"
    },
    "COMPASS_OFFS_MAX": {
      "Description": "This sets the maximum allowed compass offset in calibration and arming checks",
      "DisplayName": "Compass maximum offset",
      "Increment": "1",
      "Range": {
        "high": "3000",
        "low": "500"
      },
      "User": "Advanced"
    },
    "COMPASS_OFS2_X": {
      "Calibration": "1",
      "Description": "Offset to be added to compass2's x-axis values to compensate for metal in the frame",
      "DisplayName": "Compass2 offsets in milligauss on the X axis",
      "Increment": "1",
      "Range": {
        "high": "400",
        "low": "-400"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "COMPASS_OFS2_Y": {
      "Calibration": "1",
      "Description": "Offset to be added to compass2's y-axis values to compensate for metal in the frame",
      "DisplayName": "Compass2 offsets in milligauss on the Y axis",
      "Increment": "1",
      "Range": {
        "high": "400",
        "low": "-400"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "COMPASS_OFS2_Z": {
      "Calibration": "1",
      "Description": "Offset to be added to compass2's z-axis values to compensate for metal in the frame",
      "DisplayName": "Compass2 offsets in milligauss on the Z axis",
      "Increment": "1",
      "Range": {
        "high": "400",
        "low": "-400"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "COMPASS_OFS3_X": {
      "Calibration": "1",
      "Description": "Offset to be added to compass3's x-axis values to compensate for metal in the frame",
      "DisplayName": "Compass3 offsets in milligauss on the X axis",
      "Increment": "1",
      "Range": {
        "high": "400",
        "low": "-400"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "COMPASS_OFS3_Y": {
      "Calibration": "1",
      "Description": "Offset to be added to compass3's y-axis values to compensate for metal in the frame",
      "DisplayName": "Compass3 offsets in milligauss on the Y axis",
      "Increment": "1",
      "Range": {
        "high": "400",
        "low": "-400"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "COMPASS_OFS3_Z": {
      "Calibration": "1",
      "Description": "Offset to be added to compass3's z-axis values to compensate for metal in the frame",
      "DisplayName": "Compass3 offsets in milligauss on the Z axis",
      "Increment": "1",
      "Range": {
        "high": "400",
        "low": "-400"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "COMPASS_OFS_X": {
      "Calibration": "1",
      "Description": "Offset to be added to the compass x-axis values to compensate for metal in the frame",
      "DisplayName": "Compass offsets in milligauss on the X axis",
      "Increment": "1",
      "Range": {
        "high": "400",
        "low": "-400"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "COMPASS_OFS_Y": {
      "Calibration": "1",
      "Description": "Offset to be added to the compass y-axis values to compensate for metal in the frame",
      "DisplayName": "Compass offsets in milligauss on the Y axis",
      "Increment": "1",
      "Range": {
        "high": "400",
        "low": "-400"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "COMPASS_OFS_Z": {
      "Calibration": "1",
      "Description": "Offset to be added to the compass z-axis values to compensate for metal in the frame",
      "DisplayName": "Compass offsets in milligauss on the Z axis",
      "Increment": "1",
      "Range": {
        "high": "400",
        "low": "-400"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "COMPASS_OPTIONS": {
      "Bitmask": {
        "0": "CalRequireGPS",
        "1": "Allow missing DroneCAN compasses to be automaticaly replaced (calibration still required)"
      },
      "Description": "This sets options to change the behaviour of the compass",
      "DisplayName": "Compass options",
      "User": "Advanced"
    },
    "COMPASS_ORIENT": {
      "Description": "The orientation of the first external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",
      "DisplayName": "Compass orientation",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Yaw45",
        "10": "Yaw90Roll180",
        "100": "Custom 4.1 and older",
        "101": "Custom 1",
        "102": "Custom 2",
        "11": "Yaw135Roll180",
        "12": "Pitch180",
        "13": "Yaw225Roll180",
        "14": "Yaw270Roll180",
        "15": "Yaw315Roll180",
        "16": "Roll90",
        "17": "Yaw45Roll90",
        "18": "Yaw90Roll90",
        "19": "Yaw135Roll90",
        "2": "Yaw90",
        "20": "Roll270",
        "21": "Yaw45Roll270",
        "22": "Yaw90Roll270",
        "23": "Yaw135Roll270",
        "24": "Pitch90",
        "25": "Pitch270",
        "26": "Yaw90Pitch180",
        "27": "Yaw270Pitch180",
        "28": "Pitch90Roll90",
        "29": "Pitch90Roll180",
        "3": "Yaw135",
        "30": "Pitch90Roll270",
        "31": "Pitch180Roll90",
        "32": "Pitch180Roll270",
        "33": "Pitch270Roll90",
        "34": "Pitch270Roll180",
        "35": "Pitch270Roll270",
        "36": "Yaw90Pitch180Roll90",
        "37": "Yaw270Roll90",
        "38": "Yaw293Pitch68Roll180",
        "39": "Pitch315",
        "4": "Yaw180",
        "40": "Pitch315Roll90",
        "42": "Roll45",
        "43": "Roll315",
        "5": "Yaw225",
        "6": "Yaw270",
        "7": "Yaw315",
        "8": "Roll180",
        "9": "Yaw45Roll180"
      }
    },
    "COMPASS_ORIENT2": {
      "Description": "The orientation of a second external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",
      "DisplayName": "Compass2 orientation",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Yaw45",
        "10": "Yaw90Roll180",
        "100": "Custom 4.1 and older",
        "101": "Custom 1",
        "102": "Custom 2",
        "11": "Yaw135Roll180",
        "12": "Pitch180",
        "13": "Yaw225Roll180",
        "14": "Yaw270Roll180",
        "15": "Yaw315Roll180",
        "16": "Roll90",
        "17": "Yaw45Roll90",
        "18": "Yaw90Roll90",
        "19": "Yaw135Roll90",
        "2": "Yaw90",
        "20": "Roll270",
        "21": "Yaw45Roll270",
        "22": "Yaw90Roll270",
        "23": "Yaw135Roll270",
        "24": "Pitch90",
        "25": "Pitch270",
        "26": "Yaw90Pitch180",
        "27": "Yaw270Pitch180",
        "28": "Pitch90Roll90",
        "29": "Pitch90Roll180",
        "3": "Yaw135",
        "30": "Pitch90Roll270",
        "31": "Pitch180Roll90",
        "32": "Pitch180Roll270",
        "33": "Pitch270Roll90",
        "34": "Pitch270Roll180",
        "35": "Pitch270Roll270",
        "36": "Yaw90Pitch180Roll90",
        "37": "Yaw270Roll90",
        "38": "Yaw293Pitch68Roll180",
        "39": "Pitch315",
        "4": "Yaw180",
        "40": "Pitch315Roll90",
        "42": "Roll45",
        "43": "Roll315",
        "5": "Yaw225",
        "6": "Yaw270",
        "7": "Yaw315",
        "8": "Roll180",
        "9": "Yaw45Roll180"
      }
    },
    "COMPASS_ORIENT3": {
      "Description": "The orientation of a third external compass relative to the vehicle frame. This value will be ignored unless this compass is set as an external compass. When set correctly in the northern hemisphere, pointing the nose and right side down should increase the MagX and MagY values respectively. Rolling the vehicle upside down should decrease the MagZ value. For southern hemisphere, switch increase and decrease. NOTE: For internal compasses, AHRS_ORIENT is used. The label for each option is specified in the order of rotations for that orientation. Firmware versions 4.2 and prior can use a CUSTOM (100) rotation to set the COMPASS_CUS_ROLL/PIT/YAW angles for Compass orientation. Later versions provide two general custom rotations which can be used, Custom 1 and Custom 2, with CUST_1_ROLL/PIT/YAW or CUST_2_ROLL/PIT/YAW angles.",
      "DisplayName": "Compass3 orientation",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Yaw45",
        "10": "Yaw90Roll180",
        "100": "Custom 4.1 and older",
        "101": "Custom 1",
        "102": "Custom 2",
        "11": "Yaw135Roll180",
        "12": "Pitch180",
        "13": "Yaw225Roll180",
        "14": "Yaw270Roll180",
        "15": "Yaw315Roll180",
        "16": "Roll90",
        "17": "Yaw45Roll90",
        "18": "Yaw90Roll90",
        "19": "Yaw135Roll90",
        "2": "Yaw90",
        "20": "Roll270",
        "21": "Yaw45Roll270",
        "22": "Yaw90Roll270",
        "23": "Yaw135Roll270",
        "24": "Pitch90",
        "25": "Pitch270",
        "26": "Yaw90Pitch180",
        "27": "Yaw270Pitch180",
        "28": "Pitch90Roll90",
        "29": "Pitch90Roll180",
        "3": "Yaw135",
        "30": "Pitch90Roll270",
        "31": "Pitch180Roll90",
        "32": "Pitch180Roll270",
        "33": "Pitch270Roll90",
        "34": "Pitch270Roll180",
        "35": "Pitch270Roll270",
        "36": "Yaw90Pitch180Roll90",
        "37": "Yaw270Roll90",
        "38": "Yaw293Pitch68Roll180",
        "39": "Pitch315",
        "4": "Yaw180",
        "40": "Pitch315Roll90",
        "42": "Roll45",
        "43": "Roll315",
        "5": "Yaw225",
        "6": "Yaw270",
        "7": "Yaw315",
        "8": "Roll180",
        "9": "Yaw45Roll180"
      }
    },
    "COMPASS_PRIO1_ID": {
      "Description": "Compass device id with 1st order priority, set automatically if 0. Reboot required after change.",
      "DisplayName": "Compass device id with 1st order priority",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "COMPASS_PRIO2_ID": {
      "Description": "Compass device id with 2nd order priority, set automatically if 0. Reboot required after change.",
      "DisplayName": "Compass device id with 2nd order priority",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "COMPASS_PRIO3_ID": {
      "Description": "Compass device id with 3rd order priority, set automatically if 0. Reboot required after change.",
      "DisplayName": "Compass device id with 3rd order priority",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "COMPASS_SCALE": {
      "Description": "Scaling factor for first compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",
      "DisplayName": "Compass1 scale factor",
      "Range": {
        "high": "1.3",
        "low": "0"
      },
      "User": "Standard"
    },
    "COMPASS_SCALE2": {
      "Description": "Scaling factor for 2nd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",
      "DisplayName": "Compass2 scale factor",
      "Range": {
        "high": "1.3",
        "low": "0"
      },
      "User": "Standard"
    },
    "COMPASS_SCALE3": {
      "Description": "Scaling factor for 3rd compass to compensate for sensor scaling errors. If this is 0 then no scaling is done",
      "DisplayName": "Compass3 scale factor",
      "Range": {
        "high": "1.3",
        "low": "0"
      },
      "User": "Standard"
    },
    "COMPASS_USE": {
      "Description": "Enable or disable the use of the compass (instead of the GPS) for determining heading",
      "DisplayName": "Use compass for yaw",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "COMPASS_USE2": {
      "Description": "Enable or disable the secondary compass for determining heading.",
      "DisplayName": "Compass2 used for yaw",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "COMPASS_USE3": {
      "Description": "Enable or disable the tertiary compass for determining heading.",
      "DisplayName": "Compass3 used for yaw",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    }
  },
  "COMPASS_PMOT": {
    "COMPASS_PMOT1_X": {
      "Description": "Compensation for X axis of motor1",
      "DisplayName": "Compass per-motor1 X",
      "User": "Advanced"
    },
    "COMPASS_PMOT1_Y": {
      "Description": "Compensation for Y axis of motor1",
      "DisplayName": "Compass per-motor1 Y",
      "User": "Advanced"
    },
    "COMPASS_PMOT1_Z": {
      "Description": "Compensation for Z axis of motor1",
      "DisplayName": "Compass per-motor1 Z",
      "User": "Advanced"
    },
    "COMPASS_PMOT2_X": {
      "Description": "Compensation for X axis of motor2",
      "DisplayName": "Compass per-motor2 X",
      "User": "Advanced"
    },
    "COMPASS_PMOT2_Y": {
      "Description": "Compensation for Y axis of motor2",
      "DisplayName": "Compass per-motor2 Y",
      "User": "Advanced"
    },
    "COMPASS_PMOT2_Z": {
      "Description": "Compensation for Z axis of motor2",
      "DisplayName": "Compass per-motor2 Z",
      "User": "Advanced"
    },
    "COMPASS_PMOT3_X": {
      "Description": "Compensation for X axis of motor3",
      "DisplayName": "Compass per-motor3 X",
      "User": "Advanced"
    },
    "COMPASS_PMOT3_Y": {
      "Description": "Compensation for Y axis of motor3",
      "DisplayName": "Compass per-motor3 Y",
      "User": "Advanced"
    },
    "COMPASS_PMOT3_Z": {
      "Description": "Compensation for Z axis of motor3",
      "DisplayName": "Compass per-motor3 Z",
      "User": "Advanced"
    },
    "COMPASS_PMOT4_X": {
      "Description": "Compensation for X axis of motor4",
      "DisplayName": "Compass per-motor4 X",
      "User": "Advanced"
    },
    "COMPASS_PMOT4_Y": {
      "Description": "Compensation for Y axis of motor4",
      "DisplayName": "Compass per-motor4 Y",
      "User": "Advanced"
    },
    "COMPASS_PMOT4_Z": {
      "Description": "Compensation for Z axis of motor4",
      "DisplayName": "Compass per-motor4 Z",
      "User": "Advanced"
    },
    "COMPASS_PMOT_EN": {
      "Description": "This enables per-motor compass corrections",
      "DisplayName": "per-motor compass correction enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "COMPASS_PMOT_EXP": {
      "Description": "This is the exponential correction for the power output of the motor for per-motor compass correction",
      "DisplayName": "per-motor exponential correction",
      "Increment": "0.01",
      "Range": {
        "high": "2",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "CUST_ROT": {
    "CUST_ROT_ENABLE": {
      "Description": "This enables custom rotations",
      "DisplayName": "Enable Custom rotations",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    }
  },
  "CUST_ROT1_": {
    "CUST_ROT1_PITCH": {
      "Description": "Custom euler pitch, euler 321 (yaw, pitch, roll) ordering",
      "DisplayName": "Custom pitch",
      "RebootRequired": "True",
      "Units": "deg"
    },
    "CUST_ROT1_ROLL": {
      "Description": "Custom euler roll, euler 321 (yaw, pitch, roll) ordering",
      "DisplayName": "Custom roll",
      "RebootRequired": "True",
      "Units": "deg"
    },
    "CUST_ROT1_YAW": {
      "Description": "Custom euler yaw, euler 321 (yaw, pitch, roll) ordering",
      "DisplayName": "Custom yaw",
      "RebootRequired": "True",
      "Units": "deg"
    }
  },
  "CUST_ROT2_": {
    "CUST_ROT2_PITCH": {
      "Description": "Custom euler pitch, euler 321 (yaw, pitch, roll) ordering",
      "DisplayName": "Custom pitch",
      "RebootRequired": "True",
      "Units": "deg"
    },
    "CUST_ROT2_ROLL": {
      "Description": "Custom euler roll, euler 321 (yaw, pitch, roll) ordering",
      "DisplayName": "Custom roll",
      "RebootRequired": "True",
      "Units": "deg"
    },
    "CUST_ROT2_YAW": {
      "Description": "Custom euler yaw, euler 321 (yaw, pitch, roll) ordering",
      "DisplayName": "Custom yaw",
      "RebootRequired": "True",
      "Units": "deg"
    }
  },
  "DDS": {
    "DDS_DOMAIN_ID": {
      "Description": "Set the ROS_DOMAIN_ID",
      "DisplayName": "DDS DOMAIN ID",
      "Range": {
        "high": "232",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Standard"
    },
    "DDS_ENABLE": {
      "Description": "Enable DDS subsystem",
      "DisplayName": "DDS enable",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "DDS_MAX_RETRY": {
      "Description": "The maximum number of times the DDS client will attempt to ping the XRCE agent before exiting. Set to 0 to allow unlimited retries.",
      "DisplayName": "DDS ping max attempts",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Standard"
    },
    "DDS_TIMEOUT_MS": {
      "Description": "The time in milliseconds the DDS client will wait for a response from the XRCE agent before reattempting.",
      "DisplayName": "DDS ping timeout",
      "Increment": "1",
      "Range": {
        "high": "10000",
        "low": "1"
      },
      "RebootRequired": "True",
      "Units": "ms",
      "User": "Standard"
    },
    "DDS_UDP_PORT": {
      "Description": "UDP port number for DDS",
      "DisplayName": "DDS UDP port",
      "Range": {
        "high": "65535",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Standard"
    },
    "DDS_USE_NS": {
      "Description": "When enabled, ROS 2 topic and service names include a v<MAV_SYSID> segment",
      "DisplayName": "DDS namespace",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    }
  },
  "DDS_IP": {
    "DDS_IP0": {
      "Description": "IPv4 address. Example: 192.xxx.xxx.xxx",
      "DisplayName": "IPv4 Address 1st byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "DDS_IP1": {
      "Description": "IPv4 address. Example: xxx.168.xxx.xxx",
      "DisplayName": "IPv4 Address 2nd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "DDS_IP2": {
      "Description": "IPv4 address. Example: xxx.xxx.144.xxx",
      "DisplayName": "IPv4 Address 3rd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "DDS_IP3": {
      "Description": "IPv4 address. Example: xxx.xxx.xxx.14",
      "DisplayName": "IPv4 Address 4th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    }
  },
  "DID_": {
    "DID_BARO_ACC": {
      "Description": "Barometer Vertical Accuracy when installed in the vehicle. Note this is dependent upon installation conditions and thus disabled by default",
      "DisplayName": "Barometer vertical accuraacy",
      "Units": "m",
      "User": "Advanced"
    },
    "DID_CANDRIVER": {
      "Description": "DroneCAN driver index, 0 to disable DroneCAN",
      "DisplayName": "DroneCAN driver number",
      "Values": {
        "0": "Disabled",
        "1": "Driver1",
        "2": "Driver2"
      }
    },
    "DID_ENABLE": {
      "Description": "Enable ODID subsystem",
      "DisplayName": "Enable ODID subsystem",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "DID_MAVPORT": {
      "Description": "Serial port number to send OpenDroneID MAVLink messages to. Can be -1 if using DroneCAN.",
      "DisplayName": "MAVLink serial port",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "DID_OPTIONS": {
      "Bitmask": {
        "0": "EnforcePreArmChecks",
        "1": "AllowNonGPSPosition",
        "2": "LockUASIDOnFirstBasicIDRx"
      },
      "Description": "Options for OpenDroneID subsystem",
      "DisplayName": "OpenDroneID options"
    }
  },
  "EAHRS": {
    "EAHRS_LOG_RATE": {
      "Description": "Logging rate for EAHRS devices",
      "DisplayName": "AHRS logging rate",
      "Units": "Hz",
      "User": "Standard"
    },
    "EAHRS_OPTIONS": {
      "Bitmask": {
        "0": "Vector Nav use uncompensated values for accel gyro and mag",
        "1": "SBG uses EKF as GNSS",
        "2": "SensAItion used as AHRS"
      },
      "Description": "External AHRS options bitmask",
      "DisplayName": "External AHRS options",
      "User": "Standard"
    },
    "EAHRS_RATE": {
      "Description": "Requested rate for AHRS device",
      "DisplayName": "AHRS data rate",
      "Units": "Hz",
      "User": "Standard"
    },
    "EAHRS_SENSORS": {
      "Bitmask": {
        "0": "GPS",
        "1": "IMU",
        "2": "Baro",
        "3": "Compass"
      },
      "Description": "External AHRS sensors bitmask",
      "DisplayName": "External AHRS sensors",
      "User": "Advanced"
    },
    "EAHRS_TYPE": {
      "Description": "Type of AHRS device",
      "DisplayName": "AHRS type",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "VectorNav",
        "10": "Aeron",
        "11": "SensAItion",
        "2": "MicroStrain5",
        "5": "InertialLabs",
        "6": "Trimble GSOF",
        "7": "MicroStrain7",
        "8": "SBG"
      }
    }
  },
  "EFI": {
    "EFI_COEF1": {
      "Description": "Used to calibrate fuel flow for MS protocol (Slope). This should be calculated from a log at constant fuel usage rate. Plot (ECYL[0].InjT*EFI.Rpm)/600.0 to get the duty_cycle. Measure actual fuel usage in cm^3/min, and set EFI_COEF1 = fuel_usage_cm3permin / duty_cycle",
      "DisplayName": "EFI Calibration Coefficient 1",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "User": "Advanced"
    },
    "EFI_COEF2": {
      "Description": "Used to calibrate fuel flow for MS protocol (Offset). This can be used to correct for a non-zero offset in the fuel consumption calculation of EFI_COEF1",
      "DisplayName": "EFI Calibration Coefficient 2",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "EFI_FUEL_DENS": {
      "Description": "Used to calculate fuel consumption",
      "DisplayName": "ECU Fuel Density",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "Units": "kg/m/m/m",
      "User": "Advanced"
    },
    "EFI_TYPE": {
      "Description": "What method of communication is used for EFI #1",
      "DisplayName": "EFI communication type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Serial-MS",
        "2": "NWPMU",
        "3": "Serial-Lutan",
        "4": "Loweheiser",
        "5": "DroneCAN",
        "6": "Currawong-ECU",
        "7": "Scripting",
        "8": "Hirth",
        "9": "MAVLink"
      }
    }
  },
  "EFI_THRLIN": {
    "EFI_THRLIN_COEF1": {
      "Description": "First Order Polynomial Coefficient. (=1, if throttle is first order polynomial trendline)",
      "DisplayName": "Throttle linearisation - First Order",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EFI_THRLIN_COEF2": {
      "Description": "Second Order Polynomial Coefficient (=0, if throttle is second order polynomial trendline)",
      "DisplayName": "Throttle linearisation - Second Order",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EFI_THRLIN_COEF3": {
      "Description": "Third Order Polynomial Coefficient. (=0, if throttle is third order polynomial trendline)",
      "DisplayName": "Throttle linearisation - Third Order",
      "Range": {
        "high": "1",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EFI_THRLIN_EN": {
      "Description": "Enable EFI throttle linearisation",
      "DisplayName": "Enable throttle linearisation",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EFI_THRLIN_OFS": {
      "Description": "Offset for throttle linearization",
      "DisplayName": "throttle linearization offset",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "EK2_": {
    "EK2_ABIAS_P_NSE": {
      "Description": "This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",
      "DisplayName": "Accelerometer bias stability (m/s^3)",
      "Range": {
        "high": "0.005",
        "low": "0.00001"
      },
      "Units": "m/s/s/s",
      "User": "Advanced"
    },
    "EK2_ACC_P_NSE": {
      "Description": "This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",
      "DisplayName": "Accelerometer noise (m/s^2)",
      "Increment": "0.01",
      "Range": {
        "high": "1.0",
        "low": "0.01"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "EK2_ALT_M_NSE": {
      "Description": "This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors.",
      "DisplayName": "Altitude measurement noise (m)",
      "Increment": "0.1",
      "Range": {
        "high": "10.0",
        "low": "0.1"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK2_ALT_SOURCE": {
      "Description": "Primary height sensor used by the EKF. If a sensor other than Baro is selected and becomes unavailable, then the Baro sensor will be used as a fallback. NOTE: The EK2_RNG_USE_HGT parameter can be used to switch to range-finder when close to the ground in conjunction with EK2_ALT_SOURCE = 0 or 2 (Baro or GPS).",
      "DisplayName": "Primary altitude sensor source",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Use Baro",
        "1": "Use Range Finder",
        "2": "Use GPS",
        "3": "Use Range Beacon"
      }
    },
    "EK2_BCN_DELAY": {
      "Description": "This is the number of msec that the range beacon measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",
      "DisplayName": "Range beacon measurement delay (msec)",
      "Increment": "10",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "ms",
      "User": "Advanced"
    },
    "EK2_BCN_I_GTE": {
      "Description": "This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Range beacon measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK2_BCN_M_NSE": {
      "Description": "This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",
      "DisplayName": "Range beacon measurement noise (m)",
      "Increment": "0.1",
      "Range": {
        "high": "10.0",
        "low": "0.1"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK2_CHECK_SCALE": {
      "Description": "This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",
      "DisplayName": "GPS accuracy check scaler (%)",
      "Range": {
        "high": "200",
        "low": "50"
      },
      "Units": "%",
      "User": "Advanced"
    },
    "EK2_EAS_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Airspeed measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK2_EAS_M_NSE": {
      "Description": "This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",
      "DisplayName": "Equivalent airspeed measurement noise (m/s)",
      "Increment": "0.1",
      "Range": {
        "high": "5.0",
        "low": "0.5"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "EK2_ENABLE": {
      "Description": "This enables EKF2. Enabling EKF2 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=2. A reboot or restart will need to be performed after changing the value of EK2_ENABLE for it to take effect.",
      "DisplayName": "Enable EKF2",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EK2_FLOW_DELAY": {
      "Description": "This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",
      "DisplayName": "Optical Flow measurement delay (msec)",
      "Increment": "10",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "ms",
      "User": "Advanced"
    },
    "EK2_FLOW_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Optical Flow measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK2_FLOW_M_NSE": {
      "Description": "This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",
      "DisplayName": "Optical flow measurement noise (rad/s)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "0.05"
      },
      "Units": "rad/s",
      "User": "Advanced"
    },
    "EK2_FLOW_USE": {
      "Description": "Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",
      "DisplayName": "Optical flow use bitmask",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Navigation",
        "2": "Terrain"
      }
    },
    "EK2_GBIAS_P_NSE": {
      "Description": "This state  process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",
      "DisplayName": "Rate gyro bias stability (rad/s/s)",
      "Range": {
        "high": "0.001",
        "low": "0.00001"
      },
      "Units": "rad/s/s",
      "User": "Advanced"
    },
    "EK2_GLITCH_RAD": {
      "Description": "This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position.",
      "DisplayName": "GPS glitch radius gate size (m)",
      "Increment": "5",
      "Range": {
        "high": "100",
        "low": "10"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK2_GPS_CHECK": {
      "Bitmask": {
        "0": "NSats",
        "1": "HDoP",
        "2": "speed error",
        "3": "position error",
        "4": "yaw error",
        "5": "pos drift",
        "6": "vert speed",
        "7": "horiz speed"
      },
      "Description": "This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",
      "DisplayName": "GPS preflight check",
      "User": "Advanced"
    },
    "EK2_GPS_TYPE": {
      "Description": "This controls use of GPS measurements : 0 = use 3D velocity & 2D position, 1 = use 2D velocity and 2D position, 2 = use 2D position, 3 = Inhibit GPS use - this can be useful when flying with an optical flow sensor in an environment where GPS quality is poor and subject to large multipath errors.",
      "DisplayName": "GPS mode control",
      "User": "Advanced",
      "Values": {
        "0": "GPS 3D Vel and 2D Pos",
        "1": "GPS 2D vel and 2D pos",
        "2": "GPS 2D pos",
        "3": "No GPS"
      }
    },
    "EK2_GSCL_P_NSE": {
      "Description": "This noise controls the rate of gyro scale factor learning. Increasing it makes rate gyro scale factor estimation faster and noisier.",
      "DisplayName": "Rate gyro scale factor stability (1/s)",
      "Range": {
        "high": "0.001",
        "low": "0.000001"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "EK2_GSF_RST_MAX": {
      "Description": "Sets the maximum number of times the EKF2 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK2_GSF_USE_MASK parameter.",
      "DisplayName": "Maximum number of resets to the EKF-GSF yaw estimate allowed",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK2_GSF_RUN_MASK": {
      "Bitmask": {
        "0": "FirstEKF",
        "1": "SecondEKF",
        "2": "ThirdEKF",
        "3": "FourthEKF",
        "4": "FifthEKF",
        "5": "SixthEKF"
      },
      "Description": "A bitmask of which EKF2 instances run an independant EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF2 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK2_GSF_USE_MASK and EK2_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK2_GSF_USE_MASK to 0.",
      "DisplayName": "Bitmask of which EKF-GSF yaw estimators run",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK2_GSF_USE_MASK": {
      "Bitmask": {
        "0": "FirstEKF",
        "1": "SecondEKF",
        "2": "ThirdEKF",
        "3": "FourthEKF",
        "4": "FifthEKF",
        "5": "SixthEKF"
      },
      "Description": "1 byte bitmap of which EKF2 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK2_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF2 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF2 instance.",
      "DisplayName": "Bitmask of which EKF-GSF yaw estimators are used",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK2_GYRO_P_NSE": {
      "Description": "This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",
      "DisplayName": "Rate gyro noise (rad/s)",
      "Increment": "0.0001",
      "Range": {
        "high": "0.1",
        "low": "0.0001"
      },
      "Units": "rad/s",
      "User": "Advanced"
    },
    "EK2_HGT_DELAY": {
      "Description": "This is the number of msec that the Height measurements lag behind the inertial measurements.",
      "DisplayName": "Height measurement delay (msec)",
      "Increment": "10",
      "Range": {
        "high": "250",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "ms",
      "User": "Advanced"
    },
    "EK2_HGT_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Height measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK2_HRT_FILT": {
      "Description": "Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",
      "DisplayName": "Height rate filter crossover frequency",
      "Range": {
        "high": "30.0",
        "low": "0.1"
      },
      "Units": "Hz"
    },
    "EK2_IMU_MASK": {
      "Bitmask": {
        "0": "FirstIMU",
        "1": "SecondIMU",
        "2": "ThirdIMU",
        "3": "FourthIMU",
        "4": "FifthIMU",
        "5": "SixthIMU"
      },
      "Description": "1 byte bitmap of IMUs to use in EKF2. A separate instance of EKF2 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF2 will fail to start.",
      "DisplayName": "Bitmask of active IMUs",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK2_MAGB_P_NSE": {
      "Description": "This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",
      "DisplayName": "Body magnetic field process noise (gauss/s)",
      "Range": {
        "high": "0.01",
        "low": "0.00001"
      },
      "Units": "Gauss/s",
      "User": "Advanced"
    },
    "EK2_MAGE_P_NSE": {
      "Description": "This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",
      "DisplayName": "Earth magnetic field process noise (gauss/s)",
      "Range": {
        "high": "0.01",
        "low": "0.00001"
      },
      "Units": "Gauss/s",
      "User": "Advanced"
    },
    "EK2_MAG_CAL": {
      "Description": "This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states, when it will use a simpler magnetic heading fusion model that does not use magnetic field states and when it will use an alternative method of yaw determination to the magnetometer. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK2_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK2_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK2_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK2_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK2_MAG_CAL = 4 uses 3-axis fusion at all times. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK2_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 with COMPASS_ENABLE set to 1. If this is done, the EK2_GSF_RUN and EK2_GSF_USE masks must be set to the same as EK2_IMU_MASK.",
      "DisplayName": "Magnetometer default fusion mode",
      "User": "Advanced",
      "Values": {
        "0": "When flying",
        "1": "When manoeuvring",
        "2": "Never",
        "3": "After first climb yaw reset",
        "4": "Always"
      }
    },
    "EK2_MAG_EF_LIM": {
      "Description": "This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",
      "DisplayName": "EarthField error limit",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "EK2_MAG_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Magnetometer measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK2_MAG_MASK": {
      "Bitmask": {
        "0": "FirstEKF",
        "1": "SecondEKF",
        "2": "ThirdEKF",
        "3": "FourthEKF",
        "4": "FifthEKF",
        "5": "SixthEKF"
      },
      "Description": "1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",
      "DisplayName": "Bitmask of active EKF cores that will always use heading fusion",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK2_MAG_M_NSE": {
      "Description": "This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",
      "DisplayName": "Magnetometer measurement noise (Gauss)",
      "Increment": "0.01",
      "Range": {
        "high": "0.5",
        "low": "0.01"
      },
      "Units": "Gauss",
      "User": "Advanced"
    },
    "EK2_MAX_FLOW": {
      "Description": "This sets the magnitude maximum optical flow rate in rad/sec that will be accepted by the filter",
      "DisplayName": "Maximum valid optical flow rate",
      "Increment": "0.1",
      "Range": {
        "high": "4.0",
        "low": "1.0"
      },
      "Units": "rad/s",
      "User": "Advanced"
    },
    "EK2_NOAID_M_NSE": {
      "Description": "This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",
      "DisplayName": "Non-GPS operation position uncertainty (m)",
      "Range": {
        "high": "50.0",
        "low": "0.5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK2_OGN_HGT_MASK": {
      "Bitmask": {
        "0": "Correct when using Baro height",
        "1": "Correct when using range finder height",
        "2": "Apply corrections to local position"
      },
      "Description": "When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",
      "DisplayName": "Bitmask control of EKF reference height correction",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK2_OPTIONS": {
      "Bitmask": {
        "0": "DisableExternalNavigation"
      },
      "Description": "optional EKF2 behaviour. Disabling external navigation prevents use of external vision data in the EKF2 solution",
      "DisplayName": "Optional EKF behaviour",
      "User": "Advanced"
    },
    "EK2_POSNE_M_NSE": {
      "Description": "This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",
      "DisplayName": "GPS horizontal position measurement noise (m)",
      "Increment": "0.1",
      "Range": {
        "high": "10.0",
        "low": "0.1"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK2_POS_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "GPS position measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK2_RNG_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Range finder measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK2_RNG_M_NSE": {
      "Description": "This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",
      "DisplayName": "Range finder measurement noise (m)",
      "Increment": "0.1",
      "Range": {
        "high": "10.0",
        "low": "0.1"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK2_RNG_USE_HGT": {
      "Description": "Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFND*_MAX). This will not work unless Baro or GPS height is selected as the primary height source vis EK2_ALT_SOURCE = 0 or 2 respectively.  This feature should not be used for terrain following as it is designed  for vertical takeoff and landing with climb above  the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",
      "DisplayName": "Range finder switch height percentage",
      "Increment": "1",
      "Range": {
        "high": "70",
        "low": "-1"
      },
      "Units": "%",
      "User": "Advanced"
    },
    "EK2_RNG_USE_SPD": {
      "Description": "The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",
      "DisplayName": "Range finder max ground speed",
      "Increment": "0.5",
      "Range": {
        "high": "6.0",
        "low": "2.0"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "EK2_TAU_OUTPUT": {
      "Description": "Sets the time constant of the output complementary filter/predictor in centi-seconds.",
      "DisplayName": "Output complementary filter time constant (centi-sec)",
      "Increment": "5",
      "Range": {
        "high": "50",
        "low": "10"
      },
      "Units": "cs",
      "User": "Advanced"
    },
    "EK2_TERR_GRAD": {
      "Description": "Specifies the maximum gradient of the terrain below the vehicle assumed when it is fusing range finder or optical flow to estimate terrain height.",
      "DisplayName": "Maximum terrain gradient",
      "Increment": "0.01",
      "Range": {
        "high": "0.2",
        "low": "0"
      },
      "User": "Advanced"
    },
    "EK2_VELD_M_NSE": {
      "Description": "This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",
      "DisplayName": "GPS vertical velocity measurement noise (m/s)",
      "Increment": "0.05",
      "Range": {
        "high": "5.0",
        "low": "0.05"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "EK2_VELNE_M_NSE": {
      "Description": "This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",
      "DisplayName": "GPS horizontal velocity measurement noise (m/s)",
      "Increment": "0.05",
      "Range": {
        "high": "5.0",
        "low": "0.05"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "EK2_VEL_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "GPS velocity innovation gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK2_WIND_PSCALE": {
      "Description": "This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",
      "DisplayName": "Height rate to wind process noise scaler",
      "Increment": "0.1",
      "Range": {
        "high": "1.0",
        "low": "0.0"
      },
      "User": "Advanced"
    },
    "EK2_WIND_P_NSE": {
      "Description": "This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",
      "DisplayName": "Wind velocity process noise (m/s^2)",
      "Increment": "0.1",
      "Range": {
        "high": "1.0",
        "low": "0.01"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "EK2_YAW_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Yaw measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK2_YAW_M_NSE": {
      "Description": "This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",
      "DisplayName": "Yaw measurement noise (rad)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "0.05"
      },
      "Units": "rad",
      "User": "Advanced"
    }
  },
  "EK3_": {
    "EK3_ABIAS_P_NSE": {
      "Description": "This noise controls the growth of the vertical accelerometer delta velocity bias state error estimate. Increasing it makes accelerometer bias estimation faster and noisier.",
      "DisplayName": "Accelerometer bias stability (m/s^3)",
      "Range": {
        "high": "0.02",
        "low": "0.00001"
      },
      "Units": "m/s/s/s",
      "User": "Advanced"
    },
    "EK3_ACC_BIAS_LIM": {
      "Description": "The accelerometer bias state will be limited to +- this value",
      "DisplayName": "Accelerometer bias limit",
      "Increment": "0.1",
      "Range": {
        "high": "2.5",
        "low": "0.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "EK3_ACC_P_NSE": {
      "Description": "This control disturbance noise controls the growth of estimated error due to accelerometer measurement errors excluding bias. Increasing it makes the flter trust the accelerometer measurements less and other measurements more.",
      "DisplayName": "Accelerometer noise (m/s^2)",
      "Increment": "0.01",
      "Range": {
        "high": "1.0",
        "low": "0.01"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "EK3_AFFINITY": {
      "Bitmask": {
        "0": "EnableGPSAffinity",
        "1": "EnableBaroAffinity",
        "2": "EnableCompassAffinity",
        "3": "EnableAirspeedAffinity"
      },
      "Description": "These options control the affinity between sensor instances and EKF cores",
      "DisplayName": "EKF3 Sensor Affinity Options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK3_ALT_M_NSE": {
      "Description": "This is the RMS value of noise in the altitude measurement. Increasing it reduces the weighting of the baro measurement and will make the filter respond more slowly to baro measurement errors, but will make it more sensitive to GPS and accelerometer errors. A larger value for EK3_ALT_M_NSE may be required when operating with EK3_SRCx_POSZ = 0. This parameter also sets the noise for the 'synthetic' zero height measurement that is used when EK3_SRCx_POSZ = 0.",
      "DisplayName": "Altitude measurement noise (m)",
      "Increment": "0.1",
      "Range": {
        "high": "100.0",
        "low": "0.01"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK3_BCN_DELAY": {
      "Description": "This is the number of msec that the range beacon measurements lag behind the inertial measurements.",
      "DisplayName": "Range beacon measurement delay (msec)",
      "Increment": "10",
      "Range": {
        "high": "250",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "ms",
      "User": "Advanced"
    },
    "EK3_BCN_I_GTE": {
      "Description": "This sets the percentage number of standard deviations applied to the range beacon measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Range beacon measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK3_BCN_M_NSE": {
      "Description": "This is the RMS value of noise in the range beacon measurement. Increasing it reduces the weighting on this measurement.",
      "DisplayName": "Range beacon measurement noise (m)",
      "Increment": "0.1",
      "Range": {
        "high": "10.0",
        "low": "0.1"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK3_BETA_MASK": {
      "Bitmask": {
        "0": "Always",
        "1": "WhenNoYawSensor"
      },
      "Description": "1 byte bitmap controlling use of sideslip angle fusion for estimation of non wind states during operation of 'fly forward' vehicle types such as fixed wing planes. By assuming that the angle of sideslip is small, the wind velocity state estimates are corrected  whenever the EKF is not dead reckoning (e.g. has an independent velocity or position sensor such as GPS). This behaviour is on by default and cannot be disabled. When the EKF is dead reckoning, the wind states are used as a reference, enabling use of the small angle of sideslip assumption to correct non wind velocity states (eg attitude, velocity, position, etc) and improve navigation accuracy. This behaviour is on by default and cannot be disabled. The behaviour controlled by this parameter is the use of the small angle of sideslip assumption to correct non wind velocity states when the EKF is NOT dead reckoning. This is primarily of benefit to reduce the buildup of yaw angle errors during straight and level flight without a yaw sensor (e.g. magnetometer or dual antenna GPS yaw) provided aerobatic flight maneuvers with large sideslip angles are not performed. The 'always' option might be used where the yaw sensor is intentionally not fitted or disabled. The 'WhenNoYawSensor' option might be used if a yaw sensor is fitted, but protection against in-flight failure and continual rejection by the EKF is desired. For vehicles operated within visual range of the operator performing frequent turning maneuvers, setting this parameter is unnecessary.",
      "DisplayName": "Bitmask controlling sidelip angle fusion",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK3_CHECK_SCALE": {
      "Description": "This scales the thresholds that are used to check GPS accuracy before it is used by the EKF. A value of 100 is the default. Values greater than 100 increase and values less than 100 reduce the maximum GPS error the EKF will accept. A value of 200 will double the allowable GPS error.",
      "DisplayName": "GPS accuracy check scaler (%)",
      "Range": {
        "high": "200",
        "low": "50"
      },
      "Units": "%",
      "User": "Advanced"
    },
    "EK3_DRAG_BCOEF_X": {
      "Description": "Ratio of mass to drag coefficient measured along the X body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a positive value > 1.0 to enable. A starting value is the mass in Kg divided by the frontal area. The predicted drag from the rotors is specified separately by the EK3_DRAG_MCOEF parameter.",
      "DisplayName": "Ballistic coefficient for X axis drag",
      "Range": {
        "high": "1000.0",
        "low": "0.0"
      },
      "Units": "kg/m/m",
      "User": "Advanced"
    },
    "EK3_DRAG_BCOEF_Y": {
      "Description": "Ratio of mass to drag coefficient measured along the Y body axis. This parameter enables estimation of wind drift for vehicles with bluff bodies and without propulsion forces in the X and Y direction (eg multicopters). The drag produced by this effect scales with speed squared. Set to a positive value > 1.0 to enable. A starting value is the mass in Kg divided by the side area. The predicted drag from the rotors is specified separately by the EK3_DRAG_MCOEF parameter.",
      "DisplayName": "Ballistic coefficient for Y axis drag",
      "Range": {
        "high": "1000.0",
        "low": "50.0"
      },
      "Units": "kg/m/m",
      "User": "Advanced"
    },
    "EK3_DRAG_MCOEF": {
      "Description": "This parameter is used to predict the drag produced by the rotors when flying a multi-copter, enabling estimation of wind drift. The drag produced by this effect scales with speed not speed squared and is produced because some of the air velocity normal to the rotors axis of rotation is lost when passing through the rotor disc which changes the momentum of the airflow causing drag. For unducted rotors the effect is roughly proportional to the area of the propeller blades when viewed side on and changes with different propellers. It is higher for ducted rotors. For example if flying at 15 m/s at sea level conditions produces a rotor induced drag acceleration of 1.5 m/s/s, then EK3_DRAG_MCOEF would be set to 0.1 = (1.5/15.0). Set EK3_MCOEF to a positive value to enable wind estimation using this drag effect. To account for the drag produced by the body which scales with speed squared, see documentation for the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters.",
      "DisplayName": "Momentum coefficient for propeller drag",
      "Increment": "0.01",
      "Range": {
        "high": "1.0",
        "low": "0.0"
      },
      "Units": "1/s",
      "User": "Advanced"
    },
    "EK3_DRAG_M_NSE": {
      "Description": "This sets the amount of noise used when fusing X and Y acceleration as an observation that enables estimation of wind velocity for multi-rotor vehicles. This feature is enabled by the EK3_DRAG_BCOEF_X and EK3_DRAG_BCOEF_Y parameters",
      "DisplayName": "Observation noise for drag acceleration",
      "Increment": "0.1",
      "Range": {
        "high": "2.0",
        "low": "0.1"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "EK3_EAS_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the airspeed measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Airspeed measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK3_EAS_M_NSE": {
      "Description": "This is the RMS value of noise in equivalent airspeed measurements used by planes. Increasing it reduces the weighting of airspeed measurements and will make wind speed estimates less noisy and slower to converge. Increasing also increases navigation errors when dead-reckoning without GPS measurements.",
      "DisplayName": "Equivalent airspeed measurement noise (m/s)",
      "Increment": "0.1",
      "Range": {
        "high": "5.0",
        "low": "0.5"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "EK3_ENABLE": {
      "Description": "This enables EKF3. Enabling EKF3 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=3. A reboot or restart will need to be performed after changing the value of EK3_ENABLE for it to take effect.",
      "DisplayName": "Enable EKF3",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "EK3_ERR_THRESH": {
      "Description": "lanes have to be consistently better than the primary by at least this threshold to reduce their overall relativeCoreError, lowering this makes lane switching more sensitive to smaller error differences",
      "DisplayName": "EKF3 Lane Relative Error Sensitivity Threshold",
      "Increment": "0.05",
      "Range": {
        "high": "1",
        "low": "0.05"
      },
      "User": "Advanced"
    },
    "EK3_FLOW_DELAY": {
      "Description": "This is the number of msec that the optical flow measurements lag behind the inertial measurements. It is the time from the end of the optical flow averaging period and does not include the time delay due to the 100msec of averaging within the flow sensor.",
      "DisplayName": "Optical Flow measurement delay (msec)",
      "Increment": "10",
      "Range": {
        "high": "250",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "ms",
      "User": "Advanced"
    },
    "EK3_FLOW_GAIN_H": {
      "Description": "Height below which the navigation velocity gain is left at full scale while navigating on optical flow. Above it the gain falls as this value divided by the height above ground, to allow for flow velocity noise that grows with height. Larger values keep position hold more responsive at height, at more risk of a flow-driven oscillation. Values below 1 are treated as 1. Takes effect immediately.",
      "DisplayName": "Optical flow nav gain full-scale height",
      "Increment": "1",
      "Range": {
        "high": "40",
        "low": "1"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK3_FLOW_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the optical flow innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Optical Flow measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK3_FLOW_MAX": {
      "Description": "The maximum optical flow rate in rad/sec that will be accepted by the filter.  Flow rates above this value will not be fused.",
      "DisplayName": "Optical flow rate maximum",
      "Increment": "0.1",
      "Range": {
        "high": "4.0",
        "low": "1.0"
      },
      "Units": "rad/s",
      "User": "Advanced"
    },
    "EK3_FLOW_M_NSE": {
      "Description": "This is the RMS value of noise and errors in optical flow measurements. Increasing it reduces the weighting on these measurements.",
      "DisplayName": "Optical flow measurement noise (rad/s)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "0.05"
      },
      "Units": "rad/s",
      "User": "Advanced"
    },
    "EK3_FLOW_USE": {
      "Description": "Controls if the optical flow data is fused into the 24-state navigation estimator OR the 1-state terrain height estimator.",
      "DisplayName": "Optical flow use bitmask",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Navigation",
        "2": "Terrain"
      }
    },
    "EK3_GBIAS_P_NSE": {
      "Description": "This state  process noise controls growth of the gyro delta angle bias state error estimate. Increasing it makes rate gyro bias estimation faster and noisier.",
      "DisplayName": "Rate gyro bias stability (rad/s/s)",
      "Range": {
        "high": "0.001",
        "low": "0.00001"
      },
      "Units": "rad/s/s",
      "User": "Advanced"
    },
    "EK3_GLITCH_RAD": {
      "Description": "This controls the maximum radial uncertainty in position between the value predicted by the filter and the value measured by the GPS before the filter position and velocity states are reset to the GPS. Making this value larger allows the filter to ignore larger GPS glitches but also means that non-GPS errors such as IMU and compass can create a larger error in position before the filter is forced back to the GPS position. If EK3_GLITCH_RAD set to 0 the GPS innovations will be clipped instead of rejected if they exceed the gate size set by EK3_VEL_I_GATE and EK3_POS_I_GATE which can be useful if poor quality sensor data is causing GPS rejection and loss of navigation but does make the EKF more susceptible to GPS glitches. If setting EK3_GLITCH_RAD to 0 it is recommended to reduce EK3_VEL_I_GATE and EK3_POS_I_GATE to 300.",
      "DisplayName": "GPS glitch radius gate size (m)",
      "Increment": "5",
      "Range": {
        "high": "100",
        "low": "10"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK3_GND_EFF_DZ": {
      "Description": "This parameter sets the size of the dead zone that is applied to negative baro height spikes that can occur when taking off or landing when a vehicle with lift rotors is operating in ground effect ground effect. Set to about 0.5m less than the amount of negative offset in baro height that occurs just prior to takeoff when lift motors are spooling up. Set to 0 if no ground effect is present.",
      "DisplayName": "Baro height ground effect dead zone",
      "Increment": "0.5",
      "Range": {
        "high": "10.0",
        "low": "0.0"
      },
      "User": "Advanced"
    },
    "EK3_GPS_CHECK": {
      "Bitmask": {
        "0": "NSats",
        "1": "HDoP",
        "2": "speed error",
        "3": "position error",
        "4": "yaw error",
        "5": "pos drift",
        "6": "vert speed",
        "7": "horiz speed"
      },
      "Description": "This is a 1 byte bitmap controlling which GPS preflight checks are performed. Set to 0 to bypass all checks. Set to 255 perform all checks. Set to 3 to check just the number of satellites and HDoP. Set to 31 for the most rigorous checks that will still allow checks to pass when the copter is moving, eg launch from a boat.",
      "DisplayName": "GPS preflight check",
      "User": "Advanced"
    },
    "EK3_GPS_VACC_MAX": {
      "Description": "Vertical accuracy threshold for GPS as the altitude source. The GPS will not be used as an altitude source if the reported vertical accuracy of the GPS is larger than this threshold, falling back to baro instead. Set to zero to deactivate the threshold check.",
      "DisplayName": "GPS vertical accuracy threshold",
      "Increment": "0.1",
      "Range": {
        "high": "10.0",
        "low": "0.0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK3_GSF_RST_MAX": {
      "Description": "Sets the maximum number of times the EKF3 will be allowed to reset its yaw to the estimate from the EKF-GSF yaw estimator. No resets will be allowed unless the use of the EKF-GSF yaw estimate is enabled via the EK3_GSF_USE_MASK parameter.",
      "DisplayName": "Maximum number of resets to the EKF-GSF yaw estimate allowed",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK3_GSF_RUN_MASK": {
      "Bitmask": {
        "0": "FirstEKF",
        "1": "SecondEKF",
        "2": "ThirdEKF",
        "3": "FourthEKF",
        "4": "FifthEKF",
        "5": "SixthEKF"
      },
      "Description": "1 byte bitmap of which EKF3 instances run an independent EKF-GSF yaw estimator to provide a backup yaw estimate that doesn't rely on magnetometer data. This estimator uses IMU, GPS and, if available, airspeed data. EKF-GSF yaw estimator data for the primary EKF3 instance will be logged as GSF0 and GSF1 messages. Use of the yaw estimate generated by this algorithm is controlled by the EK3_GSF_USE_MASK and EK3_GSF_RST_MAX parameters. To run the EKF-GSF yaw estimator in ride-along and logging only, set EK3_GSF_USE to 0.",
      "DisplayName": "Bitmask of which EKF-GSF yaw estimators run",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK3_GSF_USE_MASK": {
      "Bitmask": {
        "0": "FirstEKF",
        "1": "SecondEKF",
        "2": "ThirdEKF",
        "3": "FourthEKF",
        "4": "FifthEKF",
        "5": "SixthEKF"
      },
      "Description": "A bitmask of which EKF3 instances will use the output from the EKF-GSF yaw estimator that has been turned on by the EK3_GSF_RUN_MASK parameter. If the inertial navigation calculation stops following the GPS, then the vehicle code can request EKF3 to attempt to resolve the issue, either by performing a yaw reset if enabled by this parameter by switching to another EKF3 instance.",
      "DisplayName": "Bitmask of which EKF-GSF yaw estimators are used",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK3_GYRO_P_NSE": {
      "Description": "This control disturbance noise controls the growth of estimated error due to gyro measurement errors excluding bias. Increasing it makes the flter trust the gyro measurements less and other measurements more.",
      "DisplayName": "Rate gyro noise (rad/s)",
      "Increment": "0.0001",
      "Range": {
        "high": "0.1",
        "low": "0.0001"
      },
      "Units": "rad/s",
      "User": "Advanced"
    },
    "EK3_HGT_DELAY": {
      "Description": "This is the number of msec that the Height measurements lag behind the inertial measurements.",
      "DisplayName": "Height measurement delay (msec)",
      "Increment": "10",
      "Range": {
        "high": "250",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "ms",
      "User": "Advanced"
    },
    "EK3_HGT_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the height measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.  If EK3_GLITCH_RAD set to 0 the vertical position innovations will be clipped instead of rejected if they exceed the gate size and a smaller value of EK3_HGT_I_GATE not exceeding 300 is recommended to limit the effect of height sensor transient errors.",
      "DisplayName": "Height measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK3_HRT_FILT": {
      "Description": "Specifies the crossover frequency of the complementary filter used to calculate the output predictor height rate derivative.",
      "DisplayName": "Height rate filter crossover frequency",
      "Range": {
        "high": "30.0",
        "low": "0.1"
      },
      "Units": "Hz"
    },
    "EK3_IMU_MASK": {
      "Bitmask": {
        "0": "FirstIMU",
        "1": "SecondIMU",
        "2": "ThirdIMU",
        "3": "FourthIMU",
        "4": "FifthIMU",
        "5": "SixthIMU"
      },
      "Description": "1 byte bitmap of IMUs to use in EKF3. A separate instance of EKF3 will be started for each IMU selected. Set to 1 to use the first IMU only (default), set to 2 to use the second IMU only, set to 3 to use the first and second IMU. Additional IMU's can be used up to a maximum of 6 if memory and processing resources permit. There may be insufficient memory and processing resources to run multiple instances. If this occurs EKF3 will fail to start.",
      "DisplayName": "Bitmask of active IMUs",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK3_LOG_LEVEL": {
      "Description": "Determines how verbose the EKF3 streaming logging is. A value of 0 provides full logging(default), a value of 1 only XKF4 scaled innovations are logged, a value of 2 both XKF4 and GSF are logged, and a value of 3 disables all streaming logging of EKF3.",
      "DisplayName": "Logging Level",
      "Increment": "1",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "User": "Advanced"
    },
    "EK3_MAGB_P_NSE": {
      "Description": "This state process noise controls the growth of body magnetic field state error estimates. Increasing it makes magnetometer bias error estimation faster and noisier.",
      "DisplayName": "Body magnetic field process noise (gauss/s)",
      "Range": {
        "high": "0.01",
        "low": "0.00001"
      },
      "Units": "Gauss/s",
      "User": "Advanced"
    },
    "EK3_MAGE_P_NSE": {
      "Description": "This state process noise controls the growth of earth magnetic field state error estimates. Increasing it makes earth magnetic field estimation faster and noisier.",
      "DisplayName": "Earth magnetic field process noise (gauss/s)",
      "Range": {
        "high": "0.01",
        "low": "0.00001"
      },
      "Units": "Gauss/s",
      "User": "Advanced"
    },
    "EK3_MAG_CAL": {
      "Description": "This determines when the filter will use the 3-axis magnetometer fusion model that estimates both earth and body fixed magnetic field states and when it will use a simpler magnetic heading fusion model that does not use magnetic field states. The 3-axis magnetometer fusion is only suitable for use when the external magnetic field environment is stable. EK3_MAG_CAL = 0 uses heading fusion on ground, 3-axis fusion in-flight, and is the default setting for Plane users. EK3_MAG_CAL = 1 uses 3-axis fusion only when manoeuvring. EK3_MAG_CAL = 2 uses heading fusion at all times, is recommended if the external magnetic field is varying and is the default for rovers. EK3_MAG_CAL = 3 uses heading fusion on the ground and 3-axis fusion after the first in-air field and yaw reset has completed, and is the default for copters. EK3_MAG_CAL = 4 uses 3-axis fusion at all times. EK3_MAG_CAL = 7 uses 3-axis fusion on the ground and after the first in-air field and yaw reset has completed. This allows the magnetic field to be learned on the ground before takeoff (useful when swapping batteries with different magnetic signatures) while inhibiting learning during the initial climb when motor magnetic interference is strongest. While disarmed and stationary the yaw is additionally anchored to the measured magnetic heading, since a stationary vehicle gives the 3-axis fusion no way to separate a yaw error from the body field states. A body field component perpendicular to the horizontal earth field is not separable from yaw by a heading measurement, so it appears as a heading offset rather than being learned. NOTE : Use of simple heading magnetometer fusion makes vehicle compass calibration and alignment errors harder for the EKF to detect which reduces the sensitivity of the Copter EKF failsafe algorithm. NOTE: The fusion mode can be forced to 2 for specific EKF cores using the EK3_MAG_MASK parameter. NOTE: limited operation without a magnetometer or any other yaw sensor is possible by setting all COMPASS_USE, COMPASS_USE2, COMPASS_USE3, etc parameters to 0 and setting COMPASS_ENABLE to 0. If this is done, the EK3_GSF_RUN and EK3_GSF_USE masks must be set to the same as EK3_IMU_MASK. A yaw angle derived from IMU and GPS velocity data using a Gaussian Sum Filter (GSF) will then be used to align the yaw when flight commences and there is sufficient movement.",
      "DisplayName": "Magnetometer default fusion mode",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "When flying",
        "1": "When manoeuvring",
        "2": "Never",
        "3": "After first climb yaw reset",
        "4": "Always",
        "5": "Use external yaw sensor (Deprecated in 4.1+ see EK3_SRCn_YAW)",
        "6": "External yaw sensor with compass fallback (Deprecated in 4.1+ see EK3_SRCn_YAW)",
        "7": "On ground and after first climb yaw reset"
      }
    },
    "EK3_MAG_EF_LIM": {
      "Description": "This limits the difference between the learned earth magnetic field and the earth field from the world magnetic model tables. A value of zero means to disable the use of the WMM tables.",
      "DisplayName": "EarthField error limit",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "mGauss",
      "User": "Advanced"
    },
    "EK3_MAG_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the magnetometer measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Magnetometer measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK3_MAG_MASK": {
      "Bitmask": {
        "0": "FirstEKF",
        "1": "SecondEKF",
        "2": "ThirdEKF",
        "3": "FourthEKF",
        "4": "FifthEKF",
        "5": "SixthEKF"
      },
      "Description": "1 byte bitmap of EKF cores that will disable magnetic field states and use simple magnetic heading fusion at all times. This parameter enables specified cores to be used as a backup for flight into an environment with high levels of external magnetic interference which may degrade the EKF attitude estimate when using 3-axis magnetometer fusion. NOTE : Use of a different magnetometer fusion algorithm on different cores makes unwanted EKF core switches due to magnetometer errors more likely.",
      "DisplayName": "Bitmask of active EKF cores that will always use heading fusion",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK3_MAG_M_NSE": {
      "Description": "This is the RMS value of noise in magnetometer measurements. Increasing it reduces the weighting on these measurements.",
      "DisplayName": "Magnetometer measurement noise (Gauss)",
      "Increment": "0.01",
      "Range": {
        "high": "0.5",
        "low": "0.01"
      },
      "Units": "Gauss",
      "User": "Advanced"
    },
    "EK3_NOAID_M_NSE": {
      "Description": "This sets the amount of position variation that the EKF allows for when operating without external measurements (eg GPS or optical flow). Increasing this parameter makes the EKF attitude estimate less sensitive to vehicle manoeuvres but more sensitive to IMU errors.",
      "DisplayName": "Non-GPS operation position uncertainty (m)",
      "Range": {
        "high": "50.0",
        "low": "0.5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK3_OGNM_TEST_SF": {
      "Description": "This parameter is adjust the sensitivity of the on ground not moving test which is used to assist with learning the yaw gyro bias and stopping yaw drift before flight when operating without a yaw sensor. Bigger values allow the detection of a not moving condition with noiser IMU data. Check the XKFM data logged when the vehicle is on ground not moving and adjust the value of OGNM_TEST_SF to be slightly higher than the maximum value of the XKFM.ADR, XKFM.ALR, XKFM.GDR and XKFM.GLR test levels.",
      "DisplayName": "On ground not moving test scale factor",
      "Increment": "0.5",
      "Range": {
        "high": "10.0",
        "low": "1.0"
      },
      "User": "Advanced"
    },
    "EK3_OGN_HGT_MASK": {
      "Bitmask": {
        "0": "Correct when using Baro height",
        "1": "Correct when using range finder height",
        "2": "Apply corrections to local position"
      },
      "Description": "When a height sensor other than GPS is used as the primary height source by the EKF, the position of the zero height datum is defined by that sensor and its frame of reference. If a GPS height measurement is also available, then the height of the WGS-84 height datum used by the EKF can be corrected so that the height returned by the getLLH() function is compensated for primary height sensor drift and change in datum over time. The first two bit positions control when the height datum will be corrected. Correction is performed using a Bayes filter and only operates when GPS quality permits. The third bit position controls where the corrections to the GPS reference datum are applied. Corrections can be applied to the local vertical position or to the reported EKF origin height (default).",
      "DisplayName": "Bitmask control of EKF reference height correction",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "EK3_OPTIONS": {
      "Bitmask": {
        "0": "JammingExpected",
        "1": "ManualLaneSwitching",
        "2": "Optflow may use terrain alt",
        "3": "AGL KF for optflow scaling"
      },
      "Description": "EKF optional behaviour. Bit 0 (JammingExpected): Setting JammingExpected will change the EKF behaviour such that if dead reckoning navigation is possible it will require the preflight alignment GPS quality checks controlled by EK3_GPS_CHECK and EK3_CHECK_SCALE to pass before resuming GPS use if GPS lock is lost for more than 2 seconds to prevent bad position estimate. Bit 1 (Manual lane switching): DANGEROUS \u2013 If enabled, this disables automatic lane switching. If the active lane becomes unhealthy, no automatic switching will occur. Users must manually set EK3_PRIMARY to change lanes. No health checks will be performed on the selected lane. Use with extreme caution.  Bit 2 (Optflow may use terrain alt): Terrain SRTM data will be used if the vehicle climbs above the rangefinder's range allowing optical flow to be used at higher altitudes. Bit 3 (AGL KF for optflow scaling): Use a 2-state IMU-aided AGL Kalman filter (height + vertical velocity, fused with rangefinder) to compute the height-above-ground used for optical flow velocity scaling, instead of terrainState-pd. This decouples optical flow scaling from errors in the main filter's vertical position state.",
      "DisplayName": "Optional EKF behaviour",
      "User": "Advanced"
    },
    "EK3_POSNE_M_NSE": {
      "Description": "This sets the GPS horizontal position observation noise. Increasing it reduces the weighting of GPS horizontal position measurements.",
      "DisplayName": "GPS horizontal position measurement noise (m)",
      "Increment": "0.1",
      "Range": {
        "high": "10.0",
        "low": "0.1"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK3_POS_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the GPS position measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted. If EK3_GLITCH_RAD has been set to 0 the horizontal position innovations will be clipped instead of rejected if they exceed the gate size so a smaller value of EK3_POS_I_GATE not exceeding 300 is recommended to limit the effect of GPS transient errors.",
      "DisplayName": "GPS position measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK3_PRIMARY": {
      "Description": "The core number (index in IMU mask) that will be used as the primary EKF core on startup. While disarmed the EKF will force the use of this core. A value of 0 corresponds to the first IMU in EK3_IMU_MASK.",
      "DisplayName": "Primary core number",
      "Increment": "1",
      "Range": {
        "high": "2",
        "low": "0"
      },
      "User": "Advanced"
    },
    "EK3_RNG_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the range finder innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Range finder measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK3_RNG_M_NSE": {
      "Description": "This is the RMS value of noise in the range finder measurement. Increasing it reduces the weighting on this measurement.",
      "DisplayName": "Range finder measurement noise (m)",
      "Increment": "0.1",
      "Range": {
        "high": "10.0",
        "low": "0.1"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "EK3_RNG_USE_HGT": {
      "Description": "Range finder can be used as the primary height source when below this percentage of its maximum range (see RNGFNDx_MAX) and the primary height source is Baro or GPS (see EK3_SRCx_POSZ).  This feature should not be used for terrain following as it is designed for vertical takeoff and landing with climb above the range finder use height before commencing the mission, and with horizontal position changes below that height being limited to a flat region around the takeoff and landing point.",
      "DisplayName": "Range finder switch height percentage",
      "Increment": "1",
      "Range": {
        "high": "70",
        "low": "-1"
      },
      "Units": "%",
      "User": "Advanced"
    },
    "EK3_RNG_USE_SPD": {
      "Description": "The range finder will not be used as the primary height source when the horizontal ground speed is greater than this value.",
      "DisplayName": "Range finder max ground speed",
      "Increment": "0.5",
      "Range": {
        "high": "6.0",
        "low": "2.0"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "EK3_TAU_OUTPUT": {
      "Description": "Sets the time constant of the output complementary filter/predictor in centi-seconds.",
      "DisplayName": "Output complementary filter time constant (centi-sec)",
      "Increment": "5",
      "Range": {
        "high": "50",
        "low": "10"
      },
      "Units": "cs",
      "User": "Advanced"
    },
    "EK3_TERR_GRAD": {
      "Description": "Specifies the maximum gradient of the terrain below the vehicle when it is using range finder as a height reference",
      "DisplayName": "Maximum terrain gradient",
      "Increment": "0.01",
      "Range": {
        "high": "0.2",
        "low": "0"
      },
      "User": "Advanced"
    },
    "EK3_VELD_M_NSE": {
      "Description": "This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set vertical velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS vertical velocity measurements.",
      "DisplayName": "GPS vertical velocity measurement noise (m/s)",
      "Increment": "0.05",
      "Range": {
        "high": "5.0",
        "low": "0.05"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "EK3_VELNE_M_NSE": {
      "Description": "This sets a lower limit on the speed accuracy reported by the GPS receiver that is used to set horizontal velocity observation noise. If the model of receiver used does not provide a speed accurcy estimate, then the parameter value will be used. Increasing it reduces the weighting of the GPS horizontal velocity measurements.",
      "DisplayName": "GPS horizontal velocity measurement noise (m/s)",
      "Increment": "0.05",
      "Range": {
        "high": "5.0",
        "low": "0.05"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "EK3_VEL_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the GPS velocity measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted. If EK3_GLITCH_RAD set to 0 the velocity innovations will be clipped instead of rejected if they exceed the gate size and a smaller value of EK3_VEL_I_GATE not exceeding 300 is recommended to limit the effect of GPS transient errors.",
      "DisplayName": "GPS velocity innovation gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK3_VIS_VERR_MAX": {
      "Description": "This is the 1-STD odometry velocity observation error that will be assumed when minimum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",
      "DisplayName": "Visual odometry maximum velocity error",
      "Increment": "0.1",
      "Range": {
        "high": "5.0",
        "low": "0.5"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "EK3_VIS_VERR_MIN": {
      "Description": "This is the 1-STD odometry velocity observation error that will be assumed when maximum quality is reported by the sensor. When quality is between max and min, the error will be calculated using linear interpolation between VIS_VERR_MIN and VIS_VERR_MAX.",
      "DisplayName": "Visual odometry minimum velocity error",
      "Increment": "0.05",
      "Range": {
        "high": "0.5",
        "low": "0.05"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "EK3_WENC_VERR": {
      "Description": "This is the 1-STD odometry velocity observation error that will be assumed when wheel encoder data is being fused.",
      "DisplayName": "Wheel odometry velocity error",
      "Increment": "0.1",
      "Range": {
        "high": "1.0",
        "low": "0.01"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "EK3_WIND_PSCALE": {
      "Description": "This controls how much the process noise on the wind states is increased when gaining or losing altitude to take into account changes in wind speed and direction with altitude. Increasing this parameter increases how rapidly the wind states adapt when changing altitude, but does make wind velocity estimation noiser.",
      "DisplayName": "Height rate to wind process noise scaler",
      "Increment": "0.1",
      "Range": {
        "high": "2.0",
        "low": "0.0"
      },
      "User": "Advanced"
    },
    "EK3_WIND_P_NSE": {
      "Description": "This state process noise controls the growth of wind state error estimates. Increasing it makes wind estimation faster and noisier.",
      "DisplayName": "Wind velocity process noise (m/s^2)",
      "Increment": "0.1",
      "Range": {
        "high": "2.0",
        "low": "0.01"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "EK3_YAW_I_GATE": {
      "Description": "This sets the percentage number of standard deviations applied to the magnetometer yaw measurement innovation consistency check. Decreasing it makes it more likely that good measurements will be rejected. Increasing it makes it more likely that bad measurements will be accepted.",
      "DisplayName": "Yaw measurement gate size",
      "Increment": "25",
      "Range": {
        "high": "1000",
        "low": "100"
      },
      "User": "Advanced"
    },
    "EK3_YAW_M_NSE": {
      "Description": "This is the RMS value of noise in yaw measurements from the magnetometer. Increasing it reduces the weighting on these measurements.",
      "DisplayName": "Yaw measurement noise (rad)",
      "Increment": "0.05",
      "Range": {
        "high": "1.0",
        "low": "0.05"
      },
      "Units": "rad",
      "User": "Advanced"
    }
  },
  "EK3_SRC": {
    "EK3_SRC1_POSXY": {
      "Description": "Position Horizontal Source (Primary)",
      "DisplayName": "Position Horizontal Source (Primary)",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "3": "GPS",
        "4": "Beacon",
        "6": "ExternalNav"
      }
    },
    "EK3_SRC1_POSZ": {
      "Description": "Position Vertical Source",
      "DisplayName": "Position Vertical Source",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Baro",
        "2": "RangeFinder",
        "3": "GPS",
        "4": "Beacon",
        "6": "ExternalNav"
      }
    },
    "EK3_SRC1_VELXY": {
      "Description": "Velocity Horizontal Source",
      "DisplayName": "Velocity Horizontal Source",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "3": "GPS",
        "4": "Beacon",
        "5": "OpticalFlow",
        "6": "ExternalNav",
        "7": "WheelEncoder"
      }
    },
    "EK3_SRC1_VELZ": {
      "Description": "Velocity Vertical Source",
      "DisplayName": "Velocity Vertical Source",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "3": "GPS",
        "4": "Beacon",
        "6": "ExternalNav"
      }
    },
    "EK3_SRC1_YAW": {
      "Description": "Yaw Source",
      "DisplayName": "Yaw Source",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Compass",
        "2": "GPS",
        "3": "GPS with Compass Fallback",
        "6": "ExternalNav",
        "8": "GSF"
      }
    },
    "EK3_SRC2_POSXY": {
      "Description": "Position Horizontal Source (Secondary)",
      "DisplayName": "Position Horizontal Source (Secondary)",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "3": "GPS",
        "4": "Beacon",
        "6": "ExternalNav"
      }
    },
    "EK3_SRC2_POSZ": {
      "Description": "Position Vertical Source (Secondary)",
      "DisplayName": "Position Vertical Source (Secondary)",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Baro",
        "2": "RangeFinder",
        "3": "GPS",
        "4": "Beacon",
        "6": "ExternalNav"
      }
    },
    "EK3_SRC2_VELXY": {
      "Description": "Velocity Horizontal Source (Secondary)",
      "DisplayName": "Velocity Horizontal Source (Secondary)",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "3": "GPS",
        "4": "Beacon",
        "5": "OpticalFlow",
        "6": "ExternalNav",
        "7": "WheelEncoder"
      }
    },
    "EK3_SRC2_VELZ": {
      "Description": "Velocity Vertical Source (Secondary)",
      "DisplayName": "Velocity Vertical Source (Secondary)",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "3": "GPS",
        "4": "Beacon",
        "6": "ExternalNav"
      }
    },
    "EK3_SRC2_YAW": {
      "Description": "Yaw Source (Secondary)",
      "DisplayName": "Yaw Source (Secondary)",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Compass",
        "2": "GPS",
        "3": "GPS with Compass Fallback",
        "6": "ExternalNav",
        "8": "GSF"
      }
    },
    "EK3_SRC3_POSXY": {
      "Description": "Position Horizontal Source (Tertiary)",
      "DisplayName": "Position Horizontal Source (Tertiary)",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "3": "GPS",
        "4": "Beacon",
        "6": "ExternalNav"
      }
    },
    "EK3_SRC3_POSZ": {
      "Description": "Position Vertical Source (Tertiary)",
      "DisplayName": "Position Vertical Source (Tertiary)",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Baro",
        "2": "RangeFinder",
        "3": "GPS",
        "4": "Beacon",
        "6": "ExternalNav"
      }
    },
    "EK3_SRC3_VELXY": {
      "Description": "Velocity Horizontal Source (Tertiary)",
      "DisplayName": "Velocity Horizontal Source (Tertiary)",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "3": "GPS",
        "4": "Beacon",
        "5": "OpticalFlow",
        "6": "ExternalNav",
        "7": "WheelEncoder"
      }
    },
    "EK3_SRC3_VELZ": {
      "Description": "Velocity Vertical Source (Tertiary)",
      "DisplayName": "Velocity Vertical Source (Tertiary)",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "3": "GPS",
        "4": "Beacon",
        "6": "ExternalNav"
      }
    },
    "EK3_SRC3_YAW": {
      "Description": "Yaw Source (Tertiary)",
      "DisplayName": "Yaw Source (Tertiary)",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Compass",
        "2": "GPS",
        "3": "GPS with Compass Fallback",
        "6": "ExternalNav",
        "8": "GSF"
      }
    },
    "EK3_SRC_OPTIONS": {
      "Bitmask": {
        "0": "FuseAllVelocities",
        "1": "AlignExtNavPosWhenUsingOptFlow",
        "3": "UsePerCoreEKFSources"
      },
      "Description": "EKF Source Options. Bit 0: Fuse all velocity sources present in EK3_SRCx_VEL_. Bit 1: Align external navigation position when using optical flow. Bit 3: Use SRC per core. By default, EKF source selection is controlled via the EK3_SRC parameters, allowing only one source to be active at a time across all cores (switchable via MAVLink, Lua, or RC). Enabling this bit maps EKF core 1 to SRC1, core 2 to SRC2, etc., allowing each core to run independently with a dedicated source.",
      "DisplayName": "EKF Source Options",
      "User": "Advanced"
    }
  },
  "ESC_TLM": {
    "ESC_TLM_MAV_OFS": {
      "Description": "Offset to apply to ESC numbers when reporting as ESC_TELEMETRY packets over MAVLink. This allows high numbered motors to be displayed as low numbered ESCs for convenience on GCS displays. A value of 4 would send ESC on output 5 as ESC number 1 in ESC_TELEMETRY packets",
      "DisplayName": "ESC Telemetry mavlink offset",
      "Increment": "1",
      "Range": {
        "high": "31",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "FENCE_": {
    "FENCE_ACTION": {
      "Description": "What action should be taken when fence is breached",
      "DisplayName": "Fence Action",
      "User": "Standard",
      "Values": {
        "0": "Report Only",
        "1": "RTL or Land"
      }
    },
    "FENCE_ALT_MAX": {
      "Description": "Maximum altitude allowed before geofence triggers. See FENCE_ALT_MAX_TP for reference frame.",
      "DisplayName": "Fence Maximum Altitude",
      "Increment": "1",
      "Range": {
        "high": "1000",
        "low": "10"
      },
      "Units": "m",
      "User": "Standard"
    },
    "FENCE_ALT_MAX_TP": {
      "Description": "The altitude reference frame for the maximum altitude fence. Can be AMSL, home-relative, origin relative or AGL.",
      "DisplayName": "Altitude max frame type",
      "User": "Advanced",
      "Values": {
        "0": "Above sea level",
        "1": "Above Home",
        "2": "Above Origin",
        "3": "Above Terrain"
      }
    },
    "FENCE_ALT_MIN": {
      "Description": "Minimum altitude allowed before geofence triggers. See FENCE_ALT_MIN_TP for reference frame.",
      "DisplayName": "Fence Minimum Altitude",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "-100"
      },
      "Units": "m",
      "User": "Standard"
    },
    "FENCE_ALT_MIN_TP": {
      "Description": "The altitude reference frame for the minimum altitude fence. Can be AMSL, home-relative, origin relative or AGL.",
      "DisplayName": "Altitude min frame type",
      "User": "Advanced",
      "Values": {
        "0": "Above sea level",
        "1": "Above Home",
        "2": "Above Origin",
        "3": "Above Terrain"
      }
    },
    "FENCE_ENABLE": {
      "Description": "Allows you to enable (1) or disable (0) the fence functionality. Fences can still be enabled and disabled via mavlink or an RC option, but these changes are not persisted.",
      "DisplayName": "Fence enable/disable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "FENCE_MARGIN": {
      "Description": "Distance that autopilot's should maintain from the fence to avoid a breach",
      "DisplayName": "Fence Margin",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "Units": "m",
      "User": "Standard"
    },
    "FENCE_MARGIN_XY": {
      "Description": "Distance that autopilot's should maintain from the fence in the horizontal plane to avoid a breach. If set to 0 then FENCE_MARGIN is used.",
      "DisplayName": "Fence Horizontal Margin",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "FENCE_NTF_FREQ": {
      "Description": "When bit 2 of FENCE_OPTIONS is set this parameter controls the frequency of margin breach notifications. If set to 0 only new margin breaches are notified.",
      "DisplayName": "Fence margin notification frequency in hz",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "FENCE_OPTIONS": {
      "Bitmask": {
        "0": "Disable mode change following fence action until fence breach is cleared",
        "1": "Allow union of inclusion areas",
        "2": "Notify on margin breaches"
      },
      "Description": "When bit 0 is set disable mode change following fence action until fence breach is cleared. When bit 1 is set the allowable flight areas is the union of all polygon and circle fence areas instead of the intersection, which means a fence breach occurs only if you are outside all of the fence areas.",
      "DisplayName": "Fence options",
      "User": "Standard"
    },
    "FENCE_RADIUS": {
      "Description": "Circle fence radius which when breached will cause an RTL",
      "DisplayName": "Circular Fence Radius",
      "Range": {
        "high": "10000",
        "low": "30"
      },
      "Units": "m",
      "User": "Standard"
    },
    "FENCE_TOTAL": {
      "Description": "Number of polygon points saved in eeprom (do not update manually)",
      "DisplayName": "Fence polygon point total",
      "Range": {
        "high": "20",
        "low": "1"
      },
      "User": "Standard"
    },
    "FENCE_TYPE": {
      "Bitmask": {
        "0": "Max altitude",
        "1": "Circle Centered on Home",
        "2": "Inclusion/Exclusion Circles+Polygons",
        "3": "Min altitude"
      },
      "Description": "Configured fence types held as bitmask. Max altitude, Circle and Polygon fences will be immediately enabled if configured. Min altitude fence will only be enabled once the minimum altitude is reached.",
      "DisplayName": "Fence Type",
      "User": "Standard"
    }
  },
  "FFT_": {
    "FFT_ATT_REF": {
      "Description": "FFT attenuation level in dB for bandwidth calculation and peak detection. The bandwidth is calculated by comparing peak power output with the attenuated version. The default of 15 has shown to be a good compromise in both simulations and real flight.",
      "DisplayName": "FFT attenuation for bandwidth calculation",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "User": "Advanced"
    },
    "FFT_BW_HOVER": {
      "Description": "FFT learned bandwidth at hover for the attenuation frequencies.",
      "DisplayName": "FFT learned bandwidth at hover",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "User": "Advanced"
    },
    "FFT_ENABLE": {
      "Description": "Enable Gyro FFT analyser",
      "DisplayName": "Enable",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "FFT_FREQ_HOVER": {
      "Description": "The learned hover noise frequency",
      "DisplayName": "FFT learned hover frequency",
      "Range": {
        "high": "250",
        "low": "0"
      },
      "User": "Advanced"
    },
    "FFT_HMNC_FIT": {
      "Description": "FFT harmonic fit frequency threshold percentage at which a signal of the appropriate frequency is determined to be the harmonic of another. Signals that have a harmonic relationship that varies at most by this percentage are considered harmonics of each other for the purpose of selecting the harmonic notch frequency. If a match is found then the lower frequency harmonic is always used as the basis for the dynamic harmonic notch. A value of zero completely disables harmonic matching.",
      "DisplayName": "FFT harmonic fit frequency threshold",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "FFT_HMNC_PEAK": {
      "Description": "The FFT harmonic peak target that should be returned by FTN1.PkAvg. The resulting value will be used by the harmonic notch if configured to track the FFT frequency. By default the appropriate peak is auto-detected based on the harmonic fit between peaks and the energy-weighted average frequency on roll on pitch is used. Setting this to 1 will always target the highest energy peak. Setting this to 2 will target the highest energy peak that is lower in frequency than the highest energy peak. Setting this to 3 will target the highest energy peak that is higher in frequency than the highest energy peak. Setting this to 4 will target the highest energy peak on the roll axis only and only the roll frequency will be used (some vehicles have a much more pronounced peak on roll). Setting this to 5 will target the highest energy peak on the pitch axis only and only the pitch frequency will be used (some vehicles have a much more pronounced peak on roll).",
      "DisplayName": "FFT harmonic peak target",
      "User": "Advanced",
      "Values": {
        "0": "Auto",
        "1": "Center Frequency",
        "2": "Lower-Shoulder Frequency",
        "3": "Upper-Shoulder Frequency",
        "4": "Roll-Axis",
        "5": "Pitch-Axis"
      }
    },
    "FFT_MAXHZ": {
      "Description": "Upper bound of FFT frequency detection in Hz. On smaller vehicles the maximum motor frequency is likely to be significantly higher than for larger vehicles.",
      "DisplayName": "Maximum Frequency",
      "Range": {
        "high": "495",
        "low": "20"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "FFT_MINHZ": {
      "Description": "Lower bound of FFT frequency detection in Hz. On larger vehicles the minimum motor frequency is likely to be significantly lower than for smaller vehicles.",
      "DisplayName": "Minimum Frequency",
      "Range": {
        "high": "400",
        "low": "20"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "FFT_NUM_FRAMES": {
      "Description": "Number of output frequency frames to retain and average in order to calculate final frequencies. Averaging output frames can drastically reduce noise and jitter at the cost of latency as long as the input is stable. The default is to perform no averaging. For rapidly changing frequencies (e.g. smaller aircraft) fewer frames should be averaged.",
      "DisplayName": "FFT output frames to retain and average",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "FFT_OPTIONS": {
      "Bitmask": {
        "0": "Enable post-filter FFT",
        "1": "Check motor noise"
      },
      "Description": "FFT configuration options. Values: 1:Apply the FFT *after* the filter bank,2:Check noise at the motor frequencies using ESC data as a reference",
      "DisplayName": "FFT options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "FFT_SAMPLE_MODE": {
      "Description": "Sampling mode (and therefore rate). 0: Gyro rate sampling, 1: Fast loop rate sampling, 2: Fast loop rate / 2 sampling, 3: Fast loop rate / 3 sampling. Takes effect on reboot.",
      "DisplayName": "Sample Mode",
      "Range": {
        "high": "4",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "FFT_SNR_REF": {
      "Description": "FFT SNR reference threshold in dB at which a signal is determined to be present.",
      "DisplayName": "FFT SNR reference threshold",
      "Range": {
        "high": "100.0",
        "low": "0.0"
      },
      "User": "Advanced"
    },
    "FFT_THR_REF": {
      "Description": "FFT learned thrust reference for the hover frequency and FFT minimum frequency.",
      "DisplayName": "FFT learned thrust reference",
      "Range": {
        "high": "0.9",
        "low": "0.01"
      },
      "User": "Advanced"
    },
    "FFT_WINDOW_OLAP": {
      "Description": "Percentage of window to be overlapped before another frame is process. Takes effect on reboot. A good default is 50% overlap. Higher overlap results in more processed frames but not necessarily more temporal resolution. Lower overlap results in lost information at the frame edges.",
      "DisplayName": "FFT window overlap",
      "Range": {
        "high": "0.9",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "FFT_WINDOW_SIZE": {
      "Description": "Size of window to be used in FFT calculations. Takes effect on reboot. Must be a power of 2 and between 32 and 512. Larger windows give greater frequency resolution but poorer time resolution, consume more CPU time and may not be appropriate for all vehicles. Time and frequency resolution are given by the sample-rate / window-size. Windows of 256 are only really recommended for F7 class boards, windows of 512 or more H7 class.",
      "DisplayName": "FFT window size",
      "Range": {
        "high": "1024",
        "low": "32"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "FILT1_": {
    "FILT1_NOTCH_ATT": {
      "Description": "Notch Filter attenuation in dB.",
      "DisplayName": "Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "FILT1_NOTCH_FREQ": {
      "Description": "Notch Filter center frequency in Hz.",
      "DisplayName": "Notch Filter center frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "FILT1_NOTCH_Q": {
      "Description": "Notch Filter quality factor given by the notch centre frequency divided by its bandwidth.",
      "DisplayName": "Notch Filter quality factor",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Advanced"
    },
    "FILT1_TYPE": {
      "Description": "Filter Type",
      "DisplayName": "Filter Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disable",
        "1": "Notch Filter"
      }
    }
  },
  "FILT2_": {
    "FILT2_NOTCH_ATT": {
      "Description": "Notch Filter attenuation in dB.",
      "DisplayName": "Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "FILT2_NOTCH_FREQ": {
      "Description": "Notch Filter center frequency in Hz.",
      "DisplayName": "Notch Filter center frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "FILT2_NOTCH_Q": {
      "Description": "Notch Filter quality factor given by the notch centre frequency divided by its bandwidth.",
      "DisplayName": "Notch Filter quality factor",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Advanced"
    },
    "FILT2_TYPE": {
      "Description": "Filter Type",
      "DisplayName": "Filter Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disable",
        "1": "Notch Filter"
      }
    }
  },
  "FILT3_": {
    "FILT3_NOTCH_ATT": {
      "Description": "Notch Filter attenuation in dB.",
      "DisplayName": "Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "FILT3_NOTCH_FREQ": {
      "Description": "Notch Filter center frequency in Hz.",
      "DisplayName": "Notch Filter center frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "FILT3_NOTCH_Q": {
      "Description": "Notch Filter quality factor given by the notch centre frequency divided by its bandwidth.",
      "DisplayName": "Notch Filter quality factor",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Advanced"
    },
    "FILT3_TYPE": {
      "Description": "Filter Type",
      "DisplayName": "Filter Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disable",
        "1": "Notch Filter"
      }
    }
  },
  "FILT4_": {
    "FILT4_NOTCH_ATT": {
      "Description": "Notch Filter attenuation in dB.",
      "DisplayName": "Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "FILT4_NOTCH_FREQ": {
      "Description": "Notch Filter center frequency in Hz.",
      "DisplayName": "Notch Filter center frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "FILT4_NOTCH_Q": {
      "Description": "Notch Filter quality factor given by the notch centre frequency divided by its bandwidth.",
      "DisplayName": "Notch Filter quality factor",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Advanced"
    },
    "FILT4_TYPE": {
      "Description": "Filter Type",
      "DisplayName": "Filter Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disable",
        "1": "Notch Filter"
      }
    }
  },
  "FILT5_": {
    "FILT5_NOTCH_ATT": {
      "Description": "Notch Filter attenuation in dB.",
      "DisplayName": "Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "FILT5_NOTCH_FREQ": {
      "Description": "Notch Filter center frequency in Hz.",
      "DisplayName": "Notch Filter center frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "FILT5_NOTCH_Q": {
      "Description": "Notch Filter quality factor given by the notch centre frequency divided by its bandwidth.",
      "DisplayName": "Notch Filter quality factor",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Advanced"
    },
    "FILT5_TYPE": {
      "Description": "Filter Type",
      "DisplayName": "Filter Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disable",
        "1": "Notch Filter"
      }
    }
  },
  "FILT6_": {
    "FILT6_NOTCH_ATT": {
      "Description": "Notch Filter attenuation in dB.",
      "DisplayName": "Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "FILT6_NOTCH_FREQ": {
      "Description": "Notch Filter center frequency in Hz.",
      "DisplayName": "Notch Filter center frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "FILT6_NOTCH_Q": {
      "Description": "Notch Filter quality factor given by the notch centre frequency divided by its bandwidth.",
      "DisplayName": "Notch Filter quality factor",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Advanced"
    },
    "FILT6_TYPE": {
      "Description": "Filter Type",
      "DisplayName": "Filter Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disable",
        "1": "Notch Filter"
      }
    }
  },
  "FILT7_": {
    "FILT7_NOTCH_ATT": {
      "Description": "Notch Filter attenuation in dB.",
      "DisplayName": "Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "FILT7_NOTCH_FREQ": {
      "Description": "Notch Filter center frequency in Hz.",
      "DisplayName": "Notch Filter center frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "FILT7_NOTCH_Q": {
      "Description": "Notch Filter quality factor given by the notch centre frequency divided by its bandwidth.",
      "DisplayName": "Notch Filter quality factor",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Advanced"
    },
    "FILT7_TYPE": {
      "Description": "Filter Type",
      "DisplayName": "Filter Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disable",
        "1": "Notch Filter"
      }
    }
  },
  "FILT8_": {
    "FILT8_NOTCH_ATT": {
      "Description": "Notch Filter attenuation in dB.",
      "DisplayName": "Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "FILT8_NOTCH_FREQ": {
      "Description": "Notch Filter center frequency in Hz.",
      "DisplayName": "Notch Filter center frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "FILT8_NOTCH_Q": {
      "Description": "Notch Filter quality factor given by the notch centre frequency divided by its bandwidth.",
      "DisplayName": "Notch Filter quality factor",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Advanced"
    },
    "FILT8_TYPE": {
      "Description": "Filter Type",
      "DisplayName": "Filter Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disable",
        "1": "Notch Filter"
      }
    }
  },
  "FLOW": {
    "FLOW_ADDR": {
      "Description": "This is used to select between multiple possible I2C addresses for some sensor types. For PX4Flow you can choose 0 to 7 for the 8 possible addresses on the I2C bus.",
      "DisplayName": "Address on the bus",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Advanced"
    },
    "FLOW_FXSCALER": {
      "Description": "This sets the parts per thousand scale factor correction applied to the flow sensor X axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the X axis optical flow reading by 0.1%. Negative values reduce the scale factor.",
      "DisplayName": "X axis optical flow scale factor correction",
      "Increment": "1",
      "Range": {
        "high": "+800",
        "low": "-800"
      },
      "User": "Standard"
    },
    "FLOW_FYSCALER": {
      "Description": "This sets the parts per thousand scale factor correction applied to the flow sensor Y axis optical rate. It can be used to correct for variations in effective focal length. Each positive increment of 1 increases the scale factor applied to the Y axis optical flow reading by 0.1%. Negative values reduce the scale factor.",
      "DisplayName": "Y axis optical flow scale factor correction",
      "Increment": "1",
      "Range": {
        "high": "+800",
        "low": "-800"
      },
      "User": "Standard"
    },
    "FLOW_OPTIONS": {
      "Bitmask": {
        "0": "Roll/Pitch stabilised"
      },
      "Description": "Optical flow options. Bit 0 should be set if the sensor is stabilised (e.g. mounted on a gimbal)",
      "DisplayName": "Optical flow options",
      "User": "Standard"
    },
    "FLOW_ORIENT_YAW": {
      "Description": "Specifies the number of centi-degrees that the flow sensor is yawed relative to the vehicle. A sensor with its X-axis pointing to the right of the vehicle X axis has a positive yaw angle.",
      "DisplayName": "Flow sensor yaw alignment",
      "Increment": "10",
      "Range": {
        "high": "+18000",
        "low": "-17999"
      },
      "Units": "cdeg",
      "User": "Standard"
    },
    "FLOW_POS_X": {
      "Description": "X position of the optical flow sensor focal point in body frame. Positive X is forward of the origin.",
      "DisplayName": "X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "FLOW_POS_Y": {
      "Description": "Y position of the optical flow sensor focal point in body frame. Positive Y is to the right of the origin.",
      "DisplayName": "Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "FLOW_POS_Z": {
      "Description": "Z position of the optical flow sensor focal point in body frame. Positive Z is down from the origin.",
      "DisplayName": "Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "FLOW_TYPE": {
      "Description": "Optical flow sensor type",
      "DisplayName": "Optical flow sensor type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "PX4Flow",
        "10": "SITL",
        "2": "Pixart",
        "3": "Bebop",
        "4": "CXOF",
        "5": "MAVLink",
        "6": "DroneCAN",
        "7": "MSP",
        "8": "UPFLOW"
      }
    }
  },
  "FRSKY_": {
    "FRSKY_DNLINK1_ID": {
      "Description": "Change the first extra downlink sensor id (SPort only)",
      "DisplayName": "First downlink sensor id",
      "User": "Advanced",
      "Values": {
        "-1": "Disable",
        "10": "10",
        "11": "11",
        "12": "12",
        "13": "13",
        "14": "14",
        "15": "15",
        "16": "16",
        "17": "17",
        "18": "18",
        "19": "19",
        "20": "20",
        "21": "21",
        "22": "22",
        "23": "23",
        "24": "24",
        "25": "25",
        "26": "26",
        "7": "7",
        "8": "8",
        "9": "9"
      }
    },
    "FRSKY_DNLINK2_ID": {
      "Description": "Change the second extra downlink sensor id (SPort only)",
      "DisplayName": "Second downlink sensor id",
      "User": "Advanced",
      "Values": {
        "-1": "Disable",
        "10": "10",
        "11": "11",
        "12": "12",
        "13": "13",
        "14": "14",
        "15": "15",
        "16": "16",
        "17": "17",
        "18": "18",
        "19": "19",
        "20": "20",
        "21": "21",
        "22": "22",
        "23": "23",
        "24": "24",
        "25": "25",
        "26": "26",
        "7": "7",
        "8": "8",
        "9": "9"
      }
    },
    "FRSKY_DNLINK_ID": {
      "Description": "Change the default downlink sensor id (SPort only)",
      "DisplayName": "Default downlink sensor id",
      "User": "Advanced",
      "Values": {
        "-1": "Disable",
        "10": "10",
        "11": "11",
        "12": "12",
        "13": "13",
        "14": "14",
        "15": "15",
        "16": "16",
        "17": "17",
        "18": "18",
        "19": "19",
        "20": "20",
        "21": "21",
        "22": "22",
        "23": "23",
        "24": "24",
        "25": "25",
        "26": "26",
        "27": "27",
        "7": "7",
        "8": "8",
        "9": "9"
      }
    },
    "FRSKY_OPTIONS": {
      "Bitmask": {
        "0": "EnableAirspeedAndGroundspeed"
      },
      "Description": "A bitmask to set some FRSky Telemetry specific options",
      "DisplayName": "FRSky Telemetry Options",
      "User": "Standard"
    },
    "FRSKY_UPLINK_ID": {
      "Description": "Change the uplink sensor id (SPort only)",
      "DisplayName": "Uplink sensor id",
      "User": "Advanced",
      "Values": {
        "-1": "Disable",
        "10": "10",
        "11": "11",
        "12": "12",
        "13": "13",
        "14": "14",
        "15": "15",
        "16": "16",
        "17": "17",
        "18": "18",
        "19": "19",
        "20": "20",
        "21": "21",
        "22": "22",
        "23": "23",
        "24": "24",
        "25": "25",
        "26": "26",
        "7": "7",
        "8": "8",
        "9": "9"
      }
    }
  },
  "GEN_": {
    "GEN_OPTIONS": {
      "Bitmask": {
        "0": "Suppress Maintenance-Required Warnings"
      },
      "Description": "Bitmask of options for generators",
      "DisplayName": "Generator Options",
      "User": "Standard"
    },
    "GEN_TYPE": {
      "Description": "Generator type",
      "DisplayName": "Generator type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "IE 650w 800w Fuel Cell",
        "2": "IE 2.4kW Fuel Cell",
        "3": "Richenpower",
        "4": "Loweheiser",
        "5": "CORTEX"
      }
    }
  },
  "GEN_L_": {
    "GEN_L_IDLE_TEMP": {
      "Description": "temperature required for generator to return to idle after having run",
      "DisplayName": "Idle Temperature",
      "User": "Advanced"
    },
    "GEN_L_IDLE_TH": {
      "Description": "throttle value to use when idling",
      "DisplayName": "Idle throttle",
      "User": "Advanced"
    },
    "GEN_L_IDLE_TH_H": {
      "Description": "throttle value to use when warming up or cooling down",
      "DisplayName": "High Idle throttle",
      "User": "Advanced"
    },
    "GEN_L_MNT_TIME": {
      "Description": "Seconds until maintenance required",
      "DisplayName": "Seconds until maintenance required",
      "User": "Advanced"
    },
    "GEN_L_OVER_TEMP": {
      "Description": "threshold temperature for the cylinder head above which the mavlink over temperature message gets sent",
      "DisplayName": "Cylinder Head Over Temperature Warning Level",
      "Units": "degC",
      "User": "Advanced"
    },
    "GEN_L_RUNTIME": {
      "Description": "Total time this generator has run in seconds",
      "DisplayName": "Total runtime",
      "User": "Advanced"
    },
    "GEN_L_RUN_TEMP": {
      "Description": "temperature required for generator to start producing power in deg celsius",
      "DisplayName": "Run Temperature",
      "User": "Advanced"
    }
  },
  "GPS": {
    "GPS_AUTO_CONFIG": {
      "Description": "Controls if the autopilot should automatically configure the GPS based on the parameters and default settings",
      "DisplayName": "Automatic GPS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Disables automatic configuration",
        "1": "Enable automatic configuration for Serial GPSes only",
        "2": "Enable automatic configuration for DroneCAN as well",
        "3": "Clear all configurations not set by ardupilot (UBlox only)"
      }
    },
    "GPS_AUTO_SWITCH": {
      "Description": "Automatic switchover to GPS reporting best lock, 1:UseBest selects the GPS with highest status, if both are equal the GPS with highest satellite count is used 4:Use primary if 3D fix or better, will revert to 'UseBest' behaviour if 3D fix is lost on primary",
      "DisplayName": "Automatic Switchover Setting",
      "User": "Advanced",
      "Values": {
        "0": "Use primary",
        "1": "UseBest",
        "2": "Blend",
        "4": "Use primary if 3D fix or better"
      }
    },
    "GPS_BLEND_MASK": {
      "Bitmask": {
        "0": "Horiz Pos",
        "1": "Vert Pos",
        "2": "Speed"
      },
      "Description": "Determines which of the accuracy measures Horizontal position, Vertical Position and Speed are used to calculate the weighting on each GPS receiver when soft switching has been selected by setting GPS_AUTO_SWITCH to 2(Blend)",
      "DisplayName": "Multi GPS Blending Mask",
      "User": "Advanced"
    },
    "GPS_CAN_NODEID1": {
      "Description": "GPS Node id for first-discovered GPS.Renamed in 4.6 and later to GPS1_CAN_NODEID.",
      "DisplayName": "GPS Node ID 1",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "GPS_CAN_NODEID2": {
      "Description": "GPS Node id for second-discovered GPS.Renamed in 4.6 and later to GPS2_CAN_NODEID.",
      "DisplayName": "GPS Node ID 2",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "GPS_COM_PORT": {
      "Description": "The physical COM port on the connected device, currently only applies to SBF and GSOF GPS,Renamed in 4.6 and later to GPS1_COM_PORT.",
      "DisplayName": "GPS physical COM port",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "COM1(RS232) on GSOF",
        "1": "COM2(TTL) on GSOF"
      }
    },
    "GPS_COM_PORT2": {
      "Description": "The physical COM port on the connected device, currently only applies to SBF and GSOF GPS.Renamed in 4.6 and later to GPS1_COM_PORT.",
      "DisplayName": "GPS physical COM port",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "GPS_DELAY_MS": {
      "Description": "Controls the amount of GPS  measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.Renamed in 4.6 and later to GPS1_DELAY_MS.",
      "DisplayName": "GPS delay in milliseconds",
      "Range": {
        "high": "250",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "ms",
      "User": "Advanced"
    },
    "GPS_DELAY_MS2": {
      "Description": "Controls the amount of GPS  measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.Renamed in 4.6 and later to GPS2_DELAY_MS.",
      "DisplayName": "GPS 2 delay in milliseconds",
      "Range": {
        "high": "250",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "ms",
      "User": "Advanced"
    },
    "GPS_DRV_OPTIONS": {
      "Bitmask": {
        "0": "Use UART2 for moving baseline on ublox",
        "1": "Use base station for GPS yaw on SBF",
        "2": "Use baudrate 115200 on ublox",
        "3": "Use dedicated CAN port b/w GPSes for moving baseline",
        "4": "Use ellipsoid height instead of AMSL",
        "5": "Override GPS satellite health of L5 band from L1 health",
        "6": "Enable RTCM full parse even for a single channel",
        "7": "Disable automatic full RTCM parsing when RTCM seen on more than one channel",
        "8": "Force UBlox Config Get/Set for configuration then automatic configuration for Serial GPSes only"
      },
      "Description": "Additional backend specific options",
      "DisplayName": "driver options",
      "User": "Advanced"
    },
    "GPS_GNSS_MODE": {
      "Bitmask": {
        "0": "GPS",
        "1": "SBAS",
        "2": "Galileo",
        "3": "Beidou",
        "4": "IMES",
        "5": "QZSS",
        "6": "GLONASS"
      },
      "Description": "Bitmask for what GNSS system to use on the first GPS (all unchecked or zero to leave GPS as configured).Renamed in 4.6 and later to GPS1_GNSS_MODE.",
      "DisplayName": "GNSS system configuration",
      "User": "Advanced"
    },
    "GPS_GNSS_MODE2": {
      "Bitmask": {
        "0": "GPS",
        "1": "SBAS",
        "2": "Galileo",
        "3": "Beidou",
        "4": "IMES",
        "5": "QZSS",
        "6": "GLONASS"
      },
      "Description": "Bitmask for what GNSS system to use on the second GPS (all unchecked or zero to leave GPS as configured). Renamed in 4.6 and later to GPS2_GNSS_MODE",
      "DisplayName": "GNSS system configuration.",
      "User": "Advanced"
    },
    "GPS_INJECT_TO": {
      "Description": "The GGS can send raw serial packets to inject data to multiple GPSes.",
      "DisplayName": "Destination for GPS_INJECT_DATA MAVLink packets",
      "User": "Advanced",
      "Values": {
        "0": "send to first GPS",
        "1": "send to 2nd GPS",
        "127": "send to all"
      }
    },
    "GPS_MIN_ELEV": {
      "Description": "This sets the minimum elevation of satellites above the horizon for them to be used for navigation. Setting this to -100 leaves the minimum elevation set to the GPS modules default.",
      "DisplayName": "Minimum elevation",
      "Range": {
        "high": "90",
        "low": "-100"
      },
      "Units": "deg",
      "User": "Advanced"
    },
    "GPS_NAVFILTER": {
      "Description": "Navigation filter engine setting",
      "DisplayName": "Navigation filter setting",
      "User": "Advanced",
      "Values": {
        "0": "Portable",
        "2": "Stationary",
        "3": "Pedestrian",
        "4": "Automotive",
        "5": "Sea",
        "6": "Airborne1G",
        "7": "Airborne2G",
        "8": "Airborne4G"
      }
    },
    "GPS_POS1_X": {
      "Description": "X position of the first GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.Renamed in 4.6 and later to GPS1_POS_X.",
      "DisplayName": "Antenna X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_POS1_Y": {
      "Description": "Y position of the first GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.Renamed in 4.6 and later to GPS1_POS_Y.",
      "DisplayName": "Antenna Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_POS1_Z": {
      "Description": "Z position of the first GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.Renamed in 4.6 and later to GPS1_POS_Z.",
      "DisplayName": "Antenna Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_POS2_X": {
      "Description": "X position of the second GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.Renamed in 4.6 and later to GPS2_POS_X.",
      "DisplayName": "Antenna X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_POS2_Y": {
      "Description": "Y position of the second GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.Renamed in 4.6 and later to GPS2_POS_Y.",
      "DisplayName": "Antenna Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_POS2_Z": {
      "Description": "Z position of the second GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.Renamed in 4.6 and later to GPS2_POS_Z.",
      "DisplayName": "Antenna Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_PRIMARY": {
      "Description": "This GPS will be used when GPS_AUTO_SWITCH is 0 and used preferentially with GPS_AUTO_SWITCH = 4.",
      "DisplayName": "Primary GPS",
      "Increment": "1",
      "User": "Advanced",
      "Values": {
        "0": "FirstGPS",
        "1": "SecondGPS"
      }
    },
    "GPS_RATE_MS": {
      "Description": "Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.Renamed in 4.6 and later to GPS1_RATE_MS",
      "DisplayName": "GPS update rate in milliseconds",
      "Range": {
        "high": "200",
        "low": "50"
      },
      "Units": "ms",
      "User": "Advanced",
      "Values": {
        "100": "10Hz",
        "125": "8Hz",
        "200": "5Hz"
      }
    },
    "GPS_RATE_MS2": {
      "Description": "Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.Renamed in 4.6 and later to GPS2_RATE_MS",
      "DisplayName": "GPS 2 update rate in milliseconds",
      "Range": {
        "high": "200",
        "low": "50"
      },
      "Units": "ms",
      "User": "Advanced",
      "Values": {
        "100": "10Hz",
        "125": "8Hz",
        "200": "5Hz"
      }
    },
    "GPS_RAW_DATA": {
      "Description": "Handles logging raw data; on uBlox chips that support raw data this will log RXM messages into logger; on Septentrio this will log on the equipment's SD card and when set to 2, the autopilot will try to stop logging after disarming and restart after arming",
      "DisplayName": "Raw data logging",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Ignore",
        "1": "Always log",
        "2": "Stop logging when disarmed (SBF only)",
        "5": "Only log every five samples (uBlox only)"
      }
    },
    "GPS_SAVE_CFG": {
      "Description": "Determines whether the configuration for this GPS should be written to non-volatile memory on the GPS. Currently working for UBlox 6 series and above.",
      "DisplayName": "Save GPS configuration",
      "User": "Advanced",
      "Values": {
        "0": "Do not save config",
        "1": "Save config",
        "2": "Save only when needed"
      }
    },
    "GPS_SBAS_MODE": {
      "Description": "This sets the SBAS (satellite based augmentation system) mode if available on this GPS. If set to 2 then the SBAS mode is not changed in the GPS. Otherwise the GPS will be reconfigured to enable/disable SBAS. Disabling SBAS may be worthwhile in some parts of the world where an SBAS signal is available but the baseline is too long to be useful.",
      "DisplayName": "SBAS Mode",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "NoChange"
      }
    },
    "GPS_SBP_LOGMASK": {
      "Description": "Masked with the SBP msg_type field to determine whether SBR1/SBR2 data is logged",
      "DisplayName": "Swift Binary Protocol Logging Mask",
      "User": "Advanced",
      "Values": {
        "-1": "All (0xFFFF)",
        "-256": "External only (0xFF00)",
        "0": "None (0x0000)"
      }
    },
    "GPS_TYPE": {
      "Description": "GPS type of 1st GPS.Renamed in 4.6 and later to GPS1_TYPE",
      "DisplayName": "1st GPS type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "AUTO",
        "10": "SBF",
        "11": "GSOF",
        "13": "ERB",
        "14": "MAV",
        "15": "NOVA",
        "16": "HemisphereNMEA",
        "17": "uBlox-MovingBaseline-Base",
        "18": "uBlox-MovingBaseline-Rover",
        "19": "MSP",
        "2": "uBlox",
        "20": "AllyStar",
        "21": "ExternalAHRS",
        "22": "DroneCAN-MovingBaseline-Base",
        "23": "DroneCAN-MovingBaseline-Rover",
        "24": "UnicoreNMEA",
        "25": "UnicoreMovingBaselineNMEA",
        "26": "SBF-DualAntenna",
        "5": "NMEA",
        "6": "SiRF",
        "7": "HIL",
        "8": "SwiftNav",
        "9": "DroneCAN"
      }
    },
    "GPS_TYPE2": {
      "Description": "GPS type of 2nd GPS",
      "DisplayName": "2nd GPS type.Renamed in 4.6 to GPS2_TYPE",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "AUTO",
        "10": "SBF",
        "11": "GSOF",
        "13": "ERB",
        "14": "MAV",
        "15": "NOVA",
        "16": "HemisphereNMEA",
        "17": "uBlox-MovingBaseline-Base",
        "18": "uBlox-MovingBaseline-Rover",
        "19": "MSP",
        "2": "uBlox",
        "20": "AllyStar",
        "21": "ExternalAHRS",
        "22": "DroneCAN-MovingBaseline-Base",
        "23": "DroneCAN-MovingBaseline-Rover",
        "24": "UnicoreNMEA",
        "25": "UnicoreMovingBaselineNMEA",
        "26": "SBF-DualAntenna",
        "5": "NMEA",
        "6": "SiRF",
        "7": "HIL",
        "8": "SwiftNav",
        "9": "DroneCAN"
      }
    }
  },
  "GPS1_": {
    "GPS1_CAN_NODEID": {
      "Description": "GPS Node id for GPS.  Detected node unless CAN_OVRIDE is set",
      "DisplayName": "Detected CAN Node ID for GPS",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "GPS1_CAN_OVRIDE": {
      "Description": "GPS Node id for GPS. If 0 the gps will be automatically selected on a first-come-first-GPS basis.",
      "DisplayName": "DroneCAN GPS NODE ID",
      "User": "Advanced"
    },
    "GPS1_COM_PORT": {
      "Description": "The physical COM port on the connected device, currently only applies to SBF and GSOF GPS",
      "DisplayName": "GPS physical COM port",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "COM1(RS232) on GSOF",
        "1": "COM2(TTL) on GSOF"
      }
    },
    "GPS1_DELAY_MS": {
      "Description": "Controls the amount of GPS  measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",
      "DisplayName": "GPS delay in milliseconds",
      "Range": {
        "high": "250",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "ms",
      "User": "Advanced"
    },
    "GPS1_GNSS_MODE": {
      "Bitmask": {
        "0": "GPS",
        "1": "SBAS",
        "2": "Galileo",
        "3": "Beidou",
        "4": "IMES",
        "5": "QZSS",
        "6": "GLONASS",
        "7": "NAVIC"
      },
      "Description": "Bitmask for what GNSS system to use (all unchecked or zero to leave GPS as configured)",
      "DisplayName": "GNSS system configuration",
      "User": "Advanced"
    },
    "GPS1_POS_X": {
      "Description": "X position of the first GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",
      "DisplayName": "Antenna X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS1_POS_Y": {
      "Description": "Y position of the first GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",
      "DisplayName": "Antenna Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS1_POS_Z": {
      "Description": "Z position of the first GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",
      "DisplayName": "Antenna Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS1_RATE_MS": {
      "Description": "Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",
      "DisplayName": "GPS update rate in milliseconds",
      "Range": {
        "high": "200",
        "low": "50"
      },
      "Units": "ms",
      "User": "Advanced",
      "Values": {
        "100": "10Hz",
        "125": "8Hz",
        "200": "5Hz"
      }
    },
    "GPS1_TYPE": {
      "Description": "GPS type",
      "DisplayName": "GPS type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "AUTO",
        "10": "Septentrio(SBF)",
        "11": "Trimble(GSOF)",
        "13": "ERB",
        "14": "MAVLink",
        "15": "NOVA",
        "16": "HemisphereNMEA",
        "17": "uBlox-MovingBaseline-Base",
        "18": "uBlox-MovingBaseline-Rover",
        "19": "MSP",
        "2": "uBlox",
        "20": "AllyStar",
        "21": "ExternalAHRS",
        "22": "DroneCAN-MovingBaseline-Base",
        "23": "DroneCAN-MovingBaseline-Rover",
        "24": "UnicoreNMEA",
        "25": "UnicoreMovingBaselineNMEA",
        "26": "Septentrio-DualAntenna(SBF)",
        "5": "NMEA",
        "6": "SiRF",
        "7": "HIL",
        "8": "SwiftNav",
        "9": "DroneCAN"
      }
    }
  },
  "GPS1_MB_": {
    "GPS1_MB_OFS_X": {
      "Description": "X position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive X is forward of the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_X.",
      "DisplayName": "Base antenna X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS1_MB_OFS_Y": {
      "Description": "Y position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive Y is to the right of the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_Y.",
      "DisplayName": "Base antenna Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS1_MB_OFS_Z": {
      "Description": "Z position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive Z is down from the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_Z.",
      "DisplayName": "Base antenna Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS1_MB_TYPE": {
      "Description": "Controls the type of moving base used if using moving base.This is renamed in 4.6 and later to GPSx_MB_TYPE.",
      "DisplayName": "Moving base type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Relative to alternate GPS instance",
        "1": "RelativeToCustomBase"
      }
    }
  },
  "GPS2_": {
    "GPS2_CAN_NODEID": {
      "Description": "GPS Node id for GPS.  Detected node unless CAN_OVRIDE is set",
      "DisplayName": "Detected CAN Node ID for GPS",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "GPS2_CAN_OVRIDE": {
      "Description": "GPS Node id for GPS. If 0 the gps will be automatically selected on a first-come-first-GPS basis.",
      "DisplayName": "DroneCAN GPS NODE ID",
      "User": "Advanced"
    },
    "GPS2_COM_PORT": {
      "Description": "The physical COM port on the connected device, currently only applies to SBF and GSOF GPS",
      "DisplayName": "GPS physical COM port",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "COM1(RS232) on GSOF",
        "1": "COM2(TTL) on GSOF"
      }
    },
    "GPS2_DELAY_MS": {
      "Description": "Controls the amount of GPS  measurement delay that the autopilot compensates for. Set to zero to use the default delay for the detected GPS type.",
      "DisplayName": "GPS delay in milliseconds",
      "Range": {
        "high": "250",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "ms",
      "User": "Advanced"
    },
    "GPS2_GNSS_MODE": {
      "Bitmask": {
        "0": "GPS",
        "1": "SBAS",
        "2": "Galileo",
        "3": "Beidou",
        "4": "IMES",
        "5": "QZSS",
        "6": "GLONASS",
        "7": "NAVIC"
      },
      "Description": "Bitmask for what GNSS system to use (all unchecked or zero to leave GPS as configured)",
      "DisplayName": "GNSS system configuration",
      "User": "Advanced"
    },
    "GPS2_POS_X": {
      "Description": "X position of the first GPS antenna in body frame. Positive X is forward of the origin. Use antenna phase centroid location if provided by the manufacturer.",
      "DisplayName": "Antenna X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS2_POS_Y": {
      "Description": "Y position of the first GPS antenna in body frame. Positive Y is to the right of the origin. Use antenna phase centroid location if provided by the manufacturer.",
      "DisplayName": "Antenna Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS2_POS_Z": {
      "Description": "Z position of the first GPS antenna in body frame. Positive Z is down from the origin. Use antenna phase centroid location if provided by the manufacturer.",
      "DisplayName": "Antenna Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS2_RATE_MS": {
      "Description": "Controls how often the GPS should provide a position update. Lowering below 5Hz(default) is not allowed. Raising the rate above 5Hz usually provides little benefit and for some GPS (eg Ublox M9N) can severely impact performance.",
      "DisplayName": "GPS update rate in milliseconds",
      "Range": {
        "high": "200",
        "low": "50"
      },
      "Units": "ms",
      "User": "Advanced",
      "Values": {
        "100": "10Hz",
        "125": "8Hz",
        "200": "5Hz"
      }
    },
    "GPS2_TYPE": {
      "Description": "GPS type",
      "DisplayName": "GPS type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "AUTO",
        "10": "Septentrio(SBF)",
        "11": "Trimble(GSOF)",
        "13": "ERB",
        "14": "MAVLink",
        "15": "NOVA",
        "16": "HemisphereNMEA",
        "17": "uBlox-MovingBaseline-Base",
        "18": "uBlox-MovingBaseline-Rover",
        "19": "MSP",
        "2": "uBlox",
        "20": "AllyStar",
        "21": "ExternalAHRS",
        "22": "DroneCAN-MovingBaseline-Base",
        "23": "DroneCAN-MovingBaseline-Rover",
        "24": "UnicoreNMEA",
        "25": "UnicoreMovingBaselineNMEA",
        "26": "Septentrio-DualAntenna(SBF)",
        "5": "NMEA",
        "6": "SiRF",
        "7": "HIL",
        "8": "SwiftNav",
        "9": "DroneCAN"
      }
    }
  },
  "GPS2_MB_": {
    "GPS2_MB_OFS_X": {
      "Description": "X position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive X is forward of the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_X.",
      "DisplayName": "Base antenna X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS2_MB_OFS_Y": {
      "Description": "Y position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive Y is to the right of the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_Y.",
      "DisplayName": "Base antenna Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS2_MB_OFS_Z": {
      "Description": "Z position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive Z is down from the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_Z.",
      "DisplayName": "Base antenna Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS2_MB_TYPE": {
      "Description": "Controls the type of moving base used if using moving base.This is renamed in 4.6 and later to GPSx_MB_TYPE.",
      "DisplayName": "Moving base type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Relative to alternate GPS instance",
        "1": "RelativeToCustomBase"
      }
    }
  },
  "GPS_MB1_": {
    "GPS_MB1_OFS_X": {
      "Description": "X position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive X is forward of the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_X.",
      "DisplayName": "Base antenna X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_MB1_OFS_Y": {
      "Description": "Y position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive Y is to the right of the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_Y.",
      "DisplayName": "Base antenna Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_MB1_OFS_Z": {
      "Description": "Z position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive Z is down from the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_Z.",
      "DisplayName": "Base antenna Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_MB1_TYPE": {
      "Description": "Controls the type of moving base used if using moving base.This is renamed in 4.6 and later to GPSx_MB_TYPE.",
      "DisplayName": "Moving base type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Relative to alternate GPS instance",
        "1": "RelativeToCustomBase"
      }
    }
  },
  "GPS_MB2_": {
    "GPS_MB2_OFS_X": {
      "Description": "X position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive X is forward of the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_X.",
      "DisplayName": "Base antenna X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_MB2_OFS_Y": {
      "Description": "Y position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive Y is to the right of the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_Y.",
      "DisplayName": "Base antenna Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_MB2_OFS_Z": {
      "Description": "Z position of the base (primary) GPS antenna in body frame from the position of the 2nd antenna. Positive Z is down from the 2nd antenna. Use antenna phase centroid location if provided by the manufacturer.This is renamed in 4.6 and later to GPSx_MB_OFS_Z.",
      "DisplayName": "Base antenna Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "GPS_MB2_TYPE": {
      "Description": "Controls the type of moving base used if using moving base.This is renamed in 4.6 and later to GPSx_MB_TYPE.",
      "DisplayName": "Moving base type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Relative to alternate GPS instance",
        "1": "RelativeToCustomBase"
      }
    }
  },
  "GRIP_": {
    "GRIP_AUTOCLOSE": {
      "Description": "Time in seconds that gripper close the gripper after opening; 0 to disable",
      "DisplayName": "Gripper Autoclose time",
      "Range": {
        "high": "255",
        "low": "0.25"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "GRIP_CAN_ID": {
      "Description": "Refer to https://docs.zubax.com/opengrab_epm_v3#UAVCAN_interface",
      "DisplayName": "EPM UAVCAN Hardpoint ID",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Standard"
    },
    "GRIP_ENABLE": {
      "Description": "Gripper enable/disable",
      "DisplayName": "Gripper Enable/Disable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "GRIP_GRAB": {
      "Description": "PWM value in microseconds sent to Gripper to initiate grabbing the cargo",
      "DisplayName": "Gripper Grab PWM",
      "Range": {
        "high": "2000",
        "low": "1000"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "GRIP_NEUTRAL": {
      "Description": "PWM value in microseconds sent to grabber when not grabbing or releasing",
      "DisplayName": "Neutral PWM",
      "Range": {
        "high": "2000",
        "low": "1000"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "GRIP_REGRAB": {
      "Description": "Time in seconds that EPM gripper will regrab the cargo to ensure grip has not weakened; 0 to disable",
      "DisplayName": "EPM Gripper Regrab interval",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "GRIP_RELEASE": {
      "Description": "PWM value in microseconds sent to Gripper to release the cargo",
      "DisplayName": "Gripper Release PWM",
      "Range": {
        "high": "2000",
        "low": "1000"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "GRIP_TYPE": {
      "Description": "Gripper enable/disable",
      "DisplayName": "Gripper Type",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Servo",
        "2": "EPM"
      }
    }
  },
  "INS": {
    "INS_ACC1_CALTEMP": {
      "Calibration": "1",
      "Description": "Temperature that the 1st accelerometer was calibrated at",
      "DisplayName": "Calibration temperature for 1st accelerometer",
      "Units": "degC",
      "User": "Advanced"
    },
    "INS_ACC2OFFS_X": {
      "Calibration": "1",
      "Description": "Accelerometer2 offsets of X axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer2 offsets of X axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS_ACC2OFFS_Y": {
      "Calibration": "1",
      "Description": "Accelerometer2 offsets of Y axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer2 offsets of Y axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS_ACC2OFFS_Z": {
      "Calibration": "1",
      "Description": "Accelerometer2 offsets of Z axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer2 offsets of Z axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS_ACC2SCAL_X": {
      "Calibration": "1",
      "Description": "Accelerometer2 scaling of X axis.  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer2 scaling of X axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS_ACC2SCAL_Y": {
      "Calibration": "1",
      "Description": "Accelerometer2 scaling of Y axis  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer2 scaling of Y axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS_ACC2SCAL_Z": {
      "Calibration": "1",
      "Description": "Accelerometer2 scaling of Z axis  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer2 scaling of Z axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS_ACC2_CALTEMP": {
      "Calibration": "1",
      "Description": "Temperature that the 2nd accelerometer was calibrated at",
      "DisplayName": "Calibration temperature for 2nd accelerometer",
      "Units": "degC",
      "User": "Advanced"
    },
    "INS_ACC2_ID": {
      "Description": "Accelerometer2 sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Accelerometer2 ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "INS_ACC3OFFS_X": {
      "Calibration": "1",
      "Description": "Accelerometer3 offsets of X axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer3 offsets of X axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS_ACC3OFFS_Y": {
      "Calibration": "1",
      "Description": "Accelerometer3 offsets of Y axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer3 offsets of Y axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS_ACC3OFFS_Z": {
      "Calibration": "1",
      "Description": "Accelerometer3 offsets of Z axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer3 offsets of Z axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS_ACC3SCAL_X": {
      "Calibration": "1",
      "Description": "Accelerometer3 scaling of X axis.  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer3 scaling of X axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS_ACC3SCAL_Y": {
      "Calibration": "1",
      "Description": "Accelerometer3 scaling of Y axis  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer3 scaling of Y axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS_ACC3SCAL_Z": {
      "Calibration": "1",
      "Description": "Accelerometer3 scaling of Z axis  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer3 scaling of Z axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS_ACC3_CALTEMP": {
      "Calibration": "1",
      "Description": "Temperature that the 3rd accelerometer was calibrated at",
      "DisplayName": "Calibration temperature for 3rd accelerometer",
      "Units": "degC",
      "User": "Advanced"
    },
    "INS_ACC3_ID": {
      "Description": "Accelerometer3 sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Accelerometer3 ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "INS_ACCEL_FILTER": {
      "Description": "Filter cutoff frequency for accelerometers. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",
      "DisplayName": "Accel filter cutoff frequency",
      "Range": {
        "high": "256",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "INS_ACCOFFS_X": {
      "Calibration": "1",
      "Description": "Accelerometer offsets of X axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer offsets of X axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS_ACCOFFS_Y": {
      "Calibration": "1",
      "Description": "Accelerometer offsets of Y axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer offsets of Y axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS_ACCOFFS_Z": {
      "Calibration": "1",
      "Description": "Accelerometer offsets of Z axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer offsets of Z axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS_ACCSCAL_X": {
      "Calibration": "1",
      "Description": "Accelerometer scaling of X axis.  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer scaling of X axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS_ACCSCAL_Y": {
      "Calibration": "1",
      "Description": "Accelerometer scaling of Y axis  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer scaling of Y axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS_ACCSCAL_Z": {
      "Calibration": "1",
      "Description": "Accelerometer scaling of Z axis  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer scaling of Z axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS_ACC_BODYFIX": {
      "Description": "The body-fixed accelerometer to be used for trim calculation",
      "DisplayName": "Body-fixed accelerometer",
      "User": "Advanced",
      "Values": {
        "1": "IMU 1",
        "2": "IMU 2",
        "3": "IMU 3"
      }
    },
    "INS_ACC_ID": {
      "Description": "Accelerometer sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Accelerometer ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "INS_ENABLE_MASK": {
      "Bitmask": {
        "0": "FirstIMU",
        "1": "SecondIMU",
        "2": "ThirdIMU",
        "3": "FourthIMU",
        "4": "FifthIMU",
        "5": "SixthIMU",
        "6": "SeventhIMU"
      },
      "Description": "Bitmask of IMUs to enable. It can be used to prevent startup of specific detected IMUs",
      "DisplayName": "IMU enable mask",
      "User": "Advanced"
    },
    "INS_FAST_SAMPLE": {
      "Bitmask": {
        "0": "FirstIMU",
        "1": "SecondIMU",
        "2": "ThirdIMU"
      },
      "Description": "Mask of IMUs to enable fast sampling on, if available",
      "DisplayName": "Fast sampling mask",
      "User": "Advanced"
    },
    "INS_GYR1_CALTEMP": {
      "Calibration": "1",
      "Description": "Temperature that the 1st gyroscope was calibrated at",
      "DisplayName": "Calibration temperature for 1st gyroscope",
      "Units": "degC",
      "User": "Advanced"
    },
    "INS_GYR2OFFS_X": {
      "Calibration": "1",
      "Description": "Gyro2 sensor offsets of X axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro2 offsets of X axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS_GYR2OFFS_Y": {
      "Calibration": "1",
      "Description": "Gyro2 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro2 offsets of Y axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS_GYR2OFFS_Z": {
      "Calibration": "1",
      "Description": "Gyro2 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro2 offsets of Z axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS_GYR2_CALTEMP": {
      "Calibration": "1",
      "Description": "Temperature that the 2nd gyroscope was calibrated at",
      "DisplayName": "Calibration temperature for 2nd gyroscope",
      "Units": "degC",
      "User": "Advanced"
    },
    "INS_GYR2_ID": {
      "Description": "Gyro2 sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Gyro2 ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "INS_GYR3OFFS_X": {
      "Calibration": "1",
      "Description": "Gyro3 sensor offsets of X axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro3 offsets of X axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS_GYR3OFFS_Y": {
      "Calibration": "1",
      "Description": "Gyro3 sensor offsets of Y axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro3 offsets of Y axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS_GYR3OFFS_Z": {
      "Calibration": "1",
      "Description": "Gyro3 sensor offsets of Z axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro3 offsets of Z axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS_GYR3_CALTEMP": {
      "Calibration": "1",
      "Description": "Temperature that the 3rd gyroscope was calibrated at",
      "DisplayName": "Calibration temperature for 3rd gyroscope",
      "Units": "degC",
      "User": "Advanced"
    },
    "INS_GYR3_ID": {
      "Description": "Gyro3 sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Gyro3 ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "INS_GYROFFS_X": {
      "Calibration": "1",
      "Description": "Gyro sensor offsets of X axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro offsets of X axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS_GYROFFS_Y": {
      "Calibration": "1",
      "Description": "Gyro sensor offsets of Y axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro offsets of Y axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS_GYROFFS_Z": {
      "Calibration": "1",
      "Description": "Gyro sensor offsets of Z axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro offsets of Z axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS_GYRO_FILTER": {
      "Description": "Filter cutoff frequency for gyroscopes. This can be set to a lower value to try to cope with very high vibration levels in aircraft. A value of zero means no filtering (not recommended!)",
      "DisplayName": "Gyro filter cutoff frequency",
      "Range": {
        "high": "256",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "INS_GYRO_RATE": {
      "Description": "Gyro rate for IMUs with fast sampling enabled. The gyro rate is the sample rate at which the IMU filters operate and needs to be at least double the maximum filter frequency. If the sensor does not support the selected rate the next highest supported rate will be used. For IMUs which do not support fast sampling this setting is ignored and the default gyro rate of 1Khz is used.",
      "DisplayName": "Gyro rate for IMUs with Fast Sampling enabled",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "1kHz",
        "1": "2kHz",
        "2": "4kHz",
        "3": "8kHz"
      }
    },
    "INS_GYR_CAL": {
      "Description": "Conrols when automatic gyro calibration is performed",
      "DisplayName": "Gyro Calibration scheme",
      "User": "Advanced",
      "Values": {
        "0": "Never",
        "1": "Start-up only"
      }
    },
    "INS_GYR_ID": {
      "Description": "Gyro sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Gyro ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "INS_POS1_X": {
      "Description": "X position of the first IMU Accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer X position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS_POS1_Y": {
      "Description": "Y position of the first IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer Y position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS_POS1_Z": {
      "Description": "Z position of the first IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer Z position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS_POS2_X": {
      "Description": "X position of the second IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer X position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS_POS2_Y": {
      "Description": "Y position of the second IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer Y position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS_POS2_Z": {
      "Description": "Z position of the second IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer Z position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS_POS3_X": {
      "Description": "X position of the third IMU accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer X position",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS_POS3_Y": {
      "Description": "Y position of the third IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer Y position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS_POS3_Z": {
      "Description": "Z position of the third IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer Z position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS_RAW_LOG_OPT": {
      "Bitmask": {
        "0": "Log primary gyro only",
        "1": "Log all gyros",
        "2": "Post filter",
        "3": "Pre and post filter"
      },
      "Description": "Raw logging options bitmask",
      "DisplayName": "Raw logging options",
      "User": "Advanced"
    },
    "INS_STILL_THRESH": {
      "Description": "Threshold to tolerate vibration to determine if vehicle is motionless. This depends on the frame type and if there is a constant vibration due to motors before launch or after landing. Total motionless is about 0.05. Suggested values: Planes/rover use 0.1, multirotors use 1, tradHeli uses 5",
      "DisplayName": "Stillness threshold for detecting if we are moving",
      "Range": {
        "high": "50",
        "low": "0.05"
      },
      "User": "Advanced"
    },
    "INS_TCAL_OPTIONS": {
      "Bitmask": {
        "0": "PersistTemps",
        "1": "PersistAccels"
      },
      "Description": "This enables optional temperature calibration features. Setting of the Persist bits will save the temperature and/or accelerometer calibration parameters in the bootloader sector on the next update of the bootloader.",
      "DisplayName": "Options for temperature calibration",
      "User": "Advanced"
    },
    "INS_TRIM_OPTION": {
      "Description": "Specifies how the accel cal routine determines the trims",
      "DisplayName": "Accel cal trim option",
      "User": "Advanced",
      "Values": {
        "0": "Don't adjust the trims",
        "1": "Assume first orientation was level",
        "2": "Assume ACC_BODYFIX is perfectly aligned to the vehicle"
      }
    },
    "INS_USE": {
      "Description": "Use first IMU for attitude, velocity and position estimates",
      "DisplayName": "Use first IMU for attitude, velocity and position estimates",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "INS_USE2": {
      "Description": "Use second IMU for attitude, velocity and position estimates",
      "DisplayName": "Use second IMU for attitude, velocity and position estimates",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "INS_USE3": {
      "Description": "Use third IMU for attitude, velocity and position estimates",
      "DisplayName": "Use third IMU for attitude, velocity and position estimates",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    }
  },
  "INS4_": {
    "INS4_ACCOFFS_X": {
      "Calibration": "1",
      "Description": "Accelerometer offsets of X axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer offsets of X axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS4_ACCOFFS_Y": {
      "Calibration": "1",
      "Description": "Accelerometer offsets of Y axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer offsets of Y axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS4_ACCOFFS_Z": {
      "Calibration": "1",
      "Description": "Accelerometer offsets of Z axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer offsets of Z axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS4_ACCSCAL_X": {
      "Calibration": "1",
      "Description": "Accelerometer scaling of X axis.  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer scaling of X axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS4_ACCSCAL_Y": {
      "Calibration": "1",
      "Description": "Accelerometer scaling of Y axis  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer scaling of Y axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS4_ACCSCAL_Z": {
      "Calibration": "1",
      "Description": "Accelerometer scaling of Z axis  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer scaling of Z axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS4_ACC_CALTEMP": {
      "Calibration": "1",
      "Description": "Temperature that the accelerometer was calibrated at",
      "DisplayName": "Calibration temperature for accelerometer",
      "Units": "degC",
      "User": "Advanced"
    },
    "INS4_ACC_ID": {
      "Description": "Accelerometer sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Accelerometer ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "INS4_GYROFFS_X": {
      "Calibration": "1",
      "Description": "Gyro sensor offsets of X axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro offsets of X axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS4_GYROFFS_Y": {
      "Calibration": "1",
      "Description": "Gyro sensor offsets of Y axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro offsets of Y axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS4_GYROFFS_Z": {
      "Calibration": "1",
      "Description": "Gyro sensor offsets of Z axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro offsets of Z axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS4_GYR_CALTEMP": {
      "Calibration": "1",
      "Description": "Temperature that the gyroscope was calibrated at",
      "DisplayName": "Calibration temperature for gyroscope",
      "Units": "degC",
      "User": "Advanced"
    },
    "INS4_GYR_ID": {
      "Description": "Gyro sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Gyro ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "INS4_POS_X": {
      "Description": "X position of the first IMU Accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer X position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS4_POS_Y": {
      "Description": "Y position of the first IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer Y position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS4_POS_Z": {
      "Description": "Z position of the first IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer Z position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS4_USE": {
      "Description": "Use first IMU for attitude, velocity and position estimates",
      "DisplayName": "Use first IMU for attitude, velocity and position estimates",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    }
  },
  "INS4_TCAL_": {
    "INS4_TCAL_ACC1_X": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS4_TCAL_ACC1_Y": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS4_TCAL_ACC1_Z": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS4_TCAL_ACC2_X": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS4_TCAL_ACC2_Y": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS4_TCAL_ACC2_Z": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS4_TCAL_ACC3_X": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS4_TCAL_ACC3_Y": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS4_TCAL_ACC3_Z": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS4_TCAL_ENABLE": {
      "Description": "Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",
      "DisplayName": "Enable temperature calibration",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "LearnCalibration"
      }
    },
    "INS4_TCAL_GYR1_X": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS4_TCAL_GYR1_Y": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS4_TCAL_GYR1_Z": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS4_TCAL_GYR2_X": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS4_TCAL_GYR2_Y": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS4_TCAL_GYR2_Z": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS4_TCAL_GYR3_X": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS4_TCAL_GYR3_Y": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS4_TCAL_GYR3_Z": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS4_TCAL_TMAX": {
      "Calibration": "1",
      "Description": "The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",
      "DisplayName": "Temperature calibration max",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "INS4_TCAL_TMIN": {
      "Calibration": "1",
      "Description": "The minimum temperature that the calibration is valid for",
      "DisplayName": "Temperature calibration min",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    }
  },
  "INS5_": {
    "INS5_ACCOFFS_X": {
      "Calibration": "1",
      "Description": "Accelerometer offsets of X axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer offsets of X axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS5_ACCOFFS_Y": {
      "Calibration": "1",
      "Description": "Accelerometer offsets of Y axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer offsets of Y axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS5_ACCOFFS_Z": {
      "Calibration": "1",
      "Description": "Accelerometer offsets of Z axis. This is setup using the acceleration calibration or level operations",
      "DisplayName": "Accelerometer offsets of Z axis",
      "Range": {
        "high": "3.5",
        "low": "-3.5"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "INS5_ACCSCAL_X": {
      "Calibration": "1",
      "Description": "Accelerometer scaling of X axis.  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer scaling of X axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS5_ACCSCAL_Y": {
      "Calibration": "1",
      "Description": "Accelerometer scaling of Y axis  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer scaling of Y axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS5_ACCSCAL_Z": {
      "Calibration": "1",
      "Description": "Accelerometer scaling of Z axis  Calculated during acceleration calibration routine",
      "DisplayName": "Accelerometer scaling of Z axis",
      "Range": {
        "high": "1.2",
        "low": "0.8"
      },
      "User": "Advanced"
    },
    "INS5_ACC_CALTEMP": {
      "Calibration": "1",
      "Description": "Temperature that the accelerometer was calibrated at",
      "DisplayName": "Calibration temperature for accelerometer",
      "Units": "degC",
      "User": "Advanced"
    },
    "INS5_ACC_ID": {
      "Description": "Accelerometer sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Accelerometer ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "INS5_GYROFFS_X": {
      "Calibration": "1",
      "Description": "Gyro sensor offsets of X axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro offsets of X axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS5_GYROFFS_Y": {
      "Calibration": "1",
      "Description": "Gyro sensor offsets of Y axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro offsets of Y axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS5_GYROFFS_Z": {
      "Calibration": "1",
      "Description": "Gyro sensor offsets of Z axis. This is setup on each boot during gyro calibrations",
      "DisplayName": "Gyro offsets of Z axis",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "INS5_GYR_CALTEMP": {
      "Calibration": "1",
      "Description": "Temperature that the gyroscope was calibrated at",
      "DisplayName": "Calibration temperature for gyroscope",
      "Units": "degC",
      "User": "Advanced"
    },
    "INS5_GYR_ID": {
      "Description": "Gyro sensor ID, taking into account its type, bus and instance",
      "DisplayName": "Gyro ID",
      "ReadOnly": "True",
      "User": "Advanced"
    },
    "INS5_POS_X": {
      "Description": "X position of the first IMU Accelerometer in body frame. Positive X is forward of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer X position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS5_POS_Y": {
      "Description": "Y position of the first IMU accelerometer in body frame. Positive Y is to the right of the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer Y position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS5_POS_Z": {
      "Description": "Z position of the first IMU accelerometer in body frame. Positive Z is down from the origin. Attention: The IMU should be located as close to the vehicle c.g. as practical so that the value of this parameter is minimised. Failure to do so can result in noisy navigation velocity measurements due to vibration and IMU gyro noise. If the IMU cannot be moved and velocity noise is a problem, a location closer to the IMU can be used as the body frame origin.",
      "DisplayName": "IMU accelerometer Z position",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "INS5_USE": {
      "Description": "Use first IMU for attitude, velocity and position estimates",
      "DisplayName": "Use first IMU for attitude, velocity and position estimates",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    }
  },
  "INS5_TCAL_": {
    "INS5_TCAL_ACC1_X": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS5_TCAL_ACC1_Y": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS5_TCAL_ACC1_Z": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS5_TCAL_ACC2_X": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS5_TCAL_ACC2_Y": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS5_TCAL_ACC2_Z": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS5_TCAL_ACC3_X": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS5_TCAL_ACC3_Y": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS5_TCAL_ACC3_Z": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS5_TCAL_ENABLE": {
      "Description": "Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",
      "DisplayName": "Enable temperature calibration",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "LearnCalibration"
      }
    },
    "INS5_TCAL_GYR1_X": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS5_TCAL_GYR1_Y": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS5_TCAL_GYR1_Z": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS5_TCAL_GYR2_X": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS5_TCAL_GYR2_Y": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS5_TCAL_GYR2_Z": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS5_TCAL_GYR3_X": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS5_TCAL_GYR3_Y": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS5_TCAL_GYR3_Z": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS5_TCAL_TMAX": {
      "Calibration": "1",
      "Description": "The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",
      "DisplayName": "Temperature calibration max",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "INS5_TCAL_TMIN": {
      "Calibration": "1",
      "Description": "The minimum temperature that the calibration is valid for",
      "DisplayName": "Temperature calibration min",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    }
  },
  "INS_HNTC2_": {
    "INS_HNTC2_ATT": {
      "Description": "Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",
      "DisplayName": "Harmonic Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "INS_HNTC2_BW": {
      "Description": "Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",
      "DisplayName": "Harmonic Notch Filter bandwidth",
      "Range": {
        "high": "250",
        "low": "5"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "INS_HNTC2_ENABLE": {
      "Description": "Harmonic Notch Filter enable",
      "DisplayName": "Harmonic Notch Filter enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "INS_HNTC2_ESCMSK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask of ESC channels to use in ESC Telemetry mode. 0 uses all available ESCs.",
      "DisplayName": "Harmonic Notch Filter ESC mask",
      "User": "Advanced"
    },
    "INS_HNTC2_FM_RAT": {
      "Description": "The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",
      "DisplayName": "Throttle notch min frequency ratio",
      "Range": {
        "high": "1.0",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "INS_HNTC2_FREQ": {
      "Description": "Harmonic Notch Filter base center frequency in Hz. This is the center frequency for static notches, the center frequency for Throttle based notches at the reference thrust value, and the minimum limit of center frequency variation for all other notch types. This should always be set lower than half the backend gyro rate (which is typically 1Khz).",
      "DisplayName": "Harmonic Notch Filter base frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "INS_HNTC2_HMNCS": {
      "Bitmask": {
        "0": "1st harmonic",
        "1": "2nd harmonic",
        "10": "11th harmonic",
        "11": "12th harmonic",
        "12": "13th harmonic",
        "13": "14th harmonic",
        "14": "15th harmonic",
        "15": "16th harmonic",
        "2": "3rd harmonic",
        "3": "4th harmonic",
        "4": "5th harmonic",
        "5": "6th harmonic",
        "6": "7th harmonic",
        "7": "8th harmonic",
        "8": "9th harmonic",
        "9": "10th harmonic"
      },
      "Description": "Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",
      "DisplayName": "Harmonic Notch Filter harmonics",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "INS_HNTC2_MODE": {
      "Description": "Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based harmonic notch cannot be used on fixed wing only planes. It can for Copters, QuadPlane(while in VTOL modes), and Rovers.",
      "DisplayName": "Harmonic Notch Filter dynamic frequency tracking mode",
      "Range": {
        "high": "5",
        "low": "0"
      },
      "User": "Advanced",
      "Values": {
        "0": "Fixed",
        "1": "Throttle",
        "2": "RPM Sensor",
        "3": "ESC Telemetry",
        "4": "Dynamic FFT",
        "5": "Second RPM Sensor"
      }
    },
    "INS_HNTC2_OPTS": {
      "Bitmask": {
        "0": "Double notch",
        "1": "Multi-Source",
        "2": "Update at loop rate",
        "3": "EnableOnAllIMUs",
        "4": "Triple notch",
        "5": "Use min freq on RPM source failure",
        "6": "Quintuple notch"
      },
      "Description": "Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Multi-Source attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",
      "DisplayName": "Harmonic Notch Filter options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "INS_HNTC2_REF": {
      "Description": "A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter.  For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed.  The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter.  This reference value may also be used to scale the sensor data, if required.  For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",
      "DisplayName": "Harmonic Notch Filter reference value",
      "Range": {
        "high": "1.0",
        "low": "0.0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "INS_HNTC3_": {
    "INS_HNTC3_ATT": {
      "Description": "Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",
      "DisplayName": "Harmonic Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "INS_HNTC3_BW": {
      "Description": "Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",
      "DisplayName": "Harmonic Notch Filter bandwidth",
      "Range": {
        "high": "250",
        "low": "5"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "INS_HNTC3_ENABLE": {
      "Description": "Harmonic Notch Filter enable",
      "DisplayName": "Harmonic Notch Filter enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "INS_HNTC3_ESCMSK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask of ESC channels to use in ESC Telemetry mode. 0 uses all available ESCs.",
      "DisplayName": "Harmonic Notch Filter ESC mask",
      "User": "Advanced"
    },
    "INS_HNTC3_FM_RAT": {
      "Description": "The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",
      "DisplayName": "Throttle notch min frequency ratio",
      "Range": {
        "high": "1.0",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "INS_HNTC3_FREQ": {
      "Description": "Harmonic Notch Filter base center frequency in Hz. This is the center frequency for static notches, the center frequency for Throttle based notches at the reference thrust value, and the minimum limit of center frequency variation for all other notch types. This should always be set lower than half the backend gyro rate (which is typically 1Khz).",
      "DisplayName": "Harmonic Notch Filter base frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "INS_HNTC3_HMNCS": {
      "Bitmask": {
        "0": "1st harmonic",
        "1": "2nd harmonic",
        "10": "11th harmonic",
        "11": "12th harmonic",
        "12": "13th harmonic",
        "13": "14th harmonic",
        "14": "15th harmonic",
        "15": "16th harmonic",
        "2": "3rd harmonic",
        "3": "4th harmonic",
        "4": "5th harmonic",
        "5": "6th harmonic",
        "6": "7th harmonic",
        "7": "8th harmonic",
        "8": "9th harmonic",
        "9": "10th harmonic"
      },
      "Description": "Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",
      "DisplayName": "Harmonic Notch Filter harmonics",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "INS_HNTC3_MODE": {
      "Description": "Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based harmonic notch cannot be used on fixed wing only planes. It can for Copters, QuadPlane(while in VTOL modes), and Rovers.",
      "DisplayName": "Harmonic Notch Filter dynamic frequency tracking mode",
      "Range": {
        "high": "5",
        "low": "0"
      },
      "User": "Advanced",
      "Values": {
        "0": "Fixed",
        "1": "Throttle",
        "2": "RPM Sensor",
        "3": "ESC Telemetry",
        "4": "Dynamic FFT",
        "5": "Second RPM Sensor"
      }
    },
    "INS_HNTC3_OPTS": {
      "Bitmask": {
        "0": "Double notch",
        "1": "Multi-Source",
        "2": "Update at loop rate",
        "3": "EnableOnAllIMUs",
        "4": "Triple notch",
        "5": "Use min freq on RPM source failure",
        "6": "Quintuple notch"
      },
      "Description": "Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Multi-Source attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",
      "DisplayName": "Harmonic Notch Filter options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "INS_HNTC3_REF": {
      "Description": "A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter.  For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed.  The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter.  This reference value may also be used to scale the sensor data, if required.  For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",
      "DisplayName": "Harmonic Notch Filter reference value",
      "Range": {
        "high": "1.0",
        "low": "0.0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "INS_HNTC4_": {
    "INS_HNTC4_ATT": {
      "Description": "Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",
      "DisplayName": "Harmonic Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "INS_HNTC4_BW": {
      "Description": "Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",
      "DisplayName": "Harmonic Notch Filter bandwidth",
      "Range": {
        "high": "250",
        "low": "5"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "INS_HNTC4_ENABLE": {
      "Description": "Harmonic Notch Filter enable",
      "DisplayName": "Harmonic Notch Filter enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "INS_HNTC4_ESCMSK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask of ESC channels to use in ESC Telemetry mode. 0 uses all available ESCs.",
      "DisplayName": "Harmonic Notch Filter ESC mask",
      "User": "Advanced"
    },
    "INS_HNTC4_FM_RAT": {
      "Description": "The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",
      "DisplayName": "Throttle notch min frequency ratio",
      "Range": {
        "high": "1.0",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "INS_HNTC4_FREQ": {
      "Description": "Harmonic Notch Filter base center frequency in Hz. This is the center frequency for static notches, the center frequency for Throttle based notches at the reference thrust value, and the minimum limit of center frequency variation for all other notch types. This should always be set lower than half the backend gyro rate (which is typically 1Khz).",
      "DisplayName": "Harmonic Notch Filter base frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "INS_HNTC4_HMNCS": {
      "Bitmask": {
        "0": "1st harmonic",
        "1": "2nd harmonic",
        "10": "11th harmonic",
        "11": "12th harmonic",
        "12": "13th harmonic",
        "13": "14th harmonic",
        "14": "15th harmonic",
        "15": "16th harmonic",
        "2": "3rd harmonic",
        "3": "4th harmonic",
        "4": "5th harmonic",
        "5": "6th harmonic",
        "6": "7th harmonic",
        "7": "8th harmonic",
        "8": "9th harmonic",
        "9": "10th harmonic"
      },
      "Description": "Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",
      "DisplayName": "Harmonic Notch Filter harmonics",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "INS_HNTC4_MODE": {
      "Description": "Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based harmonic notch cannot be used on fixed wing only planes. It can for Copters, QuadPlane(while in VTOL modes), and Rovers.",
      "DisplayName": "Harmonic Notch Filter dynamic frequency tracking mode",
      "Range": {
        "high": "5",
        "low": "0"
      },
      "User": "Advanced",
      "Values": {
        "0": "Fixed",
        "1": "Throttle",
        "2": "RPM Sensor",
        "3": "ESC Telemetry",
        "4": "Dynamic FFT",
        "5": "Second RPM Sensor"
      }
    },
    "INS_HNTC4_OPTS": {
      "Bitmask": {
        "0": "Double notch",
        "1": "Multi-Source",
        "2": "Update at loop rate",
        "3": "EnableOnAllIMUs",
        "4": "Triple notch",
        "5": "Use min freq on RPM source failure",
        "6": "Quintuple notch"
      },
      "Description": "Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Multi-Source attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",
      "DisplayName": "Harmonic Notch Filter options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "INS_HNTC4_REF": {
      "Description": "A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter.  For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed.  The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter.  This reference value may also be used to scale the sensor data, if required.  For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",
      "DisplayName": "Harmonic Notch Filter reference value",
      "Range": {
        "high": "1.0",
        "low": "0.0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "INS_HNTCH_": {
    "INS_HNTCH_ATT": {
      "Description": "Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.",
      "DisplayName": "Harmonic Notch Filter attenuation",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "dB",
      "User": "Advanced"
    },
    "INS_HNTCH_BW": {
      "Description": "Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.",
      "DisplayName": "Harmonic Notch Filter bandwidth",
      "Range": {
        "high": "250",
        "low": "5"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "INS_HNTCH_ENABLE": {
      "Description": "Harmonic Notch Filter enable",
      "DisplayName": "Harmonic Notch Filter enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "INS_HNTCH_ESCMSK": {
      "Bitmask": {
        "0": "ESC 1",
        "1": "ESC 2",
        "10": "ESC 11",
        "11": "ESC 12",
        "12": "ESC 13",
        "13": "ESC 14",
        "14": "ESC 15",
        "15": "ESC 16",
        "16": "ESC 17",
        "17": "ESC 18",
        "18": "ESC 19",
        "19": "ESC 20",
        "2": "ESC 3",
        "20": "ESC 21",
        "21": "ESC 22",
        "22": "ESC 23",
        "23": "ESC 24",
        "24": "ESC 25",
        "25": "ESC 26",
        "26": "ESC 27",
        "27": "ESC 28",
        "28": "ESC 29",
        "29": "ESC 30",
        "3": "ESC 4",
        "30": "ESC 31",
        "31": "ESC 32",
        "4": "ESC 5",
        "5": "ESC 6",
        "6": "ESC 7",
        "7": "ESC 8",
        "8": "ESC 9",
        "9": "ESC 10"
      },
      "Description": "Bitmask of ESC channels to use in ESC Telemetry mode. 0 uses all available ESCs.",
      "DisplayName": "Harmonic Notch Filter ESC mask",
      "User": "Advanced"
    },
    "INS_HNTCH_FM_RAT": {
      "Description": "The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.",
      "DisplayName": "Throttle notch min frequency ratio",
      "Range": {
        "high": "1.0",
        "low": "0.1"
      },
      "User": "Advanced"
    },
    "INS_HNTCH_FREQ": {
      "Description": "Harmonic Notch Filter base center frequency in Hz. This is the center frequency for static notches, the center frequency for Throttle based notches at the reference thrust value, and the minimum limit of center frequency variation for all other notch types. This should always be set lower than half the backend gyro rate (which is typically 1Khz).",
      "DisplayName": "Harmonic Notch Filter base frequency",
      "Range": {
        "high": "495",
        "low": "10"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "INS_HNTCH_HMNCS": {
      "Bitmask": {
        "0": "1st harmonic",
        "1": "2nd harmonic",
        "10": "11th harmonic",
        "11": "12th harmonic",
        "12": "13th harmonic",
        "13": "14th harmonic",
        "14": "15th harmonic",
        "15": "16th harmonic",
        "2": "3rd harmonic",
        "3": "4th harmonic",
        "4": "5th harmonic",
        "5": "6th harmonic",
        "6": "7th harmonic",
        "7": "8th harmonic",
        "8": "9th harmonic",
        "9": "10th harmonic"
      },
      "Description": "Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.",
      "DisplayName": "Harmonic Notch Filter harmonics",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "INS_HNTCH_MODE": {
      "Description": "Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based harmonic notch cannot be used on fixed wing only planes. It can for Copters, QuadPlane(while in VTOL modes), and Rovers.",
      "DisplayName": "Harmonic Notch Filter dynamic frequency tracking mode",
      "Range": {
        "high": "5",
        "low": "0"
      },
      "User": "Advanced",
      "Values": {
        "0": "Fixed",
        "1": "Throttle",
        "2": "RPM Sensor",
        "3": "ESC Telemetry",
        "4": "Dynamic FFT",
        "5": "Second RPM Sensor"
      }
    },
    "INS_HNTCH_OPTS": {
      "Bitmask": {
        "0": "Double notch",
        "1": "Multi-Source",
        "2": "Update at loop rate",
        "3": "EnableOnAllIMUs",
        "4": "Triple notch",
        "5": "Use min freq on RPM source failure",
        "6": "Quintuple notch"
      },
      "Description": "Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Multi-Source attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.",
      "DisplayName": "Harmonic Notch Filter options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "INS_HNTCH_REF": {
      "Description": "A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter.  For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed.  The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter.  This reference value may also be used to scale the sensor data, if required.  For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.",
      "DisplayName": "Harmonic Notch Filter reference value",
      "Range": {
        "high": "1.0",
        "low": "0.0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "INS_LOG_": {
    "INS_LOG_BAT_CNT": {
      "Description": "Number of samples to take when logging streams of IMU sensor readings.  Will be rounded down to a multiple of 32. This option takes effect on the next reboot.",
      "DisplayName": "sample count per batch",
      "Increment": "32",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "INS_LOG_BAT_LGCT": {
      "Description": "Number of samples to push to count every INS_LOG_BAT_LGIN",
      "DisplayName": "logging count",
      "Increment": "1"
    },
    "INS_LOG_BAT_LGIN": {
      "Description": "Interval between pushing samples to the AP_Logger log",
      "DisplayName": "logging interval",
      "Increment": "10",
      "Units": "ms"
    },
    "INS_LOG_BAT_MASK": {
      "Bitmask": {
        "0": "IMU1",
        "1": "IMU2",
        "2": "IMU3"
      },
      "Description": "Bitmap of which IMUs to log batch data for. This option takes effect on the next reboot.",
      "DisplayName": "Sensor Bitmask",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "INS_LOG_BAT_OPT": {
      "Bitmask": {
        "0": "Sensor-Rate Logging (sample at full sensor rate seen by AP)",
        "1": "Sample post-filtering",
        "2": "Sample pre- and post-filter"
      },
      "Description": "Options for the BatchSampler.",
      "DisplayName": "Batch Logging Options Mask",
      "User": "Advanced"
    }
  },
  "INS_TCAL1_": {
    "INS_TCAL1_ACC1_X": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL1_ACC1_Y": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL1_ACC1_Z": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL1_ACC2_X": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL1_ACC2_Y": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL1_ACC2_Z": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL1_ACC3_X": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL1_ACC3_Y": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL1_ACC3_Z": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL1_ENABLE": {
      "Description": "Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",
      "DisplayName": "Enable temperature calibration",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "LearnCalibration"
      }
    },
    "INS_TCAL1_GYR1_X": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL1_GYR1_Y": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL1_GYR1_Z": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL1_GYR2_X": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL1_GYR2_Y": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL1_GYR2_Z": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL1_GYR3_X": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL1_GYR3_Y": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL1_GYR3_Z": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL1_TMAX": {
      "Calibration": "1",
      "Description": "The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",
      "DisplayName": "Temperature calibration max",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "INS_TCAL1_TMIN": {
      "Calibration": "1",
      "Description": "The minimum temperature that the calibration is valid for",
      "DisplayName": "Temperature calibration min",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    }
  },
  "INS_TCAL2_": {
    "INS_TCAL2_ACC1_X": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL2_ACC1_Y": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL2_ACC1_Z": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL2_ACC2_X": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL2_ACC2_Y": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL2_ACC2_Z": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL2_ACC3_X": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL2_ACC3_Y": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL2_ACC3_Z": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL2_ENABLE": {
      "Description": "Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",
      "DisplayName": "Enable temperature calibration",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "LearnCalibration"
      }
    },
    "INS_TCAL2_GYR1_X": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL2_GYR1_Y": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL2_GYR1_Z": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL2_GYR2_X": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL2_GYR2_Y": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL2_GYR2_Z": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL2_GYR3_X": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL2_GYR3_Y": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL2_GYR3_Z": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL2_TMAX": {
      "Calibration": "1",
      "Description": "The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",
      "DisplayName": "Temperature calibration max",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "INS_TCAL2_TMIN": {
      "Calibration": "1",
      "Description": "The minimum temperature that the calibration is valid for",
      "DisplayName": "Temperature calibration min",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    }
  },
  "INS_TCAL3_": {
    "INS_TCAL3_ACC1_X": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL3_ACC1_Y": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL3_ACC1_Z": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 1st order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL3_ACC2_X": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL3_ACC2_Y": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL3_ACC2_Z": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 2nd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL3_ACC3_X": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL3_ACC3_Y": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL3_ACC3_Z": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Accelerometer 3rd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL3_ENABLE": {
      "Description": "Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot",
      "DisplayName": "Enable temperature calibration",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "LearnCalibration"
      }
    },
    "INS_TCAL3_GYR1_X": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL3_GYR1_Y": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL3_GYR1_Z": {
      "Calibration": "1",
      "Description": "This is the 1st order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 1st order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL3_GYR2_X": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL3_GYR2_Y": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL3_GYR2_Z": {
      "Calibration": "1",
      "Description": "This is the 2nd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 2nd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL3_GYR3_X": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient X axis",
      "User": "Advanced"
    },
    "INS_TCAL3_GYR3_Y": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient Y axis",
      "User": "Advanced"
    },
    "INS_TCAL3_GYR3_Z": {
      "Calibration": "1",
      "Description": "This is the 3rd order temperature coefficient from a temperature calibration",
      "DisplayName": "Gyroscope 3rd order temperature coefficient Z axis",
      "User": "Advanced"
    },
    "INS_TCAL3_TMAX": {
      "Calibration": "1",
      "Description": "The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",
      "DisplayName": "Temperature calibration max",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "INS_TCAL3_TMIN": {
      "Calibration": "1",
      "Description": "The minimum temperature that the calibration is valid for",
      "DisplayName": "Temperature calibration min",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    }
  },
  "KDE_": {
    "KDE_NPOLE": {
      "Description": "Sets the number of motor poles to calculate the correct RPM value",
      "DisplayName": "Number of motor poles"
    }
  },
  "LEAK": {
    "LEAK1_LOGIC": {
      "Description": "Default reading of leak detector when dry",
      "DisplayName": "Default reading of leak detector when dry",
      "User": "Standard",
      "Values": {
        "0": "Low",
        "1": "High"
      }
    },
    "LEAK1_PIN": {
      "Description": "Pin that the leak detector is connected to",
      "DisplayName": "Pin that leak detector is connected to",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "13": "Pixhawk 3.3ADC1",
        "14": "Pixhawk 3.3ADC2",
        "15": "Pixhawk 6.6ADC",
        "27": "Navigator Built-In",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "LEAK2_LOGIC": {
      "Description": "Default reading of leak detector when dry",
      "DisplayName": "Default reading of leak detector when dry",
      "User": "Standard",
      "Values": {
        "0": "Low",
        "1": "High"
      }
    },
    "LEAK2_PIN": {
      "Description": "Pin that the leak detector is connected to",
      "DisplayName": "Pin that leak detector is connected to",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "13": "Pixhawk 3.3ADC1",
        "14": "Pixhawk 3.3ADC2",
        "15": "Pixhawk 6.6ADC",
        "27": "Navigator Leak1",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "LEAK3_LOGIC": {
      "Description": "Default reading of leak detector when dry",
      "DisplayName": "Default reading of leak detector when dry",
      "User": "Standard",
      "Values": {
        "0": "Low",
        "1": "High"
      }
    },
    "LEAK3_PIN": {
      "Description": "Pin that the leak detector is connected to",
      "DisplayName": "Pin that leak detector is connected to",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "13": "Pixhawk 3.3ADC1",
        "14": "Pixhawk 3.3ADC2",
        "15": "Pixhawk 6.6ADC",
        "27": "Navigator Leak1",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    }
  },
  "LOG": {
    "LOG_BACKEND_TYPE": {
      "Bitmask": {
        "0": "File",
        "1": "MAVLink",
        "2": "Block"
      },
      "Description": "Bitmap of what Logger backend types to enable. Block-based logging is available on SITL and boards with dataflash chips. Multiple backends can be selected.",
      "DisplayName": "AP_Logger Backend Storage type",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "LOG_BLK_RATEMAX": {
      "Description": "This sets the maximum rate that streaming log messages will be logged to the block backend. A value of zero means that rate limiting is disabled.",
      "DisplayName": "Maximum logging rate for block backend",
      "Increment": "0.1",
      "Range": {
        "high": "1000",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "LOG_DARM_RATEMAX": {
      "Description": "This sets the maximum rate that streaming log messages will be logged to any backend when disarmed. A value of zero means that the normal backend rate limit is applied.",
      "DisplayName": "Maximum logging rate when disarmed",
      "Increment": "0.1",
      "Range": {
        "high": "1000",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "LOG_DISARMED": {
      "Description": "If LOG_DISARMED is set to 1 then logging will be enabled at all times including when disarmed. Logging before arming can make for very large logfiles but can help a lot when tracking down startup issues and is necessary if logging of EKF replay data is selected via the LOG_REPLAY parameter. If LOG_DISARMED is set to 2, then logging will be enabled when disarmed, but not if a USB connection is detected. This can be used to prevent unwanted data logs being generated when the vehicle is connected via USB for log downloading or parameter changes. If LOG_DISARMED is set to 3 then logging will happen while disarmed, but if the vehicle never arms then the logs using the filesystem backend will be discarded on the next boot.",
      "DisplayName": "Enable logging while disarmed",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled",
        "2": "Disabled on USB connection",
        "3": "Discard log on reboot if never armed"
      }
    },
    "LOG_FILE_BUFSIZE": {
      "Description": "The File and Block backends use a buffer to store data before writing to the block device.  Raising this value may reduce \"gaps\" in your SD card logging but increases memory usage.  This buffer size may be reduced to free up available memory",
      "DisplayName": "Logging File and Block Backend buffer size max (in kibibytes)",
      "Range": {
        "high": "200",
        "low": "4"
      },
      "Units": "KiB",
      "User": "Standard"
    },
    "LOG_FILE_DSRMROT": {
      "Description": "When set, the current log file is closed when the vehicle is disarmed.  If LOG_DISARMED is set then a fresh log will be opened. Applies to the File and Block logging backends.",
      "DisplayName": "Stop logging to current file on disarm",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "LOG_FILE_MB_FREE": {
      "Description": "Set this such that the free space is larger than your largest typical flight log",
      "DisplayName": "Old logs on the SD card will be deleted to maintain this amount of free space",
      "Range": {
        "high": "1000",
        "low": "2"
      },
      "Units": "MB",
      "User": "Standard"
    },
    "LOG_FILE_RATEMAX": {
      "Description": "This sets the maximum rate that streaming log messages will be logged to the file backend. A value of zero means that rate limiting is disabled.",
      "DisplayName": "Maximum logging rate for file backend",
      "Increment": "0.1",
      "Range": {
        "high": "1000",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "LOG_FILE_TIMEOUT": {
      "Description": "This controls the amount of time before failing writes to a log file cause the file to be closed and logging stopped.",
      "DisplayName": "Timeout before giving up on file writes",
      "Units": "s",
      "User": "Standard"
    },
    "LOG_MAV_BUFSIZE": {
      "Description": "Maximum amount of memory to allocate to AP_Logger-over-mavlink",
      "DisplayName": "Maximum AP_Logger MAVLink Backend buffer size",
      "Units": "kB",
      "User": "Advanced"
    },
    "LOG_MAV_RATEMAX": {
      "Description": "This sets the maximum rate that streaming log messages will be logged to the mavlink backend. A value of zero means that rate limiting is disabled.",
      "DisplayName": "Maximum logging rate for mavlink backend",
      "Increment": "0.1",
      "Range": {
        "high": "1000",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "LOG_MAX_FILES": {
      "Description": "This sets the maximum number of log file that will be written on dataflash or sd card before starting to rotate log number. The value is capped at a board-dependent maximum.",
      "DisplayName": "Maximum number of log files",
      "Increment": "1",
      "Range": {
        "high": "500",
        "low": "2"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "LOG_REPLAY": {
      "Description": "If LOG_REPLAY is set to 1 then the EKF2 and EKF3 state estimators will log detailed information needed for diagnosing problems with the Kalman filter. LOG_DISARMED must be set to 1 or 2 or else the log will not contain the pre-flight data required for replay testing of the EKF's. It is suggested that you also raise LOG_FILE_BUFSIZE to give more buffer space for logging and use a high quality microSD card to ensure no sensor data is lost.",
      "DisplayName": "Enable logging of information needed for Replay",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    }
  },
  "LOIT_": {
    "LOIT_ACC_MAX_M": {
      "Description": "Loiter maximum correction acceleration in m/s/s.  Higher values cause the copter to correct position errors more aggressively.",
      "DisplayName": "Loiter maximum correction acceleration",
      "Increment": "0.01",
      "Range": {
        "high": "9.81",
        "low": "1"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "LOIT_ANG_MAX": {
      "Description": "Loiter maximum pilot requested lean angle. Set to zero for 2/3 of PSC_ANGLE_MAX/ATC_ANGLE_MAX. The maximum vehicle lean angle is still limited by PSC_ANGLE_MAX/ATC_ANGLE_MAX",
      "DisplayName": "Loiter pilot angle max",
      "Increment": "1",
      "Range": {
        "high": "45",
        "low": "0"
      },
      "Units": "deg",
      "User": "Advanced"
    },
    "LOIT_BRK_ACC_M": {
      "Description": "Loiter braking acceleration in m/s/s. Higher values stop the copter more quickly when the stick is centered.",
      "DisplayName": "Loiter braking acceleration",
      "Increment": "0.01",
      "Range": {
        "high": "2.5",
        "low": "0.25"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "LOIT_BRK_DELAY": {
      "Description": "Loiter brake start delay (in seconds)",
      "DisplayName": "Loiter brake start delay (in seconds)",
      "Increment": "0.1",
      "Range": {
        "high": "2",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "LOIT_BRK_JRK_M": {
      "Description": "Loiter braking jerk in m/s/s/s. Higher values will remove braking faster if the pilot moves the sticks during a braking maneuver.",
      "DisplayName": "Loiter braking jerk",
      "Increment": "0.01",
      "Range": {
        "high": "50",
        "low": "5"
      },
      "Units": "m/s/s/s",
      "User": "Advanced"
    },
    "LOIT_OPTIONS": {
      "Bitmask": {
        "0": "Enable Coordinated turns"
      },
      "Description": "Enables optional Loiter mode behaviors",
      "DisplayName": "Loiter mode options",
      "User": "Standard"
    },
    "LOIT_SPEED_MS": {
      "Description": "Defines the maximum speed in m/s which the aircraft will travel horizontally while in loiter mode",
      "DisplayName": "Loiter Horizontal Maximum Speed",
      "Increment": "0.05",
      "Range": {
        "high": "35",
        "low": "0.20"
      },
      "Units": "m/s",
      "User": "Standard"
    }
  },
  "MAV": {
    "MAV_GCS_SYSID": {
      "Description": "This sets what MAVLink source system IDs are accepted for GCS failsafe handling, RC overrides and manual control. When MAV_GCS_SYSID_HI is less than MAV_GCS_SYSID then only this value is considered to be a GCS. When MAV_GCS_SYSID_HI is greater than or equal to MAV_GCS_SYSID then the range of values between MAV_GCS_SYSID and MAV_GCS_SYSID_HI (inclusive) are all treated as valid GCS MAVLink system IDs.",
      "DisplayName": "My ground station number",
      "Increment": "1",
      "Range": {
        "high": "4294967295",
        "low": "1"
      },
      "User": "Advanced"
    },
    "MAV_GCS_SYSID_HI": {
      "Description": "Upper limit of MAVLink source system IDs considered to be from the GCS. When this is less than MAV_GCS_SYSID then only MAV_GCS_SYSID is used as GCS ID. When this is greater than or equal to MAV_GCS_SYSID then the range of values from MAV_GCS_SYSID to MAV_GCS_SYSID_HI (inclusive) is treated as a GCS ID.",
      "DisplayName": "ground station system ID, maximum",
      "Increment": "1",
      "Range": {
        "high": "4294967295",
        "low": "0"
      },
      "User": "Advanced"
    },
    "MAV_OPTIONS": {
      "Bitmask": {
        "0": "Accept MAVLink only from system IDs given by MAV_SYSID_GCS and MAV_SYSID_GCS_HI"
      },
      "Description": "Alters various behaviour of the MAVLink interface",
      "DisplayName": "MAVLink Options",
      "User": "Advanced"
    },
    "MAV_SYSID": {
      "Description": "Allows setting an individual MAVLink system id for this vehicle to distinguish it from others on the same network. IDs above 255 require MAVLink2 with 32-bit system ID support on every communicating device. MAVLink1 ports cannot transmit with these IDs.",
      "DisplayName": "MAVLink system ID of this vehicle",
      "Range": {
        "high": "4294967295",
        "low": "1"
      },
      "User": "Advanced"
    },
    "MAV_TELEM_DELAY": {
      "Description": "The amount of time (in seconds) to delay radio telemetry to prevent an Xbee bricking on power up",
      "DisplayName": "Telemetry startup delay",
      "Increment": "1",
      "Range": {
        "high": "30",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    }
  },
  "MAV1": {
    "MAV1_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV1_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV1_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV1_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV1_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV1_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV1_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV1_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV1_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV1_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV1_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV1_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV10": {
    "MAV10_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV10_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV10_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV10_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV10_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV10_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV10_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV10_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV10_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV10_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV10_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV10_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV11": {
    "MAV11_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV11_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV11_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV11_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV11_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV11_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV11_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV11_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV11_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV11_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV11_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV11_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV12": {
    "MAV12_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV12_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV12_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV12_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV12_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV12_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV12_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV12_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV12_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV12_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV12_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV12_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV13": {
    "MAV13_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV13_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV13_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV13_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV13_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV13_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV13_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV13_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV13_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV13_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV13_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV13_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV14": {
    "MAV14_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV14_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV14_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV14_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV14_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV14_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV14_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV14_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV14_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV14_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV14_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV14_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV15": {
    "MAV15_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV15_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV15_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV15_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV15_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV15_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV15_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV15_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV15_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV15_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV15_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV15_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV16": {
    "MAV16_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV16_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV16_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV16_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV16_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV16_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV16_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV16_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV16_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV16_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV16_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV16_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV17": {
    "MAV17_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV17_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV17_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV17_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV17_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV17_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV17_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV17_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV17_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV17_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV17_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV17_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV18": {
    "MAV18_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV18_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV18_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV18_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV18_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV18_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV18_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV18_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV18_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV18_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV18_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV18_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV19": {
    "MAV19_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV19_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV19_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV19_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV19_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV19_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV19_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV19_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV19_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV19_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV19_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV19_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV2": {
    "MAV2_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV2_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV2_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV2_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV2_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV2_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV2_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV2_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV2_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV2_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV2_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV2_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV20": {
    "MAV20_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV20_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV20_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV20_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV20_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV20_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV20_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV20_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV20_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV20_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV20_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV20_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV21": {
    "MAV21_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV21_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV21_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV21_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV21_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV21_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV21_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV21_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV21_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV21_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV21_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV21_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV22": {
    "MAV22_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV22_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV22_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV22_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV22_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV22_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV22_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV22_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV22_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV22_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV22_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV22_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV23": {
    "MAV23_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV23_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV23_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV23_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV23_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV23_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV23_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV23_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV23_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV23_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV23_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV23_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV24": {
    "MAV24_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV24_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV24_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV24_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV24_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV24_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV24_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV24_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV24_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV24_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV24_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV24_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV25": {
    "MAV25_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV25_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV25_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV25_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV25_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV25_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV25_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV25_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV25_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV25_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV25_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV25_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV26": {
    "MAV26_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV26_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV26_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV26_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV26_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV26_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV26_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV26_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV26_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV26_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV26_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV26_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV27": {
    "MAV27_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV27_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV27_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV27_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV27_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV27_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV27_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV27_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV27_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV27_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV27_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV27_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV28": {
    "MAV28_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV28_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV28_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV28_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV28_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV28_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV28_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV28_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV28_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV28_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV28_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV28_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV29": {
    "MAV29_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV29_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV29_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV29_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV29_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV29_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV29_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV29_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV29_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV29_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV29_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV29_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV3": {
    "MAV3_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV3_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV3_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV3_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV3_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV3_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV3_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV3_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV3_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV3_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV3_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV3_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV30": {
    "MAV30_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV30_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV30_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV30_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV30_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV30_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV30_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV30_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV30_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV30_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV30_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV30_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV31": {
    "MAV31_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV31_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV31_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV31_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV31_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV31_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV31_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV31_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV31_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV31_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV31_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV31_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV32": {
    "MAV32_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV32_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV32_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV32_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV32_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV32_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV32_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV32_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV32_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV32_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV32_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV32_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV4": {
    "MAV4_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV4_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV4_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV4_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV4_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV4_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV4_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV4_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV4_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV4_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV4_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV4_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV5": {
    "MAV5_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV5_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV5_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV5_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV5_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV5_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV5_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV5_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV5_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV5_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV5_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV5_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV6": {
    "MAV6_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV6_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV6_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV6_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV6_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV6_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV6_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV6_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV6_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV6_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV6_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV6_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV7": {
    "MAV7_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV7_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV7_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV7_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV7_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV7_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV7_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV7_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV7_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV7_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV7_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV7_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV8": {
    "MAV8_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV8_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV8_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV8_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV8_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV8_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV8_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV8_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV8_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV8_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV8_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV8_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MAV9": {
    "MAV9_ADSB": {
      "Description": "MAVLink ADSB stream rate",
      "DisplayName": "ADSB stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV9_DEVID": {
      "Description": "ID of device using this MAVLink channel",
      "DisplayName": "DeviceID",
      "ReadOnly": "True",
      "User": "Advanced",
      "Values": {
        "0": "Unknown",
        "131078": "NET_P1",
        "131334": "NET_P2",
        "131590": "NET_P3",
        "131846": "NET_P4",
        "196614": "CAN_D1_UC_S1",
        "196622": "CAN_D2_UC_S1",
        "196870": "CAN_D1_UC_S2",
        "196878": "CAN_D2_UC_S2",
        "197126": "CAN_D1_UC_S3",
        "197134": "CAN_D2_UC_S3",
        "262150": "SCR_SDEV1",
        "262406": "SCR_SDEV2",
        "262662": "SCR_SDEV3",
        "65542": "SERIAL0 (USB on ChibiOS)",
        "65798": "SERIAL1",
        "66054": "SERIAL2",
        "66310": "SERIAL3",
        "66566": "SERIAL4",
        "66822": "SERIAL5",
        "67078": "SERIAL6",
        "67334": "SERIAL7",
        "67590": "SERIAL8",
        "67846": "SERIAL9"
      }
    },
    "MAV9_EXTRA1": {
      "Description": "MAVLink Stream rate of ATTITUDE, SIMSTATE (SIM only), AHRS2, RPM, AOA_SSA, LANDING,ESC_TELEMETRY,EFI_STATUS, and PID_TUNING",
      "DisplayName": "Extra data type 1 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV9_EXTRA2": {
      "Description": "MAVLink Stream rate of VFR_HUD",
      "DisplayName": "Extra data type 2 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "MAV9_EXTRA3": {
      "Description": "MAVLink Stream rate of AHRS, SYSTEM_TIME, WIND, RANGEFINDER, DISTANCE_SENSOR, TERRAIN_REQUEST, TERRAIN_REPORT, GIMBAL_DEVICE_ATTITUDE_STATUS, OPTICAL_FLOW, MAG_CAL_REPORT, MAG_CAL_PROGRESS, EKF_STATUS_REPORT, VIBRATION, and BATTERY_STATUS",
      "DisplayName": "Extra data type 3 stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV9_EXT_STAT": {
      "Description": "MAVLink Stream rate of SYS_STATUS, POWER_STATUS, MCU_STATUS, MEMINFO, CURRENT_WAYPOINT, GPS_RAW_INT, GPS_RTK (if available), GPS2_RAW_INT (if available), GPS2_RTK (if available), NAV_CONTROLLER_OUTPUT, FENCE_STATUS, and GLOBAL_TARGET_POS_INT",
      "DisplayName": "Extended status stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV9_OPTIONS": {
      "Bitmask": {
        "0": "Accept unsigned MAVLink2 messages",
        "1": "Don't forward mavlink to/from",
        "2": "Ignore Streamrate",
        "3": "forward mavlink packets that don't pass CRC",
        "4": "Unicast"
      },
      "Description": "Bitmask for configuring this telemetry channel. For having effect on all channels, set the relevant mask in all MAVx_OPTIONS parameters. Keep in mind that part of the flags may require a reboot to take action. Unicast blocks forwarding of broadcasts to/from this link, but allows packets addressed to a learned system/component pair. A missing or zero target system or component is a broadcast. Unicast sends heartbeat but does not start the normal telemetry streams; devices can request messages with MAV_CMD_SET_MESSAGE_INTERVAL or MAV_CMD_REQUEST_MESSAGE. Local processing is unaffected.",
      "DisplayName": "Bitmask for configuring this telemetry channel",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MAV9_PARAMS": {
      "Description": "MAVLink Stream rate of PARAM_VALUE",
      "DisplayName": "Parameter stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV9_POSITION": {
      "Description": "MAVLink Stream rate of GLOBAL_POSITION_INT and LOCAL_POSITION_NED",
      "DisplayName": "Position stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV9_RAW_CTRL": {
      "Description": "MAVLink Raw Control stream rate of SERVO_OUT",
      "DisplayName": "Raw Control stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV9_RAW_SENS": {
      "Description": "MAVLink Stream rate of RAW_IMU, SCALED_IMU2, SCALED_IMU3, SCALED_PRESSURE, SCALED_PRESSURE2, SCALED_PRESSURE3 and AIRSPEED",
      "DisplayName": "Raw sensor stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MAV9_RC_CHAN": {
      "Description": "MAVLink Stream rate of SERVO_OUTPUT_RAW and RC_CHANNELS",
      "DisplayName": "RC Channel stream rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "MIS_": {
    "MIS_OPTIONS": {
      "Bitmask": {
        "0": "Clear Mission on reboot"
      },
      "Description": "Bitmask of what options to use in missions. If the DontZeroCounter counter option is set than on completion of a jump loop the counter is left at zero, so the jump will not happen again if the loop is re-entered.",
      "DisplayName": "Mission options bitmask",
      "User": "Advanced"
    },
    "MIS_RESTART": {
      "Description": "Controls mission starting point when entering Auto mode (either restart from beginning of mission or resume from last command run)",
      "DisplayName": "Mission Restart when entering Auto mode",
      "User": "Advanced",
      "Values": {
        "0": "Resume Mission",
        "1": "Restart Mission"
      }
    },
    "MIS_TOTAL": {
      "Description": "The number of mission mission items that has been loaded by the ground station. Do not change this manually.",
      "DisplayName": "Total mission commands",
      "Increment": "1",
      "Range": {
        "high": "32766",
        "low": "0"
      },
      "ReadOnly": "True",
      "User": "Advanced"
    }
  },
  "MNT1": {
    "MNT1_ATT_RATE": {
      "Description": "Rate at which AUTOPILOT_STATE_FOR_GIMBAL_DEVICE messages are sent to a MAVLink gimbal. Zero disables these messages",
      "DisplayName": "Vehicle attitude send rate to MAVLink gimbal",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MNT1_DEFLT_MODE": {
      "Description": "Mount default operating mode on startup and after control is returned from autopilot",
      "DisplayName": "Mount default operating mode",
      "User": "Standard",
      "Values": {
        "0": "Retracted",
        "1": "Neutral",
        "2": "MavLink Targeting",
        "3": "RC Targeting",
        "4": "GPS Point",
        "5": "SysID Target",
        "6": "Home Location"
      }
    },
    "MNT1_DEVID": {
      "Description": "Mount device ID, taking into account its type, bus and instance",
      "DisplayName": "Mount Device ID",
      "User": "Advanced"
    },
    "MNT1_LEAD_PTCH": {
      "Description": "Servo mount pitch angle output leads the vehicle angle by this amount of time based on current pitch rate. Increase until the servo is responsive but does not overshoot",
      "DisplayName": "Mount Pitch stabilization lead time",
      "Increment": "0.005",
      "Range": {
        "high": "0.2",
        "low": "0.0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "MNT1_LEAD_RLL": {
      "Description": "Servo mount roll angle output leads the vehicle angle by this amount of time based on current roll rate. Increase until the servo is responsive but does not overshoot",
      "DisplayName": "Mount Roll stabilization lead time",
      "Increment": "0.005",
      "Range": {
        "high": "0.2",
        "low": "0.0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "MNT1_NEUTRAL_X": {
      "Description": "Mount roll angle when in neutral position",
      "DisplayName": "Mount roll angle when in neutral position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT1_NEUTRAL_Y": {
      "Description": "Mount pitch angle when in neutral position",
      "DisplayName": "Mount pitch angle when in neutral position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT1_NEUTRAL_Z": {
      "Description": "Mount yaw angle when in neutral position",
      "DisplayName": "Mount yaw angle when in neutral position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT1_OPTIONS": {
      "Bitmask": {
        "0": "RC lock state from previous mode",
        "1": "Return to neutral angles on RC failsafe",
        "2": "Force FPV (bf) lock on roll and pitch"
      },
      "Description": "Mount options bitmask, note bit 2 only impacts RC targetting mode",
      "DisplayName": "Mount options",
      "User": "Standard"
    },
    "MNT1_PITCH_MAX": {
      "Description": "Mount Pitch angle maximum",
      "DisplayName": "Mount Pitch angle maximum",
      "Increment": "1",
      "Range": {
        "high": "90",
        "low": "-90"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT1_PITCH_MIN": {
      "Description": "Mount Pitch angle minimum",
      "DisplayName": "Mount Pitch angle minimum",
      "Increment": "1",
      "Range": {
        "high": "90",
        "low": "-90"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT1_RC_RATE": {
      "Description": "Pilot rate control's maximum rate.  Set to zero to use angle control",
      "DisplayName": "Mount RC Rate",
      "Increment": "1",
      "Range": {
        "high": "90",
        "low": "0"
      },
      "Units": "deg/s",
      "User": "Standard"
    },
    "MNT1_RETRACT_X": {
      "Description": "Mount roll angle when in retracted position",
      "DisplayName": "Mount roll angle when in retracted position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT1_RETRACT_Y": {
      "Description": "Mount pitch angle when in retracted position",
      "DisplayName": "Mount pitch angle when in retracted position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT1_RETRACT_Z": {
      "Description": "Mount yaw angle when in retracted position",
      "DisplayName": "Mount yaw angle when in retracted position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT1_ROLL_MAX": {
      "Description": "Mount Roll angle maximum",
      "DisplayName": "Mount Roll angle maximum",
      "Increment": "1",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT1_ROLL_MIN": {
      "Description": "Mount Roll angle minimum",
      "DisplayName": "Mount Roll angle minimum",
      "Increment": "1",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT1_SYSID_DFLT": {
      "Description": "Default Target sysID for the mount to point to.",
      "DisplayName": "Mount Target sysID",
      "Range": {
        "high": "4294967295",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MNT1_TARG_RATE": {
      "Description": "Refresh rate for unchanged MAVLink gimbal targets. Changed targets are sent immediately. Zero disables target transmission",
      "DisplayName": "MAVLink gimbal target refresh rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "MNT1_TYPE": {
      "Description": "Mount Type",
      "DisplayName": "Mount Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Servo",
        "10": "Xacti",
        "11": "Viewpro",
        "12": "Topotek",
        "13": "CADDX",
        "14": "XFRobot",
        "2": "3DR Solo",
        "3": "Alexmos Serial",
        "4": "SToRM32 MAVLink",
        "5": "SToRM32 Serial",
        "6": "MAVLink (Gremsy/AVT)",
        "7": "BrushlessPWM",
        "8": "Siyi",
        "9": "Scripting"
      }
    },
    "MNT1_YAW_MAX": {
      "Description": "Mount Yaw angle maximum",
      "DisplayName": "Mount Yaw angle maximum",
      "Increment": "1",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT1_YAW_MIN": {
      "Description": "Mount Yaw angle minimum",
      "DisplayName": "Mount Yaw angle minimum",
      "Increment": "1",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    }
  },
  "MNT2": {
    "MNT2_ATT_RATE": {
      "Description": "Rate at which AUTOPILOT_STATE_FOR_GIMBAL_DEVICE messages are sent to a MAVLink gimbal. Zero disables these messages",
      "DisplayName": "Vehicle attitude send rate to MAVLink gimbal",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "MNT2_DEFLT_MODE": {
      "Description": "Mount default operating mode on startup and after control is returned from autopilot",
      "DisplayName": "Mount default operating mode",
      "User": "Standard",
      "Values": {
        "0": "Retracted",
        "1": "Neutral",
        "2": "MavLink Targeting",
        "3": "RC Targeting",
        "4": "GPS Point",
        "5": "SysID Target",
        "6": "Home Location"
      }
    },
    "MNT2_DEVID": {
      "Description": "Mount device ID, taking into account its type, bus and instance",
      "DisplayName": "Mount Device ID",
      "User": "Advanced"
    },
    "MNT2_LEAD_PTCH": {
      "Description": "Servo mount pitch angle output leads the vehicle angle by this amount of time based on current pitch rate. Increase until the servo is responsive but does not overshoot",
      "DisplayName": "Mount Pitch stabilization lead time",
      "Increment": "0.005",
      "Range": {
        "high": "0.2",
        "low": "0.0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "MNT2_LEAD_RLL": {
      "Description": "Servo mount roll angle output leads the vehicle angle by this amount of time based on current roll rate. Increase until the servo is responsive but does not overshoot",
      "DisplayName": "Mount Roll stabilization lead time",
      "Increment": "0.005",
      "Range": {
        "high": "0.2",
        "low": "0.0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "MNT2_NEUTRAL_X": {
      "Description": "Mount roll angle when in neutral position",
      "DisplayName": "Mount roll angle when in neutral position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT2_NEUTRAL_Y": {
      "Description": "Mount pitch angle when in neutral position",
      "DisplayName": "Mount pitch angle when in neutral position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT2_NEUTRAL_Z": {
      "Description": "Mount yaw angle when in neutral position",
      "DisplayName": "Mount yaw angle when in neutral position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT2_OPTIONS": {
      "Bitmask": {
        "0": "RC lock state from previous mode",
        "1": "Return to neutral angles on RC failsafe",
        "2": "Force FPV (bf) lock on roll and pitch"
      },
      "Description": "Mount options bitmask, note bit 2 only impacts RC targetting mode",
      "DisplayName": "Mount options",
      "User": "Standard"
    },
    "MNT2_PITCH_MAX": {
      "Description": "Mount Pitch angle maximum",
      "DisplayName": "Mount Pitch angle maximum",
      "Increment": "1",
      "Range": {
        "high": "90",
        "low": "-90"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT2_PITCH_MIN": {
      "Description": "Mount Pitch angle minimum",
      "DisplayName": "Mount Pitch angle minimum",
      "Increment": "1",
      "Range": {
        "high": "90",
        "low": "-90"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT2_RC_RATE": {
      "Description": "Pilot rate control's maximum rate.  Set to zero to use angle control",
      "DisplayName": "Mount RC Rate",
      "Increment": "1",
      "Range": {
        "high": "90",
        "low": "0"
      },
      "Units": "deg/s",
      "User": "Standard"
    },
    "MNT2_RETRACT_X": {
      "Description": "Mount roll angle when in retracted position",
      "DisplayName": "Mount roll angle when in retracted position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT2_RETRACT_Y": {
      "Description": "Mount pitch angle when in retracted position",
      "DisplayName": "Mount pitch angle when in retracted position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT2_RETRACT_Z": {
      "Description": "Mount yaw angle when in retracted position",
      "DisplayName": "Mount yaw angle when in retracted position",
      "Increment": "1",
      "Range": {
        "high": "180.0",
        "low": "-180.0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT2_ROLL_MAX": {
      "Description": "Mount Roll angle maximum",
      "DisplayName": "Mount Roll angle maximum",
      "Increment": "1",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT2_ROLL_MIN": {
      "Description": "Mount Roll angle minimum",
      "DisplayName": "Mount Roll angle minimum",
      "Increment": "1",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT2_SYSID_DFLT": {
      "Description": "Default Target sysID for the mount to point to.",
      "DisplayName": "Mount Target sysID",
      "Range": {
        "high": "4294967295",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Standard"
    },
    "MNT2_TARG_RATE": {
      "Description": "Refresh rate for unchanged MAVLink gimbal targets. Changed targets are sent immediately. Zero disables target transmission",
      "DisplayName": "MAVLink gimbal target refresh rate",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "MNT2_TYPE": {
      "Description": "Mount Type",
      "DisplayName": "Mount Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Servo",
        "10": "Xacti",
        "11": "Viewpro",
        "12": "Topotek",
        "13": "CADDX",
        "14": "XFRobot",
        "2": "3DR Solo",
        "3": "Alexmos Serial",
        "4": "SToRM32 MAVLink",
        "5": "SToRM32 Serial",
        "6": "MAVLink (Gremsy/AVT)",
        "7": "BrushlessPWM",
        "8": "Siyi",
        "9": "Scripting"
      }
    },
    "MNT2_YAW_MAX": {
      "Description": "Mount Yaw angle maximum",
      "DisplayName": "Mount Yaw angle maximum",
      "Increment": "1",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "MNT2_YAW_MIN": {
      "Description": "Mount Yaw angle minimum",
      "DisplayName": "Mount Yaw angle minimum",
      "Increment": "1",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    }
  },
  "MOT_": {
    "MOT_10_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_11_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_12_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_1_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_2_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_3_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_4_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_5_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_6_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_7_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_8_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_9_DIRECTION": {
      "Description": "Used to change motor rotation directions without changing wires",
      "DisplayName": "Motor normal or reverse",
      "User": "Standard",
      "Values": {
        "-1": "reverse",
        "1": "normal"
      }
    },
    "MOT_BAT_CURR_MAX": {
      "Description": "Maximum current over which maximum throttle is limited (0 = Disabled)",
      "DisplayName": "Motor Current Max",
      "Increment": "0.1",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "A",
      "User": "Advanced"
    },
    "MOT_BAT_CURR_TC": {
      "Description": "Time constant used to limit the maximum current",
      "DisplayName": "Motor Current Max Time Constant",
      "Increment": "0.01",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "MOT_BAT_IDX": {
      "Description": "Which battery monitor should be used for doing compensation",
      "DisplayName": "Battery compensation index",
      "Increment": "1",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Advanced",
      "Values": {
        "0": "First battery",
        "1": "Second battery"
      }
    },
    "MOT_BAT_VOLT_MAX": {
      "Description": "Battery voltage compensation maximum voltage (voltage above this will have no additional scaling effect on thrust).  Recommend 4.2 * cell count, 0 = Disabled",
      "DisplayName": "Battery voltage compensation maximum voltage",
      "Increment": "0.1",
      "Range": {
        "high": "53",
        "low": "6"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "MOT_BAT_VOLT_MIN": {
      "Description": "Battery voltage compensation minimum voltage (voltage below this will have no additional scaling effect on thrust).  Recommend 3.3 * cell count, 0 = Disabled",
      "DisplayName": "Battery voltage compensation minimum voltage",
      "Increment": "0.1",
      "Range": {
        "high": "42",
        "low": "6"
      },
      "Units": "V",
      "User": "Advanced"
    },
    "MOT_BOOST_SCALE": {
      "Description": "Booster motor output scaling factor vs main throttle.  The output to the BoostThrottle servo will be the main throttle times this scaling factor. A higher scaling factor will put more of the load on the booster motor. A value of 1 will set the BoostThrottle equal to the main throttle.",
      "DisplayName": "Motor boost scale",
      "Increment": "0.1",
      "Range": {
        "high": "5",
        "low": "0"
      },
      "User": "Advanced"
    },
    "MOT_FV_CPLNG_K": {
      "Description": "(Vectored frame only) Used to decouple pitch from forward/vertical motion. 0 to disable, 1.2 normal",
      "DisplayName": "Forward/vertical to pitch decoupling factor",
      "Increment": "0.1",
      "Range": {
        "high": "1.5",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "MOT_HOVER_LEARN": {
      "Description": "Enable/Disable automatic learning of hover throttle",
      "DisplayName": "Hover Value Learning",
      "User": "Advanced",
      "Values": {
        "0": "Disabled"
      }
    },
    "MOT_IDLE_SEC": {
      "Description": "Delay after reaching ground idle when armed to allow ESC startup to complete.",
      "DisplayName": "Idle time",
      "Increment": "0.1",
      "Range": {
        "high": "5",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "MOT_OPTIONS": {
      "Bitmask": {
        "0": "Voltage compensation uses raw voltage"
      },
      "Description": "Motor options",
      "DisplayName": "Motor options",
      "User": "Advanced"
    },
    "MOT_PWM_MAX": {
      "Description": "This sets the max PWM value in microseconds that will ever be output to the motors",
      "DisplayName": "PWM output maximum",
      "Increment": "1",
      "Range": {
        "high": "2000",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "MOT_PWM_MIN": {
      "Description": "This sets the min PWM output value in microseconds that will ever be output to the motors",
      "DisplayName": "PWM output minimum",
      "Increment": "1",
      "Range": {
        "high": "2000",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "MOT_PWM_TYPE": {
      "Description": "This selects the output PWM type, allowing for normal PWM continuous output, OneShot, brushed or DShot motor output.PWMRange and PWMAngle are PWM special/rare cases for ESCs that dont calibrate normally (some Sub motors) or where each ESC must have its PWM range set individually using the Servo params instead of PWM_MIN/MAX parameters.",
      "DisplayName": "Output PWM type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "OneShot",
        "2": "OneShot125",
        "3": "Brushed",
        "4": "DShot150",
        "5": "DShot300",
        "6": "DShot600",
        "7": "DShot1200",
        "8": "PWMRange",
        "9": "PWMAngle"
      }
    },
    "MOT_SAFE_DISARM": {
      "Description": "Disables motor PWM output when disarmed",
      "DisplayName": "Motor PWM output disabled when disarmed",
      "User": "Advanced",
      "Values": {
        "0": "PWM enabled while disarmed",
        "1": "PWM disabled while disarmed"
      }
    },
    "MOT_SAFE_TIME": {
      "Description": "Delay after arming before spool transitions are allowed, used to let ESCs/servos complete startup when PWM was disabled while disarmed.",
      "DisplayName": "PWM re-enable delay after arming when disarmed pwm was disabled",
      "Increment": "0.001",
      "Range": {
        "high": "5",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "MOT_SLEW_DN_TIME": {
      "Description": "Time in seconds to slew output from full to zero. This is used to limit the rate at which output can change.  Range is constrained between 0 and 0.5.",
      "DisplayName": "Output slew time for decreasing throttle",
      "Increment": "0.001",
      "Range": {
        "high": "0.5",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "MOT_SLEW_UP_TIME": {
      "Description": "Time in seconds to slew output from zero to full. This is used to limit the rate at which output can change. Range is constrained between 0 and 0.5.",
      "DisplayName": "Output slew time for increasing throttle",
      "Increment": "0.001",
      "Range": {
        "high": "0.5",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "MOT_SPIN_ARM": {
      "Description": "Point at which the motors start to spin expressed as a number from 0 to 1 in the entire output range.  Should be lower than MOT_SPIN_MIN.",
      "DisplayName": "Motor Spin armed",
      "Increment": "0.01",
      "Range": {
        "high": "0.2",
        "low": "0.0"
      },
      "User": "Advanced",
      "Values": {
        "0.0": "Low",
        "0.1": "Default",
        "0.2": "High"
      }
    },
    "MOT_SPIN_MAX": {
      "Description": "Point at which the thrust saturates expressed as a number from 0 to 1 in the entire output range",
      "DisplayName": "Motor Spin maximum",
      "Range": {
        "high": "1.0",
        "low": "0.9"
      },
      "User": "Advanced",
      "Values": {
        "0.9": "Low",
        "0.95": "Default",
        "1.0": "High"
      }
    },
    "MOT_SPIN_MIN": {
      "Description": "Point at which the thrust starts expressed as a number from 0 to 1 in the entire output range.  Should be higher than MOT_SPIN_ARM.",
      "DisplayName": "Motor Spin minimum",
      "Increment": "0.01",
      "Range": {
        "high": "0.25",
        "low": "0.0"
      },
      "User": "Advanced",
      "Values": {
        "0.0": "Low",
        "0.15": "Default",
        "0.25": "High"
      }
    },
    "MOT_SPOOL_TIME": {
      "Description": "Time in seconds to spool up the motors from zero to min throttle.",
      "DisplayName": "Spool up time",
      "Increment": "0.1",
      "Range": {
        "high": "2",
        "low": "0.05"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "MOT_SPOOL_TIM_DN": {
      "Description": "Time to ramp the throttle ceiling down toward zero. If 0, SPOOL_TIME is used.",
      "DisplayName": "Spool down time",
      "Increment": "0.001",
      "Range": {
        "high": "2",
        "low": "0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "MOT_THST_EXPO": {
      "Description": "Motor thrust curve exponent (0.0 for linear to 1.0 for second order curve)",
      "DisplayName": "Thrust Curve Expo",
      "Range": {
        "high": "1.0",
        "low": "-1.0"
      },
      "User": "Advanced"
    },
    "MOT_THST_HOVER": {
      "Description": "Motor thrust needed to hover expressed as a number from 0 to 1",
      "DisplayName": "Thrust Hover Value",
      "Range": {
        "high": "0.6875",
        "low": "0.125"
      },
      "User": "Advanced"
    },
    "MOT_YAW_HEADROOM": {
      "Description": "Yaw control is given at least this pwm in microseconds range",
      "DisplayName": "Matrix Yaw Min",
      "Increment": "1",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "MSP": {
    "MSP_OPTIONS": {
      "Bitmask": {
        "0": "EnableTelemetryMode",
        "1": "unused",
        "2": "EnableBTFLFonts",
        "3": "EnableINAVFonts",
        "4": "ForceVTXHighPower"
      },
      "Description": "A bitmask to set some MSP specific options: EnableTelemetryMode-allows \"push\" mode telemetry when only rx line of OSD ic connected to autopilot,  EnableBTFLFonts-uses indexes corresponding to Betaflight fonts if OSD uses those instead of ArduPilot fonts. EnableINAVFonts uses INAV fonts and overrides EnableBTFLFonts if that option is enabled. ForceVTXHighPower always reports the vehicle as armed so a VTX that drops to low power when disarmed stays at full power.",
      "DisplayName": "MSP OSD Options",
      "User": "Standard"
    },
    "MSP_OSD_NCELLS": {
      "Description": "Used for average cell voltage calculation",
      "DisplayName": "Cell count override",
      "User": "Standard",
      "Values": {
        "0": "Auto",
        "1": "1",
        "10": "10",
        "11": "11",
        "12": "12",
        "13": "13",
        "14": "14",
        "2": "2",
        "3": "3",
        "4": "4",
        "5": "5",
        "6": "6",
        "7": "7",
        "8": "8",
        "9": "9"
      }
    }
  },
  "NET_": {
    "NET_DHCP": {
      "Description": "Enable/Disable DHCP client",
      "DisplayName": "DHCP client",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "NET_ENABLE": {
      "Description": "Networking Enable",
      "DisplayName": "Networking Enable",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "NET_NETMASK": {
      "Description": "Allows setting static subnet mask. The value is a count of consecutive bits. Examples: 24 = 255.255.255.0, 16 = 255.255.0.0",
      "DisplayName": "IP Subnet mask",
      "Range": {
        "high": "32",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NET_OPTIONS": {
      "Bitmask": {
        "0": "EnablePPP Ethernet gateway",
        "1": "Enable CAN1 multicast endpoint",
        "2": "Enable CAN2 multicast endpoint",
        "3": "Enable CAN1 multicast bridged",
        "4": "Enable CAN2 multicast bridged",
        "5": "DisablePPPTimeout",
        "6": "DisablePPPEchoLimit",
        "7": "Capture to file"
      },
      "Description": "Networking options",
      "DisplayName": "Networking options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NET_TESTS": {
      "Bitmask": {
        "0": "UDP echo test",
        "1": "TCP echo test",
        "2": "TCP discard test",
        "3": "TCP reflect test"
      },
      "Description": "Enable/Disable networking tests",
      "DisplayName": "Test enable flags",
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "NET_GWADDR": {
    "NET_GWADDR0": {
      "Description": "IPv4 address. Example: 192.xxx.xxx.xxx",
      "DisplayName": "IPv4 Address 1st byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_GWADDR1": {
      "Description": "IPv4 address. Example: xxx.168.xxx.xxx",
      "DisplayName": "IPv4 Address 2nd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_GWADDR2": {
      "Description": "IPv4 address. Example: xxx.xxx.144.xxx",
      "DisplayName": "IPv4 Address 3rd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_GWADDR3": {
      "Description": "IPv4 address. Example: xxx.xxx.xxx.14",
      "DisplayName": "IPv4 Address 4th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    }
  },
  "NET_IPADDR": {
    "NET_IPADDR0": {
      "Description": "IPv4 address. Example: 192.xxx.xxx.xxx",
      "DisplayName": "IPv4 Address 1st byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_IPADDR1": {
      "Description": "IPv4 address. Example: xxx.168.xxx.xxx",
      "DisplayName": "IPv4 Address 2nd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_IPADDR2": {
      "Description": "IPv4 address. Example: xxx.xxx.144.xxx",
      "DisplayName": "IPv4 Address 3rd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_IPADDR3": {
      "Description": "IPv4 address. Example: xxx.xxx.xxx.14",
      "DisplayName": "IPv4 Address 4th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    }
  },
  "NET_MACADDR": {
    "NET_MACADDR0": {
      "Description": "MAC address 1st byte",
      "DisplayName": "MAC Address 1st byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NET_MACADDR1": {
      "Description": "MAC address 2nd byte",
      "DisplayName": "MAC Address 2nd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NET_MACADDR2": {
      "Description": "MAC address 3rd byte",
      "DisplayName": "MAC Address 3rd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NET_MACADDR3": {
      "Description": "MAC address 4th byte",
      "DisplayName": "MAC Address 4th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NET_MACADDR4": {
      "Description": "MAC address 5th byte",
      "DisplayName": "MAC Address 5th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NET_MACADDR5": {
      "Description": "MAC address 6th byte",
      "DisplayName": "MAC Address 6th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "NET_P1_": {
    "NET_P1_PORT": {
      "Description": "Port number",
      "DisplayName": "Port number",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NET_P1_PROTOCOL": {
      "Description": "Networked serial port protocol",
      "DisplayName": "Protocol",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "NET_P1_TYPE": {
      "Description": "Port type for network serial port. For the two client types a valid destination IP address must be set. For the two server types either 0.0.0.0 or a local address can be used. The UDP client type will use broadcast if the IP is set to 255.255.255.255 and will use UDP multicast if the IP is in the multicast address range.",
      "DisplayName": "Port type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "UDP client",
        "2": "UDP server",
        "3": "TCP client",
        "4": "TCP server"
      }
    }
  },
  "NET_P1_IP": {
    "NET_P1_IP0": {
      "Description": "IPv4 address. Example: 192.xxx.xxx.xxx",
      "DisplayName": "IPv4 Address 1st byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P1_IP1": {
      "Description": "IPv4 address. Example: xxx.168.xxx.xxx",
      "DisplayName": "IPv4 Address 2nd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P1_IP2": {
      "Description": "IPv4 address. Example: xxx.xxx.144.xxx",
      "DisplayName": "IPv4 Address 3rd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P1_IP3": {
      "Description": "IPv4 address. Example: xxx.xxx.xxx.14",
      "DisplayName": "IPv4 Address 4th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    }
  },
  "NET_P2_": {
    "NET_P2_PORT": {
      "Description": "Port number",
      "DisplayName": "Port number",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NET_P2_PROTOCOL": {
      "Description": "Networked serial port protocol",
      "DisplayName": "Protocol",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "NET_P2_TYPE": {
      "Description": "Port type for network serial port. For the two client types a valid destination IP address must be set. For the two server types either 0.0.0.0 or a local address can be used. The UDP client type will use broadcast if the IP is set to 255.255.255.255 and will use UDP multicast if the IP is in the multicast address range.",
      "DisplayName": "Port type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "UDP client",
        "2": "UDP server",
        "3": "TCP client",
        "4": "TCP server"
      }
    }
  },
  "NET_P2_IP": {
    "NET_P2_IP0": {
      "Description": "IPv4 address. Example: 192.xxx.xxx.xxx",
      "DisplayName": "IPv4 Address 1st byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P2_IP1": {
      "Description": "IPv4 address. Example: xxx.168.xxx.xxx",
      "DisplayName": "IPv4 Address 2nd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P2_IP2": {
      "Description": "IPv4 address. Example: xxx.xxx.144.xxx",
      "DisplayName": "IPv4 Address 3rd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P2_IP3": {
      "Description": "IPv4 address. Example: xxx.xxx.xxx.14",
      "DisplayName": "IPv4 Address 4th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    }
  },
  "NET_P3_": {
    "NET_P3_PORT": {
      "Description": "Port number",
      "DisplayName": "Port number",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NET_P3_PROTOCOL": {
      "Description": "Networked serial port protocol",
      "DisplayName": "Protocol",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "NET_P3_TYPE": {
      "Description": "Port type for network serial port. For the two client types a valid destination IP address must be set. For the two server types either 0.0.0.0 or a local address can be used. The UDP client type will use broadcast if the IP is set to 255.255.255.255 and will use UDP multicast if the IP is in the multicast address range.",
      "DisplayName": "Port type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "UDP client",
        "2": "UDP server",
        "3": "TCP client",
        "4": "TCP server"
      }
    }
  },
  "NET_P3_IP": {
    "NET_P3_IP0": {
      "Description": "IPv4 address. Example: 192.xxx.xxx.xxx",
      "DisplayName": "IPv4 Address 1st byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P3_IP1": {
      "Description": "IPv4 address. Example: xxx.168.xxx.xxx",
      "DisplayName": "IPv4 Address 2nd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P3_IP2": {
      "Description": "IPv4 address. Example: xxx.xxx.144.xxx",
      "DisplayName": "IPv4 Address 3rd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P3_IP3": {
      "Description": "IPv4 address. Example: xxx.xxx.xxx.14",
      "DisplayName": "IPv4 Address 4th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    }
  },
  "NET_P4_": {
    "NET_P4_PORT": {
      "Description": "Port number",
      "DisplayName": "Port number",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NET_P4_PROTOCOL": {
      "Description": "Networked serial port protocol",
      "DisplayName": "Protocol",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "NET_P4_TYPE": {
      "Description": "Port type for network serial port. For the two client types a valid destination IP address must be set. For the two server types either 0.0.0.0 or a local address can be used. The UDP client type will use broadcast if the IP is set to 255.255.255.255 and will use UDP multicast if the IP is in the multicast address range.",
      "DisplayName": "Port type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "UDP client",
        "2": "UDP server",
        "3": "TCP client",
        "4": "TCP server"
      }
    }
  },
  "NET_P4_IP": {
    "NET_P4_IP0": {
      "Description": "IPv4 address. Example: 192.xxx.xxx.xxx",
      "DisplayName": "IPv4 Address 1st byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P4_IP1": {
      "Description": "IPv4 address. Example: xxx.168.xxx.xxx",
      "DisplayName": "IPv4 Address 2nd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P4_IP2": {
      "Description": "IPv4 address. Example: xxx.xxx.144.xxx",
      "DisplayName": "IPv4 Address 3rd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_P4_IP3": {
      "Description": "IPv4 address. Example: xxx.xxx.xxx.14",
      "DisplayName": "IPv4 Address 4th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    }
  },
  "NET_REMPPP_IP": {
    "NET_REMPPP_IP0": {
      "Description": "IPv4 address. Example: 192.xxx.xxx.xxx",
      "DisplayName": "IPv4 Address 1st byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_REMPPP_IP1": {
      "Description": "IPv4 address. Example: xxx.168.xxx.xxx",
      "DisplayName": "IPv4 Address 2nd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_REMPPP_IP2": {
      "Description": "IPv4 address. Example: xxx.xxx.144.xxx",
      "DisplayName": "IPv4 Address 3rd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_REMPPP_IP3": {
      "Description": "IPv4 address. Example: xxx.xxx.xxx.14",
      "DisplayName": "IPv4 Address 4th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    }
  },
  "NET_TEST_IP": {
    "NET_TEST_IP0": {
      "Description": "IPv4 address. Example: 192.xxx.xxx.xxx",
      "DisplayName": "IPv4 Address 1st byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_TEST_IP1": {
      "Description": "IPv4 address. Example: xxx.168.xxx.xxx",
      "DisplayName": "IPv4 Address 2nd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_TEST_IP2": {
      "Description": "IPv4 address. Example: xxx.xxx.144.xxx",
      "DisplayName": "IPv4 Address 3rd byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    },
    "NET_TEST_IP3": {
      "Description": "IPv4 address. Example: xxx.xxx.xxx.14",
      "DisplayName": "IPv4 Address 4th byte",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True"
    }
  },
  "NMEA_": {
    "NMEA_MSG_EN": {
      "Bitmask": {
        "0": "GPGGA",
        "1": "GPRMC",
        "2": "PASHR"
      },
      "Description": "This is a bitmask of enabled NMEA messages. All messages will be sent consecutively at the same rate interval",
      "DisplayName": "Messages Enable bitmask",
      "User": "Standard"
    },
    "NMEA_RATE_MS": {
      "Description": "NMEA Output rate. This controls the interval at which all the enabled NMEA messages are sent. Most NMEA systems expect 100ms (10Hz) or slower.",
      "DisplayName": "NMEA Output rate",
      "Increment": "1",
      "Range": {
        "high": "2000",
        "low": "20"
      },
      "Units": "ms",
      "User": "Standard"
    }
  },
  "NTF_": {
    "NTF_BUZZ_ON_LVL": {
      "Description": "Specifies pin level that indicates buzzer should play",
      "DisplayName": "Buzzer-on pin logic level",
      "User": "Advanced",
      "Values": {
        "0": "LowIsOn",
        "1": "HighIsOn"
      }
    },
    "NTF_BUZZ_PIN": {
      "Description": "Enables to connect active buzzer to arbitrary pin. Requires 3-pin buzzer or additional MOSFET! Some the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Buzzer pin",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled"
      }
    },
    "NTF_BUZZ_TYPES": {
      "Bitmask": {
        "0": "Built-in buzzer",
        "1": "DShot",
        "2": "DroneCAN"
      },
      "Description": "Controls what types of Buzzer will be enabled",
      "DisplayName": "Buzzer Driver Types",
      "User": "Advanced"
    },
    "NTF_BUZZ_VOLUME": {
      "Description": "Control the volume of the buzzer",
      "DisplayName": "Buzzer volume",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "%"
    },
    "NTF_DISPLAY_TYPE": {
      "Description": "This sets up the type of on-board I2C display. Disabled by default.",
      "DisplayName": "Type of on-board I2C display",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "ssd1306",
        "10": "SITL",
        "2": "sh1106"
      }
    },
    "NTF_LED_BRIGHT": {
      "Description": "Select the RGB LED brightness level. When USB is connected brightness will never be higher than low regardless of the setting.",
      "DisplayName": "LED Brightness",
      "User": "Advanced",
      "Values": {
        "0": "Off",
        "1": "Low",
        "2": "Medium",
        "3": "High"
      }
    },
    "NTF_LED_LEN": {
      "Description": "The number of Serial LED's to use for notifications (NeoPixel's and ProfiLED)",
      "DisplayName": "Serial LED String Length",
      "Range": {
        "high": "32",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "NTF_LED_OVERRIDE": {
      "Description": "Specifies the source for the colours and brightness for the LED.  OutbackChallenge conforms to the MedicalExpress (https://uavchallenge.org/medical-express/) rules, essentially \"Green\" is disarmed (safe-to-approach), \"Red\" is armed (not safe-to-approach). Traffic light is a simplified color set, red when armed, yellow when the safety switch is not surpressing outputs (but disarmed), and green when outputs are surpressed and disarmed, the LED will blink faster if disarmed and failing arming checks.",
      "DisplayName": "Specifies colour source for the RGBLed",
      "User": "Advanced",
      "Values": {
        "0": "Standard",
        "1": "MAVLink/Scripting/AP_Periph",
        "2": "OutbackChallenge",
        "3": "TrafficLight"
      }
    },
    "NTF_LED_TYPES": {
      "Bitmask": {
        "0": "Built-in LED",
        "1": "Internal ToshibaLED",
        "10": "Scripting",
        "11": "DShot",
        "12": "ProfiLED_SPI",
        "13": "LP5562 External",
        "14": "LP5562 Internal",
        "15": "IS31FL3195 External",
        "16": "IS31FL3195 Internal",
        "17": "DiscreteRGB",
        "18": "NeoPixelRGB",
        "19": "ProfiLED_IOMCU",
        "2": "External ToshibaLED",
        "3": "External PCA9685",
        "4": "Oreo LED",
        "5": "DroneCAN",
        "6": "NCP5623 External",
        "7": "NCP5623 Internal",
        "8": "NeoPixel",
        "9": "ProfiLED"
      },
      "Description": "Controls what types of LEDs will be enabled",
      "DisplayName": "LED Driver Types",
      "User": "Advanced"
    },
    "NTF_OREO_THEME": {
      "Description": "Enable/Disable Solo Oreo LED driver, 0 to disable, 1 for Aircraft theme, 2 for Rover theme",
      "DisplayName": "OreoLED Theme",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Aircraft",
        "2": "Rover"
      }
    }
  },
  "OSD": {
    "OSD_ARM_SCR": {
      "Description": "Screen to be shown on Arm event. Zero to disable the feature.",
      "DisplayName": "Arm screen",
      "Range": {
        "high": "4",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD_BTN_DELAY": {
      "Description": "Debounce time in ms for stick commanded parameter navigation.",
      "DisplayName": "Button delay",
      "Range": {
        "high": "3000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "OSD_CELL_COUNT": {
      "Description": "Used for average cell voltage display. -1 disables, 0 uses cell count autodetection for well charged LIPO/LIION batteries at connection, other values manually select cell count used.",
      "DisplayName": "Battery cell count",
      "Increment": "1",
      "User": "Advanced"
    },
    "OSD_CHAN": {
      "Description": "This sets the channel used to switch different OSD screens.",
      "DisplayName": "Screen switch transmitter channel",
      "User": "Standard",
      "Values": {
        "0": "Disable",
        "10": "Chan10",
        "11": "Chan11",
        "12": "Chan12",
        "13": "Chan13",
        "14": "Chan14",
        "15": "Chan15",
        "16": "Chan16",
        "5": "Chan5",
        "6": "Chan6",
        "7": "Chan7",
        "8": "Chan8",
        "9": "Chan9"
      }
    },
    "OSD_DSARM_SCR": {
      "Description": "Screen to be shown on disarm event. Zero to disable the feature.",
      "DisplayName": "Disarm screen",
      "Range": {
        "high": "4",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD_FONT": {
      "Description": "This sets which OSD font to use. It is an integer from 0 to the number of fonts available",
      "DisplayName": "OSD Font",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "OSD_FS_SCR": {
      "Description": "Screen to be shown on failsafe event. Zero to disable the feature.",
      "DisplayName": "Failsafe screen",
      "Range": {
        "high": "4",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD_H_OFFSET": {
      "Description": "Sets horizontal offset of the osd inside image",
      "DisplayName": "OSD horizontal offset",
      "Range": {
        "high": "63",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Standard"
    },
    "OSD_MSG_TIME": {
      "Description": "Sets message duration seconds",
      "DisplayName": "Message display duration in seconds",
      "Range": {
        "high": "20",
        "low": "1"
      },
      "User": "Standard"
    },
    "OSD_OPTIONS": {
      "Bitmask": {
        "0": "UseDecimalPack",
        "1": "InvertedWindArrow",
        "2": "InvertedAHRoll",
        "3": "Convert feet to miles at 5280ft instead of 10000ft",
        "4": "DisableCrosshair",
        "5": "TranslateArrows",
        "6": "AviationStyleAH",
        "7": "Prefix LQ with RF Mode"
      },
      "Description": "This sets options that change the display",
      "DisplayName": "OSD Options",
      "User": "Standard"
    },
    "OSD_SB_H_OFS": {
      "Description": "Extends the spacing between the sidebar elements by this amount of columns. Positive values increases the width to the right of the screen.",
      "DisplayName": "Sidebar horizontal offset",
      "Range": {
        "high": "20",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD_SB_V_EXT": {
      "Description": "Increase of vertical length of the sidebar itens by this amount of lines. Applied equally both above and below the default setting.",
      "DisplayName": "Sidebar vertical extension",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD_SW_METHOD": {
      "Description": "This sets the method used to switch different OSD screens.",
      "DisplayName": "Screen switch method",
      "User": "Standard",
      "Values": {
        "0": "switch to next screen if channel value was changed",
        "1": "select screen based on pwm ranges specified for each screen",
        "2": "switch to next screen after low to high transition and every 1s while channel value is high"
      }
    },
    "OSD_TYPE": {
      "Description": "OSD type. TXONLY makes the OSD parameter selection available to other modules even if there is no native OSD support on the board, for instance CRSF.",
      "DisplayName": "OSD type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "MAX7456",
        "2": "SITL",
        "3": "MSP",
        "4": "TXONLY",
        "5": "MSP_DISPLAYPORT"
      }
    },
    "OSD_TYPE2": {
      "Description": "OSD type 2. TXONLY makes the OSD parameter selection available to other modules even if there is no native OSD support on the board, for instance CRSF.",
      "DisplayName": "OSD type 2",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "MAX7456",
        "2": "SITL",
        "3": "MSP",
        "4": "TXONLY",
        "5": "MSP_DISPLAYPORT"
      }
    },
    "OSD_UNITS": {
      "Description": "Sets the units to use in displaying items",
      "DisplayName": "Display Units",
      "User": "Standard",
      "Values": {
        "0": "Metric",
        "1": "Imperial",
        "2": "SI",
        "3": "Aviation"
      }
    },
    "OSD_V_OFFSET": {
      "Description": "Sets vertical offset of the osd inside image",
      "DisplayName": "OSD vertical offset",
      "Range": {
        "high": "31",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Standard"
    },
    "OSD_W_ACRVOLT": {
      "Description": "Set level at which ACRVOLT item will flash",
      "DisplayName": "Avg Cell Resting Volt warn level",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD_W_AVGCELLV": {
      "Description": "Set level at which AVGCELLV item will flash",
      "DisplayName": "AVGCELLV warn level",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD_W_BATVOLT": {
      "Description": "Set level at which BAT_VOLT item will flash",
      "DisplayName": "BAT_VOLT warn level",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD_W_LQ": {
      "Description": "Set level at which RC_LQ item will flash (%)",
      "DisplayName": "RC link quality warn level (in %)",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD_W_NSAT": {
      "Description": "Set level at which NSAT item will flash",
      "DisplayName": "NSAT warn level",
      "Range": {
        "high": "30",
        "low": "1"
      },
      "User": "Standard"
    },
    "OSD_W_RESTVOLT": {
      "Description": "Set level at which RESTVOLT item will flash",
      "DisplayName": "RESTVOLT warn level",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD_W_RSSI": {
      "Description": "Set level at which RSSI item will flash (in positive % or negative dBm values as applicable). 30% or -100dBm are defaults.",
      "DisplayName": "RSSI warn level (in %)",
      "Range": {
        "high": "100",
        "low": "-128"
      },
      "User": "Standard"
    },
    "OSD_W_SNR": {
      "Description": "Set level at which RC_SNR item will flash (in db)",
      "DisplayName": "RC link SNR warn level (in %)",
      "Range": {
        "high": "10",
        "low": "-20"
      },
      "User": "Standard"
    },
    "OSD_W_TERR": {
      "Description": "Set level below which TER_HGT item will flash. -1 disables.",
      "DisplayName": "Terrain warn level",
      "Range": {
        "high": "3000",
        "low": "-1"
      },
      "Units": "m",
      "User": "Standard"
    }
  },
  "OSD1_": {
    "OSD1_ACRVOLT_EN": {
      "Description": "Displays resting voltage for the average cell. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the  the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",
      "DisplayName": "ACRVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ACRVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ACRVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_ACRVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ACRVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_ALTITUDE_EN": {
      "Description": "Enables display of altitude AGL",
      "DisplayName": "ALTITUDE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ALTITUDE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ALTITUDE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_ALTITUDE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ALTITUDE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_ARMING_EN": {
      "Description": "Displays arming status (MSP OSD only)",
      "DisplayName": "ARMING_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ARMING_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ARMING_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_ARMING_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ARMING_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_ASPD1_EN": {
      "Description": "Displays airspeed reported directly from primary airspeed sensor",
      "DisplayName": "ASPD1_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ASPD1_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPD1_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_ASPD1_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPD1_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_ASPD2_EN": {
      "Description": "Displays airspeed reported directly from secondary airspeed sensor",
      "DisplayName": "ASPD2_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ASPD2_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPD2_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_ASPD2_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPD2_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_ASPEED_EN": {
      "Description": "Displays airspeed value being used by TECS (fused value)",
      "DisplayName": "ASPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ASPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_ASPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_ATEMP_EN": {
      "Description": "Displays temperature reported by primary airspeed sensor",
      "DisplayName": "ATEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ATEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ATEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_ATEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ATEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_AVGCELLV_EN": {
      "Description": "Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the  the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",
      "DisplayName": "AVGCELLV_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_AVGCELLV_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "AVGCELLV_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_AVGCELLV_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "AVGCELLV_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_BAT2USED_EN": {
      "Description": "Displays secondary battery mAh consumed",
      "DisplayName": "BAT2USED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_BAT2USED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BAT2USED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_BAT2USED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BAT2USED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_BAT2_VLT_EN": {
      "Description": "Displays battery2 voltage",
      "DisplayName": "BAT2VLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_BAT2_VLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BAT2VLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_BAT2_VLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BAT2VLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_BATTBAR_EN": {
      "Description": "Displays battery usage bar (MSP OSD only)",
      "DisplayName": "BATT_BAR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_BATTBAR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATT_BAR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_BATTBAR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATT_BAR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_BATUSED_EN": {
      "Description": "Displays primary battery mAh consumed",
      "DisplayName": "BATUSED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_BATUSED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATUSED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_BATUSED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATUSED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_BAT_VOLT_EN": {
      "Description": "Displays main battery voltage",
      "DisplayName": "BATVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_BAT_VOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_BAT_VOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_BTEMP_EN": {
      "Description": "Displays temperature reported by secondary barometer",
      "DisplayName": "BTEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_BTEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BTEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_BTEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BTEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_CALLSIGN_EN": {
      "Description": "Displays callsign from callsign.txt on microSD card",
      "DisplayName": "CALLSIGN_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_CALLSIGN_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CALLSIGN_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_CALLSIGN_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CALLSIGN_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_CELLVOLT_EN": {
      "Description": "Displays average cell voltage (MSP OSD only)",
      "DisplayName": "CELL_VOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_CELLVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CELL_VOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_CELLVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CELL_VOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_CHAN_MAX": {
      "Description": "This sets the PWM upper limit for this screen",
      "DisplayName": "Transmitter switch screen maximum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD1_CHAN_MIN": {
      "Description": "This sets the PWM lower limit for this screen",
      "DisplayName": "Transmitter switch screen minimum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD1_CLIMBEFF_EN": {
      "Description": "Displays climb efficiency (climb rate/current)",
      "DisplayName": "CLIMBEFF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_CLIMBEFF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CLIMBEFF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_CLIMBEFF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CLIMBEFF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_CLK_EN": {
      "Description": "Displays a clock panel based on AP_RTC local time",
      "DisplayName": "CLK_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_CLK_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CLK_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_CLK_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CLK_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_COMPASS_EN": {
      "Description": "Enables display of compass rose",
      "DisplayName": "COMPASS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_COMPASS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "COMPASS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_COMPASS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "COMPASS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_CRSSHAIR_EN": {
      "Description": "Displays artificial horizon crosshair (MSP OSD only)",
      "DisplayName": "CRSSHAIR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_CRSSHAIR_X": {
      "Description": "Horizontal position on screen (MSP OSD only)",
      "DisplayName": "CRSSHAIR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_CRSSHAIR_Y": {
      "Description": "Vertical position on screen (MSP OSD only)",
      "DisplayName": "CRSSHAIR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_CURRENT2_EN": {
      "Description": "Displays 2nd battery current",
      "DisplayName": "CURRENT2_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_CURRENT2_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CURRENT2_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_CURRENT2_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CURRENT2_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_CURRENT_EN": {
      "Description": "Displays main battery current",
      "DisplayName": "CURRENT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_CURRENT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CURRENT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_CURRENT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CURRENT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_DIST_EN": {
      "Description": "Displays total distance flown",
      "DisplayName": "DIST_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_DIST_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "DIST_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_DIST_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "DIST_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_EFF_EN": {
      "Description": "Displays flight efficiency (mAh/km or /mi)",
      "DisplayName": "EFF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_EFF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "EFF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_EFF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "EFF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_ENABLE": {
      "Description": "Enable this screen",
      "DisplayName": "Enable screen",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ESCAMPS_EN": {
      "Description": "Displays the current of the ESC with the highest rpm of all active ESCs, or of a specific ESC if OSDx_ESC_IDX is set",
      "DisplayName": "ESCAMPS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ESCAMPS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCAMPS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_ESCAMPS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCAMPS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_ESCRPM_EN": {
      "Description": "Displays highest rpm of all active ESCs, or of a specific ESC if OSDx_ESC_IDX is set",
      "DisplayName": "ESCRPM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ESCRPM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCRPM_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_ESCRPM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCRPM_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_ESCTEMP_EN": {
      "Description": "Displays highest temp of all active ESCs, or of a specific ECS if OSDx_ESC_IDX is set",
      "DisplayName": "ESCTEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ESCTEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCTEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_ESCTEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCTEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_ESC_IDX": {
      "Description": "Index of the ESC to use for displaying ESC information. 0 means use the ESC with the highest value.",
      "DisplayName": "ESC_IDX",
      "Range": {
        "high": "32",
        "low": "0"
      }
    },
    "OSD1_FENCE_EN": {
      "Description": "Displays indication of fence enable and breach",
      "DisplayName": "FENCE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_FENCE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FENCE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_FENCE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FENCE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_FLTIME_EN": {
      "Description": "Displays total flight time",
      "DisplayName": "FLTIME_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_FLTIME_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FLTIME_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_FLTIME_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FLTIME_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_FLTMODE_EN": {
      "Description": "Displays flight mode",
      "DisplayName": "FLTMODE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_FLTMODE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FLTMODE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_FLTMODE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FLTMODE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_FONT": {
      "Description": "Sets the font index for this screen (MSP DisplayPort only)",
      "DisplayName": "Sets the font index for this screen (MSP DisplayPort only)",
      "Range": {
        "high": "21",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD1_GPSLAT_EN": {
      "Description": "Displays GPS latitude",
      "DisplayName": "GPSLAT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_GPSLAT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GPSLAT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_GPSLAT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GPSLAT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_GPSLONG_EN": {
      "Description": "Displays GPS longitude",
      "DisplayName": "GPSLONG_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_GPSLONG_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GPSLONG_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_GPSLONG_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GPSLONG_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_GSPEED_EN": {
      "Description": "Displays GPS ground speed",
      "DisplayName": "GSPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_GSPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GSPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_GSPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GSPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_HDOP_EN": {
      "Description": "Displays Horizontal Dilution Of Position",
      "DisplayName": "HDOP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_HDOP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HDOP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_HDOP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HDOP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_HEADING_EN": {
      "Description": "Displays heading",
      "DisplayName": "HEADING_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_HEADING_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HEADING_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_HEADING_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HEADING_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_HOMEDIR_EN": {
      "Description": "Displays relative direction to HOME (MSP OSD only)",
      "DisplayName": "HOMEDIR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_HOMEDIR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HOMEDIR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_HOMEDIR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HOMEDIR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_HOMEDIST_EN": {
      "Description": "Displays distance from HOME (MSP OSD only)",
      "DisplayName": "HOMEDIST_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_HOMEDIST_X": {
      "Description": "Horizontal position on screen (MSP OSD only)",
      "DisplayName": "HOMEDIST_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_HOMEDIST_Y": {
      "Description": "Vertical position on screen (MSP OSD only)",
      "DisplayName": "HOMEDIST_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_HOME_EN": {
      "Description": "Displays distance and relative direction to HOME",
      "DisplayName": "HOME_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_HOME_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HOME_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_HOME_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HOME_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_HORIZON_EN": {
      "Description": "Displays artificial horizon",
      "DisplayName": "HORIZON_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_HORIZON_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HORIZON_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_HORIZON_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HORIZON_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_LINK_Q_EN": {
      "Description": "Displays Receiver link quality",
      "DisplayName": "LINK_Q_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_LINK_Q_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "LINK_Q_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_LINK_Q_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "LINK_Q_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_MESSAGE_EN": {
      "Description": "Displays Mavlink messages",
      "DisplayName": "MESSAGE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_MESSAGE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "MESSAGE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_MESSAGE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "MESSAGE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_PITCH_EN": {
      "Description": "Displays degrees of pitch from level",
      "DisplayName": "PITCH_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_PITCH_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "PITCH_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_PITCH_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "PITCH_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_PLUSCODE_EN": {
      "Description": "Displays pluscode (OLC) element",
      "DisplayName": "PLUSCODE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_PLUSCODE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "PLUSCODE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_PLUSCODE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "PLUSCODE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_POWER_EN": {
      "Description": "Displays power (MSP OSD only)",
      "DisplayName": "POWER_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_POWER_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "POWER_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_POWER_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "POWER_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_RC_ANT_EN": {
      "Description": "Displays the current RC link active antenna",
      "DisplayName": "RC_ANT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_RC_ANT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_ANT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_RC_ANT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_ANT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_RC_LQ_EN": {
      "Description": "Displays the RC link quality (uplink, 0 to 100%) and also RF mode if bit 7 of OSD_OPTIONS is set",
      "DisplayName": "RC_LQ_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_RC_LQ_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_LQ_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_RC_LQ_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_LQ_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_RC_PWR_EN": {
      "Description": "Displays the RC link transmit (TX) power in mW or W, depending on level",
      "DisplayName": "RC_PWR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_RC_PWR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_PWR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_RC_PWR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_PWR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_RC_SNR_EN": {
      "Description": "Displays RC link signal to noise ratio in dB",
      "DisplayName": "RC_SNR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_RC_SNR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_SNR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_RC_SNR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_SNR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_RESTVOLT_EN": {
      "Description": "Displays main battery resting voltage",
      "DisplayName": "RESTVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_RESTVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RESTVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_RESTVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RESTVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_RNGF_EN": {
      "Description": "Displays a rangefinder's distance in cm",
      "DisplayName": "RNGF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_RNGF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RNGF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_RNGF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RNGF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_ROLL_EN": {
      "Description": "Displays degrees of roll from level",
      "DisplayName": "ROLL_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_ROLL_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ROLL_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_ROLL_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ROLL_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_RPM_EN": {
      "Description": "Displays main rotor revs/min",
      "DisplayName": "RPM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_RPM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RPM_X",
      "Range": {
        "high": "29",
        "low": "0"
      }
    },
    "OSD1_RPM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RPM_Y",
      "Range": {
        "high": "15",
        "low": "0"
      }
    },
    "OSD1_RSSIDBM_EN": {
      "Description": "Displays RC link signal strength in dBm",
      "DisplayName": "RSSIDBM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_RSSIDBM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RSSIDBM_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_RSSIDBM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RSSIDBM_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_RSSI_EN": {
      "Description": "Displays RC signal strength",
      "DisplayName": "RSSI_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_RSSI_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RSSI_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_RSSI_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RSSI_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_SATS_EN": {
      "Description": "Displays number of acquired satellites",
      "DisplayName": "SATS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_SATS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "SATS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_SATS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "SATS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_SIDEBARS_EN": {
      "Description": "Displays artificial horizon side bars",
      "DisplayName": "SIDEBARS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_SIDEBARS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "SIDEBARS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_SIDEBARS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "SIDEBARS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_STATS_EN": {
      "Description": "Displays flight stats",
      "DisplayName": "STATS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_STATS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "STATS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_STATS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "STATS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_TEMP_EN": {
      "Description": "Displays temperature reported by primary barometer",
      "DisplayName": "TEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_TEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "TEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_TEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "TEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_TER_HGT_EN": {
      "Description": "Displays Height above terrain",
      "DisplayName": "TER_HGT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_TER_HGT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "TER_HGT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_TER_HGT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "TER_HGT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_THROTTLE_EN": {
      "Description": "Displays actual throttle percentage being sent to motor(s)",
      "DisplayName": "THROTTLE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_THROTTLE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "THROTTLE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_THROTTLE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "THROTTLE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_TXT_RES": {
      "Description": "Sets the overlay text resolution for this screen to either SD 30x16 or HD 50x18/60x22/53x20 (MSP DisplayPort only)",
      "DisplayName": "Sets the overlay text resolution (MSP DisplayPort only)",
      "User": "Standard",
      "Values": {
        "0": "30x16",
        "1": "50x18",
        "2": "60x22",
        "3": "53x20"
      }
    },
    "OSD1_VSPEED_EN": {
      "Description": "Displays climb rate",
      "DisplayName": "VSPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_VSPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "VSPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_VSPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "VSPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_VTX_PWR_EN": {
      "Description": "Displays VTX Power",
      "DisplayName": "VTX_PWR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_VTX_PWR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "VTX_PWR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_VTX_PWR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "VTX_PWR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_WAYPOINT_EN": {
      "Description": "Displays bearing and distance to next waypoint",
      "DisplayName": "WAYPOINT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_WAYPOINT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "WAYPOINT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_WAYPOINT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "WAYPOINT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_WIND_EN": {
      "Description": "Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",
      "DisplayName": "WIND_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_WIND_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "WIND_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_WIND_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "WIND_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD1_XTRACK_EN": {
      "Description": "Displays crosstrack error",
      "DisplayName": "XTRACK_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD1_XTRACK_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "XTRACK_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD1_XTRACK_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "XTRACK_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    }
  },
  "OSD2_": {
    "OSD2_ACRVOLT_EN": {
      "Description": "Displays resting voltage for the average cell. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the  the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",
      "DisplayName": "ACRVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ACRVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ACRVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_ACRVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ACRVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_ALTITUDE_EN": {
      "Description": "Enables display of altitude AGL",
      "DisplayName": "ALTITUDE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ALTITUDE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ALTITUDE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_ALTITUDE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ALTITUDE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_ARMING_EN": {
      "Description": "Displays arming status (MSP OSD only)",
      "DisplayName": "ARMING_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ARMING_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ARMING_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_ARMING_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ARMING_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_ASPD1_EN": {
      "Description": "Displays airspeed reported directly from primary airspeed sensor",
      "DisplayName": "ASPD1_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ASPD1_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPD1_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_ASPD1_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPD1_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_ASPD2_EN": {
      "Description": "Displays airspeed reported directly from secondary airspeed sensor",
      "DisplayName": "ASPD2_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ASPD2_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPD2_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_ASPD2_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPD2_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_ASPEED_EN": {
      "Description": "Displays airspeed value being used by TECS (fused value)",
      "DisplayName": "ASPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ASPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_ASPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_ATEMP_EN": {
      "Description": "Displays temperature reported by primary airspeed sensor",
      "DisplayName": "ATEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ATEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ATEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_ATEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ATEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_AVGCELLV_EN": {
      "Description": "Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the  the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",
      "DisplayName": "AVGCELLV_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_AVGCELLV_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "AVGCELLV_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_AVGCELLV_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "AVGCELLV_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_BAT2USED_EN": {
      "Description": "Displays secondary battery mAh consumed",
      "DisplayName": "BAT2USED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_BAT2USED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BAT2USED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_BAT2USED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BAT2USED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_BAT2_VLT_EN": {
      "Description": "Displays battery2 voltage",
      "DisplayName": "BAT2VLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_BAT2_VLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BAT2VLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_BAT2_VLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BAT2VLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_BATTBAR_EN": {
      "Description": "Displays battery usage bar (MSP OSD only)",
      "DisplayName": "BATT_BAR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_BATTBAR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATT_BAR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_BATTBAR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATT_BAR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_BATUSED_EN": {
      "Description": "Displays primary battery mAh consumed",
      "DisplayName": "BATUSED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_BATUSED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATUSED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_BATUSED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATUSED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_BAT_VOLT_EN": {
      "Description": "Displays main battery voltage",
      "DisplayName": "BATVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_BAT_VOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_BAT_VOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_BTEMP_EN": {
      "Description": "Displays temperature reported by secondary barometer",
      "DisplayName": "BTEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_BTEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BTEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_BTEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BTEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_CALLSIGN_EN": {
      "Description": "Displays callsign from callsign.txt on microSD card",
      "DisplayName": "CALLSIGN_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_CALLSIGN_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CALLSIGN_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_CALLSIGN_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CALLSIGN_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_CELLVOLT_EN": {
      "Description": "Displays average cell voltage (MSP OSD only)",
      "DisplayName": "CELL_VOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_CELLVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CELL_VOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_CELLVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CELL_VOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_CHAN_MAX": {
      "Description": "This sets the PWM upper limit for this screen",
      "DisplayName": "Transmitter switch screen maximum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD2_CHAN_MIN": {
      "Description": "This sets the PWM lower limit for this screen",
      "DisplayName": "Transmitter switch screen minimum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD2_CLIMBEFF_EN": {
      "Description": "Displays climb efficiency (climb rate/current)",
      "DisplayName": "CLIMBEFF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_CLIMBEFF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CLIMBEFF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_CLIMBEFF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CLIMBEFF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_CLK_EN": {
      "Description": "Displays a clock panel based on AP_RTC local time",
      "DisplayName": "CLK_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_CLK_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CLK_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_CLK_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CLK_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_COMPASS_EN": {
      "Description": "Enables display of compass rose",
      "DisplayName": "COMPASS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_COMPASS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "COMPASS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_COMPASS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "COMPASS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_CRSSHAIR_EN": {
      "Description": "Displays artificial horizon crosshair (MSP OSD only)",
      "DisplayName": "CRSSHAIR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_CRSSHAIR_X": {
      "Description": "Horizontal position on screen (MSP OSD only)",
      "DisplayName": "CRSSHAIR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_CRSSHAIR_Y": {
      "Description": "Vertical position on screen (MSP OSD only)",
      "DisplayName": "CRSSHAIR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_CURRENT2_EN": {
      "Description": "Displays 2nd battery current",
      "DisplayName": "CURRENT2_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_CURRENT2_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CURRENT2_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_CURRENT2_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CURRENT2_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_CURRENT_EN": {
      "Description": "Displays main battery current",
      "DisplayName": "CURRENT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_CURRENT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CURRENT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_CURRENT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CURRENT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_DIST_EN": {
      "Description": "Displays total distance flown",
      "DisplayName": "DIST_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_DIST_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "DIST_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_DIST_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "DIST_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_EFF_EN": {
      "Description": "Displays flight efficiency (mAh/km or /mi)",
      "DisplayName": "EFF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_EFF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "EFF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_EFF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "EFF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_ENABLE": {
      "Description": "Enable this screen",
      "DisplayName": "Enable screen",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ESCAMPS_EN": {
      "Description": "Displays the current of the ESC with the highest rpm of all active ESCs, or of a specific ESC if OSDx_ESC_IDX is set",
      "DisplayName": "ESCAMPS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ESCAMPS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCAMPS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_ESCAMPS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCAMPS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_ESCRPM_EN": {
      "Description": "Displays highest rpm of all active ESCs, or of a specific ESC if OSDx_ESC_IDX is set",
      "DisplayName": "ESCRPM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ESCRPM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCRPM_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_ESCRPM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCRPM_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_ESCTEMP_EN": {
      "Description": "Displays highest temp of all active ESCs, or of a specific ECS if OSDx_ESC_IDX is set",
      "DisplayName": "ESCTEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ESCTEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCTEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_ESCTEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCTEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_ESC_IDX": {
      "Description": "Index of the ESC to use for displaying ESC information. 0 means use the ESC with the highest value.",
      "DisplayName": "ESC_IDX",
      "Range": {
        "high": "32",
        "low": "0"
      }
    },
    "OSD2_FENCE_EN": {
      "Description": "Displays indication of fence enable and breach",
      "DisplayName": "FENCE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_FENCE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FENCE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_FENCE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FENCE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_FLTIME_EN": {
      "Description": "Displays total flight time",
      "DisplayName": "FLTIME_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_FLTIME_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FLTIME_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_FLTIME_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FLTIME_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_FLTMODE_EN": {
      "Description": "Displays flight mode",
      "DisplayName": "FLTMODE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_FLTMODE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FLTMODE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_FLTMODE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FLTMODE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_FONT": {
      "Description": "Sets the font index for this screen (MSP DisplayPort only)",
      "DisplayName": "Sets the font index for this screen (MSP DisplayPort only)",
      "Range": {
        "high": "21",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD2_GPSLAT_EN": {
      "Description": "Displays GPS latitude",
      "DisplayName": "GPSLAT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_GPSLAT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GPSLAT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_GPSLAT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GPSLAT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_GPSLONG_EN": {
      "Description": "Displays GPS longitude",
      "DisplayName": "GPSLONG_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_GPSLONG_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GPSLONG_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_GPSLONG_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GPSLONG_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_GSPEED_EN": {
      "Description": "Displays GPS ground speed",
      "DisplayName": "GSPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_GSPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GSPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_GSPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GSPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_HDOP_EN": {
      "Description": "Displays Horizontal Dilution Of Position",
      "DisplayName": "HDOP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_HDOP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HDOP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_HDOP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HDOP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_HEADING_EN": {
      "Description": "Displays heading",
      "DisplayName": "HEADING_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_HEADING_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HEADING_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_HEADING_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HEADING_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_HOMEDIR_EN": {
      "Description": "Displays relative direction to HOME (MSP OSD only)",
      "DisplayName": "HOMEDIR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_HOMEDIR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HOMEDIR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_HOMEDIR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HOMEDIR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_HOMEDIST_EN": {
      "Description": "Displays distance from HOME (MSP OSD only)",
      "DisplayName": "HOMEDIST_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_HOMEDIST_X": {
      "Description": "Horizontal position on screen (MSP OSD only)",
      "DisplayName": "HOMEDIST_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_HOMEDIST_Y": {
      "Description": "Vertical position on screen (MSP OSD only)",
      "DisplayName": "HOMEDIST_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_HOME_EN": {
      "Description": "Displays distance and relative direction to HOME",
      "DisplayName": "HOME_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_HOME_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HOME_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_HOME_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HOME_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_HORIZON_EN": {
      "Description": "Displays artificial horizon",
      "DisplayName": "HORIZON_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_HORIZON_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HORIZON_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_HORIZON_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HORIZON_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_LINK_Q_EN": {
      "Description": "Displays Receiver link quality",
      "DisplayName": "LINK_Q_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_LINK_Q_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "LINK_Q_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_LINK_Q_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "LINK_Q_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_MESSAGE_EN": {
      "Description": "Displays Mavlink messages",
      "DisplayName": "MESSAGE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_MESSAGE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "MESSAGE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_MESSAGE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "MESSAGE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_PITCH_EN": {
      "Description": "Displays degrees of pitch from level",
      "DisplayName": "PITCH_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_PITCH_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "PITCH_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_PITCH_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "PITCH_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_PLUSCODE_EN": {
      "Description": "Displays pluscode (OLC) element",
      "DisplayName": "PLUSCODE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_PLUSCODE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "PLUSCODE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_PLUSCODE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "PLUSCODE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_POWER_EN": {
      "Description": "Displays power (MSP OSD only)",
      "DisplayName": "POWER_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_POWER_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "POWER_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_POWER_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "POWER_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_RC_ANT_EN": {
      "Description": "Displays the current RC link active antenna",
      "DisplayName": "RC_ANT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_RC_ANT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_ANT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_RC_ANT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_ANT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_RC_LQ_EN": {
      "Description": "Displays the RC link quality (uplink, 0 to 100%) and also RF mode if bit 7 of OSD_OPTIONS is set",
      "DisplayName": "RC_LQ_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_RC_LQ_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_LQ_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_RC_LQ_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_LQ_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_RC_PWR_EN": {
      "Description": "Displays the RC link transmit (TX) power in mW or W, depending on level",
      "DisplayName": "RC_PWR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_RC_PWR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_PWR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_RC_PWR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_PWR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_RC_SNR_EN": {
      "Description": "Displays RC link signal to noise ratio in dB",
      "DisplayName": "RC_SNR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_RC_SNR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_SNR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_RC_SNR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_SNR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_RESTVOLT_EN": {
      "Description": "Displays main battery resting voltage",
      "DisplayName": "RESTVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_RESTVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RESTVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_RESTVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RESTVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_RNGF_EN": {
      "Description": "Displays a rangefinder's distance in cm",
      "DisplayName": "RNGF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_RNGF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RNGF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_RNGF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RNGF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_ROLL_EN": {
      "Description": "Displays degrees of roll from level",
      "DisplayName": "ROLL_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_ROLL_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ROLL_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_ROLL_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ROLL_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_RPM_EN": {
      "Description": "Displays main rotor revs/min",
      "DisplayName": "RPM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_RPM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RPM_X",
      "Range": {
        "high": "29",
        "low": "0"
      }
    },
    "OSD2_RPM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RPM_Y",
      "Range": {
        "high": "15",
        "low": "0"
      }
    },
    "OSD2_RSSIDBM_EN": {
      "Description": "Displays RC link signal strength in dBm",
      "DisplayName": "RSSIDBM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_RSSIDBM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RSSIDBM_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_RSSIDBM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RSSIDBM_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_RSSI_EN": {
      "Description": "Displays RC signal strength",
      "DisplayName": "RSSI_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_RSSI_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RSSI_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_RSSI_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RSSI_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_SATS_EN": {
      "Description": "Displays number of acquired satellites",
      "DisplayName": "SATS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_SATS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "SATS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_SATS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "SATS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_SIDEBARS_EN": {
      "Description": "Displays artificial horizon side bars",
      "DisplayName": "SIDEBARS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_SIDEBARS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "SIDEBARS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_SIDEBARS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "SIDEBARS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_STATS_EN": {
      "Description": "Displays flight stats",
      "DisplayName": "STATS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_STATS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "STATS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_STATS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "STATS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_TEMP_EN": {
      "Description": "Displays temperature reported by primary barometer",
      "DisplayName": "TEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_TEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "TEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_TEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "TEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_TER_HGT_EN": {
      "Description": "Displays Height above terrain",
      "DisplayName": "TER_HGT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_TER_HGT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "TER_HGT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_TER_HGT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "TER_HGT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_THROTTLE_EN": {
      "Description": "Displays actual throttle percentage being sent to motor(s)",
      "DisplayName": "THROTTLE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_THROTTLE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "THROTTLE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_THROTTLE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "THROTTLE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_TXT_RES": {
      "Description": "Sets the overlay text resolution for this screen to either SD 30x16 or HD 50x18/60x22/53x20 (MSP DisplayPort only)",
      "DisplayName": "Sets the overlay text resolution (MSP DisplayPort only)",
      "User": "Standard",
      "Values": {
        "0": "30x16",
        "1": "50x18",
        "2": "60x22",
        "3": "53x20"
      }
    },
    "OSD2_VSPEED_EN": {
      "Description": "Displays climb rate",
      "DisplayName": "VSPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_VSPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "VSPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_VSPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "VSPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_VTX_PWR_EN": {
      "Description": "Displays VTX Power",
      "DisplayName": "VTX_PWR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_VTX_PWR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "VTX_PWR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_VTX_PWR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "VTX_PWR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_WAYPOINT_EN": {
      "Description": "Displays bearing and distance to next waypoint",
      "DisplayName": "WAYPOINT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_WAYPOINT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "WAYPOINT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_WAYPOINT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "WAYPOINT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_WIND_EN": {
      "Description": "Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",
      "DisplayName": "WIND_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_WIND_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "WIND_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_WIND_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "WIND_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD2_XTRACK_EN": {
      "Description": "Displays crosstrack error",
      "DisplayName": "XTRACK_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD2_XTRACK_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "XTRACK_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD2_XTRACK_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "XTRACK_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    }
  },
  "OSD3_": {
    "OSD3_ACRVOLT_EN": {
      "Description": "Displays resting voltage for the average cell. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the  the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",
      "DisplayName": "ACRVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ACRVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ACRVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_ACRVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ACRVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_ALTITUDE_EN": {
      "Description": "Enables display of altitude AGL",
      "DisplayName": "ALTITUDE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ALTITUDE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ALTITUDE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_ALTITUDE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ALTITUDE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_ARMING_EN": {
      "Description": "Displays arming status (MSP OSD only)",
      "DisplayName": "ARMING_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ARMING_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ARMING_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_ARMING_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ARMING_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_ASPD1_EN": {
      "Description": "Displays airspeed reported directly from primary airspeed sensor",
      "DisplayName": "ASPD1_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ASPD1_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPD1_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_ASPD1_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPD1_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_ASPD2_EN": {
      "Description": "Displays airspeed reported directly from secondary airspeed sensor",
      "DisplayName": "ASPD2_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ASPD2_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPD2_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_ASPD2_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPD2_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_ASPEED_EN": {
      "Description": "Displays airspeed value being used by TECS (fused value)",
      "DisplayName": "ASPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ASPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_ASPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_ATEMP_EN": {
      "Description": "Displays temperature reported by primary airspeed sensor",
      "DisplayName": "ATEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ATEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ATEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_ATEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ATEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_AVGCELLV_EN": {
      "Description": "Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the  the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",
      "DisplayName": "AVGCELLV_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_AVGCELLV_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "AVGCELLV_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_AVGCELLV_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "AVGCELLV_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_BAT2USED_EN": {
      "Description": "Displays secondary battery mAh consumed",
      "DisplayName": "BAT2USED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_BAT2USED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BAT2USED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_BAT2USED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BAT2USED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_BAT2_VLT_EN": {
      "Description": "Displays battery2 voltage",
      "DisplayName": "BAT2VLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_BAT2_VLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BAT2VLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_BAT2_VLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BAT2VLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_BATTBAR_EN": {
      "Description": "Displays battery usage bar (MSP OSD only)",
      "DisplayName": "BATT_BAR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_BATTBAR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATT_BAR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_BATTBAR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATT_BAR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_BATUSED_EN": {
      "Description": "Displays primary battery mAh consumed",
      "DisplayName": "BATUSED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_BATUSED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATUSED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_BATUSED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATUSED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_BAT_VOLT_EN": {
      "Description": "Displays main battery voltage",
      "DisplayName": "BATVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_BAT_VOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_BAT_VOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_BTEMP_EN": {
      "Description": "Displays temperature reported by secondary barometer",
      "DisplayName": "BTEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_BTEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BTEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_BTEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BTEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_CALLSIGN_EN": {
      "Description": "Displays callsign from callsign.txt on microSD card",
      "DisplayName": "CALLSIGN_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_CALLSIGN_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CALLSIGN_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_CALLSIGN_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CALLSIGN_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_CELLVOLT_EN": {
      "Description": "Displays average cell voltage (MSP OSD only)",
      "DisplayName": "CELL_VOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_CELLVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CELL_VOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_CELLVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CELL_VOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_CHAN_MAX": {
      "Description": "This sets the PWM upper limit for this screen",
      "DisplayName": "Transmitter switch screen maximum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD3_CHAN_MIN": {
      "Description": "This sets the PWM lower limit for this screen",
      "DisplayName": "Transmitter switch screen minimum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD3_CLIMBEFF_EN": {
      "Description": "Displays climb efficiency (climb rate/current)",
      "DisplayName": "CLIMBEFF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_CLIMBEFF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CLIMBEFF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_CLIMBEFF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CLIMBEFF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_CLK_EN": {
      "Description": "Displays a clock panel based on AP_RTC local time",
      "DisplayName": "CLK_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_CLK_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CLK_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_CLK_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CLK_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_COMPASS_EN": {
      "Description": "Enables display of compass rose",
      "DisplayName": "COMPASS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_COMPASS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "COMPASS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_COMPASS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "COMPASS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_CRSSHAIR_EN": {
      "Description": "Displays artificial horizon crosshair (MSP OSD only)",
      "DisplayName": "CRSSHAIR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_CRSSHAIR_X": {
      "Description": "Horizontal position on screen (MSP OSD only)",
      "DisplayName": "CRSSHAIR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_CRSSHAIR_Y": {
      "Description": "Vertical position on screen (MSP OSD only)",
      "DisplayName": "CRSSHAIR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_CURRENT2_EN": {
      "Description": "Displays 2nd battery current",
      "DisplayName": "CURRENT2_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_CURRENT2_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CURRENT2_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_CURRENT2_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CURRENT2_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_CURRENT_EN": {
      "Description": "Displays main battery current",
      "DisplayName": "CURRENT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_CURRENT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CURRENT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_CURRENT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CURRENT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_DIST_EN": {
      "Description": "Displays total distance flown",
      "DisplayName": "DIST_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_DIST_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "DIST_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_DIST_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "DIST_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_EFF_EN": {
      "Description": "Displays flight efficiency (mAh/km or /mi)",
      "DisplayName": "EFF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_EFF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "EFF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_EFF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "EFF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_ENABLE": {
      "Description": "Enable this screen",
      "DisplayName": "Enable screen",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ESCAMPS_EN": {
      "Description": "Displays the current of the ESC with the highest rpm of all active ESCs, or of a specific ESC if OSDx_ESC_IDX is set",
      "DisplayName": "ESCAMPS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ESCAMPS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCAMPS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_ESCAMPS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCAMPS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_ESCRPM_EN": {
      "Description": "Displays highest rpm of all active ESCs, or of a specific ESC if OSDx_ESC_IDX is set",
      "DisplayName": "ESCRPM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ESCRPM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCRPM_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_ESCRPM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCRPM_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_ESCTEMP_EN": {
      "Description": "Displays highest temp of all active ESCs, or of a specific ECS if OSDx_ESC_IDX is set",
      "DisplayName": "ESCTEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ESCTEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCTEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_ESCTEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCTEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_ESC_IDX": {
      "Description": "Index of the ESC to use for displaying ESC information. 0 means use the ESC with the highest value.",
      "DisplayName": "ESC_IDX",
      "Range": {
        "high": "32",
        "low": "0"
      }
    },
    "OSD3_FENCE_EN": {
      "Description": "Displays indication of fence enable and breach",
      "DisplayName": "FENCE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_FENCE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FENCE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_FENCE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FENCE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_FLTIME_EN": {
      "Description": "Displays total flight time",
      "DisplayName": "FLTIME_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_FLTIME_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FLTIME_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_FLTIME_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FLTIME_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_FLTMODE_EN": {
      "Description": "Displays flight mode",
      "DisplayName": "FLTMODE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_FLTMODE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FLTMODE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_FLTMODE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FLTMODE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_FONT": {
      "Description": "Sets the font index for this screen (MSP DisplayPort only)",
      "DisplayName": "Sets the font index for this screen (MSP DisplayPort only)",
      "Range": {
        "high": "21",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD3_GPSLAT_EN": {
      "Description": "Displays GPS latitude",
      "DisplayName": "GPSLAT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_GPSLAT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GPSLAT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_GPSLAT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GPSLAT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_GPSLONG_EN": {
      "Description": "Displays GPS longitude",
      "DisplayName": "GPSLONG_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_GPSLONG_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GPSLONG_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_GPSLONG_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GPSLONG_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_GSPEED_EN": {
      "Description": "Displays GPS ground speed",
      "DisplayName": "GSPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_GSPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GSPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_GSPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GSPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_HDOP_EN": {
      "Description": "Displays Horizontal Dilution Of Position",
      "DisplayName": "HDOP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_HDOP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HDOP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_HDOP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HDOP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_HEADING_EN": {
      "Description": "Displays heading",
      "DisplayName": "HEADING_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_HEADING_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HEADING_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_HEADING_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HEADING_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_HOMEDIR_EN": {
      "Description": "Displays relative direction to HOME (MSP OSD only)",
      "DisplayName": "HOMEDIR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_HOMEDIR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HOMEDIR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_HOMEDIR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HOMEDIR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_HOMEDIST_EN": {
      "Description": "Displays distance from HOME (MSP OSD only)",
      "DisplayName": "HOMEDIST_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_HOMEDIST_X": {
      "Description": "Horizontal position on screen (MSP OSD only)",
      "DisplayName": "HOMEDIST_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_HOMEDIST_Y": {
      "Description": "Vertical position on screen (MSP OSD only)",
      "DisplayName": "HOMEDIST_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_HOME_EN": {
      "Description": "Displays distance and relative direction to HOME",
      "DisplayName": "HOME_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_HOME_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HOME_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_HOME_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HOME_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_HORIZON_EN": {
      "Description": "Displays artificial horizon",
      "DisplayName": "HORIZON_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_HORIZON_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HORIZON_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_HORIZON_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HORIZON_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_LINK_Q_EN": {
      "Description": "Displays Receiver link quality",
      "DisplayName": "LINK_Q_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_LINK_Q_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "LINK_Q_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_LINK_Q_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "LINK_Q_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_MESSAGE_EN": {
      "Description": "Displays Mavlink messages",
      "DisplayName": "MESSAGE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_MESSAGE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "MESSAGE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_MESSAGE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "MESSAGE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_PITCH_EN": {
      "Description": "Displays degrees of pitch from level",
      "DisplayName": "PITCH_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_PITCH_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "PITCH_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_PITCH_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "PITCH_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_PLUSCODE_EN": {
      "Description": "Displays pluscode (OLC) element",
      "DisplayName": "PLUSCODE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_PLUSCODE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "PLUSCODE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_PLUSCODE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "PLUSCODE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_POWER_EN": {
      "Description": "Displays power (MSP OSD only)",
      "DisplayName": "POWER_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_POWER_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "POWER_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_POWER_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "POWER_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_RC_ANT_EN": {
      "Description": "Displays the current RC link active antenna",
      "DisplayName": "RC_ANT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_RC_ANT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_ANT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_RC_ANT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_ANT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_RC_LQ_EN": {
      "Description": "Displays the RC link quality (uplink, 0 to 100%) and also RF mode if bit 7 of OSD_OPTIONS is set",
      "DisplayName": "RC_LQ_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_RC_LQ_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_LQ_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_RC_LQ_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_LQ_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_RC_PWR_EN": {
      "Description": "Displays the RC link transmit (TX) power in mW or W, depending on level",
      "DisplayName": "RC_PWR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_RC_PWR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_PWR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_RC_PWR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_PWR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_RC_SNR_EN": {
      "Description": "Displays RC link signal to noise ratio in dB",
      "DisplayName": "RC_SNR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_RC_SNR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_SNR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_RC_SNR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_SNR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_RESTVOLT_EN": {
      "Description": "Displays main battery resting voltage",
      "DisplayName": "RESTVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_RESTVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RESTVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_RESTVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RESTVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_RNGF_EN": {
      "Description": "Displays a rangefinder's distance in cm",
      "DisplayName": "RNGF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_RNGF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RNGF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_RNGF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RNGF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_ROLL_EN": {
      "Description": "Displays degrees of roll from level",
      "DisplayName": "ROLL_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_ROLL_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ROLL_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_ROLL_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ROLL_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_RPM_EN": {
      "Description": "Displays main rotor revs/min",
      "DisplayName": "RPM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_RPM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RPM_X",
      "Range": {
        "high": "29",
        "low": "0"
      }
    },
    "OSD3_RPM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RPM_Y",
      "Range": {
        "high": "15",
        "low": "0"
      }
    },
    "OSD3_RSSIDBM_EN": {
      "Description": "Displays RC link signal strength in dBm",
      "DisplayName": "RSSIDBM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_RSSIDBM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RSSIDBM_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_RSSIDBM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RSSIDBM_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_RSSI_EN": {
      "Description": "Displays RC signal strength",
      "DisplayName": "RSSI_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_RSSI_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RSSI_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_RSSI_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RSSI_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_SATS_EN": {
      "Description": "Displays number of acquired satellites",
      "DisplayName": "SATS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_SATS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "SATS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_SATS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "SATS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_SIDEBARS_EN": {
      "Description": "Displays artificial horizon side bars",
      "DisplayName": "SIDEBARS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_SIDEBARS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "SIDEBARS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_SIDEBARS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "SIDEBARS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_STATS_EN": {
      "Description": "Displays flight stats",
      "DisplayName": "STATS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_STATS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "STATS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_STATS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "STATS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_TEMP_EN": {
      "Description": "Displays temperature reported by primary barometer",
      "DisplayName": "TEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_TEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "TEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_TEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "TEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_TER_HGT_EN": {
      "Description": "Displays Height above terrain",
      "DisplayName": "TER_HGT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_TER_HGT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "TER_HGT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_TER_HGT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "TER_HGT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_THROTTLE_EN": {
      "Description": "Displays actual throttle percentage being sent to motor(s)",
      "DisplayName": "THROTTLE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_THROTTLE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "THROTTLE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_THROTTLE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "THROTTLE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_TXT_RES": {
      "Description": "Sets the overlay text resolution for this screen to either SD 30x16 or HD 50x18/60x22/53x20 (MSP DisplayPort only)",
      "DisplayName": "Sets the overlay text resolution (MSP DisplayPort only)",
      "User": "Standard",
      "Values": {
        "0": "30x16",
        "1": "50x18",
        "2": "60x22",
        "3": "53x20"
      }
    },
    "OSD3_VSPEED_EN": {
      "Description": "Displays climb rate",
      "DisplayName": "VSPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_VSPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "VSPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_VSPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "VSPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_VTX_PWR_EN": {
      "Description": "Displays VTX Power",
      "DisplayName": "VTX_PWR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_VTX_PWR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "VTX_PWR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_VTX_PWR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "VTX_PWR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_WAYPOINT_EN": {
      "Description": "Displays bearing and distance to next waypoint",
      "DisplayName": "WAYPOINT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_WAYPOINT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "WAYPOINT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_WAYPOINT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "WAYPOINT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_WIND_EN": {
      "Description": "Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",
      "DisplayName": "WIND_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_WIND_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "WIND_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_WIND_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "WIND_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD3_XTRACK_EN": {
      "Description": "Displays crosstrack error",
      "DisplayName": "XTRACK_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD3_XTRACK_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "XTRACK_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD3_XTRACK_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "XTRACK_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    }
  },
  "OSD4_": {
    "OSD4_ACRVOLT_EN": {
      "Description": "Displays resting voltage for the average cell. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the  the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",
      "DisplayName": "ACRVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ACRVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ACRVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_ACRVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ACRVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_ALTITUDE_EN": {
      "Description": "Enables display of altitude AGL",
      "DisplayName": "ALTITUDE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ALTITUDE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ALTITUDE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_ALTITUDE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ALTITUDE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_ARMING_EN": {
      "Description": "Displays arming status (MSP OSD only)",
      "DisplayName": "ARMING_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ARMING_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ARMING_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_ARMING_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ARMING_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_ASPD1_EN": {
      "Description": "Displays airspeed reported directly from primary airspeed sensor",
      "DisplayName": "ASPD1_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ASPD1_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPD1_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_ASPD1_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPD1_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_ASPD2_EN": {
      "Description": "Displays airspeed reported directly from secondary airspeed sensor",
      "DisplayName": "ASPD2_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ASPD2_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPD2_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_ASPD2_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPD2_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_ASPEED_EN": {
      "Description": "Displays airspeed value being used by TECS (fused value)",
      "DisplayName": "ASPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ASPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ASPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_ASPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ASPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_ATEMP_EN": {
      "Description": "Displays temperature reported by primary airspeed sensor",
      "DisplayName": "ATEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ATEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ATEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_ATEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ATEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_AVGCELLV_EN": {
      "Description": "Displays average cell voltage. WARNING: this can be inaccurate if the cell count is not detected or set properly. If the  the battery is far from fully charged the detected cell count might not be accurate if auto cell count detection is used (OSD_CELL_COUNT=0).",
      "DisplayName": "AVGCELLV_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_AVGCELLV_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "AVGCELLV_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_AVGCELLV_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "AVGCELLV_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_BAT2USED_EN": {
      "Description": "Displays secondary battery mAh consumed",
      "DisplayName": "BAT2USED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_BAT2USED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BAT2USED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_BAT2USED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BAT2USED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_BAT2_VLT_EN": {
      "Description": "Displays battery2 voltage",
      "DisplayName": "BAT2VLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_BAT2_VLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BAT2VLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_BAT2_VLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BAT2VLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_BATTBAR_EN": {
      "Description": "Displays battery usage bar (MSP OSD only)",
      "DisplayName": "BATT_BAR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_BATTBAR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATT_BAR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_BATTBAR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATT_BAR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_BATUSED_EN": {
      "Description": "Displays primary battery mAh consumed",
      "DisplayName": "BATUSED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_BATUSED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATUSED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_BATUSED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATUSED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_BAT_VOLT_EN": {
      "Description": "Displays main battery voltage",
      "DisplayName": "BATVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_BAT_VOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BATVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_BAT_VOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BATVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_BTEMP_EN": {
      "Description": "Displays temperature reported by secondary barometer",
      "DisplayName": "BTEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_BTEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "BTEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_BTEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "BTEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_CALLSIGN_EN": {
      "Description": "Displays callsign from callsign.txt on microSD card",
      "DisplayName": "CALLSIGN_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_CALLSIGN_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CALLSIGN_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_CALLSIGN_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CALLSIGN_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_CELLVOLT_EN": {
      "Description": "Displays average cell voltage (MSP OSD only)",
      "DisplayName": "CELL_VOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_CELLVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CELL_VOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_CELLVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CELL_VOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_CHAN_MAX": {
      "Description": "This sets the PWM upper limit for this screen",
      "DisplayName": "Transmitter switch screen maximum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD4_CHAN_MIN": {
      "Description": "This sets the PWM lower limit for this screen",
      "DisplayName": "Transmitter switch screen minimum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD4_CLIMBEFF_EN": {
      "Description": "Displays climb efficiency (climb rate/current)",
      "DisplayName": "CLIMBEFF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_CLIMBEFF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CLIMBEFF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_CLIMBEFF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CLIMBEFF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_CLK_EN": {
      "Description": "Displays a clock panel based on AP_RTC local time",
      "DisplayName": "CLK_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_CLK_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CLK_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_CLK_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CLK_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_COMPASS_EN": {
      "Description": "Enables display of compass rose",
      "DisplayName": "COMPASS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_COMPASS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "COMPASS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_COMPASS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "COMPASS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_CRSSHAIR_EN": {
      "Description": "Displays artificial horizon crosshair (MSP OSD only)",
      "DisplayName": "CRSSHAIR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_CRSSHAIR_X": {
      "Description": "Horizontal position on screen (MSP OSD only)",
      "DisplayName": "CRSSHAIR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_CRSSHAIR_Y": {
      "Description": "Vertical position on screen (MSP OSD only)",
      "DisplayName": "CRSSHAIR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_CURRENT2_EN": {
      "Description": "Displays 2nd battery current",
      "DisplayName": "CURRENT2_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_CURRENT2_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CURRENT2_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_CURRENT2_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CURRENT2_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_CURRENT_EN": {
      "Description": "Displays main battery current",
      "DisplayName": "CURRENT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_CURRENT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "CURRENT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_CURRENT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "CURRENT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_DIST_EN": {
      "Description": "Displays total distance flown",
      "DisplayName": "DIST_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_DIST_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "DIST_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_DIST_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "DIST_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_EFF_EN": {
      "Description": "Displays flight efficiency (mAh/km or /mi)",
      "DisplayName": "EFF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_EFF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "EFF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_EFF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "EFF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_ENABLE": {
      "Description": "Enable this screen",
      "DisplayName": "Enable screen",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ESCAMPS_EN": {
      "Description": "Displays the current of the ESC with the highest rpm of all active ESCs, or of a specific ESC if OSDx_ESC_IDX is set",
      "DisplayName": "ESCAMPS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ESCAMPS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCAMPS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_ESCAMPS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCAMPS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_ESCRPM_EN": {
      "Description": "Displays highest rpm of all active ESCs, or of a specific ESC if OSDx_ESC_IDX is set",
      "DisplayName": "ESCRPM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ESCRPM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCRPM_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_ESCRPM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCRPM_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_ESCTEMP_EN": {
      "Description": "Displays highest temp of all active ESCs, or of a specific ECS if OSDx_ESC_IDX is set",
      "DisplayName": "ESCTEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ESCTEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ESCTEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_ESCTEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ESCTEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_ESC_IDX": {
      "Description": "Index of the ESC to use for displaying ESC information. 0 means use the ESC with the highest value.",
      "DisplayName": "ESC_IDX",
      "Range": {
        "high": "32",
        "low": "0"
      }
    },
    "OSD4_FENCE_EN": {
      "Description": "Displays indication of fence enable and breach",
      "DisplayName": "FENCE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_FENCE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FENCE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_FENCE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FENCE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_FLTIME_EN": {
      "Description": "Displays total flight time",
      "DisplayName": "FLTIME_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_FLTIME_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FLTIME_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_FLTIME_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FLTIME_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_FLTMODE_EN": {
      "Description": "Displays flight mode",
      "DisplayName": "FLTMODE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_FLTMODE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "FLTMODE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_FLTMODE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "FLTMODE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_FONT": {
      "Description": "Sets the font index for this screen (MSP DisplayPort only)",
      "DisplayName": "Sets the font index for this screen (MSP DisplayPort only)",
      "Range": {
        "high": "21",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD4_GPSLAT_EN": {
      "Description": "Displays GPS latitude",
      "DisplayName": "GPSLAT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_GPSLAT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GPSLAT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_GPSLAT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GPSLAT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_GPSLONG_EN": {
      "Description": "Displays GPS longitude",
      "DisplayName": "GPSLONG_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_GPSLONG_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GPSLONG_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_GPSLONG_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GPSLONG_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_GSPEED_EN": {
      "Description": "Displays GPS ground speed",
      "DisplayName": "GSPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_GSPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "GSPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_GSPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "GSPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_HDOP_EN": {
      "Description": "Displays Horizontal Dilution Of Position",
      "DisplayName": "HDOP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_HDOP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HDOP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_HDOP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HDOP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_HEADING_EN": {
      "Description": "Displays heading",
      "DisplayName": "HEADING_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_HEADING_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HEADING_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_HEADING_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HEADING_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_HOMEDIR_EN": {
      "Description": "Displays relative direction to HOME (MSP OSD only)",
      "DisplayName": "HOMEDIR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_HOMEDIR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HOMEDIR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_HOMEDIR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HOMEDIR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_HOMEDIST_EN": {
      "Description": "Displays distance from HOME (MSP OSD only)",
      "DisplayName": "HOMEDIST_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_HOMEDIST_X": {
      "Description": "Horizontal position on screen (MSP OSD only)",
      "DisplayName": "HOMEDIST_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_HOMEDIST_Y": {
      "Description": "Vertical position on screen (MSP OSD only)",
      "DisplayName": "HOMEDIST_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_HOME_EN": {
      "Description": "Displays distance and relative direction to HOME",
      "DisplayName": "HOME_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_HOME_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HOME_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_HOME_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HOME_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_HORIZON_EN": {
      "Description": "Displays artificial horizon",
      "DisplayName": "HORIZON_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_HORIZON_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "HORIZON_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_HORIZON_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "HORIZON_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_LINK_Q_EN": {
      "Description": "Displays Receiver link quality",
      "DisplayName": "LINK_Q_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_LINK_Q_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "LINK_Q_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_LINK_Q_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "LINK_Q_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_MESSAGE_EN": {
      "Description": "Displays Mavlink messages",
      "DisplayName": "MESSAGE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_MESSAGE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "MESSAGE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_MESSAGE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "MESSAGE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_PITCH_EN": {
      "Description": "Displays degrees of pitch from level",
      "DisplayName": "PITCH_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_PITCH_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "PITCH_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_PITCH_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "PITCH_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_PLUSCODE_EN": {
      "Description": "Displays pluscode (OLC) element",
      "DisplayName": "PLUSCODE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_PLUSCODE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "PLUSCODE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_PLUSCODE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "PLUSCODE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_POWER_EN": {
      "Description": "Displays power (MSP OSD only)",
      "DisplayName": "POWER_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_POWER_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "POWER_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_POWER_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "POWER_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_RC_ANT_EN": {
      "Description": "Displays the current RC link active antenna",
      "DisplayName": "RC_ANT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_RC_ANT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_ANT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_RC_ANT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_ANT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_RC_LQ_EN": {
      "Description": "Displays the RC link quality (uplink, 0 to 100%) and also RF mode if bit 7 of OSD_OPTIONS is set",
      "DisplayName": "RC_LQ_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_RC_LQ_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_LQ_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_RC_LQ_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_LQ_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_RC_PWR_EN": {
      "Description": "Displays the RC link transmit (TX) power in mW or W, depending on level",
      "DisplayName": "RC_PWR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_RC_PWR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_PWR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_RC_PWR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_PWR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_RC_SNR_EN": {
      "Description": "Displays RC link signal to noise ratio in dB",
      "DisplayName": "RC_SNR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_RC_SNR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RC_SNR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_RC_SNR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RC_SNR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_RESTVOLT_EN": {
      "Description": "Displays main battery resting voltage",
      "DisplayName": "RESTVOLT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_RESTVOLT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RESTVOLT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_RESTVOLT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RESTVOLT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_RNGF_EN": {
      "Description": "Displays a rangefinder's distance in cm",
      "DisplayName": "RNGF_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_RNGF_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RNGF_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_RNGF_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RNGF_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_ROLL_EN": {
      "Description": "Displays degrees of roll from level",
      "DisplayName": "ROLL_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_ROLL_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "ROLL_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_ROLL_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "ROLL_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_RPM_EN": {
      "Description": "Displays main rotor revs/min",
      "DisplayName": "RPM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_RPM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RPM_X",
      "Range": {
        "high": "29",
        "low": "0"
      }
    },
    "OSD4_RPM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RPM_Y",
      "Range": {
        "high": "15",
        "low": "0"
      }
    },
    "OSD4_RSSIDBM_EN": {
      "Description": "Displays RC link signal strength in dBm",
      "DisplayName": "RSSIDBM_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_RSSIDBM_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RSSIDBM_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_RSSIDBM_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RSSIDBM_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_RSSI_EN": {
      "Description": "Displays RC signal strength",
      "DisplayName": "RSSI_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_RSSI_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "RSSI_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_RSSI_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "RSSI_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_SATS_EN": {
      "Description": "Displays number of acquired satellites",
      "DisplayName": "SATS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_SATS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "SATS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_SATS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "SATS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_SIDEBARS_EN": {
      "Description": "Displays artificial horizon side bars",
      "DisplayName": "SIDEBARS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_SIDEBARS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "SIDEBARS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_SIDEBARS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "SIDEBARS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_STATS_EN": {
      "Description": "Displays flight stats",
      "DisplayName": "STATS_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_STATS_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "STATS_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_STATS_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "STATS_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_TEMP_EN": {
      "Description": "Displays temperature reported by primary barometer",
      "DisplayName": "TEMP_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_TEMP_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "TEMP_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_TEMP_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "TEMP_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_TER_HGT_EN": {
      "Description": "Displays Height above terrain",
      "DisplayName": "TER_HGT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_TER_HGT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "TER_HGT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_TER_HGT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "TER_HGT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_THROTTLE_EN": {
      "Description": "Displays actual throttle percentage being sent to motor(s)",
      "DisplayName": "THROTTLE_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_THROTTLE_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "THROTTLE_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_THROTTLE_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "THROTTLE_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_TXT_RES": {
      "Description": "Sets the overlay text resolution for this screen to either SD 30x16 or HD 50x18/60x22/53x20 (MSP DisplayPort only)",
      "DisplayName": "Sets the overlay text resolution (MSP DisplayPort only)",
      "User": "Standard",
      "Values": {
        "0": "30x16",
        "1": "50x18",
        "2": "60x22",
        "3": "53x20"
      }
    },
    "OSD4_VSPEED_EN": {
      "Description": "Displays climb rate",
      "DisplayName": "VSPEED_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_VSPEED_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "VSPEED_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_VSPEED_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "VSPEED_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_VTX_PWR_EN": {
      "Description": "Displays VTX Power",
      "DisplayName": "VTX_PWR_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_VTX_PWR_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "VTX_PWR_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_VTX_PWR_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "VTX_PWR_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_WAYPOINT_EN": {
      "Description": "Displays bearing and distance to next waypoint",
      "DisplayName": "WAYPOINT_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_WAYPOINT_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "WAYPOINT_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_WAYPOINT_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "WAYPOINT_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_WIND_EN": {
      "Description": "Displays wind speed and relative direction, on Rover this is the apparent wind speed and direction from the windvane, if fitted",
      "DisplayName": "WIND_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_WIND_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "WIND_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_WIND_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "WIND_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    },
    "OSD4_XTRACK_EN": {
      "Description": "Displays crosstrack error",
      "DisplayName": "XTRACK_EN",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD4_XTRACK_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "XTRACK_X",
      "Range": {
        "high": "59",
        "low": "0"
      }
    },
    "OSD4_XTRACK_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "XTRACK_Y",
      "Range": {
        "high": "21",
        "low": "0"
      }
    }
  },
  "OSD5_": {
    "OSD5_CHAN_MAX": {
      "Description": "This sets the PWM upper limit for this screen",
      "DisplayName": "Transmitter switch screen maximum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD5_CHAN_MIN": {
      "Description": "This sets the PWM lower limit for this screen",
      "DisplayName": "Transmitter switch screen minimum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD5_ENABLE": {
      "Description": "Enable this screen",
      "DisplayName": "Enable screen",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD5_SAVE_X": {
      "Description": "Horizontal position of Save button on screen",
      "DisplayName": "SAVE_X",
      "Range": {
        "high": "25",
        "low": "0"
      },
      "User": "Advanced"
    },
    "OSD5_SAVE_Y": {
      "Description": "Vertical position of Save button on screen",
      "DisplayName": "SAVE_Y",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "OSD5_PARAM1": {
    "OSD5_PARAM1_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD5_PARAM1_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD5_PARAM1_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD5_PARAM1_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD5_PARAM1_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD5_PARAM1_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD5_PARAM1_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD5_PARAM1_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD5_PARAM1_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD5_PARAM1_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD5_PARAM2": {
    "OSD5_PARAM2_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD5_PARAM2_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD5_PARAM2_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD5_PARAM2_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD5_PARAM2_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD5_PARAM2_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD5_PARAM2_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD5_PARAM2_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD5_PARAM2_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD5_PARAM2_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD5_PARAM3": {
    "OSD5_PARAM3_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD5_PARAM3_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD5_PARAM3_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD5_PARAM3_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD5_PARAM3_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD5_PARAM3_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD5_PARAM3_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD5_PARAM3_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD5_PARAM3_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD5_PARAM3_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD5_PARAM4": {
    "OSD5_PARAM4_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD5_PARAM4_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD5_PARAM4_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD5_PARAM4_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD5_PARAM4_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD5_PARAM4_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD5_PARAM4_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD5_PARAM4_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD5_PARAM4_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD5_PARAM4_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD5_PARAM5": {
    "OSD5_PARAM5_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD5_PARAM5_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD5_PARAM5_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD5_PARAM5_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD5_PARAM5_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD5_PARAM5_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD5_PARAM5_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD5_PARAM5_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD5_PARAM5_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD5_PARAM5_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD5_PARAM6": {
    "OSD5_PARAM6_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD5_PARAM6_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD5_PARAM6_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD5_PARAM6_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD5_PARAM6_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD5_PARAM6_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD5_PARAM6_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD5_PARAM6_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD5_PARAM6_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD5_PARAM6_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD5_PARAM7": {
    "OSD5_PARAM7_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD5_PARAM7_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD5_PARAM7_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD5_PARAM7_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD5_PARAM7_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD5_PARAM7_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD5_PARAM7_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD5_PARAM7_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD5_PARAM7_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD5_PARAM7_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD5_PARAM8": {
    "OSD5_PARAM8_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD5_PARAM8_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD5_PARAM8_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD5_PARAM8_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD5_PARAM8_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD5_PARAM8_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD5_PARAM8_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD5_PARAM8_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD5_PARAM8_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD5_PARAM8_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD5_PARAM9": {
    "OSD5_PARAM9_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD5_PARAM9_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD5_PARAM9_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD5_PARAM9_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD5_PARAM9_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD5_PARAM9_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD5_PARAM9_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD5_PARAM9_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD5_PARAM9_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD5_PARAM9_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD6_": {
    "OSD6_CHAN_MAX": {
      "Description": "This sets the PWM upper limit for this screen",
      "DisplayName": "Transmitter switch screen maximum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD6_CHAN_MIN": {
      "Description": "This sets the PWM lower limit for this screen",
      "DisplayName": "Transmitter switch screen minimum pwm",
      "Range": {
        "high": "2100",
        "low": "900"
      },
      "User": "Standard"
    },
    "OSD6_ENABLE": {
      "Description": "Enable this screen",
      "DisplayName": "Enable screen",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD6_SAVE_X": {
      "Description": "Horizontal position of Save button on screen",
      "DisplayName": "SAVE_X",
      "Range": {
        "high": "25",
        "low": "0"
      },
      "User": "Advanced"
    },
    "OSD6_SAVE_Y": {
      "Description": "Vertical position of Save button on screen",
      "DisplayName": "SAVE_Y",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "OSD6_PARAM1": {
    "OSD6_PARAM1_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD6_PARAM1_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD6_PARAM1_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD6_PARAM1_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD6_PARAM1_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD6_PARAM1_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD6_PARAM1_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD6_PARAM1_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD6_PARAM1_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD6_PARAM1_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD6_PARAM2": {
    "OSD6_PARAM2_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD6_PARAM2_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD6_PARAM2_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD6_PARAM2_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD6_PARAM2_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD6_PARAM2_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD6_PARAM2_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD6_PARAM2_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD6_PARAM2_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD6_PARAM2_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD6_PARAM3": {
    "OSD6_PARAM3_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD6_PARAM3_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD6_PARAM3_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD6_PARAM3_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD6_PARAM3_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD6_PARAM3_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD6_PARAM3_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD6_PARAM3_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD6_PARAM3_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD6_PARAM3_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD6_PARAM4": {
    "OSD6_PARAM4_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD6_PARAM4_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD6_PARAM4_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD6_PARAM4_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD6_PARAM4_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD6_PARAM4_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD6_PARAM4_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD6_PARAM4_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD6_PARAM4_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD6_PARAM4_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD6_PARAM5": {
    "OSD6_PARAM5_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD6_PARAM5_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD6_PARAM5_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD6_PARAM5_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD6_PARAM5_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD6_PARAM5_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD6_PARAM5_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD6_PARAM5_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD6_PARAM5_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD6_PARAM5_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD6_PARAM6": {
    "OSD6_PARAM6_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD6_PARAM6_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD6_PARAM6_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD6_PARAM6_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD6_PARAM6_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD6_PARAM6_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD6_PARAM6_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD6_PARAM6_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD6_PARAM6_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD6_PARAM6_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD6_PARAM7": {
    "OSD6_PARAM7_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD6_PARAM7_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD6_PARAM7_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD6_PARAM7_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD6_PARAM7_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD6_PARAM7_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD6_PARAM7_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD6_PARAM7_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD6_PARAM7_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD6_PARAM7_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD6_PARAM8": {
    "OSD6_PARAM8_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD6_PARAM8_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD6_PARAM8_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD6_PARAM8_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD6_PARAM8_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD6_PARAM8_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD6_PARAM8_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD6_PARAM8_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD6_PARAM8_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD6_PARAM8_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "OSD6_PARAM9": {
    "OSD6_PARAM9_EN": {
      "Description": "Enable setting",
      "DisplayName": "Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "OSD6_PARAM9_GRP": {
      "Description": "Group of the parameter to be displayed and modified",
      "DisplayName": "Parameter group",
      "User": "Standard"
    },
    "OSD6_PARAM9_IDX": {
      "Description": "Index of the parameter to be displayed and modified",
      "DisplayName": "Parameter index",
      "User": "Standard"
    },
    "OSD6_PARAM9_INCR": {
      "Description": "Increment of the parameter to be displayed and modified",
      "DisplayName": "Parameter increment",
      "User": "Standard"
    },
    "OSD6_PARAM9_KEY": {
      "Description": "Key of the parameter to be displayed and modified",
      "DisplayName": "Parameter key",
      "User": "Standard"
    },
    "OSD6_PARAM9_MAX": {
      "Description": "Maximum of the parameter to be displayed and modified",
      "DisplayName": "Parameter maximum",
      "User": "Standard"
    },
    "OSD6_PARAM9_MIN": {
      "Description": "Minimum value of the parameter to be displayed and modified",
      "DisplayName": "Parameter minimum",
      "User": "Standard"
    },
    "OSD6_PARAM9_TYPE": {
      "Description": "Type of the parameter to be displayed and modified",
      "DisplayName": "Parameter type",
      "User": "Standard"
    },
    "OSD6_PARAM9_X": {
      "Description": "Horizontal position on screen",
      "DisplayName": "X position",
      "Range": {
        "high": "29",
        "low": "0"
      },
      "User": "Standard"
    },
    "OSD6_PARAM9_Y": {
      "Description": "Vertical position on screen",
      "DisplayName": "Y position",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "PRX": {
    "PRX_FILT": {
      "Description": "Cutoff frequency for low pass filter applied to each face in the proximity boundary",
      "DisplayName": "Proximity filter cutoff frequency",
      "Range": {
        "high": "20",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "PRX_LOG_RAW": {
      "Description": "Set this parameter to one if logging unfiltered(raw) distances from sensor should be enabled",
      "DisplayName": "Proximity raw distances log",
      "User": "Advanced",
      "Values": {
        "0": "Off",
        "1": "On"
      }
    }
  },
  "PRX1": {
    "PRX1_ADDR": {
      "Description": "The bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "PRX1_IGN_ANG1": {
      "Description": "Proximity sensor ignore angle 1",
      "DisplayName": "Proximity sensor ignore angle 1",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX1_IGN_ANG2": {
      "Description": "Proximity sensor ignore angle 2",
      "DisplayName": "Proximity sensor ignore angle 2",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX1_IGN_ANG3": {
      "Description": "Proximity sensor ignore angle 3",
      "DisplayName": "Proximity sensor ignore angle 3",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX1_IGN_ANG4": {
      "Description": "Proximity sensor ignore angle 4",
      "DisplayName": "Proximity sensor ignore angle 4",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX1_IGN_WID1": {
      "Description": "Proximity sensor ignore width 1",
      "DisplayName": "Proximity sensor ignore width 1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX1_IGN_WID2": {
      "Description": "Proximity sensor ignore width 2",
      "DisplayName": "Proximity sensor ignore width 2",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX1_IGN_WID3": {
      "Description": "Proximity sensor ignore width 3",
      "DisplayName": "Proximity sensor ignore width 3",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX1_IGN_WID4": {
      "Description": "Proximity sensor ignore width 4",
      "DisplayName": "Proximity sensor ignore width 4",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX1_MAX": {
      "Description": "Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",
      "DisplayName": "Proximity maximum range",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "PRX1_MIN": {
      "Description": "Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",
      "DisplayName": "Proximity minimum range",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "PRX1_ORIENT": {
      "Description": "Proximity sensor orientation",
      "DisplayName": "Proximity sensor orientation",
      "User": "Standard",
      "Values": {
        "0": "Default",
        "1": "Upside Down"
      }
    },
    "PRX1_TYPE": {
      "Description": "What type of proximity sensor is connected",
      "DisplayName": "Proximity type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "10": "SITL",
        "12": "AirSimSITL",
        "13": "CygbotD1",
        "14": "DroneCAN",
        "15": "Scripting",
        "16": "LD06",
        "17": "MR72_CAN",
        "18": "HexsoonRadar",
        "2": "MAVLink",
        "3": "TeraRangerTower",
        "4": "RangeFinder",
        "5": "RPLidarA2",
        "6": "TeraRangerTowerEvo",
        "7": "LightwareSF40c",
        "8": "LightwareSF45B"
      }
    },
    "PRX1_YAW_CORR": {
      "Description": "Proximity sensor yaw correction",
      "DisplayName": "Proximity sensor yaw correction",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    }
  },
  "PRX1_": {
    "PRX1_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "PRX2": {
    "PRX2_ADDR": {
      "Description": "The bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "PRX2_IGN_ANG1": {
      "Description": "Proximity sensor ignore angle 1",
      "DisplayName": "Proximity sensor ignore angle 1",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX2_IGN_ANG2": {
      "Description": "Proximity sensor ignore angle 2",
      "DisplayName": "Proximity sensor ignore angle 2",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX2_IGN_ANG3": {
      "Description": "Proximity sensor ignore angle 3",
      "DisplayName": "Proximity sensor ignore angle 3",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX2_IGN_ANG4": {
      "Description": "Proximity sensor ignore angle 4",
      "DisplayName": "Proximity sensor ignore angle 4",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX2_IGN_WID1": {
      "Description": "Proximity sensor ignore width 1",
      "DisplayName": "Proximity sensor ignore width 1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX2_IGN_WID2": {
      "Description": "Proximity sensor ignore width 2",
      "DisplayName": "Proximity sensor ignore width 2",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX2_IGN_WID3": {
      "Description": "Proximity sensor ignore width 3",
      "DisplayName": "Proximity sensor ignore width 3",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX2_IGN_WID4": {
      "Description": "Proximity sensor ignore width 4",
      "DisplayName": "Proximity sensor ignore width 4",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX2_MAX": {
      "Description": "Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",
      "DisplayName": "Proximity maximum range",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "PRX2_MIN": {
      "Description": "Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",
      "DisplayName": "Proximity minimum range",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "PRX2_ORIENT": {
      "Description": "Proximity sensor orientation",
      "DisplayName": "Proximity sensor orientation",
      "User": "Standard",
      "Values": {
        "0": "Default",
        "1": "Upside Down"
      }
    },
    "PRX2_TYPE": {
      "Description": "What type of proximity sensor is connected",
      "DisplayName": "Proximity type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "10": "SITL",
        "12": "AirSimSITL",
        "13": "CygbotD1",
        "14": "DroneCAN",
        "15": "Scripting",
        "16": "LD06",
        "17": "MR72_CAN",
        "18": "HexsoonRadar",
        "2": "MAVLink",
        "3": "TeraRangerTower",
        "4": "RangeFinder",
        "5": "RPLidarA2",
        "6": "TeraRangerTowerEvo",
        "7": "LightwareSF40c",
        "8": "LightwareSF45B"
      }
    },
    "PRX2_YAW_CORR": {
      "Description": "Proximity sensor yaw correction",
      "DisplayName": "Proximity sensor yaw correction",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    }
  },
  "PRX2_": {
    "PRX2_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "PRX3": {
    "PRX3_ADDR": {
      "Description": "The bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "PRX3_IGN_ANG1": {
      "Description": "Proximity sensor ignore angle 1",
      "DisplayName": "Proximity sensor ignore angle 1",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX3_IGN_ANG2": {
      "Description": "Proximity sensor ignore angle 2",
      "DisplayName": "Proximity sensor ignore angle 2",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX3_IGN_ANG3": {
      "Description": "Proximity sensor ignore angle 3",
      "DisplayName": "Proximity sensor ignore angle 3",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX3_IGN_ANG4": {
      "Description": "Proximity sensor ignore angle 4",
      "DisplayName": "Proximity sensor ignore angle 4",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX3_IGN_WID1": {
      "Description": "Proximity sensor ignore width 1",
      "DisplayName": "Proximity sensor ignore width 1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX3_IGN_WID2": {
      "Description": "Proximity sensor ignore width 2",
      "DisplayName": "Proximity sensor ignore width 2",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX3_IGN_WID3": {
      "Description": "Proximity sensor ignore width 3",
      "DisplayName": "Proximity sensor ignore width 3",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX3_IGN_WID4": {
      "Description": "Proximity sensor ignore width 4",
      "DisplayName": "Proximity sensor ignore width 4",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX3_MAX": {
      "Description": "Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",
      "DisplayName": "Proximity maximum range",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "PRX3_MIN": {
      "Description": "Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",
      "DisplayName": "Proximity minimum range",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "PRX3_ORIENT": {
      "Description": "Proximity sensor orientation",
      "DisplayName": "Proximity sensor orientation",
      "User": "Standard",
      "Values": {
        "0": "Default",
        "1": "Upside Down"
      }
    },
    "PRX3_TYPE": {
      "Description": "What type of proximity sensor is connected",
      "DisplayName": "Proximity type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "10": "SITL",
        "12": "AirSimSITL",
        "13": "CygbotD1",
        "14": "DroneCAN",
        "15": "Scripting",
        "16": "LD06",
        "17": "MR72_CAN",
        "18": "HexsoonRadar",
        "2": "MAVLink",
        "3": "TeraRangerTower",
        "4": "RangeFinder",
        "5": "RPLidarA2",
        "6": "TeraRangerTowerEvo",
        "7": "LightwareSF40c",
        "8": "LightwareSF45B"
      }
    },
    "PRX3_YAW_CORR": {
      "Description": "Proximity sensor yaw correction",
      "DisplayName": "Proximity sensor yaw correction",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    }
  },
  "PRX3_": {
    "PRX3_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "PRX4": {
    "PRX4_ADDR": {
      "Description": "The bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "PRX4_IGN_ANG1": {
      "Description": "Proximity sensor ignore angle 1",
      "DisplayName": "Proximity sensor ignore angle 1",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX4_IGN_ANG2": {
      "Description": "Proximity sensor ignore angle 2",
      "DisplayName": "Proximity sensor ignore angle 2",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX4_IGN_ANG3": {
      "Description": "Proximity sensor ignore angle 3",
      "DisplayName": "Proximity sensor ignore angle 3",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX4_IGN_ANG4": {
      "Description": "Proximity sensor ignore angle 4",
      "DisplayName": "Proximity sensor ignore angle 4",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX4_IGN_WID1": {
      "Description": "Proximity sensor ignore width 1",
      "DisplayName": "Proximity sensor ignore width 1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX4_IGN_WID2": {
      "Description": "Proximity sensor ignore width 2",
      "DisplayName": "Proximity sensor ignore width 2",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX4_IGN_WID3": {
      "Description": "Proximity sensor ignore width 3",
      "DisplayName": "Proximity sensor ignore width 3",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX4_IGN_WID4": {
      "Description": "Proximity sensor ignore width 4",
      "DisplayName": "Proximity sensor ignore width 4",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX4_MAX": {
      "Description": "Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",
      "DisplayName": "Proximity maximum range",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "PRX4_MIN": {
      "Description": "Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",
      "DisplayName": "Proximity minimum range",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "PRX4_ORIENT": {
      "Description": "Proximity sensor orientation",
      "DisplayName": "Proximity sensor orientation",
      "User": "Standard",
      "Values": {
        "0": "Default",
        "1": "Upside Down"
      }
    },
    "PRX4_TYPE": {
      "Description": "What type of proximity sensor is connected",
      "DisplayName": "Proximity type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "10": "SITL",
        "12": "AirSimSITL",
        "13": "CygbotD1",
        "14": "DroneCAN",
        "15": "Scripting",
        "16": "LD06",
        "17": "MR72_CAN",
        "18": "HexsoonRadar",
        "2": "MAVLink",
        "3": "TeraRangerTower",
        "4": "RangeFinder",
        "5": "RPLidarA2",
        "6": "TeraRangerTowerEvo",
        "7": "LightwareSF40c",
        "8": "LightwareSF45B"
      }
    },
    "PRX4_YAW_CORR": {
      "Description": "Proximity sensor yaw correction",
      "DisplayName": "Proximity sensor yaw correction",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    }
  },
  "PRX4_": {
    "PRX4_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "PRX5": {
    "PRX5_ADDR": {
      "Description": "The bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "PRX5_IGN_ANG1": {
      "Description": "Proximity sensor ignore angle 1",
      "DisplayName": "Proximity sensor ignore angle 1",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX5_IGN_ANG2": {
      "Description": "Proximity sensor ignore angle 2",
      "DisplayName": "Proximity sensor ignore angle 2",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX5_IGN_ANG3": {
      "Description": "Proximity sensor ignore angle 3",
      "DisplayName": "Proximity sensor ignore angle 3",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX5_IGN_ANG4": {
      "Description": "Proximity sensor ignore angle 4",
      "DisplayName": "Proximity sensor ignore angle 4",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX5_IGN_WID1": {
      "Description": "Proximity sensor ignore width 1",
      "DisplayName": "Proximity sensor ignore width 1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX5_IGN_WID2": {
      "Description": "Proximity sensor ignore width 2",
      "DisplayName": "Proximity sensor ignore width 2",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX5_IGN_WID3": {
      "Description": "Proximity sensor ignore width 3",
      "DisplayName": "Proximity sensor ignore width 3",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX5_IGN_WID4": {
      "Description": "Proximity sensor ignore width 4",
      "DisplayName": "Proximity sensor ignore width 4",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "Units": "deg",
      "User": "Standard"
    },
    "PRX5_MAX": {
      "Description": "Maximum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",
      "DisplayName": "Proximity maximum range",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "PRX5_MIN": {
      "Description": "Minimum expected range for Proximity Sensor. Setting this to 0 will set value to manufacturer reported range.",
      "DisplayName": "Proximity minimum range",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "PRX5_ORIENT": {
      "Description": "Proximity sensor orientation",
      "DisplayName": "Proximity sensor orientation",
      "User": "Standard",
      "Values": {
        "0": "Default",
        "1": "Upside Down"
      }
    },
    "PRX5_TYPE": {
      "Description": "What type of proximity sensor is connected",
      "DisplayName": "Proximity type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "10": "SITL",
        "12": "AirSimSITL",
        "13": "CygbotD1",
        "14": "DroneCAN",
        "15": "Scripting",
        "16": "LD06",
        "17": "MR72_CAN",
        "18": "HexsoonRadar",
        "2": "MAVLink",
        "3": "TeraRangerTower",
        "4": "RangeFinder",
        "5": "RPLidarA2",
        "6": "TeraRangerTowerEvo",
        "7": "LightwareSF40c",
        "8": "LightwareSF45B"
      }
    },
    "PRX5_YAW_CORR": {
      "Description": "Proximity sensor yaw correction",
      "DisplayName": "Proximity sensor yaw correction",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Standard"
    }
  },
  "PRX5_": {
    "PRX5_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "PSC": {
    "PSC_ANGLE_MAX": {
      "Description": "Maximum lean angle autopilot can request. Set to zero to use ANGLE_MAX parameter value",
      "DisplayName": "Position Control Angle Max",
      "Increment": "1",
      "Range": {
        "high": "45",
        "low": "0"
      },
      "Units": "deg",
      "User": "Advanced"
    },
    "PSC_D_ACC_D": {
      "Description": "Acceleration (vertical) controller D gain. Compensates for short-term change in desired vertical acceleration vs actual acceleration. If upgrading from 4.6 this is _ACCZ_D * 0.1.",
      "DisplayName": "Acceleration (vertical) controller D gain",
      "Increment": "0.001",
      "Range": {
        "high": "0.100",
        "low": "0.000"
      },
      "User": "Standard"
    },
    "PSC_D_ACC_D_FF": {
      "Description": "FF D Gain which produces an output that is proportional to the rate of change of the target. If upgrading from 4.6 this is _ACCZ_P * 0.1.",
      "DisplayName": "Accel (vertical) Derivative FeedForward Gain",
      "Increment": "0.001",
      "Range": {
        "high": "0.050",
        "low": "0.000"
      },
      "User": "Advanced"
    },
    "PSC_D_ACC_FF": {
      "Description": "Acceleration (vertical) controller feed forward. If upgrading from 4.6 this is _ACCZ_FF * 0.1.",
      "DisplayName": "Acceleration (vertical) controller feed forward",
      "Increment": "0.001",
      "Range": {
        "high": "0.100",
        "low": "0.000"
      },
      "User": "Standard"
    },
    "PSC_D_ACC_FLTD": {
      "Description": "Acceleration (vertical) controller derivative frequency in Hz. Previously _ACCZ_FLTD.",
      "DisplayName": "Acceleration (vertical) controller derivative frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "PSC_D_ACC_FLTE": {
      "Description": "Acceleration (vertical) controller error frequency in Hz. Previously _ACCZ_FLTE.",
      "DisplayName": "Acceleration (vertical) controller error frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "PSC_D_ACC_FLTT": {
      "Description": "Acceleration (vertical) controller target frequency in Hz. Previously _ACCZ_FLTT.",
      "DisplayName": "Acceleration (vertical) controller target frequency in Hz",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "Units": "Hz",
      "User": "Standard"
    },
    "PSC_D_ACC_I": {
      "Description": "Acceleration (vertical) controller I gain. Corrects long-term difference in desired vertical acceleration and actual acceleration. If upgrading from 4.6 this is _ACCZ_I * 0.1.",
      "DisplayName": "Acceleration (vertical) controller I gain",
      "Increment": "0.001",
      "Range": {
        "high": "0.500",
        "low": "0.000"
      },
      "User": "Standard"
    },
    "PSC_D_ACC_IMAX": {
      "Description": "Acceleration (vertical) controller I gain maximum. Constrains the maximum pwm that the I term will generate. If upgrading from 4.6 this is _ACCZ_IMAX * 0.001.",
      "DisplayName": "Acceleration (vertical) controller I gain maximum",
      "Increment": "0.01",
      "Range": {
        "high": "1.0",
        "low": "0.0"
      },
      "Units": "d%",
      "User": "Standard"
    },
    "PSC_D_ACC_NEF": {
      "Description": "Accel (vertical) Error notch filter index, zero disables. If upgrading from 4.6 this is Previously _ACCZ_NEF.",
      "DisplayName": "Accel (vertical) Error notch filter index",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Advanced"
    },
    "PSC_D_ACC_NTF": {
      "Description": "Accel (vertical) Target notch filter index, zero disables. If upgrading from 4.6 this is Previously _ACCZ_NTF.",
      "DisplayName": "Accel (vertical) Target notch filter index",
      "Range": {
        "high": "8",
        "low": "0"
      },
      "User": "Advanced"
    },
    "PSC_D_ACC_P": {
      "Description": "Acceleration (vertical) controller P gain. Converts the difference between desired vertical acceleration and actual acceleration into a motor output. If upgrading from 4.6 this is _ACCZ_P * 0.1.",
      "DisplayName": "Acceleration (vertical) controller P gain",
      "Increment": "0.001",
      "Range": {
        "high": "0.250",
        "low": "0.010"
      },
      "User": "Standard"
    },
    "PSC_D_ACC_PDMX": {
      "Description": "Acceleration (vertical) controller PD sum maximum. The maximum/minimum value that the sum of the P and D term can output. If upgrading from 4.6 this is _ACCZ_P * 0.1.",
      "DisplayName": "Acceleration (vertical) controller PD sum maximum",
      "Increment": "0.01",
      "Range": {
        "high": "1.00",
        "low": "0.00"
      },
      "Units": "d%"
    },
    "PSC_D_ACC_SMAX": {
      "Description": "Sets an upper limit on the slew rate produced by the combined P and D gains. If the amplitude of the control action produced by the rate feedback exceeds this value, then the D+P gain is reduced to respect the limit. This limits the amplitude of high frequency oscillations caused by an excessive gain. The limit should be set to no more than 25% of the actuators maximum slew rate to allow for load effects. Note: The gain will not be reduced to less than 10% of the nominal value. A value of zero will disable this feature.",
      "DisplayName": "Accel (vertical) slew rate limit",
      "Increment": "0.1",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "User": "Advanced"
    },
    "PSC_D_JERK": {
      "Description": "Jerk limit of the vertical kinematic path generation used to determine how quickly the aircraft varies the acceleration target",
      "DisplayName": "Jerk limit for the vertical kinematic input shaping",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "Units": "m/s/s/s",
      "User": "Advanced"
    },
    "PSC_D_POS_P": {
      "Description": "Position (vertical) controller P gain. Converts the difference between the desired altitude and actual altitude into a climb or descent rate which is passed to the throttle rate controller. Previously _POSZ_P.",
      "DisplayName": "Position (vertical) controller P gain",
      "Increment": "0.01",
      "Range": {
        "high": "4.00",
        "low": "0.50"
      },
      "User": "Standard"
    },
    "PSC_D_VEL_D": {
      "Description": "Velocity (vertical) controller D gain. Corrects short-term changes in velocity. Previously _VELZ_D.",
      "DisplayName": "Velocity (vertical) controller D gain",
      "Increment": "0.01",
      "Range": {
        "high": "2.00",
        "low": "0.00"
      },
      "User": "Advanced"
    },
    "PSC_D_VEL_FF": {
      "Description": "Velocity (vertical) controller Feed Forward gain. Produces an output that is proportional to the magnitude of the target. Previously _VELZ_FF.",
      "DisplayName": "Velocity (vertical) controller Feed Forward gain",
      "Increment": "0.01",
      "Range": {
        "high": "2.00",
        "low": "0.00"
      },
      "User": "Advanced"
    },
    "PSC_D_VEL_FLTD": {
      "Description": "Velocity (vertical) input filter for D term. This filter (in Hz) is applied to the input for D terms. Previously _VELZ_FLTD.",
      "DisplayName": "Velocity (vertical) input filter for D term",
      "Increment": "1.0",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "PSC_D_VEL_FLTE": {
      "Description": "Velocity (vertical) error filter. This filter (in Hz) is applied to the input for P and I terms. Previously _VELZ_FLTE.",
      "DisplayName": "Velocity (vertical) error filter",
      "Increment": "1.0",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "PSC_D_VEL_I": {
      "Description": "Velocity (vertical) controller I gain. Corrects long-term difference in desired velocity to a target acceleration. Previously _VELZ_I.",
      "DisplayName": "Velocity (vertical) controller I gain",
      "Increment": "0.1",
      "Range": {
        "high": "10.0",
        "low": "0.00"
      },
      "User": "Advanced"
    },
    "PSC_D_VEL_IMAX": {
      "Description": "Velocity (vertical) controller I gain maximum. Constrains the target acceleration that the I gain will output. If upgrading from 4.6 this is _VELZ_IMAX * 0.01.",
      "DisplayName": "Velocity (vertical) controller I gain maximum",
      "Increment": "0.1",
      "Range": {
        "high": "10.000",
        "low": "1.000"
      },
      "User": "Standard"
    },
    "PSC_D_VEL_P": {
      "Description": "Velocity (vertical) controller P gain. Converts the difference between desired vertical speed and actual speed into a desired acceleration that is passed to the throttle acceleration controller. Previously _VELZ_P.",
      "DisplayName": "Velocity (vertical) controller P gain",
      "Increment": "0.1",
      "Range": {
        "high": "10.0",
        "low": "1.0"
      },
      "User": "Standard"
    },
    "PSC_NE_JERK": {
      "Description": "Jerk limit of the horizontal kinematic path generation used to determine how quickly the aircraft varies the acceleration target",
      "DisplayName": "Jerk limit for the horizontal kinematic input shaping",
      "Increment": "1",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "Units": "m/s/s/s",
      "User": "Advanced"
    },
    "PSC_NE_POS_P": {
      "Description": "Position controller P gain. Converts the distance (in the latitude direction) to the target location into a desired speed which is then passed to the loiter latitude rate controller. Previously _POSXY_P.",
      "DisplayName": "Position (horizontal) controller P gain",
      "Increment": "0.01",
      "Range": {
        "high": "4.00",
        "low": "0.50"
      },
      "User": "Standard"
    },
    "PSC_NE_VEL_D": {
      "Description": "Velocity (horizontal) D gain. Corrects short-term changes in velocity. Previously _VELXY_D.",
      "DisplayName": "Velocity (horizontal) D gain",
      "Increment": "0.01",
      "Range": {
        "high": "1.00",
        "low": "0.00"
      },
      "User": "Advanced"
    },
    "PSC_NE_VEL_FF": {
      "Description": "Velocity (horizontal) feed forward gain. Converts the difference between desired velocity to a target acceleration. Previously _VELXY_FF.",
      "DisplayName": "Velocity (horizontal) feed forward gain",
      "Increment": "0.01",
      "Range": {
        "high": "10.00",
        "low": "0.10"
      },
      "User": "Advanced"
    },
    "PSC_NE_VEL_FLTD": {
      "Description": "Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for D term. Previously _VELXY_FLTD.",
      "DisplayName": "Velocity (horizontal) input filter",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "PSC_NE_VEL_FLTE": {
      "Description": "Velocity (horizontal) input filter. This filter (in Hz) is applied to the input for P and I terms. Previously _VELXY_FLTE.",
      "DisplayName": "Velocity (horizontal) input filter",
      "Increment": "1",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "PSC_NE_VEL_I": {
      "Description": "Velocity (horizontal) I gain. Corrects long-term difference between desired and actual velocity to a target acceleration. Previously _VELXY_I.",
      "DisplayName": "Velocity (horizontal) I gain",
      "Increment": "0.01",
      "Range": {
        "high": "10.00",
        "low": "0.10"
      },
      "User": "Advanced"
    },
    "PSC_NE_VEL_IMAX": {
      "Description": "Velocity (horizontal) integrator maximum. Constrains the target acceleration that the I gain will output. If upgrading from 4.6 this is _VELXY_IMAX * 0.01.",
      "DisplayName": "Velocity (horizontal) integrator maximum",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "m/s/s",
      "User": "Advanced"
    },
    "PSC_NE_VEL_P": {
      "Description": "Velocity (horizontal) P gain. Converts the difference between desired and actual velocity to a target acceleration. Previously _VELXY_P.",
      "DisplayName": "Velocity (horizontal) P gain",
      "Increment": "0.01",
      "Range": {
        "high": "10.00",
        "low": "0.10"
      },
      "User": "Advanced"
    }
  },
  "RALLY_": {
    "RALLY_INCL_HOME": {
      "Description": "Controls if Home is included as a Rally point (i.e. as a safe landing place) for RTL",
      "DisplayName": "Rally Include Home",
      "User": "Standard",
      "Values": {
        "0": "DoNotIncludeHome",
        "1": "IncludeHome"
      }
    },
    "RALLY_LIMIT_KM": {
      "Description": "Maximum distance to rally point. If the closest rally point is more than this number of kilometers from the current position and the home location is closer than any of the rally points from the current position then do RTL to home rather than to the closest rally point. This prevents a leftover rally point from a different airfield being used accidentally. If this is set to 0 then the closest rally point is always used.",
      "DisplayName": "Rally Limit",
      "Increment": "0.1",
      "Units": "km",
      "User": "Advanced"
    },
    "RALLY_TOTAL": {
      "Description": "Number of rally points currently loaded",
      "DisplayName": "Rally Total",
      "User": "Advanced"
    }
  },
  "RC": {
    "RC_FS_TIMEOUT": {
      "Description": "RC failsafe will trigger this many seconds after loss of RC",
      "DisplayName": "RC Failsafe timeout",
      "Range": {
        "high": "10.0",
        "low": "0.1"
      },
      "Units": "s",
      "User": "Standard"
    },
    "RC_OPTIONS": {
      "Bitmask": {
        "0": "Ignore RC Receiver",
        "1": "Ignore MAVLink Overrides",
        "10": "Enable multiple receiver support",
        "11": "Use Link Quality for RSSI with CRSF",
        "12": "Annotate CRSF flight mode with * on disarm",
        "13": "Use 420kbaud for ELRS protocol",
        "14": "Clear MAVLink overrides on any stick input",
        "2": "Ignore Receiver Failsafe bit but allow other RC failsafes if setup",
        "3": "FPort Pad",
        "4": "Log RC input bytes",
        "5": "Arming check throttle for 0 input",
        "6": "Skip the arming check for neutral Roll/Pitch/Yaw sticks",
        "7": "Allow Switch reverse",
        "8": "Use passthrough for CRSF telemetry",
        "9": "Suppress CRSF mode/rate message for ELRS systems"
      },
      "Description": "RC input options",
      "DisplayName": "RC options",
      "User": "Advanced"
    },
    "RC_OVERRIDE_TIME": {
      "Description": "Timeout after which RC overrides will no longer be used, and RC input will resume, 0 will disable RC overrides, -1 will never timeout, and continue using overrides until they are disabled",
      "DisplayName": "RC override timeout",
      "Range": {
        "high": "120.0",
        "low": "0.0"
      },
      "Units": "s",
      "User": "Advanced"
    },
    "RC_PROTOCOLS": {
      "Bitmask": {
        "0": "All",
        "1": "PPM",
        "10": "ST24",
        "11": "FPORT",
        "12": "FPORT2",
        "13": "FastSBUS",
        "14": "DroneCAN",
        "15": "Ghost",
        "16": "MAVRadio",
        "18": "SITL UDP",
        "2": "IBUS",
        "3": "SBUS",
        "4": "SBUS_NI",
        "5": "DSM",
        "6": "SUMD",
        "7": "SRXL",
        "8": "SRXL2",
        "9": "CRSF"
      },
      "Description": "Bitmask of enabled RC protocols. Allows narrowing the protocol detection to only specific types of RC receivers which can avoid issues with incorrect detection. Set to 1 to enable all protocols.",
      "DisplayName": "RC protocols enabled",
      "User": "Advanced"
    }
  },
  "RC10_": {
    "RC10_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC10_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC10_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC10_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC10_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC10_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC11_": {
    "RC11_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC11_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC11_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC11_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC11_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC11_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC12_": {
    "RC12_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC12_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC12_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC12_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC12_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC12_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC13_": {
    "RC13_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC13_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC13_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC13_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC13_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC13_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC14_": {
    "RC14_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC14_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC14_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC14_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC14_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC14_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC15_": {
    "RC15_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC15_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC15_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC15_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC15_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC15_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC16_": {
    "RC16_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC16_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC16_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC16_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC16_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC16_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC1_": {
    "RC1_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC1_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC1_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC1_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC1_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC1_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC2_": {
    "RC2_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC2_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC2_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC2_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC2_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC2_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC3_": {
    "RC3_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC3_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC3_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC3_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC3_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC3_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC4_": {
    "RC4_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC4_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC4_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC4_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC4_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC4_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC5_": {
    "RC5_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC5_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC5_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC5_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC5_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC5_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC6_": {
    "RC6_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC6_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC6_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC6_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC6_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC6_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC7_": {
    "RC7_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC7_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC7_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC7_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC7_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC7_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC8_": {
    "RC8_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC8_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC8_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC8_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC8_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC8_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RC9_": {
    "RC9_DZ": {
      "Description": "PWM dead zone in microseconds around trim or bottom",
      "DisplayName": "RC dead-zone",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC9_MAX": {
      "Description": "RC maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC max PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC9_MIN": {
      "Description": "RC minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC min PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "RC9_OPTION": {
      "Description": "Function assigned to this RC channel",
      "DisplayName": "RC input option",
      "User": "Standard",
      "Values": {
        "0": "Do Nothing",
        "100": "KillIMU1",
        "101": "KillIMU2",
        "102": "Camera Mode Toggle",
        "103": "EKF lane switch attempt",
        "104": "EKF yaw reset",
        "105": "GPS Disable Yaw",
        "11": "Fence Enable",
        "110": "KillIMU3",
        "111": "Loweheiser starter",
        "112": "SwitchExternalAHRS",
        "113": "Retract Mount2",
        "153": "ArmDisarm",
        "163": "Mount Yaw Lock",
        "164": "Pause Stream Logging",
        "165": "Arm/Emergency Motor Stop",
        "166": "Camera Record Video",
        "167": "Camera Zoom",
        "168": "Camera Manual Focus",
        "169": "Camera Auto Focus",
        "174": "Camera Image Tracking",
        "175": "Camera Lens",
        "177": "Mount LRF enable",
        "185": "Mount Roll/Pitch Lock",
        "186": "Mount POI Lock",
        "187": "EKF Reset",
        "212": "Mount1 Roll",
        "213": "Mount1 Pitch",
        "214": "Mount1 Yaw",
        "215": "Mount2 Roll",
        "216": "Mount2 Pitch",
        "217": "Mount2 Yaw",
        "218": "Loweheiser throttle",
        "24": "Auto Mission Reset",
        "27": "Retract Mount1",
        "28": "Relay1 On/Off",
        "300": "Scripting1",
        "301": "Scripting2",
        "302": "Scripting3",
        "303": "Scripting4",
        "304": "Scripting5",
        "305": "Scripting6",
        "306": "Scripting7",
        "307": "Scripting8",
        "308": "Scripting9",
        "309": "Scripting10",
        "31": "Motor Emergency Stop",
        "310": "Scripting11",
        "311": "Scripting12",
        "312": "Scripting13",
        "313": "Scripting14",
        "314": "Scripting15",
        "315": "Scripting16",
        "316": "Stop-Restart Scripting",
        "34": "Relay2 On/Off",
        "35": "Relay3 On/Off",
        "36": "Relay4 On/Off",
        "46": "RC Override Enable",
        "58": "Clear Waypoints",
        "62": "Compass Learn",
        "65": "GPS Disable",
        "66": "Relay5 On/Off",
        "67": "Relay6 On/Off",
        "78": "RunCam Control",
        "79": "RunCam OSD Control",
        "81": "Disarm",
        "9": "Camera Trigger",
        "90": "EKF Source Set",
        "94": "VTX Power"
      }
    },
    "RC9_REVERSED": {
      "Description": "Reverse channel input. Set to 0 for normal operation. Set to 1 to reverse this input channel.",
      "DisplayName": "RC reversed",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "RC9_TRIM": {
      "Description": "RC trim (neutral) PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "RC trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Advanced"
    }
  },
  "RCMAP_": {
    "RCMAP_FORWARD": {
      "Description": "Forward channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Forward is normally on channel 5, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",
      "DisplayName": "Forward channel",
      "Increment": "1",
      "Range": {
        "high": "16",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RCMAP_LATERAL": {
      "Description": "Lateral channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Lateral is normally on channel 6, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",
      "DisplayName": "Lateral channel",
      "Increment": "1",
      "Range": {
        "high": "16",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RCMAP_PITCH": {
      "Description": "Pitch channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Pitch is normally on channel 2, but you can move it to any channel with this parameter.  Reboot is required for changes to take effect.",
      "DisplayName": "Pitch channel",
      "Increment": "1",
      "Range": {
        "high": "16",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RCMAP_ROLL": {
      "Description": "Roll channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Roll is normally on channel 1, but you can move it to any channel with this parameter.  Reboot is required for changes to take effect.",
      "DisplayName": "Roll channel",
      "Increment": "1",
      "Range": {
        "high": "16",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RCMAP_THROTTLE": {
      "Description": "Throttle channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Throttle is normally on channel 3, but you can move it to any channel with this parameter. Reboot is required for changes to take effect.",
      "DisplayName": "Throttle channel",
      "Increment": "1",
      "Range": {
        "high": "16",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RCMAP_YAW": {
      "Description": "Yaw channel number. This is useful when you have a RC transmitter that can't change the channel order easily. Yaw (also known as rudder) is normally on channel 4, but you can move it to any channel with this parameter.  Reboot is required for changes to take effect.",
      "DisplayName": "Yaw channel",
      "Increment": "1",
      "Range": {
        "high": "16",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "RELAY10_": {
    "RELAY10_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY10_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY10_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY10_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY11_": {
    "RELAY11_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY11_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY11_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY11_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY12_": {
    "RELAY12_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY12_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY12_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY12_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY13_": {
    "RELAY13_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY13_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY13_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY13_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY14_": {
    "RELAY14_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY14_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY14_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY14_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY15_": {
    "RELAY15_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY15_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY15_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY15_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY16_": {
    "RELAY16_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY16_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY16_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY16_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY1_": {
    "RELAY1_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY1_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY1_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY1_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY2_": {
    "RELAY2_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY2_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY2_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY2_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY3_": {
    "RELAY3_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY3_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY3_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY3_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY4_": {
    "RELAY4_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY4_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY4_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY4_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY5_": {
    "RELAY5_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY5_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY5_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY5_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY6_": {
    "RELAY6_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY6_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY6_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY6_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY7_": {
    "RELAY7_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY7_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY7_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY7_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY8_": {
    "RELAY8_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY8_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY8_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY8_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RELAY9_": {
    "RELAY9_DEFAULT": {
      "Description": "Should the relay default to on or off, this only applies to RELAYx_FUNC \"Relay\" (1). All other uses will pick the appropriate default output state from within the controlling function's parameters. Note that if INVERTED is set then the default is inverted.",
      "DisplayName": "Relay default state",
      "User": "Standard",
      "Values": {
        "0": "Off",
        "1": "On",
        "2": "NoChange"
      }
    },
    "RELAY9_FUNCTION": {
      "Description": "The function the relay channel is mapped to.",
      "DisplayName": "Relay function",
      "Values": {
        "0": "None",
        "1": "Relay",
        "4": "Camera"
      }
    },
    "RELAY9_INVERTED": {
      "Description": "Should the relay output signal be inverted. If enabled, relay on would be pin low and relay off would be pin high. NOTE: this impact's DEFAULT.",
      "DisplayName": "Relay invert output signal",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Inverted"
      }
    },
    "RELAY9_PIN": {
      "Description": "Digital pin number for relay control. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Relay pin",
      "Range": {
        "high": "1015",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "1000": "DroneCAN Hardpoint ID 0",
        "1001": "DroneCAN Hardpoint ID 1",
        "1002": "DroneCAN Hardpoint ID 2",
        "1003": "DroneCAN Hardpoint ID 3",
        "1004": "DroneCAN Hardpoint ID 4",
        "1005": "DroneCAN Hardpoint ID 5",
        "1006": "DroneCAN Hardpoint ID 6",
        "1007": "DroneCAN Hardpoint ID 7",
        "1008": "DroneCAN Hardpoint ID 8",
        "1009": "DroneCAN Hardpoint ID 9",
        "101": "MainOut1",
        "1010": "DroneCAN Hardpoint ID 10",
        "1011": "DroneCAN Hardpoint ID 11",
        "1012": "DroneCAN Hardpoint ID 12",
        "1013": "DroneCAN Hardpoint ID 13",
        "1014": "DroneCAN Hardpoint ID 14",
        "1015": "DroneCAN Hardpoint ID 15",
        "102": "MainOut2",
        "103": "MainOut3",
        "104": "MainOut4",
        "105": "MainOut5",
        "106": "MainOut6",
        "107": "MainOut7",
        "108": "MainOut8",
        "113": "BB Blue GP0 pin 6",
        "116": "BB Blue GP0 pin 5",
        "49": "BB Blue GP0 pin 4",
        "50": "AUXOUT1",
        "51": "AUXOUT2",
        "52": "AUXOUT3",
        "53": "AUXOUT4",
        "54": "AUXOUT5",
        "55": "AUXOUT6",
        "57": "BB Blue GP0 pin 3",
        "62": "BBBMini Pin P8.13"
      }
    }
  },
  "RNGFND1_": {
    "RNGFND1_ADDR": {
      "Description": "This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses. For MAVLink rangefinders, this sets the DISTANCE_SENSOR message id to accept. A value of zero accepts any id.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "RNGFND1_FUNCTION": {
      "Description": "Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",
      "DisplayName": "Rangefinder function",
      "User": "Standard",
      "Values": {
        "0": "Linear",
        "1": "Inverted",
        "2": "Hyperbolic"
      }
    },
    "RNGFND1_GNDCLR": {
      "Description": "This parameter sets the expected range measurement that the range finder should return when the vehicle is on the ground.",
      "DisplayName": "Distance from the range finder to the ground",
      "Increment": "0.01",
      "Range": {
        "high": "1.5",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND1_MAX": {
      "Description": "Maximum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder maximum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND1_MIN": {
      "Description": "Minimum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder minimum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND1_OFFSET": {
      "Description": "Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",
      "DisplayName": "rangefinder offset",
      "Increment": "0.001",
      "Units": "V",
      "User": "Standard"
    },
    "RNGFND1_ORIENT": {
      "Description": "Orientation of rangefinder",
      "DisplayName": "Rangefinder orientation",
      "User": "Advanced",
      "Values": {
        "0": "Forward",
        "1": "Forward-Right",
        "2": "Right",
        "24": "Up",
        "25": "Down",
        "3": "Back-Right",
        "4": "Back",
        "5": "Back-Left",
        "6": "Left",
        "7": "Forward-Left"
      }
    },
    "RNGFND1_PIN": {
      "Description": "Analog or PWM input pin that rangefinder is connected to. Analog RSSI or Airspeed ports can be used for Analog inputs (some autopilots provide others also), Non-IOMCU Servo/MotorOutputs can be used for PWM input when configured as \"GPIOs\". Values for some autopilots are given as examples. Search wiki for \"Analog pins\" for analog pin or \"GPIOs\", if PWM input type, to determine pin number.",
      "DisplayName": "Rangefinder pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "103": "Pixhawk SBUS",
        "11": "Pixracer",
        "13": "Pixhawk ADC4",
        "14": "Pixhawk ADC3",
        "15": "Pixhawk ADC6/Pixhawk2 ADC",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND1_POS_X": {
      "Description": "X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND1_POS_Y": {
      "Description": "Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND1_POS_Z": {
      "Description": "Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND1_PWRRNG": {
      "Description": "This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",
      "DisplayName": "Powersave range",
      "Range": {
        "high": "32767",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND1_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "RangeFinder CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND1_RMETRIC": {
      "Description": "This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",
      "DisplayName": "Ratiometric",
      "User": "Standard",
      "Values": {
        "0": "No",
        "1": "Yes"
      }
    },
    "RNGFND1_SCALING": {
      "Description": "Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",
      "DisplayName": "Rangefinder scaling",
      "Increment": "0.001",
      "Units": "m/V",
      "User": "Standard"
    },
    "RNGFND1_SNR_MIN": {
      "Description": "RangeFinder Minimum signal strength (SNR) to accept distance",
      "DisplayName": "RangeFinder Minimum signal strength",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND1_STOP_PIN": {
      "Description": "Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Rangefinder stop pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "111": "PX4 FMU Relay1",
        "112": "PX4 FMU Relay2",
        "113": "PX4IO Relay1",
        "114": "PX4IO Relay2",
        "115": "PX4IO ACC1",
        "116": "PX4IO ACC2",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND1_TYPE": {
      "Description": "Type of connected rangefinder",
      "DisplayName": "Rangefinder type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Analog",
        "10": "MAVLink",
        "100": "SITL",
        "11": "USD1_Serial",
        "12": "LeddarOne",
        "13": "MaxbotixSerial",
        "14": "TeraRangerI2C",
        "15": "LidarLiteV3-I2C",
        "16": "VL53L0X or VL53L1X",
        "17": "NMEA",
        "18": "WASP-LRF",
        "19": "BenewakeTF02",
        "2": "MaxbotixI2C",
        "20": "BenewakeTFmini-Serial",
        "21": "LidarLightV3HP",
        "22": "PWM",
        "23": "BlueRoboticsPing",
        "24": "DroneCAN",
        "25": "BenewakeTFmini-I2C",
        "26": "LanbaoPSK-CM8JL65-CC5",
        "27": "BenewakeTF03",
        "28": "VL53L1X-ShortRange",
        "29": "LeddarVu8-Serial",
        "3": "LidarLite-I2C",
        "30": "HC-SR04",
        "31": "GYUS42v2",
        "32": "MSP",
        "33": "USD1_CAN",
        "34": "Benewake_CAN",
        "35": "TeraRangerSerial",
        "36": "Lua_Scripting",
        "37": "NoopLoop_TOFSense",
        "38": "NoopLoop_TOFSense_CAN",
        "39": "NRA24_CAN",
        "40": "NoopLoop_TOFSenseF_I2C",
        "41": "JRE_Serial",
        "42": "Ainstein_LR_D1",
        "43": "RDS02UF",
        "44": "HexsoonRadar",
        "45": "LightWare-GRF",
        "46": "BenewakeTFS20L-I2C",
        "47": "DTS6012M-Serial",
        "48": "LightWare-GRF-I2C",
        "5": "PWM",
        "6": "BBB-PRU",
        "7": "LightWareI2C",
        "8": "LightWareSerial",
        "9": "Bebop"
      }
    },
    "RNGFND1_WSP_AVG": {
      "Description": "Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",
      "DisplayName": "Multi-pulse averages",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND1_WSP_BAUD": {
      "Description": "Desired baud rate",
      "DisplayName": "Baud rate",
      "User": "Advanced",
      "Values": {
        "0": "Low Speed",
        "1": "High Speed"
      }
    },
    "RNGFND1_WSP_FRQ": {
      "Description": "Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",
      "DisplayName": "Frequency",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND1_WSP_MAVG": {
      "Description": "Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",
      "DisplayName": "Moving Average Range",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND1_WSP_MEDF": {
      "Description": "Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",
      "DisplayName": "Moving Median Filter",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND1_WSP_THR": {
      "Description": "Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",
      "DisplayName": "Sensitivity threshold",
      "Range": {
        "high": "255",
        "low": "-1"
      },
      "User": "Advanced"
    }
  },
  "RNGFND1_GRF_": {
    "RNGFND1_GRF_RATE": {
      "Description": "The update rate of the sensor in Hz.",
      "DisplayName": "LightWare GRF Update Rate",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RNGFND1_GRF_RET": {
      "Description": "Selects which single return to use.",
      "DisplayName": "LightWare GRF Distance Return Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "FirstRaw",
        "1": "FirstFiltered",
        "2": "LastRaw",
        "3": "LastFiltered"
      }
    },
    "RNGFND1_GRF_ST": {
      "Description": "Minimum acceptable return signal strength in dB. Returns weaker than this will be ignored. Set to 0 to disable filtering.",
      "DisplayName": "LightWare GRF Minimum Return Strength",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "RNGFND2_": {
    "RNGFND2_ADDR": {
      "Description": "This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses. For MAVLink rangefinders, this sets the DISTANCE_SENSOR message id to accept. A value of zero accepts any id.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "RNGFND2_FUNCTION": {
      "Description": "Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",
      "DisplayName": "Rangefinder function",
      "User": "Standard",
      "Values": {
        "0": "Linear",
        "1": "Inverted",
        "2": "Hyperbolic"
      }
    },
    "RNGFND2_GNDCLR": {
      "Description": "This parameter sets the expected range measurement that the range finder should return when the vehicle is on the ground.",
      "DisplayName": "Distance from the range finder to the ground",
      "Increment": "0.01",
      "Range": {
        "high": "1.5",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND2_MAX": {
      "Description": "Maximum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder maximum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND2_MIN": {
      "Description": "Minimum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder minimum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND2_OFFSET": {
      "Description": "Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",
      "DisplayName": "rangefinder offset",
      "Increment": "0.001",
      "Units": "V",
      "User": "Standard"
    },
    "RNGFND2_ORIENT": {
      "Description": "Orientation of rangefinder",
      "DisplayName": "Rangefinder orientation",
      "User": "Advanced",
      "Values": {
        "0": "Forward",
        "1": "Forward-Right",
        "2": "Right",
        "24": "Up",
        "25": "Down",
        "3": "Back-Right",
        "4": "Back",
        "5": "Back-Left",
        "6": "Left",
        "7": "Forward-Left"
      }
    },
    "RNGFND2_PIN": {
      "Description": "Analog or PWM input pin that rangefinder is connected to. Analog RSSI or Airspeed ports can be used for Analog inputs (some autopilots provide others also), Non-IOMCU Servo/MotorOutputs can be used for PWM input when configured as \"GPIOs\". Values for some autopilots are given as examples. Search wiki for \"Analog pins\" for analog pin or \"GPIOs\", if PWM input type, to determine pin number.",
      "DisplayName": "Rangefinder pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "103": "Pixhawk SBUS",
        "11": "Pixracer",
        "13": "Pixhawk ADC4",
        "14": "Pixhawk ADC3",
        "15": "Pixhawk ADC6/Pixhawk2 ADC",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND2_POS_X": {
      "Description": "X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND2_POS_Y": {
      "Description": "Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND2_POS_Z": {
      "Description": "Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND2_PWRRNG": {
      "Description": "This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",
      "DisplayName": "Powersave range",
      "Range": {
        "high": "32767",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND2_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "RangeFinder CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND2_RMETRIC": {
      "Description": "This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",
      "DisplayName": "Ratiometric",
      "User": "Standard",
      "Values": {
        "0": "No",
        "1": "Yes"
      }
    },
    "RNGFND2_SCALING": {
      "Description": "Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",
      "DisplayName": "Rangefinder scaling",
      "Increment": "0.001",
      "Units": "m/V",
      "User": "Standard"
    },
    "RNGFND2_SNR_MIN": {
      "Description": "RangeFinder Minimum signal strength (SNR) to accept distance",
      "DisplayName": "RangeFinder Minimum signal strength",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND2_STOP_PIN": {
      "Description": "Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Rangefinder stop pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "111": "PX4 FMU Relay1",
        "112": "PX4 FMU Relay2",
        "113": "PX4IO Relay1",
        "114": "PX4IO Relay2",
        "115": "PX4IO ACC1",
        "116": "PX4IO ACC2",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND2_TYPE": {
      "Description": "Type of connected rangefinder",
      "DisplayName": "Rangefinder type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Analog",
        "10": "MAVLink",
        "100": "SITL",
        "11": "USD1_Serial",
        "12": "LeddarOne",
        "13": "MaxbotixSerial",
        "14": "TeraRangerI2C",
        "15": "LidarLiteV3-I2C",
        "16": "VL53L0X or VL53L1X",
        "17": "NMEA",
        "18": "WASP-LRF",
        "19": "BenewakeTF02",
        "2": "MaxbotixI2C",
        "20": "BenewakeTFmini-Serial",
        "21": "LidarLightV3HP",
        "22": "PWM",
        "23": "BlueRoboticsPing",
        "24": "DroneCAN",
        "25": "BenewakeTFmini-I2C",
        "26": "LanbaoPSK-CM8JL65-CC5",
        "27": "BenewakeTF03",
        "28": "VL53L1X-ShortRange",
        "29": "LeddarVu8-Serial",
        "3": "LidarLite-I2C",
        "30": "HC-SR04",
        "31": "GYUS42v2",
        "32": "MSP",
        "33": "USD1_CAN",
        "34": "Benewake_CAN",
        "35": "TeraRangerSerial",
        "36": "Lua_Scripting",
        "37": "NoopLoop_TOFSense",
        "38": "NoopLoop_TOFSense_CAN",
        "39": "NRA24_CAN",
        "40": "NoopLoop_TOFSenseF_I2C",
        "41": "JRE_Serial",
        "42": "Ainstein_LR_D1",
        "43": "RDS02UF",
        "44": "HexsoonRadar",
        "45": "LightWare-GRF",
        "46": "BenewakeTFS20L-I2C",
        "47": "DTS6012M-Serial",
        "48": "LightWare-GRF-I2C",
        "5": "PWM",
        "6": "BBB-PRU",
        "7": "LightWareI2C",
        "8": "LightWareSerial",
        "9": "Bebop"
      }
    },
    "RNGFND2_WSP_AVG": {
      "Description": "Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",
      "DisplayName": "Multi-pulse averages",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND2_WSP_BAUD": {
      "Description": "Desired baud rate",
      "DisplayName": "Baud rate",
      "User": "Advanced",
      "Values": {
        "0": "Low Speed",
        "1": "High Speed"
      }
    },
    "RNGFND2_WSP_FRQ": {
      "Description": "Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",
      "DisplayName": "Frequency",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND2_WSP_MAVG": {
      "Description": "Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",
      "DisplayName": "Moving Average Range",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND2_WSP_MEDF": {
      "Description": "Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",
      "DisplayName": "Moving Median Filter",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND2_WSP_THR": {
      "Description": "Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",
      "DisplayName": "Sensitivity threshold",
      "Range": {
        "high": "255",
        "low": "-1"
      },
      "User": "Advanced"
    }
  },
  "RNGFND2_GRF_": {
    "RNGFND2_GRF_RATE": {
      "Description": "The update rate of the sensor in Hz.",
      "DisplayName": "LightWare GRF Update Rate",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RNGFND2_GRF_RET": {
      "Description": "Selects which single return to use.",
      "DisplayName": "LightWare GRF Distance Return Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "FirstRaw",
        "1": "FirstFiltered",
        "2": "LastRaw",
        "3": "LastFiltered"
      }
    },
    "RNGFND2_GRF_ST": {
      "Description": "Minimum acceptable return signal strength in dB. Returns weaker than this will be ignored. Set to 0 to disable filtering.",
      "DisplayName": "LightWare GRF Minimum Return Strength",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "RNGFND3_": {
    "RNGFND3_ADDR": {
      "Description": "This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses. For MAVLink rangefinders, this sets the DISTANCE_SENSOR message id to accept. A value of zero accepts any id.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "RNGFND3_FUNCTION": {
      "Description": "Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",
      "DisplayName": "Rangefinder function",
      "User": "Standard",
      "Values": {
        "0": "Linear",
        "1": "Inverted",
        "2": "Hyperbolic"
      }
    },
    "RNGFND3_GNDCLR": {
      "Description": "This parameter sets the expected range measurement that the range finder should return when the vehicle is on the ground.",
      "DisplayName": "Distance from the range finder to the ground",
      "Increment": "0.01",
      "Range": {
        "high": "1.5",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND3_MAX": {
      "Description": "Maximum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder maximum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND3_MIN": {
      "Description": "Minimum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder minimum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND3_OFFSET": {
      "Description": "Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",
      "DisplayName": "rangefinder offset",
      "Increment": "0.001",
      "Units": "V",
      "User": "Standard"
    },
    "RNGFND3_ORIENT": {
      "Description": "Orientation of rangefinder",
      "DisplayName": "Rangefinder orientation",
      "User": "Advanced",
      "Values": {
        "0": "Forward",
        "1": "Forward-Right",
        "2": "Right",
        "24": "Up",
        "25": "Down",
        "3": "Back-Right",
        "4": "Back",
        "5": "Back-Left",
        "6": "Left",
        "7": "Forward-Left"
      }
    },
    "RNGFND3_PIN": {
      "Description": "Analog or PWM input pin that rangefinder is connected to. Analog RSSI or Airspeed ports can be used for Analog inputs (some autopilots provide others also), Non-IOMCU Servo/MotorOutputs can be used for PWM input when configured as \"GPIOs\". Values for some autopilots are given as examples. Search wiki for \"Analog pins\" for analog pin or \"GPIOs\", if PWM input type, to determine pin number.",
      "DisplayName": "Rangefinder pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "103": "Pixhawk SBUS",
        "11": "Pixracer",
        "13": "Pixhawk ADC4",
        "14": "Pixhawk ADC3",
        "15": "Pixhawk ADC6/Pixhawk2 ADC",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND3_POS_X": {
      "Description": "X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND3_POS_Y": {
      "Description": "Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND3_POS_Z": {
      "Description": "Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND3_PWRRNG": {
      "Description": "This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",
      "DisplayName": "Powersave range",
      "Range": {
        "high": "32767",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND3_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "RangeFinder CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND3_RMETRIC": {
      "Description": "This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",
      "DisplayName": "Ratiometric",
      "User": "Standard",
      "Values": {
        "0": "No",
        "1": "Yes"
      }
    },
    "RNGFND3_SCALING": {
      "Description": "Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",
      "DisplayName": "Rangefinder scaling",
      "Increment": "0.001",
      "Units": "m/V",
      "User": "Standard"
    },
    "RNGFND3_SNR_MIN": {
      "Description": "RangeFinder Minimum signal strength (SNR) to accept distance",
      "DisplayName": "RangeFinder Minimum signal strength",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND3_STOP_PIN": {
      "Description": "Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Rangefinder stop pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "111": "PX4 FMU Relay1",
        "112": "PX4 FMU Relay2",
        "113": "PX4IO Relay1",
        "114": "PX4IO Relay2",
        "115": "PX4IO ACC1",
        "116": "PX4IO ACC2",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND3_TYPE": {
      "Description": "Type of connected rangefinder",
      "DisplayName": "Rangefinder type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Analog",
        "10": "MAVLink",
        "100": "SITL",
        "11": "USD1_Serial",
        "12": "LeddarOne",
        "13": "MaxbotixSerial",
        "14": "TeraRangerI2C",
        "15": "LidarLiteV3-I2C",
        "16": "VL53L0X or VL53L1X",
        "17": "NMEA",
        "18": "WASP-LRF",
        "19": "BenewakeTF02",
        "2": "MaxbotixI2C",
        "20": "BenewakeTFmini-Serial",
        "21": "LidarLightV3HP",
        "22": "PWM",
        "23": "BlueRoboticsPing",
        "24": "DroneCAN",
        "25": "BenewakeTFmini-I2C",
        "26": "LanbaoPSK-CM8JL65-CC5",
        "27": "BenewakeTF03",
        "28": "VL53L1X-ShortRange",
        "29": "LeddarVu8-Serial",
        "3": "LidarLite-I2C",
        "30": "HC-SR04",
        "31": "GYUS42v2",
        "32": "MSP",
        "33": "USD1_CAN",
        "34": "Benewake_CAN",
        "35": "TeraRangerSerial",
        "36": "Lua_Scripting",
        "37": "NoopLoop_TOFSense",
        "38": "NoopLoop_TOFSense_CAN",
        "39": "NRA24_CAN",
        "40": "NoopLoop_TOFSenseF_I2C",
        "41": "JRE_Serial",
        "42": "Ainstein_LR_D1",
        "43": "RDS02UF",
        "44": "HexsoonRadar",
        "45": "LightWare-GRF",
        "46": "BenewakeTFS20L-I2C",
        "47": "DTS6012M-Serial",
        "48": "LightWare-GRF-I2C",
        "5": "PWM",
        "6": "BBB-PRU",
        "7": "LightWareI2C",
        "8": "LightWareSerial",
        "9": "Bebop"
      }
    },
    "RNGFND3_WSP_AVG": {
      "Description": "Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",
      "DisplayName": "Multi-pulse averages",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND3_WSP_BAUD": {
      "Description": "Desired baud rate",
      "DisplayName": "Baud rate",
      "User": "Advanced",
      "Values": {
        "0": "Low Speed",
        "1": "High Speed"
      }
    },
    "RNGFND3_WSP_FRQ": {
      "Description": "Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",
      "DisplayName": "Frequency",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND3_WSP_MAVG": {
      "Description": "Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",
      "DisplayName": "Moving Average Range",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND3_WSP_MEDF": {
      "Description": "Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",
      "DisplayName": "Moving Median Filter",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND3_WSP_THR": {
      "Description": "Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",
      "DisplayName": "Sensitivity threshold",
      "Range": {
        "high": "255",
        "low": "-1"
      },
      "User": "Advanced"
    }
  },
  "RNGFND3_GRF_": {
    "RNGFND3_GRF_RATE": {
      "Description": "The update rate of the sensor in Hz.",
      "DisplayName": "LightWare GRF Update Rate",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RNGFND3_GRF_RET": {
      "Description": "Selects which single return to use.",
      "DisplayName": "LightWare GRF Distance Return Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "FirstRaw",
        "1": "FirstFiltered",
        "2": "LastRaw",
        "3": "LastFiltered"
      }
    },
    "RNGFND3_GRF_ST": {
      "Description": "Minimum acceptable return signal strength in dB. Returns weaker than this will be ignored. Set to 0 to disable filtering.",
      "DisplayName": "LightWare GRF Minimum Return Strength",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "RNGFND4_": {
    "RNGFND4_ADDR": {
      "Description": "This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses. For MAVLink rangefinders, this sets the DISTANCE_SENSOR message id to accept. A value of zero accepts any id.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "RNGFND4_FUNCTION": {
      "Description": "Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",
      "DisplayName": "Rangefinder function",
      "User": "Standard",
      "Values": {
        "0": "Linear",
        "1": "Inverted",
        "2": "Hyperbolic"
      }
    },
    "RNGFND4_GNDCLR": {
      "Description": "This parameter sets the expected range measurement that the range finder should return when the vehicle is on the ground.",
      "DisplayName": "Distance from the range finder to the ground",
      "Increment": "0.01",
      "Range": {
        "high": "1.5",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND4_MAX": {
      "Description": "Maximum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder maximum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND4_MIN": {
      "Description": "Minimum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder minimum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND4_OFFSET": {
      "Description": "Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",
      "DisplayName": "rangefinder offset",
      "Increment": "0.001",
      "Units": "V",
      "User": "Standard"
    },
    "RNGFND4_ORIENT": {
      "Description": "Orientation of rangefinder",
      "DisplayName": "Rangefinder orientation",
      "User": "Advanced",
      "Values": {
        "0": "Forward",
        "1": "Forward-Right",
        "2": "Right",
        "24": "Up",
        "25": "Down",
        "3": "Back-Right",
        "4": "Back",
        "5": "Back-Left",
        "6": "Left",
        "7": "Forward-Left"
      }
    },
    "RNGFND4_PIN": {
      "Description": "Analog or PWM input pin that rangefinder is connected to. Analog RSSI or Airspeed ports can be used for Analog inputs (some autopilots provide others also), Non-IOMCU Servo/MotorOutputs can be used for PWM input when configured as \"GPIOs\". Values for some autopilots are given as examples. Search wiki for \"Analog pins\" for analog pin or \"GPIOs\", if PWM input type, to determine pin number.",
      "DisplayName": "Rangefinder pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "103": "Pixhawk SBUS",
        "11": "Pixracer",
        "13": "Pixhawk ADC4",
        "14": "Pixhawk ADC3",
        "15": "Pixhawk ADC6/Pixhawk2 ADC",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND4_POS_X": {
      "Description": "X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND4_POS_Y": {
      "Description": "Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND4_POS_Z": {
      "Description": "Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND4_PWRRNG": {
      "Description": "This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",
      "DisplayName": "Powersave range",
      "Range": {
        "high": "32767",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND4_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "RangeFinder CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND4_RMETRIC": {
      "Description": "This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",
      "DisplayName": "Ratiometric",
      "User": "Standard",
      "Values": {
        "0": "No",
        "1": "Yes"
      }
    },
    "RNGFND4_SCALING": {
      "Description": "Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",
      "DisplayName": "Rangefinder scaling",
      "Increment": "0.001",
      "Units": "m/V",
      "User": "Standard"
    },
    "RNGFND4_SNR_MIN": {
      "Description": "RangeFinder Minimum signal strength (SNR) to accept distance",
      "DisplayName": "RangeFinder Minimum signal strength",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND4_STOP_PIN": {
      "Description": "Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Rangefinder stop pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "111": "PX4 FMU Relay1",
        "112": "PX4 FMU Relay2",
        "113": "PX4IO Relay1",
        "114": "PX4IO Relay2",
        "115": "PX4IO ACC1",
        "116": "PX4IO ACC2",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND4_TYPE": {
      "Description": "Type of connected rangefinder",
      "DisplayName": "Rangefinder type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Analog",
        "10": "MAVLink",
        "100": "SITL",
        "11": "USD1_Serial",
        "12": "LeddarOne",
        "13": "MaxbotixSerial",
        "14": "TeraRangerI2C",
        "15": "LidarLiteV3-I2C",
        "16": "VL53L0X or VL53L1X",
        "17": "NMEA",
        "18": "WASP-LRF",
        "19": "BenewakeTF02",
        "2": "MaxbotixI2C",
        "20": "BenewakeTFmini-Serial",
        "21": "LidarLightV3HP",
        "22": "PWM",
        "23": "BlueRoboticsPing",
        "24": "DroneCAN",
        "25": "BenewakeTFmini-I2C",
        "26": "LanbaoPSK-CM8JL65-CC5",
        "27": "BenewakeTF03",
        "28": "VL53L1X-ShortRange",
        "29": "LeddarVu8-Serial",
        "3": "LidarLite-I2C",
        "30": "HC-SR04",
        "31": "GYUS42v2",
        "32": "MSP",
        "33": "USD1_CAN",
        "34": "Benewake_CAN",
        "35": "TeraRangerSerial",
        "36": "Lua_Scripting",
        "37": "NoopLoop_TOFSense",
        "38": "NoopLoop_TOFSense_CAN",
        "39": "NRA24_CAN",
        "40": "NoopLoop_TOFSenseF_I2C",
        "41": "JRE_Serial",
        "42": "Ainstein_LR_D1",
        "43": "RDS02UF",
        "44": "HexsoonRadar",
        "45": "LightWare-GRF",
        "46": "BenewakeTFS20L-I2C",
        "47": "DTS6012M-Serial",
        "48": "LightWare-GRF-I2C",
        "5": "PWM",
        "6": "BBB-PRU",
        "7": "LightWareI2C",
        "8": "LightWareSerial",
        "9": "Bebop"
      }
    },
    "RNGFND4_WSP_AVG": {
      "Description": "Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",
      "DisplayName": "Multi-pulse averages",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND4_WSP_BAUD": {
      "Description": "Desired baud rate",
      "DisplayName": "Baud rate",
      "User": "Advanced",
      "Values": {
        "0": "Low Speed",
        "1": "High Speed"
      }
    },
    "RNGFND4_WSP_FRQ": {
      "Description": "Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",
      "DisplayName": "Frequency",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND4_WSP_MAVG": {
      "Description": "Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",
      "DisplayName": "Moving Average Range",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND4_WSP_MEDF": {
      "Description": "Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",
      "DisplayName": "Moving Median Filter",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND4_WSP_THR": {
      "Description": "Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",
      "DisplayName": "Sensitivity threshold",
      "Range": {
        "high": "255",
        "low": "-1"
      },
      "User": "Advanced"
    }
  },
  "RNGFND4_GRF_": {
    "RNGFND4_GRF_RATE": {
      "Description": "The update rate of the sensor in Hz.",
      "DisplayName": "LightWare GRF Update Rate",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RNGFND4_GRF_RET": {
      "Description": "Selects which single return to use.",
      "DisplayName": "LightWare GRF Distance Return Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "FirstRaw",
        "1": "FirstFiltered",
        "2": "LastRaw",
        "3": "LastFiltered"
      }
    },
    "RNGFND4_GRF_ST": {
      "Description": "Minimum acceptable return signal strength in dB. Returns weaker than this will be ignored. Set to 0 to disable filtering.",
      "DisplayName": "LightWare GRF Minimum Return Strength",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "RNGFND5_": {
    "RNGFND5_ADDR": {
      "Description": "This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses. For MAVLink rangefinders, this sets the DISTANCE_SENSOR message id to accept. A value of zero accepts any id.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "RNGFND5_FUNCTION": {
      "Description": "Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",
      "DisplayName": "Rangefinder function",
      "User": "Standard",
      "Values": {
        "0": "Linear",
        "1": "Inverted",
        "2": "Hyperbolic"
      }
    },
    "RNGFND5_GNDCLR": {
      "Description": "This parameter sets the expected range measurement that the range finder should return when the vehicle is on the ground.",
      "DisplayName": "Distance from the range finder to the ground",
      "Increment": "0.01",
      "Range": {
        "high": "1.5",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND5_MAX": {
      "Description": "Maximum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder maximum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND5_MIN": {
      "Description": "Minimum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder minimum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND5_OFFSET": {
      "Description": "Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",
      "DisplayName": "rangefinder offset",
      "Increment": "0.001",
      "Units": "V",
      "User": "Standard"
    },
    "RNGFND5_ORIENT": {
      "Description": "Orientation of rangefinder",
      "DisplayName": "Rangefinder orientation",
      "User": "Advanced",
      "Values": {
        "0": "Forward",
        "1": "Forward-Right",
        "2": "Right",
        "24": "Up",
        "25": "Down",
        "3": "Back-Right",
        "4": "Back",
        "5": "Back-Left",
        "6": "Left",
        "7": "Forward-Left"
      }
    },
    "RNGFND5_PIN": {
      "Description": "Analog or PWM input pin that rangefinder is connected to. Analog RSSI or Airspeed ports can be used for Analog inputs (some autopilots provide others also), Non-IOMCU Servo/MotorOutputs can be used for PWM input when configured as \"GPIOs\". Values for some autopilots are given as examples. Search wiki for \"Analog pins\" for analog pin or \"GPIOs\", if PWM input type, to determine pin number.",
      "DisplayName": "Rangefinder pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "103": "Pixhawk SBUS",
        "11": "Pixracer",
        "13": "Pixhawk ADC4",
        "14": "Pixhawk ADC3",
        "15": "Pixhawk ADC6/Pixhawk2 ADC",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND5_POS_X": {
      "Description": "X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND5_POS_Y": {
      "Description": "Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND5_POS_Z": {
      "Description": "Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND5_PWRRNG": {
      "Description": "This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",
      "DisplayName": "Powersave range",
      "Range": {
        "high": "32767",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND5_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "RangeFinder CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND5_RMETRIC": {
      "Description": "This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",
      "DisplayName": "Ratiometric",
      "User": "Standard",
      "Values": {
        "0": "No",
        "1": "Yes"
      }
    },
    "RNGFND5_SCALING": {
      "Description": "Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",
      "DisplayName": "Rangefinder scaling",
      "Increment": "0.001",
      "Units": "m/V",
      "User": "Standard"
    },
    "RNGFND5_SNR_MIN": {
      "Description": "RangeFinder Minimum signal strength (SNR) to accept distance",
      "DisplayName": "RangeFinder Minimum signal strength",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND5_STOP_PIN": {
      "Description": "Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Rangefinder stop pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "111": "PX4 FMU Relay1",
        "112": "PX4 FMU Relay2",
        "113": "PX4IO Relay1",
        "114": "PX4IO Relay2",
        "115": "PX4IO ACC1",
        "116": "PX4IO ACC2",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND5_TYPE": {
      "Description": "Type of connected rangefinder",
      "DisplayName": "Rangefinder type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Analog",
        "10": "MAVLink",
        "100": "SITL",
        "11": "USD1_Serial",
        "12": "LeddarOne",
        "13": "MaxbotixSerial",
        "14": "TeraRangerI2C",
        "15": "LidarLiteV3-I2C",
        "16": "VL53L0X or VL53L1X",
        "17": "NMEA",
        "18": "WASP-LRF",
        "19": "BenewakeTF02",
        "2": "MaxbotixI2C",
        "20": "BenewakeTFmini-Serial",
        "21": "LidarLightV3HP",
        "22": "PWM",
        "23": "BlueRoboticsPing",
        "24": "DroneCAN",
        "25": "BenewakeTFmini-I2C",
        "26": "LanbaoPSK-CM8JL65-CC5",
        "27": "BenewakeTF03",
        "28": "VL53L1X-ShortRange",
        "29": "LeddarVu8-Serial",
        "3": "LidarLite-I2C",
        "30": "HC-SR04",
        "31": "GYUS42v2",
        "32": "MSP",
        "33": "USD1_CAN",
        "34": "Benewake_CAN",
        "35": "TeraRangerSerial",
        "36": "Lua_Scripting",
        "37": "NoopLoop_TOFSense",
        "38": "NoopLoop_TOFSense_CAN",
        "39": "NRA24_CAN",
        "40": "NoopLoop_TOFSenseF_I2C",
        "41": "JRE_Serial",
        "42": "Ainstein_LR_D1",
        "43": "RDS02UF",
        "44": "HexsoonRadar",
        "45": "LightWare-GRF",
        "46": "BenewakeTFS20L-I2C",
        "47": "DTS6012M-Serial",
        "48": "LightWare-GRF-I2C",
        "5": "PWM",
        "6": "BBB-PRU",
        "7": "LightWareI2C",
        "8": "LightWareSerial",
        "9": "Bebop"
      }
    },
    "RNGFND5_WSP_AVG": {
      "Description": "Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",
      "DisplayName": "Multi-pulse averages",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND5_WSP_BAUD": {
      "Description": "Desired baud rate",
      "DisplayName": "Baud rate",
      "User": "Advanced",
      "Values": {
        "0": "Low Speed",
        "1": "High Speed"
      }
    },
    "RNGFND5_WSP_FRQ": {
      "Description": "Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",
      "DisplayName": "Frequency",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND5_WSP_MAVG": {
      "Description": "Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",
      "DisplayName": "Moving Average Range",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND5_WSP_MEDF": {
      "Description": "Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",
      "DisplayName": "Moving Median Filter",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND5_WSP_THR": {
      "Description": "Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",
      "DisplayName": "Sensitivity threshold",
      "Range": {
        "high": "255",
        "low": "-1"
      },
      "User": "Advanced"
    }
  },
  "RNGFND5_GRF_": {
    "RNGFND5_GRF_RATE": {
      "Description": "The update rate of the sensor in Hz.",
      "DisplayName": "LightWare GRF Update Rate",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RNGFND5_GRF_RET": {
      "Description": "Selects which single return to use.",
      "DisplayName": "LightWare GRF Distance Return Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "FirstRaw",
        "1": "FirstFiltered",
        "2": "LastRaw",
        "3": "LastFiltered"
      }
    },
    "RNGFND5_GRF_ST": {
      "Description": "Minimum acceptable return signal strength in dB. Returns weaker than this will be ignored. Set to 0 to disable filtering.",
      "DisplayName": "LightWare GRF Minimum Return Strength",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "RNGFND6_": {
    "RNGFND6_ADDR": {
      "Description": "This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses. For MAVLink rangefinders, this sets the DISTANCE_SENSOR message id to accept. A value of zero accepts any id.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "RNGFND6_FUNCTION": {
      "Description": "Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",
      "DisplayName": "Rangefinder function",
      "User": "Standard",
      "Values": {
        "0": "Linear",
        "1": "Inverted",
        "2": "Hyperbolic"
      }
    },
    "RNGFND6_GNDCLR": {
      "Description": "This parameter sets the expected range measurement that the range finder should return when the vehicle is on the ground.",
      "DisplayName": "Distance from the range finder to the ground",
      "Increment": "0.01",
      "Range": {
        "high": "1.5",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND6_MAX": {
      "Description": "Maximum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder maximum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND6_MIN": {
      "Description": "Minimum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder minimum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND6_OFFSET": {
      "Description": "Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",
      "DisplayName": "rangefinder offset",
      "Increment": "0.001",
      "Units": "V",
      "User": "Standard"
    },
    "RNGFND6_ORIENT": {
      "Description": "Orientation of rangefinder",
      "DisplayName": "Rangefinder orientation",
      "User": "Advanced",
      "Values": {
        "0": "Forward",
        "1": "Forward-Right",
        "2": "Right",
        "24": "Up",
        "25": "Down",
        "3": "Back-Right",
        "4": "Back",
        "5": "Back-Left",
        "6": "Left",
        "7": "Forward-Left"
      }
    },
    "RNGFND6_PIN": {
      "Description": "Analog or PWM input pin that rangefinder is connected to. Analog RSSI or Airspeed ports can be used for Analog inputs (some autopilots provide others also), Non-IOMCU Servo/MotorOutputs can be used for PWM input when configured as \"GPIOs\". Values for some autopilots are given as examples. Search wiki for \"Analog pins\" for analog pin or \"GPIOs\", if PWM input type, to determine pin number.",
      "DisplayName": "Rangefinder pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "103": "Pixhawk SBUS",
        "11": "Pixracer",
        "13": "Pixhawk ADC4",
        "14": "Pixhawk ADC3",
        "15": "Pixhawk ADC6/Pixhawk2 ADC",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND6_POS_X": {
      "Description": "X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND6_POS_Y": {
      "Description": "Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND6_POS_Z": {
      "Description": "Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND6_PWRRNG": {
      "Description": "This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",
      "DisplayName": "Powersave range",
      "Range": {
        "high": "32767",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND6_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "RangeFinder CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND6_RMETRIC": {
      "Description": "This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",
      "DisplayName": "Ratiometric",
      "User": "Standard",
      "Values": {
        "0": "No",
        "1": "Yes"
      }
    },
    "RNGFND6_SCALING": {
      "Description": "Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",
      "DisplayName": "Rangefinder scaling",
      "Increment": "0.001",
      "Units": "m/V",
      "User": "Standard"
    },
    "RNGFND6_SNR_MIN": {
      "Description": "RangeFinder Minimum signal strength (SNR) to accept distance",
      "DisplayName": "RangeFinder Minimum signal strength",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND6_STOP_PIN": {
      "Description": "Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Rangefinder stop pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "111": "PX4 FMU Relay1",
        "112": "PX4 FMU Relay2",
        "113": "PX4IO Relay1",
        "114": "PX4IO Relay2",
        "115": "PX4IO ACC1",
        "116": "PX4IO ACC2",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND6_TYPE": {
      "Description": "Type of connected rangefinder",
      "DisplayName": "Rangefinder type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Analog",
        "10": "MAVLink",
        "100": "SITL",
        "11": "USD1_Serial",
        "12": "LeddarOne",
        "13": "MaxbotixSerial",
        "14": "TeraRangerI2C",
        "15": "LidarLiteV3-I2C",
        "16": "VL53L0X or VL53L1X",
        "17": "NMEA",
        "18": "WASP-LRF",
        "19": "BenewakeTF02",
        "2": "MaxbotixI2C",
        "20": "BenewakeTFmini-Serial",
        "21": "LidarLightV3HP",
        "22": "PWM",
        "23": "BlueRoboticsPing",
        "24": "DroneCAN",
        "25": "BenewakeTFmini-I2C",
        "26": "LanbaoPSK-CM8JL65-CC5",
        "27": "BenewakeTF03",
        "28": "VL53L1X-ShortRange",
        "29": "LeddarVu8-Serial",
        "3": "LidarLite-I2C",
        "30": "HC-SR04",
        "31": "GYUS42v2",
        "32": "MSP",
        "33": "USD1_CAN",
        "34": "Benewake_CAN",
        "35": "TeraRangerSerial",
        "36": "Lua_Scripting",
        "37": "NoopLoop_TOFSense",
        "38": "NoopLoop_TOFSense_CAN",
        "39": "NRA24_CAN",
        "40": "NoopLoop_TOFSenseF_I2C",
        "41": "JRE_Serial",
        "42": "Ainstein_LR_D1",
        "43": "RDS02UF",
        "44": "HexsoonRadar",
        "45": "LightWare-GRF",
        "46": "BenewakeTFS20L-I2C",
        "47": "DTS6012M-Serial",
        "48": "LightWare-GRF-I2C",
        "5": "PWM",
        "6": "BBB-PRU",
        "7": "LightWareI2C",
        "8": "LightWareSerial",
        "9": "Bebop"
      }
    },
    "RNGFND6_WSP_AVG": {
      "Description": "Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",
      "DisplayName": "Multi-pulse averages",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND6_WSP_BAUD": {
      "Description": "Desired baud rate",
      "DisplayName": "Baud rate",
      "User": "Advanced",
      "Values": {
        "0": "Low Speed",
        "1": "High Speed"
      }
    },
    "RNGFND6_WSP_FRQ": {
      "Description": "Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",
      "DisplayName": "Frequency",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND6_WSP_MAVG": {
      "Description": "Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",
      "DisplayName": "Moving Average Range",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND6_WSP_MEDF": {
      "Description": "Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",
      "DisplayName": "Moving Median Filter",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND6_WSP_THR": {
      "Description": "Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",
      "DisplayName": "Sensitivity threshold",
      "Range": {
        "high": "255",
        "low": "-1"
      },
      "User": "Advanced"
    }
  },
  "RNGFND6_GRF_": {
    "RNGFND6_GRF_RATE": {
      "Description": "The update rate of the sensor in Hz.",
      "DisplayName": "LightWare GRF Update Rate",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RNGFND6_GRF_RET": {
      "Description": "Selects which single return to use.",
      "DisplayName": "LightWare GRF Distance Return Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "FirstRaw",
        "1": "FirstFiltered",
        "2": "LastRaw",
        "3": "LastFiltered"
      }
    },
    "RNGFND6_GRF_ST": {
      "Description": "Minimum acceptable return signal strength in dB. Returns weaker than this will be ignored. Set to 0 to disable filtering.",
      "DisplayName": "LightWare GRF Minimum Return Strength",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "RNGFND7_": {
    "RNGFND7_ADDR": {
      "Description": "This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses. For MAVLink rangefinders, this sets the DISTANCE_SENSOR message id to accept. A value of zero accepts any id.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "RNGFND7_FUNCTION": {
      "Description": "Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",
      "DisplayName": "Rangefinder function",
      "User": "Standard",
      "Values": {
        "0": "Linear",
        "1": "Inverted",
        "2": "Hyperbolic"
      }
    },
    "RNGFND7_GNDCLR": {
      "Description": "This parameter sets the expected range measurement that the range finder should return when the vehicle is on the ground.",
      "DisplayName": "Distance from the range finder to the ground",
      "Increment": "0.01",
      "Range": {
        "high": "1.5",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND7_MAX": {
      "Description": "Maximum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder maximum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND7_MIN": {
      "Description": "Minimum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder minimum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND7_OFFSET": {
      "Description": "Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",
      "DisplayName": "rangefinder offset",
      "Increment": "0.001",
      "Units": "V",
      "User": "Standard"
    },
    "RNGFND7_ORIENT": {
      "Description": "Orientation of rangefinder",
      "DisplayName": "Rangefinder orientation",
      "User": "Advanced",
      "Values": {
        "0": "Forward",
        "1": "Forward-Right",
        "2": "Right",
        "24": "Up",
        "25": "Down",
        "3": "Back-Right",
        "4": "Back",
        "5": "Back-Left",
        "6": "Left",
        "7": "Forward-Left"
      }
    },
    "RNGFND7_PIN": {
      "Description": "Analog or PWM input pin that rangefinder is connected to. Analog RSSI or Airspeed ports can be used for Analog inputs (some autopilots provide others also), Non-IOMCU Servo/MotorOutputs can be used for PWM input when configured as \"GPIOs\". Values for some autopilots are given as examples. Search wiki for \"Analog pins\" for analog pin or \"GPIOs\", if PWM input type, to determine pin number.",
      "DisplayName": "Rangefinder pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "103": "Pixhawk SBUS",
        "11": "Pixracer",
        "13": "Pixhawk ADC4",
        "14": "Pixhawk ADC3",
        "15": "Pixhawk ADC6/Pixhawk2 ADC",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND7_POS_X": {
      "Description": "X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND7_POS_Y": {
      "Description": "Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND7_POS_Z": {
      "Description": "Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND7_PWRRNG": {
      "Description": "This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",
      "DisplayName": "Powersave range",
      "Range": {
        "high": "32767",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND7_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "RangeFinder CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND7_RMETRIC": {
      "Description": "This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",
      "DisplayName": "Ratiometric",
      "User": "Standard",
      "Values": {
        "0": "No",
        "1": "Yes"
      }
    },
    "RNGFND7_SCALING": {
      "Description": "Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",
      "DisplayName": "Rangefinder scaling",
      "Increment": "0.001",
      "Units": "m/V",
      "User": "Standard"
    },
    "RNGFND7_SNR_MIN": {
      "Description": "RangeFinder Minimum signal strength (SNR) to accept distance",
      "DisplayName": "RangeFinder Minimum signal strength",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND7_STOP_PIN": {
      "Description": "Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Rangefinder stop pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "111": "PX4 FMU Relay1",
        "112": "PX4 FMU Relay2",
        "113": "PX4IO Relay1",
        "114": "PX4IO Relay2",
        "115": "PX4IO ACC1",
        "116": "PX4IO ACC2",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND7_TYPE": {
      "Description": "Type of connected rangefinder",
      "DisplayName": "Rangefinder type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Analog",
        "10": "MAVLink",
        "100": "SITL",
        "11": "USD1_Serial",
        "12": "LeddarOne",
        "13": "MaxbotixSerial",
        "14": "TeraRangerI2C",
        "15": "LidarLiteV3-I2C",
        "16": "VL53L0X or VL53L1X",
        "17": "NMEA",
        "18": "WASP-LRF",
        "19": "BenewakeTF02",
        "2": "MaxbotixI2C",
        "20": "BenewakeTFmini-Serial",
        "21": "LidarLightV3HP",
        "22": "PWM",
        "23": "BlueRoboticsPing",
        "24": "DroneCAN",
        "25": "BenewakeTFmini-I2C",
        "26": "LanbaoPSK-CM8JL65-CC5",
        "27": "BenewakeTF03",
        "28": "VL53L1X-ShortRange",
        "29": "LeddarVu8-Serial",
        "3": "LidarLite-I2C",
        "30": "HC-SR04",
        "31": "GYUS42v2",
        "32": "MSP",
        "33": "USD1_CAN",
        "34": "Benewake_CAN",
        "35": "TeraRangerSerial",
        "36": "Lua_Scripting",
        "37": "NoopLoop_TOFSense",
        "38": "NoopLoop_TOFSense_CAN",
        "39": "NRA24_CAN",
        "40": "NoopLoop_TOFSenseF_I2C",
        "41": "JRE_Serial",
        "42": "Ainstein_LR_D1",
        "43": "RDS02UF",
        "44": "HexsoonRadar",
        "45": "LightWare-GRF",
        "46": "BenewakeTFS20L-I2C",
        "47": "DTS6012M-Serial",
        "48": "LightWare-GRF-I2C",
        "5": "PWM",
        "6": "BBB-PRU",
        "7": "LightWareI2C",
        "8": "LightWareSerial",
        "9": "Bebop"
      }
    },
    "RNGFND7_WSP_AVG": {
      "Description": "Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",
      "DisplayName": "Multi-pulse averages",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND7_WSP_BAUD": {
      "Description": "Desired baud rate",
      "DisplayName": "Baud rate",
      "User": "Advanced",
      "Values": {
        "0": "Low Speed",
        "1": "High Speed"
      }
    },
    "RNGFND7_WSP_FRQ": {
      "Description": "Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",
      "DisplayName": "Frequency",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND7_WSP_MAVG": {
      "Description": "Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",
      "DisplayName": "Moving Average Range",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND7_WSP_MEDF": {
      "Description": "Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",
      "DisplayName": "Moving Median Filter",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND7_WSP_THR": {
      "Description": "Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",
      "DisplayName": "Sensitivity threshold",
      "Range": {
        "high": "255",
        "low": "-1"
      },
      "User": "Advanced"
    }
  },
  "RNGFND7_GRF_": {
    "RNGFND7_GRF_RATE": {
      "Description": "The update rate of the sensor in Hz.",
      "DisplayName": "LightWare GRF Update Rate",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RNGFND7_GRF_RET": {
      "Description": "Selects which single return to use.",
      "DisplayName": "LightWare GRF Distance Return Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "FirstRaw",
        "1": "FirstFiltered",
        "2": "LastRaw",
        "3": "LastFiltered"
      }
    },
    "RNGFND7_GRF_ST": {
      "Description": "Minimum acceptable return signal strength in dB. Returns weaker than this will be ignored. Set to 0 to disable filtering.",
      "DisplayName": "LightWare GRF Minimum Return Strength",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "RNGFND8_": {
    "RNGFND8_ADDR": {
      "Description": "This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses. For MAVLink rangefinders, this sets the DISTANCE_SENSOR message id to accept. A value of zero accepts any id.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "RNGFND8_FUNCTION": {
      "Description": "Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",
      "DisplayName": "Rangefinder function",
      "User": "Standard",
      "Values": {
        "0": "Linear",
        "1": "Inverted",
        "2": "Hyperbolic"
      }
    },
    "RNGFND8_GNDCLR": {
      "Description": "This parameter sets the expected range measurement that the range finder should return when the vehicle is on the ground.",
      "DisplayName": "Distance from the range finder to the ground",
      "Increment": "0.01",
      "Range": {
        "high": "1.5",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND8_MAX": {
      "Description": "Maximum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder maximum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND8_MIN": {
      "Description": "Minimum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder minimum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND8_OFFSET": {
      "Description": "Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",
      "DisplayName": "rangefinder offset",
      "Increment": "0.001",
      "Units": "V",
      "User": "Standard"
    },
    "RNGFND8_ORIENT": {
      "Description": "Orientation of rangefinder",
      "DisplayName": "Rangefinder orientation",
      "User": "Advanced",
      "Values": {
        "0": "Forward",
        "1": "Forward-Right",
        "2": "Right",
        "24": "Up",
        "25": "Down",
        "3": "Back-Right",
        "4": "Back",
        "5": "Back-Left",
        "6": "Left",
        "7": "Forward-Left"
      }
    },
    "RNGFND8_PIN": {
      "Description": "Analog or PWM input pin that rangefinder is connected to. Analog RSSI or Airspeed ports can be used for Analog inputs (some autopilots provide others also), Non-IOMCU Servo/MotorOutputs can be used for PWM input when configured as \"GPIOs\". Values for some autopilots are given as examples. Search wiki for \"Analog pins\" for analog pin or \"GPIOs\", if PWM input type, to determine pin number.",
      "DisplayName": "Rangefinder pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "103": "Pixhawk SBUS",
        "11": "Pixracer",
        "13": "Pixhawk ADC4",
        "14": "Pixhawk ADC3",
        "15": "Pixhawk ADC6/Pixhawk2 ADC",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND8_POS_X": {
      "Description": "X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND8_POS_Y": {
      "Description": "Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND8_POS_Z": {
      "Description": "Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND8_PWRRNG": {
      "Description": "This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",
      "DisplayName": "Powersave range",
      "Range": {
        "high": "32767",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND8_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "RangeFinder CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND8_RMETRIC": {
      "Description": "This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",
      "DisplayName": "Ratiometric",
      "User": "Standard",
      "Values": {
        "0": "No",
        "1": "Yes"
      }
    },
    "RNGFND8_SCALING": {
      "Description": "Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",
      "DisplayName": "Rangefinder scaling",
      "Increment": "0.001",
      "Units": "m/V",
      "User": "Standard"
    },
    "RNGFND8_SNR_MIN": {
      "Description": "RangeFinder Minimum signal strength (SNR) to accept distance",
      "DisplayName": "RangeFinder Minimum signal strength",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND8_STOP_PIN": {
      "Description": "Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Rangefinder stop pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "111": "PX4 FMU Relay1",
        "112": "PX4 FMU Relay2",
        "113": "PX4IO Relay1",
        "114": "PX4IO Relay2",
        "115": "PX4IO ACC1",
        "116": "PX4IO ACC2",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND8_TYPE": {
      "Description": "Type of connected rangefinder",
      "DisplayName": "Rangefinder type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Analog",
        "10": "MAVLink",
        "100": "SITL",
        "11": "USD1_Serial",
        "12": "LeddarOne",
        "13": "MaxbotixSerial",
        "14": "TeraRangerI2C",
        "15": "LidarLiteV3-I2C",
        "16": "VL53L0X or VL53L1X",
        "17": "NMEA",
        "18": "WASP-LRF",
        "19": "BenewakeTF02",
        "2": "MaxbotixI2C",
        "20": "BenewakeTFmini-Serial",
        "21": "LidarLightV3HP",
        "22": "PWM",
        "23": "BlueRoboticsPing",
        "24": "DroneCAN",
        "25": "BenewakeTFmini-I2C",
        "26": "LanbaoPSK-CM8JL65-CC5",
        "27": "BenewakeTF03",
        "28": "VL53L1X-ShortRange",
        "29": "LeddarVu8-Serial",
        "3": "LidarLite-I2C",
        "30": "HC-SR04",
        "31": "GYUS42v2",
        "32": "MSP",
        "33": "USD1_CAN",
        "34": "Benewake_CAN",
        "35": "TeraRangerSerial",
        "36": "Lua_Scripting",
        "37": "NoopLoop_TOFSense",
        "38": "NoopLoop_TOFSense_CAN",
        "39": "NRA24_CAN",
        "40": "NoopLoop_TOFSenseF_I2C",
        "41": "JRE_Serial",
        "42": "Ainstein_LR_D1",
        "43": "RDS02UF",
        "44": "HexsoonRadar",
        "45": "LightWare-GRF",
        "46": "BenewakeTFS20L-I2C",
        "47": "DTS6012M-Serial",
        "48": "LightWare-GRF-I2C",
        "5": "PWM",
        "6": "BBB-PRU",
        "7": "LightWareI2C",
        "8": "LightWareSerial",
        "9": "Bebop"
      }
    },
    "RNGFND8_WSP_AVG": {
      "Description": "Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",
      "DisplayName": "Multi-pulse averages",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND8_WSP_BAUD": {
      "Description": "Desired baud rate",
      "DisplayName": "Baud rate",
      "User": "Advanced",
      "Values": {
        "0": "Low Speed",
        "1": "High Speed"
      }
    },
    "RNGFND8_WSP_FRQ": {
      "Description": "Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",
      "DisplayName": "Frequency",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND8_WSP_MAVG": {
      "Description": "Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",
      "DisplayName": "Moving Average Range",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND8_WSP_MEDF": {
      "Description": "Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",
      "DisplayName": "Moving Median Filter",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND8_WSP_THR": {
      "Description": "Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",
      "DisplayName": "Sensitivity threshold",
      "Range": {
        "high": "255",
        "low": "-1"
      },
      "User": "Advanced"
    }
  },
  "RNGFND8_GRF_": {
    "RNGFND8_GRF_RATE": {
      "Description": "The update rate of the sensor in Hz.",
      "DisplayName": "LightWare GRF Update Rate",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RNGFND8_GRF_RET": {
      "Description": "Selects which single return to use.",
      "DisplayName": "LightWare GRF Distance Return Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "FirstRaw",
        "1": "FirstFiltered",
        "2": "LastRaw",
        "3": "LastFiltered"
      }
    },
    "RNGFND8_GRF_ST": {
      "Description": "Minimum acceptable return signal strength in dB. Returns weaker than this will be ignored. Set to 0 to disable filtering.",
      "DisplayName": "LightWare GRF Minimum Return Strength",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "RNGFND9_": {
    "RNGFND9_ADDR": {
      "Description": "This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses. For MAVLink rangefinders, this sets the DISTANCE_SENSOR message id to accept. A value of zero accepts any id.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "RNGFND9_FUNCTION": {
      "Description": "Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",
      "DisplayName": "Rangefinder function",
      "User": "Standard",
      "Values": {
        "0": "Linear",
        "1": "Inverted",
        "2": "Hyperbolic"
      }
    },
    "RNGFND9_GNDCLR": {
      "Description": "This parameter sets the expected range measurement that the range finder should return when the vehicle is on the ground.",
      "DisplayName": "Distance from the range finder to the ground",
      "Increment": "0.01",
      "Range": {
        "high": "1.5",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND9_MAX": {
      "Description": "Maximum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder maximum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND9_MIN": {
      "Description": "Minimum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder minimum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND9_OFFSET": {
      "Description": "Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",
      "DisplayName": "rangefinder offset",
      "Increment": "0.001",
      "Units": "V",
      "User": "Standard"
    },
    "RNGFND9_ORIENT": {
      "Description": "Orientation of rangefinder",
      "DisplayName": "Rangefinder orientation",
      "User": "Advanced",
      "Values": {
        "0": "Forward",
        "1": "Forward-Right",
        "2": "Right",
        "24": "Up",
        "25": "Down",
        "3": "Back-Right",
        "4": "Back",
        "5": "Back-Left",
        "6": "Left",
        "7": "Forward-Left"
      }
    },
    "RNGFND9_PIN": {
      "Description": "Analog or PWM input pin that rangefinder is connected to. Analog RSSI or Airspeed ports can be used for Analog inputs (some autopilots provide others also), Non-IOMCU Servo/MotorOutputs can be used for PWM input when configured as \"GPIOs\". Values for some autopilots are given as examples. Search wiki for \"Analog pins\" for analog pin or \"GPIOs\", if PWM input type, to determine pin number.",
      "DisplayName": "Rangefinder pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "103": "Pixhawk SBUS",
        "11": "Pixracer",
        "13": "Pixhawk ADC4",
        "14": "Pixhawk ADC3",
        "15": "Pixhawk ADC6/Pixhawk2 ADC",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND9_POS_X": {
      "Description": "X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND9_POS_Y": {
      "Description": "Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND9_POS_Z": {
      "Description": "Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFND9_PWRRNG": {
      "Description": "This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",
      "DisplayName": "Powersave range",
      "Range": {
        "high": "32767",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFND9_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "RangeFinder CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND9_RMETRIC": {
      "Description": "This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",
      "DisplayName": "Ratiometric",
      "User": "Standard",
      "Values": {
        "0": "No",
        "1": "Yes"
      }
    },
    "RNGFND9_SCALING": {
      "Description": "Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",
      "DisplayName": "Rangefinder scaling",
      "Increment": "0.001",
      "Units": "m/V",
      "User": "Standard"
    },
    "RNGFND9_SNR_MIN": {
      "Description": "RangeFinder Minimum signal strength (SNR) to accept distance",
      "DisplayName": "RangeFinder Minimum signal strength",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND9_STOP_PIN": {
      "Description": "Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Rangefinder stop pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "111": "PX4 FMU Relay1",
        "112": "PX4 FMU Relay2",
        "113": "PX4IO Relay1",
        "114": "PX4IO Relay2",
        "115": "PX4IO ACC1",
        "116": "PX4IO ACC2",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFND9_TYPE": {
      "Description": "Type of connected rangefinder",
      "DisplayName": "Rangefinder type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Analog",
        "10": "MAVLink",
        "100": "SITL",
        "11": "USD1_Serial",
        "12": "LeddarOne",
        "13": "MaxbotixSerial",
        "14": "TeraRangerI2C",
        "15": "LidarLiteV3-I2C",
        "16": "VL53L0X or VL53L1X",
        "17": "NMEA",
        "18": "WASP-LRF",
        "19": "BenewakeTF02",
        "2": "MaxbotixI2C",
        "20": "BenewakeTFmini-Serial",
        "21": "LidarLightV3HP",
        "22": "PWM",
        "23": "BlueRoboticsPing",
        "24": "DroneCAN",
        "25": "BenewakeTFmini-I2C",
        "26": "LanbaoPSK-CM8JL65-CC5",
        "27": "BenewakeTF03",
        "28": "VL53L1X-ShortRange",
        "29": "LeddarVu8-Serial",
        "3": "LidarLite-I2C",
        "30": "HC-SR04",
        "31": "GYUS42v2",
        "32": "MSP",
        "33": "USD1_CAN",
        "34": "Benewake_CAN",
        "35": "TeraRangerSerial",
        "36": "Lua_Scripting",
        "37": "NoopLoop_TOFSense",
        "38": "NoopLoop_TOFSense_CAN",
        "39": "NRA24_CAN",
        "40": "NoopLoop_TOFSenseF_I2C",
        "41": "JRE_Serial",
        "42": "Ainstein_LR_D1",
        "43": "RDS02UF",
        "44": "HexsoonRadar",
        "45": "LightWare-GRF",
        "46": "BenewakeTFS20L-I2C",
        "47": "DTS6012M-Serial",
        "48": "LightWare-GRF-I2C",
        "5": "PWM",
        "6": "BBB-PRU",
        "7": "LightWareI2C",
        "8": "LightWareSerial",
        "9": "Bebop"
      }
    },
    "RNGFND9_WSP_AVG": {
      "Description": "Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",
      "DisplayName": "Multi-pulse averages",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND9_WSP_BAUD": {
      "Description": "Desired baud rate",
      "DisplayName": "Baud rate",
      "User": "Advanced",
      "Values": {
        "0": "Low Speed",
        "1": "High Speed"
      }
    },
    "RNGFND9_WSP_FRQ": {
      "Description": "Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",
      "DisplayName": "Frequency",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND9_WSP_MAVG": {
      "Description": "Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",
      "DisplayName": "Moving Average Range",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND9_WSP_MEDF": {
      "Description": "Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",
      "DisplayName": "Moving Median Filter",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFND9_WSP_THR": {
      "Description": "Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",
      "DisplayName": "Sensitivity threshold",
      "Range": {
        "high": "255",
        "low": "-1"
      },
      "User": "Advanced"
    }
  },
  "RNGFND9_GRF_": {
    "RNGFND9_GRF_RATE": {
      "Description": "The update rate of the sensor in Hz.",
      "DisplayName": "LightWare GRF Update Rate",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RNGFND9_GRF_RET": {
      "Description": "Selects which single return to use.",
      "DisplayName": "LightWare GRF Distance Return Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "FirstRaw",
        "1": "FirstFiltered",
        "2": "LastRaw",
        "3": "LastFiltered"
      }
    },
    "RNGFND9_GRF_ST": {
      "Description": "Minimum acceptable return signal strength in dB. Returns weaker than this will be ignored. Set to 0 to disable filtering.",
      "DisplayName": "LightWare GRF Minimum Return Strength",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "RNGFNDA_": {
    "RNGFNDA_ADDR": {
      "Description": "This sets the bus address of the sensor, where applicable. Used for the I2C and DroneCAN sensors to allow for multiple sensors on different addresses. For MAVLink rangefinders, this sets the DISTANCE_SENSOR message id to accept. A value of zero accepts any id.",
      "DisplayName": "Bus address of sensor",
      "Increment": "1",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "User": "Standard"
    },
    "RNGFNDA_FUNCTION": {
      "Description": "Control over what function is used to calculate distance. For a linear function, the distance is (voltage-offset)*scaling. For a inverted function the distance is (offset-voltage)*scaling. For a hyperbolic function the distance is scaling/(voltage-offset). The functions return the distance in meters.",
      "DisplayName": "Rangefinder function",
      "User": "Standard",
      "Values": {
        "0": "Linear",
        "1": "Inverted",
        "2": "Hyperbolic"
      }
    },
    "RNGFNDA_GNDCLR": {
      "Description": "This parameter sets the expected range measurement that the range finder should return when the vehicle is on the ground.",
      "DisplayName": "Distance from the range finder to the ground",
      "Increment": "0.01",
      "Range": {
        "high": "1.5",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFNDA_MAX": {
      "Description": "Maximum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder maximum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFNDA_MIN": {
      "Description": "Minimum distance in metres that rangefinder can reliably read",
      "DisplayName": "Rangefinder minimum distance",
      "Increment": "0.01",
      "Units": "m",
      "User": "Standard"
    },
    "RNGFNDA_OFFSET": {
      "Description": "Offset in volts for zero distance for analog rangefinders. Offset added to distance in centimeters for PWM lidars",
      "DisplayName": "rangefinder offset",
      "Increment": "0.001",
      "Units": "V",
      "User": "Standard"
    },
    "RNGFNDA_ORIENT": {
      "Description": "Orientation of rangefinder",
      "DisplayName": "Rangefinder orientation",
      "User": "Advanced",
      "Values": {
        "0": "Forward",
        "1": "Forward-Right",
        "2": "Right",
        "24": "Up",
        "25": "Down",
        "3": "Back-Right",
        "4": "Back",
        "5": "Back-Left",
        "6": "Left",
        "7": "Forward-Left"
      }
    },
    "RNGFNDA_PIN": {
      "Description": "Analog or PWM input pin that rangefinder is connected to. Analog RSSI or Airspeed ports can be used for Analog inputs (some autopilots provide others also), Non-IOMCU Servo/MotorOutputs can be used for PWM input when configured as \"GPIOs\". Values for some autopilots are given as examples. Search wiki for \"Analog pins\" for analog pin or \"GPIOs\", if PWM input type, to determine pin number.",
      "DisplayName": "Rangefinder pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "103": "Pixhawk SBUS",
        "11": "Pixracer",
        "13": "Pixhawk ADC4",
        "14": "Pixhawk ADC3",
        "15": "Pixhawk ADC6/Pixhawk2 ADC",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFNDA_POS_X": {
      "Description": "X position of the rangefinder in body frame. Positive X is forward of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFNDA_POS_Y": {
      "Description": "Y position of the rangefinder in body frame. Positive Y is to the right of the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFNDA_POS_Z": {
      "Description": "Z position of the rangefinder in body frame. Positive Z is down from the origin. Use the zero range datum point if supplied.",
      "DisplayName": "Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "RNGFNDA_PWRRNG": {
      "Description": "This parameter sets the estimated terrain distance in meters above which the sensor will be put into a power saving mode (if available). A value of zero means power saving is not enabled",
      "DisplayName": "Powersave range",
      "Range": {
        "high": "32767",
        "low": "0"
      },
      "Units": "m",
      "User": "Standard"
    },
    "RNGFNDA_RECV_ID": {
      "Description": "The receive ID of the CAN frames. A value of zero means all IDs are accepted.",
      "DisplayName": "RangeFinder CAN receive ID",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFNDA_RMETRIC": {
      "Description": "This parameter sets whether an analog rangefinder is ratiometric. Most analog rangefinders are ratiometric, meaning that their output voltage is influenced by the supply voltage. Some analog rangefinders (such as the SF/02) have their own internal voltage regulators so they are not ratiometric.",
      "DisplayName": "Ratiometric",
      "User": "Standard",
      "Values": {
        "0": "No",
        "1": "Yes"
      }
    },
    "RNGFNDA_SCALING": {
      "Description": "Scaling factor between rangefinder reading and distance. For the linear and inverted functions this is in meters per volt. For the hyperbolic function the units are meterVolts. For Maxbotix serial sonar this is unit conversion to meters.",
      "DisplayName": "Rangefinder scaling",
      "Increment": "0.001",
      "Units": "m/V",
      "User": "Standard"
    },
    "RNGFNDA_SNR_MIN": {
      "Description": "RangeFinder Minimum signal strength (SNR) to accept distance",
      "DisplayName": "RangeFinder Minimum signal strength",
      "Range": {
        "high": "65535",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFNDA_STOP_PIN": {
      "Description": "Digital pin that enables/disables rangefinder measurement for the pwm rangefinder. A value of -1 means no pin. If this is set, then the pin is set to 1 to enable the rangefinder and set to 0 to disable it. This is used to enable powersaving when out of range. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Rangefinder stop pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Not Used",
        "111": "PX4 FMU Relay1",
        "112": "PX4 FMU Relay2",
        "113": "PX4IO Relay1",
        "114": "PX4IO Relay2",
        "115": "PX4IO ACC1",
        "116": "PX4IO ACC2",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RNGFNDA_TYPE": {
      "Description": "Type of connected rangefinder",
      "DisplayName": "Rangefinder type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Analog",
        "10": "MAVLink",
        "100": "SITL",
        "11": "USD1_Serial",
        "12": "LeddarOne",
        "13": "MaxbotixSerial",
        "14": "TeraRangerI2C",
        "15": "LidarLiteV3-I2C",
        "16": "VL53L0X or VL53L1X",
        "17": "NMEA",
        "18": "WASP-LRF",
        "19": "BenewakeTF02",
        "2": "MaxbotixI2C",
        "20": "BenewakeTFmini-Serial",
        "21": "LidarLightV3HP",
        "22": "PWM",
        "23": "BlueRoboticsPing",
        "24": "DroneCAN",
        "25": "BenewakeTFmini-I2C",
        "26": "LanbaoPSK-CM8JL65-CC5",
        "27": "BenewakeTF03",
        "28": "VL53L1X-ShortRange",
        "29": "LeddarVu8-Serial",
        "3": "LidarLite-I2C",
        "30": "HC-SR04",
        "31": "GYUS42v2",
        "32": "MSP",
        "33": "USD1_CAN",
        "34": "Benewake_CAN",
        "35": "TeraRangerSerial",
        "36": "Lua_Scripting",
        "37": "NoopLoop_TOFSense",
        "38": "NoopLoop_TOFSense_CAN",
        "39": "NRA24_CAN",
        "40": "NoopLoop_TOFSenseF_I2C",
        "41": "JRE_Serial",
        "42": "Ainstein_LR_D1",
        "43": "RDS02UF",
        "44": "HexsoonRadar",
        "45": "LightWare-GRF",
        "46": "BenewakeTFS20L-I2C",
        "47": "DTS6012M-Serial",
        "48": "LightWare-GRF-I2C",
        "5": "PWM",
        "6": "BBB-PRU",
        "7": "LightWareI2C",
        "8": "LightWareSerial",
        "9": "Bebop"
      }
    },
    "RNGFNDA_WSP_AVG": {
      "Description": "Sets the number of pulses to be used in multi-pulse averaging mode. In this mode, a sequence of rapid fire ranges are taken and then averaged to improve the accuracy of the measurement",
      "DisplayName": "Multi-pulse averages",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFNDA_WSP_BAUD": {
      "Description": "Desired baud rate",
      "DisplayName": "Baud rate",
      "User": "Advanced",
      "Values": {
        "0": "Low Speed",
        "1": "High Speed"
      }
    },
    "RNGFNDA_WSP_FRQ": {
      "Description": "Sets the repetition frequency of the ranging operation in Hertz. Upon entering the desired frequency the system will calculate the nearest frequency that it can handle according to the resolution of internal timers.",
      "DisplayName": "Frequency",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFNDA_WSP_MAVG": {
      "Description": "Sets the number of historic range results to use for calculating the current range result. When MAVG is greater than 1, the current range result will be the current measured value averaged with the N-1 previous results",
      "DisplayName": "Moving Average Range",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFNDA_WSP_MEDF": {
      "Description": "Sets the window size for the real-time median filter. When MEDF is greater than 0 the median filter is active",
      "DisplayName": "Moving Median Filter",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RNGFNDA_WSP_THR": {
      "Description": "Sets the system sensitivity. Larger values of THR represent higher sensitivity. The system may limit the maximum value of THR to prevent excessive false alarm rates based on settings made at the factory. Set to -1 for automatic threshold adjustments",
      "DisplayName": "Sensitivity threshold",
      "Range": {
        "high": "255",
        "low": "-1"
      },
      "User": "Advanced"
    }
  },
  "RNGFNDA_GRF_": {
    "RNGFNDA_GRF_RATE": {
      "Description": "The update rate of the sensor in Hz.",
      "DisplayName": "LightWare GRF Update Rate",
      "Range": {
        "high": "50",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "RNGFNDA_GRF_RET": {
      "Description": "Selects which single return to use.",
      "DisplayName": "LightWare GRF Distance Return Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "FirstRaw",
        "1": "FirstFiltered",
        "2": "LastRaw",
        "3": "LastFiltered"
      }
    },
    "RNGFNDA_GRF_ST": {
      "Description": "Minimum acceptable return signal strength in dB. Returns weaker than this will be ignored. Set to 0 to disable filtering.",
      "DisplayName": "LightWare GRF Minimum Return Strength",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    }
  },
  "RPM1_": {
    "RPM1_DC_ID": {
      "Description": "DroneCAN sensor ID to assign to this backend",
      "DisplayName": "DroneCAN Sensor ID",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "-1"
      },
      "User": "Advanced"
    },
    "RPM1_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write RPM to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write RPM to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RPM1_ESC_MASK": {
      "Bitmask": {
        "0": "Channel1",
        "1": "Channel2",
        "10": "Channel11",
        "11": "Channel12",
        "12": "Channel13",
        "13": "Channel14",
        "14": "Channel15",
        "15": "Channel16",
        "2": "Channel3",
        "3": "Channel4",
        "4": "Channel5",
        "5": "Channel6",
        "6": "Channel7",
        "7": "Channel8",
        "8": "Channel9",
        "9": "Channel10"
      },
      "Description": "Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",
      "DisplayName": "Bitmask of ESC telemetry channels to average",
      "User": "Advanced"
    },
    "RPM1_MAX": {
      "Description": "Maximum RPM to report. Only used on type = GPIO.",
      "DisplayName": "Maximum RPM",
      "Increment": "1",
      "User": "Standard"
    },
    "RPM1_MIN": {
      "Description": "Minimum RPM to report. Only used on type = GPIO.",
      "DisplayName": "Minimum RPM",
      "Increment": "1",
      "User": "Standard"
    },
    "RPM1_MIN_QUAL": {
      "Description": "Minimum data quality to be used",
      "DisplayName": "Minimum Quality",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "RPM1_PIN": {
      "Description": "Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Input pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RPM1_SCALING": {
      "Description": "Scaling factor between sensor reading and RPM.",
      "DisplayName": "RPM scaling",
      "Increment": "0.001",
      "User": "Standard"
    },
    "RPM1_TYPE": {
      "Description": "What type of RPM sensor is connected",
      "DisplayName": "RPM type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Not Used",
        "2": "GPIO",
        "3": "EFI",
        "4": "Harmonic Notch",
        "5": "ESC Telemetry Motors Bitmask",
        "6": "Generator",
        "7": "DroneCAN"
      }
    }
  },
  "RPM2_": {
    "RPM2_DC_ID": {
      "Description": "DroneCAN sensor ID to assign to this backend",
      "DisplayName": "DroneCAN Sensor ID",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "-1"
      },
      "User": "Advanced"
    },
    "RPM2_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write RPM to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write RPM to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RPM2_ESC_MASK": {
      "Bitmask": {
        "0": "Channel1",
        "1": "Channel2",
        "10": "Channel11",
        "11": "Channel12",
        "12": "Channel13",
        "13": "Channel14",
        "14": "Channel15",
        "15": "Channel16",
        "2": "Channel3",
        "3": "Channel4",
        "4": "Channel5",
        "5": "Channel6",
        "6": "Channel7",
        "7": "Channel8",
        "8": "Channel9",
        "9": "Channel10"
      },
      "Description": "Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",
      "DisplayName": "Bitmask of ESC telemetry channels to average",
      "User": "Advanced"
    },
    "RPM2_MAX": {
      "Description": "Maximum RPM to report. Only used on type = GPIO.",
      "DisplayName": "Maximum RPM",
      "Increment": "1",
      "User": "Standard"
    },
    "RPM2_MIN": {
      "Description": "Minimum RPM to report. Only used on type = GPIO.",
      "DisplayName": "Minimum RPM",
      "Increment": "1",
      "User": "Standard"
    },
    "RPM2_MIN_QUAL": {
      "Description": "Minimum data quality to be used",
      "DisplayName": "Minimum Quality",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "RPM2_PIN": {
      "Description": "Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Input pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RPM2_SCALING": {
      "Description": "Scaling factor between sensor reading and RPM.",
      "DisplayName": "RPM scaling",
      "Increment": "0.001",
      "User": "Standard"
    },
    "RPM2_TYPE": {
      "Description": "What type of RPM sensor is connected",
      "DisplayName": "RPM type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Not Used",
        "2": "GPIO",
        "3": "EFI",
        "4": "Harmonic Notch",
        "5": "ESC Telemetry Motors Bitmask",
        "6": "Generator",
        "7": "DroneCAN"
      }
    }
  },
  "RPM3_": {
    "RPM3_DC_ID": {
      "Description": "DroneCAN sensor ID to assign to this backend",
      "DisplayName": "DroneCAN Sensor ID",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "-1"
      },
      "User": "Advanced"
    },
    "RPM3_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write RPM to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write RPM to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RPM3_ESC_MASK": {
      "Bitmask": {
        "0": "Channel1",
        "1": "Channel2",
        "10": "Channel11",
        "11": "Channel12",
        "12": "Channel13",
        "13": "Channel14",
        "14": "Channel15",
        "15": "Channel16",
        "2": "Channel3",
        "3": "Channel4",
        "4": "Channel5",
        "5": "Channel6",
        "6": "Channel7",
        "7": "Channel8",
        "8": "Channel9",
        "9": "Channel10"
      },
      "Description": "Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",
      "DisplayName": "Bitmask of ESC telemetry channels to average",
      "User": "Advanced"
    },
    "RPM3_MAX": {
      "Description": "Maximum RPM to report. Only used on type = GPIO.",
      "DisplayName": "Maximum RPM",
      "Increment": "1",
      "User": "Standard"
    },
    "RPM3_MIN": {
      "Description": "Minimum RPM to report. Only used on type = GPIO.",
      "DisplayName": "Minimum RPM",
      "Increment": "1",
      "User": "Standard"
    },
    "RPM3_MIN_QUAL": {
      "Description": "Minimum data quality to be used",
      "DisplayName": "Minimum Quality",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "RPM3_PIN": {
      "Description": "Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Input pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RPM3_SCALING": {
      "Description": "Scaling factor between sensor reading and RPM.",
      "DisplayName": "RPM scaling",
      "Increment": "0.001",
      "User": "Standard"
    },
    "RPM3_TYPE": {
      "Description": "What type of RPM sensor is connected",
      "DisplayName": "RPM type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Not Used",
        "2": "GPIO",
        "3": "EFI",
        "4": "Harmonic Notch",
        "5": "ESC Telemetry Motors Bitmask",
        "6": "Generator",
        "7": "DroneCAN"
      }
    }
  },
  "RPM4_": {
    "RPM4_DC_ID": {
      "Description": "DroneCAN sensor ID to assign to this backend",
      "DisplayName": "DroneCAN Sensor ID",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "-1"
      },
      "User": "Advanced"
    },
    "RPM4_ESC_INDEX": {
      "Description": "ESC Telemetry Index to write RPM to. Use 0 to disable.",
      "DisplayName": "ESC Telemetry Index to write RPM to",
      "Increment": "1",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "User": "Advanced"
    },
    "RPM4_ESC_MASK": {
      "Bitmask": {
        "0": "Channel1",
        "1": "Channel2",
        "10": "Channel11",
        "11": "Channel12",
        "12": "Channel13",
        "13": "Channel14",
        "14": "Channel15",
        "15": "Channel16",
        "2": "Channel3",
        "3": "Channel4",
        "4": "Channel5",
        "5": "Channel6",
        "6": "Channel7",
        "7": "Channel8",
        "8": "Channel9",
        "9": "Channel10"
      },
      "Description": "Mask of channels which support ESC rpm telemetry. RPM telemetry of the selected channels will be averaged",
      "DisplayName": "Bitmask of ESC telemetry channels to average",
      "User": "Advanced"
    },
    "RPM4_MAX": {
      "Description": "Maximum RPM to report. Only used on type = GPIO.",
      "DisplayName": "Maximum RPM",
      "Increment": "1",
      "User": "Standard"
    },
    "RPM4_MIN": {
      "Description": "Minimum RPM to report. Only used on type = GPIO.",
      "DisplayName": "Minimum RPM",
      "Increment": "1",
      "User": "Standard"
    },
    "RPM4_MIN_QUAL": {
      "Description": "Minimum data quality to be used",
      "DisplayName": "Minimum Quality",
      "Increment": "0.1",
      "User": "Advanced"
    },
    "RPM4_PIN": {
      "Description": "Which digital GPIO pin to use. Only used on type = GPIO. Some common values are given, but see the Wiki's \"GPIOs\" page for how to determine the pin number for a given autopilot.",
      "DisplayName": "Input pin number",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6"
      }
    },
    "RPM4_SCALING": {
      "Description": "Scaling factor between sensor reading and RPM.",
      "DisplayName": "RPM scaling",
      "Increment": "0.001",
      "User": "Standard"
    },
    "RPM4_TYPE": {
      "Description": "What type of RPM sensor is connected",
      "DisplayName": "RPM type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "Not Used",
        "2": "GPIO",
        "3": "EFI",
        "4": "Harmonic Notch",
        "5": "ESC Telemetry Motors Bitmask",
        "6": "Generator",
        "7": "DroneCAN"
      }
    }
  },
  "RSSI_": {
    "RSSI_ANA_PIN": {
      "Description": "Pin used to read the RSSI voltage or PWM value. Analog Airspeed ports can be used for Analog inputs (some autopilots provide others also), Non-IOMCU Servo/MotorOutputs can be used for PWM input when configured as \"GPIOs\". Values for some autopilots are given as examples. Search wiki for \"Analog pins\" for analog pin or \"GPIOs\", if PWM input type, to determine pin number.",
      "DisplayName": "Receiver RSSI sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "103": "Pixhawk SBUS",
        "11": "Pixracer",
        "13": "Pixhawk ADC4",
        "14": "Pixhawk ADC3",
        "15": "Pixhawk ADC6/Pixhawk2 ADC",
        "50": "AUX1",
        "51": "AUX2",
        "52": "AUX3",
        "53": "AUX4",
        "54": "AUX5",
        "55": "AUX6",
        "8": "V5 Nano"
      }
    },
    "RSSI_CHANNEL": {
      "Description": "The channel number where RSSI will be output by the radio receiver (5 and above).",
      "DisplayName": "Receiver RSSI channel number",
      "Range": {
        "high": "16",
        "low": "0"
      },
      "User": "Standard"
    },
    "RSSI_CHAN_HIGH": {
      "Description": "PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers output inverted values so this value may be higher than RSSI_CHAN_LOW",
      "DisplayName": "Receiver RSSI PWM high value",
      "Range": {
        "high": "2000",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "RSSI_CHAN_LOW": {
      "Description": "PWM value that the radio receiver will put on the RSSI_CHANNEL or RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers output inverted values so this value may be lower than RSSI_CHAN_HIGH",
      "DisplayName": "RSSI PWM low value",
      "Range": {
        "high": "2000",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "RSSI_PIN_HIGH": {
      "Description": "RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the strongest. Some radio receivers put out inverted values so this value may be lower than RSSI_PIN_LOW. When using pin 103, the maximum value of the parameter is 3.3V.",
      "DisplayName": "RSSI pin's highest voltage",
      "Increment": "0.01",
      "Range": {
        "high": "5.0",
        "low": "0"
      },
      "Units": "V",
      "User": "Standard"
    },
    "RSSI_PIN_LOW": {
      "Description": "RSSI pin's voltage received on the RSSI_ANA_PIN when the signal strength is the weakest. Some radio receivers put out inverted values so this value may be higher than RSSI_PIN_HIGH. When using pin 103, the maximum value of the parameter is 3.3V.",
      "DisplayName": "RSSI pin's lowest voltage",
      "Increment": "0.01",
      "Range": {
        "high": "5.0",
        "low": "0"
      },
      "Units": "V",
      "User": "Standard"
    },
    "RSSI_TYPE": {
      "Description": "Radio Receiver RSSI type. If your radio receiver supports RSSI of some kind, set it here, then set its associated RSSI_XXXXX parameters, if any.",
      "DisplayName": "RSSI Type",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "AnalogPin",
        "2": "RCChannelPwmValue",
        "3": "ReceiverProtocol",
        "4": "PWMInputPin",
        "5": "TelemetryRadioRSSI"
      }
    }
  },
  "SCHED_": {
    "SCHED_DEBUG": {
      "Description": "Set to non-zero to enable scheduler debug messages. When set to show \"Slips\" the scheduler will display a message whenever a scheduled task is delayed due to too much CPU load. When set to ShowOverruns the scheduled will display a message whenever a task takes longer than the limit promised in the task table.",
      "DisplayName": "Scheduler debug level",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "2": "ShowSlips",
        "3": "ShowOverruns"
      }
    },
    "SCHED_LOOP_RATE": {
      "Description": "This controls the rate of the main control loop in Hz. This should only be changed by developers. This only takes effect on restart. Values over 400 are considered highly experimental.",
      "DisplayName": "Scheduling main loop rate",
      "Range": {
        "high": "400",
        "low": "50"
      },
      "RebootRequired": "True",
      "Units": "Hz",
      "User": "Advanced"
    },
    "SCHED_OPTIONS": {
      "Bitmask": {
        "0": "Enable per-task perf info"
      },
      "Description": "This controls optional aspects of the scheduler.",
      "DisplayName": "Scheduling options",
      "User": "Advanced"
    }
  },
  "SCR_": {
    "SCR_DEBUG_OPTS": {
      "Bitmask": {
        "0": "No Scripts to run message if all scripts have stopped",
        "1": "Runtime messages for memory usage and execution time",
        "2": "Suppress logging scripts to dataflash",
        "3": "log runtime memory usage and execution time",
        "4": "Disable pre-arm check",
        "5": "Save CRC of current scripts to loaded and running checksum parameters enabling pre-arm",
        "6": "Disable heap expansion on allocation failure"
      },
      "Description": "Debugging options",
      "DisplayName": "Scripting Debug Level",
      "User": "Advanced"
    },
    "SCR_DIR_DISABLE": {
      "Bitmask": {
        "0": "ROMFS",
        "1": "APM/scripts"
      },
      "Description": "This will stop scripts being loaded from the given locations",
      "DisplayName": "Directory disable",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SCR_ENABLE": {
      "Description": "Controls if scripting is enabled",
      "DisplayName": "Enable Scripting",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Lua Scripts"
      }
    },
    "SCR_HEAP_SIZE": {
      "Description": "Amount of memory available for scripting",
      "DisplayName": "Scripting Heap Size",
      "Increment": "1024",
      "Range": {
        "high": "1048576",
        "low": "1024"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SCR_LD_CHECKSUM": {
      "Description": "Required XOR of CRC32 checksum of loaded scripts, vehicle will not arm with incorrect scripts loaded, -1 disables",
      "DisplayName": "Loaded script checksum",
      "User": "Advanced"
    },
    "SCR_RUN_CHECKSUM": {
      "Description": "Required XOR of CRC32 checksum of running scripts, vehicle will not arm with incorrect scripts running, -1 disables",
      "DisplayName": "Running script checksum",
      "User": "Advanced"
    },
    "SCR_SDEV1_PROTO": {
      "Description": "Serial protocol of scripting serial device",
      "DisplayName": "Serial protocol of scripting serial device",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SCR_SDEV2_PROTO": {
      "Description": "Serial protocol of scripting serial device",
      "DisplayName": "Serial protocol of scripting serial device",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SCR_SDEV3_PROTO": {
      "Description": "Serial protocol of scripting serial device",
      "DisplayName": "Serial protocol of scripting serial device",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SCR_SDEV_EN": {
      "Description": "Enable scripting serial devices",
      "DisplayName": "Scripting serial device enable",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SCR_THD_PRIORITY": {
      "Description": "This sets the priority of the scripting thread. This is normally set to a low priority to prevent scripts from interfering with other parts of the system. Advanced users can change this priority if scripting needs to be prioritised for realtime applications. WARNING: changing this parameter can impact the stability of your flight controller. The scipting thread priority in this parameter is chosen based on a set of system level priorities for other subsystems. It is strongly recommended that you use the lowest priority that is sufficient for your application. Note that all scripts run at the same priority, so if you raise this priority you must carefully audit all lua scripts for behaviour that does not interfere with the operation of the system.",
      "DisplayName": "Scripting thread priority",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "IO Priority",
        "2": "Storage Priority",
        "3": "UART Priority",
        "4": "I2C Priority",
        "5": "SPI Priority",
        "6": "Timer Priority",
        "7": "Main Priority",
        "8": "Boost Priority"
      }
    },
    "SCR_USER1": {
      "Description": "General purpose user variable input for scripts",
      "DisplayName": "Scripting User Parameter1",
      "User": "Standard"
    },
    "SCR_USER2": {
      "Description": "General purpose user variable input for scripts",
      "DisplayName": "Scripting User Parameter2",
      "User": "Standard"
    },
    "SCR_USER3": {
      "Description": "General purpose user variable input for scripts",
      "DisplayName": "Scripting User Parameter3",
      "User": "Standard"
    },
    "SCR_USER4": {
      "Description": "General purpose user variable input for scripts",
      "DisplayName": "Scripting User Parameter4",
      "User": "Standard"
    },
    "SCR_USER5": {
      "Description": "General purpose user variable input for scripts",
      "DisplayName": "Scripting User Parameter5",
      "User": "Standard"
    },
    "SCR_USER6": {
      "Description": "General purpose user variable input for scripts",
      "DisplayName": "Scripting User Parameter6",
      "User": "Standard"
    },
    "SCR_VM_I_COUNT": {
      "Description": "The number virtual machine instructions that can be run before considering a script to have taken an excessive amount of time",
      "DisplayName": "Scripting Virtual Machine Instruction Count",
      "Increment": "10000",
      "Range": {
        "high": "1000000",
        "low": "1000"
      },
      "User": "Advanced"
    }
  },
  "SERIAL": {
    "SERIAL0_BAUD": {
      "Description": "The baud rate used on the USB console. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",
      "DisplayName": "Serial0 baud rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "User": "Standard",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "SERIAL0_PROTOCOL": {
      "Description": "Control what protocol to use on the console.",
      "DisplayName": "Console protocol selection",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "1": "MAVLink1",
        "2": "MAVLink2"
      }
    },
    "SERIAL1_BAUD": {
      "Description": "The baud rate used on the Telem1 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",
      "DisplayName": "Telem1 Baud Rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "User": "Standard",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "SERIAL1_OPTIONS": {
      "Bitmask": {
        "0": "InvertRX",
        "1": "InvertTX",
        "10": "Don't forward mavlink to/from (moved to MAVn_OPTIONS >4.7)",
        "11": "DisableFIFO",
        "12": "Ignore Streamrate (moved to MAVn_OPTIONS >4.7)",
        "2": "HalfDuplex",
        "3": "SwapTXRX",
        "4": "RX_PullDown",
        "5": "RX_PullUp",
        "6": "TX_PullDown",
        "7": "TX_PullUp",
        "8": "RX_NoDMA",
        "9": "TX_NoDMA"
      },
      "Description": "Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.  NOTE that two bits have moved from this parameter into MAVn_OPTIONS!",
      "DisplayName": "Telem1 options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERIAL1_PROTOCOL": {
      "Description": "Control what protocol to use on the Telem1 port. Note that the Frsky options require external converter hardware. See the wiki for details.",
      "DisplayName": "Telem1 protocol selection",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SERIAL2_BAUD": {
      "Description": "The baud rate of the Telem2 port. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",
      "DisplayName": "Telemetry 2 Baud Rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "User": "Standard",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "SERIAL2_OPTIONS": {
      "Bitmask": {
        "0": "InvertRX",
        "1": "InvertTX",
        "10": "Don't forward mavlink to/from (moved to MAVn_OPTIONS >4.7)",
        "11": "DisableFIFO",
        "12": "Ignore Streamrate (moved to MAVn_OPTIONS >4.7)",
        "2": "HalfDuplex",
        "3": "SwapTXRX",
        "4": "RX_PullDown",
        "5": "RX_PullUp",
        "6": "TX_PullDown",
        "7": "TX_PullUp",
        "8": "RX_NoDMA",
        "9": "TX_NoDMA"
      },
      "Description": "Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.  NOTE that two bits have moved from this parameter into MAVn_OPTIONS!",
      "DisplayName": "Telem2 options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERIAL2_PROTOCOL": {
      "Description": "Control what protocol to use on the Telem2 port. Note that the Frsky options require external converter hardware. See the wiki for details.",
      "DisplayName": "Telemetry 2 protocol selection",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SERIAL3_BAUD": {
      "Description": "The baud rate used for the Serial 3 (GPS). Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",
      "DisplayName": "Serial 3 (GPS) Baud Rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "User": "Standard",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "SERIAL3_OPTIONS": {
      "Bitmask": {
        "0": "InvertRX",
        "1": "InvertTX",
        "10": "Don't forward mavlink to/from (moved to MAVn_OPTIONS >4.7)",
        "11": "DisableFIFO",
        "12": "Ignore Streamrate (moved to MAVn_OPTIONS >4.7)",
        "2": "HalfDuplex",
        "3": "SwapTXRX",
        "4": "RX_PullDown",
        "5": "RX_PullUp",
        "6": "TX_PullDown",
        "7": "TX_PullUp",
        "8": "RX_NoDMA",
        "9": "TX_NoDMA"
      },
      "Description": "Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.  NOTE that two bits have moved from this parameter into MAVn_OPTIONS!",
      "DisplayName": "Serial3 options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERIAL3_PROTOCOL": {
      "Description": "Control what protocol Serial 3 (GPS) should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",
      "DisplayName": "Serial 3 (GPS) protocol selection",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SERIAL4_BAUD": {
      "Description": "The baud rate used for Serial4. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",
      "DisplayName": "Serial 4 Baud Rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "User": "Standard",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "SERIAL4_OPTIONS": {
      "Bitmask": {
        "0": "InvertRX",
        "1": "InvertTX",
        "10": "Don't forward mavlink to/from (moved to MAVn_OPTIONS >4.7)",
        "11": "DisableFIFO",
        "12": "Ignore Streamrate (moved to MAVn_OPTIONS >4.7)",
        "2": "HalfDuplex",
        "3": "SwapTXRX",
        "4": "RX_PullDown",
        "5": "RX_PullUp",
        "6": "TX_PullDown",
        "7": "TX_PullUp",
        "8": "RX_NoDMA",
        "9": "TX_NoDMA"
      },
      "Description": "Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.  NOTE that two bits have moved from this parameter into MAVn_OPTIONS!",
      "DisplayName": "Serial4 options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERIAL4_PROTOCOL": {
      "Description": "Control what protocol Serial4 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",
      "DisplayName": "Serial4 protocol selection",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SERIAL5_BAUD": {
      "Description": "The baud rate used for Serial5. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",
      "DisplayName": "Serial 5 Baud Rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "User": "Standard",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "SERIAL5_OPTIONS": {
      "Bitmask": {
        "0": "InvertRX",
        "1": "InvertTX",
        "10": "Don't forward mavlink to/from (moved to MAVn_OPTIONS >4.7)",
        "11": "DisableFIFO",
        "12": "Ignore Streamrate (moved to MAVn_OPTIONS >4.7)",
        "2": "HalfDuplex",
        "3": "SwapTXRX",
        "4": "RX_PullDown",
        "5": "RX_PullUp",
        "6": "TX_PullDown",
        "7": "TX_PullUp",
        "8": "RX_NoDMA",
        "9": "TX_NoDMA"
      },
      "Description": "Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.  NOTE that two bits have moved from this parameter into MAVn_OPTIONS!",
      "DisplayName": "Serial5 options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERIAL5_PROTOCOL": {
      "Description": "Control what protocol Serial5 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",
      "DisplayName": "Serial5 protocol selection",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SERIAL6_BAUD": {
      "Description": "The baud rate used for Serial6. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",
      "DisplayName": "Serial 6 Baud Rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "User": "Standard",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "SERIAL6_OPTIONS": {
      "Bitmask": {
        "0": "InvertRX",
        "1": "InvertTX",
        "10": "Don't forward mavlink to/from (moved to MAVn_OPTIONS >4.7)",
        "11": "DisableFIFO",
        "12": "Ignore Streamrate (moved to MAVn_OPTIONS >4.7)",
        "2": "HalfDuplex",
        "3": "SwapTXRX",
        "4": "RX_PullDown",
        "5": "RX_PullUp",
        "6": "TX_PullDown",
        "7": "TX_PullUp",
        "8": "RX_NoDMA",
        "9": "TX_NoDMA"
      },
      "Description": "Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.  NOTE that two bits have moved from this parameter into MAVn_OPTIONS!",
      "DisplayName": "Serial6 options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERIAL6_PROTOCOL": {
      "Description": "Control what protocol Serial6 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",
      "DisplayName": "Serial6 protocol selection",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SERIAL7_BAUD": {
      "Description": "The baud rate used for Serial7. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",
      "DisplayName": "Serial 7 Baud Rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "User": "Standard",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "SERIAL7_OPTIONS": {
      "Bitmask": {
        "0": "InvertRX",
        "1": "InvertTX",
        "10": "Don't forward mavlink to/from (moved to MAVn_OPTIONS >4.7)",
        "11": "DisableFIFO",
        "12": "Ignore Streamrate (moved to MAVn_OPTIONS >4.7)",
        "2": "HalfDuplex",
        "3": "SwapTXRX",
        "4": "RX_PullDown",
        "5": "RX_PullUp",
        "6": "TX_PullDown",
        "7": "TX_PullUp",
        "8": "RX_NoDMA",
        "9": "TX_NoDMA"
      },
      "Description": "Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.  NOTE that two bits have moved from this parameter into MAVn_OPTIONS!",
      "DisplayName": "Serial7 options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERIAL7_PROTOCOL": {
      "Description": "Control what protocol Serial7 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",
      "DisplayName": "Serial7 protocol selection",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SERIAL8_BAUD": {
      "Description": "The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",
      "DisplayName": "Serial 8 Baud Rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "User": "Standard",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "SERIAL8_OPTIONS": {
      "Bitmask": {
        "0": "InvertRX",
        "1": "InvertTX",
        "10": "Don't forward mavlink to/from (moved to MAVn_OPTIONS >4.7)",
        "11": "DisableFIFO",
        "12": "Ignore Streamrate (moved to MAVn_OPTIONS >4.7)",
        "2": "HalfDuplex",
        "3": "SwapTXRX",
        "4": "RX_PullDown",
        "5": "RX_PullUp",
        "6": "TX_PullDown",
        "7": "TX_PullUp",
        "8": "RX_NoDMA",
        "9": "TX_NoDMA"
      },
      "Description": "Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.  NOTE that two bits have moved from this parameter into MAVn_OPTIONS!",
      "DisplayName": "Serial8 options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERIAL8_PROTOCOL": {
      "Description": "Control what protocol Serial8 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",
      "DisplayName": "Serial8 protocol selection",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SERIAL9_BAUD": {
      "Description": "The baud rate used for Serial8. Most stm32-based boards can support rates of up to 1500. If you setup a rate you cannot support and then can't connect to your board you should load a firmware from a different vehicle type. That will reset all your parameters to defaults.",
      "DisplayName": "Serial 9 Baud Rate",
      "Range": {
        "high": "20000000",
        "low": "1"
      },
      "User": "Standard",
      "Values": {
        "1": "1200",
        "111": "111100",
        "115": "115200",
        "12500000": "12.5MBaud",
        "1500": "1.5MBaud",
        "19": "19200",
        "2": "2400",
        "2000": "2MBaud",
        "230": "230400",
        "256": "256000",
        "38": "38400",
        "4": "4800",
        "460": "460800",
        "500": "500000",
        "57": "57600",
        "9": "9600",
        "921": "921600"
      }
    },
    "SERIAL9_OPTIONS": {
      "Bitmask": {
        "0": "InvertRX",
        "1": "InvertTX",
        "10": "Don't forward mavlink to/from (moved to MAVn_OPTIONS >4.7)",
        "11": "DisableFIFO",
        "12": "Ignore Streamrate (moved to MAVn_OPTIONS >4.7)",
        "2": "HalfDuplex",
        "3": "SwapTXRX",
        "4": "RX_PullDown",
        "5": "RX_PullUp",
        "6": "TX_PullDown",
        "7": "TX_PullUp",
        "8": "RX_NoDMA",
        "9": "TX_NoDMA"
      },
      "Description": "Control over UART options. The InvertRX option controls invert of the receive pin. The InvertTX option controls invert of the transmit pin. The HalfDuplex option controls half-duplex (onewire) mode, where both transmit and receive is done on the transmit wire. The Swap option allows the RX and TX pins to be swapped on STM32F7 based boards.  NOTE that two bits have moved from this parameter into MAVn_OPTIONS!",
      "DisplayName": "Serial9 options",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERIAL9_PROTOCOL": {
      "Description": "Control what protocol Serial9 port should be used for. Note that the Frsky options require external converter hardware. See the wiki for details.",
      "DisplayName": "Serial9 protocol selection",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "None",
        "1": "MAVLink1",
        "10": "FrSky SPort Passthrough (OpenTX)",
        "11": "Lidar360",
        "13": "Beacon",
        "14": "Volz servo out",
        "15": "SBus servo out",
        "16": "ESC Telemetry",
        "17": "Devo Telemetry",
        "18": "OpticalFlow",
        "19": "RobotisServo",
        "2": "MAVLink2",
        "20": "NMEA Output",
        "21": "WindVane",
        "22": "SLCAN",
        "23": "RCIN",
        "24": "EFI Serial",
        "25": "LTM",
        "26": "RunCam",
        "27": "HottTelem",
        "28": "Scripting",
        "29": "Crossfire VTX",
        "3": "Frsky D",
        "30": "Generator",
        "31": "Winch",
        "32": "MSP",
        "33": "DJI FPV",
        "34": "AirSpeed",
        "35": "ADSB",
        "36": "AHRS",
        "37": "SmartAudio",
        "38": "FETtecOneWire",
        "39": "Torqeedo",
        "4": "Frsky SPort",
        "40": "AIS",
        "41": "CoDevESC",
        "42": "DisplayPort",
        "43": "MAVLink High Latency",
        "44": "IRC Tramp",
        "45": "DDS XRCE",
        "46": "IMUDATA",
        "48": "PPP",
        "49": "i-BUS Telemetry",
        "5": "GPS",
        "50": "IOMCU",
        "7": "Alexmos Gimbal Serial",
        "8": "Gimbal",
        "9": "Rangefinder"
      }
    },
    "SERIAL_PASS1": {
      "Description": "This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port",
      "DisplayName": "Serial passthru first port",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "SERIAL_PASS2": {
      "Description": "This sets one side of pass-through between two serial ports. Once both sides are set then all data received on either port will be passed to the other port. This parameter is normally reset to -1 on reboot, disabling passthrough. If SERIAL_PASSTIMO is set to -1 then it is not reset on reboot.",
      "DisplayName": "Serial passthru second port",
      "User": "Advanced",
      "Values": {
        "-1": "Disabled",
        "0": "Serial0",
        "1": "Serial1",
        "2": "Serial2",
        "3": "Serial3",
        "4": "Serial4",
        "5": "Serial5",
        "6": "Serial6"
      }
    },
    "SERIAL_PASSTIMO": {
      "Description": "This sets a timeout for serial pass-through in seconds. When the pass-through is enabled by setting the SERIAL_PASS1 and SERIAL_PASS2 parameters then it remains in effect until no data comes from the first port for SERIAL_PASSTIMO seconds. This allows the port to revent to its normal usage (such as MAVLink connection to a GCS) when it is no longer needed. A value of 0 means no timeout. A value of -1 means no timeout and the SERIAL_PASS2 parameter is not reset on reboot.",
      "DisplayName": "Serial passthru timeout",
      "Range": {
        "high": "120",
        "low": "-1"
      },
      "Units": "s",
      "User": "Advanced"
    }
  },
  "SERVO": {
    "SERVO_32_ENABLE": {
      "Description": "This allows for up to 32 outputs, enabling parameters for outputs above 16",
      "DisplayName": "Enable outputs 17 to 31",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SERVO_DSHOT_ESC": {
      "Description": "DShot ESC type for all outputs. The ESC type affects the range of DShot commands available and the bit widths used. None means that no dshot commands will be executed. Some ESC types support Extended DShot Telemetry (EDT) which allows telemetry other than RPM data to be returned when using bi-directional dshot. If you enable EDT you must install EDT capable firmware for correct operation.",
      "DisplayName": "Servo DShot ESC type",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "BLHeli32/Kiss/AM32",
        "2": "BLHeli_S/BlueJay",
        "3": "BLHeli32/AM32/Kiss+EDT",
        "4": "BLHeli_S/BlueJay+EDT"
      }
    },
    "SERVO_DSHOT_RATE": {
      "Description": "DShot output rate for all outputs as a multiple of the loop rate. 0 sets the output rate to be fixed at 1Khz for low loop rates. This value should never be set below 500Hz.",
      "DisplayName": "Servo DShot output rate",
      "User": "Advanced",
      "Values": {
        "0": "1Khz",
        "1": "loop-rate",
        "2": "double loop-rate",
        "3": "triple loop-rate",
        "4": "quadruple loop rate"
      }
    },
    "SERVO_GPIO_MASK": {
      "Bitmask": {
        "0": "Servo 1",
        "1": "Servo 2",
        "10": "Servo 11",
        "11": "Servo 12",
        "12": "Servo 13",
        "13": "Servo 14",
        "14": "Servo 15",
        "15": "Servo 16",
        "16": "Servo 17",
        "17": "Servo 18",
        "18": "Servo 19",
        "19": "Servo 20",
        "2": "Servo 3",
        "20": "Servo 21",
        "21": "Servo 22",
        "22": "Servo 23",
        "23": "Servo 24",
        "24": "Servo 25",
        "25": "Servo 26",
        "26": "Servo 27",
        "27": "Servo 28",
        "28": "Servo 29",
        "29": "Servo 30",
        "3": "Servo 4",
        "30": "Servo 31",
        "31": "Servo 32",
        "4": "Servo 5",
        "5": "Servo 6",
        "6": "Servo 7",
        "7": "Servo 8",
        "8": "Servo 9",
        "9": "Servo 10"
      },
      "Description": "Bitmask of outputs which will be available as GPIOs. Any output with either the function set to -1 or with the corresponding bit set in this mask will be available for use as a GPIO pin",
      "DisplayName": "Servo GPIO mask",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERVO_RATE": {
      "Description": "Default output rate in Hz for all PWM outputs.",
      "DisplayName": "Servo default output rate",
      "Range": {
        "high": "400",
        "low": "25"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "SERVO_RC_FS_MSK": {
      "Bitmask": {
        "0": "RCIN1Scaled",
        "1": "RCIN2Scaled",
        "10": "RCIN11Scaled",
        "11": "SRCIN12Scaled",
        "12": "RCIN13Scaled",
        "13": "RCIN14Scaled",
        "14": "RCIN15Scaled",
        "15": "RCIN16Scaled",
        "2": "RCIN3Scaled",
        "3": "RCIN4Scaled",
        "4": "RCIN5Scaled",
        "5": "RCIN6Scaled",
        "6": "RCIN7Scaled",
        "7": "RCIN8Scaled",
        "8": "RCIN9Scaled",
        "9": "RCIN10Scaled"
      },
      "Description": "Bitmask of scaled passthru output channels which will be set to their trim value during rc failsafe instead of holding their last position before failsafe.",
      "DisplayName": "Servo RC Failsafe Mask",
      "User": "Advanced"
    }
  },
  "SERVO10_": {
    "SERVO10_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO10_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO10_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO10_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO10_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO11_": {
    "SERVO11_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO11_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO11_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO11_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO11_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO12_": {
    "SERVO12_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO12_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO12_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO12_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO12_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO13_": {
    "SERVO13_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO13_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO13_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO13_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO13_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO14_": {
    "SERVO14_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO14_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO14_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO14_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO14_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO15_": {
    "SERVO15_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO15_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO15_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO15_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO15_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO16_": {
    "SERVO16_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO16_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO16_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO16_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO16_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO17_": {
    "SERVO17_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO17_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO17_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO17_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO17_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO18_": {
    "SERVO18_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO18_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO18_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO18_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO18_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO19_": {
    "SERVO19_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO19_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO19_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO19_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO19_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO1_": {
    "SERVO1_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO1_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO1_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO1_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO1_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO20_": {
    "SERVO20_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO20_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO20_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO20_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO20_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO21_": {
    "SERVO21_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO21_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO21_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO21_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO21_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO22_": {
    "SERVO22_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO22_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO22_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO22_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO22_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO23_": {
    "SERVO23_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO23_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO23_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO23_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO23_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO24_": {
    "SERVO24_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO24_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO24_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO24_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO24_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO25_": {
    "SERVO25_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO25_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO25_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO25_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO25_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO26_": {
    "SERVO26_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO26_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO26_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO26_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO26_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO27_": {
    "SERVO27_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO27_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO27_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO27_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO27_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO28_": {
    "SERVO28_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO28_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO28_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO28_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO28_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO29_": {
    "SERVO29_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO29_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO29_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO29_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO29_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO2_": {
    "SERVO2_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO2_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO2_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO2_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO2_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO30_": {
    "SERVO30_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO30_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO30_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO30_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO30_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO31_": {
    "SERVO31_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO31_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO31_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO31_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO31_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO32_": {
    "SERVO32_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO32_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO32_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO32_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO32_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO3_": {
    "SERVO3_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO3_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO3_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO3_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO3_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO4_": {
    "SERVO4_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO4_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO4_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO4_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO4_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO5_": {
    "SERVO5_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO5_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO5_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO5_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO5_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO6_": {
    "SERVO6_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO6_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO6_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO6_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO6_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO7_": {
    "SERVO7_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO7_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO7_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO7_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO7_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO8_": {
    "SERVO8_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO8_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO8_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO8_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO8_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO9_": {
    "SERVO9_FUNCTION": {
      "Description": "Function assigned to this servo. Setting this to Disabled(0) will setup this output for control by auto missions or MAVLink servo set commands. any other value will enable the corresponding function",
      "DisplayName": "Servo output function",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "-1": "GPIO",
        "0": "Disabled",
        "1": "RCPassThru",
        "100": "Script7",
        "101": "Script8",
        "102": "Script9",
        "103": "Script10",
        "104": "Script11",
        "105": "Script12",
        "106": "Script13",
        "107": "Script14",
        "108": "Script15",
        "109": "Script16",
        "120": "NeoPixel1",
        "121": "NeoPixel2",
        "122": "NeoPixel3",
        "123": "NeoPixel4",
        "134": "SERVOn_MIN",
        "135": "SERVOn_TRIM",
        "136": "SERVOn_MAX",
        "181": "Lights1",
        "182": "Lights2",
        "183": "VideoSwitch",
        "184": "Actuator1",
        "185": "Actuator2",
        "186": "Actuator3",
        "187": "Actuator4",
        "188": "Actuator5",
        "189": "Actuator6",
        "28": "Gripper",
        "33": "Motor1",
        "34": "Motor2",
        "35": "Motor3",
        "36": "Motor4",
        "37": "Motor5",
        "38": "Motor6",
        "39": "Motor7",
        "40": "Motor8",
        "51": "RCIN1/Pitch",
        "52": "RCIN2/Roll",
        "53": "RCIN3/HeaveVertical",
        "54": "RCIN4/YawTurn",
        "55": "RCIN5/SurgeForward",
        "56": "RCIN6/SwayLateral",
        "57": "RCIN7/CameraPan",
        "58": "RCIN8/CameraTilt",
        "59": "RCIN9",
        "6": "Mount1Yaw",
        "60": "RCIN10",
        "61": "RCIN11",
        "62": "RCIN12",
        "63": "RCIN13",
        "64": "RCIN14",
        "65": "RCIN15",
        "66": "RCIN16",
        "7": "Mount1Pitch",
        "8": "Mount1Roll",
        "82": "Motor9",
        "83": "Motor10",
        "84": "Motor11",
        "85": "Motor12",
        "88": "Winch",
        "9": "Mount1Retract",
        "90": "CameraISO",
        "91": "CameraAperture",
        "92": "CameraFocus",
        "93": "CameraShutterSpeed",
        "94": "Script1",
        "95": "Script2",
        "96": "Script3",
        "97": "Script4",
        "98": "Script5",
        "99": "Script6"
      }
    },
    "SERVO9_MAX": {
      "Description": "maximum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Maximum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO9_MIN": {
      "Description": "minimum PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Minimum PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "SERVO9_REVERSED": {
      "Description": "Reverse servo operation. Set to 0 for normal operation. Set to 1 to reverse this output channel.",
      "DisplayName": "Servo reverse",
      "User": "Standard",
      "Values": {
        "0": "Normal",
        "1": "Reversed"
      }
    },
    "SERVO9_TRIM": {
      "Description": "Trim PWM pulse width in microseconds. Typically 1000 is lower limit, 1500 is neutral and 2000 is upper limit.",
      "DisplayName": "Trim PWM",
      "Increment": "1",
      "Range": {
        "high": "2200",
        "low": "800"
      },
      "Units": "PWM",
      "User": "Standard"
    }
  },
  "SERVO_BLH_": {
    "SERVO_BLH_3DMASK": {
      "Bitmask": {
        "0": "Channel1",
        "1": "Channel2",
        "10": "Channel11",
        "11": "Channel12",
        "12": "Channel13",
        "13": "Channel14",
        "14": "Channel15",
        "15": "Channel16",
        "16": "Channel 17",
        "17": "Channel 18",
        "18": "Channel 19",
        "19": "Channel 20",
        "2": "Channel3",
        "20": "Channel 21",
        "21": "Channel 22",
        "22": "Channel 23",
        "23": "Channel 24",
        "24": "Channel 25",
        "25": "Channel 26",
        "26": "Channel 27",
        "27": "Channel 28",
        "28": "Channel 29",
        "29": "Channel 30",
        "3": "Channel4",
        "30": "Channel 31",
        "31": "Channel 32",
        "4": "Channel5",
        "5": "Channel6",
        "6": "Channel7",
        "7": "Channel8",
        "8": "Channel9",
        "9": "Channel10"
      },
      "Description": "Mask of channels which are dynamically reversible. This is used to configure ESCs in '3D' mode, allowing for the motor to spin in either direction. Note that setting an ESC as reversible with this option on AM32 will result in the forward direction of the ESC changing. You can combine with parameter with the SERVO_BLH_RVMASK parameter to maintain the same direction when the ESC is in 3D mode as it has in unidirectional (non-3D) mode.",
      "DisplayName": "BLHeli bitmask of 3D channels",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERVO_BLH_AUTO": {
      "Description": "If set to 1 this auto-enables BLHeli pass-thru support for all multicopter motors",
      "DisplayName": "BLHeli pass-thru auto-enable for multicopter motors",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SERVO_BLH_BDMASK": {
      "Bitmask": {
        "0": "Channel1",
        "1": "Channel2",
        "10": "Channel11",
        "11": "Channel12",
        "12": "Channel13",
        "13": "Channel14",
        "14": "Channel15",
        "15": "Channel16",
        "16": "Channel 17",
        "17": "Channel 18",
        "18": "Channel 19",
        "19": "Channel 20",
        "2": "Channel3",
        "20": "Channel 21",
        "21": "Channel 22",
        "22": "Channel 23",
        "23": "Channel 24",
        "24": "Channel 25",
        "25": "Channel 26",
        "26": "Channel 27",
        "27": "Channel 28",
        "28": "Channel 29",
        "29": "Channel 30",
        "3": "Channel4",
        "30": "Channel 31",
        "31": "Channel 32",
        "4": "Channel5",
        "5": "Channel6",
        "6": "Channel7",
        "7": "Channel8",
        "8": "Channel9",
        "9": "Channel10"
      },
      "Description": "Mask of channels which support bi-directional dshot telemetry. This is used for ESCs which have firmware that supports bi-directional dshot allowing fast rpm telemetry values to be returned for the harmonic notch.",
      "DisplayName": "BLHeli bitmask of bi-directional dshot channels",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERVO_BLH_DEBUG": {
      "Description": "When set to 1 this enabled verbose debugging output over MAVLink when the blheli protocol is active. This can be used to diagnose failures.",
      "DisplayName": "BLHeli debug level",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SERVO_BLH_MASK": {
      "Bitmask": {
        "0": "Channel1",
        "1": "Channel2",
        "10": "Channel11",
        "11": "Channel12",
        "12": "Channel13",
        "13": "Channel14",
        "14": "Channel15",
        "15": "Channel16",
        "16": "Channel 17",
        "17": "Channel 18",
        "18": "Channel 19",
        "19": "Channel 20",
        "2": "Channel3",
        "20": "Channel 21",
        "21": "Channel 22",
        "22": "Channel 23",
        "23": "Channel 24",
        "24": "Channel 25",
        "25": "Channel 26",
        "26": "Channel 27",
        "27": "Channel 28",
        "28": "Channel 29",
        "29": "Channel 30",
        "3": "Channel4",
        "30": "Channel 31",
        "31": "Channel 32",
        "4": "Channel5",
        "5": "Channel6",
        "6": "Channel7",
        "7": "Channel8",
        "8": "Channel9",
        "9": "Channel10"
      },
      "Description": "Enable of BLHeli pass-thru servo protocol support to specific channels. This mask is in addition to motors enabled using SERVO_BLH_AUTO (if any)",
      "DisplayName": "BLHeli Channel Bitmask",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERVO_BLH_OTYPE": {
      "Description": "When set to a non-zero value this overrides the output type for the output channels given by SERVO_BLH_MASK. This can be used to enable DShot on outputs that are not part of the multicopter motors group.",
      "DisplayName": "BLHeli output type override",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "OneShot",
        "2": "OneShot125",
        "3": "Brushed",
        "4": "DShot150",
        "5": "DShot300",
        "6": "DShot600",
        "7": "DShot1200"
      }
    },
    "SERVO_BLH_POLES": {
      "Description": "This allows calculation of true RPM from ESC's eRPM. The default is 14.",
      "DisplayName": "BLHeli Motor Poles",
      "Range": {
        "high": "127",
        "low": "1"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERVO_BLH_PORT": {
      "Description": "This sets the mavlink channel to use for blheli pass-thru. The channel number is determined by the number of serial ports configured to use mavlink. So 0 is always the console, 1 is the next serial port using mavlink, 2 the next after that and so on.",
      "DisplayName": "Control port",
      "User": "Advanced",
      "Values": {
        "0": "Console",
        "1": "Mavlink Serial Channel1",
        "2": "Mavlink Serial Channel2",
        "3": "Mavlink Serial Channel3",
        "4": "Mavlink Serial Channel4",
        "5": "Mavlink Serial Channel5"
      }
    },
    "SERVO_BLH_RVMASK": {
      "Bitmask": {
        "0": "Channel1",
        "1": "Channel2",
        "10": "Channel11",
        "11": "Channel12",
        "12": "Channel13",
        "13": "Channel14",
        "14": "Channel15",
        "15": "Channel16",
        "16": "Channel 17",
        "17": "Channel 18",
        "18": "Channel 19",
        "19": "Channel 20",
        "2": "Channel3",
        "20": "Channel 21",
        "21": "Channel 22",
        "22": "Channel 23",
        "23": "Channel 24",
        "24": "Channel 25",
        "25": "Channel 26",
        "26": "Channel 27",
        "27": "Channel 28",
        "28": "Channel 29",
        "29": "Channel 30",
        "3": "Channel4",
        "30": "Channel 31",
        "31": "Channel 32",
        "4": "Channel5",
        "5": "Channel6",
        "6": "Channel7",
        "7": "Channel8",
        "8": "Channel9",
        "9": "Channel10"
      },
      "Description": "Mask of channels which are reversed. This is used to configure ESCs to reverse motor direction. Note that when combined with SERVO_BLH_3DMASK this will change what direction is considered to be forward.",
      "DisplayName": "BLHeli bitmask of reversed channels",
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "SERVO_BLH_TEST": {
      "Description": "Setting SERVO_BLH_TEST to a motor number enables an internal test of the BLHeli ESC protocol to the corresponding ESC. The debug output is displayed on the USB console.",
      "DisplayName": "BLHeli internal interface test",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "TestMotor1",
        "2": "TestMotor2",
        "3": "TestMotor3",
        "4": "TestMotor4",
        "5": "TestMotor5",
        "6": "TestMotor6",
        "7": "TestMotor7",
        "8": "TestMotor8"
      }
    },
    "SERVO_BLH_TMOUT": {
      "Description": "This sets the inactivity timeout for the BLHeli protocol in seconds. If no packets are received in this time normal MAVLink operations are resumed. A value of 0 means no timeout",
      "DisplayName": "BLHeli protocol timeout",
      "Range": {
        "high": "300",
        "low": "0"
      },
      "Units": "s",
      "User": "Standard"
    },
    "SERVO_BLH_TRATE": {
      "Description": "This sets the rate in Hz for requesting telemetry from ESCs. It is the rate per ESC. Setting to zero disables telemetry requests",
      "DisplayName": "BLHeli telemetry rate",
      "Range": {
        "high": "500",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Standard"
    }
  },
  "SERVO_FTW_": {
    "SERVO_FTW_MASK": {
      "Bitmask": {
        "0": "SERVO1",
        "1": "SERVO2",
        "10": "SERVO11",
        "11": "SERVO12",
        "2": "SERVO3",
        "3": "SERVO4",
        "4": "SERVO5",
        "5": "SERVO6",
        "6": "SERVO7",
        "7": "SERVO8",
        "8": "SERVO9",
        "9": "SERVO10"
      },
      "Description": "Servo channel mask specifying FETtec ESC output.",
      "DisplayName": "Servo channel output bitmask",
      "RebootRequired": "True",
      "User": "Standard"
    },
    "SERVO_FTW_POLES": {
      "Description": "Number of motor electrical poles",
      "DisplayName": "Nr. electrical poles",
      "Range": {
        "high": "50",
        "low": "2"
      },
      "User": "Standard"
    },
    "SERVO_FTW_RVMASK": {
      "Bitmask": {
        "0": "SERVO1",
        "1": "SERVO2",
        "10": "SERVO11",
        "11": "SERVO12",
        "2": "SERVO3",
        "3": "SERVO4",
        "4": "SERVO5",
        "5": "SERVO6",
        "6": "SERVO7",
        "7": "SERVO8",
        "8": "SERVO9",
        "9": "SERVO10"
      },
      "Description": "Servo channel mask to reverse rotation of FETtec ESC outputs.",
      "DisplayName": "Servo channel reverse rotation bitmask",
      "User": "Standard"
    }
  },
  "SERVO_ROB_": {
    "SERVO_ROB_POSMAX": {
      "Description": "Position maximum at servo max value. This should be within the position control range of the servos, normally 0 to 4095",
      "DisplayName": "Robotis servo position max",
      "Range": {
        "high": "4095",
        "low": "0"
      },
      "User": "Standard"
    },
    "SERVO_ROB_POSMIN": {
      "Description": "Position minimum at servo min value. This should be within the position control range of the servos, normally 0 to 4095",
      "DisplayName": "Robotis servo position min",
      "Range": {
        "high": "4095",
        "low": "0"
      },
      "User": "Standard"
    }
  },
  "SERVO_SBUS_": {
    "SERVO_SBUS_RATE": {
      "Description": "This sets the SBUS output frame rate in Hz.",
      "DisplayName": "SBUS default output rate",
      "Range": {
        "high": "250",
        "low": "25"
      },
      "Units": "Hz",
      "User": "Advanced"
    }
  },
  "SERVO_VOLZ_": {
    "SERVO_VOLZ_MASK": {
      "Bitmask": {
        "0": "Channel1",
        "1": "Channel2",
        "10": "Channel11",
        "11": "Channel12",
        "12": "Channel13",
        "13": "Channel14",
        "14": "Channel15",
        "15": "Channel16",
        "16": "Channel17",
        "17": "Channel18",
        "18": "Channel19",
        "19": "Channel20",
        "2": "Channel3",
        "20": "Channel21",
        "21": "Channel22",
        "22": "Channel23",
        "23": "Channel24",
        "24": "Channel25",
        "25": "Channel26",
        "26": "Channel27",
        "28": "Channel29",
        "29": "Channel30",
        "3": "Channel4",
        "30": "Channel31",
        "31": "Channel32",
        "4": "Channel5",
        "5": "Channel6",
        "6": "Channel7",
        "7": "Channel8",
        "8": "Channel9",
        "9": "Channel10"
      },
      "Description": "Enable of volz servo protocol to specific channels",
      "DisplayName": "Channel Bitmask",
      "User": "Standard"
    },
    "SERVO_VOLZ_RANGE": {
      "Description": "Range to map between 1000 and 2000 PWM. Default value of 200 gives full +-100 deg range of extended position command. This results in 0.2 deg movement per US change in PWM. If the full range is not needed it can be reduced to increase resolution. 40 deg range gives 0.04 deg movement per US change in PWM, this is higher resolution than possible with the VOLZ protocol so further reduction in range will not improve resolution. Reduced range does allow PWMs outside the 1000 to 2000 range, with 40 deg range 750 PWM results in a angle of -30 deg, 2250 would be +30 deg. This is still limited by the 200 deg maximum range of the actuator.",
      "DisplayName": "Range of travel",
      "Units": "deg"
    }
  },
  "SIM_": {
    "SIM_ACC1_BIAS_X": {
      "Description": "bias of simulated accelerometer sensor (X-axis)",
      "DisplayName": "Accel 1 bias",
      "User": "Advanced"
    },
    "SIM_ACC1_BIAS_Y": {
      "Description": "bias of simulated accelerometer sensor (Y-axis)",
      "DisplayName": "Accel 1 bias",
      "User": "Advanced"
    },
    "SIM_ACC1_BIAS_Z": {
      "Description": "bias of simulated accelerometer sensor (Z-axis)",
      "DisplayName": "Accel 1 bias",
      "User": "Advanced"
    },
    "SIM_ACC1_RND": {
      "Description": "scaling factor for simulated vibration from motors",
      "DisplayName": "Accel 1 motor noise factor",
      "User": "Advanced"
    },
    "SIM_ACC1_SCAL_X": {
      "Description": "scaling factors applied to simulated accelerometer (X-axis)",
      "DisplayName": "Accel 1 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC1_SCAL_Y": {
      "Description": "scaling factors applied to simulated accelerometer (Y-axis)",
      "DisplayName": "Accel 1 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC1_SCAL_Z": {
      "Description": "scaling factors applied to simulated accelerometer (Z-axis)",
      "DisplayName": "Accel 1 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC2_BIAS_X": {
      "Description": "bias of simulated accelerometer sensor (X-axis)",
      "DisplayName": "Accel 2 bias",
      "User": "Advanced"
    },
    "SIM_ACC2_BIAS_Y": {
      "Description": "bias of simulated accelerometer sensor (Y-axis)",
      "DisplayName": "Accel 2 bias",
      "User": "Advanced"
    },
    "SIM_ACC2_BIAS_Z": {
      "Description": "bias of simulated accelerometer sensor (Z-axis)",
      "DisplayName": "Accel 2 bias",
      "User": "Advanced"
    },
    "SIM_ACC2_RND": {
      "Description": "scaling factor for simulated vibration from motors",
      "DisplayName": "Accel 2 motor noise factor",
      "User": "Advanced"
    },
    "SIM_ACC2_SCAL_X": {
      "Description": "scaling factors applied to simulated accelerometer (X-axis)",
      "DisplayName": "Accel 2 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC2_SCAL_Y": {
      "Description": "scaling factors applied to simulated accelerometer (Y-axis)",
      "DisplayName": "Accel 2 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC2_SCAL_Z": {
      "Description": "scaling factors applied to simulated accelerometer (Z-axis)",
      "DisplayName": "Accel 2 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC3_BIAS_X": {
      "Description": "bias of simulated accelerometer sensor (X-axis)",
      "DisplayName": "Accel 3 bias",
      "User": "Advanced"
    },
    "SIM_ACC3_BIAS_Y": {
      "Description": "bias of simulated accelerometer sensor (Y-axis)",
      "DisplayName": "Accel 3 bias",
      "User": "Advanced"
    },
    "SIM_ACC3_BIAS_Z": {
      "Description": "bias of simulated accelerometer sensor (Z-axis)",
      "DisplayName": "Accel 3 bias",
      "User": "Advanced"
    },
    "SIM_ACC3_RND": {
      "Description": "scaling factor for simulated vibration from motors",
      "DisplayName": "Accel 3 motor noise factor",
      "User": "Advanced"
    },
    "SIM_ACC3_SCAL_X": {
      "Description": "scaling factors applied to simulated accelerometer (X-axis)",
      "DisplayName": "Accel 3 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC3_SCAL_Y": {
      "Description": "scaling factors applied to simulated accelerometer (Y-axis)",
      "DisplayName": "Accel 3 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC3_SCAL_Z": {
      "Description": "scaling factors applied to simulated accelerometer (Z-axis)",
      "DisplayName": "Accel 3 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC4_BIAS_X": {
      "Description": "bias of simulated accelerometer sensor (X-axis)",
      "DisplayName": "Accel 4 bias",
      "User": "Advanced"
    },
    "SIM_ACC4_BIAS_Y": {
      "Description": "bias of simulated accelerometer sensor (Y-axis)",
      "DisplayName": "Accel 4 bias",
      "User": "Advanced"
    },
    "SIM_ACC4_BIAS_Z": {
      "Description": "bias of simulated accelerometer sensor (Z-axis)",
      "DisplayName": "Accel 4 bias",
      "User": "Advanced"
    },
    "SIM_ACC4_RND": {
      "Description": "scaling factor for simulated vibration from motors",
      "DisplayName": "Accel 4 motor noise factor",
      "User": "Advanced"
    },
    "SIM_ACC4_SCAL_X": {
      "Description": "scaling factors applied to simulated accelerometer (X-axis)",
      "DisplayName": "Accel 4 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC4_SCAL_Y": {
      "Description": "scaling factors applied to simulated accelerometer (Y-axis)",
      "DisplayName": "Accel 4 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC4_SCAL_Z": {
      "Description": "scaling factors applied to simulated accelerometer (Z-axis)",
      "DisplayName": "Accel 4 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC5_BIAS_X": {
      "Description": "bias of simulated accelerometer sensor (X-axis)",
      "DisplayName": "Accel 5 bias",
      "User": "Advanced"
    },
    "SIM_ACC5_BIAS_Y": {
      "Description": "bias of simulated accelerometer sensor (Y-axis)",
      "DisplayName": "Accel 5 bias",
      "User": "Advanced"
    },
    "SIM_ACC5_BIAS_Z": {
      "Description": "bias of simulated accelerometer sensor (Z-axis)",
      "DisplayName": "Accel 5 bias",
      "User": "Advanced"
    },
    "SIM_ACC5_RND": {
      "Description": "scaling factor for simulated vibration from motors",
      "DisplayName": "Accel 5 motor noise factor",
      "User": "Advanced"
    },
    "SIM_ACC5_SCAL_X": {
      "Description": "scaling factors applied to simulated accelerometer (X-axis)",
      "DisplayName": "Accel 4 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC5_SCAL_Y": {
      "Description": "scaling factors applied to simulated accelerometer (Y-axis)",
      "DisplayName": "Accel 4 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACC5_SCAL_Z": {
      "Description": "scaling factors applied to simulated accelerometer (Z-axis)",
      "DisplayName": "Accel 4 scaling factor",
      "User": "Advanced"
    },
    "SIM_ACCEL1_FAIL": {
      "Description": "Simulated failure of ACCEL1",
      "DisplayName": "ACCEL1 Failure",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "ACCEL1 Failure"
      }
    },
    "SIM_ACCEL2_FAIL": {
      "Description": "Simulated failure of ACCEL2",
      "DisplayName": "ACCEL2 Failure",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "ACCEL2 Failure"
      }
    },
    "SIM_ACCEL3_FAIL": {
      "Description": "Simulated failure of ACCEL3",
      "DisplayName": "ACCEL3 Failure",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "ACCEL3 Failure"
      }
    },
    "SIM_ACCEL4_FAIL": {
      "Description": "Simulated failure of ACCEL4",
      "DisplayName": "ACCEL4 Failure",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "ACCEL4 Failure"
      }
    },
    "SIM_ACCEL5_FAIL": {
      "Description": "Simulated failure of ACCEL5",
      "DisplayName": "ACCEL5 Failure",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "ACCEL5 Failure"
      }
    },
    "SIM_ACC_FAIL_MSK": {
      "Description": "Determines if the acclerometer reading updates are stopped when for an IMU simulated failure by ACCELx_FAIL params",
      "DisplayName": "Accelerometer Failure Mask",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Readings stopped"
      }
    },
    "SIM_ACC_FILE_RW": {
      "Description": "Read and write accelerometer data to/from files",
      "DisplayName": "Accelerometer data to/from files",
      "Values": {
        "0": "Stop writing data",
        "1": "Read data from file",
        "2": "Write data to a file",
        "3": "Read data from file and stop on EOF"
      }
    },
    "SIM_ADSB_ALT": {
      "Description": "Simulated ADSB altitude of another aircraft",
      "DisplayName": "ADSB altitude of another aircraft",
      "Units": "m"
    },
    "SIM_ADSB_COUNT": {
      "Description": "Total number of ADSB simulated aircraft",
      "DisplayName": "Number of ADSB aircrafts"
    },
    "SIM_ADSB_RADIUS": {
      "Description": "Simulated standard deviation of radius in ADSB of another aircraft",
      "DisplayName": "ADSB radius stddev of another aircraft",
      "Units": "m"
    },
    "SIM_ADSB_TX": {
      "Description": "ADSB transceiever enable and disable",
      "DisplayName": "ADSB transmit enable",
      "Values": {
        "0": "Transceiever disable",
        "1": "Transceiever enable"
      }
    },
    "SIM_ADSB_TYPES": {
      "Bitmask": {
        "0": "MAVLink",
        "3": "SageTechMXS"
      },
      "Description": "specifies which simulated ADSB types are active",
      "DisplayName": "Simulated ADSB Type mask",
      "User": "Advanced"
    },
    "SIM_AHRS_OFF_PIT": {
      "Description": "Pitch offset applied to SIM AHRS type. For testing stepless handover between AHRS estimators.",
      "DisplayName": "Sim AHRS offset pitch",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "Units": "deg"
    },
    "SIM_AHRS_OFF_RLL": {
      "Description": "Roll offset applied to SIM AHRS type. For testing stepless handover between AHRS estimators.",
      "DisplayName": "Sim AHRS offset roll",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "Units": "deg"
    },
    "SIM_AHRS_OFF_YAW": {
      "Description": "Yaw offset applied to SIM AHRS type. For testing stepless handover between AHRS estimators.",
      "DisplayName": "Sim AHRS offset yaw",
      "Range": {
        "high": "10",
        "low": "-10"
      },
      "Units": "deg"
    },
    "SIM_BARO_COUNT": {
      "Description": "Number of simulated baros to create in SITL",
      "DisplayName": "Baro count",
      "Range": {
        "high": "3",
        "low": "0"
      }
    },
    "SIM_BATT_CAP_AH": {
      "Description": "Simulated battery capacity. Changes re-initialize the state of charge of the battery. Set to 0 for unlimited capacity. Value ignored when receiving battery state updates from an external source.",
      "DisplayName": "Simulated battery capacity",
      "Units": "Ah",
      "User": "Advanced"
    },
    "SIM_BATT_RES_OHM": {
      "Description": "Simulated battery internal resistance, used to model voltage sag under load (sag = current * resistance) and temperature growth. A negative value implies \"use previous resistance\", which is the default in order that a model-provided resistance is the default behavior. Set to 0 to disable voltage sag and temperature growth entirely.",
      "DisplayName": "Simulated battery internal resistance",
      "RebootRequired": "True",
      "Units": "Ohm",
      "User": "Advanced"
    },
    "SIM_BATT_VOLTAGE": {
      "Description": "Simulated battery resting voltage (no load sag). Defaults to and clipped to the battery model's maximum voltage. Changes re-initialize the state of charge, and values below the maximum indicate a partially-charged battery. For batteries with unlimited capacity, see `SIM_BATT_CAP_AH`. Value ignored when receiving battery state updates from an external source.",
      "DisplayName": "Simulated battery resting voltage",
      "Units": "V",
      "User": "Advanced"
    },
    "SIM_BAUDLIMIT_EN": {
      "Description": "SITL enable bandwidth limitting on telemetry ports with non-zero values",
      "DisplayName": "Telemetry bandwidth limitting"
    },
    "SIM_BRD_TRIM_X": {
      "Description": "Rigid board mounting offset (roll, pitch, yaw in radians) applied as a rotation to the simulated accelerometers, gyros and compasses, as a tilted autopilot mounting would be. Intended to be cancelled by AHRS_TRIM. (X-axis)",
      "DisplayName": "Board mounting trim",
      "User": "Advanced"
    },
    "SIM_BRD_TRIM_Y": {
      "Description": "Rigid board mounting offset (roll, pitch, yaw in radians) applied as a rotation to the simulated accelerometers, gyros and compasses, as a tilted autopilot mounting would be. Intended to be cancelled by AHRS_TRIM. (Y-axis)",
      "DisplayName": "Board mounting trim",
      "User": "Advanced"
    },
    "SIM_BRD_TRIM_Z": {
      "Description": "Rigid board mounting offset (roll, pitch, yaw in radians) applied as a rotation to the simulated accelerometers, gyros and compasses, as a tilted autopilot mounting would be. Intended to be cancelled by AHRS_TRIM. (Z-axis)",
      "DisplayName": "Board mounting trim",
      "User": "Advanced"
    },
    "SIM_BUOYANCY": {
      "Description": "Net buoyancy force (in Newtons). 0 is neutrally buoyant, negative means the vehicle sinks.",
      "DisplayName": "Buoyancy"
    },
    "SIM_CAN_SRV_MSK": {
      "Bitmask": {
        "0": "Servo 1",
        "1": "Servo 2",
        "10": "Servo 11",
        "11": "Servo 12",
        "12": "Servo 13",
        "13": "Servo 14",
        "14": "Servo 15",
        "15": "Servo 16",
        "16": "Servo 17",
        "17": "Servo 18",
        "18": "Servo 19",
        "19": "Servo 20",
        "2": "Servo 3",
        "20": "Servo 21",
        "21": "Servo 22",
        "22": "Servo 23",
        "23": "Servo 24",
        "24": "Servo 25",
        "25": "Servo 26",
        "26": "Servo 27",
        "27": "Servo 28",
        "28": "Servo 29",
        "29": "Servo 30",
        "3": "Servo 4",
        "30": "Servo 31",
        "31": "Servo 32",
        "4": "Servo 5",
        "5": "Servo 6",
        "6": "Servo 7",
        "7": "Servo 8",
        "8": "Servo 9",
        "9": "Servo 10"
      },
      "Description": "The set of actuators controlled externally by CAN SITL AP_Periph",
      "DisplayName": "Mask of CAN servos/ESCs",
      "User": "Advanced"
    },
    "SIM_CAN_TYPE1": {
      "Description": "transport type for first CAN interface",
      "DisplayName": "transport type for first CAN interface",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "MulticastUDP",
        "2": "SocketCAN"
      }
    },
    "SIM_CAN_TYPE2": {
      "Description": "transport type for second CAN interface",
      "DisplayName": "transport type for second CAN interface",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "MulticastUDP",
        "2": "SocketCAN"
      }
    },
    "SIM_CLAMP_CH": {
      "Description": "If non-zero the vehicle will be clamped in position until the value on this servo channel passes 1800PWM",
      "DisplayName": "Simulated Clamp Channel"
    },
    "SIM_DRIFT_SPEED": {
      "Description": "Gyro drift rate of change in degrees/second/minute",
      "DisplayName": "Gyro drift speed"
    },
    "SIM_DRIFT_TIME": {
      "Description": "Gyro drift duration of one full drift cycle (period in minutes)",
      "DisplayName": "Gyro drift time"
    },
    "SIM_EFI_TYPE": {
      "Description": "Different types of Electronic Fuel Injection (EFI) systems",
      "DisplayName": "Type of Electronic Fuel Injection",
      "Values": {
        "0": "None",
        "1": "MegaSquirt EFI system",
        "2": "L\u00f6weheiser EFI system",
        "8": "Hirth engines"
      }
    },
    "SIM_ENGINE_FAIL": {
      "Bitmask": {
        "0": "Servo 1",
        "1": "Servo 2",
        "10": "Servo 11",
        "11": "Servo 12",
        "12": "Servo 13",
        "13": "Servo 14",
        "14": "Servo 15",
        "15": "Servo 16",
        "16": "Servo 17",
        "17": "Servo 18",
        "18": "Servo 19",
        "19": "Servo 20",
        "2": "Servo 3",
        "20": "Servo 21",
        "21": "Servo 22",
        "22": "Servo 23",
        "23": "Servo 24",
        "24": "Servo 25",
        "25": "Servo 26",
        "26": "Servo 27",
        "27": "Servo 28",
        "28": "Servo 29",
        "29": "Servo 30",
        "3": "Servo 4",
        "30": "Servo 31",
        "31": "Servo 32",
        "4": "Servo 5",
        "5": "Servo 6",
        "6": "Servo 7",
        "7": "Servo 8",
        "8": "Servo 9",
        "9": "Servo 10"
      },
      "Description": "mask of motors which SIM_ENGINE_MUL will be applied to",
      "DisplayName": "Engine Fail Mask"
    },
    "SIM_ENGINE_MUL": {
      "Description": "Thrust from Motors in SIM_ENGINE_FAIL will be multiplied by this factor",
      "DisplayName": "Engine failure thrust scaler",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "SIM_ESC_ARM_RPM": {
      "Description": "Simulated RPM when motors are armed",
      "DisplayName": "ESC RPM when armed",
      "User": "Advanced"
    },
    "SIM_ESC_TELEM": {
      "Description": "enable perfect simulated ESC telemetry",
      "DisplayName": "Simulated ESC Telemetry",
      "User": "Advanced"
    },
    "SIM_FLOAT_EXCEPT": {
      "Description": "If set, if a numerical error occurs SITL will die with a floating point exception.",
      "DisplayName": "Generate floating point exceptions",
      "User": "Advanced"
    },
    "SIM_FLOW_DELAY": {
      "Description": "Opflow data delay",
      "DisplayName": "Opflow Delay",
      "Units": "ms"
    },
    "SIM_FLOW_ENABLE": {
      "Description": "Enable simulated Optical Flow sensor",
      "DisplayName": "Opflow Enable",
      "Values": {
        "0": "Disable",
        "1": "Enabled"
      }
    },
    "SIM_FLOW_POS_X": {
      "Description": "XYZ position of the optical flow sensor focal point relative to the body frame origin (X-axis)",
      "DisplayName": "Opflow Pos",
      "Units": "m"
    },
    "SIM_FLOW_POS_Y": {
      "Description": "XYZ position of the optical flow sensor focal point relative to the body frame origin (Y-axis)",
      "DisplayName": "Opflow Pos",
      "Units": "m"
    },
    "SIM_FLOW_POS_Z": {
      "Description": "XYZ position of the optical flow sensor focal point relative to the body frame origin (Z-axis)",
      "DisplayName": "Opflow Pos",
      "Units": "m"
    },
    "SIM_FLOW_RATE": {
      "Description": "Opflow Data Rate",
      "DisplayName": "Opflow Rate",
      "Units": "Hz"
    },
    "SIM_FLOW_RND": {
      "Description": "Optical Flow sensor measurement noise",
      "DisplayName": "Opflow noise",
      "Units": "rad/s"
    },
    "SIM_GND_BEHAV": {
      "Description": "Ground behavior of aircraft (tailsitter, no movement, forward only)",
      "DisplayName": "Ground behavior"
    },
    "SIM_GPS_LOG_NUM": {
      "Description": "Log number for GPS:update_file()",
      "DisplayName": "GPS Log Number"
    },
    "SIM_GYR1_BIAS_X": {
      "Description": "First Gyro bias (X-axis)",
      "DisplayName": "First Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR1_BIAS_Y": {
      "Description": "First Gyro bias (Y-axis)",
      "DisplayName": "First Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR1_BIAS_Z": {
      "Description": "First Gyro bias (Z-axis)",
      "DisplayName": "First Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR1_RND": {
      "Description": "scaling factor for simulated vibration from motors",
      "DisplayName": "Gyro 1 motor noise factor",
      "User": "Advanced"
    },
    "SIM_GYR1_SCALE_X": {
      "Description": "scaling factors applied to simulated gyroscope (X-axis)",
      "DisplayName": "Gyro 1 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR1_SCALE_Y": {
      "Description": "scaling factors applied to simulated gyroscope (Y-axis)",
      "DisplayName": "Gyro 1 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR1_SCALE_Z": {
      "Description": "scaling factors applied to simulated gyroscope (Z-axis)",
      "DisplayName": "Gyro 1 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR2_BIAS_X": {
      "Description": "Second Gyro bias (X-axis)",
      "DisplayName": "Second Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR2_BIAS_Y": {
      "Description": "Second Gyro bias (Y-axis)",
      "DisplayName": "Second Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR2_BIAS_Z": {
      "Description": "Second Gyro bias (Z-axis)",
      "DisplayName": "Second Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR2_RND": {
      "Description": "scaling factor for simulated vibration from motors",
      "DisplayName": "Gyro 2 motor noise factor",
      "User": "Advanced"
    },
    "SIM_GYR2_SCALE_X": {
      "Description": "scaling factors applied to simulated gyroscope (X-axis)",
      "DisplayName": "Gyro 2 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR2_SCALE_Y": {
      "Description": "scaling factors applied to simulated gyroscope (Y-axis)",
      "DisplayName": "Gyro 2 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR2_SCALE_Z": {
      "Description": "scaling factors applied to simulated gyroscope (Z-axis)",
      "DisplayName": "Gyro 2 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR3_BIAS_X": {
      "Description": "Third Gyro bias (X-axis)",
      "DisplayName": "Third Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR3_BIAS_Y": {
      "Description": "Third Gyro bias (Y-axis)",
      "DisplayName": "Third Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR3_BIAS_Z": {
      "Description": "Third Gyro bias (Z-axis)",
      "DisplayName": "Third Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR3_RND": {
      "Description": "scaling factor for simulated vibration from motors",
      "DisplayName": "Gyro 3 motor noise factor",
      "User": "Advanced"
    },
    "SIM_GYR3_SCALE_X": {
      "Description": "scaling factors applied to simulated gyroscope (X-axis)",
      "DisplayName": "Gyro 3 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR3_SCALE_Y": {
      "Description": "scaling factors applied to simulated gyroscope (Y-axis)",
      "DisplayName": "Gyro 3 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR3_SCALE_Z": {
      "Description": "scaling factors applied to simulated gyroscope (Z-axis)",
      "DisplayName": "Gyro 3 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR4_BIAS_X": {
      "Description": "Fourth Gyro bias (X-axis)",
      "DisplayName": "Fourth Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR4_BIAS_Y": {
      "Description": "Fourth Gyro bias (Y-axis)",
      "DisplayName": "Fourth Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR4_BIAS_Z": {
      "Description": "Fourth Gyro bias (Z-axis)",
      "DisplayName": "Fourth Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR4_RND": {
      "Description": "scaling factor for simulated vibration from motors",
      "DisplayName": "Gyro 4 motor noise factor",
      "User": "Advanced"
    },
    "SIM_GYR4_SCALE_X": {
      "Description": "scaling factors applied to simulated gyroscope (X-axis)",
      "DisplayName": "Gyro 4 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR4_SCALE_Y": {
      "Description": "scaling factors applied to simulated gyroscope (Y-axis)",
      "DisplayName": "Gyro 4 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR4_SCALE_Z": {
      "Description": "scaling factors applied to simulated gyroscope (Z-axis)",
      "DisplayName": "Gyro 4 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR5_BIAS_X": {
      "Description": "Fifth Gyro bias (X-axis)",
      "DisplayName": "Fifth Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR5_BIAS_Y": {
      "Description": "Fifth Gyro bias (Y-axis)",
      "DisplayName": "Fifth Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR5_BIAS_Z": {
      "Description": "Fifth Gyro bias (Z-axis)",
      "DisplayName": "Fifth Gyro bias",
      "Units": "rad/s",
      "User": "Advanced"
    },
    "SIM_GYR5_RND": {
      "Description": "scaling factor for simulated vibration from motors",
      "DisplayName": "Gyro 5 motor noise factor",
      "User": "Advanced"
    },
    "SIM_GYR5_SCALE_X": {
      "Description": "scaling factors applied to simulated gyroscope (X-axis)",
      "DisplayName": "Gyro 5 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR5_SCALE_Y": {
      "Description": "scaling factors applied to simulated gyroscope (Y-axis)",
      "DisplayName": "Gyro 5 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR5_SCALE_Z": {
      "Description": "scaling factors applied to simulated gyroscope (Z-axis)",
      "DisplayName": "Gyro 5 scaling factor",
      "User": "Advanced"
    },
    "SIM_GYR_FAIL_MSK": {
      "Description": "Determines if the gyro reading updates are stopped when for an IMU simulated failure by ACCELx_FAIL params",
      "DisplayName": "Gyro Failure Mask",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Readings stopped"
      }
    },
    "SIM_GYR_FILE_RW": {
      "Description": "Read and write gyro data to/from files",
      "DisplayName": "Gyro data to/from files",
      "Values": {
        "0": "Stop writing data",
        "1": "Read data from file",
        "2": "Write data to a file",
        "3": "Read data from file and stop on EOF"
      }
    },
    "SIM_IMUT1_ACC1_X": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT1_ACC1_Y": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT1_ACC1_Z": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT1_ACC2_X": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT1_ACC2_Y": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT1_ACC2_Z": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT1_ACC3_X": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT1_ACC3_Y": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT1_ACC3_Z": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT1_ENABLE": {
      "Description": "Enable the injection of temperature disturbance to the accelerometer and gyroscope data to simulate temperature calibration",
      "DisplayName": "Enable simulated temperature disturbance for sensor data",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enabled",
        "2": "Learn Calibration"
      }
    },
    "SIM_IMUT1_GYR1_X": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT1_GYR1_Y": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT1_GYR1_Z": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT1_GYR2_X": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT1_GYR2_Y": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT1_GYR2_Z": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT1_GYR3_X": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT1_GYR3_Y": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT1_GYR3_Z": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT1_TMAX": {
      "Description": "The maximum simulated temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",
      "DisplayName": "Simulated temperature calibration max",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_IMUT1_TMIN": {
      "Description": "The minimum simulated temperature that the calibration is valid for",
      "DisplayName": "Simulated temperature calibration min",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_IMUT2_ACC1_X": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT2_ACC1_Y": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT2_ACC1_Z": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT2_ACC2_X": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT2_ACC2_Y": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT2_ACC2_Z": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT2_ACC3_X": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT2_ACC3_Y": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT2_ACC3_Z": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT2_ENABLE": {
      "Description": "Enable the injection of temperature disturbance to the accelerometer and gyroscope data to simulate temperature calibration",
      "DisplayName": "Enable simulated temperature disturbance for sensor data",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enabled",
        "2": "Learn Calibration"
      }
    },
    "SIM_IMUT2_GYR1_X": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT2_GYR1_Y": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT2_GYR1_Z": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT2_GYR2_X": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT2_GYR2_Y": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT2_GYR2_Z": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT2_GYR3_X": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT2_GYR3_Y": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT2_GYR3_Z": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT2_TMAX": {
      "Description": "The maximum simulated temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",
      "DisplayName": "Simulated temperature calibration max",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_IMUT2_TMIN": {
      "Description": "The minimum simulated temperature that the calibration is valid for",
      "DisplayName": "Simulated temperature calibration min",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_IMUT3_ACC1_X": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT3_ACC1_Y": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT3_ACC1_Z": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT3_ACC2_X": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT3_ACC2_Y": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT3_ACC2_Z": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT3_ACC3_X": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT3_ACC3_Y": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT3_ACC3_Z": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT3_ENABLE": {
      "Description": "Enable the injection of temperature disturbance to the accelerometer and gyroscope data to simulate temperature calibration",
      "DisplayName": "Enable simulated temperature disturbance for sensor data",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enabled",
        "2": "Learn Calibration"
      }
    },
    "SIM_IMUT3_GYR1_X": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT3_GYR1_Y": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT3_GYR1_Z": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT3_GYR2_X": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT3_GYR2_Y": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT3_GYR2_Z": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT3_GYR3_X": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT3_GYR3_Y": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT3_GYR3_Z": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT3_TMAX": {
      "Description": "The maximum simulated temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",
      "DisplayName": "Simulated temperature calibration max",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_IMUT3_TMIN": {
      "Description": "The minimum simulated temperature that the calibration is valid for",
      "DisplayName": "Simulated temperature calibration min",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_IMUT4_ACC1_X": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT4_ACC1_Y": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT4_ACC1_Z": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT4_ACC2_X": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT4_ACC2_Y": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT4_ACC2_Z": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT4_ACC3_X": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT4_ACC3_Y": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT4_ACC3_Z": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT4_ENABLE": {
      "Description": "Enable the injection of temperature disturbance to the accelerometer and gyroscope data to simulate temperature calibration",
      "DisplayName": "Enable simulated temperature disturbance for sensor data",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enabled",
        "2": "Learn Calibration"
      }
    },
    "SIM_IMUT4_GYR1_X": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT4_GYR1_Y": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT4_GYR1_Z": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT4_GYR2_X": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT4_GYR2_Y": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT4_GYR2_Z": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT4_GYR3_X": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT4_GYR3_Y": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT4_GYR3_Z": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT4_TMAX": {
      "Description": "The maximum simulated temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",
      "DisplayName": "Simulated temperature calibration max",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_IMUT4_TMIN": {
      "Description": "The minimum simulated temperature that the calibration is valid for",
      "DisplayName": "Simulated temperature calibration min",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_IMUT5_ACC1_X": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT5_ACC1_Y": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT5_ACC1_Z": {
      "Description": "This is the applied simulated acceleration to the 1st accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT5_ACC2_X": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT5_ACC2_Y": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT5_ACC2_Z": {
      "Description": "This is the applied simulated acceleration to the 2nd accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT5_ACC3_X": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (X-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT5_ACC3_Y": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (Y-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT5_ACC3_Z": {
      "Description": "This is the applied simulated acceleration to the 3rd accelerometer (Z-axis)",
      "DisplayName": "Applied simulated acceleration to accelerometer",
      "User": "Advanced"
    },
    "SIM_IMUT5_ENABLE": {
      "Description": "Enable the injection of temperature disturbance to the accelerometer and gyroscope data to simulate temperature calibration",
      "DisplayName": "Enable simulated temperature disturbance for sensor data",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enabled",
        "2": "Learn Calibration"
      }
    },
    "SIM_IMUT5_GYR1_X": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT5_GYR1_Y": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT5_GYR1_Z": {
      "Description": "This is the applied simulated angular rate to the 1st gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT5_GYR2_X": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT5_GYR2_Y": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT5_GYR2_Z": {
      "Description": "This is the applied simulated angular rate to the 2nd gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT5_GYR3_X": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (X-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT5_GYR3_Y": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (Y-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT5_GYR3_Z": {
      "Description": "This is the applied simulated angular rate to the 3rd gyroscope (Z-axis)",
      "DisplayName": "Applied simulated angular rate to gyroscope",
      "User": "Advanced"
    },
    "SIM_IMUT5_TMAX": {
      "Description": "The maximum simulated temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration",
      "DisplayName": "Simulated temperature calibration max",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_IMUT5_TMIN": {
      "Description": "The minimum simulated temperature that the calibration is valid for",
      "DisplayName": "Simulated temperature calibration min",
      "Range": {
        "high": "80",
        "low": "-70"
      },
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_IMUT_END": {
      "Description": "Ending IMU temperature of a curve",
      "DisplayName": "IMU temperature end"
    },
    "SIM_IMUT_FIXED": {
      "Description": "IMU fixed temperature by user",
      "DisplayName": "IMU fixed temperature"
    },
    "SIM_IMUT_START": {
      "Description": "Starting IMU temperature of a curve",
      "DisplayName": "IMU temperature start"
    },
    "SIM_IMUT_TCONST": {
      "Description": "IMU temperature time constant of the curve",
      "DisplayName": "IMU temperature time constant"
    },
    "SIM_IMU_COUNT": {
      "Description": "Number of simulated IMUs to create",
      "DisplayName": "IMU count"
    },
    "SIM_IMU_ORIENT": {
      "Description": "Simulated orientation of the IMUs",
      "DisplayName": "IMU orientation",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "Yaw45",
        "10": "Yaw90Roll180",
        "100": "Custom 4.1 and older",
        "101": "Custom 1",
        "102": "Custom 2",
        "11": "Yaw135Roll180",
        "12": "Pitch180",
        "13": "Yaw225Roll180",
        "14": "Yaw270Roll180",
        "15": "Yaw315Roll180",
        "16": "Roll90",
        "17": "Yaw45Roll90",
        "18": "Yaw90Roll90",
        "19": "Yaw135Roll90",
        "2": "Yaw90",
        "20": "Roll270",
        "21": "Yaw45Roll270",
        "22": "Yaw90Roll270",
        "23": "Yaw135Roll270",
        "24": "Pitch90",
        "25": "Pitch270",
        "26": "Yaw90Pitch180",
        "27": "Yaw270Pitch180",
        "28": "Pitch90Roll90",
        "29": "Pitch90Roll180",
        "3": "Yaw135",
        "30": "Pitch90Roll270",
        "31": "Pitch180Roll90",
        "32": "Pitch180Roll270",
        "33": "Pitch270Roll90",
        "34": "Pitch270Roll180",
        "35": "Pitch270Roll270",
        "36": "Yaw90Pitch180Roll90",
        "37": "Yaw270Roll90",
        "38": "Yaw293Pitch68Roll180",
        "39": "Pitch315",
        "4": "Yaw180",
        "40": "Pitch315Roll90",
        "42": "Roll45",
        "43": "Roll315",
        "5": "Yaw225",
        "6": "Yaw270",
        "7": "Yaw315",
        "8": "Roll180",
        "9": "Yaw45Roll180"
      }
    },
    "SIM_IMU_POS_X": {
      "Description": "XYZ position of the IMU accelerometer relative to the body frame origin (X-axis)",
      "DisplayName": "IMU Offsets",
      "Units": "m"
    },
    "SIM_IMU_POS_Y": {
      "Description": "XYZ position of the IMU accelerometer relative to the body frame origin (Y-axis)",
      "DisplayName": "IMU Offsets",
      "Units": "m"
    },
    "SIM_IMU_POS_Z": {
      "Description": "XYZ position of the IMU accelerometer relative to the body frame origin (Z-axis)",
      "DisplayName": "IMU Offsets",
      "Units": "m"
    },
    "SIM_INIT_ALT_OFS": {
      "Description": "GPS initial alt offset from origin",
      "DisplayName": "Initial Altitude Offset"
    },
    "SIM_INIT_LAT_OFS": {
      "Description": "GPS initial lat offset from origin",
      "DisplayName": "Initial Latitude Offset"
    },
    "SIM_INIT_LON_OFS": {
      "Description": "GPS initial lon offset from origin",
      "DisplayName": "Initial Longitude Offset"
    },
    "SIM_INS_THR_MIN": {
      "Description": "Minimum throttle for simulated ins noise",
      "DisplayName": "Minimum throttle INS noise"
    },
    "SIM_JSON_MASTER": {
      "Description": "the instance number to  take servos from",
      "DisplayName": "JSON master instance"
    },
    "SIM_LED_LAYOUT": {
      "Description": "LED layout config value",
      "DisplayName": "LED layout"
    },
    "SIM_LOOP_DELAY": {
      "Description": "Extra time delay per main loop",
      "DisplayName": "Extra delay per main loop",
      "Units": "us"
    },
    "SIM_MAG1_DEVID": {
      "Description": "Device ID of simulated compass 1",
      "DisplayName": "MAG1 Device ID",
      "User": "Advanced"
    },
    "SIM_MAG1_DIA_X": {
      "Description": "DIA_X in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron diagonal X component",
      "User": "Advanced"
    },
    "SIM_MAG1_DIA_Y": {
      "Description": "DIA_Y in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron diagonal Y component",
      "User": "Advanced"
    },
    "SIM_MAG1_DIA_Z": {
      "Description": "DIA_Z in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron diagonal Z component",
      "User": "Advanced"
    },
    "SIM_MAG1_FAIL": {
      "Description": "Simulated failure of MAG1",
      "DisplayName": "MAG1 Failure",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "MAG1 Failure"
      }
    },
    "SIM_MAG1_ODI_X": {
      "Description": "ODI_X in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron off-diagonal X component",
      "User": "Advanced"
    },
    "SIM_MAG1_ODI_Y": {
      "Description": "ODI_Y in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron off-diagonal Y component",
      "User": "Advanced"
    },
    "SIM_MAG1_ODI_Z": {
      "Description": "ODI_Z in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron off-diagonal Z component",
      "User": "Advanced"
    },
    "SIM_MAG1_OFS_X": {
      "Description": "Magnetometer offset injected into the simulation (X-axis)",
      "DisplayName": "Magnetometer offset applied to SITL",
      "User": "Advanced"
    },
    "SIM_MAG1_OFS_Y": {
      "Description": "Magnetometer offset injected into the simulation (Y-axis)",
      "DisplayName": "Magnetometer offset applied to SITL",
      "User": "Advanced"
    },
    "SIM_MAG1_OFS_Z": {
      "Description": "Magnetometer offset injected into the simulation (Z-axis)",
      "DisplayName": "Magnetometer offset applied to SITL",
      "User": "Advanced"
    },
    "SIM_MAG1_ORIENT": {
      "Description": "MAG1 external compass orientation",
      "DisplayName": "MAG1 Orientation",
      "User": "Advanced"
    },
    "SIM_MAG1_SCALING": {
      "Description": "Scale the compass 1 to simulate sensor scale factor errors",
      "DisplayName": "MAG1 Scaling factor",
      "User": "Advanced"
    },
    "SIM_MAG2_DEVID": {
      "Description": "Device ID of simulated compass 2",
      "DisplayName": "MAG2 Device ID",
      "User": "Advanced"
    },
    "SIM_MAG2_DIA_X": {
      "Description": "DIA_X in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron diagonal X component",
      "User": "Advanced"
    },
    "SIM_MAG2_DIA_Y": {
      "Description": "DIA_Y in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron diagonal Y component",
      "User": "Advanced"
    },
    "SIM_MAG2_DIA_Z": {
      "Description": "DIA_Z in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron diagonal Z component",
      "User": "Advanced"
    },
    "SIM_MAG2_FAIL": {
      "Description": "Simulated failure of MAG2",
      "DisplayName": "MAG2 Failure",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "MAG2 Failure"
      }
    },
    "SIM_MAG2_ODI_X": {
      "Description": "ODI_X in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron off-diagonal X component",
      "User": "Advanced"
    },
    "SIM_MAG2_ODI_Y": {
      "Description": "ODI_Y in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron off-diagonal Y component",
      "User": "Advanced"
    },
    "SIM_MAG2_ODI_Z": {
      "Description": "ODI_Z in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron off-diagonal Z component",
      "User": "Advanced"
    },
    "SIM_MAG2_OFS_X": {
      "Description": "Magnetometer offset injected into the simulation (X-axis)",
      "DisplayName": "Magnetometer offset applied to SITL",
      "User": "Advanced"
    },
    "SIM_MAG2_OFS_Y": {
      "Description": "Magnetometer offset injected into the simulation (Y-axis)",
      "DisplayName": "Magnetometer offset applied to SITL",
      "User": "Advanced"
    },
    "SIM_MAG2_OFS_Z": {
      "Description": "Magnetometer offset injected into the simulation (Z-axis)",
      "DisplayName": "Magnetometer offset applied to SITL",
      "User": "Advanced"
    },
    "SIM_MAG2_ORIENT": {
      "Description": "MAG2 external compass orientation",
      "DisplayName": "MAG2 Orientation",
      "User": "Advanced"
    },
    "SIM_MAG2_SCALING": {
      "Description": "Scale the compass 2 to simulate sensor scale factor errors",
      "DisplayName": "MAG2 Scaling factor",
      "User": "Advanced"
    },
    "SIM_MAG3_DEVID": {
      "Description": "Device ID of simulated compass 3",
      "DisplayName": "MAG3 Device ID",
      "User": "Advanced"
    },
    "SIM_MAG3_DIA_X": {
      "Description": "DIA_X in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron diagonal X component",
      "User": "Advanced"
    },
    "SIM_MAG3_DIA_Y": {
      "Description": "DIA_Y in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron diagonal Y component",
      "User": "Advanced"
    },
    "SIM_MAG3_DIA_Z": {
      "Description": "DIA_Z in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron diagonal Z component",
      "User": "Advanced"
    },
    "SIM_MAG3_FAIL": {
      "Description": "Simulated failure of MAG3",
      "DisplayName": "MAG3 Failure",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "MAG3 Failure"
      }
    },
    "SIM_MAG3_ODI_X": {
      "Description": "ODI_X in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron off-diagonal X component",
      "User": "Advanced"
    },
    "SIM_MAG3_ODI_Y": {
      "Description": "ODI_Y in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron off-diagonal Y component",
      "User": "Advanced"
    },
    "SIM_MAG3_ODI_Z": {
      "Description": "ODI_Z in the magnetometer soft-iron calibration matrix: [[DIA_X, ODI_X, ODI_Y], [ODI_X, DIA_Y, ODI_Z], [ODI_Y, ODI_Z, DIA_Z]]",
      "DisplayName": "Magnetometer soft-iron off-diagonal Z component",
      "User": "Advanced"
    },
    "SIM_MAG3_OFS_X": {
      "Description": "Magnetometer offset injected into the simulation (X-axis)",
      "DisplayName": "Magnetometer offset applied to SITL",
      "User": "Advanced"
    },
    "SIM_MAG3_OFS_Y": {
      "Description": "Magnetometer offset injected into the simulation (Y-axis)",
      "DisplayName": "Magnetometer offset applied to SITL",
      "User": "Advanced"
    },
    "SIM_MAG3_OFS_Z": {
      "Description": "Magnetometer offset injected into the simulation (Z-axis)",
      "DisplayName": "Magnetometer offset applied to SITL",
      "User": "Advanced"
    },
    "SIM_MAG3_ORIENT": {
      "Description": "MAG3 external compass orientation",
      "DisplayName": "MAG3 Orientation",
      "User": "Advanced"
    },
    "SIM_MAG3_SCALING": {
      "Description": "Scale the compass 3 to simulate sensor scale factor errors",
      "DisplayName": "MAG3 Scaling factor",
      "User": "Advanced"
    },
    "SIM_MAG4_DEVID": {
      "Description": "Device ID of simulated compass 4",
      "DisplayName": "MAG2 Device ID",
      "User": "Advanced"
    },
    "SIM_MAG5_DEVID": {
      "Description": "Device ID of simulated compass 5",
      "DisplayName": "MAG5 Device ID",
      "User": "Advanced"
    },
    "SIM_MAG6_DEVID": {
      "Description": "Device ID of simulated compass 6",
      "DisplayName": "MAG6 Device ID",
      "User": "Advanced"
    },
    "SIM_MAG7_DEVID": {
      "Description": "Device ID of simulated compass 7",
      "DisplayName": "MAG7 Device ID",
      "User": "Advanced"
    },
    "SIM_MAG8_DEVID": {
      "Description": "Device ID of simulated compass 8",
      "DisplayName": "MAG8 Device ID",
      "User": "Advanced"
    },
    "SIM_MAG_ALY_HGT": {
      "Description": "Height above ground where anomally strength has decayed to 1/8 of the ground level value",
      "DisplayName": "Magnetic anomaly height",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_MAG_ALY_X": {
      "Description": "Simulates localized magnetic field distortions at ground level that decays with altitude. (X-axis)",
      "DisplayName": "NED anomaly vector at ground level",
      "Units": "mGauss",
      "User": "Advanced"
    },
    "SIM_MAG_ALY_Y": {
      "Description": "Simulates localized magnetic field distortions at ground level that decays with altitude. (Y-axis)",
      "DisplayName": "NED anomaly vector at ground level",
      "Units": "mGauss",
      "User": "Advanced"
    },
    "SIM_MAG_ALY_Z": {
      "Description": "Simulates localized magnetic field distortions at ground level that decays with altitude. (Z-axis)",
      "DisplayName": "NED anomaly vector at ground level",
      "Units": "mGauss",
      "User": "Advanced"
    },
    "SIM_MAG_DELAY": {
      "Description": "Magnetometer measurement delay",
      "DisplayName": "Mag measurement delay",
      "Units": "ms",
      "User": "Advanced"
    },
    "SIM_MAG_MOT_X": {
      "Description": "Simulates distortion of magnetometer readings caused by motor current (X-axis)",
      "DisplayName": "Motor magnetic interference",
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "SIM_MAG_MOT_Y": {
      "Description": "Simulates distortion of magnetometer readings caused by motor current (Y-axis)",
      "DisplayName": "Motor magnetic interference",
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "SIM_MAG_MOT_Z": {
      "Description": "Simulates distortion of magnetometer readings caused by motor current (Z-axis)",
      "DisplayName": "Motor magnetic interference",
      "Units": "mGauss/A",
      "User": "Advanced"
    },
    "SIM_MAG_RND": {
      "Description": "Scaling factor for simulated vibration from motors",
      "DisplayName": "Mag motor noise factor",
      "User": "Advanced"
    },
    "SIM_MAG_SAVE_IDS": {
      "Description": "This forces saving of compass devids on startup so that simulated compasses start as calibrated",
      "DisplayName": "Save MAG devids on startup",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_ODOM_ENABLE": {
      "Description": "SITL odometry enabl",
      "DisplayName": "Odometry enable",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "SIM_OH_MASK": {
      "Description": "channels which are passed through to actual hardware when running sim on actual hardware",
      "DisplayName": "SIM-on_hardware Output Enable Mask"
    },
    "SIM_OH_RELAY_MSK": {
      "Description": "Allow relay output operation when running SIM-on-hardware",
      "DisplayName": "SIM-on_hardware Relay Enable Mask"
    },
    "SIM_OPOS_ALT": {
      "Description": "Specifies vehicle's startup altitude (AMSL)",
      "DisplayName": "Original Position (Altitude)",
      "User": "Advanced"
    },
    "SIM_OPOS_HDG": {
      "Description": "Specifies vehicle's startup heading (0-360)",
      "DisplayName": "Original Position (Heading)",
      "User": "Advanced"
    },
    "SIM_OPOS_LAT": {
      "Description": "Specifies vehicle's startup latitude",
      "DisplayName": "Original Position (Latitude)",
      "User": "Advanced"
    },
    "SIM_OPOS_LNG": {
      "Description": "Specifies vehicle's startup longitude",
      "DisplayName": "Original Position (Longitude)",
      "User": "Advanced"
    },
    "SIM_OSD_COLUMNS": {
      "Description": "Simulated OSD number of text columns",
      "DisplayName": "Simulated OSD number of text columns",
      "Range": {
        "high": "100",
        "low": "10"
      }
    },
    "SIM_OSD_ROWS": {
      "Description": "Simulated OSD number of text rows",
      "DisplayName": "Simulated OSD number of text rows",
      "Range": {
        "high": "100",
        "low": "10"
      }
    },
    "SIM_PIN_MASK": {
      "Description": "SITL GPIO emulation",
      "DisplayName": "GPIO emulation"
    },
    "SIM_RATE_HZ": {
      "Description": "SITL Loop rate",
      "DisplayName": "Loop rate",
      "Units": "Hz"
    },
    "SIM_RC_CHANCOUNT": {
      "Description": "SITL RC channel count",
      "DisplayName": "RC channel count"
    },
    "SIM_RC_FAIL": {
      "Description": "Allows you to emulate rc failures in sim",
      "DisplayName": "Simulated RC signal failure",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "No RC pusles",
        "2": "All Channels neutral except Throttle is 950us"
      }
    },
    "SIM_SHOVE_TIME": {
      "Description": "Force to the vehicle over a period of time",
      "DisplayName": "Time length for shove",
      "Units": "ms"
    },
    "SIM_SHOVE_X": {
      "Description": "Acceleration of shove to vehicle in x axis",
      "DisplayName": "Acceleration of shove x",
      "Units": "m/s/s"
    },
    "SIM_SHOVE_Y": {
      "Description": "Acceleration of shove to vehicle in y axis",
      "DisplayName": "Acceleration of shove y",
      "Units": "m/s/s"
    },
    "SIM_SHOVE_Z": {
      "Description": "Acceleration of shove to vehicle in z axis",
      "DisplayName": "Acceleration of shove z",
      "Units": "m/s/s"
    },
    "SIM_SONAR_GLITCH": {
      "Description": "Probablility a sonar glitch would happen",
      "DisplayName": "Sonar glitch probablility",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "User": "Advanced"
    },
    "SIM_SONAR_OFFSET": {
      "Description": "Sonar measurement offset, in meters. Can be used for error injection.",
      "DisplayName": "Sonar measurement offset.",
      "User": "Advanced"
    },
    "SIM_SONAR_POS_X": {
      "Description": "XYZ position of the sonar relative to the body frame origin (X-axis)",
      "DisplayName": "Sonar Offsets",
      "Units": "m"
    },
    "SIM_SONAR_POS_Y": {
      "Description": "XYZ position of the sonar relative to the body frame origin (Y-axis)",
      "DisplayName": "Sonar Offsets",
      "Units": "m"
    },
    "SIM_SONAR_POS_Z": {
      "Description": "XYZ position of the sonar relative to the body frame origin (Z-axis)",
      "DisplayName": "Sonar Offsets",
      "Units": "m"
    },
    "SIM_SONAR_RND": {
      "Description": "Scaling factor for simulated sonar noise",
      "DisplayName": "Sonar noise factor",
      "User": "Advanced"
    },
    "SIM_SONAR_ROT": {
      "Description": "Sonar rotation from rotations enumeration",
      "DisplayName": "Sonar rotation"
    },
    "SIM_SONAR_SCALE": {
      "Description": "Sonar conversion scale from distance to voltage",
      "DisplayName": "Sonar conversion scale",
      "Units": "m/V"
    },
    "SIM_SPEEDUP": {
      "Description": "Runs the simulation at multiples of normal speed. Do not use if realtime physics, like RealFlight, is being used",
      "DisplayName": "Sim Speedup",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Advanced"
    },
    "SIM_TEMP_BFACTOR": {
      "Description": "A pressure change with temperature that closely matches what has been observed with a ICM-20789",
      "DisplayName": "Baro temperature factor",
      "User": "Advanced"
    },
    "SIM_TEMP_BRD_OFF": {
      "Description": "Barometer board temperature offset from atmospheric temperature",
      "DisplayName": "Baro temperature offset",
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_TEMP_START": {
      "Description": "Baro start temperature",
      "DisplayName": "Start temperature",
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_TEMP_TCONST": {
      "Description": "Barometer warmup temperature time constant",
      "DisplayName": "Warmup time constant",
      "Units": "degC",
      "User": "Advanced"
    },
    "SIM_TERRAIN": {
      "Description": "Enable using terrain for height",
      "DisplayName": "Terrain Enable",
      "Values": {
        "0": "Disable",
        "1": "Enabled"
      }
    },
    "SIM_THML_SCENARI": {
      "Description": "Scenario for thermalling simulation, for soaring",
      "DisplayName": "Thermal scenarios"
    },
    "SIM_TIDE_DIR": {
      "Description": "Tide direction wave is coming from",
      "DisplayName": "Tide direction",
      "Units": "deg"
    },
    "SIM_TIDE_SPEED": {
      "Description": "Tide speed in simulation",
      "DisplayName": "Tide speed",
      "Units": "m/s"
    },
    "SIM_TIME_JITTER": {
      "Description": "Upper limit of random jitter in loop time",
      "DisplayName": "Loop time jitter",
      "Units": "us",
      "User": "Advanced"
    },
    "SIM_TWIST_TIME": {
      "Description": "Time that twist is applied on the vehicle",
      "DisplayName": "Twist time",
      "Units": "ms"
    },
    "SIM_TWIST_X": {
      "Description": "Rotational acceleration of twist x axis",
      "DisplayName": "Twist x",
      "Units": "rad/s/s"
    },
    "SIM_TWIST_Y": {
      "Description": "Rotational acceleration of twist y axis",
      "DisplayName": "Twist y",
      "Units": "rad/s/s"
    },
    "SIM_TWIST_Z": {
      "Description": "Rotational acceleration of twist z axis",
      "DisplayName": "Twist z",
      "Units": "rad/s/s"
    },
    "SIM_UART_LOSS": {
      "Description": "Sets percentage of outgoing byte loss on UARTs",
      "DisplayName": "UART byte loss percentage",
      "Units": "%",
      "User": "Advanced"
    },
    "SIM_VIB_FREQ_X": {
      "Description": "Frequency of vibration applied to IMU readings in SITL (X-axis)",
      "DisplayName": "Vibration frequency",
      "Units": "Hz"
    },
    "SIM_VIB_FREQ_Y": {
      "Description": "Frequency of vibration applied to IMU readings in SITL (Y-axis)",
      "DisplayName": "Vibration frequency",
      "Units": "Hz"
    },
    "SIM_VIB_FREQ_Z": {
      "Description": "Frequency of vibration applied to IMU readings in SITL (Z-axis)",
      "DisplayName": "Vibration frequency",
      "Units": "Hz"
    },
    "SIM_VIB_MOT_HMNC": {
      "Description": "Motor harmonics generated in SITL",
      "DisplayName": "Motor harmonics"
    },
    "SIM_VIB_MOT_MASK": {
      "Description": "Motor mask, allowing external simulators to mark motors",
      "DisplayName": "Motor mask"
    },
    "SIM_VIB_MOT_MAX": {
      "Description": "Max frequency to use as baseline for adding motor noise for the gyros and accels",
      "DisplayName": "Max motor vibration frequency",
      "Units": "Hz"
    },
    "SIM_VIB_MOT_MULT": {
      "Description": "Amplitude scaling of motor noise relative to gyro/accel noise",
      "DisplayName": "Vibration motor scale"
    },
    "SIM_WAVE_AMP": {
      "Description": "Wave amplitude in SITL",
      "DisplayName": "Wave amplitude",
      "Units": "m"
    },
    "SIM_WAVE_DIR": {
      "Description": "Direction wave is coming from",
      "DisplayName": "Wave direction",
      "Units": "deg"
    },
    "SIM_WAVE_ENABLE": {
      "Description": "Wave enable and modes",
      "DisplayName": "Wave enable",
      "Values": {
        "0": "disabled",
        "1": "roll and pitch",
        "2": "roll and pitch and heave"
      }
    },
    "SIM_WAVE_LENGTH": {
      "Description": "Wave length in SITL",
      "DisplayName": "Wave length",
      "Units": "m"
    },
    "SIM_WAVE_SPEED": {
      "Description": "Wave speed in SITL",
      "DisplayName": "Wave speed",
      "Units": "m/s"
    },
    "SIM_WIND_DIR": {
      "Description": "Allows you to set wind direction (true deg) in sim",
      "DisplayName": "Direction simulated wind is coming from",
      "Units": "deg",
      "User": "Advanced"
    },
    "SIM_WIND_DIR_Z": {
      "Description": "Allows you to set vertical wind direction (true deg) in sim. 0 means pure horizontal wind. 90 means pure updraft.",
      "DisplayName": "Simulated wind vertical direction",
      "Units": "deg",
      "User": "Advanced"
    },
    "SIM_WIND_SPD": {
      "Description": "Allows you to emulate wind in sim",
      "DisplayName": "Simulated Wind speed",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_WIND_T": {
      "Description": "Selects how wind varies from surface to WIND_T_ALT",
      "DisplayName": "Wind Profile Type",
      "User": "Advanced",
      "Values": {
        "0": "square law",
        "1": "none",
        "2": "linear-see WIND_T_COEF"
      }
    },
    "SIM_WIND_TC": {
      "Description": "this controls the time over which wind changes take effect",
      "DisplayName": "Wind variation time constant",
      "Units": "s",
      "User": "Advanced"
    },
    "SIM_WIND_TURB": {
      "Description": "Allows you to emulate random wind variations in sim",
      "DisplayName": "Simulated Wind variation",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_WIND_T_ALT": {
      "Description": "Altitude at which wind reaches full strength, decaying from full strength as altitude lowers to ground level",
      "DisplayName": "Full Wind Altitude",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_WIND_T_COEF": {
      "Description": "For linear wind profile,wind is reduced by (Altitude-WIND_T_ALT) x this value",
      "DisplayName": "Linear Wind Curve Coeff",
      "User": "Advanced"
    },
    "SIM_WOW_PIN": {
      "Description": "SITL set this simulated pin to true if vehicle is on ground",
      "DisplayName": "Weight on Wheels Pin",
      "User": "Advanced"
    }
  },
  "SIM_AIS_": {
    "SIM_AIS_COUNT": {
      "Description": "Total number of AIS simulated vessels",
      "DisplayName": "Number of AIS vessels"
    },
    "SIM_AIS_RADIUS": {
      "Description": "Simulated standard deviation of radius in AIS of a vessel",
      "DisplayName": "AIS radius stddev of vessels",
      "Units": "m"
    }
  },
  "SIM_ARSPD2_": {
    "SIM_ARSPD2_FAIL": {
      "Description": "Simulates Airspeed sensor 1 failure",
      "DisplayName": "Airspeed sensor failure",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_ARSPD2_FAILP": {
      "Description": "Simulated airspeed sensor failure pressure",
      "DisplayName": "Airspeed sensor failure pressure",
      "Units": "Pa",
      "User": "Advanced"
    },
    "SIM_ARSPD2_OFS": {
      "Description": "Simulated Airspeed sensor offset",
      "DisplayName": "Airspeed sensor offset",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_ARSPD2_PITOT": {
      "Description": "Simulated airspeed sensor pitot tube failure pressure",
      "DisplayName": "Airspeed pitot tube failure pressure",
      "Units": "Pa",
      "User": "Advanced"
    },
    "SIM_ARSPD2_RATIO": {
      "Description": "Simulated airspeed sensor ratio",
      "DisplayName": "Airspeed ratios",
      "User": "Advanced"
    },
    "SIM_ARSPD2_RND": {
      "Description": "Simulated Airspeed sensor noise",
      "DisplayName": "Airspeed sensor noise",
      "Units": "Pa",
      "User": "Advanced"
    },
    "SIM_ARSPD2_SIGN": {
      "Description": "Simulated airspeed sensor with reversed pitot/static connections",
      "DisplayName": "Airspeed signflip",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    }
  },
  "SIM_ARSPD_": {
    "SIM_ARSPD_FAIL": {
      "Description": "Simulates Airspeed sensor 1 failure",
      "DisplayName": "Airspeed sensor failure",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_ARSPD_FAILP": {
      "Description": "Simulated airspeed sensor failure pressure",
      "DisplayName": "Airspeed sensor failure pressure",
      "Units": "Pa",
      "User": "Advanced"
    },
    "SIM_ARSPD_OFS": {
      "Description": "Simulated Airspeed sensor offset",
      "DisplayName": "Airspeed sensor offset",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_ARSPD_PITOT": {
      "Description": "Simulated airspeed sensor pitot tube failure pressure",
      "DisplayName": "Airspeed pitot tube failure pressure",
      "Units": "Pa",
      "User": "Advanced"
    },
    "SIM_ARSPD_RATIO": {
      "Description": "Simulated airspeed sensor ratio",
      "DisplayName": "Airspeed ratios",
      "User": "Advanced"
    },
    "SIM_ARSPD_RND": {
      "Description": "Simulated Airspeed sensor noise",
      "DisplayName": "Airspeed sensor noise",
      "Units": "Pa",
      "User": "Advanced"
    },
    "SIM_ARSPD_SIGN": {
      "Description": "Simulated airspeed sensor with reversed pitot/static connections",
      "DisplayName": "Airspeed signflip",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    }
  },
  "SIM_BAR2_": {
    "SIM_BAR2_DELAY": {
      "Description": "Barometer data time delay",
      "DisplayName": "Barometer delay",
      "Units": "ms",
      "User": "Advanced"
    },
    "SIM_BAR2_DISABLE": {
      "Description": "Disable barometer in SITL",
      "DisplayName": "Barometer disable",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "SIM_BAR2_DRIFT": {
      "Description": "Barometer altitude drifts at this rate",
      "DisplayName": "Barometer altitude drift",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_BAR2_FREEZE": {
      "Description": "Freeze barometer to last recorded altitude",
      "DisplayName": "Barometer freeze",
      "User": "Advanced"
    },
    "SIM_BAR2_GEFF_M": {
      "Description": "Maximum simulated barometer altitude error from rotor-downwash ground effect, applied when motors are running. Decays linearly to zero at 2m AGL. Set to 0 to disable.",
      "DisplayName": "Barometer ground effect altitude error",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_BAR2_GLITCH": {
      "Description": "Barometer glitch height in SITL",
      "DisplayName": "Barometer glitch",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_BAR2_RND": {
      "Description": "Barometer noise in height",
      "DisplayName": "Barometer noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_BAR2_WCF_BAK": {
      "Description": "Barometer wind coefficient direction backward in SITL",
      "DisplayName": "Wind coefficient backward",
      "User": "Advanced"
    },
    "SIM_BAR2_WCF_DN": {
      "Description": "Barometer wind coefficient direction down in SITL",
      "DisplayName": "Wind coefficient down",
      "User": "Advanced"
    },
    "SIM_BAR2_WCF_FWD": {
      "Description": "Barometer wind coefficient direction forward in SITL",
      "DisplayName": "Wind coefficient forward",
      "User": "Advanced"
    },
    "SIM_BAR2_WCF_LFT": {
      "Description": "Barometer wind coefficient direction left in SITL",
      "DisplayName": "Wind coefficient left",
      "User": "Advanced"
    },
    "SIM_BAR2_WCF_RGT": {
      "Description": "Barometer wind coefficient direction right in SITL",
      "DisplayName": "Wind coefficient right",
      "User": "Advanced"
    },
    "SIM_BAR2_WCF_UP": {
      "Description": "Barometer wind coefficient direction up in SITL",
      "DisplayName": "Wind coefficient up",
      "User": "Advanced"
    }
  },
  "SIM_BAR3_": {
    "SIM_BAR3_DELAY": {
      "Description": "Barometer data time delay",
      "DisplayName": "Barometer delay",
      "Units": "ms",
      "User": "Advanced"
    },
    "SIM_BAR3_DISABLE": {
      "Description": "Disable barometer in SITL",
      "DisplayName": "Barometer disable",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "SIM_BAR3_DRIFT": {
      "Description": "Barometer altitude drifts at this rate",
      "DisplayName": "Barometer altitude drift",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_BAR3_FREEZE": {
      "Description": "Freeze barometer to last recorded altitude",
      "DisplayName": "Barometer freeze",
      "User": "Advanced"
    },
    "SIM_BAR3_GEFF_M": {
      "Description": "Maximum simulated barometer altitude error from rotor-downwash ground effect, applied when motors are running. Decays linearly to zero at 2m AGL. Set to 0 to disable.",
      "DisplayName": "Barometer ground effect altitude error",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_BAR3_GLITCH": {
      "Description": "Barometer glitch height in SITL",
      "DisplayName": "Barometer glitch",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_BAR3_RND": {
      "Description": "Barometer noise in height",
      "DisplayName": "Barometer noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_BAR3_WCF_BAK": {
      "Description": "Barometer wind coefficient direction backward in SITL",
      "DisplayName": "Wind coefficient backward",
      "User": "Advanced"
    },
    "SIM_BAR3_WCF_DN": {
      "Description": "Barometer wind coefficient direction down in SITL",
      "DisplayName": "Wind coefficient down",
      "User": "Advanced"
    },
    "SIM_BAR3_WCF_FWD": {
      "Description": "Barometer wind coefficient direction forward in SITL",
      "DisplayName": "Wind coefficient forward",
      "User": "Advanced"
    },
    "SIM_BAR3_WCF_LFT": {
      "Description": "Barometer wind coefficient direction left in SITL",
      "DisplayName": "Wind coefficient left",
      "User": "Advanced"
    },
    "SIM_BAR3_WCF_RGT": {
      "Description": "Barometer wind coefficient direction right in SITL",
      "DisplayName": "Wind coefficient right",
      "User": "Advanced"
    },
    "SIM_BAR3_WCF_UP": {
      "Description": "Barometer wind coefficient direction up in SITL",
      "DisplayName": "Wind coefficient up",
      "User": "Advanced"
    }
  },
  "SIM_BARO_": {
    "SIM_BARO_DELAY": {
      "Description": "Barometer data time delay",
      "DisplayName": "Barometer delay",
      "Units": "ms",
      "User": "Advanced"
    },
    "SIM_BARO_DISABLE": {
      "Description": "Disable barometer in SITL",
      "DisplayName": "Barometer disable",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "SIM_BARO_DRIFT": {
      "Description": "Barometer altitude drifts at this rate",
      "DisplayName": "Barometer altitude drift",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_BARO_FREEZE": {
      "Description": "Freeze barometer to last recorded altitude",
      "DisplayName": "Barometer freeze",
      "User": "Advanced"
    },
    "SIM_BARO_GEFF_M": {
      "Description": "Maximum simulated barometer altitude error from rotor-downwash ground effect, applied when motors are running. Decays linearly to zero at 2m AGL. Set to 0 to disable.",
      "DisplayName": "Barometer ground effect altitude error",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_BARO_GLITCH": {
      "Description": "Barometer glitch height in SITL",
      "DisplayName": "Barometer glitch",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_BARO_RND": {
      "Description": "Barometer noise in height",
      "DisplayName": "Barometer noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_BARO_WCF_BAK": {
      "Description": "Barometer wind coefficient direction backward in SITL",
      "DisplayName": "Wind coefficient backward",
      "User": "Advanced"
    },
    "SIM_BARO_WCF_DN": {
      "Description": "Barometer wind coefficient direction down in SITL",
      "DisplayName": "Wind coefficient down",
      "User": "Advanced"
    },
    "SIM_BARO_WCF_FWD": {
      "Description": "Barometer wind coefficient direction forward in SITL",
      "DisplayName": "Wind coefficient forward",
      "User": "Advanced"
    },
    "SIM_BARO_WCF_LFT": {
      "Description": "Barometer wind coefficient direction left in SITL",
      "DisplayName": "Wind coefficient left",
      "User": "Advanced"
    },
    "SIM_BARO_WCF_RGT": {
      "Description": "Barometer wind coefficient direction right in SITL",
      "DisplayName": "Wind coefficient right",
      "User": "Advanced"
    },
    "SIM_BARO_WCF_UP": {
      "Description": "Barometer wind coefficient direction up in SITL",
      "DisplayName": "Wind coefficient up",
      "User": "Advanced"
    }
  },
  "SIM_BZ_": {
    "SIM_BZ_ENABLE": {
      "Description": "Allows you to enable (1) or disable (0) the simulated buzzer",
      "DisplayName": "Buzzer enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_BZ_PIN": {
      "Description": "The pin number that the Buzzer is connected to (start at 1)",
      "DisplayName": "buzzer pin",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "SIM_FRM_": {
    "SIM_FRM_BAT_CAP": {
      "Description": "battery capacity, zero for unlimited",
      "DisplayName": "battery capacity",
      "Units": "Ah"
    },
    "SIM_FRM_BAT_RES": {
      "Description": "battery resistance",
      "DisplayName": "battery resistance",
      "Units": "Ohm"
    },
    "SIM_FRM_BAT_VOLT": {
      "Description": "full pack battery voltage",
      "DisplayName": "battery full voltage",
      "Units": "V"
    },
    "SIM_FRM_BBDRAG": {
      "Description": "scaling of the bluff body drag derived from the reference test, zero for no bluff body drag. Defaults to zero on planes where the plane model handles drag",
      "DisplayName": "bluff body drag coefficient"
    },
    "SIM_FRM_DIAG_SZ": {
      "Description": "diagonal motor to motor distance of the model",
      "DisplayName": "model diagonal size",
      "Units": "m"
    },
    "SIM_FRM_DISCAREA": {
      "Description": "total rotor disc area. Coaxial rotors count as one rotor only",
      "DisplayName": "rotor disc area",
      "Units": "m.m"
    },
    "SIM_FRM_EXPO": {
      "Description": "motor thrust expo, matching MOT_THST_EXPO",
      "DisplayName": "thrust expo"
    },
    "SIM_FRM_HOVR_THR": {
      "Description": "throttle output (CTUN.ThO) at hover at the reference altitude",
      "DisplayName": "hover throttle",
      "Range": {
        "high": "1",
        "low": "0.05"
      }
    },
    "SIM_FRM_MASS": {
      "Description": "mass of the multicopter model",
      "DisplayName": "model mass",
      "Units": "kg"
    },
    "SIM_FRM_MDRAG": {
      "Description": "momentum drag coefficient of the rotors. Defaults to zero on planes where the plane model handles drag",
      "DisplayName": "momentum drag coefficient"
    },
    "SIM_FRM_PWM_MAX": {
      "Description": "maximum motor PWM in the reference test, matching MOT_PWM_MAX",
      "DisplayName": "maximum PWM",
      "Units": "PWM"
    },
    "SIM_FRM_PWM_MIN": {
      "Description": "minimum motor PWM in the reference test, matching MOT_PWM_MIN",
      "DisplayName": "minimum PWM",
      "Units": "PWM"
    },
    "SIM_FRM_REF_ALT": {
      "Description": "altitude AMSL of the drag reference test",
      "DisplayName": "reference altitude",
      "Units": "m"
    },
    "SIM_FRM_REF_AMP": {
      "Description": "battery current in the drag reference test",
      "DisplayName": "reference current",
      "Units": "A"
    },
    "SIM_FRM_REF_ANG": {
      "Description": "lean angle in the drag reference test",
      "DisplayName": "reference angle",
      "Units": "deg"
    },
    "SIM_FRM_REF_SPD": {
      "Description": "airspeed in the drag reference test, at a fixed lean angle",
      "DisplayName": "reference speed",
      "Units": "m/s"
    },
    "SIM_FRM_REF_VOLT": {
      "Description": "battery voltage in the drag reference test",
      "DisplayName": "reference voltage",
      "Units": "V"
    },
    "SIM_FRM_ROT_RATE": {
      "Description": "terminal yaw rotation rate",
      "DisplayName": "rotation rate",
      "Units": "deg/s"
    },
    "SIM_FRM_SLEW_MAX": {
      "Description": "maximum motor slew rate in throttle fraction per second",
      "DisplayName": "motor slew rate",
      "Units": "1/s"
    },
    "SIM_FRM_SPIN_MAX": {
      "Description": "maximum motor spin fraction, matching MOT_SPIN_MAX",
      "DisplayName": "motor spin maximum",
      "Range": {
        "high": "1",
        "low": "0"
      }
    },
    "SIM_FRM_SPIN_MIN": {
      "Description": "minimum motor spin fraction, matching MOT_SPIN_MIN",
      "DisplayName": "motor spin minimum",
      "Range": {
        "high": "1",
        "low": "0"
      }
    }
  },
  "SIM_FTOWESC_": {
    "SIM_FTOWESC_ENA": {
      "Description": "Allows you to enable (1) or disable (0) the FETtecOneWireESC simulator",
      "DisplayName": "FETtec OneWire ESC simulator enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_FTOWESC_POW": {
      "Description": "Allows you to turn power off to the simulated ESCs.  Bits correspond to the ESC ID, *NOT* their servo channel.",
      "DisplayName": "Power off FETtec ESC mask",
      "User": "Advanced"
    }
  },
  "SIM_GLD_": {
    "SIM_GLD_BLN_BRST": {
      "Description": "balloon burst height",
      "DisplayName": "balloon burst height",
      "Units": "m"
    },
    "SIM_GLD_BLN_RATE": {
      "Description": "balloon climb rate. If the value is less than zero then the balloon is disabled.",
      "DisplayName": "balloon climb rate",
      "Units": "m/s"
    }
  },
  "SIM_GPS1_": {
    "SIM_GPS1_ACC": {
      "Description": "GPS Accuracy",
      "DisplayName": "GPS Accuracy",
      "User": "Advanced"
    },
    "SIM_GPS1_ALT_OFS": {
      "Description": "GPS Altitude Error",
      "DisplayName": "GPS Altitude Offset",
      "Units": "m"
    },
    "SIM_GPS1_BYTELOS": {
      "Description": "Percent of bytes lost from GPS",
      "DisplayName": "GPS Byteloss",
      "Units": "%",
      "User": "Advanced"
    },
    "SIM_GPS1_DRFTALT": {
      "Description": "GPS altitude drift error",
      "DisplayName": "GPS Altitude Drift",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS1_ENABLE": {
      "Description": "Enable simulated GPS",
      "DisplayName": "GPS enable",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "SIM_GPS1_FIXTYPE": {
      "Description": "Allow setting which fix type (only some GPS's supported); matches AP_GPS_FixType",
      "DisplayName": "GPS Fix Type",
      "User": "Advanced",
      "Values": {
        "0": "No GPS connected",
        "1": "No Fix",
        "2": "2D Fix",
        "3": "3D Fix",
        "4": "3D DGPS Fix",
        "5": "3D RTK Float",
        "6": "3D RTK Fixed"
      }
    },
    "SIM_GPS1_GLTCH_X": {
      "Description": "Glitch offsets of simulated GPS sensor (X-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS1_GLTCH_Y": {
      "Description": "Glitch offsets of simulated GPS sensor (Y-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS1_GLTCH_Z": {
      "Description": "Glitch offsets of simulated GPS sensor (Z-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS1_GLTV_X": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (X-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS1_GLTV_Y": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (Y-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS1_GLTV_Z": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (Z-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS1_HDG": {
      "Description": "Enable GPS output of NMEA heading HDT sentence or UBLOX_RELPOSNED",
      "DisplayName": "GPS Heading",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Emit HDT",
        "2": "Emit THS",
        "3": "KSXT",
        "4": "Be Moving Baseline Base"
      }
    },
    "SIM_GPS1_HDG_OFS": {
      "Description": "GPS heading offset in degrees. how off the simulated GPS heading is from the actual heading",
      "DisplayName": "GPS heading offset",
      "User": "Advanced"
    },
    "SIM_GPS1_HNSE": {
      "Description": "Radius of the GPS horizontal position error in meters",
      "DisplayName": "GPS horizontal noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS1_HZ": {
      "Description": "GPS Update rate",
      "DisplayName": "GPS Hz",
      "Units": "Hz"
    },
    "SIM_GPS1_JAM": {
      "Description": "Enable simulated GPS jamming",
      "DisplayName": "GPS jamming enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_GPS1_LAG_MS": {
      "Description": "GPS lag",
      "DisplayName": "GPS Lag",
      "Units": "ms",
      "User": "Advanced"
    },
    "SIM_GPS1_LCKTIME": {
      "Description": "Delay in seconds before GPS acquires lock",
      "DisplayName": "GPS Lock Time",
      "Units": "s",
      "User": "Advanced"
    },
    "SIM_GPS1_NOISE": {
      "Description": "Amplitude of the GPS vertical position error",
      "DisplayName": "GPS vertical noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS1_NUMSATS": {
      "Description": "Number of satellites GPS has in view",
      "DisplayName": "GPS Num Satellites"
    },
    "SIM_GPS1_OPTIONS": {
      "Bitmask": {
        "0": "UBlox GPS is F9P"
      },
      "Description": "GPS Options bitmask",
      "DisplayName": "GPS Options",
      "User": "Advanced"
    },
    "SIM_GPS1_POS_X": {
      "Description": "GPS antenna phase center position relative to the body frame origin (X-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS1_POS_Y": {
      "Description": "GPS antenna phase center position relative to the body frame origin (Y-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS1_POS_Z": {
      "Description": "GPS antenna phase center position relative to the body frame origin (Z-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS1_TYPE": {
      "Description": "Sets the type of simulation used for GPS",
      "DisplayName": "GPS type",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "UBlox",
        "11": "Trimble",
        "19": "MSP",
        "5": "NMEA",
        "6": "SBP",
        "7": "File",
        "8": "Nova",
        "9": "SBP2"
      }
    },
    "SIM_GPS1_VERR_X": {
      "Description": "GPS Velocity Error Offsets in NED (X-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    },
    "SIM_GPS1_VERR_Y": {
      "Description": "GPS Velocity Error Offsets in NED (Y-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    },
    "SIM_GPS1_VERR_Z": {
      "Description": "GPS Velocity Error Offsets in NED (Z-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    }
  },
  "SIM_GPS2_": {
    "SIM_GPS2_ACC": {
      "Description": "GPS Accuracy",
      "DisplayName": "GPS Accuracy",
      "User": "Advanced"
    },
    "SIM_GPS2_ALT_OFS": {
      "Description": "GPS Altitude Error",
      "DisplayName": "GPS Altitude Offset",
      "Units": "m"
    },
    "SIM_GPS2_BYTELOS": {
      "Description": "Percent of bytes lost from GPS",
      "DisplayName": "GPS Byteloss",
      "Units": "%",
      "User": "Advanced"
    },
    "SIM_GPS2_DRFTALT": {
      "Description": "GPS altitude drift error",
      "DisplayName": "GPS Altitude Drift",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS2_ENABLE": {
      "Description": "Enable simulated GPS",
      "DisplayName": "GPS enable",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "SIM_GPS2_FIXTYPE": {
      "Description": "Allow setting which fix type (only some GPS's supported); matches AP_GPS_FixType",
      "DisplayName": "GPS Fix Type",
      "User": "Advanced",
      "Values": {
        "0": "No GPS connected",
        "1": "No Fix",
        "2": "2D Fix",
        "3": "3D Fix",
        "4": "3D DGPS Fix",
        "5": "3D RTK Float",
        "6": "3D RTK Fixed"
      }
    },
    "SIM_GPS2_GLTCH_X": {
      "Description": "Glitch offsets of simulated GPS sensor (X-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS2_GLTCH_Y": {
      "Description": "Glitch offsets of simulated GPS sensor (Y-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS2_GLTCH_Z": {
      "Description": "Glitch offsets of simulated GPS sensor (Z-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS2_GLTV_X": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (X-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS2_GLTV_Y": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (Y-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS2_GLTV_Z": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (Z-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS2_HDG": {
      "Description": "Enable GPS output of NMEA heading HDT sentence or UBLOX_RELPOSNED",
      "DisplayName": "GPS Heading",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Emit HDT",
        "2": "Emit THS",
        "3": "KSXT",
        "4": "Be Moving Baseline Base"
      }
    },
    "SIM_GPS2_HDG_OFS": {
      "Description": "GPS heading offset in degrees. how off the simulated GPS heading is from the actual heading",
      "DisplayName": "GPS heading offset",
      "User": "Advanced"
    },
    "SIM_GPS2_HNSE": {
      "Description": "Radius of the GPS horizontal position error in meters",
      "DisplayName": "GPS horizontal noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS2_HZ": {
      "Description": "GPS Update rate",
      "DisplayName": "GPS Hz",
      "Units": "Hz"
    },
    "SIM_GPS2_JAM": {
      "Description": "Enable simulated GPS jamming",
      "DisplayName": "GPS jamming enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_GPS2_LAG_MS": {
      "Description": "GPS lag",
      "DisplayName": "GPS Lag",
      "Units": "ms",
      "User": "Advanced"
    },
    "SIM_GPS2_LCKTIME": {
      "Description": "Delay in seconds before GPS acquires lock",
      "DisplayName": "GPS Lock Time",
      "Units": "s",
      "User": "Advanced"
    },
    "SIM_GPS2_NOISE": {
      "Description": "Amplitude of the GPS vertical position error",
      "DisplayName": "GPS vertical noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS2_NUMSATS": {
      "Description": "Number of satellites GPS has in view",
      "DisplayName": "GPS Num Satellites"
    },
    "SIM_GPS2_OPTIONS": {
      "Bitmask": {
        "0": "UBlox GPS is F9P"
      },
      "Description": "GPS Options bitmask",
      "DisplayName": "GPS Options",
      "User": "Advanced"
    },
    "SIM_GPS2_POS_X": {
      "Description": "GPS antenna phase center position relative to the body frame origin (X-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS2_POS_Y": {
      "Description": "GPS antenna phase center position relative to the body frame origin (Y-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS2_POS_Z": {
      "Description": "GPS antenna phase center position relative to the body frame origin (Z-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS2_TYPE": {
      "Description": "Sets the type of simulation used for GPS",
      "DisplayName": "GPS type",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "UBlox",
        "11": "Trimble",
        "19": "MSP",
        "5": "NMEA",
        "6": "SBP",
        "7": "File",
        "8": "Nova",
        "9": "SBP2"
      }
    },
    "SIM_GPS2_VERR_X": {
      "Description": "GPS Velocity Error Offsets in NED (X-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    },
    "SIM_GPS2_VERR_Y": {
      "Description": "GPS Velocity Error Offsets in NED (Y-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    },
    "SIM_GPS2_VERR_Z": {
      "Description": "GPS Velocity Error Offsets in NED (Z-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    }
  },
  "SIM_GPS3_": {
    "SIM_GPS3_ACC": {
      "Description": "GPS Accuracy",
      "DisplayName": "GPS Accuracy",
      "User": "Advanced"
    },
    "SIM_GPS3_ALT_OFS": {
      "Description": "GPS Altitude Error",
      "DisplayName": "GPS Altitude Offset",
      "Units": "m"
    },
    "SIM_GPS3_BYTELOS": {
      "Description": "Percent of bytes lost from GPS",
      "DisplayName": "GPS Byteloss",
      "Units": "%",
      "User": "Advanced"
    },
    "SIM_GPS3_DRFTALT": {
      "Description": "GPS altitude drift error",
      "DisplayName": "GPS Altitude Drift",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS3_ENABLE": {
      "Description": "Enable simulated GPS",
      "DisplayName": "GPS enable",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "SIM_GPS3_FIXTYPE": {
      "Description": "Allow setting which fix type (only some GPS's supported); matches AP_GPS_FixType",
      "DisplayName": "GPS Fix Type",
      "User": "Advanced",
      "Values": {
        "0": "No GPS connected",
        "1": "No Fix",
        "2": "2D Fix",
        "3": "3D Fix",
        "4": "3D DGPS Fix",
        "5": "3D RTK Float",
        "6": "3D RTK Fixed"
      }
    },
    "SIM_GPS3_GLTCH_X": {
      "Description": "Glitch offsets of simulated GPS sensor (X-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS3_GLTCH_Y": {
      "Description": "Glitch offsets of simulated GPS sensor (Y-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS3_GLTCH_Z": {
      "Description": "Glitch offsets of simulated GPS sensor (Z-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS3_GLTV_X": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (X-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS3_GLTV_Y": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (Y-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS3_GLTV_Z": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (Z-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS3_HDG": {
      "Description": "Enable GPS output of NMEA heading HDT sentence or UBLOX_RELPOSNED",
      "DisplayName": "GPS Heading",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Emit HDT",
        "2": "Emit THS",
        "3": "KSXT",
        "4": "Be Moving Baseline Base"
      }
    },
    "SIM_GPS3_HDG_OFS": {
      "Description": "GPS heading offset in degrees. how off the simulated GPS heading is from the actual heading",
      "DisplayName": "GPS heading offset",
      "User": "Advanced"
    },
    "SIM_GPS3_HNSE": {
      "Description": "Radius of the GPS horizontal position error in meters",
      "DisplayName": "GPS horizontal noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS3_HZ": {
      "Description": "GPS Update rate",
      "DisplayName": "GPS Hz",
      "Units": "Hz"
    },
    "SIM_GPS3_JAM": {
      "Description": "Enable simulated GPS jamming",
      "DisplayName": "GPS jamming enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_GPS3_LAG_MS": {
      "Description": "GPS lag",
      "DisplayName": "GPS Lag",
      "Units": "ms",
      "User": "Advanced"
    },
    "SIM_GPS3_LCKTIME": {
      "Description": "Delay in seconds before GPS acquires lock",
      "DisplayName": "GPS Lock Time",
      "Units": "s",
      "User": "Advanced"
    },
    "SIM_GPS3_NOISE": {
      "Description": "Amplitude of the GPS vertical position error",
      "DisplayName": "GPS vertical noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS3_NUMSATS": {
      "Description": "Number of satellites GPS has in view",
      "DisplayName": "GPS Num Satellites"
    },
    "SIM_GPS3_OPTIONS": {
      "Bitmask": {
        "0": "UBlox GPS is F9P"
      },
      "Description": "GPS Options bitmask",
      "DisplayName": "GPS Options",
      "User": "Advanced"
    },
    "SIM_GPS3_POS_X": {
      "Description": "GPS antenna phase center position relative to the body frame origin (X-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS3_POS_Y": {
      "Description": "GPS antenna phase center position relative to the body frame origin (Y-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS3_POS_Z": {
      "Description": "GPS antenna phase center position relative to the body frame origin (Z-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS3_TYPE": {
      "Description": "Sets the type of simulation used for GPS",
      "DisplayName": "GPS type",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "UBlox",
        "11": "Trimble",
        "19": "MSP",
        "5": "NMEA",
        "6": "SBP",
        "7": "File",
        "8": "Nova",
        "9": "SBP2"
      }
    },
    "SIM_GPS3_VERR_X": {
      "Description": "GPS Velocity Error Offsets in NED (X-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    },
    "SIM_GPS3_VERR_Y": {
      "Description": "GPS Velocity Error Offsets in NED (Y-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    },
    "SIM_GPS3_VERR_Z": {
      "Description": "GPS Velocity Error Offsets in NED (Z-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    }
  },
  "SIM_GPS4_": {
    "SIM_GPS4_ACC": {
      "Description": "GPS Accuracy",
      "DisplayName": "GPS Accuracy",
      "User": "Advanced"
    },
    "SIM_GPS4_ALT_OFS": {
      "Description": "GPS Altitude Error",
      "DisplayName": "GPS Altitude Offset",
      "Units": "m"
    },
    "SIM_GPS4_BYTELOS": {
      "Description": "Percent of bytes lost from GPS",
      "DisplayName": "GPS Byteloss",
      "Units": "%",
      "User": "Advanced"
    },
    "SIM_GPS4_DRFTALT": {
      "Description": "GPS altitude drift error",
      "DisplayName": "GPS Altitude Drift",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS4_ENABLE": {
      "Description": "Enable simulated GPS",
      "DisplayName": "GPS enable",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "SIM_GPS4_FIXTYPE": {
      "Description": "Allow setting which fix type (only some GPS's supported); matches AP_GPS_FixType",
      "DisplayName": "GPS Fix Type",
      "User": "Advanced",
      "Values": {
        "0": "No GPS connected",
        "1": "No Fix",
        "2": "2D Fix",
        "3": "3D Fix",
        "4": "3D DGPS Fix",
        "5": "3D RTK Float",
        "6": "3D RTK Fixed"
      }
    },
    "SIM_GPS4_GLTCH_X": {
      "Description": "Glitch offsets of simulated GPS sensor (X-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS4_GLTCH_Y": {
      "Description": "Glitch offsets of simulated GPS sensor (Y-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS4_GLTCH_Z": {
      "Description": "Glitch offsets of simulated GPS sensor (Z-axis)",
      "DisplayName": "GPS Glitch",
      "User": "Advanced"
    },
    "SIM_GPS4_GLTV_X": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (X-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS4_GLTV_Y": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (Y-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS4_GLTV_Z": {
      "Description": "Glitch offsets of simulated GPS velocity in NED. The reported position also moves continuously with this velocity, so position and velocity stay consistent (e.g. to simulate GPS spoofing that drifts the position). The accumulated position offset is cleared when all three components are zero at a GPS update, so when changing axes set the new component before zeroing the old one (Z-axis)",
      "DisplayName": "GPS velocity glitch",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_GPS4_HDG": {
      "Description": "Enable GPS output of NMEA heading HDT sentence or UBLOX_RELPOSNED",
      "DisplayName": "GPS Heading",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Emit HDT",
        "2": "Emit THS",
        "3": "KSXT",
        "4": "Be Moving Baseline Base"
      }
    },
    "SIM_GPS4_HDG_OFS": {
      "Description": "GPS heading offset in degrees. how off the simulated GPS heading is from the actual heading",
      "DisplayName": "GPS heading offset",
      "User": "Advanced"
    },
    "SIM_GPS4_HNSE": {
      "Description": "Radius of the GPS horizontal position error in meters",
      "DisplayName": "GPS horizontal noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS4_HZ": {
      "Description": "GPS Update rate",
      "DisplayName": "GPS Hz",
      "Units": "Hz"
    },
    "SIM_GPS4_JAM": {
      "Description": "Enable simulated GPS jamming",
      "DisplayName": "GPS jamming enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_GPS4_LAG_MS": {
      "Description": "GPS lag",
      "DisplayName": "GPS Lag",
      "Units": "ms",
      "User": "Advanced"
    },
    "SIM_GPS4_LCKTIME": {
      "Description": "Delay in seconds before GPS acquires lock",
      "DisplayName": "GPS Lock Time",
      "Units": "s",
      "User": "Advanced"
    },
    "SIM_GPS4_NOISE": {
      "Description": "Amplitude of the GPS vertical position error",
      "DisplayName": "GPS vertical noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_GPS4_NUMSATS": {
      "Description": "Number of satellites GPS has in view",
      "DisplayName": "GPS Num Satellites"
    },
    "SIM_GPS4_OPTIONS": {
      "Bitmask": {
        "0": "UBlox GPS is F9P"
      },
      "Description": "GPS Options bitmask",
      "DisplayName": "GPS Options",
      "User": "Advanced"
    },
    "SIM_GPS4_POS_X": {
      "Description": "GPS antenna phase center position relative to the body frame origin (X-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS4_POS_Y": {
      "Description": "GPS antenna phase center position relative to the body frame origin (Y-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS4_POS_Z": {
      "Description": "GPS antenna phase center position relative to the body frame origin (Z-axis)",
      "DisplayName": "GPS Position",
      "Units": "m"
    },
    "SIM_GPS4_TYPE": {
      "Description": "Sets the type of simulation used for GPS",
      "DisplayName": "GPS type",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "UBlox",
        "11": "Trimble",
        "19": "MSP",
        "5": "NMEA",
        "6": "SBP",
        "7": "File",
        "8": "Nova",
        "9": "SBP2"
      }
    },
    "SIM_GPS4_VERR_X": {
      "Description": "GPS Velocity Error Offsets in NED (X-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    },
    "SIM_GPS4_VERR_Y": {
      "Description": "GPS Velocity Error Offsets in NED (Y-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    },
    "SIM_GPS4_VERR_Z": {
      "Description": "GPS Velocity Error Offsets in NED (Z-axis)",
      "DisplayName": "GPS Velocity Error",
      "User": "Advanced"
    }
  },
  "SIM_GRPE_": {
    "SIM_GRPE_ENABLE": {
      "Description": "Allows you to enable (1) or disable (0) the gripper servo simulation",
      "DisplayName": "Gripper servo Sim enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_GRPE_PIN": {
      "Description": "The pin number that the gripper emp is connected to. (start at 1)",
      "DisplayName": "Gripper emp pin",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "SIM_GRPS_": {
    "SIM_GRPS_ENABLE": {
      "Description": "Allows you to enable (1) or disable (0) the gripper servo simulation",
      "DisplayName": "Gripper servo Sim enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_GRPS_GRAB": {
      "Description": "PWM value in microseconds sent to Gripper to initiate grabbing the cargo",
      "DisplayName": "Gripper Grab PWM",
      "Range": {
        "high": "2000",
        "low": "1000"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "SIM_GRPS_PIN": {
      "Description": "The pin number that the gripper servo is connected to. (start at 1)",
      "DisplayName": "Gripper servo pin",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Advanced"
    },
    "SIM_GRPS_RELEASE": {
      "Description": "PWM value in microseconds sent to Gripper to release the cargo",
      "DisplayName": "Gripper Release PWM",
      "Range": {
        "high": "2000",
        "low": "1000"
      },
      "Units": "PWM",
      "User": "Advanced"
    },
    "SIM_GRPS_REVERSE": {
      "Description": "Reverse the closing direction.",
      "DisplayName": "Gripper close direction",
      "User": "Advanced",
      "Values": {
        "0": "Normal",
        "1": "Reverse"
      }
    }
  },
  "SIM_IE24_": {
    "SIM_IE24_ENABLE": {
      "Description": "Allows you to enable (1) or disable (0) the FuelCell simulator",
      "DisplayName": "IntelligentEnergy 2.4kWh FuelCell sim enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "V1 Protocol",
        "2": "V2 Protocol"
      }
    },
    "SIM_IE24_ERROR": {
      "Description": "Explicitly specify an error code to send to the generator",
      "DisplayName": "Explicitly set error code",
      "User": "Advanced"
    },
    "SIM_IE24_STATE": {
      "Description": "Explicitly specify a state for the generator to be in",
      "DisplayName": "Explicitly set state",
      "User": "Advanced"
    }
  },
  "SIM_PARA_": {
    "SIM_PARA_ENABLE": {
      "Description": "Allows you to enable (1) or disable (0) the Parachute simulation",
      "DisplayName": "Parachute Sim enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_PARA_PIN": {
      "Description": "The pin number that the Parachute pyrotechnics are connected to. (start at 1)",
      "DisplayName": "Parachute pin",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "SIM_PLD_": {
    "SIM_PLD_ALT_LMT": {
      "Description": "Precland device maximum range altitude",
      "DisplayName": "Precland device alt range",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_PLD_DIST_LMT": {
      "Description": "Precland device maximum lateral range",
      "DisplayName": "Precland device lateral range",
      "Range": {
        "high": "100",
        "low": "5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_PLD_ENABLE": {
      "Description": "Allows you to enable (1) or disable (0) the Preland simulation",
      "DisplayName": "Preland device Sim enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_PLD_HEIGHT": {
      "Description": "Precland device center's height above SITL origin. Assumes a 2x2m square as station base",
      "DisplayName": "Precland device center's height SITL origin",
      "Increment": "1",
      "Range": {
        "high": "10000",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_PLD_LAT": {
      "Description": "Precland device center's latitude",
      "DisplayName": "Precland device center's latitude",
      "Increment": "0.000001",
      "Range": {
        "high": "90",
        "low": "-90"
      },
      "Units": "deg",
      "User": "Advanced"
    },
    "SIM_PLD_LON": {
      "Description": "Precland device center's longitude",
      "DisplayName": "Precland device center's longitude",
      "Increment": "0.000001",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Advanced"
    },
    "SIM_PLD_OPTIONS": {
      "Bitmask": {
        "0": "Enable target distance"
      },
      "Description": "SIM_Precland extra options",
      "DisplayName": "SIM_Precland extra options",
      "User": "Advanced"
    },
    "SIM_PLD_ORIENT": {
      "Description": "Precland device orientation vector",
      "DisplayName": "Precland device orientation",
      "User": "Advanced",
      "Values": {
        "0": "Front",
        "24": "Up",
        "4": "Back"
      }
    },
    "SIM_PLD_RATE": {
      "Description": "Precland device rate. e.g led patter refresh rate, RF message rate, etc.",
      "DisplayName": "Precland device update rate",
      "Range": {
        "high": "200",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "SIM_PLD_SHIP": {
      "Description": "This makes the position of the landing beacon follow the simulated ship from SIM_SHIP. The ship movement is controlled with the SIM_SHIP parameters",
      "DisplayName": "SIM_Precland follow ship",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_PLD_TYPE": {
      "Description": "Precland device radiance type: it can be a cylinder, a cone, or a sphere.",
      "DisplayName": "Precland device radiance type",
      "User": "Advanced",
      "Values": {
        "0": "cylinder",
        "1": "cone",
        "2": "sphere"
      }
    },
    "SIM_PLD_YAW": {
      "Description": "Precland device systems rotation from north",
      "DisplayName": "Precland device systems rotation from north",
      "Increment": "1",
      "Range": {
        "high": "+180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Advanced"
    }
  },
  "SIM_RFL_": {
    "SIM_RFL_OPTS": {
      "Bitmask": {
        "0": "Reset position on startup",
        "1": "Swap first 4 and last 4 servos (for quadplane testing)",
        "2": "Demix heli servos and send roll/pitch/collective/yaw",
        "3": "Don't print frame rate stats",
        "4": "Don't log Dt stats"
      },
      "Description": "Bitmask of FlightAxis options",
      "DisplayName": "FlightAxis options",
      "User": "Advanced"
    },
    "SIM_RFL_SAMPLEHZ": {
      "Description": "FlightAxis IMU synthetic sample rate",
      "DisplayName": "FlightAxis IMU synthetic sample rate",
      "User": "Advanced"
    }
  },
  "SIM_RICH_": {
    "SIM_RICH_CTRL": {
      "Description": "The pin number that the RichenPower spinner servo is connected to. (start at 1)",
      "DisplayName": "Pin RichenPower is connectred to",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Advanced"
    },
    "SIM_RICH_ENABLE": {
      "Description": "Allows you to enable (1) or disable (0) the RichenPower simulator",
      "DisplayName": "RichenPower Generator sim enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    }
  },
  "SIM_SB_": {
    "SIM_SB_ALT_TARG": {
      "Description": "altitude target",
      "DisplayName": "altitude target",
      "Units": "m"
    },
    "SIM_SB_ARM_LEN": {
      "Description": "distance from center of mass to one motor",
      "DisplayName": "arm length",
      "Units": "m"
    },
    "SIM_SB_CLMB_RT": {
      "Description": "target climb rate",
      "DisplayName": "target climb rate",
      "Units": "m/s"
    },
    "SIM_SB_COL": {
      "Description": "center of lift position above CoG",
      "DisplayName": "center of lift",
      "Units": "m"
    },
    "SIM_SB_DRAG_FWD": {
      "Description": "drag on X axis",
      "DisplayName": "drag in forward direction"
    },
    "SIM_SB_DRAG_SIDE": {
      "Description": "drag on Y axis",
      "DisplayName": "drag in sidewards direction"
    },
    "SIM_SB_DRAG_UP": {
      "Description": "drag on Z axis",
      "DisplayName": "drag in upward direction"
    },
    "SIM_SB_FLR": {
      "Description": "amount of additional lift generated by the helper balloon (for the purpose of ascent), as a proportion of the 'neutral buoyancy' lift",
      "DisplayName": "free lift rate"
    },
    "SIM_SB_HMASS": {
      "Description": "mass of lifting gas",
      "DisplayName": "helium mass",
      "Units": "kg"
    },
    "SIM_SB_MASS": {
      "Description": "mass of blimp not including lifting gas",
      "DisplayName": "mass",
      "Units": "kg"
    },
    "SIM_SB_MOI_PITCH": {
      "Description": "moment of inertia in pitch",
      "DisplayName": "moment of inertia in pitch"
    },
    "SIM_SB_MOI_ROLL": {
      "Description": "moment of inertia in roll",
      "DisplayName": "moment of inertia in roll"
    },
    "SIM_SB_MOI_YAW": {
      "Description": "moment of inertia in yaw",
      "DisplayName": "moment of inertia in yaw"
    },
    "SIM_SB_MOT_ANG": {
      "Description": "maximum motor tilt angle",
      "DisplayName": "motor angle",
      "Units": "deg"
    },
    "SIM_SB_MOT_THST": {
      "Description": "thrust at max throttle for one motor",
      "DisplayName": "motor thrust",
      "Units": "N"
    },
    "SIM_SB_WVANE": {
      "Description": "center of drag for weathervaning",
      "DisplayName": "weathervaning offset",
      "Units": "m"
    },
    "SIM_SB_YAW_RT": {
      "Description": "maximum yaw rate with full left throttle at target altitude",
      "DisplayName": "yaw rate",
      "Units": "deg/s"
    }
  },
  "SIM_SERVO_": {
    "SIM_SERVO_DELAY": {
      "Description": "servo delay",
      "DisplayName": "servo delay",
      "Units": "s"
    },
    "SIM_SERVO_FILTER": {
      "Description": "servo filter",
      "DisplayName": "servo filter",
      "Units": "Hz"
    },
    "SIM_SERVO_SPEED": {
      "Description": "servo speed (time for 60 degree deflection). If DELAY and FILTER are not set then this is converted to a 1p lowpass filter. If DELAY or FILTER are set then this is treated as a rate of change limit",
      "DisplayName": "servo speed",
      "Units": "s"
    }
  },
  "SIM_SHIP_": {
    "SIM_SHIP_DSIZE": {
      "Description": "Size of the ship's deck",
      "DisplayName": "Deck Size",
      "Units": "m"
    },
    "SIM_SHIP_ENABLE": {
      "Description": "Enable ship landing simulation",
      "DisplayName": "Ship landing Enable",
      "Values": {
        "0": "Disable",
        "1": "Enabled"
      }
    },
    "SIM_SHIP_OFS_X": {
      "Description": "Defines the offset of the ship's landing pad w.r.t. the ship's origin, i.e. where the beacon is placed on the ship (X-axis)",
      "DisplayName": "Ship landing pad offset",
      "Units": "m"
    },
    "SIM_SHIP_OFS_Y": {
      "Description": "Defines the offset of the ship's landing pad w.r.t. the ship's origin, i.e. where the beacon is placed on the ship (Y-axis)",
      "DisplayName": "Ship landing pad offset",
      "Units": "m"
    },
    "SIM_SHIP_OFS_Z": {
      "Description": "Defines the offset of the ship's landing pad w.r.t. the ship's origin, i.e. where the beacon is placed on the ship (Z-axis)",
      "DisplayName": "Ship landing pad offset",
      "Units": "m"
    },
    "SIM_SHIP_PSIZE": {
      "Description": "Diameter of the circle the ship is traveling on",
      "DisplayName": "Path Size",
      "Units": "m"
    },
    "SIM_SHIP_SPEED": {
      "Description": "Speed of the ship",
      "DisplayName": "Ship Speed",
      "Units": "m/s"
    },
    "SIM_SHIP_SYSID": {
      "Description": "System ID of the ship",
      "DisplayName": "System ID",
      "Range": {
        "high": "4294967295",
        "low": "1"
      }
    }
  },
  "SIM_SLUP_": {
    "SIM_SLUP_DRAG": {
      "Description": "Slung Payload drag coefficient.  Higher values increase drag and slow the payload more quickly",
      "DisplayName": "Slung Payload drag coefficient",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_SLUP_ENABLE": {
      "Description": "Slung Payload Sim enable/disable",
      "DisplayName": "Slung Payload Sim enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_SLUP_LINELEN": {
      "Description": "Slung Payload line length in meters",
      "DisplayName": "Slung Payload line length",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_SLUP_SYSID": {
      "Description": "Slung Payload MAVLink system id to distinguish it from others on the same network",
      "DisplayName": "Slung Payload MAVLink system ID",
      "Range": {
        "high": "4294967295",
        "low": "0"
      },
      "User": "Advanced"
    },
    "SIM_SLUP_WEIGHT": {
      "Description": "Slung Payload weight in kg",
      "DisplayName": "Slung Payload weight",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "Units": "kg",
      "User": "Advanced"
    }
  },
  "SIM_SPR_": {
    "SIM_SPR_ENABLE": {
      "Description": "Allows you to enable (1) or disable (0) the Sprayer simulation",
      "DisplayName": "Sprayer Sim enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_SPR_PUMP": {
      "Description": "The pin number that the Sprayer pump is connected to. (start at 1)",
      "DisplayName": "Sprayer pump pin",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Advanced"
    },
    "SIM_SPR_SPIN": {
      "Description": "The pin number that the Sprayer spinner servo is connected to. (start at 1)",
      "DisplayName": "Sprayer spinner servo pin",
      "Range": {
        "high": "15",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "SIM_TA_": {
    "SIM_TA_ENABLE": {
      "Description": "Allows you to enable (1) or disable (0) the simulated tonealarm",
      "DisplayName": "ToneAlarm enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    }
  },
  "SIM_TETH_": {
    "SIM_TETH_DENSITY": {
      "Description": "Linear mass density of the tether wire",
      "DisplayName": "Tether Wire Density",
      "Range": {
        "high": "1",
        "low": "0"
      },
      "User": "Advanced"
    },
    "SIM_TETH_DMPCNST": {
      "Description": "Damping constant for the tether to simulate resistance based on change in stretch",
      "DisplayName": "Tether Damping Constant",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "SIM_TETH_ENABLE": {
      "Description": "Enable or disable the tether simulation",
      "DisplayName": "Tether Simulation Enable/Disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_TETH_LINELEN": {
      "Description": "Maximum length of the tether line in meters",
      "DisplayName": "Tether Maximum Line Length",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_TETH_SPGCNST": {
      "Description": "Spring constant for the tether to simulate elastic forces when stretched beyond its maximum length",
      "DisplayName": "Tether Spring Constant",
      "Range": {
        "high": "255",
        "low": "0"
      },
      "User": "Advanced"
    },
    "SIM_TETH_STUCK": {
      "Description": "Enable or disable a stuck tether simulation",
      "DisplayName": "Tether Stuck Enable/Disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_TETH_SYSID": {
      "Description": "MAVLink system ID for the tether simulation, used to distinguish it from other systems on the network",
      "DisplayName": "Tether Simulation MAVLink System ID",
      "Range": {
        "high": "4294967295",
        "low": "0"
      },
      "User": "Advanced"
    }
  },
  "SIM_VICON_": {
    "SIM_VICON_FAIL": {
      "Description": "SITL vicon failure",
      "DisplayName": "SITL vicon failure",
      "User": "Advanced",
      "Values": {
        "0": "Vicon Healthy",
        "1": "Vicon Failed"
      }
    },
    "SIM_VICON_GLIT_X": {
      "Description": "SITL vicon position glitch North",
      "DisplayName": "SITL vicon position glitch North",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_VICON_GLIT_Y": {
      "Description": "SITL vicon position glitch East",
      "DisplayName": "SITL vicon position glitch East",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_VICON_GLIT_Z": {
      "Description": "SITL vicon position glitch Down",
      "DisplayName": "SITL vicon position glitch Down",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_VICON_POS_X": {
      "Description": "SITL vicon position on vehicle in Forward direction",
      "DisplayName": "SITL vicon position on vehicle in Forward direction",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_VICON_POS_Y": {
      "Description": "SITL vicon position on vehicle in Right direction",
      "DisplayName": "SITL vicon position on vehicle in Right direction",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_VICON_POS_Z": {
      "Description": "SITL vicon position on vehicle in Down direction",
      "DisplayName": "SITL vicon position on vehicle in Down direction",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_VICON_P_SD": {
      "Description": "SITL vicon position standard deviation for gaussian noise",
      "DisplayName": "SITL vicon position standard deviation for gaussian noise",
      "Units": "m",
      "User": "Advanced"
    },
    "SIM_VICON_QUAL": {
      "Description": "SITL vicon odometry quality field sent in MAVLink ODOMETRY message (-1=failure, 0=unknown, 1-100=quality)",
      "DisplayName": "SITL vicon odometry quality",
      "Range": {
        "high": "100",
        "low": "-1"
      },
      "Units": "%",
      "User": "Advanced"
    },
    "SIM_VICON_RATE": {
      "Description": "SITL vicon rate",
      "DisplayName": "SITL vicon rate",
      "Units": "Hz",
      "User": "Advanced"
    },
    "SIM_VICON_TMASK": {
      "Bitmask": {
        "0": "VISION_POSITION_ESTIMATE",
        "1": "VISION_SPEED_ESTIMATE",
        "2": "VICON_POSITION_ESTIMATE",
        "3": "VISION_POSITION_DELTA",
        "4": "ODOMETRY"
      },
      "Description": "SITL vicon messages sent",
      "DisplayName": "SITL vicon type mask",
      "User": "Advanced"
    },
    "SIM_VICON_VGLI_X": {
      "Description": "SITL vicon velocity glitch North",
      "DisplayName": "SITL vicon velocity glitch North",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_VICON_VGLI_Y": {
      "Description": "SITL vicon velocity glitch East",
      "DisplayName": "SITL vicon velocity glitch East",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_VICON_VGLI_Z": {
      "Description": "SITL vicon velocity glitch Down",
      "DisplayName": "SITL vicon velocity glitch Down",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_VICON_V_SD": {
      "Description": "SITL vicon velocity standard deviation for gaussian noise",
      "DisplayName": "SITL vicon velocity standard deviation for gaussian noise",
      "Units": "m/s",
      "User": "Advanced"
    },
    "SIM_VICON_YAW": {
      "Description": "SITL vicon yaw angle in earth frame",
      "DisplayName": "SITL vicon yaw angle in earth frame",
      "Range": {
        "high": "360",
        "low": "0"
      },
      "Units": "deg",
      "User": "Advanced"
    },
    "SIM_VICON_YAWERR": {
      "Description": "SITL vicon yaw added to reported yaw sent to vehicle",
      "DisplayName": "SITL vicon yaw error",
      "Range": {
        "high": "180",
        "low": "-180"
      },
      "Units": "deg",
      "User": "Advanced"
    }
  },
  "SIM_VOLZ_": {
    "SIM_VOLZ_ENA": {
      "Description": "Allows you to enable (1) or disable (0) the Volz simulator",
      "DisplayName": "Volz simulator enable/disable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Enabled"
      }
    },
    "SIM_VOLZ_FMASK": {
      "Description": "fail servo at current position.  Channel 1 is bit 0.",
      "DisplayName": "Volz fail mask",
      "User": "Advanced"
    },
    "SIM_VOLZ_MASK": {
      "Description": "mask of servo output channels to override with values from Volz protocol.  Note these are indexed from 0 - so channel 3 (usually throttle) has value 4 in this bitmask (1<<2).",
      "DisplayName": "Volz override mask",
      "User": "Advanced"
    }
  },
  "STAT": {
    "STAT_BOOTCNT": {
      "Description": "Number of times board has been booted",
      "DisplayName": "Boot Count",
      "ReadOnly": "True",
      "User": "Standard"
    },
    "STAT_DISTFLWN": {
      "Description": "Estimate of total distance flown since statistics reset",
      "DisplayName": "Total Distance Flown",
      "ReadOnly": "True",
      "Units": "m",
      "User": "Standard"
    },
    "STAT_FLTCNT": {
      "Description": "Total number of flights",
      "DisplayName": "Total Flight Count",
      "ReadOnly": "True",
      "User": "Standard"
    },
    "STAT_FLTTIME": {
      "Description": "Total FlightTime (seconds)",
      "DisplayName": "Total FlightTime",
      "ReadOnly": "True",
      "Units": "s",
      "User": "Standard"
    },
    "STAT_RESET": {
      "Description": "Seconds since January 1st 2016 (Unix epoch+1451606400) since statistics reset (set to 0 to reset statistics, other set values will be ignored)",
      "DisplayName": "Statistics Reset Time",
      "ReadOnly": "True",
      "Units": "s",
      "User": "Standard"
    },
    "STAT_RUNTIME": {
      "Description": "Total time autopilot has run",
      "DisplayName": "Total RunTime",
      "ReadOnly": "True",
      "Units": "s",
      "User": "Standard"
    }
  },
  "Sub": {
    "ACRO_BAL_PITCH": {
      "Description": "rate at which pitch angle returns to level in acro mode.  A higher value causes the vehicle to return to level faster.",
      "DisplayName": "Acro Balance Pitch",
      "Increment": "0.1",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ACRO_BAL_ROLL": {
      "Description": "rate at which roll angle returns to level in acro mode.  A higher value causes the vehicle to return to level faster.",
      "DisplayName": "Acro Balance Roll",
      "Increment": "0.1",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "User": "Advanced"
    },
    "ACRO_EXPO": {
      "Description": "Acro roll/pitch Expo to allow faster rotation when stick at edges",
      "DisplayName": "Acro Expo",
      "Range": {
        "high": "0.95",
        "low": "-0.5"
      },
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "0.1": "Very Low",
        "0.2": "Low",
        "0.3": "Medium",
        "0.4": "High",
        "0.5": "Very High"
      }
    },
    "ACRO_RP_P": {
      "Description": "Converts pilot roll and pitch into a desired rate of rotation in ACRO and SPORT mode.  Higher values mean faster rate of rotation.",
      "DisplayName": "Acro Roll and Pitch P gain",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Standard"
    },
    "ACRO_TRAINER": {
      "Description": "Type of trainer used in acro mode",
      "DisplayName": "Acro Trainer",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Leveling",
        "2": "Leveling and Limited"
      }
    },
    "ACRO_YAW_P": {
      "Description": "Converts pilot yaw input into a desired rate of rotation.  Higher values mean faster rate of rotation.",
      "DisplayName": "Acro Yaw P gain",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Standard"
    },
    "FLTMODE1": {
      "Description": "Flight mode when pwm of Flightmode channel(FLTMODE_CH) is <= 1230",
      "DisplayName": "Flight Mode 1",
      "User": "Standard",
      "Values": {
        "0": "Stabilize",
        "1": "Acro",
        "16": "PosHold",
        "19": "Manual",
        "2": "AltHold",
        "20": "Motor Detect",
        "21": "SurfTrak",
        "3": "Auto",
        "4": "Guided",
        "7": "Circle",
        "9": "Surface"
      }
    },
    "FLTMODE2": {
      "Description": "Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1230, <= 1360",
      "DisplayName": "Flight Mode 2",
      "User": "Standard",
      "Values": {
        "0": "Stabilize",
        "1": "Acro",
        "16": "PosHold",
        "19": "Manual",
        "2": "AltHold",
        "20": "Motor Detect",
        "21": "SurfTrak",
        "3": "Auto",
        "4": "Guided",
        "7": "Circle",
        "9": "Surface"
      }
    },
    "FLTMODE3": {
      "Description": "Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1360, <= 1490",
      "DisplayName": "Flight Mode 3",
      "User": "Standard",
      "Values": {
        "0": "Stabilize",
        "1": "Acro",
        "16": "PosHold",
        "19": "Manual",
        "2": "AltHold",
        "20": "Motor Detect",
        "21": "SurfTrak",
        "3": "Auto",
        "4": "Guided",
        "7": "Circle",
        "9": "Surface"
      }
    },
    "FLTMODE4": {
      "Description": "Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1490, <= 1620",
      "DisplayName": "Flight Mode 4",
      "User": "Standard",
      "Values": {
        "0": "Stabilize",
        "1": "Acro",
        "16": "PosHold",
        "19": "Manual",
        "2": "AltHold",
        "20": "Motor Detect",
        "21": "SurfTrak",
        "3": "Auto",
        "4": "Guided",
        "7": "Circle",
        "9": "Surface"
      }
    },
    "FLTMODE5": {
      "Description": "Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >1620, <= 1749",
      "DisplayName": "Flight Mode 5",
      "User": "Standard",
      "Values": {
        "0": "Stabilize",
        "1": "Acro",
        "16": "PosHold",
        "19": "Manual",
        "2": "AltHold",
        "20": "Motor Detect",
        "21": "SurfTrak",
        "3": "Auto",
        "4": "Guided",
        "7": "Circle",
        "9": "Surface"
      }
    },
    "FLTMODE6": {
      "Description": "Flight mode when pwm of Flightmode channel(FLTMODE_CH) is >=1750",
      "DisplayName": "Flight Mode 6",
      "User": "Standard",
      "Values": {
        "0": "Stabilize",
        "1": "Acro",
        "16": "PosHold",
        "19": "Manual",
        "2": "AltHold",
        "20": "Motor Detect",
        "21": "SurfTrak",
        "3": "Auto",
        "4": "Guided",
        "7": "Circle",
        "9": "Surface"
      }
    },
    "FLTMODE_CH": {
      "Description": "RC Channel to use for flight mode control",
      "DisplayName": "Flightmode channel",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "10": "Channel 10",
        "11": "Channel 11",
        "12": "Channel 12",
        "13": "Channel 13",
        "14": "Channel 14",
        "15": "Channel 15",
        "5": "Channel5",
        "6": "Channel6",
        "7": "Channel7",
        "8": "Channel8",
        "9": "Channel9"
      }
    },
    "FORMAT_VERSION": {
      "Description": "This value is incremented when changes are made to the eeprom format",
      "DisplayName": "Eeprom format version number",
      "User": "Advanced"
    },
    "FRAME_CONFIG": {
      "Description": "Set this parameter according to your vehicle/motor configuration",
      "DisplayName": "Frame configuration",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "BlueROV1",
        "1": "Vectored",
        "2": "Vectored_6DOF",
        "3": "Vectored_6DOF_90",
        "4": "SimpleROV-3",
        "5": "SimpleROV-4",
        "6": "SimpleROV-5",
        "7": "Custom"
      }
    },
    "FS_CRASH_CHECK": {
      "Description": "This enables automatic crash checking. When enabled the motors will disarm if a crash is detected.",
      "DisplayName": "Crash check enable",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Warn only",
        "2": "Disarm"
      }
    },
    "FS_EKF_ACTION": {
      "Description": "Controls the action that will be taken when an EKF failsafe is invoked",
      "DisplayName": "EKF Failsafe Action",
      "User": "Advanced",
      "Values": {
        "0": "Disabled",
        "1": "Warn only",
        "2": "Disarm"
      }
    },
    "FS_EKF_THRESH": {
      "Description": "Allows setting the maximum acceptable compass and velocity variance",
      "DisplayName": "EKF failsafe variance threshold",
      "Range": {
        "high": "1.0",
        "low": "0.6"
      },
      "User": "Advanced",
      "Values": {
        "0.6": "Strict",
        "0.8": "Default",
        "1.0": "Relaxed"
      }
    },
    "FS_GCS_ENABLE": {
      "Description": "Controls what action to take when GCS heartbeat is lost.",
      "DisplayName": "Ground Station Failsafe Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Warn only",
        "2": "Disarm",
        "3": "Enter depth hold mode",
        "4": "Enter surface mode"
      }
    },
    "FS_GCS_TIMEOUT": {
      "Description": "Timeout before triggering the GCS failsafe",
      "DisplayName": "GCS failsafe timeout",
      "Increment": "1",
      "Units": "s",
      "User": "Standard"
    },
    "FS_LEAK_ENABLE": {
      "Description": "Controls what action to take if a leak is detected.",
      "DisplayName": "Leak Failsafe Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Warn only",
        "2": "Enter surface mode"
      }
    },
    "FS_PILOT_INPUT": {
      "Description": "Controls what action to take if no pilot input has been received after the timeout period specified by the FS_PILOT_TIMEOUT parameter",
      "DisplayName": "Pilot input failsafe action",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Warn Only",
        "2": "Disarm"
      }
    },
    "FS_PILOT_TIMEOUT": {
      "Description": "Controls the maximum interval between received pilot inputs before the failsafe action is triggered",
      "DisplayName": "Timeout for activation of pilot input failsafe",
      "Range": {
        "high": "3.0",
        "low": "0.1"
      },
      "Units": "s",
      "User": "Standard"
    },
    "FS_PRESS_ENABLE": {
      "Description": "Controls what action to take if internal pressure exceeds FS_PRESS_MAX parameter.",
      "DisplayName": "Internal Pressure Failsafe Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Warn only"
      }
    },
    "FS_PRESS_MAX": {
      "Description": "The maximum internal pressure allowed before triggering failsafe. Failsafe action is determined by FS_PRESS_ENABLE parameter",
      "DisplayName": "Internal Pressure Failsafe Threshold",
      "Units": "Pa",
      "User": "Standard"
    },
    "FS_TEMP_ENABLE": {
      "Description": "Controls what action to take if internal temperature exceeds FS_TEMP_MAX parameter.",
      "DisplayName": "Internal Temperature Failsafe Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Warn only"
      }
    },
    "FS_TEMP_MAX": {
      "Description": "The maximum internal temperature allowed before triggering failsafe. Failsafe action is determined by FS_TEMP_ENABLE parameter.",
      "DisplayName": "Internal Temperature Failsafe Threshold",
      "Units": "degC",
      "User": "Standard"
    },
    "FS_TERRAIN_ENAB": {
      "Description": "Controls what action to take if terrain information is lost during AUTO mode",
      "DisplayName": "Terrain Failsafe Enable",
      "User": "Standard",
      "Values": {
        "0": "Disarm",
        "1": "Hold Position",
        "2": "Surface"
      }
    },
    "FS_THR_ENABLE": {
      "Description": "The throttle failsafe allows you to configure a software RC failsafe activated by a setting on the throttle input channel. It also enables RC failsafe on absence of RC signals being recieved.",
      "DisplayName": "Throttle Failsafe Enable",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Force effective control inputs to trim positions and prevent arming",
        "2": "Surface and hold on surface on failsafe"
      }
    },
    "FS_THR_VALUE": {
      "Description": "The PWM level in microseconds on the throttle input channel at or below which throttle failsafe triggers",
      "DisplayName": "Throttle Failsafe Value",
      "Increment": "1",
      "Range": {
        "high": "1100",
        "low": "910"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "GCS_PID_MASK": {
      "Bitmask": {
        "0": "Roll",
        "1": "Pitch",
        "2": "Yaw"
      },
      "Description": "bitmask of PIDs to send MAVLink PID_TUNING messages for",
      "DisplayName": "GCS PID tuning mask",
      "User": "Advanced"
    },
    "JS_GAIN_DEFAULT": {
      "Description": "Default gain at boot, must be in range [JS_GAIN_MIN , JS_GAIN_MAX]. Current gain value is accessible via NAMED_VALUE_FLOAT MAVLink message with name 'PilotGain'.",
      "DisplayName": "Default gain at boot",
      "Range": {
        "high": "1.0",
        "low": "0.1"
      },
      "User": "Standard"
    },
    "JS_GAIN_MAX": {
      "Description": "Maximum joystick gain",
      "DisplayName": "Maximum joystick gain",
      "Range": {
        "high": "1.0",
        "low": "0.2"
      },
      "User": "Standard"
    },
    "JS_GAIN_MIN": {
      "Description": "Minimum joystick gain",
      "DisplayName": "Minimum joystick gain",
      "Range": {
        "high": "0.8",
        "low": "0.1"
      },
      "User": "Standard"
    },
    "JS_GAIN_STEPS": {
      "Description": "Controls the number of steps between minimum and maximum joystick gain when the gain is adjusted using buttons. Set to 1 to always use JS_GAIN_DEFAULT.",
      "DisplayName": "Gain steps",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "User": "Standard"
    },
    "JS_LIGHTS_STEPS": {
      "Description": "Number of steps in brightness between minimum and maximum brightness",
      "DisplayName": "Lights brightness steps",
      "Range": {
        "high": "10",
        "low": "1"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "JS_THR_GAIN": {
      "Description": "Scalar for gain on the throttle channel. Gets scaled with the current JS gain",
      "DisplayName": "Throttle gain scalar",
      "Range": {
        "high": "4.0",
        "low": "0.5"
      },
      "User": "Standard"
    },
    "LOG_BITMASK": {
      "Bitmask": {
        "0": "ATTITUDE_FAST",
        "1": "ATTITUDE_MED",
        "10": "RCOUT",
        "11": "OPTFLOW",
        "12": "PID",
        "13": "COMPASS",
        "14": "INAV",
        "15": "CAMERA",
        "17": "MOTBATT",
        "18": "IMU_FAST",
        "19": "IMU_RAW",
        "2": "GPS",
        "3": "PM",
        "4": "CTUN",
        "5": "NTUN",
        "6": "RCIN",
        "7": "IMU",
        "8": "CMD",
        "9": "CURRENT"
      },
      "Description": "4 byte bitmap of log types to enable",
      "DisplayName": "Log bitmask",
      "User": "Standard"
    },
    "PILOT_ACCEL_Z": {
      "Description": "The vertical acceleration used when pilot is controlling the altitude",
      "DisplayName": "Pilot vertical acceleration",
      "Increment": "10",
      "Range": {
        "high": "500",
        "low": "50"
      },
      "Units": "cm/s/s",
      "User": "Standard"
    },
    "PILOT_SPEED": {
      "Description": "The maximum horizontal velocity the pilot may request in cm/s",
      "DisplayName": "Pilot maximum horizontal speed",
      "Increment": "10",
      "Range": {
        "high": "500",
        "low": "10"
      },
      "Units": "cm/s",
      "User": "Standard"
    },
    "PILOT_SPEED_DN": {
      "Description": "The maximum vertical descending velocity the pilot may request in cm/s",
      "DisplayName": "Pilot maximum vertical descending speed",
      "Increment": "10",
      "Range": {
        "high": "500",
        "low": "20"
      },
      "Units": "cm/s",
      "User": "Standard"
    },
    "PILOT_SPEED_UP": {
      "Description": "The maximum vertical ascending velocity the pilot may request in cm/s",
      "DisplayName": "Pilot maximum vertical ascending speed",
      "Increment": "10",
      "Range": {
        "high": "500",
        "low": "20"
      },
      "Units": "cm/s",
      "User": "Standard"
    },
    "PILOT_THR_FILT": {
      "Description": "Throttle filter cutoff (Hz) - active whenever altitude control is inactive - 0 to disable",
      "DisplayName": "Throttle filter cutoff",
      "Increment": "0.5",
      "Range": {
        "high": "10",
        "low": "0"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "RC_SPEED": {
      "Description": "This is the speed in Hertz that your ESCs will receive updates",
      "DisplayName": "ESC Update Speed",
      "Increment": "1",
      "Range": {
        "high": "490",
        "low": "50"
      },
      "Units": "Hz",
      "User": "Advanced"
    },
    "RNGFND_SQ_MIN": {
      "Description": "Minimum signal quality for good rangefinder readings",
      "DisplayName": "Rangefinder signal quality minimum",
      "Range": {
        "high": "100",
        "low": "0"
      },
      "User": "Advanced"
    },
    "SFC_NOBARO_THST": {
      "Description": "Surface mode throttle output when no borometer is available. 100% is full throttle. -100% is maximum throttle downwards",
      "DisplayName": "Surface mode throttle output when no barometer is available",
      "Range": {
        "high": "100",
        "low": "-100"
      },
      "Units": "%",
      "User": "Standard"
    },
    "SURFACE_DEPTH": {
      "Description": "The depth the external pressure sensor will read when the vehicle is considered at the surface (in centimeters)",
      "DisplayName": "Depth reading at surface",
      "Range": {
        "high": "0",
        "low": "-100"
      },
      "Units": "cm",
      "User": "Standard"
    },
    "SURFACE_MAX_THR": {
      "Description": "Maximum throttle value when the vehicle is at the surface. This value is used to scale throttle linearly from 1. (full) to min as the vehicle approaches the surface. The attenuation starts at 1 meter from surface.  Only upwards throttle is limited.",
      "DisplayName": "Surface Maximum Throttle",
      "Increment": "0.01",
      "Range": {
        "high": "1.0",
        "low": "0.0"
      },
      "User": "Standard"
    },
    "SURFTRAK_DEPTH": {
      "Description": "Minimum depth to engage SURFTRAK mode",
      "DisplayName": "SURFTRAK minimum depth",
      "Units": "cm",
      "User": "Standard"
    },
    "THR_ARM_POS": {
      "Bitmask": {
        "0": "Throttle at or below min",
        "1": "Throttle within a dead zone of RC trim value"
      },
      "Description": "Determines if throttle must be at min or within trim value to arm, if RC checks and RC_OPTION for \"0\" throttle are enabled.",
      "DisplayName": "Throttle arming position",
      "User": "Standard"
    },
    "THR_DZ": {
      "Description": "The PWM deadzone in microseconds above and below mid throttle. Used in AltHold, Loiter, PosHold flight modes",
      "DisplayName": "Throttle deadzone",
      "Increment": "1",
      "Range": {
        "high": "300",
        "low": "0"
      },
      "Units": "PWM",
      "User": "Standard"
    },
    "WP_YAW_BEHAVIOR": {
      "Description": "Determines how the autopilot controls the yaw during missions and RTL",
      "DisplayName": "Yaw behaviour during missions",
      "User": "Standard",
      "Values": {
        "0": "Never change yaw",
        "1": "Face next waypoint",
        "2": "Face next waypoint except RTL",
        "3": "Face along GPS course",
        "4": "Correct crosstrack error"
      }
    },
    "XTRACK_ANG_LIM": {
      "Description": "Maximum allowed angle (in degrees) between current track and desired heading during waypoint navigation",
      "DisplayName": "Crosstrack correction angle limit",
      "Range": {
        "high": "90",
        "low": "10"
      },
      "User": "Standard"
    }
  },
  "TEMP": {
    "TEMP_LOG": {
      "Description": "Enables temperature sensor logging",
      "DisplayName": "Logging",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "Log all instances",
        "2": "Log only instances with sensor source set to None"
      }
    }
  },
  "TEMP10_": {
    "TEMP10_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP10_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP10_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP10_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP10_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP10_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP10_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP10_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP10_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP10_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP10_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP10_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP10_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP10_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP10_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP11_": {
    "TEMP11_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP11_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP11_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP11_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP11_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP11_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP11_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP11_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP11_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP11_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP11_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP11_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP11_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP11_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP11_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP12_": {
    "TEMP12_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP12_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP12_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP12_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP12_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP12_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP12_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP12_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP12_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP12_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP12_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP12_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP12_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP12_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP12_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP13_": {
    "TEMP13_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP13_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP13_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP13_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP13_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP13_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP13_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP13_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP13_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP13_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP13_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP13_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP13_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP13_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP13_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP14_": {
    "TEMP14_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP14_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP14_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP14_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP14_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP14_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP14_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP14_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP14_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP14_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP14_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP14_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP14_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP14_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP14_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP15_": {
    "TEMP15_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP15_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP15_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP15_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP15_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP15_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP15_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP15_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP15_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP15_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP15_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP15_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP15_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP15_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP15_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP1_": {
    "TEMP1_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP1_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP1_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP1_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP1_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP1_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP1_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP1_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP1_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP1_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP1_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP1_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP1_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP1_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP1_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP2_": {
    "TEMP2_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP2_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP2_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP2_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP2_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP2_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP2_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP2_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP2_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP2_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP2_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP2_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP2_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP2_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP2_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP3_": {
    "TEMP3_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP3_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP3_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP3_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP3_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP3_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP3_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP3_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP3_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP3_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP3_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP3_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP3_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP3_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP3_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP4_": {
    "TEMP4_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP4_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP4_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP4_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP4_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP4_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP4_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP4_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP4_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP4_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP4_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP4_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP4_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP4_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP4_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP5_": {
    "TEMP5_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP5_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP5_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP5_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP5_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP5_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP5_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP5_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP5_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP5_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP5_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP5_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP5_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP5_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP5_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP6_": {
    "TEMP6_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP6_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP6_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP6_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP6_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP6_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP6_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP6_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP6_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP6_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP6_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP6_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP6_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP6_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP6_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP7_": {
    "TEMP7_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP7_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP7_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP7_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP7_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP7_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP7_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP7_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP7_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP7_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP7_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP7_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP7_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP7_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP7_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP8_": {
    "TEMP8_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP8_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP8_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP8_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP8_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP8_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP8_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP8_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP8_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP8_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP8_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP8_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP8_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP8_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP8_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TEMP9_": {
    "TEMP9_A0": {
      "Description": "a0 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 0th polynomial coefficient"
    },
    "TEMP9_A1": {
      "Description": "a1 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 1st polynomial coefficient"
    },
    "TEMP9_A2": {
      "Description": "a2 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 2nd polynomial coefficient"
    },
    "TEMP9_A3": {
      "Description": "a3 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 3rd polynomial coefficient"
    },
    "TEMP9_A4": {
      "Description": "a4 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 4th polynomial coefficient"
    },
    "TEMP9_A5": {
      "Description": "a5 in polynomial of form temperature in deg = a0 + a1*voltage + a2*voltage^2 + a3*voltage^3 + a4*voltage^4 + a5*voltage^5",
      "DisplayName": "Temperature sensor analog 5th polynomial coefficient"
    },
    "TEMP9_ADDR": {
      "Description": "Temperature sensor address, typically used for I2C address",
      "DisplayName": "Temperature sensor address",
      "Range": {
        "high": "127",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP9_BUS": {
      "Description": "Temperature sensor bus number, typically used to select from multiple I2C buses",
      "DisplayName": "Temperature sensor bus",
      "Range": {
        "high": "3",
        "low": "0"
      },
      "RebootRequired": "True",
      "User": "Advanced"
    },
    "TEMP9_MSG_ID": {
      "Description": "Sets the message device ID this backend listens for",
      "DisplayName": "Temperature sensor DroneCAN message ID",
      "Range": {
        "high": "65535",
        "low": "0"
      }
    },
    "TEMP9_PIN": {
      "Description": "Sets the analog input pin that should be used for temprature monitoring. Values for some autopilots are given as examples. Search wiki for \"Analog pins\".",
      "DisplayName": "Temperature sensor analog voltage sensing pin",
      "Range": {
        "high": "127",
        "low": "-1"
      },
      "User": "Standard",
      "Values": {
        "-1": "Disabled",
        "100": "PX4-v1",
        "13": "Pixhawk2_PM2/CubeOrange_PM2",
        "14": "CubeOrange",
        "16": "Durandal",
        "2": "Pixhawk/Pixracer/Navio2/Pixhawk2_PM1",
        "5": "Navigator"
      }
    },
    "TEMP9_RTD_NOM": {
      "Description": "Nominal RTD resistance used to calculate temperature, typically 100 or 1000 ohms.",
      "DisplayName": "Nominal RTD resistance",
      "User": "Standard"
    },
    "TEMP9_RTD_REF": {
      "Description": "Reference resistance used to calculate temperature, in ohms",
      "DisplayName": "RTD reference resistance",
      "User": "Standard"
    },
    "TEMP9_SRC": {
      "Description": "Sensor Source is used to designate which device's temperature report will be replaced by this temperature sensor's data. If 0 (None) then the data is only available via log. In the future a new Motor temperature report will be created for returning data directly.",
      "DisplayName": "Sensor Source",
      "User": "Standard",
      "Values": {
        "0": "None",
        "1": "ESC",
        "2": "Motor",
        "3": "Battery Index",
        "4": "Battery ID/SerialNumber",
        "5": "CAN based Pitot tube",
        "6": "DroneCAN-out on AP_Periph",
        "7": "Servo motor",
        "8": "Servo PCB",
        "9": "Rangefinder"
      }
    },
    "TEMP9_SRC_ID": {
      "Description": "Sensor Source Identification is used to replace a specific instance of a system component's temperature report with the temp sensor's. Examples: TEMP_SRC = 1 (ESC), TEMP_SRC_ID = 1 will set the temp of ESC1. TEMP_SRC = 3 (BatteryIndex),TEMP_SRC_ID = 2 will set the temp of BATT2. TEMP_SRC = 4 (BatteryId/SerialNum),TEMP_SRC_ID=42 will set the temp of all batteries that have param BATTn_SERIAL = 42.",
      "DisplayName": "Sensor Source Identification"
    },
    "TEMP9_TYPE": {
      "Description": "Enables temperature sensors",
      "DisplayName": "Temperature Sensor Type",
      "RebootRequired": "True",
      "User": "Standard",
      "Values": {
        "0": "Disabled",
        "1": "TSYS01",
        "10": "TMP119",
        "2": "MCP9600",
        "3": "MAX31865 2 or 4 wire",
        "4": "TSYS03",
        "5": "Analog",
        "6": "DroneCAN",
        "7": "MLX90614",
        "8": "SHT3x",
        "9": "MAX31865 3 wire"
      }
    }
  },
  "TERRAIN_": {
    "TERRAIN_CACHE_SZ": {
      "Description": "The number of 32x28 cache blocks to keep in memory. Each block uses about 1800 bytes of memory",
      "DisplayName": "Terrain cache size",
      "Range": {
        "high": "128",
        "low": "1"
      },
      "User": "Advanced"
    },
    "TERRAIN_ENABLE": {
      "Description": "enable terrain data. This enables the vehicle storing a database of terrain data on the SD card. The terrain data is requested from the ground station as needed, and stored for later use on the SD card. To be useful the ground station must support TERRAIN_REQUEST messages and have access to a terrain database, such as the SRTM database.",
      "DisplayName": "Terrain data enable",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "TERRAIN_MARGIN": {
      "Description": "Margin in centi-meters to accept terrain data from the GCS. This can be used to allow older terrain data generated with less accurate latitude/longitude scaling to be used",
      "DisplayName": "Acceptance margin",
      "Range": {
        "high": "50000",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "TERRAIN_OFS_MAX": {
      "Description": "The maximum adjustment of terrain altitude based on the assumption that the vehicle is on the ground when it is armed. When the vehicle is armed the location of the vehicle is recorded, and when terrain data is available for that location a height adjustment for terrain data is calculated that aligns the terrain height at that location with the altitude recorded at arming. This height adjustment is applied to all terrain data. This parameter clamps the amount of adjustment. A value of zero disables the use of terrain height adjustment.",
      "DisplayName": "Terrain reference offset maximum",
      "Range": {
        "high": "50",
        "low": "0"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "TERRAIN_OPTIONS": {
      "Bitmask": {
        "0": "Disable Download",
        "1": "Disable Disk",
        "2": "Accept Old Terrain Data"
      },
      "Description": "Options to change behavior of terrain system. The Accept Old Terrain Data option can be used to accept terrain data generated from before the terrain database bugs were fixed. The bugs in the data were all fixed from 24th February 2026. If you really want to risk using the old terrain data then you can set this option, otherwise remove the old terrain data by formatting your microSD card or renaming the /APM/TERRAIN folder. Then downloaded updated data from https://terrain.ardupilot.club, or let the automatic terrain download repopulate your terrain data.",
      "DisplayName": "Terrain options",
      "User": "Advanced"
    },
    "TERRAIN_SPACING": {
      "Description": "Distance between terrain grid points in meters. This controls the horizontal resolution of the terrain data that is stored on te SD card and requested from the ground station. If your GCS is using the ArduPilot SRTM database like Mission Planner or MAVProxy, then a resolution of 100 meters is appropriate. Grid spacings lower than 100 meters waste SD card space if the GCS cannot provide that resolution. The grid spacing also controls how much data is kept in memory during flight. A larger grid spacing will allow for a larger amount of data in memory. A grid spacing of 100 meters results in the vehicle keeping 12 grid squares in memory with each grid square having a size of 2.7 kilometers by 3.2 kilometers. Any additional grid squares are stored on the SD once they are fetched from the GCS and will be loaded as needed.",
      "DisplayName": "Terrain grid spacing",
      "Increment": "1",
      "Units": "m",
      "User": "Advanced"
    }
  },
  "VISO": {
    "VISO_DELAY_MS": {
      "Description": "Visual odometry sensor delay relative to inertial measurements",
      "DisplayName": "Visual odometry sensor delay",
      "Range": {
        "high": "250",
        "low": "0"
      },
      "Units": "ms",
      "User": "Advanced"
    },
    "VISO_ORIENT": {
      "Description": "Visual odometery camera orientation",
      "DisplayName": "Visual odometery camera orientation",
      "User": "Advanced",
      "Values": {
        "0": "Forward",
        "2": "Right",
        "24": "Up",
        "25": "Down",
        "4": "Back",
        "6": "Left"
      }
    },
    "VISO_POS_M_NSE": {
      "Description": "Visual odometry position measurement noise minimum (meters). This value will be used if the sensor provides a lower noise value (or no noise value)",
      "DisplayName": "Visual odometry position measurement noise",
      "Range": {
        "high": "10.0",
        "low": "0.1"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "VISO_POS_X": {
      "Description": "X position of the camera in body frame. Positive X is forward of the origin.",
      "DisplayName": "Visual odometry camera X position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "VISO_POS_Y": {
      "Description": "Y position of the camera in body frame. Positive Y is to the right of the origin.",
      "DisplayName": "Visual odometry camera Y position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "VISO_POS_Z": {
      "Description": "Z position of the camera in body frame. Positive Z is down from the origin.",
      "DisplayName": "Visual odometry camera Z position offset",
      "Increment": "0.01",
      "Range": {
        "high": "5",
        "low": "-5"
      },
      "Units": "m",
      "User": "Advanced"
    },
    "VISO_QUAL_MIN": {
      "Description": "Visual odometry will only be sent to EKF if over this value. -1 to always send (even bad values), 0 to send if good or unknown",
      "DisplayName": "Visual odometry minimum quality",
      "Range": {
        "high": "100",
        "low": "-1"
      },
      "Units": "%",
      "User": "Advanced"
    },
    "VISO_SCALE": {
      "Description": "Visual odometry scaling factor applied to position estimates from sensor",
      "DisplayName": "Visual odometry scaling factor",
      "User": "Advanced"
    },
    "VISO_TYPE": {
      "Description": "Visual odometry camera connection type",
      "DisplayName": "Visual odometry camera connection type",
      "RebootRequired": "True",
      "User": "Advanced",
      "Values": {
        "0": "None",
        "1": "MAVLink",
        "2": "IntelT265",
        "3": "VOXL(ModalAI)"
      }
    },
    "VISO_VEL_M_NSE": {
      "Description": "Visual odometry velocity measurement noise in m/s",
      "DisplayName": "Visual odometry velocity measurement noise",
      "Range": {
        "high": "5.0",
        "low": "0.05"
      },
      "Units": "m/s",
      "User": "Advanced"
    },
    "VISO_YAW_M_NSE": {
      "Description": "Visual odometry yaw measurement noise minimum (radians), This value will be used if the sensor provides a lower noise value (or no noise value)",
      "DisplayName": "Visual odometry yaw measurement noise",
      "Range": {
        "high": "1.0",
        "low": "0.05"
      },
      "Units": "rad",
      "User": "Advanced"
    }
  },
  "VTX_": {
    "VTX_BAND": {
      "Description": "Video Transmitter Band",
      "DisplayName": "Video Transmitter Band",
      "User": "Standard",
      "Values": {
        "0": "Band A",
        "1": "Band B",
        "10": "3G3 Band B",
        "2": "Band E",
        "3": "Airwave",
        "4": "RaceBand",
        "5": "Low RaceBand",
        "6": "1G3 Band A",
        "7": "1G3 Band B",
        "8": "Band X",
        "9": "3G3 Band A"
      }
    },
    "VTX_CHANNEL": {
      "Description": "Video Transmitter Channel",
      "DisplayName": "Video Transmitter Channel",
      "Range": {
        "high": "7",
        "low": "0"
      },
      "User": "Standard"
    },
    "VTX_ENABLE": {
      "Description": "Toggles the Video Transmitter on and off",
      "DisplayName": "Is the Video Transmitter enabled or not",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "VTX_FREQ": {
      "Description": "Video Transmitter Frequency. The frequency is derived from the setting of BAND and CHANNEL",
      "DisplayName": "Video Transmitter Frequency",
      "Range": {
        "high": "6000",
        "low": "1000"
      },
      "ReadOnly": "True",
      "User": "Standard"
    },
    "VTX_MAX_POWER": {
      "Description": "Video Transmitter Maximum Power Level. Different VTXs support different power levels, this prevents the power aux switch from requesting too high a power level. The switch supports 6 power levels and the selected power will be a subdivision between 0 and this setting.",
      "DisplayName": "Video Transmitter Max Power Level",
      "Range": {
        "high": "1000",
        "low": "25"
      }
    },
    "VTX_OPTIONS": {
      "Bitmask": {
        "0": "Pitmode",
        "1": "Pitmode until armed",
        "2": "Pitmode when disarmed",
        "3": "Unlocked",
        "4": "Add leading zero byte to requests",
        "5": "Use 1 stop-bit in SmartAudio",
        "6": "Ignore CRC in SmartAudio",
        "7": "Ignore status updates in CRSF and blindly set VTX options"
      },
      "Description": "Video Transmitter Options. Pitmode puts the VTX in a low power state. Unlocked enables certain restricted frequencies and power levels. Do not enable the Unlocked option unless you have appropriate permissions in your jurisdiction to transmit at high power levels. One stop-bit may be required for VTXs that erroneously mimic iNav behaviour.",
      "DisplayName": "Video Transmitter Options",
      "User": "Advanced"
    },
    "VTX_POWER": {
      "Description": "Video Transmitter Power Level. Different VTXs support different power levels, the power level chosen will be rounded down to the nearest supported power level",
      "DisplayName": "Video Transmitter Power Level",
      "Range": {
        "high": "1000",
        "low": "1"
      }
    },
    "VTX_TYPES": {
      "Bitmask": {
        "0": "CRSF",
        "1": "SmartAudio",
        "2": "Tramp",
        "3": "MSP"
      },
      "Description": "Bitmask of the control transports permitted to manage the VTX. AP_VideoTX represents a single VTX, so when more than one transport is present (for example a CRSF VTX on the receiver and an MSP VTX on the goggles) this selects which one owns it. Clear a transport's bit to stop it taking control of the VTX.",
      "DisplayName": "Allowed VTX control transports",
      "User": "Advanced"
    }
  },
  "WP_": {
    "WP_ACC": {
      "Description": "Horizontal acceleration in m/s/s used during missions",
      "DisplayName": "Waypoint Acceleration",
      "Increment": "0.10",
      "Range": {
        "high": "5.00",
        "low": "0.50"
      },
      "Units": "m/s/s",
      "User": "Standard"
    },
    "WP_ACC_CNR": {
      "Description": "Maximum cornering acceleration in m/s/s used during missions.  If zero uses 2x accel value.",
      "DisplayName": "Waypoint Cornering Acceleration",
      "Increment": "0.10",
      "Range": {
        "high": "5.00",
        "low": "0"
      },
      "Units": "m/s/s",
      "User": "Standard"
    },
    "WP_ACC_Z": {
      "Description": "Vertical acceleration in m/s/s used during missions",
      "DisplayName": "Waypoint Vertical Acceleration",
      "Increment": "0.10",
      "Range": {
        "high": "5.00",
        "low": "0.50"
      },
      "Units": "m/s/s",
      "User": "Standard"
    },
    "WP_JERK": {
      "Description": "Defines the horizontal jerk in m/s/s used during missions",
      "DisplayName": "Waypoint Jerk",
      "Range": {
        "high": "20",
        "low": "1"
      },
      "Units": "m/s/s/s",
      "User": "Standard"
    },
    "WP_RADIUS_M": {
      "Description": "Distance from a waypoint, that when crossed indicates the wp has been reached.",
      "DisplayName": "Waypoint Radius",
      "Increment": "0.01",
      "Range": {
        "high": "10.00",
        "low": "0.05"
      },
      "Units": "m",
      "User": "Standard"
    },
    "WP_RFND_USE": {
      "Description": "This controls if waypoint missions use rangefinder for terrain following",
      "DisplayName": "Waypoint missions use rangefinder for terrain following",
      "User": "Advanced",
      "Values": {
        "0": "Disable",
        "1": "Enable"
      }
    },
    "WP_SPD": {
      "Description": "Speed in m/s which the aircraft will attempt to maintain horizontally during a WP mission",
      "DisplayName": "Waypoint Horizontal Speed Target",
      "Increment": "0.10",
      "Range": {
        "high": "20.00",
        "low": "0.10"
      },
      "Units": "m/s",
      "User": "Standard"
    },
    "WP_SPD_DN": {
      "Description": "Speed in m/s which the aircraft will attempt to maintain while descending during a WP mission",
      "DisplayName": "Waypoint Descent Speed Target",
      "Increment": "0.10",
      "Range": {
        "high": "10.00",
        "low": "0.10"
      },
      "Units": "m/s",
      "User": "Standard"
    },
    "WP_SPD_UP": {
      "Description": "Speed in m/s which the aircraft will attempt to maintain while climbing during a WP mission",
      "DisplayName": "Waypoint Climb Speed Target",
      "Increment": "0.10",
      "Range": {
        "high": "10.00",
        "low": "0.10"
      },
      "Units": "m/s",
      "User": "Standard"
    },
    "WP_TER_MARGIN": {
      "Description": "Waypoint Terrain following altitude margin.  Vehicle will stop if distance from target altitude is larger than this margin (in meters)",
      "DisplayName": "Waypoint Terrain following altitude margin",
      "Range": {
        "high": "100",
        "low": "0.1"
      },
      "Units": "m",
      "User": "Advanced"
    }
  },
  "json": {
    "version": 0
  }
}