From 2803796cdc10d9aec096af1243d5debf67156523 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Thu, 29 Oct 2020 09:49:23 -0700 Subject: [PATCH] Add support for new FactMetaData json values/bitmask formats. (#9148) --- src/FactSystem/FactMetaData.cc | 184 +- src/FactSystem/FactMetaData.h | 23 +- src/JsonHelper.cc | 71 +- src/JsonHelper.h | 6 - src/comm/MockLink.Parameter.MetaData.json | 23591 +++++++++-------- src/comm/MockLink.Parameter.MetaData.json.gz | Bin 0 -> 63999 bytes 6 files changed, 12015 insertions(+), 11860 deletions(-) create mode 100644 src/comm/MockLink.Parameter.MetaData.json.gz diff --git a/src/FactSystem/FactMetaData.cc b/src/FactSystem/FactMetaData.cc index da164d15d..7e1c95a8a 100644 --- a/src/FactSystem/FactMetaData.cc +++ b/src/FactSystem/FactMetaData.cc @@ -28,20 +28,30 @@ const qreal FactMetaData::UnitConsts_s::secondsPerHour = 3600.0; const qreal FactMetaData::UnitConsts_s::knotsToKPH = 1.852; // exact, hence weird base for knotsToMetersPerSecond // Length -const qreal FactMetaData::UnitConsts_s::milesToMeters = 1609.344; -const qreal FactMetaData::UnitConsts_s::feetToMeters = 0.3048; -const qreal FactMetaData::UnitConsts_s::inchesToCentimeters = 2.54; +const qreal FactMetaData::UnitConsts_s::milesToMeters = 1609.344; +const qreal FactMetaData::UnitConsts_s::feetToMeters = 0.3048; +const qreal FactMetaData::UnitConsts_s::inchesToCentimeters = 2.54; //Weight -const qreal FactMetaData::UnitConsts_s::ouncesToGrams = 28.3495; -const qreal FactMetaData::UnitConsts_s::poundsToGrams = 453.592; +const qreal FactMetaData::UnitConsts_s::ouncesToGrams = 28.3495; +const qreal FactMetaData::UnitConsts_s::poundsToGrams = 453.592; const char* FactMetaData::kDefaultCategory = QT_TRANSLATE_NOOP("FactMetaData", "Other"); const char* FactMetaData::kDefaultGroup = QT_TRANSLATE_NOOP("FactMetaData", "Misc"); -const char* FactMetaData::qgcFileType = "FactMetaData"; -const char* FactMetaData::_jsonMetaDataDefinesName = "QGC.MetaData.Defines"; -const char* FactMetaData::_jsonMetaDataFactsName = "QGC.MetaData.Facts"; +const char* FactMetaData::qgcFileType = "FactMetaData"; +const char* FactMetaData::_jsonMetaDataDefinesName = "QGC.MetaData.Defines"; +const char* FactMetaData::_jsonMetaDataFactsName = "QGC.MetaData.Facts"; +const char* FactMetaData::_enumStringsJsonKey = "enumStrings"; +const char* FactMetaData::_enumValuesJsonKey = "enumValues"; + +// This is the newer json format for enums and bitmasks. They are used by the new COMPONENT_INFORMATION parameter metadata for example. +const char* FactMetaData::_enumValuesArrayJsonKey = "values"; +const char* FactMetaData::_enumBitmaskArrayJsonKey = "bitmask"; +const char* FactMetaData::_enumValuesArrayValueJsonKey = "value"; +const char* FactMetaData::_enumValuesArrayDescriptionJsonKey = "description"; +const char* FactMetaData::_enumBitmaskArrayIndexJsonKey = "index"; +const char* FactMetaData::_enumBitmaskArrayDescriptionJsonKey = "description"; // Built in translations for all Facts const FactMetaData::BuiltInTranslation_s FactMetaData::_rgBuiltInTranslations[] = { @@ -707,7 +717,7 @@ void FactMetaData::setTranslators(Translator rawTranslator, Translator cookedTra void FactMetaData::setBuiltInTranslator(void) { - if (_enumStrings.count()) { + if (_enumStrings.count() || _bitmaskStrings.count()) { // No translation if enum setTranslators(_defaultTranslator, _defaultTranslator); _cookedUnits = _rawUnits; @@ -1009,7 +1019,7 @@ void FactMetaData::_setAppSettingsTranslators(void) } if (settingsUnits == pAppSettingsTranslation->unitOption) { - _cookedUnits = pAppSettingsTranslation->cookedUnits; + _cookedUnits = pAppSettingsTranslation->cookedUnits; setTranslators(pAppSettingsTranslation->rawTranslator, pAppSettingsTranslation->cookedTranslator); return; } @@ -1249,6 +1259,10 @@ FactMetaData* FactMetaData::createFromJsonObject(const QJsonObject& json, QMap_name = json[_nameJsonKey].toString(); - QStringList enumValues, enumStrings; - if (JsonHelper::parseEnum(json, defineMap, enumStrings, enumValues, errorString, metaData->name())) { - for (int i=0; i rgDoubleValues; + QStringList rgStringValues; + + bool foundBitmask = false; + if (!_parseValuesArray(json, rgDescriptions, rgDoubleValues, errorString)) { + qWarning() << QStringLiteral("FactMetaData::createFromJsonObject _parseValueDescriptionArray for %1 failed. %2").arg(metaData->_name).arg(errorString); + } + if (rgDescriptions.isEmpty()) { + if (!_parseBitmaskArray(json, rgDescriptions, rgDoubleValues, errorString)) { + qWarning() << QStringLiteral("FactMetaData::createFromJsonObject _parseBitmaskArray for %1 failed. %2").arg(metaData->_name).arg(errorString); + } + foundBitmask = rgDescriptions.count() != 0; + } + if (rgDescriptions.isEmpty()) { + if (!_parseEnum(json, defineMap, rgDescriptions, rgStringValues, errorString)) { + qWarning() << QStringLiteral("FactMetaData::createFromJsonObject _parseEnum for %1 failed. %2").arg(metaData->_name).arg(errorString); + } + } + + if (errorString.isEmpty() && rgDescriptions.count()) { + for (int i=0; iconvertAndValidateRaw(enumValues[i], false /* validate */, enumVariant, errorString)) { - metaData->addEnumInfo(enumStrings[i], enumVariant); + if (foundBitmask) { + metaData->addBitmaskInfo(rgDescriptions[i], rawValueVariant); } else { - qWarning() << "Invalid enum value, name:" << metaData->name() - << " type:" << metaData->type() - << " value:" << enumValues[i] - << " error:" << errorString; + if (metaData->convertAndValidateRaw(rawValueVariant, false /* validate */, convertedValueVariant, errorString)) { + metaData->addEnumInfo(rgDescriptions[i], convertedValueVariant); + } else { + qWarning() << QStringLiteral("FactMetaData::createFromJsonObject convertAndValidateRaw on enum value for %1 failed.").arg(metaData->_name) + << " type:" << metaData->type() + << " value:" << rawValueVariant + << " error:" << errorString; + } } } - } else { - qWarning() << errorString; } metaData->setDecimalPlaces(json[_decimalPlacesJsonKey].toInt(0)); @@ -1470,3 +1506,105 @@ void FactMetaData::setVolatileValue(bool bValue) _readOnly = true; } } + +bool FactMetaData::_parseEnum(const QJsonObject& jsonObject, DefineMap_t defineMap, QStringList& rgDescriptions, QStringList& rgValues, QString& errorString) +{ + rgDescriptions.clear(); + rgValues.clear(); + errorString.clear(); + + if (!jsonObject.contains(_enumStringsJsonKey)) { + return true; + } + + QString strings = jsonObject.value(_enumStringsJsonKey).toString(); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + rgDescriptions = defineMap.value(strings, strings).split(",", QString::SkipEmptyParts); +#else + rgDescriptions = defineMap.value(strings, strings).split(",", Qt::SkipEmptyParts); +#endif + + QString values = jsonObject.value(_enumValuesJsonKey).toString(); +#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) + rgValues = defineMap.value(values, values).split(",", QString::SkipEmptyParts); +#else + rgValues = defineMap.value(values, values).split(",", Qt::SkipEmptyParts); +#endif + + if (rgDescriptions.count() != rgValues.count()) { + errorString = QStringLiteral("Enum strings/values count mismatch - strings:values %1:%2").arg(rgDescriptions.count()).arg(rgValues.count()); + return false; + } + + return true; +} + +bool FactMetaData::_parseValuesArray(const QJsonObject& jsonObject, QStringList& rgDescriptions, QList& rgValues, QString& errorString) +{ + rgDescriptions.clear(); + rgValues.clear(); + errorString.clear(); + + if (!jsonObject.contains(_enumValuesArrayJsonKey)) { + return true; + } + + QList keyInfoList = { + { _enumValuesArrayDescriptionJsonKey, QJsonValue::String, true }, + { _enumValuesArrayValueJsonKey, QJsonValue::Double, true }, + }; + + const QJsonArray& rgValueDescription = jsonObject[_enumValuesArrayJsonKey].toArray(); + for (int i=0; i& rgValues, QString& errorString) +{ + rgDescriptions.clear(); + rgValues.clear(); + errorString.clear(); + + if (!jsonObject.contains(_enumBitmaskArrayJsonKey)) { + return true; + } + + QList keyInfoList = { + { _enumBitmaskArrayDescriptionJsonKey, QJsonValue::String, true }, + { _enumBitmaskArrayIndexJsonKey, QJsonValue::Double, true }, + }; + + const QJsonArray& rgValueDescription = jsonObject[_enumBitmaskArrayJsonKey].toArray(); + for (int i=0; i DefineMap_t; + static QMap createMapFromJsonFile(const QString& jsonFilename, QObject* metaDataParent); - static QMap createMapFromJsonArray(const QJsonArray jsonArray, QMap& defineMap, QObject* metaDataParent); + static QMap createMapFromJsonArray(const QJsonArray jsonArray, DefineMap_t& defineMap, QObject* metaDataParent); static FactMetaData* createFromJsonObject(const QJsonObject& json, QMap& defineMap, QObject* metaDataParent); @@ -204,10 +206,9 @@ public: static const char* qgcFileType; private: - QVariant _minForType(void) const; - QVariant _maxForType(void) const; - void _setAppSettingsTranslators(void); - + QVariant _minForType (void) const; + QVariant _maxForType (void) const; + void _setAppSettingsTranslators (void); /// Clamp a value to be within cookedMin and cookedMax template @@ -232,6 +233,10 @@ private: bool isInRawMinLimit(const QVariant& variantValue) const; bool isInRawMaxLimit(const QVariant& variantValue) const; + static bool _parseEnum (const QJsonObject& jsonObject, DefineMap_t defineMap, QStringList& rgDescriptions, QStringList& rgValues, QString& errorString); + static bool _parseValuesArray (const QJsonObject& jsonObject, QStringList& rgDescriptions, QList& rgValues, QString& errorString); + static bool _parseBitmaskArray (const QJsonObject& jsonObject, QStringList& rgDescriptions, QList& rgValues, QString& errorString); + // Built in translators static QVariant _defaultTranslator(const QVariant& from) { return from; } static QVariant _degreesToRadians(const QVariant& degrees); @@ -366,6 +371,14 @@ private: static const char* _categoryJsonKey; static const char* _groupJsonKey; static const char* _volatileJsonKey; + static const char* _enumStringsJsonKey; + static const char* _enumValuesJsonKey; + static const char* _enumValuesArrayJsonKey; + static const char* _enumBitmaskArrayJsonKey; + static const char* _enumValuesArrayValueJsonKey; + static const char* _enumValuesArrayDescriptionJsonKey; + static const char* _enumBitmaskArrayIndexJsonKey; + static const char* _enumBitmaskArrayDescriptionJsonKey; static const char* _jsonMetaDataDefinesName; static const char* _jsonMetaDataFactsName; diff --git a/src/JsonHelper.cc b/src/JsonHelper.cc index da9d37463..82579c829 100644 --- a/src/JsonHelper.cc +++ b/src/JsonHelper.cc @@ -22,14 +22,12 @@ #include #include -const char* JsonHelper::_enumStringsJsonKey = "enumStrings"; -const char* JsonHelper::_enumValuesJsonKey = "enumValues"; -const char* JsonHelper::jsonVersionKey = "version"; -const char* JsonHelper::jsonGroundStationKey = "groundStation"; -const char* JsonHelper::jsonGroundStationValue = "QGroundControl"; -const char* JsonHelper::jsonFileTypeKey = "fileType"; -const char* JsonHelper::_translateKeysKey = "translateKeys"; -const char* JsonHelper::_arrayIDKeysKey = "_arrayIDKeys"; +const char* JsonHelper::jsonVersionKey = "version"; +const char* JsonHelper::jsonGroundStationKey = "groundStation"; +const char* JsonHelper::jsonGroundStationValue = "QGroundControl"; +const char* JsonHelper::jsonFileTypeKey = "fileType"; +const char* JsonHelper::_translateKeysKey = "translateKeys"; +const char* JsonHelper::_arrayIDKeysKey = "_arrayIDKeys"; bool JsonHelper::validateRequiredKeys(const QJsonObject& jsonObject, const QStringList& keys, QString& errorString) { @@ -159,63 +157,6 @@ bool JsonHelper::validateKeyTypes(const QJsonObject& jsonObject, const QStringLi return true; } -bool JsonHelper::_parseEnumWorker(const QJsonObject& jsonObject, QMap& defineMap, QStringList& enumStrings, QStringList& enumValues, QString& errorString, QString valueName) -{ - if(jsonObject.value(_enumStringsJsonKey).isArray()) { - // "enumStrings": ["Auto" , "Manual", "Shutter Priority", "Aperture Priority"], - QJsonArray jArray = jsonObject.value(_enumStringsJsonKey).toArray(); - for(int i = 0; i < jArray.count(); ++i) { - enumStrings << jArray.at(i).toString(); - } - } else { - // "enumStrings": "Auto,Manual,Shutter Priority,Aperture Priority", - QString value = jsonObject.value(_enumStringsJsonKey).toString(); -#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) - enumStrings = defineMap.value(value, value).split(",", QString::SkipEmptyParts); -#else - enumStrings = defineMap.value(value, value).split(",", Qt::SkipEmptyParts); -#endif - } - - if(jsonObject.value(_enumValuesJsonKey).isArray()) { - // "enumValues": [0, 1, 2, 3, 4, 5], - QJsonArray jArray = jsonObject.value(_enumValuesJsonKey).toArray(); - // This should probably be a variant list and not a string list. - for(int i = 0; i < jArray.count(); ++i) { - if(jArray.at(i).isString()) - enumValues << jArray.at(i).toString(); - else - enumValues << QString::number(jArray.at(i).toDouble()); - } - } else { - // "enumValues": "0,1,2,3,4,5", - QString value = jsonObject.value(_enumValuesJsonKey).toString(); -#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0) - enumValues = defineMap.value(value, value).split(",", QString::SkipEmptyParts); -#else - enumValues = defineMap.value(value, value).split(",", Qt::SkipEmptyParts); -#endif - } - - if (enumStrings.count() != enumValues.count()) { - errorString = QObject::tr("enum strings/values count mismatch in %3 strings:values %1:%2").arg(enumStrings.count()).arg(enumValues.count()).arg(valueName); - return false; - } - - return true; -} - -bool JsonHelper::parseEnum(const QJsonObject& jsonObject, QMap& defineMap, QStringList& enumStrings, QStringList& enumValues, QString& errorString, QString valueName) -{ - return _parseEnumWorker(jsonObject, defineMap, enumStrings, enumValues, errorString, valueName); -} - -bool JsonHelper::parseEnum(const QJsonObject& jsonObject, QStringList& enumStrings, QStringList& enumValues, QString& errorString, QString valueName) -{ - QMap defineMap; - return _parseEnumWorker(jsonObject, defineMap, enumStrings, enumValues, errorString, valueName); -} - bool JsonHelper::isJsonFile(const QByteArray& bytes, QJsonDocument& jsonDoc, QString& errorString) { QJsonParseError parseError; diff --git a/src/JsonHelper.h b/src/JsonHelper.h index 66d2026d7..74a9634ea 100644 --- a/src/JsonHelper.h +++ b/src/JsonHelper.h @@ -155,9 +155,6 @@ public: static void savePolygon(QmlObjectListModel& list, ///< List which contains vertices QJsonArray& polygonArray); ///< Array to save into - static bool parseEnum(const QJsonObject& jsonObject, QStringList& enumStrings, QStringList& enumValues, QString& errorString, QString valueName = QString()); - static bool parseEnum(const QJsonObject& jsonObject, QMap& defineMap, QStringList& enumStrings, QStringList& enumValues, QString& errorString, QString valueName = QString()); - /// Returns NaN if the value is null, or if not, the double value static double possibleNaNJsonValue(const QJsonValue& value); @@ -177,14 +174,11 @@ private: bool writeAltitude, QJsonValue& jsonValue, bool geoJsonFormat); - static bool _parseEnumWorker(const QJsonObject& jsonObject, QMap& defineMap, QStringList& enumStrings, QStringList& enumValues, QString& errorString, QString valueName); static QStringList _addDefaultLocKeys(QJsonObject& jsonObject); static QJsonObject _translateRoot(QJsonObject& jsonObject, const QString& translateContext, const QStringList& translateKeys); static QJsonObject _translateObject(QJsonObject& jsonObject, const QString& translateContext, const QStringList& translateKeys); static QJsonArray _translateArray(QJsonArray& jsonArray, const QString& translateContext, const QStringList& translateKeys); - static const char* _enumStringsJsonKey; - static const char* _enumValuesJsonKey; static const char* _translateKeysKey; static const char* _arrayIDKeysKey; }; diff --git a/src/comm/MockLink.Parameter.MetaData.json b/src/comm/MockLink.Parameter.MetaData.json index f024796ec..42bc83f18 100644 --- a/src/comm/MockLink.Parameter.MetaData.json +++ b/src/comm/MockLink.Parameter.MetaData.json @@ -1,55 +1,310 @@ { "version": 1, - "uid": 1, "scope": "Firmware", "parameters": [ + { + "name": "ctl_bw", + "type": "Int32", + "default": 75, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Speed controller bandwidth", + "longDesc": "Speed controller bandwidth, in Hz. Higher values result in faster speed and current rise times, but may result in overshoot and higher current consumption. For fixed-wing aircraft, this value should be less than 50 Hz; for multirotors, values up to 100 Hz may provide improvements in responsiveness.", + "min": 10, + "max": 250, + "units": "Hz" + }, + { + "name": "ctl_dir", + "type": "Int32", + "default": 1, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Reverse direction", + "longDesc": "Motor spin direction as detected during initial enumeration. Use 0 or 1 to reverse direction.", + "min": 0, + "max": 1 + }, + { + "name": "ctl_gain", + "type": "Float", + "default": 1.0, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Speed (RPM) controller gain", + "longDesc": "Speed (RPM) controller gain. Determines controller\n aggressiveness; units are amp-seconds per radian. Systems with\n higher rotational inertia (large props) will need gain increased;\n systems with low rotational inertia (small props) may need gain\n decreased. Higher values result in faster response, but may result\n in oscillation and excessive overshoot. Lower values result in a\n slower, smoother response.", + "min": 0.0, + "max": 1.0, + "units": "C/rad", + "decimalPlaces": 3 + }, + { + "name": "ctl_hz_idle", + "type": "Float", + "default": 3.5, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Idle speed (e Hz)", + "longDesc": "Idle speed (e Hz)", + "min": 0.0, + "max": 100.0, + "units": "Hz", + "decimalPlaces": 3 + }, + { + "name": "ctl_start_rate", + "type": "Int32", + "default": 25, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Spin-up rate (e Hz/s)", + "longDesc": "Spin-up rate (e Hz/s)", + "min": 5, + "max": 1000, + "units": "1/s^2" + }, + { + "name": "esc_index", + "type": "Int32", + "default": 0, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Index of this ESC in throttle command messages.", + "longDesc": "Index of this ESC in throttle command messages.", + "min": 0, + "max": 15 + }, + { + "name": "id_ext_status", + "type": "Int32", + "default": 20034, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Extended status ID", + "longDesc": "Extended status ID", + "min": 1, + "max": 1000000 + }, + { + "name": "int_ext_status", + "type": "Int32", + "default": 50000, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Extended status interval (\u00b5s)", + "longDesc": "Extended status interval (\u00b5s)", + "min": 0, + "max": 1000000, + "units": "us" + }, + { + "name": "int_status", + "type": "Int32", + "default": 50000, + "group": "UAVCAN Motor Parameters", + "shortDesc": "ESC status interval (\u00b5s)", + "longDesc": "ESC status interval (\u00b5s)", + "max": 1000000, + "units": "us" + }, + { + "name": "mot_i_max", + "type": "Float", + "default": 12.0, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Motor current limit in amps", + "longDesc": "Motor current limit in amps. This determines the maximum\n current controller setpoint, as well as the maximum allowable\n current setpoint slew rate. This value should generally be set to\n the continuous current rating listed in the motor\u2019s specification\n sheet, or set equal to the motor\u2019s specified continuous power\n divided by the motor voltage limit.", + "min": 1.0, + "max": 80.0, + "units": "A", + "decimalPlaces": 3 + }, + { + "name": "mot_kv", + "type": "Int32", + "default": 2300, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Motor Kv in RPM per volt", + "longDesc": "Motor Kv in RPM per volt. This can be taken from the motor\u2019s\n specification sheet; accuracy will help control performance but\n some deviation from the specified value is acceptable.", + "min": 0, + "max": 4000, + "units": "rpm/V" + }, + { + "name": "mot_ls", + "type": "Float", + "default": 0.0, + "group": "UAVCAN Motor Parameters", + "shortDesc": "READ ONLY: Motor inductance in henries.", + "longDesc": "READ ONLY: Motor inductance in henries. This is measured on start-up.", + "units": "H", + "decimalPlaces": 3 + }, + { + "name": "mot_num_poles", + "type": "Int32", + "default": 14, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Number of motor poles.", + "longDesc": "Number of motor poles. Used to convert mechanical speeds to\n electrical speeds. This number should be taken from the motor\u2019s\n specification sheet.", + "min": 2, + "max": 40 + }, + { + "name": "mot_rs", + "type": "Float", + "default": 0.0, + "group": "UAVCAN Motor Parameters", + "shortDesc": "READ ONLY: Motor resistance in ohms", + "longDesc": "READ ONLY: Motor resistance in ohms. This is measured on start-up. When\n tuning a new motor, check that this value is approximately equal\n to the value shown in the motor\u2019s specification sheet.", + "units": "Ohm", + "decimalPlaces": 3 + }, + { + "name": "mot_v_accel", + "type": "Float", + "default": 0.5, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Acceleration limit (V)", + "longDesc": "Acceleration limit (V)", + "min": 0.01, + "max": 1.0, + "units": "V", + "decimalPlaces": 3 + }, + { + "name": "mot_v_max", + "type": "Float", + "default": 14.8, + "group": "UAVCAN Motor Parameters", + "shortDesc": "Motor voltage limit in volts", + "longDesc": "Motor voltage limit in volts. The current controller\u2019s\n commanded voltage will never exceed this value. Note that this may\n safely be above the nominal voltage of the motor; to determine the\n actual motor voltage limit, divide the motor\u2019s rated power by the\n motor current limit.", + "min": 0.0, + "units": "V", + "decimalPlaces": 3 + }, + { + "name": "gnss.dyn_model", + "type": "Int32", + "default": 2, + "group": "UAVCAN GNSS", + "shortDesc": "GNSS dynamic model", + "longDesc": "Dynamic model used in the GNSS positioning engine. 0 \u2013\n Automotive, 1 \u2013 Sea, 2 \u2013 Airborne.\n ", + "min": 0, + "max": 2, + "values": [ + { + "value": 0, + "description": "Automotive" + }, + { + "value": 1, + "description": "Sea" + }, + { + "value": 2, + "description": "Airborne" + } + ] + }, + { + "name": "gnss.old_fix_msg", + "type": "Int32", + "default": 1, + "group": "UAVCAN GNSS", + "shortDesc": "Broadcast old GNSS fix message", + "longDesc": "Broadcast the old (deprecated) GNSS fix message\n uavcan.equipment.gnss.Fix alongside the new alternative\n uavcan.equipment.gnss.Fix2. It is recommended to\n disable this feature to reduce the CAN bus traffic.\n ", + "min": 0, + "max": 1, + "values": [ + { + "value": 0, + "description": "Fix2" + }, + { + "value": 1, + "description": "Fix and Fix2" + } + ] + }, + { + "name": "gnss.warn_dimens", + "type": "Int32", + "default": 0, + "group": "UAVCAN GNSS", + "shortDesc": "device health warning", + "longDesc": "Set the device health to Warning if the dimensionality of\n the GNSS solution is less than this value. 3 for the full (3D)\n solution, 2 for planar (2D) solution, 1 for time-only solution,\n 0 disables the feature.\n ", + "min": 0, + "max": 3, + "values": [ + { + "value": 0, + "description": "disables the feature" + }, + { + "value": 1, + "description": "time-only solution" + }, + { + "value": 2, + "description": "planar (2D) solution" + }, + { + "value": 3, + "description": "full (3D) solution" + } + ] + }, + { + "name": "gnss.warn_sats", + "type": "Int32", + "default": 0, + "group": "UAVCAN GNSS", + "shortDesc": "", + "longDesc": "Set the device health to Warning if the number of satellites\n used in the GNSS solution is below this threshold. Zero\n disables the feature\n " + }, + { + "name": "uavcan.pubp-pres", + "type": "Int32", + "default": 0, + "group": "UAVCAN GNSS", + "shortDesc": "", + "longDesc": "Set the device health to Warning if the number of satellites\n used in the GNSS solution is below this threshold. Zero\n disables the feature\n ", + "min": 0, + "max": 1000000, + "units": "us" + }, { "name": "ASPD_BETA_GATE", "type": "Int32", + "default": 1, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed Selector: Gate size for sideslip angle fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", - "units": "SD", - "default": 1, - "decimalPlaces": 3, "min": 1, - "max": 5 + "max": 5, + "units": "SD" }, { "name": "ASPD_BETA_NOISE", "type": "Float", + "default": 0.3, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed Selector: Wind estimator sideslip measurement noise", "longDesc": "Sideslip measurement noise of the internal wind estimator(s) of the airspeed selector.", - "units": "rad", - "default": 0.3, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0, + "units": "rad" }, { "name": "ASPD_DO_CHECKS", "type": "Int32", + "default": 0, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Enable checks on airspeed sensors", "longDesc": "If set to true then the data comming from the airspeed sensors is checked for validity. Only applied if ASPD_PRIMARY > 0.", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "rebootRequired": true }, { "name": "ASPD_FALLBACK", "type": "Int32", + "default": 0, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Enable fallback to secondary airspeed measurement", "longDesc": "If ASPD_DO_CHECKS is set to true, then airspeed estimation can fallback from what specified in ASPD_PRIMARY to secondary source (other airspeed sensors, groundspeed minus windspeed).", - "default": 0, + "rebootRequired": true, "values": [ { "value": 0, @@ -59,70 +314,57 @@ "value": 1, "description": "To other airspeed sensor (if one valid), else to ground-windspeed" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "ASPD_FS_INNOV", "type": "Float", + "default": 1.0, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed failsafe consistency threshold (Experimental)", "longDesc": "This specifies the minimum airspeed test ratio required to trigger a failsafe. Larger values make the check less sensitive, smaller values make it more sensitive. Start with a value of 1.0 when tuning. When tas_test_ratio is > 1.0 it indicates the inconsistency between predicted and measured airspeed is large enough to cause the navigation EKF to reject airspeed measurements. The time required to detect a fault when the threshold is exceeded depends on the size of the exceedance and is controlled by the ASPD_FS_INTEG parameter.", - "default": 1, - "decimalPlaces": 3, "min": 0.5, - "max": 3 + "max": 3.0 }, { "name": "ASPD_FS_INTEG", "type": "Float", + "default": -1.0, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed failsafe consistency delay (Experimental)", "longDesc": "This sets the time integral of airspeed test ratio exceedance above ASPD_FS_INNOV required to trigger a failsafe. For example if ASPD_FS_INNOV is 1 and estimator_status.tas_test_ratio is 2.0, then the exceedance is 1.0 and the integral will rise at a rate of 1.0/second. A negative value disables the check. Larger positive values make the check less sensitive, smaller positive values make it more sensitive.", - "units": "s", - "default": -1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 30 + "max": 30.0, + "units": "s" }, { "name": "ASPD_FS_T1", "type": "Int32", + "default": 3, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed failsafe stop delay (Experimental)", "longDesc": "Delay before stopping use of airspeed sensor if checks indicate sensor is bad.", - "units": "s", - "default": 3, - "decimalPlaces": 3, "min": 1, - "max": 10 + "max": 10, + "units": "s" }, { "name": "ASPD_FS_T2", "type": "Int32", + "default": 100, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed failsafe start delay (Experimental)", "longDesc": "Delay before switching back to using airspeed sensor if checks indicate sensor is good.", - "units": "s", - "default": 100, - "decimalPlaces": 3, "min": 10, - "max": 1000 + "max": 1000, + "units": "s" }, { "name": "ASPD_PRIMARY", "type": "Int32", + "default": 1, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Index or primary airspeed measurement source", - "default": 1, + "rebootRequired": true, "values": [ { "value": -1, @@ -144,131 +386,105 @@ "value": 3, "description": "Third airspeed sensor" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "ASPD_SCALE", "type": "Float", + "default": 1.0, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed scale (scale from IAS to CAS/EAS)", "longDesc": "Scale can either be entered manually, or estimated in-flight by setting ASPD_SCALE_EST to 1.", - "default": 1, - "decimalPlaces": 3, "min": 0.5, "max": 1.5 }, { "name": "ASPD_SCALE_EST", "type": "Int32", + "default": 0, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Automatic airspeed scale estimation on", - "longDesc": "Turns the automatic airspeed scale (scale from IAS to CAS/EAS) on or off. It is recommended to fly level altitude while performing the estimation. Set to 1 to start estimation (best when already flying). Set to 0 to end scale estimation. The estimated scale is then saved using the ASPD_SCALE parameter.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Turns the automatic airspeed scale (scale from IAS to CAS/EAS) on or off. It is recommended to fly level altitude while performing the estimation. Set to 1 to start estimation (best when already flying). Set to 0 to end scale estimation. The estimated scale is then saved using the ASPD_SCALE parameter." }, { "name": "ASPD_SC_P_NOISE", "type": "Float", + "default": 0.0001, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed Selector: Wind estimator true airspeed scale process noise", "longDesc": "Airspeed scale process noise of the internal wind estimator(s) of the airspeed selector.", - "units": "1/s", - "default": 0.0001, - "decimalPlaces": 3, - "min": 0, - "max": 0.1 + "min": 0.0, + "max": 0.1, + "units": "Hz" }, { "name": "ASPD_STALL", "type": "Float", + "default": 10.0, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed fault detection stall airspeed. (Experimental)", "longDesc": "This is the minimum indicated airspeed at which the wing can produce 1g of lift. It is used by the airspeed sensor fault detection and failsafe calculation to detect a significant airspeed low measurement error condition and should be set based on flight test for reliable operation.", - "units": "m/s", - "default": 10, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "units": "m/s" }, { "name": "ASPD_TAS_GATE", "type": "Int32", + "default": 3, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed Selector: Gate size for true airspeed fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", - "units": "SD", - "default": 3, - "decimalPlaces": 3, "min": 1, - "max": 5 + "max": 5, + "units": "SD" }, { "name": "ASPD_TAS_NOISE", "type": "Float", + "default": 1.4, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed Selector: Wind estimator true airspeed measurement noise", "longDesc": "True airspeed measurement noise of the internal wind estimator(s) of the airspeed selector.", - "units": "m/s", - "default": 1.4, - "decimalPlaces": 3, - "min": 0, - "max": 4 + "min": 0.0, + "max": 4.0, + "units": "m/s" }, { "name": "ASPD_W_P_NOISE", "type": "Float", + "default": 0.1, "group": "Airspeed Validator", - "category": "Standard", "shortDesc": "Airspeed Selector: Wind estimator wind process noise", "longDesc": "Wind process noise of the internal wind estimator(s) of the airspeed selector.", - "units": "m/s/s", - "default": 0.1, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0, + "units": "m/s^2" }, { "name": "ATT_ACC_COMP", "type": "Int32", - "group": "Attitude Q estimator", - "category": "Standard", - "shortDesc": "Acceleration compensation based on GPS velocity", "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "group": "Attitude Q estimator", + "shortDesc": "Acceleration compensation based on GPS\nvelocity" }, { "name": "ATT_BIAS_MAX", "type": "Float", + "default": 0.05, "group": "Attitude Q estimator", - "category": "Standard", "shortDesc": "Gyro bias limit", + "min": 0.0, + "max": 2.0, "units": "rad/s", - "default": 0.05, - "decimalPlaces": 3, - "min": 0, - "max": 2 + "decimalPlaces": 3 }, { "name": "ATT_EXT_HDG_M", "type": "Int32", - "group": "Attitude Q estimator", - "category": "Standard", - "shortDesc": "External heading usage mode (from Motion capture/Vision) Set to 1 to use heading estimate from vision. Set to 2 to use heading from motion capture", "default": 0, + "group": "Attitude Q estimator", + "shortDesc": "External heading usage mode (from Motion capture/Vision)\nSet to 1 to use heading estimate from vision.\nSet to 2 to use heading from motion capture", + "min": 0, + "max": 2, "values": [ { "value": 0, @@ -282,129 +498,87 @@ "value": 2, "description": "Motion Capture" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 2 + ] }, { "name": "ATT_MAG_DECL", "type": "Float", + "default": 0.0, "group": "Attitude Q estimator", - "category": "Standard", "shortDesc": "Magnetic declination, in degrees", "longDesc": "This parameter is not used in normal operation, as the declination is looked up based on the GPS coordinates of the vehicle.", "units": "deg", - "default": 0, - "decimalPlaces": 2, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 2 }, { "name": "ATT_MAG_DECL_A", "type": "Int32", - "group": "Attitude Q estimator", - "category": "Standard", - "shortDesc": "Automatic GPS based declination compensation", "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "group": "Attitude Q estimator", + "shortDesc": "Automatic GPS based declination compensation" }, { "name": "ATT_W_ACC", "type": "Float", + "default": 0.2, "group": "Attitude Q estimator", - "category": "Standard", "shortDesc": "Complimentary filter accelerometer weight", - "default": 0.2, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2 }, { "name": "ATT_W_EXT_HDG", "type": "Float", + "default": 0.1, "group": "Attitude Q estimator", - "category": "Standard", "shortDesc": "Complimentary filter external heading weight", - "default": 0.1, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0 }, { "name": "ATT_W_GYRO_BIAS", "type": "Float", + "default": 0.1, "group": "Attitude Q estimator", - "category": "Standard", "shortDesc": "Complimentary filter gyroscope bias weight", - "default": 0.1, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2 }, { "name": "ATT_W_MAG", "type": "Float", + "default": 0.1, "group": "Attitude Q estimator", - "category": "Standard", "shortDesc": "Complimentary filter magnetometer weight", "longDesc": "Set to 0 to avoid using the magnetometer.", - "default": 0.1, - "decimalPlaces": 2, - "min": 0, - "max": 1 - }, - { - "name": "BAT{n}_A_PER_V", - "type": "Float", - "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "Battery 1 current per volt (A/V)", - "longDesc": "The voltage seen by the ADC multiplied by this factor will determine the battery current. A value of -1 means to use the board default.", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 8, - "min": -3.40282e+38, - "max": 3.40282e+38 + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2 }, { - "name": "BAT{n}_CAPACITY", + "name": "BAT1_CAPACITY", "type": "Float", + "default": -1.0, "group": "Battery Calibration", - "category": "Standard", "shortDesc": "Battery 1 capacity", "longDesc": "Defines the capacity of battery 1 in mAh.", + "min": -1.0, + "max": 100000.0, "units": "mAh", - "default": -1, - "increment": 50, - "rebootRequired": true, "decimalPlaces": 0, - "min": -1, - "max": 100000 - }, - { - "name": "BAT{n}_I_CHANNEL", - "type": "Int32", - "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "Battery 1 Current ADC Channel", - "longDesc": "This parameter specifies the ADC channel used to monitor current of main power battery. A value of -1 means to use the board default.", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "increment": 50.0, + "rebootRequired": true }, { - "name": "BAT{n}_N_CELLS", + "name": "BAT1_N_CELLS", "type": "Int32", + "default": 0, "group": "Battery Calibration", - "category": "Standard", "shortDesc": "Number of cells for battery 1", "longDesc": "Defines the number of cells the attached battery consists of.", - "default": 0, + "rebootRequired": true, "values": [ { "value": 2, @@ -466,36 +640,35 @@ "value": 16, "description": "16S Battery" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "BAT{n}_R_INTERNAL", + "name": "BAT1_R_INTERNAL", "type": "Float", + "default": -1.0, "group": "Battery Calibration", - "category": "Standard", "shortDesc": "Explicitly defines the per cell internal resistance for battery 1", - "longDesc": "If non-negative, then this will be used in place of BAT{n}_V_LOAD_DROP for all calculations.", + "longDesc": "If non-negative, then this will be used in place of BAT1_V_LOAD_DROP for all calculations.", + "min": -1.0, + "max": 0.2, "units": "Ohm", - "default": -1, - "increment": 0.01, - "rebootRequired": true, "decimalPlaces": 2, - "min": -1, - "max": 0.2 + "increment": 0.01, + "rebootRequired": true }, { - "name": "BAT{n}_SOURCE", + "name": "BAT1_SOURCE", "type": "Int32", + "default": 0, "group": "Battery Calibration", - "category": "Standard", "shortDesc": "Battery 1 monitoring source", "longDesc": "This parameter controls the source of battery data. The value 'Power Module' means that measurements are expected to come from a power module. If the value is set to 'External' then the system expects to receive mavlink battery status messages. If the value is set to 'ESCs', the battery information are taken from the esc_status message. This requires the ESC to provide both voltage as well as current.", - "default": 0, + "rebootRequired": true, "values": [ + { + "value": -1, + "description": "Disabled" + }, { "value": 0, "description": "Power Module" @@ -508,191 +681,69 @@ "value": 2, "description": "ESCs" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "BAT{n}_V_CHANNEL", - "type": "Int32", - "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "Battery 1 Voltage ADC Channel", - "longDesc": "This parameter specifies the ADC channel used to monitor voltage of main power battery. A value of -1 means to use the board default.", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "BAT{n}_V_CHARGED", + "name": "BAT1_V_CHARGED", "type": "Float", + "default": 4.05, "group": "Battery Calibration", - "category": "Standard", "shortDesc": "Full cell voltage (5C load)", "longDesc": "Defines the voltage where a single cell of battery 1 is considered full under a mild load. This will never be the nominal voltage of 4.2V", "units": "V", - "default": 4.05, - "increment": 0.01, - "rebootRequired": true, "decimalPlaces": 2, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "BAT{n}_V_DIV", - "type": "Float", - "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "Battery 1 voltage divider (V divider)", - "longDesc": "This is the divider from battery 1 voltage to ADC voltage. If using e.g. Mauch power modules the value from the datasheet can be applied straight here. A value of -1 means to use the board default.", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 8, - "min": -3.40282e+38, - "max": 3.40282e+38 + "increment": 0.01, + "rebootRequired": true }, { - "name": "BAT{n}_V_EMPTY", + "name": "BAT1_V_EMPTY", "type": "Float", + "default": 3.5, "group": "Battery Calibration", - "category": "Standard", "shortDesc": "Empty cell voltage (5C load)", "longDesc": "Defines the voltage where a single cell of battery 1 is considered empty. The voltage should be chosen before the steep dropoff to 2.8V. A typical lithium battery can only be discharged down to 10% before it drops off to a voltage level damaging the cells.", "units": "V", - "default": 3.5, - "increment": 0.01, - "rebootRequired": true, "decimalPlaces": 2, - "min": -3.40282e+38, - "max": 3.40282e+38 + "increment": 0.01, + "rebootRequired": true }, { - "name": "BAT{n}_V_LOAD_DROP", + "name": "BAT1_V_LOAD_DROP", "type": "Float", + "default": 0.3, "group": "Battery Calibration", - "category": "Standard", "shortDesc": "Voltage drop per cell on full throttle", - "longDesc": "This implicitely defines the internal resistance to maximum current ratio for battery 1 and assumes linearity. A good value to use is the difference between the 5C and 20-25C load. Not used if BAT{n}_R_INTERNAL is set.", + "longDesc": "This implicitely defines the internal resistance to maximum current ratio for battery 1 and assumes linearity. A good value to use is the difference between the 5C and 20-25C load. Not used if BAT1_R_INTERNAL is set.", + "min": 0.07, + "max": 0.5, "units": "V", - "default": 0.3, - "increment": 0.01, - "rebootRequired": true, "decimalPlaces": 2, - "min": 0.07, - "max": 0.5 - }, - { - "name": "BAT_ADC_CHANNEL", - "type": "Int32", - "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "This parameter is deprecated. Please use BAT1_ADC_CHANNEL", - "default": -1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "BAT_A_PER_V", - "type": "Float", - "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "This parameter is deprecated. Please use BAT1_A_PER_V", - "default": -1, - "decimalPlaces": 8, - "min": -3.40282e+38, - "max": 3.40282e+38 + "increment": 0.01, + "rebootRequired": true }, { - "name": "BAT_CAPACITY", + "name": "BAT2_CAPACITY", "type": "Float", + "default": -1.0, "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "This parameter is deprecated. Please use BAT1_CAPACITY instead", - "longDesc": "Defines the capacity of battery 1.", + "shortDesc": "Battery 2 capacity", + "longDesc": "Defines the capacity of battery 2 in mAh.", + "min": -1.0, + "max": 100000.0, "units": "mAh", - "default": -1, - "increment": 50, - "rebootRequired": true, "decimalPlaces": 0, - "min": -1, - "max": 100000 - }, - { - "name": "BAT_CRIT_THR", - "type": "Float", - "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "Critical threshold", - "longDesc": "Sets the threshold when the battery will be reported as critically low. This has to be lower than the low threshold. This threshold commonly will trigger RTL.", - "units": "norm", - "default": 0.07, - "increment": 0.01, - "rebootRequired": true, - "decimalPlaces": 2, - "min": 0.05, - "max": 0.25 - }, - { - "name": "BAT_C_MULT", - "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Capacity/current multiplier for high-current capable SMBUS battery", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 1, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "BAT_EMERGEN_THR", - "type": "Float", - "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "Emergency threshold", - "longDesc": "Sets the threshold when the battery will be reported as dangerously low. This has to be lower than the critical threshold. This threshold commonly will trigger landing.", - "units": "norm", - "default": 0.05, - "increment": 0.01, - "rebootRequired": true, - "decimalPlaces": 2, - "min": 0.03, - "max": 0.1 - }, - { - "name": "BAT_LOW_THR", - "type": "Float", - "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "Low threshold", - "longDesc": "Sets the threshold when the battery will be reported as low. This has to be higher than the critical threshold.", - "units": "norm", - "default": 0.15, - "increment": 0.01, - "rebootRequired": true, - "decimalPlaces": 2, - "min": 0.12, - "max": 0.5 + "increment": 50.0, + "rebootRequired": true }, { - "name": "BAT_N_CELLS", + "name": "BAT2_N_CELLS", "type": "Int32", + "default": 0, "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "This parameter is deprecated. Please use BAT1_N_CELLS instead", + "shortDesc": "Number of cells for battery 2", "longDesc": "Defines the number of cells the attached battery consists of.", - "units": "S", - "default": 0, + "rebootRequired": true, "values": [ - { - "value": 0, - "description": "Unconfigured" - }, { "value": 2, "description": "2S Battery" @@ -753,35 +804,35 @@ "value": 16, "description": "16S Battery" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "BAT_R_INTERNAL", + "name": "BAT2_R_INTERNAL", "type": "Float", + "default": -1.0, "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "This parameter is deprecated. Please use BAT1_R_INTERNAL instead", - "longDesc": "If non-negative, then this will be used in place of BAT_V_LOAD_DROP for all calculations.", - "units": "Ohms", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -1, - "max": 0.2 + "shortDesc": "Explicitly defines the per cell internal resistance for battery 2", + "longDesc": "If non-negative, then this will be used in place of BAT2_V_LOAD_DROP for all calculations.", + "min": -1.0, + "max": 0.2, + "units": "Ohm", + "decimalPlaces": 2, + "increment": 0.01, + "rebootRequired": true }, { - "name": "BAT_SOURCE", + "name": "BAT2_SOURCE", "type": "Int32", + "default": -1, "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "This parameter is deprecated. Please use BAT1_SOURCE instead", - "longDesc": "Battery monitoring source. This parameter controls the source of battery data. The value 'Power Module' means that measurements are expected to come from a power module. If the value is set to 'External' then the system expects to receive mavlink battery status messages.", - "default": 0, + "shortDesc": "Battery 2 monitoring source", + "longDesc": "This parameter controls the source of battery data. The value 'Power Module' means that measurements are expected to come from a power module. If the value is set to 'External' then the system expects to receive mavlink battery status messages. If the value is set to 'ESCs', the battery information are taken from the esc_status message. This requires the ESC to provide both voltage as well as current.", + "rebootRequired": true, "values": [ + { + "value": -1, + "description": "Disabled" + }, { "value": 0, "description": "Power Module" @@ -789,626 +840,288 @@ { "value": 1, "description": "External" + }, + { + "value": 2, + "description": "ESCs" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 1 + ] }, { - "name": "BAT_V_CHARGED", + "name": "BAT2_V_CHARGED", "type": "Float", + "default": 4.05, "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "This parameter is deprecated. Please use BAT1_V_CHARGED instead", + "shortDesc": "Full cell voltage (5C load)", "longDesc": "Defines the voltage where a single cell of battery 1 is considered full under a mild load. This will never be the nominal voltage of 4.2V", "units": "V", - "default": 4.05, - "increment": 0.01, - "rebootRequired": true, "decimalPlaces": 2, - "min": -3.40282e+38, - "max": 3.40282e+38 + "increment": 0.01, + "rebootRequired": true }, { - "name": "BAT_V_DIV", + "name": "BAT2_V_EMPTY", "type": "Float", + "default": 3.5, "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "This parameter is deprecated. Please use BAT1_V_DIV", - "default": -1, - "decimalPlaces": 8, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Empty cell voltage (5C load)", + "longDesc": "Defines the voltage where a single cell of battery 1 is considered empty. The voltage should be chosen before the steep dropoff to 2.8V. A typical lithium battery can only be discharged down to 10% before it drops off to a voltage level damaging the cells.", + "units": "V", + "decimalPlaces": 2, + "increment": 0.01, + "rebootRequired": true }, { - "name": "BAT_V_EMPTY", + "name": "BAT2_V_LOAD_DROP", "type": "Float", + "default": 0.3, "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "This parameter is deprecated. Please use BAT1_V_EMPTY instead", - "longDesc": "Defines the voltage where a single cell of battery 1 is considered empty. The voltage should be chosen before the steep dropoff to 2.8V. A typical lithium battery can only be discharged down to 10% before it drops off to a voltage level damaging the cells.", + "shortDesc": "Voltage drop per cell on full throttle", + "longDesc": "This implicitely defines the internal resistance to maximum current ratio for battery 1 and assumes linearity. A good value to use is the difference between the 5C and 20-25C load. Not used if BAT2_R_INTERNAL is set.", + "min": 0.07, + "max": 0.5, "units": "V", - "default": 3.5, - "increment": 0.01, - "rebootRequired": true, "decimalPlaces": 2, - "min": -3.40282e+38, - "max": 3.40282e+38 + "increment": 0.01, + "rebootRequired": true }, { - "name": "BAT_V_LOAD_DROP", + "name": "BAT_A_PER_V", "type": "Float", + "default": -1.0, "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "This parameter is deprecated. Please use BAT1_V_LOAD_DROP instead", - "longDesc": "This implicitely defines the internal resistance to maximum current ratio for battery 1 and assumes linearity. A good value to use is the difference between the 5C and 20-25C load. Not used if BAT_R_INTERNAL is set.", - "units": "V", - "default": 0.3, - "increment": 0.01, - "rebootRequired": true, - "decimalPlaces": 2, - "min": 0.07, - "max": 0.5 + "shortDesc": "This parameter is deprecated. Please use BAT1_A_PER_V", + "decimalPlaces": 8 }, { - "name": "BAT_V_OFFS_CURR", + "name": "BAT_CAPACITY", "type": "Float", + "default": -1.0, "group": "Battery Calibration", - "category": "Standard", - "shortDesc": "Offset in volt as seen by the ADC input of the current sensor", - "longDesc": "This offset will be subtracted before calculating the battery current based on the voltage.", - "default": 0, - "decimalPlaces": 8, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_ACC{n}_EN", - "type": "Int32", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Accelerometer /1 enabled", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "CAL_ACC{n}_ID", - "type": "Int32", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "ID of the Accelerometer that the calibration is for", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "CAL_ACC{n}_XOFF", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Accelerometer X-axis offset", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_ACC{n}_XSCALE", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Accelerometer X-axis scaling factor", - "default": 1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_ACC{n}_YOFF", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Accelerometer Y-axis offset", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_ACC{n}_YSCALE", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Accelerometer Y-axis scaling factor", - "default": 1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_ACC{n}_ZOFF", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Accelerometer Z-axis offset", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_ACC{n}_ZSCALE", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Accelerometer Z-axis scaling factor", - "default": 1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_ACC_PRIME", - "type": "Int32", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Primary accel ID", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "CAL_AIR_CMODEL", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Airspeed sensor compensation model for the SDP3x", - "longDesc": "Model with Pitot CAL_AIR_TUBED_MM: Not used, 1.5 mm tubes assumed. CAL_AIR_TUBELEN: Length of the tubes connecting the pitot to the sensor. Model without Pitot (1.5 mm tubes) CAL_AIR_TUBED_MM: Not used, 1.5 mm tubes assumed. CAL_AIR_TUBELEN: Length of the tubes connecting the pitot to the sensor. Tube Pressure Drop CAL_AIR_TUBED_MM: Diameter in mm of the pitot and tubes, must have the same diameter. CAL_AIR_TUBELEN: Length of the tubes connecting the pitot to the sensor and the static + dynamic port length of the pitot.", - "default": 0, - "values": [ - { - "value": 0, - "description": "Model with Pitot" - }, - { - "value": 1, - "description": "Model without Pitot (1.5 mm tubes)" - }, - { - "value": 2, - "description": "Tube Pressure Drop" - } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "CAL_AIR_TUBED_MM", - "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Airspeed sensor tube diameter. Only used for the Tube Pressure Drop Compensation", - "units": "millimeter", - "default": 1.5, - "decimalPlaces": 3, - "min": 0.1, - "max": 100 - }, - { - "name": "CAL_AIR_TUBELEN", - "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Airspeed sensor tube length", - "longDesc": "See the CAL_AIR_CMODEL explanation on how this parameter should be set.", - "units": "meter", - "default": 0.2, - "decimalPlaces": 3, - "min": 0.01, - "max": 2 - }, - { - "name": "CAL_GYRO{n}_EN", - "type": "Int32", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Gyro 0 enabled", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "CAL_GYRO{n}_ID", - "type": "Int32", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "ID of the Gyro that the calibration is for", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "shortDesc": "This parameter is deprecated. Please use BAT1_CAPACITY instead", + "longDesc": "Defines the capacity of battery 1.", + "min": -1.0, + "max": 100000.0, + "units": "mAh", + "decimalPlaces": 0, + "increment": 50.0, + "rebootRequired": true }, { - "name": "CAL_GYRO{n}_XOFF", + "name": "BAT_CRIT_THR", "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Gyro X-axis offset", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.07, + "group": "Battery Calibration", + "shortDesc": "Critical threshold", + "longDesc": "Sets the threshold when the battery will be reported as critically low. This has to be lower than the low threshold. This threshold commonly will trigger RTL.", + "min": 0.05, + "max": 0.25, + "units": "norm", + "decimalPlaces": 2, + "increment": 0.01, + "rebootRequired": true }, { - "name": "CAL_GYRO{n}_YOFF", + "name": "BAT_EMERGEN_THR", "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Gyro Y-axis offset", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.05, + "group": "Battery Calibration", + "shortDesc": "Emergency threshold", + "longDesc": "Sets the threshold when the battery will be reported as dangerously low. This has to be lower than the critical threshold. This threshold commonly will trigger landing.", + "min": 0.03, + "max": 0.1, + "units": "norm", + "decimalPlaces": 2, + "increment": 0.01, + "rebootRequired": true }, { - "name": "CAL_GYRO{n}_ZOFF", + "name": "BAT_LOW_THR", "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Gyro Z-axis offset", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_GYRO_PRIME", - "type": "Int32", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Primary gyro ID", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "CAL_MAG{n}_EN", - "type": "Int32", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Mag 0 enabled", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "default": 0.15, + "group": "Battery Calibration", + "shortDesc": "Low threshold", + "longDesc": "Sets the threshold when the battery will be reported as low. This has to be higher than the critical threshold.", + "min": 0.12, + "max": 0.5, + "units": "norm", + "decimalPlaces": 2, + "increment": 0.01, + "rebootRequired": true }, { - "name": "CAL_MAG{n}_ID", + "name": "BAT_N_CELLS", "type": "Int32", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "ID of Magnetometer the calibration is for", "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "CAL_MAG{n}_ROT", - "type": "Int32", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Rotation of magnetometer 0 relative to airframe", - "longDesc": "An internal magnetometer will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.", - "default": -1, + "group": "Battery Calibration", + "shortDesc": "This parameter is deprecated. Please use BAT1_N_CELLS instead", + "longDesc": "Defines the number of cells the attached battery consists of.", + "units": "S", + "rebootRequired": true, "values": [ - { - "value": -1, - "description": "Internal mag" - }, { "value": 0, - "description": "No rotation" - }, - { - "value": 1, - "description": "Yaw 45°" + "description": "Unconfigured" }, { "value": 2, - "description": "Yaw 90°" + "description": "2S Battery" }, { "value": 3, - "description": "Yaw 135°" + "description": "3S Battery" }, { "value": 4, - "description": "Yaw 180°" + "description": "4S Battery" }, { "value": 5, - "description": "Yaw 225°" + "description": "5S Battery" }, { "value": 6, - "description": "Yaw 270°" + "description": "6S Battery" }, { "value": 7, - "description": "Yaw 315°" + "description": "7S Battery" }, { "value": 8, - "description": "Roll 180°" + "description": "8S Battery" }, { "value": 9, - "description": "Roll 180°, Yaw 45°" + "description": "9S Battery" }, { "value": 10, - "description": "Roll 180°, Yaw 90°" + "description": "10S Battery" }, { "value": 11, - "description": "Roll 180°, Yaw 135°" + "description": "11S Battery" }, { "value": 12, - "description": "Pitch 180°" + "description": "12S Battery" }, { "value": 13, - "description": "Roll 180°, Yaw 225°" + "description": "13S Battery" }, { "value": 14, - "description": "Roll 180°, Yaw 270°" + "description": "14S Battery" }, { "value": 15, - "description": "Roll 180°, Yaw 315°" + "description": "15S Battery" }, { "value": 16, - "description": "Roll 90°" - }, - { - "value": 17, - "description": "Roll 90°, Yaw 45°" - }, - { - "value": 18, - "description": "Roll 90°, Yaw 90°" - }, - { - "value": 19, - "description": "Roll 90°, Yaw 135°" - }, - { - "value": 20, - "description": "Roll 270°" - }, - { - "value": 21, - "description": "Roll 270°, Yaw 45°" - }, - { - "value": 22, - "description": "Roll 270°, Yaw 90°" - }, - { - "value": 23, - "description": "Roll 270°, Yaw 135°" - }, - { - "value": 24, - "description": "Pitch 90°" - }, - { - "value": 25, - "description": "Pitch 270°" + "description": "16S Battery" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -1, - "max": 30 + ] }, { - "name": "CAL_MAG{n}_XCOMP", + "name": "BAT_R_INTERNAL", "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Coefficient describing linear relationship between X component of magnetometer in body frame axis and either current or throttle depending on value of CAL_MAG_COMP_TYP Unit for throttle-based compensation is [G] and for current-based compensation [G/kA]", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_MAG{n}_XOFF", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Magnetometer X-axis offset", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_MAG{n}_XSCALE", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Magnetometer X-axis scaling factor", - "default": 1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_MAG{n}_YCOMP", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Coefficient describing linear relationship between Y component of magnetometer in body frame axis and either current or throttle depending on value of CAL_MAG_COMP_TYP Unit for throttle-based compensation is [G] and for current-based compensation [G/kA]", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_MAG{n}_YOFF", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Magnetometer Y-axis offset", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_MAG{n}_YSCALE", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Magnetometer Y-axis scaling factor", - "default": 1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_MAG{n}_ZCOMP", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Coefficient describing linear relationship between Z component of magnetometer in body frame axis and either current or throttle depending on value of CAL_MAG_COMP_TYP Unit for throttle-based compensation is [G] and for current-based compensation [G/kA]", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_MAG{n}_ZOFF", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Magnetometer Z-axis offset", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CAL_MAG{n}_ZSCALE", - "type": "Float", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Magnetometer Z-axis scaling factor", - "default": 1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": -1.0, + "group": "Battery Calibration", + "shortDesc": "This parameter is deprecated. Please use BAT1_R_INTERNAL instead", + "longDesc": "If non-negative, then this will be used in place of BAT_V_LOAD_DROP for all calculations.", + "min": -1.0, + "max": 0.2, + "units": "Ohm", + "rebootRequired": true }, { - "name": "CAL_MAG_COMP_TYP", + "name": "BAT_SOURCE", "type": "Int32", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Type of magnetometer compensation", "default": 0, + "group": "Battery Calibration", + "shortDesc": "This parameter is deprecated. Please use BAT1_SOURCE instead", + "longDesc": "Battery monitoring source. This parameter controls the source of battery data. The value 'Power Module' means that measurements are expected to come from a power module. If the value is set to 'External' then the system expects to receive mavlink battery status messages.", + "min": 0, + "max": 1, "values": [ { "value": 0, - "description": "Disabled" + "description": "Power Module" }, { "value": 1, - "description": "Throttle-based compensation" - }, - { - "value": 2, - "description": "Current-based compensation (battery_status instance 0)" - }, - { - "value": 3, - "description": "Current-based compensation (battery_status instance 1)" + "description": "External" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "CAL_MAG_PRIME", - "type": "Int32", - "group": "Sensor Calibration", - "category": "System", - "shortDesc": "Primary mag ID", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "BAT_V_CHARGED", + "type": "Float", + "default": 4.05, + "group": "Battery Calibration", + "shortDesc": "This parameter is deprecated. Please use BAT1_V_CHARGED instead", + "longDesc": "Defines the voltage where a single cell of battery 1 is considered full under a mild load. This will never be the nominal voltage of 4.2V", + "units": "V", + "decimalPlaces": 2, + "increment": 0.01, + "rebootRequired": true }, { - "name": "CAL_MAG_SIDES", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Bitfield selecting mag sides for calibration", - "longDesc": "If set to two side calibration, only the offsets are estimated, the scale calibration is left unchanged. Thus an initial six side calibration is recommended. Bits: DETECT_ORIENTATION_TAIL_DOWN = 1 DETECT_ORIENTATION_NOSE_DOWN = 2 DETECT_ORIENTATION_LEFT = 4 DETECT_ORIENTATION_RIGHT = 8 DETECT_ORIENTATION_UPSIDE_DOWN = 16 DETECT_ORIENTATION_RIGHTSIDE_UP = 32", - "default": 63, - "values": [ - { - "value": 34, - "description": "Two side calibration" - }, - { - "value": 38, - "description": "Three side calibration" - }, - { - "value": 63, - "description": "Six side calibration" - } - ], - "decimalPlaces": 3, - "min": 34, - "max": 63 + "name": "BAT_V_DIV", + "type": "Float", + "default": -1.0, + "group": "Battery Calibration", + "shortDesc": "This parameter is deprecated. Please use BAT1_V_DIV", + "decimalPlaces": 8 + }, + { + "name": "BAT_V_EMPTY", + "type": "Float", + "default": 3.5, + "group": "Battery Calibration", + "shortDesc": "This parameter is deprecated. Please use BAT1_V_EMPTY instead", + "longDesc": "Defines the voltage where a single cell of battery 1 is considered empty. The voltage should be chosen before the steep dropoff to 2.8V. A typical lithium battery can only be discharged down to 10% before it drops off to a voltage level damaging the cells.", + "units": "V", + "decimalPlaces": 2, + "increment": 0.01, + "rebootRequired": true + }, + { + "name": "BAT_V_LOAD_DROP", + "type": "Float", + "default": 0.3, + "group": "Battery Calibration", + "shortDesc": "This parameter is deprecated. Please use BAT1_V_LOAD_DROP instead", + "longDesc": "This implicitely defines the internal resistance to maximum current ratio for battery 1 and assumes linearity. A good value to use is the difference between the 5C and 20-25C load. Not used if BAT_R_INTERNAL is set.", + "min": 0.07, + "max": 0.5, + "units": "V", + "decimalPlaces": 2, + "increment": 0.01, + "rebootRequired": true }, { "name": "CAM_CAP_DELAY", "type": "Float", + "default": 0.0, "group": "Camera Capture", - "category": "Standard", "shortDesc": "Camera strobe delay", "longDesc": "This parameter sets the delay between image integration start and strobe firing", + "min": 0.0, + "max": 100.0, "units": "ms", - "default": 0, - "decimalPlaces": 1, - "min": 0, - "max": 100 + "decimalPlaces": 1 }, { "name": "CAM_CAP_EDGE", "type": "Int32", + "default": 0, "group": "Camera Control", - "category": "Standard", "shortDesc": "Camera capture edge", - "default": 0, + "rebootRequired": true, "values": [ { "value": 0, @@ -1418,33 +1131,25 @@ "value": 1, "description": "Rising edge" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "CAM_CAP_FBACK", "type": "Int32", + "default": 0, "group": "Camera Control", - "category": "Standard", "shortDesc": "Camera capture feedback", "longDesc": "Enables camera capture feedback", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "rebootRequired": true }, { "name": "CAM_CAP_MODE", "type": "Int32", + "default": 0, "group": "Camera Control", - "category": "Standard", "shortDesc": "Camera capture timestamping mode", "longDesc": "Change time measurement", - "default": 0, + "rebootRequired": true, "values": [ { "value": 0, @@ -1458,478 +1163,554 @@ "value": 2, "description": "Get timestamp of mid exposure (active low)" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "CANNODE_BITRATE", - "type": "Int32", - "group": "UAVCAN", - "category": "Standard", - "shortDesc": "UAVCAN CAN bus bitrate", - "default": 1e+06, - "decimalPlaces": 3, - "min": 20000, - "max": 1e+06 + "name": "TRIG_ACT_TIME", + "type": "Float", + "default": 40.0, + "group": "Camera trigger", + "shortDesc": "Camera trigger activation time", + "longDesc": "This parameter sets the time the trigger needs to pulled high or low.", + "min": 0.1, + "max": 3000.0, + "units": "ms", + "decimalPlaces": 1, + "rebootRequired": true }, { - "name": "CANNODE_NODE_ID", - "type": "Int32", - "group": "UAVCAN", - "category": "Standard", - "shortDesc": "UAVCAN Node ID", - "longDesc": "Read the specs at http://uavcan.org to learn more about Node ID.", - "default": 120, - "decimalPlaces": 3, - "min": 1, - "max": 125 + "name": "TRIG_DISTANCE", + "type": "Float", + "default": 25.0, + "group": "Camera trigger", + "shortDesc": "Camera trigger distance", + "longDesc": "Sets the distance at which to trigger the camera.", + "min": 0.0, + "units": "m", + "decimalPlaces": 1, + "increment": 1.0, + "rebootRequired": true }, { - "name": "CBRK_AIRSPD_CHK", + "name": "TRIG_INTERFACE", "type": "Int32", - "group": "Circuit Breaker", - "category": "Developer", - "shortDesc": "Circuit breaker for airspeed sensor", - "longDesc": "Setting this parameter to 162128 will disable the check for an airspeed sensor. The sensor driver will not be started and it cannot be calibrated. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK", - "default": 0, + "default": 4, + "group": "Camera trigger", + "shortDesc": "Camera trigger Interface", + "longDesc": "Selects the trigger interface", "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 162128 + "values": [ + { + "value": 1, + "description": "GPIO" + }, + { + "value": 2, + "description": "Seagull MAP2 (over PWM)" + }, + { + "value": 3, + "description": "MAVLink (forward via MAV_CMD_IMAGE_START_CAPTURE)" + }, + { + "value": 4, + "description": "Generic PWM (IR trigger, servo)" + } + ] }, { - "name": "CBRK_BUZZER", - "type": "Int32", - "group": "Circuit Breaker", - "category": "Developer", - "shortDesc": "Circuit breaker for disabling buzzer", - "longDesc": "Setting this parameter to 782097 will disable the buzzer audio notification. Setting this parameter to 782090 will disable the startup tune, while keeping all others enabled.", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 782097 + "name": "TRIG_INTERVAL", + "type": "Float", + "default": 40.0, + "group": "Camera trigger", + "shortDesc": "Camera trigger interval", + "longDesc": "This parameter sets the time between two consecutive trigger events", + "min": 4.0, + "max": 10000.0, + "units": "ms", + "decimalPlaces": 1, + "rebootRequired": true }, { - "name": "CBRK_ENGINEFAIL", - "type": "Int32", - "group": "Circuit Breaker", - "category": "Developer", - "shortDesc": "Circuit breaker for engine failure detection", - "longDesc": "Setting this parameter to 284953 will disable the engine failure detection. If the aircraft is in engine failure mode the engine failure flag will be set to healthy WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK", - "default": 284953, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 284953 + "name": "TRIG_MIN_INTERVA", + "type": "Float", + "default": 1.0, + "group": "Camera trigger", + "shortDesc": "Minimum camera trigger interval", + "longDesc": "This parameter sets the minimum time between two consecutive trigger events the specific camera setup is supporting.", + "min": 1.0, + "max": 10000.0, + "units": "ms", + "decimalPlaces": 1, + "rebootRequired": true }, { - "name": "CBRK_FLIGHTTERM", + "name": "TRIG_MODE", "type": "Int32", - "group": "Circuit Breaker", - "category": "Developer", - "shortDesc": "Circuit breaker for flight termination", - "longDesc": "Setting this parameter to 121212 will disable the flight termination action if triggered by the FailureDetector logic or if FMU is lost. This circuit breaker does not affect the RC loss, data link loss, geofence, and takeoff failure detection safety logic.", - "default": 121212, + "default": 0, + "group": "Camera trigger", + "shortDesc": "Camera trigger mode", + "min": 0, + "max": 4, "rebootRequired": true, - "decimalPlaces": 3, + "values": [ + { + "value": 0, + "description": "Disable" + }, + { + "value": 1, + "description": "Time based, on command" + }, + { + "value": 2, + "description": "Time based, always on" + }, + { + "value": 3, + "description": "Distance based, always on" + }, + { + "value": 4, + "description": "Distance based, on command (Survey mode)" + } + ] + }, + { + "name": "TRIG_PINS", + "type": "Int32", + "default": 56, + "group": "Camera trigger", + "shortDesc": "Camera trigger pin", + "longDesc": "Selects which FMU pin is used (range: AUX1-AUX8 on Pixhawk controllers with an I/O board, MAIN1-MAIN8 on controllers without an I/O board. The PWM interface takes two pins per camera, while relay triggers on every pin individually. Example: Value 56 would trigger on pins 5 and 6. For GPIO mode Pin 6 will be triggered followed by 5. With a value of 65 pin 5 will be triggered followed by 6. Pins may be non contiguous. I.E. 16 or 61. In GPIO mode the delay pin to pin is < .2 uS. Note: only with a value of 56 or 78 it is possible to use the lower pins for actuator outputs (e.g. ESC's).", + "min": 1, + "max": 12345678, + "decimalPlaces": 0, + "rebootRequired": true + }, + { + "name": "TRIG_POLARITY", + "type": "Int32", + "default": 0, + "group": "Camera trigger", + "shortDesc": "Camera trigger polarity", + "longDesc": "This parameter sets the polarity of the trigger (0 = active low, 1 = active high )", + "min": 0, + "max": 1, + "rebootRequired": true, + "values": [ + { + "value": 0, + "description": "Active low" + }, + { + "value": 1, + "description": "Active high" + } + ] + }, + { + "name": "TRIG_PWM_NEUTRAL", + "type": "Int32", + "default": 1500, + "group": "Camera trigger", + "shortDesc": "PWM neutral output on trigger pin", + "min": 1000, + "max": 2000, + "units": "us", + "rebootRequired": true + }, + { + "name": "TRIG_PWM_SHOOT", + "type": "Int32", + "default": 1900, + "group": "Camera trigger", + "shortDesc": "PWM output to trigger shot", + "min": 1000, + "max": 2000, + "units": "us", + "rebootRequired": true + }, + { + "name": "CBRK_AIRSPD_CHK", + "type": "Int32", + "default": 0, + "group": "Circuit Breaker", + "category": "Developer", + "shortDesc": "Circuit breaker for airspeed sensor", + "longDesc": "Setting this parameter to 162128 will disable the check for an airspeed sensor. The sensor driver will not be started and it cannot be calibrated. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK", + "min": 0, + "max": 162128, + "rebootRequired": true + }, + { + "name": "CBRK_BUZZER", + "type": "Int32", + "default": 0, + "group": "Circuit Breaker", + "category": "Developer", + "shortDesc": "Circuit breaker for disabling buzzer", + "longDesc": "Setting this parameter to 782097 will disable the buzzer audio notification. Setting this parameter to 782090 will disable the startup tune, while keeping all others enabled.", + "min": 0, + "max": 782097, + "rebootRequired": true + }, + { + "name": "CBRK_ENGINEFAIL", + "type": "Int32", + "default": 284953, + "group": "Circuit Breaker", + "category": "Developer", + "shortDesc": "Circuit breaker for engine failure detection", + "longDesc": "Setting this parameter to 284953 will disable the engine failure detection. If the aircraft is in engine failure mode the engine failure flag will be set to healthy WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK", + "min": 0, + "max": 284953, + "rebootRequired": true + }, + { + "name": "CBRK_FLIGHTTERM", + "type": "Int32", + "default": 121212, + "group": "Circuit Breaker", + "category": "Developer", + "shortDesc": "Circuit breaker for flight termination", + "longDesc": "Setting this parameter to 121212 will disable the flight termination action if triggered by the FailureDetector logic or if FMU is lost. This circuit breaker does not affect the RC loss, data link loss, geofence, and takeoff failure detection safety logic.", "min": 0, - "max": 121212 + "max": 121212, + "rebootRequired": true }, { "name": "CBRK_IO_SAFETY", "type": "Int32", + "default": 0, "group": "Circuit Breaker", "category": "Developer", "shortDesc": "Circuit breaker for IO safety", "longDesc": "Setting this parameter to 22027 will disable IO safety. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, "min": 0, - "max": 22027 + "max": 22027, + "rebootRequired": true }, { "name": "CBRK_RATE_CTRL", "type": "Int32", + "default": 0, "group": "Circuit Breaker", "category": "Developer", "shortDesc": "Circuit breaker for rate controller output", "longDesc": "Setting this parameter to 140253 will disable the rate controller uORB publication. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, "min": 0, - "max": 140253 + "max": 140253, + "rebootRequired": true }, { "name": "CBRK_SUPPLY_CHK", "type": "Int32", + "default": 0, "group": "Circuit Breaker", "category": "Developer", "shortDesc": "Circuit breaker for power supply check", "longDesc": "Setting this parameter to 894281 will disable the power valid checks in the commander. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, "min": 0, - "max": 894281 + "max": 894281, + "rebootRequired": true }, { "name": "CBRK_USB_CHK", "type": "Int32", + "default": 0, "group": "Circuit Breaker", "category": "Developer", "shortDesc": "Circuit breaker for USB link check", "longDesc": "Setting this parameter to 197848 will disable the USB connected checks in the commander. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, "min": 0, - "max": 197848 + "max": 197848, + "rebootRequired": true }, { "name": "CBRK_VELPOSERR", "type": "Int32", + "default": 0, "group": "Circuit Breaker", "category": "Developer", "shortDesc": "Circuit breaker for position error check", "longDesc": "Setting this parameter to 201607 will disable the position and velocity accuracy checks in the commander. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, "min": 0, - "max": 201607 + "max": 201607, + "rebootRequired": true }, { "name": "CBRK_VTOLARMING", "type": "Int32", + "default": 0, "group": "Circuit Breaker", "category": "Developer", "shortDesc": "Circuit breaker for arming in fixed-wing mode check", "longDesc": "Setting this parameter to 159753 will enable arming in fixed-wing mode for VTOLs. WARNING: ENABLING THIS CIRCUIT BREAKER IS AT OWN RISK", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, "min": 0, - "max": 159753 + "max": 159753, + "rebootRequired": true }, { "name": "COM_ARM_AUTH", "type": "Int32", - "group": "Commander", - "category": "Standard", - "shortDesc": "Arm authorization parameters, this uint32_t will be split between starting from the LSB: - 8bits to authorizer system id - 16bits to authentication method parameter, this will be used to store a timeout for the first 2 methods but can be used to another parameter for other new authentication methods. - 7bits to authentication method - one arm = 0 - two step arm = 1 * the MSB bit is not used to avoid problems in the conversion between int and uint", - "longDesc": "Default value: (10 << 0 | 1000 << 8 | 0 << 24) = 256010 - authorizer system id = 10 - authentication method parameter = 10000msec of timeout - authentication method = during arm", "default": 256010, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "group": "Commander", + "shortDesc": "Arm authorization parameters, this uint32_t will be split between starting from the LSB:\n- 8bits to authorizer system id\n- 16bits to authentication method parameter, this will be used to store a timeout for the first 2 methods but can be used to another parameter for other new authentication methods.\n- 7bits to authentication method\n- one arm = 0\n- two step arm = 1\n* the MSB bit is not used to avoid problems in the conversion between int and uint", + "longDesc": "Default value: (10 << 0 | 1000 << 8 | 0 << 24) = 256010 - authorizer system id = 10 - authentication method parameter = 1000 msec of timeout - authentication method = during arm" }, { "name": "COM_ARM_AUTH_REQ", "type": "Int32", + "default": 0, "group": "Commander", - "category": "Standard", "shortDesc": "Require arm authorization to arm", - "longDesc": "The default allows to arm the vehicle without a arm authorization.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "The default allows to arm the vehicle without a arm authorization." }, { "name": "COM_ARM_CHK_ESCS", "type": "Int32", + "default": 1, "group": "Commander", - "category": "Standard", "shortDesc": "Require all the ESCs to be detected to arm", - "longDesc": "This param is specific for ESCs reporting status. Normal ESCs configurations are not affected by the change of this param.", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "This param is specific for ESCs reporting status. Normal ESCs configurations are not affected by the change of this param." }, { "name": "COM_ARM_EKF_AB", "type": "Float", + "default": 0.0022, "group": "Commander", - "category": "Standard", - "shortDesc": "Maximum value of EKF accelerometer delta velocity bias estimate that will allow arming. Note: ekf2 will limit the delta velocity bias estimate magnitude to be less than EKF2_ABL_LIM * FILTER_UPDATE_PERIOD_MS * 0.001 so this parameter must be less than that to be useful", + "shortDesc": "Maximum value of EKF accelerometer delta velocity bias estimate that will allow arming.\nNote: ekf2 will limit the delta velocity bias estimate magnitude to be less than EKF2_ABL_LIM * FILTER_UPDATE_PERIOD_MS * 0.001 so this parameter must be less than that to be useful", + "min": 0.001, + "max": 0.01, "units": "m/s", - "default": 0.0022, - "increment": 0.0001, "decimalPlaces": 4, - "min": 0.001, - "max": 0.01 + "increment": 0.0001 }, { "name": "COM_ARM_EKF_GB", "type": "Float", + "default": 0.0011, "group": "Commander", - "category": "Standard", "shortDesc": "Maximum value of EKF gyro delta angle bias estimate that will allow arming", + "min": 0.0001, + "max": 0.0017, "units": "rad", - "default": 0.0011, - "increment": 0.0001, "decimalPlaces": 4, - "min": 0.0001, - "max": 0.0017 + "increment": 0.0001 }, { "name": "COM_ARM_EKF_HGT", "type": "Float", + "default": 1.0, "group": "Commander", - "category": "Standard", "shortDesc": "Maximum EKF height innovation test ratio that will allow arming", - "default": 1, - "increment": 0.05, - "decimalPlaces": 2, "min": 0.1, - "max": 1 + "max": 1.0, + "decimalPlaces": 2, + "increment": 0.05 }, { "name": "COM_ARM_EKF_POS", "type": "Float", + "default": 0.5, "group": "Commander", - "category": "Standard", "shortDesc": "Maximum EKF position innovation test ratio that will allow arming", - "default": 0.5, - "increment": 0.05, - "decimalPlaces": 2, "min": 0.1, - "max": 1 + "max": 1.0, + "decimalPlaces": 2, + "increment": 0.05 }, { "name": "COM_ARM_EKF_VEL", "type": "Float", + "default": 0.5, "group": "Commander", - "category": "Standard", "shortDesc": "Maximum EKF velocity innovation test ratio that will allow arming", - "default": 0.5, - "increment": 0.05, - "decimalPlaces": 2, "min": 0.1, - "max": 1 + "max": 1.0, + "decimalPlaces": 2, + "increment": 0.05 }, { "name": "COM_ARM_EKF_YAW", "type": "Float", + "default": 0.5, "group": "Commander", - "category": "Standard", "shortDesc": "Maximum EKF yaw innovation test ratio that will allow arming", - "default": 0.5, - "increment": 0.05, - "decimalPlaces": 2, "min": 0.1, - "max": 1 + "max": 1.0, + "decimalPlaces": 2, + "increment": 0.05 }, { "name": "COM_ARM_IMU_ACC", "type": "Float", + "default": 0.7, "group": "Commander", - "category": "Standard", "shortDesc": "Maximum accelerometer inconsistency between IMU units that will allow arming", - "units": "m/s/s", - "default": 0.7, - "increment": 0.05, - "decimalPlaces": 2, "min": 0.1, - "max": 1 + "max": 1.0, + "units": "m/s^2", + "decimalPlaces": 2, + "increment": 0.05 }, { "name": "COM_ARM_IMU_GYR", "type": "Float", + "default": 0.25, "group": "Commander", - "category": "Standard", "shortDesc": "Maximum rate gyro inconsistency between IMU units that will allow arming", + "min": 0.02, + "max": 0.3, "units": "rad/s", - "default": 0.25, - "increment": 0.01, "decimalPlaces": 3, - "min": 0.02, - "max": 0.3 + "increment": 0.01 }, { "name": "COM_ARM_MAG_ANG", "type": "Int32", + "default": 45, "group": "Commander", - "category": "Standard", - "shortDesc": "Maximum magnetic field inconsistency between units that will allow arming Set -1 to disable the check", - "units": "deg", - "default": 30, - "decimalPlaces": 3, + "shortDesc": "Maximum magnetic field inconsistency between units that will allow arming\nSet -1 to disable the check", "min": 3, - "max": 180 + "max": 180, + "units": "deg" }, { "name": "COM_ARM_MAG_STR", "type": "Int32", + "default": 1, "group": "Commander", - "category": "Standard", "shortDesc": "Enable mag strength preflight check", - "longDesc": "Deny arming if the estimator detects a strong magnetic disturbance (check enabled by EKF2_MAG_CHECK)", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Deny arming if the estimator detects a strong magnetic disturbance (check enabled by EKF2_MAG_CHECK)" }, { "name": "COM_ARM_MIS_REQ", "type": "Int32", + "default": 0, "group": "Commander", - "category": "Standard", "shortDesc": "Require valid mission to arm", - "longDesc": "The default allows to arm the vehicle without a valid mission.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "The default allows to arm the vehicle without a valid mission." }, { "name": "COM_ARM_SWISBTN", "type": "Int32", + "default": 0, "group": "Commander", - "category": "Standard", "shortDesc": "Arm switch is only a button", - "longDesc": "The default uses the arm switch as real switch. If parameter set button gets handled like stick arming.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "The default uses the arm switch as real switch. If parameter set button gets handled like stick arming." }, { "name": "COM_ARM_WO_GPS", "type": "Int32", + "default": 1, "group": "Commander", - "category": "Standard", "shortDesc": "Allow arming without GPS", - "longDesc": "The default allows to arm the vehicle without GPS signal.", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "The default allows to arm the vehicle without GPS signal." }, { "name": "COM_CPU_MAX", "type": "Float", + "default": 90.0, "group": "Commander", - "category": "Standard", "shortDesc": "Maximum allowed CPU load to still arm", "longDesc": "A negative value disables the check.", + "min": -1.0, + "max": 100.0, "units": "%", - "default": 90, - "increment": 1, - "decimalPlaces": 0, - "min": -1, - "max": 100 + "increment": 1.0 }, { "name": "COM_DISARM_LAND", "type": "Float", + "default": 2.0, "group": "Commander", - "category": "Standard", "shortDesc": "Time-out for auto disarm after landing", "longDesc": "A non-zero, positive value specifies the time-out period in seconds after which the vehicle will be automatically disarmed in case a landing situation has been detected during this period. A zero or negative value means that automatic disarming triggered by landing detection is disabled.", "units": "s", - "default": 2, - "decimalPlaces": 2, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 2 }, { "name": "COM_DISARM_PRFLT", "type": "Float", + "default": 10.0, "group": "Commander", - "category": "Standard", "shortDesc": "Time-out for auto disarm if too slow to takeoff", "longDesc": "A non-zero, positive value specifies the time after arming, in seconds, within which the vehicle must take off (after which it will automatically disarm). A zero or negative value means that automatic disarming triggered by a pre-takeoff timeout is disabled.", "units": "s", - "default": 10, - "decimalPlaces": 2, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 2 }, { "name": "COM_DL_LOSS_T", "type": "Int32", + "default": 10, "group": "Commander", - "category": "Standard", "shortDesc": "Datalink loss time threshold", "longDesc": "After this amount of seconds without datalink the data link lost mode triggers", + "min": 5, + "max": 300, "units": "s", - "default": 10, - "increment": 1, "decimalPlaces": 1, - "min": 5, - "max": 300 + "increment": 1 }, { "name": "COM_EF_C2T", "type": "Float", + "default": 5.0, "group": "Commander", - "category": "Standard", "shortDesc": "Engine Failure Current/Throttle Threshold", "longDesc": "Engine failure triggers only below this current value", + "min": 0.0, + "max": 50.0, "units": "A/%", - "default": 5, - "increment": 1, "decimalPlaces": 2, - "min": 0, - "max": 50 + "increment": 1.0 }, { "name": "COM_EF_THROT", "type": "Float", + "default": 0.5, "group": "Commander", - "category": "Standard", "shortDesc": "Engine Failure Throttle Threshold", "longDesc": "Engine failure triggers only above this throttle value", + "min": 0.0, + "max": 1.0, "units": "norm", - "default": 0.5, - "increment": 0.01, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.01 }, { "name": "COM_EF_TIME", "type": "Float", + "default": 10.0, "group": "Commander", - "category": "Standard", "shortDesc": "Engine Failure Time Threshold", "longDesc": "Engine failure triggers only if the throttle threshold and the current to throttle threshold are violated for this time", + "min": 0.0, + "max": 60.0, "units": "s", - "default": 10, - "increment": 1, "decimalPlaces": 1, - "min": 0, - "max": 60 + "increment": 1.0 }, { "name": "COM_FLIGHT_UUID", "type": "Int32", + "default": 0, "group": "Commander", "category": "System", + "volatile": true, "shortDesc": "Next flight UUID", "longDesc": "This number is incremented automatically after every flight on disarming in order to remember the next flight UUID. The first flight is 0.", - "default": 0, - "volatile": true, - "decimalPlaces": 3, - "min": 0, - "max": 2.14748e+09 + "min": 0 }, { "name": "COM_FLTMODE1", "type": "Int32", + "default": -1, "group": "Commander", - "category": "Standard", "shortDesc": "First flightmode slot (1000-1160)", "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.", - "default": -1, "values": [ { "value": -1, @@ -1987,19 +1768,15 @@ "value": 12, "description": "Follow Me" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_FLTMODE2", "type": "Int32", + "default": -1, "group": "Commander", - "category": "Standard", "shortDesc": "Second flightmode slot (1160-1320)", "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.", - "default": -1, "values": [ { "value": -1, @@ -2057,19 +1834,15 @@ "value": 12, "description": "Follow Me" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_FLTMODE3", "type": "Int32", + "default": -1, "group": "Commander", - "category": "Standard", "shortDesc": "Third flightmode slot (1320-1480)", "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.", - "default": -1, "values": [ { "value": -1, @@ -2127,19 +1900,15 @@ "value": 12, "description": "Follow Me" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_FLTMODE4", "type": "Int32", + "default": -1, "group": "Commander", - "category": "Standard", "shortDesc": "Fourth flightmode slot (1480-1640)", "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.", - "default": -1, "values": [ { "value": -1, @@ -2197,19 +1966,15 @@ "value": 12, "description": "Follow Me" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_FLTMODE5", "type": "Int32", + "default": -1, "group": "Commander", - "category": "Standard", "shortDesc": "Fifth flightmode slot (1640-1800)", "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.", - "default": -1, "values": [ { "value": -1, @@ -2267,19 +2032,15 @@ "value": 12, "description": "Follow Me" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_FLTMODE6", "type": "Int32", + "default": -1, "group": "Commander", - "category": "Standard", "shortDesc": "Sixth flightmode slot (1800-2000)", "longDesc": "If the main switch channel is in this range the selected flight mode will be applied.", - "default": -1, "values": [ { "value": -1, @@ -2337,19 +2098,15 @@ "value": 12, "description": "Follow Me" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_FLT_PROFILE", "type": "Int32", + "default": 0, "group": "Commander", - "category": "Standard", "shortDesc": "User Flight Profile", "longDesc": "Describes the intended use of the vehicle. Can be used by ground control software or log post processing. This param does not influence the behavior within the firmware. This means for example the control logic is independent of the setting of this param (but depends on other params).", - "default": 0, "values": [ { "value": 0, @@ -2367,99 +2124,87 @@ "value": 300, "description": "Developer" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_HLDL_LOSS_T", "type": "Int32", + "default": 120, "group": "Commander", - "category": "Standard", "shortDesc": "High Latency Datalink loss time threshold", "longDesc": "After this amount of seconds without datalink the data link lost mode triggers", - "units": "s", - "default": 120, - "decimalPlaces": 3, "min": 60, - "max": 3600 + "max": 3600, + "units": "s" }, { "name": "COM_HLDL_REG_T", "type": "Int32", + "default": 0, "group": "Commander", - "category": "Standard", "shortDesc": "High Latency Datalink regain time threshold", "longDesc": "After a data link loss: after this this amount of seconds with a healthy datalink the 'datalink loss' flag is set back to false", - "units": "s", - "default": 0, - "decimalPlaces": 3, "min": 0, - "max": 60 + "max": 60, + "units": "s" }, { "name": "COM_HOME_H_T", "type": "Float", + "default": 5.0, "group": "Commander", - "category": "Standard", "shortDesc": "Home set horizontal threshold", "longDesc": "The home position will be set if the estimated positioning accuracy is below the threshold.", + "min": 2.0, + "max": 15.0, "units": "m", - "default": 5, - "increment": 0.5, "decimalPlaces": 2, - "min": 2, - "max": 15 + "increment": 0.5 }, { "name": "COM_HOME_V_T", "type": "Float", + "default": 10.0, "group": "Commander", - "category": "Standard", "shortDesc": "Home set vertical threshold", "longDesc": "The home position will be set if the estimated positioning accuracy is below the threshold.", + "min": 5.0, + "max": 25.0, "units": "m", - "default": 10, - "increment": 0.5, "decimalPlaces": 2, - "min": 5, - "max": 25 + "increment": 0.5 }, { "name": "COM_KILL_DISARM", "type": "Float", + "default": 5.0, "group": "Commander", - "category": "Standard", "shortDesc": "Timeout value for disarming when kill switch is engaged", + "min": 0.0, + "max": 30.0, "units": "s", - "default": 5, - "increment": 0.1, - "decimalPlaces": 1, - "min": 0, - "max": 30 + "increment": 0.1 }, { "name": "COM_LKDOWN_TKO", "type": "Float", + "default": 3.0, "group": "Commander", - "category": "Standard", "shortDesc": "Timeout for detecting a failure after takeoff", "longDesc": "A non-zero, positive value specifies the timeframe in seconds within failure detector is allowed to put the vehicle into a lockdown state if attitude exceeds the limits defined in FD_FAIL_P and FD_FAIL_R. The check is not executed for flight modes that do support acrobatic maneuvers, e.g: Acro (MC/FW), Rattitude and Manual (FW). A zero or negative value means that the check is disabled.", + "min": -1.0, + "max": 5.0, "units": "s", - "default": 3, - "decimalPlaces": 3, - "min": -1, - "max": 5 + "decimalPlaces": 3 }, { "name": "COM_LOW_BAT_ACT", "type": "Int32", + "default": 0, "group": "Commander", - "category": "Standard", "shortDesc": "Battery failsafe mode", "longDesc": "Action the system takes at critical battery. See also BAT_CRIT_THR and BAT_EMERGEN_THR for definition of battery states.", - "default": 0, + "decimalPlaces": 0, "increment": 1, "values": [ { @@ -2474,31 +2219,23 @@ "value": 3, "description": "Return at critical level, land at emergency level" } - ], - "decimalPlaces": 0, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_MOT_TEST_EN", "type": "Int32", + "default": 1, "group": "Commander", - "category": "Standard", "shortDesc": "Enable Motor Testing", - "longDesc": "If set, enables the motor test interface via MAVLink (DO_MOTOR_TEST), that allows spinning the motors for testing purposes.", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "If set, enables the motor test interface via MAVLink (DO_MOTOR_TEST), that allows spinning the motors for testing purposes." }, { "name": "COM_OBL_ACT", "type": "Int32", + "default": 0, "group": "Commander", - "category": "Standard", "shortDesc": "Set offboard loss failsafe mode", "longDesc": "The offboard loss failsafe will only be entered after a timeout, set by COM_OF_LOSS_T in seconds.", - "default": 0, "values": [ { "value": -1, @@ -2524,19 +2261,15 @@ "value": 4, "description": "Lockdown" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_OBL_RC_ACT", "type": "Int32", + "default": 0, "group": "Commander", - "category": "Standard", "shortDesc": "Set offboard loss failsafe mode when RC is available", "longDesc": "The offboard loss failsafe will only be entered after a timeout, set by COM_OF_LOSS_T in seconds.", - "default": 0, "values": [ { "value": -1, @@ -2574,43 +2307,26 @@ "value": 7, "description": "Lockdown" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "COM_OBS_AVOID", - "type": "Int32", - "group": "Mission", - "category": "Standard", - "shortDesc": "Flag to enable obstacle avoidance", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_OF_LOSS_T", "type": "Float", + "default": 0.5, "group": "Commander", - "category": "Standard", - "shortDesc": "Time-out to wait when offboard connection is lost before triggering offboard lost action. See COM_OBL_ACT and COM_OBL_RC_ACT to configure action", + "shortDesc": "Time-out to wait when offboard connection is lost before triggering offboard lost action.\nSee COM_OBL_ACT and COM_OBL_RC_ACT to configure action", + "min": 0.0, + "max": 60.0, "units": "s", - "default": 0.5, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 60 + "increment": 0.01 }, { "name": "COM_POSCTL_NAVL", "type": "Int32", + "default": 0, "group": "Commander", - "category": "Standard", "shortDesc": "Position control navigation loss response", "longDesc": "This sets the flight mode that will be used if navigation accuracy is no longer adequate for position control. Navigation accuracy checks can be disabled using the CBRK_VELPOSERR parameter, but doing so will remove protection for all flight modes.", - "default": 0, "values": [ { "value": 0, @@ -2618,100 +2334,78 @@ }, { "value": 1, - "description": "Land/Terminate. Assume no use of remote control after fallback. Switch to Land mode if a height estimate is available, else switch to TERMINATION." + "description": "Land/Terminate. Assume no use of remote control after fallback. Switch to Land mode if a height estimate is available, else switch to TERMINATION." } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_POS_FS_DELAY", "type": "Int32", + "default": 1, "group": "Commander", - "category": "Standard", "shortDesc": "Loss of position failsafe activation delay", "longDesc": "This sets number of seconds that the position checks need to be failed before the failsafe will activate. The default value has been optimised for rotary wing applications. For fixed wing applications, a larger value between 5 and 10 should be used.", - "units": "sec", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, "min": 1, - "max": 100 + "max": 100, + "units": "s", + "rebootRequired": true }, { "name": "COM_POS_FS_EPH", "type": "Float", + "default": 5.0, "group": "Commander", - "category": "Standard", "shortDesc": "Horizontal position error threshold", "longDesc": "This is the horizontal position error (EPH) threshold that will trigger a failsafe. The default is appropriate for a multicopter. Can be increased for a fixed-wing.", - "units": "m", - "default": 5, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "units": "m" }, { "name": "COM_POS_FS_EPV", "type": "Float", + "default": 10.0, "group": "Commander", - "category": "Standard", "shortDesc": "Vertical position error threshold", "longDesc": "This is the vertical position error (EPV) threshold that will trigger a failsafe. The default is appropriate for a multicopter. Can be increased for a fixed-wing.", - "units": "m", - "default": 10, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "units": "m" }, { "name": "COM_POS_FS_GAIN", "type": "Int32", + "default": 10, "group": "Commander", - "category": "Standard", "shortDesc": "Loss of position probation gain factor", "longDesc": "This sets the rate that the loss of position probation time grows when position checks are failing. The default value has been optimised for rotary wing applications. For fixed wing applications a value of 0 should be used.", - "default": 10, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "rebootRequired": true }, { "name": "COM_POS_FS_PROB", "type": "Int32", + "default": 30, "group": "Commander", - "category": "Standard", "shortDesc": "Loss of position probation delay at takeoff", "longDesc": "The probation delay is the number of seconds that the EKF innovation checks need to pass for the position to be declared good after it has been declared bad. The probation delay will be reset to this parameter value when takeoff is detected. After takeoff, if position checks are passing, the probation delay will reduce by one second for every lapsed second of valid position down to a minimum of 1 second. If position checks are failing, the probation delay will increase by COM_POS_FS_GAIN seconds for every lapsed second up to a maximum of 100 seconds. The default value has been optimised for rotary wing applications. For fixed wing applications, a value of 1 should be used.", - "units": "sec", - "default": 30, - "rebootRequired": true, - "decimalPlaces": 3, "min": 1, - "max": 100 + "max": 100, + "units": "s", + "rebootRequired": true }, { "name": "COM_POWER_COUNT", "type": "Int32", + "default": 1, "group": "Commander", - "category": "Standard", "shortDesc": "Required number of redundant power modules", "longDesc": "This configures a check to verify the expected number of 5V rail power supplies are present. By default only one is expected. Note: CBRK_SUPPLY_CHK disables all power checks including this one.", - "default": 1, - "decimalPlaces": 3, "min": 0, "max": 4 }, { "name": "COM_PREARM_MODE", "type": "Int32", + "default": 1, "group": "Commander", - "category": "Standard", "shortDesc": "Condition to enter prearmed mode", "longDesc": "Condition to enter the prearmed state, an intermediate state between disarmed and armed in which non-throttling actuators are active.", - "default": 1, "values": [ { "value": 0, @@ -2725,31 +2419,27 @@ "value": 2, "description": "Always" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "COM_RC_ARM_HYST", "type": "Int32", + "default": 1000, "group": "Commander", - "category": "Standard", "shortDesc": "RC input arm/disarm command duration", "longDesc": "The default value of 1000 requires the stick to be held in the arm or disarm position for 1 second.", - "default": 1000, - "decimalPlaces": 3, "min": 100, "max": 1500 }, { "name": "COM_RC_IN_MODE", "type": "Int32", + "default": 0, "group": "Commander", - "category": "Standard", "shortDesc": "RC control input mode", "longDesc": "The default value of 0 requires a valid RC transmitter setup. Setting this to 1 allows joystick control and disables RC input handling and the associated checks. A value of 2 will generate RC control data from manual input received via MAVLink instead of directly forwarding the manual input data.", - "default": 0, + "min": 0, + "max": 2, "values": [ { "value": 0, @@ -2763,904 +2453,750 @@ "value": 2, "description": "Virtual RC by Joystick" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 2 + ] }, { "name": "COM_RC_LOSS_T", "type": "Float", + "default": 0.5, "group": "Commander", - "category": "Standard", "shortDesc": "RC loss time threshold", "longDesc": "After this amount of seconds without RC connection the rc lost flag is set to true", + "min": 0.0, + "max": 35.0, "units": "s", - "default": 0.5, - "increment": 0.1, "decimalPlaces": 1, - "min": 0, - "max": 35 + "increment": 0.1 }, { "name": "COM_RC_OVERRIDE", "type": "Int32", + "default": 1, "group": "Commander", - "category": "Standard", "shortDesc": "Enable RC stick override of auto and/or offboard modes", - "longDesc": "When RC stick override is enabled, moving the RC sticks immediately gives control back to the pilot (switches to manual position mode): bit 0: Enable for auto modes (except for in critical battery reaction), bit 1: Enable for offboard mode. Only has an effect on multicopters, and VTOLS in multicopter mode.", - "default": 1, - "decimalPlaces": 3, + "longDesc": "When RC stick override is enabled, moving the RC sticks according to COM_RC_STICK_OV immediately gives control back to the pilot (switches to manual position mode): bit 0: Enable for auto modes (except for in critical battery reaction), bit 1: Enable for offboard mode. Only has an effect on multicopters, and VTOLS in multicopter mode.", "min": 0, - "max": 3 + "max": 3, + "bitmask": [ + { + "index": 0, + "description": "Enable override in auto modes" + }, + { + "index": 1, + "description": "Enable override in offboard mode" + } + ] }, { "name": "COM_RC_STICK_OV", "type": "Float", + "default": 30.0, "group": "Commander", - "category": "Standard", "shortDesc": "RC stick override threshold", - "longDesc": "If an RC stick is moved more than by this amount the system will interpret this as override request by the pilot.", + "longDesc": "If COM_RC_OVERRIDE is enabled and the joystick input controlling the horizontally axis (right stick for RC in mode 2) is moved more than this threshold from the center the autopilot switches to position mode and the pilot takes over control.", + "min": 5.0, + "max": 80.0, "units": "%", - "default": 12, - "increment": 0.05, "decimalPlaces": 0, - "min": 5, - "max": 40 + "increment": 0.05 }, { - "name": "COM_TAKEOFF_ACT", + "name": "COM_REARM_GRACE", "type": "Int32", - "group": "Mission", - "category": "Standard", - "shortDesc": "Action after TAKEOFF has been accepted", - "longDesc": "The mode transition after TAKEOFF has completed successfully.", - "default": 0, - "values": [ - { - "value": 0, - "description": "Hold" - }, - { - "value": 1, - "description": "Mission (if valid)" - } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "default": 1, + "group": "Commander", + "shortDesc": "Rearming grace period", + "longDesc": "Re-arming grace allows to rearm the drone with manual command without running prearmcheck during 5 s after disarming." }, { "name": "COM_VEL_FS_EVH", "type": "Float", + "default": 1.0, "group": "Commander", - "category": "Standard", "shortDesc": "Horizontal velocity error threshold", "longDesc": "This is the horizontal velocity error (EVH) threshold that will trigger a failsafe. The default is appropriate for a multicopter. Can be increased for a fixed-wing.", - "units": "m/s", - "default": 1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "CP_DELAY", - "type": "Float", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Average delay of the range sensor message plus the tracking delay of the position controller in seconds", - "longDesc": "Only used in Position mode.", - "units": "seconds", - "default": 0.4, - "decimalPlaces": 3, - "min": 0, - "max": 1 - }, - { - "name": "CP_DIST", - "type": "Float", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Minimum distance the vehicle should keep to all obstacles", - "longDesc": "Only used in Position mode. Collision avoidance is disabled by setting this parameter to a negative value", - "units": "meters", - "default": -1, - "decimalPlaces": 3, - "min": -1, - "max": 15 - }, - { - "name": "CP_GO_NO_DATA", - "type": "Float", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Boolean to allow moving into directions where there is no sensor data (outside FOV)", - "longDesc": "Only used in Position mode.", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "units": "m/s" }, { - "name": "CP_GUIDE_ANG", + "name": "NAV_AH_ALT", "type": "Float", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Angle left/right from the commanded setpoint by which the collision prevention algorithm can choose to change the setpoint direction", - "longDesc": "Only used in Position mode.", - "units": "[deg]", - "default": 30, - "decimalPlaces": 3, - "min": 0, - "max": 90 + "default": 600.0, + "group": "Data Link Loss", + "shortDesc": "Airfield home alt", + "longDesc": "Altitude of airfield home waypoint", + "min": -50.0, + "units": "m", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "DSHOT_CONFIG", + "name": "NAV_AH_LAT", "type": "Int32", - "group": "DShot", - "category": "Standard", - "shortDesc": "Configure DShot", - "longDesc": "This enables/disables DShot. The different modes define different speeds, for example DShot150 = 150kb/s. Not all ESCs support all modes. Note: this enables DShot on the FMU outputs. For boards with an IO it is the AUX outputs.", - "default": 0, - "values": [ - { - "value": 0, - "description": "Disable (use PWM/Oneshot)" - }, - { - "value": 150, - "description": "DShot150" - }, - { - "value": 300, - "description": "DShot300" - }, - { - "value": 600, - "description": "DShot600" - }, - { - "value": 1200, - "description": "DShot1200" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "DSHOT_MIN", - "type": "Float", - "group": "DShot", - "category": "Standard", - "shortDesc": "Minimum DShot Motor Output", - "longDesc": "Minimum Output Value for DShot in percent. The value depends on the ESC. Make sure to set this high enough so that the motors are always spinning while armed.", - "units": "%", - "default": 0.055, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": -265847810, + "group": "Data Link Loss", + "shortDesc": "Airfield home Lat", + "longDesc": "Latitude of airfield home waypoint", + "min": -900000000, + "max": 900000000, + "units": "deg*1e7" }, { - "name": "DSHOT_TEL_CFG", + "name": "NAV_AH_LON", "type": "Int32", - "group": "DShot", - "category": "Standard", - "shortDesc": "Serial Configuration for DShot Driver", - "longDesc": "Configure on which serial port to run DShot Driver.", - "default": 0, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 6, - "description": "UART 6" - }, - { - "value": 101, - "description": "TELEM 1" - }, - { - "value": 102, - "description": "TELEM 2" - }, - { - "value": 103, - "description": "TELEM 3" - }, - { - "value": 104, - "description": "TELEM/SERIAL 4" - }, - { - "value": 201, - "description": "GPS 1" - }, - { - "value": 202, - "description": "GPS 2" - }, - { - "value": 203, - "description": "GPS 3" - }, - { - "value": 300, - "description": "Radio Controller" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "default": 1518423250, + "group": "Data Link Loss", + "shortDesc": "Airfield home Lon", + "longDesc": "Longitude of airfield home waypoint", + "min": -1800000000, + "max": 1800000000, + "units": "deg*1e7" }, { "name": "EKF2_ABIAS_INIT", "type": "Float", + "default": 0.2, "group": "EKF2", - "category": "Standard", "shortDesc": "1-sigma IMU accelerometer switch-on bias", - "units": "m/s/s", - "default": 0.2, - "rebootRequired": true, + "min": 0.0, + "max": 0.5, + "units": "m/s^2", "decimalPlaces": 2, - "min": 0, - "max": 0.5 + "rebootRequired": true }, { "name": "EKF2_ABL_ACCLIM", "type": "Float", + "default": 25.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Maximum IMU accel magnitude that allows IMU bias learning. If the magnitude of the IMU accelerometer vector exceeds this value, the EKF delta velocity state estimation will be inhibited. This reduces the adverse effect of high manoeuvre accelerations and IMU nonlinerity and scale factor errors on the delta velocity bias estimates", - "units": "m/s/s", - "default": 25, - "decimalPlaces": 1, - "min": 20, - "max": 200 + "shortDesc": "Maximum IMU accel magnitude that allows IMU bias learning.\nIf the magnitude of the IMU accelerometer vector exceeds this value, the EKF delta velocity state estimation will be inhibited.\nThis reduces the adverse effect of high manoeuvre accelerations and IMU nonlinerity and scale factor errors on the delta velocity bias estimates", + "min": 20.0, + "max": 200.0, + "units": "m/s^2", + "decimalPlaces": 1 }, { "name": "EKF2_ABL_GYRLIM", "type": "Float", + "default": 3.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Maximum IMU gyro angular rate magnitude that allows IMU bias learning. If the magnitude of the IMU angular rate vector exceeds this value, the EKF delta velocity state estimation will be inhibited. This reduces the adverse effect of rapid rotation rates and associated errors on the delta velocity bias estimates", + "shortDesc": "Maximum IMU gyro angular rate magnitude that allows IMU bias learning.\nIf the magnitude of the IMU angular rate vector exceeds this value, the EKF delta velocity state estimation will be inhibited.\nThis reduces the adverse effect of rapid rotation rates and associated errors on the delta velocity bias estimates", + "min": 2.0, + "max": 20.0, "units": "rad/s", - "default": 3, - "decimalPlaces": 1, - "min": 2, - "max": 20 + "decimalPlaces": 1 }, { "name": "EKF2_ABL_LIM", "type": "Float", + "default": 0.4, "group": "EKF2", - "category": "Standard", "shortDesc": "Accelerometer bias learning limit. The ekf delta velocity bias states will be limited to within a range equivalent to +- of this value", - "units": "m/s/s", - "default": 0.4, - "decimalPlaces": 2, - "min": 0, - "max": 0.8 + "min": 0.0, + "max": 0.8, + "units": "m/s^2", + "decimalPlaces": 2 }, { "name": "EKF2_ABL_TAU", "type": "Float", - "group": "EKF2", - "category": "Standard", - "shortDesc": "Time constant used by acceleration and angular rate magnitude checks used to inhibit delta velocity bias learning. The vector magnitude of angular rate and acceleration used to check if learning should be inhibited has a peak hold filter applied to it with an exponential decay. This parameter controls the time constant of the decay", - "units": "s", "default": 0.5, - "decimalPlaces": 2, + "group": "EKF2", + "shortDesc": "Time constant used by acceleration and angular rate magnitude checks used to inhibit delta velocity bias learning.\nThe vector magnitude of angular rate and acceleration used to check if learning should be inhibited has a peak hold filter applied to it with an exponential decay.\nThis parameter controls the time constant of the decay", "min": 0.1, - "max": 1 + "max": 1.0, + "units": "s", + "decimalPlaces": 2 }, { "name": "EKF2_ACC_B_NOISE", "type": "Float", + "default": 0.003, "group": "EKF2", - "category": "Standard", "shortDesc": "Process noise for IMU accelerometer bias prediction", - "units": "m/s**3", - "default": 0.003, - "decimalPlaces": 6, - "min": 0, - "max": 0.01 + "min": 0.0, + "max": 0.01, + "units": "m/s^3", + "decimalPlaces": 6 }, { "name": "EKF2_ACC_NOISE", "type": "Float", + "default": 0.35, "group": "EKF2", - "category": "Standard", "shortDesc": "Accelerometer noise for covariance prediction", - "units": "m/s/s", - "default": 0.35, - "decimalPlaces": 2, "min": 0.01, - "max": 1 + "max": 1.0, + "units": "m/s^2", + "decimalPlaces": 2 }, { "name": "EKF2_AID_MASK", "type": "Int32", + "default": 1, "group": "EKF2", - "category": "Standard", "shortDesc": "Integer bitmask controlling data fusion and aiding methods", "longDesc": "Set bits in the following positions to enable: 0 : Set to true to use GPS data if available 1 : Set to true to use optical flow data if available 2 : Set to true to inhibit IMU delta velocity bias estimation 3 : Set to true to enable vision position fusion 4 : Set to true to enable vision yaw fusion. Cannot be used if bit position 7 is true. 5 : Set to true to enable multi-rotor drag specific force fusion 6 : set to true if the EV observations are in a non NED reference frame and need to be rotated before being used 7 : Set to true to enable GPS yaw fusion. Cannot be used if bit position 4 is true.", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, "min": 0, - "max": 511 - }, - { - "name": "EKF2_ANGERR_INIT", - "type": "Float", - "group": "EKF2", - "category": "Standard", - "shortDesc": "1-sigma tilt angle uncertainty after gravity vector alignment", - "units": "rad", - "default": 0.1, + "max": 511, "rebootRequired": true, + "bitmask": [ + { + "index": 0, + "description": "use GPS" + }, + { + "index": 1, + "description": "use optical flow" + }, + { + "index": 2, + "description": "inhibit IMU bias estimation" + }, + { + "index": 3, + "description": "vision position fusion" + }, + { + "index": 4, + "description": "vision yaw fusion" + }, + { + "index": 5, + "description": "multi-rotor drag fusion" + }, + { + "index": 6, + "description": "rotate external vision" + }, + { + "index": 7, + "description": "GPS yaw fusion" + }, + { + "index": 8, + "description": "vision velocity fusion" + } + ] + }, + { + "name": "EKF2_ANGERR_INIT", + "type": "Float", + "default": 0.1, + "group": "EKF2", + "shortDesc": "1-sigma tilt angle uncertainty after gravity vector alignment", + "min": 0.0, + "max": 0.5, + "units": "rad", "decimalPlaces": 3, - "min": 0, - "max": 0.5 + "rebootRequired": true }, { "name": "EKF2_ARSP_THR", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Airspeed fusion threshold. A value of zero will deactivate airspeed fusion. Any other positive value will determine the minimum airspeed which will still be fused. Set to about 90% of the vehicles stall speed. Both airspeed fusion and sideslip fusion must be active for the EKF to continue navigating after loss of GPS. Use EKF2_FUSE_BETA to activate sideslip fusion", + "shortDesc": "Airspeed fusion threshold. A value of zero will deactivate airspeed fusion. Any other positive\nvalue will determine the minimum airspeed which will still be fused. Set to about 90% of the vehicles stall speed.\nBoth airspeed fusion and sideslip fusion must be active for the EKF to continue navigating after loss of GPS.\nUse EKF2_FUSE_BETA to activate sideslip fusion", + "min": 0.0, "units": "m/s", - "default": 0, - "decimalPlaces": 1, - "min": 0, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_ASPD_MAX", "type": "Float", + "default": 20.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Upper limit on airspeed along individual axes used to correct baro for position error effects", + "min": 5.0, + "max": 50.0, "units": "m/s", - "default": 20, - "decimalPlaces": 1, - "min": 5, - "max": 50 + "decimalPlaces": 1 }, { "name": "EKF2_ASP_DELAY", "type": "Float", + "default": 100.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Airspeed measurement delay relative to IMU measurements", + "min": 0.0, + "max": 300.0, "units": "ms", - "default": 100, - "rebootRequired": true, "decimalPlaces": 1, - "min": 0, - "max": 300 + "rebootRequired": true }, { "name": "EKF2_AVEL_DELAY", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Auxillary Velocity Estimate (e.g from a landing target) delay relative to IMU measurements", + "min": 0.0, + "max": 300.0, "units": "ms", - "default": 5, - "rebootRequired": true, "decimalPlaces": 1, - "min": 0, - "max": 300 + "rebootRequired": true }, { "name": "EKF2_BARO_DELAY", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Barometer measurement delay relative to IMU measurements", + "min": 0.0, + "max": 300.0, "units": "ms", - "default": 0, - "rebootRequired": true, "decimalPlaces": 1, - "min": 0, - "max": 300 + "rebootRequired": true }, { "name": "EKF2_BARO_GATE", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Gate size for barometric and GPS height fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 1.0, "units": "SD", - "default": 5, - "decimalPlaces": 1, - "min": 1, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_BARO_NOISE", "type": "Float", + "default": 3.5, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for barometric altitude", - "units": "m", - "default": 3.5, - "decimalPlaces": 2, "min": 0.01, - "max": 15 + "max": 15.0, + "units": "m", + "decimalPlaces": 2 }, { "name": "EKF2_BCOEF_X", "type": "Float", + "default": 25.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "X-axis ballistic coefficient used by the multi-rotor specific drag force model. This should be adjusted to minimise variance of the X-axis drag specific force innovation sequence", - "units": "kg/m**2", - "default": 25, - "decimalPlaces": 1, - "min": 1, - "max": 100 + "shortDesc": "X-axis ballistic coefficient used by the multi-rotor specific drag force model.\nThis should be adjusted to minimise variance of the X-axis drag specific force innovation sequence", + "min": 1.0, + "max": 100.0, + "units": "kg/m^2", + "decimalPlaces": 1 }, { "name": "EKF2_BCOEF_Y", "type": "Float", + "default": 25.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Y-axis ballistic coefficient used by the multi-rotor specific drag force model. This should be adjusted to minimise variance of the Y-axis drag specific force innovation sequence", - "units": "kg/m**2", - "default": 25, - "decimalPlaces": 1, - "min": 1, - "max": 100 + "shortDesc": "Y-axis ballistic coefficient used by the multi-rotor specific drag force model.\nThis should be adjusted to minimise variance of the Y-axis drag specific force innovation sequence", + "min": 1.0, + "max": 100.0, + "units": "kg/m^2", + "decimalPlaces": 1 }, { "name": "EKF2_BETA_GATE", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Gate size for synthetic sideslip fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 1.0, "units": "SD", - "default": 5, - "decimalPlaces": 1, - "min": 1, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_BETA_NOISE", "type": "Float", + "default": 0.3, "group": "EKF2", - "category": "Standard", "shortDesc": "Noise for synthetic sideslip fusion", - "units": "m/s", - "default": 0.3, - "decimalPlaces": 2, "min": 0.1, - "max": 1 + "max": 1.0, + "units": "m/s", + "decimalPlaces": 2 }, { "name": "EKF2_DECL_TYPE", "type": "Int32", + "default": 7, "group": "EKF2", - "category": "Standard", "shortDesc": "Integer bitmask controlling handling of magnetic declination", "longDesc": "Set bits in the following positions to enable functions. 0 : Set to true to use the declination from the geo_lookup library when the GPS position becomes available, set to false to always use the EKF2_MAG_DECL value. 1 : Set to true to save the EKF2_MAG_DECL parameter to the value returned by the EKF when the vehicle disarms. 2 : Set to true to always use the declination as an observation when 3-axis magnetometer fusion is being used.", - "default": 7, - "rebootRequired": true, - "decimalPlaces": 3, "min": 0, - "max": 7 + "max": 7, + "rebootRequired": true, + "bitmask": [ + { + "index": 0, + "description": "use geo_lookup declination" + }, + { + "index": 1, + "description": "save EKF2_MAG_DECL on disarm" + }, + { + "index": 2, + "description": "use declination as an observation" + } + ] }, { "name": "EKF2_DRAG_NOISE", "type": "Float", - "group": "EKF2", - "category": "Standard", - "shortDesc": "Specific drag force observation noise variance used by the multi-rotor specific drag force model. Increasing it makes the multi-rotor wind estimates adjust more slowly", - "units": "(m/sec**2)**2", "default": 2.5, - "decimalPlaces": 2, + "group": "EKF2", + "shortDesc": "Specific drag force observation noise variance used by the multi-rotor specific drag force model.\nIncreasing it makes the multi-rotor wind estimates adjust more slowly", "min": 0.5, - "max": 10 + "max": 10.0, + "units": "(m/s^2)^2", + "decimalPlaces": 2 }, { "name": "EKF2_EAS_NOISE", "type": "Float", + "default": 1.4, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for airspeed fusion", - "units": "m/s", - "default": 1.4, - "decimalPlaces": 1, "min": 0.5, - "max": 5 + "max": 5.0, + "units": "m/s", + "decimalPlaces": 1 }, { "name": "EKF2_EVA_NOISE", "type": "Float", + "default": 0.05, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for vision angle observations used to lower bound or replace the uncertainty included in the message", - "units": "rad", - "default": 0.05, - "decimalPlaces": 2, "min": 0.05, - "max": 3.40282e+38 + "units": "rad", + "decimalPlaces": 2 }, { "name": "EKF2_EVP_GATE", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Gate size for vision position fusion Sets the number of standard deviations used by the innovation consistency test", + "shortDesc": "Gate size for vision position fusion\nSets the number of standard deviations used by the innovation consistency test", + "min": 1.0, "units": "SD", - "default": 5, - "decimalPlaces": 1, - "min": 1, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_EVP_NOISE", "type": "Float", + "default": 0.1, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for vision position observations used to lower bound or replace the uncertainty included in the message", - "units": "m", - "default": 0.1, - "decimalPlaces": 2, "min": 0.01, - "max": 3.40282e+38 + "units": "m", + "decimalPlaces": 2 }, { "name": "EKF2_EVV_GATE", "type": "Float", + "default": 3.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Gate size for vision velocity estimate fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 1.0, "units": "SD", - "default": 3, - "decimalPlaces": 1, - "min": 1, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_EVV_NOISE", "type": "Float", + "default": 0.1, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for vision velocity observations used to lower bound or replace the uncertainty included in the message", - "units": "m/s", - "default": 0.1, - "decimalPlaces": 2, "min": 0.01, - "max": 3.40282e+38 + "units": "m/s", + "decimalPlaces": 2 }, { "name": "EKF2_EV_DELAY", "type": "Float", + "default": 175.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Vision Position Estimator delay relative to IMU measurements", + "min": 0.0, + "max": 300.0, "units": "ms", - "default": 175, - "rebootRequired": true, "decimalPlaces": 1, - "min": 0, - "max": 300 + "rebootRequired": true }, { "name": "EKF2_EV_NOISE_MD", "type": "Int32", + "default": 0, "group": "EKF2", - "category": "Standard", "shortDesc": "Whether to set the external vision observation noise from the parameter or from vision message", - "longDesc": "If set to true the observation noise is set from the parameters directly, if set to false the measurement noise is taken from the vision message and the parameter are used as a lower bound.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "If set to true the observation noise is set from the parameters directly, if set to false the measurement noise is taken from the vision message and the parameter are used as a lower bound." }, { "name": "EKF2_EV_POS_X", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "X position of VI sensor focal point in body frame (forward axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_EV_POS_Y", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Y position of VI sensor focal point in body frame (right axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_EV_POS_Z", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Z position of VI sensor focal point in body frame (down axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_FUSE_BETA", "type": "Int32", + "default": 0, "group": "EKF2", - "category": "Standard", "shortDesc": "Boolean determining if synthetic sideslip measurements should fused", - "longDesc": "A value of 1 indicates that fusion is active Both sideslip fusion and airspeed fusion must be active for the EKF to continue navigating after loss of GPS. Use EKF2_ARSP_THR to activate airspeed fusion.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "A value of 1 indicates that fusion is active Both sideslip fusion and airspeed fusion must be active for the EKF to continue navigating after loss of GPS. Use EKF2_ARSP_THR to activate airspeed fusion." }, { "name": "EKF2_GBIAS_INIT", "type": "Float", + "default": 0.1, "group": "EKF2", - "category": "Standard", "shortDesc": "1-sigma IMU gyro switch-on bias", - "units": "rad/sec", - "default": 0.1, - "rebootRequired": true, + "min": 0.0, + "max": 0.2, + "units": "rad/s", "decimalPlaces": 2, - "min": 0, - "max": 0.2 + "rebootRequired": true }, { "name": "EKF2_GND_EFF_DZ", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Baro deadzone range for height fusion", "longDesc": "Sets the value of deadzone applied to negative baro innovations. Deadzone is enabled when EKF2_GND_EFF_DZ > 0.", - "units": "M", - "default": 0, - "decimalPlaces": 1, - "min": 0, - "max": 10 + "min": 0.0, + "max": 10.0, + "units": "m", + "decimalPlaces": 1 }, { "name": "EKF2_GND_MAX_HGT", "type": "Float", + "default": 0.5, "group": "EKF2", - "category": "Standard", "shortDesc": "Height above ground level for ground effect zone", "longDesc": "Sets the maximum distance to the ground level where negative baro innovations are expected.", - "units": "M", - "default": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 5 + "min": 0.0, + "max": 5.0, + "units": "m", + "decimalPlaces": 1 }, { "name": "EKF2_GPS_CHECK", "type": "Int32", + "default": 245, "group": "EKF2", - "category": "Standard", "shortDesc": "Integer bitmask controlling GPS checks", "longDesc": "Set bits to 1 to enable checks. Checks enabled by the following bit positions 0 : Minimum required sat count set by EKF2_REQ_NSATS 1 : Minimum required PDOP set by EKF2_REQ_PDOP 2 : Maximum allowed horizontal position error set by EKF2_REQ_EPH 3 : Maximum allowed vertical position error set by EKF2_REQ_EPV 4 : Maximum allowed speed error set by EKF2_REQ_SACC 5 : Maximum allowed horizontal position rate set by EKF2_REQ_HDRIFT. This check will only run when the vehicle is on ground and stationary. Detecton of the stationary condition is controlled by the EKF2_MOVE_TEST parameter. 6 : Maximum allowed vertical position rate set by EKF2_REQ_VDRIFT. This check will only run when the vehicle is on ground and stationary. Detecton of the stationary condition is controlled by the EKF2_MOVE_TEST parameter. 7 : Maximum allowed horizontal speed set by EKF2_REQ_HDRIFT. This check will only run when the vehicle is on ground and stationary. Detecton of the stationary condition is controlled by the EKF2_MOVE_TEST parameter. 8 : Maximum allowed vertical velocity discrepancy set by EKF2_REQ_VDRIFT", - "default": 245, - "decimalPlaces": 3, "min": 0, - "max": 511 + "max": 511, + "bitmask": [ + { + "index": 0, + "description": "Min sat count (EKF2_REQ_NSATS)" + }, + { + "index": 1, + "description": "Min PDOP (EKF2_REQ_PDOP)" + }, + { + "index": 2, + "description": "Max horizontal position error (EKF2_REQ_EPH)" + }, + { + "index": 3, + "description": "Max vertical position error (EKF2_REQ_EPV)" + }, + { + "index": 4, + "description": "Max speed error (EKF2_REQ_SACC)" + }, + { + "index": 5, + "description": "Max horizontal position rate (EKF2_REQ_HDRIFT)" + }, + { + "index": 6, + "description": "Max vertical position rate (EKF2_REQ_VDRIFT)" + }, + { + "index": 7, + "description": "Max horizontal speed (EKF2_REQ_HDRIFT)" + }, + { + "index": 8, + "description": "Max vertical velocity discrepancy (EKF2_REQ_VDRIFT)" + } + ] }, { "name": "EKF2_GPS_DELAY", "type": "Float", + "default": 110.0, "group": "EKF2", - "category": "Standard", "shortDesc": "GPS measurement delay relative to IMU measurements", + "min": 0.0, + "max": 300.0, "units": "ms", - "default": 110, - "rebootRequired": true, "decimalPlaces": 1, - "min": 0, - "max": 300 - }, - { - "name": "EKF2_GPS_MASK", - "type": "Int32", - "group": "EKF2", - "category": "Standard", - "shortDesc": "Multi GPS Blending Control Mask", - "longDesc": "Set bits in the following positions to set which GPS accuracy metrics will be used to calculate the blending weight. Set to zero to disable and always used first GPS instance. 0 : Set to true to use speed accuracy 1 : Set to true to use horizontal position accuracy 2 : Set to true to use vertical position accuracy", - "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 7 + "rebootRequired": true }, { "name": "EKF2_GPS_POS_X", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "X position of GPS antenna in body frame (forward axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_GPS_POS_Y", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Y position of GPS antenna in body frame (right axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_GPS_POS_Z", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Z position of GPS antenna in body frame (down axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_GPS_P_GATE", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Gate size for GPS horizontal position fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 1.0, "units": "SD", - "default": 5, - "decimalPlaces": 1, - "min": 1, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_GPS_P_NOISE", "type": "Float", + "default": 0.5, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for gps position", - "units": "m", - "default": 0.5, - "decimalPlaces": 2, "min": 0.01, - "max": 10 - }, - { - "name": "EKF2_GPS_TAU", - "type": "Float", - "group": "EKF2", - "category": "Standard", - "shortDesc": "Multi GPS Blending Time Constant", - "longDesc": "Sets the longest time constant that will be applied to the calculation of GPS position and height offsets used to correct data from multiple GPS data for steady state position differences.", - "units": "s", - "default": 10, - "decimalPlaces": 1, - "min": 1, - "max": 100 + "max": 10.0, + "units": "m", + "decimalPlaces": 2 }, { "name": "EKF2_GPS_V_GATE", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Gate size for GPS velocity fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 1.0, "units": "SD", - "default": 5, - "decimalPlaces": 1, - "min": 1, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_GPS_V_NOISE", "type": "Float", + "default": 0.3, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for gps horizontal velocity", - "units": "m/s", - "default": 0.3, - "decimalPlaces": 2, "min": 0.01, - "max": 5 + "max": 5.0, + "units": "m/s", + "decimalPlaces": 2 }, { "name": "EKF2_GSF_TAS", "type": "Float", + "default": 15.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Default value of true airspeed used in EKF-GSF AHRS calculation. If no airspeed measurements are avalable, the EKF-GSF AHRS calculation will assume this value of true airspeed when compensating for centripetal acceleration during turns. Set to zero to disable centripetal acceleration compensation during fixed wing flight modes", + "shortDesc": "Default value of true airspeed used in EKF-GSF AHRS calculation.\nIf no airspeed measurements are avalable, the EKF-GSF AHRS calculation will assume this value of true airspeed when compensating for centripetal acceleration during turns. Set to zero to disable centripetal acceleration compensation during fixed wing flight modes", + "min": 0.0, + "max": 100.0, "units": "m/s", - "default": 15, - "decimalPlaces": 1, - "min": 0, - "max": 100 + "decimalPlaces": 1 }, { "name": "EKF2_GYR_B_NOISE", "type": "Float", + "default": 0.001, "group": "EKF2", - "category": "Standard", "shortDesc": "Process noise for IMU rate gyro bias prediction", - "units": "rad/s**2", - "default": 0.001, - "decimalPlaces": 6, - "min": 0, - "max": 0.01 + "min": 0.0, + "max": 0.01, + "units": "rad/s^2", + "decimalPlaces": 6 }, { "name": "EKF2_GYR_NOISE", "type": "Float", + "default": 0.015, "group": "EKF2", - "category": "Standard", "shortDesc": "Rate gyro noise for covariance prediction", - "units": "rad/s", - "default": 0.015, - "decimalPlaces": 4, "min": 0.0001, - "max": 0.1 + "max": 0.1, + "units": "rad/s", + "decimalPlaces": 4 }, { "name": "EKF2_HDG_GATE", "type": "Float", + "default": 2.6, "group": "EKF2", - "category": "Standard", "shortDesc": "Gate size for magnetic heading fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 1.0, "units": "SD", - "default": 2.6, - "decimalPlaces": 1, - "min": 1, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_HEAD_NOISE", "type": "Float", + "default": 0.3, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for magnetic heading fusion", - "units": "rad", - "default": 0.3, - "decimalPlaces": 2, "min": 0.01, - "max": 1 + "max": 1.0, + "units": "rad", + "decimalPlaces": 2 }, { "name": "EKF2_HGT_MODE", "type": "Int32", + "default": 0, "group": "EKF2", - "category": "Standard", "shortDesc": "Determines the primary source of height data used by the EKF", "longDesc": "The range sensor option should only be used when for operation over a flat surface as the local NED origin will move up and down with ground level.", - "default": 0, + "rebootRequired": true, "values": [ { "value": 0, @@ -3678,251 +3214,215 @@ "value": 3, "description": "Vision" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "EKF2_IMU_ID", "type": "Int32", + "default": 0, "group": "EKF2", "category": "Developer", "shortDesc": "Device id of IMU", "longDesc": "Set to 0 to use system selected (sensor_combined) IMU, otherwise set to the device id of the desired IMU (vehicle_imu).", - "default": 0, "values": [ { "value": 0, "description": "System Primary" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "EKF2_IMU_POS_X", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "X position of IMU in body frame (forward axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_IMU_POS_Y", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Y position of IMU in body frame (right axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_IMU_POS_Z", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Z position of IMU in body frame (down axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_MAGBIAS_ID", "type": "Int32", + "default": 0, "group": "EKF2", "category": "System", "shortDesc": "ID of Magnetometer the learned bias is for", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "rebootRequired": true }, { "name": "EKF2_MAGBIAS_X", "type": "Float", + "default": 0.0, "group": "EKF2", "category": "System", - "shortDesc": "Learned value of magnetometer X axis bias. This is the amount of X-axis magnetometer bias learned by the EKF and saved from the last flight. It must be set to zero if the ground based magnetometer calibration is repeated", - "units": "mGauss", - "default": 0, - "rebootRequired": true, "volatile": true, - "decimalPlaces": 3, + "shortDesc": "Learned value of magnetometer X axis bias.\nThis is the amount of X-axis magnetometer bias learned by the EKF and saved from the last flight. It must be set to zero if the ground based magnetometer calibration is repeated", "min": -0.5, - "max": 0.5 + "max": 0.5, + "units": "mgauss", + "decimalPlaces": 3, + "rebootRequired": true }, { "name": "EKF2_MAGBIAS_Y", "type": "Float", + "default": 0.0, "group": "EKF2", "category": "System", - "shortDesc": "Learned value of magnetometer Y axis bias. This is the amount of Y-axis magnetometer bias learned by the EKF and saved from the last flight. It must be set to zero if the ground based magnetometer calibration is repeated", - "units": "mGauss", - "default": 0, - "rebootRequired": true, "volatile": true, - "decimalPlaces": 3, + "shortDesc": "Learned value of magnetometer Y axis bias.\nThis is the amount of Y-axis magnetometer bias learned by the EKF and saved from the last flight. It must be set to zero if the ground based magnetometer calibration is repeated", "min": -0.5, - "max": 0.5 + "max": 0.5, + "units": "mgauss", + "decimalPlaces": 3, + "rebootRequired": true }, { "name": "EKF2_MAGBIAS_Z", "type": "Float", + "default": 0.0, "group": "EKF2", "category": "System", - "shortDesc": "Learned value of magnetometer Z axis bias. This is the amount of Z-axis magnetometer bias learned by the EKF and saved from the last flight. It must be set to zero if the ground based magnetometer calibration is repeated", - "units": "mGauss", - "default": 0, - "rebootRequired": true, "volatile": true, - "decimalPlaces": 3, + "shortDesc": "Learned value of magnetometer Z axis bias.\nThis is the amount of Z-axis magnetometer bias learned by the EKF and saved from the last flight. It must be set to zero if the ground based magnetometer calibration is repeated", "min": -0.5, - "max": 0.5 + "max": 0.5, + "units": "mgauss", + "decimalPlaces": 3, + "rebootRequired": true }, { "name": "EKF2_MAGB_K", "type": "Float", - "group": "EKF2", - "category": "Standard", - "shortDesc": "Maximum fraction of learned mag bias saved at each disarm. Smaller values make the saved mag bias learn slower from flight to flight. Larger values make it learn faster. Must be > 0.0 and <= 1.0", "default": 0.2, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "group": "EKF2", + "shortDesc": "Maximum fraction of learned mag bias saved at each disarm.\nSmaller values make the saved mag bias learn slower from flight to flight. Larger values make it learn faster. Must be > 0.0 and <= 1.0", + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2 }, { "name": "EKF2_MAGB_VREF", "type": "Float", - "group": "EKF2", - "category": "Standard", - "shortDesc": "State variance assumed for magnetometer bias storage. This is a reference variance used to calculate the fraction of learned magnetometer bias that will be used to update the stored value. Smaller values will make the stored bias data adjust more slowly from flight to flight. Larger values will make it adjust faster", - "units": "mGauss**2", "default": 2.5e-07, - "rebootRequired": true, + "group": "EKF2", + "shortDesc": "State variance assumed for magnetometer bias storage.\nThis is a reference variance used to calculate the fraction of learned magnetometer bias that will be used to update the stored value. Smaller values will make the stored bias data adjust more slowly from flight to flight. Larger values will make it adjust faster", + "units": "mgauss^2", "decimalPlaces": 8, - "min": -3.40282e+38, - "max": 3.40282e+38 + "rebootRequired": true }, { "name": "EKF2_MAG_ACCLIM", "type": "Float", - "group": "EKF2", - "category": "Standard", - "shortDesc": "Horizontal acceleration threshold used by automatic selection of magnetometer fusion method. This parameter is used when the magnetometer fusion method is set automatically (EKF2_MAG_TYPE = 0). If the filtered horizontal acceleration is greater than this parameter value, then the EKF will use 3-axis magnetomer fusion", - "units": "m/s**2", "default": 0.5, - "decimalPlaces": 2, - "min": 0, - "max": 5 + "group": "EKF2", + "shortDesc": "Horizontal acceleration threshold used by automatic selection of magnetometer fusion method.\nThis parameter is used when the magnetometer fusion method is set automatically (EKF2_MAG_TYPE = 0). If the filtered horizontal acceleration is greater than this parameter value, then the EKF will use 3-axis magnetomer fusion", + "min": 0.0, + "max": 5.0, + "units": "m/s^2", + "decimalPlaces": 2 }, { "name": "EKF2_MAG_B_NOISE", "type": "Float", + "default": 0.0001, "group": "EKF2", - "category": "Standard", "shortDesc": "Process noise for body magnetic field prediction", - "units": "Gauss/s", - "default": 0.0001, - "decimalPlaces": 6, - "min": 0, - "max": 0.1 + "min": 0.0, + "max": 0.1, + "units": "gauss/s", + "decimalPlaces": 6 }, { "name": "EKF2_MAG_CHECK", "type": "Int32", + "default": 0, "group": "EKF2", - "category": "Standard", "shortDesc": "Magnetic field strength test selection", - "longDesc": "When set, the EKF checks the strength of the magnetic field to decide whether the magnetometer data is valid. If GPS data is received, the magnetic field is compared to a World Magnetic Model (WMM), otherwise an average value is used. This check is useful to reject occasional hard iron disturbance.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "When set, the EKF checks the strength of the magnetic field to decide whether the magnetometer data is valid. If GPS data is received, the magnetic field is compared to a World Magnetic Model (WMM), otherwise an average value is used. This check is useful to reject occasional hard iron disturbance." }, { "name": "EKF2_MAG_DECL", "type": "Float", + "default": 0.0, "group": "EKF2", "category": "System", + "volatile": true, "shortDesc": "Magnetic declination", "units": "deg", - "default": 0, - "volatile": true, - "decimalPlaces": 1, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_MAG_DELAY", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Magnetometer measurement delay relative to IMU measurements", + "min": 0.0, + "max": 300.0, "units": "ms", - "default": 0, - "rebootRequired": true, "decimalPlaces": 1, - "min": 0, - "max": 300 + "rebootRequired": true }, { "name": "EKF2_MAG_E_NOISE", "type": "Float", + "default": 0.001, "group": "EKF2", - "category": "Standard", "shortDesc": "Process noise for earth magnetic field prediction", - "units": "Gauss/s", - "default": 0.001, - "decimalPlaces": 6, - "min": 0, - "max": 0.1 + "min": 0.0, + "max": 0.1, + "units": "gauss/s", + "decimalPlaces": 6 }, { "name": "EKF2_MAG_GATE", "type": "Float", + "default": 3.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Gate size for magnetometer XYZ component fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 1.0, "units": "SD", - "default": 3, - "decimalPlaces": 1, - "min": 1, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_MAG_NOISE", "type": "Float", + "default": 0.05, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for magnetometer 3-axis fusion", - "units": "Gauss", - "default": 0.05, - "decimalPlaces": 3, "min": 0.001, - "max": 1 + "max": 1.0, + "units": "gauss", + "decimalPlaces": 3 }, { "name": "EKF2_MAG_TYPE", "type": "Int32", + "default": 0, "group": "EKF2", - "category": "Standard", "shortDesc": "Type of magnetometer fusion", "longDesc": "Integer controlling the type of magnetometer fusion used - magnetic heading or 3-component vector. The fuson of magnetomer data as a three component vector enables vehicle body fixed hard iron errors to be learned, but requires a stable earth field. If set to 'Automatic' magnetic heading fusion is used when on-ground and 3-axis magnetic field fusion in-flight with fallback to magnetic heading fusion if there is insufficient motion to make yaw or magnetic field states observable. If set to 'Magnetic heading' magnetic heading fusion is used at all times If set to '3-axis' 3-axis field fusion is used at all times. If set to 'VTOL custom' the behaviour is the same as 'Automatic', but if fusing airspeed, magnetometer fusion is only allowed to modify the magnetic field states. This can be used by VTOL platforms with large magnetic field disturbances to prevent incorrect bias states being learned during forward flight operation which can adversely affect estimation accuracy after transition to hovering flight. If set to 'MC custom' the behaviour is the same as 'Automatic, but if there are no earth frame position or velocity observations being used, the magnetometer will not be used. This enables vehicles to operate with no GPS in environments where the magnetic field cannot be used to provide a heading reference. Prior to flight, the yaw angle is assumed to be constant if movement tests controlled by the EKF2_MOVE_TEST parameter indicate that the vehicle is static. This allows the vehicle to be placed on the ground to learn the yaw gyro bias prior to flight. If set to 'None' the magnetometer will not be used under any circumstance. If no external source of yaw is available, it is possible to use post-takeoff horizontal movement combined with GPS velocity measurements to align the yaw angle with the timer required (depending on the amount of movement and GPS data quality). Other external sources of yaw may be used if selected via the EKF2_AID_MASK parameter.", - "default": 0, + "rebootRequired": true, "values": [ { "value": 0, @@ -3948,343 +3448,296 @@ "value": 5, "description": "None" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "EKF2_MAG_YAWLIM", "type": "Float", + "default": 0.25, "group": "EKF2", - "category": "Standard", - "shortDesc": "Yaw rate threshold used by automatic selection of magnetometer fusion method. This parameter is used when the magnetometer fusion method is set automatically (EKF2_MAG_TYPE = 0). If the filtered yaw rate is greater than this parameter value, then the EKF will use 3-axis magnetomer fusion", + "shortDesc": "Yaw rate threshold used by automatic selection of magnetometer fusion method.\nThis parameter is used when the magnetometer fusion method is set automatically (EKF2_MAG_TYPE = 0). If the filtered yaw rate is greater than this parameter value, then the EKF will use 3-axis magnetomer fusion", + "min": 0.0, + "max": 1.0, "units": "rad/s", - "default": 0.25, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "decimalPlaces": 2 }, { "name": "EKF2_MIN_OBS_DT", "type": "Int32", - "group": "EKF2", - "category": "Standard", - "shortDesc": "Minimum time of arrival delta between non-IMU observations before data is downsampled. Baro and Magnetometer data will be averaged before downsampling, other data will be point sampled resulting in loss of information", - "units": "ms", "default": 20, - "rebootRequired": true, - "decimalPlaces": 3, + "group": "EKF2", + "shortDesc": "Minimum time of arrival delta between non-IMU observations before data is downsampled.\nBaro and Magnetometer data will be averaged before downsampling, other data will be point sampled resulting in loss of information", "min": 10, - "max": 50 + "max": 50, + "units": "ms", + "rebootRequired": true }, { "name": "EKF2_MIN_RNG", "type": "Float", + "default": 0.1, "group": "EKF2", - "category": "Standard", "shortDesc": "Expected range finder reading when on ground", "longDesc": "If the vehicle is on ground, is not moving as determined by the motion test controlled by EKF2_MOVE_TEST and the range finder is returning invalid or no data, then an assumed range value of EKF2_MIN_RNG will be used by the terrain estimator so that a terrain height estimate is avilable at the start of flight in situations where the range finder may be inside its minimum measurements distance when on ground.", - "units": "m", - "default": 0.1, - "decimalPlaces": 2, "min": 0.01, - "max": 3.40282e+38 + "units": "m", + "decimalPlaces": 2 }, { "name": "EKF2_MOVE_TEST", "type": "Float", + "default": 1.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Vehicle movement test threshold", "longDesc": "Scales the threshold tests applied to IMU data used to determine if the vehicle is static or moving. See parameter descriptions for EKF2_GPS_CHECK and EKF2_MAG_TYPE for further information on the functionality affected by this parameter.", - "default": 1, - "decimalPlaces": 1, "min": 0.1, - "max": 10 + "max": 10.0, + "decimalPlaces": 1 }, { "name": "EKF2_NOAID_NOISE", "type": "Float", + "default": 10.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for non-aiding position hold", - "units": "m", - "default": 10, - "decimalPlaces": 1, "min": 0.5, - "max": 50 + "max": 50.0, + "units": "m", + "decimalPlaces": 1 }, { "name": "EKF2_NOAID_TOUT", "type": "Int32", + "default": 5000000, "group": "EKF2", - "category": "Standard", "shortDesc": "Maximum lapsed time from last fusion of measurements that constrain velocity drift before the EKF will report the horizontal nav solution as invalid", - "units": "uSec", - "default": 5e+06, - "decimalPlaces": 3, "min": 500000, - "max": 1e+07 + "max": 10000000, + "units": "us" }, { "name": "EKF2_OF_DELAY", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Optical flow measurement delay relative to IMU measurements Assumes measurement is timestamped at trailing edge of integration period", + "shortDesc": "Optical flow measurement delay relative to IMU measurements\nAssumes measurement is timestamped at trailing edge of integration period", + "min": 0.0, + "max": 300.0, "units": "ms", - "default": 5, - "rebootRequired": true, "decimalPlaces": 1, - "min": 0, - "max": 300 + "rebootRequired": true }, { "name": "EKF2_OF_GATE", "type": "Float", + "default": 3.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Gate size for optical flow fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 1.0, "units": "SD", - "default": 3, - "decimalPlaces": 1, - "min": 1, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_OF_N_MAX", "type": "Float", + "default": 0.5, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for the optical flow sensor", "longDesc": "(when it's reported quality metric is at the minimum set by EKF2_OF_QMIN). The following condition must be met: EKF2_OF_N_MAXN >= EKF2_OF_N_MIN", - "units": "rad/s", - "default": 0.5, - "decimalPlaces": 2, "min": 0.05, - "max": 3.40282e+38 + "units": "rad/s", + "decimalPlaces": 2 }, { "name": "EKF2_OF_N_MIN", "type": "Float", + "default": 0.15, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for the optical flow sensor when it's reported quality metric is at the maximum", - "units": "rad/s", - "default": 0.15, - "decimalPlaces": 2, "min": 0.05, - "max": 3.40282e+38 + "units": "rad/s", + "decimalPlaces": 2 }, { "name": "EKF2_OF_POS_X", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "X position of optical flow focal point in body frame (forward axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_OF_POS_Y", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Y position of optical flow focal point in body frame (right axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_OF_POS_Z", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Z position of optical flow focal point in body frame (down axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_OF_QMIN", "type": "Int32", + "default": 1, "group": "EKF2", - "category": "Standard", "shortDesc": "Optical Flow data will only be used if the sensor reports a quality metric >= EKF2_OF_QMIN", - "default": 1, - "decimalPlaces": 3, "min": 0, "max": 255 }, { "name": "EKF2_PCOEF_XN", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Static pressure position error coefficient for the negative X axis. 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", - "default": 0, - "decimalPlaces": 2, + "shortDesc": "Static pressure position error coefficient for the negative X axis.\nThis is the ratio of static pressure error to dynamic pressure generated by a negative wind relative velocity along the X body axis.\nIf the baro height estimate rises during backwards flight, then this will be a negative number", "min": -0.5, - "max": 0.5 + "max": 0.5, + "decimalPlaces": 2 }, { "name": "EKF2_PCOEF_XP", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Static pressure position error coefficient for the positive X axis 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 forward flight, then this will be a negative number", - "default": 0, - "decimalPlaces": 2, + "shortDesc": "Static pressure position error coefficient for the positive X axis\nThis is the ratio of static pressure error to dynamic pressure generated by a positive wind relative velocity along the X body axis.\nIf the baro height estimate rises during forward flight, then this will be a negative number", "min": -0.5, - "max": 0.5 + "max": 0.5, + "decimalPlaces": 2 }, { "name": "EKF2_PCOEF_YN", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Pressure position error coefficient for the negative Y axis. This is the ratio of static pressure error to dynamic pressure generated by a wind relative velocity along the negative Y (LH) body axis. If the baro height estimate rises during sideways flight to the left, then this will be a negative number", - "default": 0, - "decimalPlaces": 2, + "shortDesc": "Pressure position error coefficient for the negative Y axis.\nThis is the ratio of static pressure error to dynamic pressure generated by a wind relative velocity along the negative Y (LH) body axis.\nIf the baro height estimate rises during sideways flight to the left, then this will be a negative number", "min": -0.5, - "max": 0.5 + "max": 0.5, + "decimalPlaces": 2 }, { "name": "EKF2_PCOEF_YP", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Pressure position error coefficient for the positive Y axis. This is the ratio of static pressure error to dynamic pressure generated by a wind relative velocity along the positive Y (RH) body axis. If the baro height estimate rises during sideways flight to the right, then this will be a negative number", - "default": 0, - "decimalPlaces": 2, + "shortDesc": "Pressure position error coefficient for the positive Y axis.\nThis is the ratio of static pressure error to dynamic pressure generated by a wind relative velocity along the positive Y (RH) body axis.\nIf the baro height estimate rises during sideways flight to the right, then this will be a negative number", "min": -0.5, - "max": 0.5 + "max": 0.5, + "decimalPlaces": 2 }, { "name": "EKF2_PCOEF_Z", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", - "shortDesc": "Static pressure position error coefficient for the Z axis. This is the ratio of static pressure error to dynamic pressure generated by a wind relative velocity along the Z body axis", - "default": 0, - "decimalPlaces": 2, + "shortDesc": "Static pressure position error coefficient for the Z axis.\nThis is the ratio of static pressure error to dynamic pressure generated by a wind relative velocity along the Z body axis", "min": -0.5, - "max": 0.5 + "max": 0.5, + "decimalPlaces": 2 }, { "name": "EKF2_REQ_EPH", "type": "Float", + "default": 3.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Required EPH to use GPS", + "min": 2.0, + "max": 100.0, "units": "m", - "default": 3, - "decimalPlaces": 1, - "min": 2, - "max": 100 + "decimalPlaces": 1 }, { "name": "EKF2_REQ_EPV", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Required EPV to use GPS", + "min": 2.0, + "max": 100.0, "units": "m", - "default": 5, - "decimalPlaces": 1, - "min": 2, - "max": 100 + "decimalPlaces": 1 }, { "name": "EKF2_REQ_GPS_H", "type": "Float", + "default": 10.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Required GPS health time on startup", "longDesc": "Minimum continuous period without GPS failure required to mark a healthy GPS status. It can be reduced to speed up initialization, but it's recommended to keep this unchanged for a vehicle.", + "min": 0.1, "units": "s", - "default": 10, - "rebootRequired": true, "decimalPlaces": 1, - "min": 0.1, - "max": 3.40282e+38 + "rebootRequired": true }, { "name": "EKF2_REQ_HDRIFT", "type": "Float", + "default": 0.1, "group": "EKF2", - "category": "Standard", "shortDesc": "Maximum horizontal drift speed to use GPS", - "units": "m/s", - "default": 0.1, - "decimalPlaces": 2, "min": 0.1, - "max": 1 + "max": 1.0, + "units": "m/s", + "decimalPlaces": 2 }, { "name": "EKF2_REQ_NSATS", "type": "Int32", + "default": 6, "group": "EKF2", - "category": "Standard", "shortDesc": "Required satellite count to use GPS", - "default": 6, - "decimalPlaces": 3, "min": 4, "max": 12 }, { "name": "EKF2_REQ_PDOP", "type": "Float", + "default": 2.5, "group": "EKF2", - "category": "Standard", "shortDesc": "Required PDOP to use GPS", - "default": 2.5, - "decimalPlaces": 1, "min": 1.5, - "max": 5 + "max": 5.0, + "decimalPlaces": 1 }, { "name": "EKF2_REQ_SACC", "type": "Float", + "default": 0.5, "group": "EKF2", - "category": "Standard", "shortDesc": "Required speed accuracy to use GPS", - "units": "m/s", - "default": 0.5, - "decimalPlaces": 2, "min": 0.5, - "max": 5 + "max": 5.0, + "units": "m/s", + "decimalPlaces": 2 }, { "name": "EKF2_REQ_VDRIFT", "type": "Float", + "default": 0.2, "group": "EKF2", - "category": "Standard", "shortDesc": "Maximum vertical drift speed to use GPS", - "units": "m/s", - "default": 0.2, - "decimalPlaces": 2, "min": 0.1, - "max": 1.5 + "max": 1.5, + "units": "m/s", + "decimalPlaces": 2 }, { "name": "EKF2_RNG_AID", "type": "Int32", + "default": 0, "group": "EKF2", - "category": "Standard", "shortDesc": "Range sensor aid", "longDesc": "If this parameter is enabled then the estimator will make use of the range finder measurements to estimate it's height even if range sensor is not the primary height source. It will only do so if conditions for range measurement fusion are met. This enables the range finder to be used during low speed and low altitude operation, eg takeoff and landing, where baro interference from rotor wash is excessive and can corrupt EKF state estimates. It is intended to be used where a vertical takeoff and landing is performed, and horizontal flight does not occur until above EKF2_RNG_A_HMAX. If vehicle motion causes repeated switching between the primary height sensor and range finder, an offset in the local position origin can accumulate. Also range finder measurements are less reliable and can experience unexpected errors. For these reasons, if accurate control of height relative to ground is required, it is recommended to use the MPC_ALT_MODE parameter instead, unless baro errors are severe enough to cause problems with landing and takeoff.", - "default": 0, "values": [ { "value": 0, @@ -4294,2094 +3747,1570 @@ "value": 1, "description": "Range aid enabled" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "EKF2_RNG_A_HMAX", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Maximum absolute altitude (height above ground level) allowed for range aid mode", "longDesc": "If the vehicle absolute altitude exceeds this value then the estimator will not fuse range measurements to estimate it's height. This only applies when range aid mode is activated (EKF2_RNG_AID = enabled).", - "units": "m", - "default": 5, - "decimalPlaces": 3, - "min": 1, - "max": 10 + "min": 1.0, + "max": 10.0, + "units": "m" }, { "name": "EKF2_RNG_A_IGATE", "type": "Float", + "default": 1.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Gate size used for innovation consistency checks for range aid fusion", "longDesc": "A lower value means HAGL needs to be more stable in order to use range finder for height estimation in range aid mode", - "units": "SD", - "default": 1, - "decimalPlaces": 3, "min": 0.1, - "max": 5 + "max": 5.0, + "units": "SD" }, { "name": "EKF2_RNG_A_VMAX", "type": "Float", + "default": 1.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Maximum horizontal velocity allowed for range aid mode", "longDesc": "If the vehicle horizontal speed exceeds this value then the estimator will not fuse range measurements to estimate it's height. This only applies when range aid mode is activated (EKF2_RNG_AID = enabled).", - "units": "m/s", - "default": 1, - "decimalPlaces": 3, "min": 0.1, - "max": 2 + "max": 2.0, + "units": "m/s" }, { "name": "EKF2_RNG_DELAY", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Range finder measurement delay relative to IMU measurements", + "min": 0.0, + "max": 300.0, "units": "ms", - "default": 5, - "rebootRequired": true, "decimalPlaces": 1, - "min": 0, - "max": 300 + "rebootRequired": true }, { "name": "EKF2_RNG_GATE", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Gate size for range finder fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 1.0, "units": "SD", - "default": 5, - "decimalPlaces": 1, - "min": 1, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_RNG_NOISE", "type": "Float", + "default": 0.1, "group": "EKF2", - "category": "Standard", "shortDesc": "Measurement noise for range finder fusion", - "units": "m", - "default": 0.1, - "decimalPlaces": 2, "min": 0.01, - "max": 3.40282e+38 + "units": "m", + "decimalPlaces": 2 }, { "name": "EKF2_RNG_PITCH", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Range sensor pitch offset", - "units": "rad", - "default": 0, - "decimalPlaces": 3, "min": -0.75, - "max": 0.75 + "max": 0.75, + "units": "rad", + "decimalPlaces": 3 }, { "name": "EKF2_RNG_POS_X", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "X position of range finder origin in body frame (forward axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_RNG_POS_Y", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Y position of range finder origin in body frame (right axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_RNG_POS_Z", "type": "Float", + "default": 0.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Z position of range finder origin in body frame (down axis with origin relative to vehicle centre of gravity)", "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 3 }, { "name": "EKF2_RNG_SFE", "type": "Float", + "default": 0.05, "group": "EKF2", - "category": "Standard", "shortDesc": "Range finder range dependant noise scaler", "longDesc": "Specifies the increase in range finder noise with range.", - "units": "m/m", - "default": 0.05, - "decimalPlaces": 3, - "min": 0, - "max": 0.2 + "min": 0.0, + "max": 0.2, + "units": "m/m" }, { "name": "EKF2_TAS_GATE", "type": "Float", + "default": 3.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Gate size for TAS fusion", "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 1.0, "units": "SD", - "default": 3, - "decimalPlaces": 1, - "min": 1, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "EKF2_TAU_POS", "type": "Float", + "default": 0.25, "group": "EKF2", - "category": "Standard", "shortDesc": "Time constant of the position output prediction and smoothing filter. Controls how tightly the output track the EKF states", - "units": "s", - "default": 0.25, - "decimalPlaces": 2, "min": 0.1, - "max": 1 + "max": 1.0, + "units": "s", + "decimalPlaces": 2 }, { "name": "EKF2_TAU_VEL", "type": "Float", + "default": 0.25, "group": "EKF2", - "category": "Standard", "shortDesc": "Time constant of the velocity output prediction and smoothing filter", + "max": 1.0, "units": "s", - "default": 0.25, - "decimalPlaces": 2, - "min": -3.40282e+38, - "max": 1 + "decimalPlaces": 2 }, { "name": "EKF2_TERR_GRAD", "type": "Float", + "default": 0.5, "group": "EKF2", - "category": "Standard", "shortDesc": "Magnitude of terrain gradient", + "min": 0.0, "units": "m/m", - "default": 0.5, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 + "decimalPlaces": 2 }, { "name": "EKF2_TERR_MASK", "type": "Int32", + "default": 3, "group": "EKF2", - "category": "Standard", "shortDesc": "Integer bitmask controlling fusion sources of the terrain estimator", "longDesc": "Set bits in the following positions to enable: 0 : Set to true to use range finder data if available 1 : Set to true to use optical flow data if available", - "default": 3, - "decimalPlaces": 3, "min": 0, - "max": 3 + "max": 3, + "bitmask": [ + { + "index": 0, + "description": "use range finder" + }, + { + "index": 1, + "description": "use optical flow" + } + ] }, { "name": "EKF2_TERR_NOISE", "type": "Float", + "default": 5.0, "group": "EKF2", - "category": "Standard", "shortDesc": "Terrain altitude process noise - accounts for instability in vehicle height estimate", - "units": "m/s", - "default": 5, - "decimalPlaces": 1, "min": 0.5, - "max": 3.40282e+38 + "units": "m/s", + "decimalPlaces": 1 }, { "name": "EKF2_WIND_NOISE", "type": "Float", + "default": 0.1, "group": "EKF2", - "category": "Standard", "shortDesc": "Process noise for wind velocity prediction", - "units": "m/s/s", - "default": 0.1, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0, + "units": "m/s^2", + "decimalPlaces": 3 }, { "name": "EV_TSK_RC_LOSS", "type": "Int32", + "default": 0, "group": "Events", - "category": "Standard", "shortDesc": "RC Loss Alarm", "longDesc": "Enable/disable event task for RC Loss. When enabled, an alarm tune will be played via buzzer or ESCs, if supported. The alarm will sound after a disarm, if the vehicle was previously armed and only if the vehicle had RC signal at some point. Particularly useful for locating crashed drones without a GPS sensor.", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "rebootRequired": true }, { "name": "EV_TSK_STAT_DIS", "type": "Int32", + "default": 0, "group": "Events", - "category": "Standard", "shortDesc": "Status Display", "longDesc": "Enable/disable event task for displaying the vehicle status using arm-mounted LEDs. When enabled and if the vehicle supports it, LEDs will flash indicating various vehicle status changes. Currently PX4 has not implemented any specific status events. -", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "rebootRequired": true }, { - "name": "EXFW_HDNG_P", + "name": "FW_ACRO_X_MAX", "type": "Float", - "group": "Miscellaneous", - "category": "Standard", - "shortDesc": "EXFW_HDNG_P", - "default": 0.1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 90.0, + "group": "FW Attitude Control", + "shortDesc": "Acro body x max rate", + "longDesc": "This is the rate the controller is trying to achieve if the user applies full roll stick input in acro mode.", + "min": 45.0, + "max": 720.0, + "units": "deg" }, { - "name": "EXFW_PITCH_P", + "name": "FW_ACRO_Y_MAX", "type": "Float", - "group": "Miscellaneous", - "category": "Standard", - "shortDesc": "EXFW_PITCH_P", - "default": 0.2, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 90.0, + "group": "FW Attitude Control", + "shortDesc": "Acro body y max rate", + "longDesc": "This is the body y rate the controller is trying to achieve if the user applies full pitch stick input in acro mode.", + "min": 45.0, + "max": 720.0, + "units": "deg" }, { - "name": "EXFW_ROLL_P", + "name": "FW_ACRO_Z_MAX", "type": "Float", - "group": "Miscellaneous", - "category": "Standard", - "shortDesc": "EXFW_ROLL_P", - "default": 0.2, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 45.0, + "group": "FW Attitude Control", + "shortDesc": "Acro body z max rate", + "longDesc": "This is the body z rate the controller is trying to achieve if the user applies full yaw stick input in acro mode.", + "min": 10.0, + "max": 180.0, + "units": "deg" }, { - "name": "FD_ESCS_EN", + "name": "FW_ARSP_MODE", "type": "Int32", - "group": "Failure Detector", - "category": "Standard", - "shortDesc": "Enable checks on ESCs that report their arming state. If enabled, failure detector will verify that all the ESCs have successfully armed when the vehicle has transitioned to the armed state. Timeout for receiving an acknowledgement from the ESCs is 0.3s, if no feedback is received the failure detector will auto disarm the vehicle", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "FD_EXT_ATS_EN", - "type": "Int32", - "group": "Failure Detector", - "category": "Standard", - "shortDesc": "Enable PWM input on AUX5 or MAIN5 (depending on board) for engaging failsafe from an external automatic trigger system (ATS)", - "longDesc": "External ATS is required by ASTM F3322-18.", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "FD_EXT_ATS_TRIG", - "type": "Int32", - "group": "Failure Detector", - "category": "Standard", - "shortDesc": "The PWM threshold from external automatic trigger system for engaging failsafe", - "longDesc": "External ATS is required by ASTM F3322-18.", - "units": "microseconds", - "default": 1900, - "decimalPlaces": 2, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "FD_FAIL_P", - "type": "Int32", - "group": "Failure Detector", - "category": "Standard", - "shortDesc": "FailureDetector Max Pitch", - "longDesc": "Maximum pitch angle before FailureDetector triggers the attitude_failure flag. The flag triggers flight termination (if @CBRK_FLIGHTTERM = 0), which sets outputs to their failsafe values. On takeoff the flag triggers lockdown (irrespective of @CBRK_FLIGHTTERM), which disarms motors but does not set outputs to failsafe values. Setting this parameter to 0 disables the check", - "units": "degrees", - "default": 60, - "decimalPlaces": 3, - "min": 60, - "max": 180 - }, - { - "name": "FD_FAIL_P_TTRI", - "type": "Float", - "group": "Failure Detector", - "category": "Standard", - "shortDesc": "Pitch failure trigger time", - "longDesc": "Seconds (decimal) that pitch has to exceed FD_FAIL_P before being considered as a failure.", - "units": "s", - "default": 0.3, - "decimalPlaces": 2, - "min": 0.02, - "max": 5 - }, - { - "name": "FD_FAIL_R", - "type": "Int32", - "group": "Failure Detector", - "category": "Standard", - "shortDesc": "FailureDetector Max Roll", - "longDesc": "Maximum roll angle before FailureDetector triggers the attitude_failure flag. The flag triggers flight termination (if @CBRK_FLIGHTTERM = 0), which sets outputs to their failsafe values. On takeoff the flag triggers lockdown (irrespective of @CBRK_FLIGHTTERM), which disarms motors but does not set outputs to failsafe values. Setting this parameter to 0 disables the check", - "units": "degrees", - "default": 60, - "decimalPlaces": 3, - "min": 60, - "max": 180 - }, - { - "name": "FD_FAIL_R_TTRI", - "type": "Float", - "group": "Failure Detector", - "category": "Standard", - "shortDesc": "Roll failure trigger time", - "longDesc": "Seconds (decimal) that roll has to exceed FD_FAIL_R before being considered as a failure.", - "units": "s", - "default": 0.3, - "decimalPlaces": 2, - "min": 0.02, - "max": 5 - }, - { - "name": "FW_ACRO_X_MAX", - "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Acro body x max rate", - "longDesc": "This is the rate the controller is trying to achieve if the user applies full roll stick input in acro mode.", - "units": "degrees", - "default": 90, - "decimalPlaces": 3, - "min": 45, - "max": 720 - }, - { - "name": "FW_ACRO_Y_MAX", - "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Acro body y max rate", - "longDesc": "This is the body y rate the controller is trying to achieve if the user applies full pitch stick input in acro mode.", - "units": "degrees", - "default": 90, - "decimalPlaces": 3, - "min": 45, - "max": 720 - }, - { - "name": "FW_ACRO_Z_MAX", - "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Acro body z max rate", - "longDesc": "This is the body z rate the controller is trying to achieve if the user applies full yaw stick input in acro mode.", - "units": "degrees", - "default": 45, - "decimalPlaces": 3, - "min": 10, - "max": 180 - }, - { - "name": "FW_AIRSPD_MAX", - "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Maximum Airspeed", - "longDesc": "If the airspeed is above this value, the TECS controller will try to decrease airspeed more aggressively.", - "units": "m/s", - "default": 20, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 40 - }, - { - "name": "FW_AIRSPD_MIN", - "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Minimum Airspeed", - "longDesc": "If the airspeed falls below this value, the TECS controller will try to increase airspeed more aggressively.", - "units": "m/s", - "default": 10, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 40 - }, - { - "name": "FW_AIRSPD_TRIM", - "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Cruise Airspeed", - "longDesc": "The fixed wing controller tries to fly at this airspeed.", - "units": "m/s", - "default": 15, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 40 - }, - { - "name": "FW_ARSP_MODE", - "type": "Int32", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Airspeed mode", - "longDesc": "For small wings or VTOL without airspeed sensor this parameter can be used to enable flying without an airspeed reading", - "default": 0, - "values": [ - { - "value": 0, - "description": "Normal (use airspeed if available)" - }, - { - "value": 1, - "description": "Airspeed disabled" - } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "default": 0, + "group": "FW Attitude Control", + "shortDesc": "Airspeed mode", + "longDesc": "For small wings or VTOL without airspeed sensor this parameter can be used to enable flying without an airspeed reading", + "values": [ + { + "value": 0, + "description": "Normal (use airspeed if available)" + }, + { + "value": 1, + "description": "Airspeed disabled" + } + ] }, { "name": "FW_ARSP_SCALE_EN", "type": "Int32", + "default": 1, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Enable airspeed scaling", - "longDesc": "This enables a logic that automatically adjusts the output of the rate controller to take into account the real torque produced by an aerodynamic control surface given the current deviation from the trim airspeed (FW_AIRSPD_TRIM). Enable when using aerodynamic control surfaces (e.g.: plane) Disable when using rotor wings (e.g.: autogyro)", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "This enables a logic that automatically adjusts the output of the rate controller to take into account the real torque produced by an aerodynamic control surface given the current deviation from the trim airspeed (FW_AIRSPD_TRIM). Enable when using aerodynamic control surfaces (e.g.: plane) Disable when using rotor wings (e.g.: autogyro)" }, { "name": "FW_BAT_SCALE_EN", "type": "Int32", + "default": 0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Whether to scale throttle by battery power level", - "longDesc": "This compensates for voltage drop of the battery over time by attempting to normalize performance across the operating range of the battery. The fixed wing should constantly behave as if it was fully charged with reduced max thrust at lower battery percentages. i.e. if cruise speed is at 0.5 throttle at 100% battery, it will still be 0.5 at 60% battery.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "FW_CLMBOUT_DIFF", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Climbout Altitude difference", - "longDesc": "If the altitude error exceeds this parameter, the system will climb out with maximum throttle and minimum airspeed until it is closer than this distance to the desired altitude. Mostly used for takeoff waypoints / modes. Set to 0 to disable climbout mode (not recommended).", - "units": "m", - "default": 10, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 150 + "longDesc": "This compensates for voltage drop of the battery over time by attempting to normalize performance across the operating range of the battery. The fixed wing should constantly behave as if it was fully charged with reduced max thrust at lower battery percentages. i.e. if cruise speed is at 0.5 throttle at 100% battery, it will still be 0.5 at 60% battery." }, { "name": "FW_DTRIM_P_FLPS", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Pitch trim increment for flaps configuration", "longDesc": "This increment is added to the pitch trim whenever flaps are fully deployed.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, "min": -0.25, - "max": 0.25 + "max": 0.25, + "decimalPlaces": 2, + "increment": 0.01 }, { "name": "FW_DTRIM_P_VMAX", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Pitch trim increment at maximum airspeed", "longDesc": "This increment is added to TRIM_PITCH when airspeed is FW_AIRSPD_MAX.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, "min": -0.25, - "max": 0.25 + "max": 0.25, + "decimalPlaces": 2, + "increment": 0.01 }, { "name": "FW_DTRIM_P_VMIN", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Pitch trim increment at minimum airspeed", "longDesc": "This increment is added to TRIM_PITCH when airspeed is FW_AIRSPD_MIN.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, "min": -0.25, - "max": 0.25 + "max": 0.25, + "decimalPlaces": 2, + "increment": 0.01 }, { "name": "FW_DTRIM_R_FLPS", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Roll trim increment for flaps configuration", "longDesc": "This increment is added to TRIM_ROLL whenever flaps are fully deployed.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, "min": -0.25, - "max": 0.25 + "max": 0.25, + "decimalPlaces": 2, + "increment": 0.01 }, { "name": "FW_DTRIM_R_VMAX", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Roll trim increment at maximum airspeed", "longDesc": "This increment is added to TRIM_ROLL when airspeed is FW_AIRSPD_MAX.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, "min": -0.25, - "max": 0.25 + "max": 0.25, + "decimalPlaces": 2, + "increment": 0.01 }, { "name": "FW_DTRIM_R_VMIN", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Roll trim increment at minimum airspeed", "longDesc": "This increment is added to TRIM_ROLL when airspeed is FW_AIRSPD_MIN.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, "min": -0.25, - "max": 0.25 + "max": 0.25, + "decimalPlaces": 2, + "increment": 0.01 }, { "name": "FW_DTRIM_Y_VMAX", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Yaw trim increment at maximum airspeed", "longDesc": "This increment is added to TRIM_YAW when airspeed is FW_AIRSPD_MAX.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, "min": -0.25, - "max": 0.25 + "max": 0.25, + "decimalPlaces": 2, + "increment": 0.01 }, { "name": "FW_DTRIM_Y_VMIN", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Yaw trim increment at minimum airspeed", "longDesc": "This increment is added to TRIM_YAW when airspeed is FW_AIRSPD_MIN.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, "min": -0.25, - "max": 0.25 + "max": 0.25, + "decimalPlaces": 2, + "increment": 0.01 }, { "name": "FW_FLAPERON_SCL", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Scale factor for flaperons", + "min": 0.0, + "max": 1.0, "units": "norm", - "default": 0, - "increment": 0.01, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.01 }, { "name": "FW_FLAPS_LND_SCL", "type": "Float", + "default": 1.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Flaps setting during landing", "longDesc": "Sets a fraction of full flaps (FW_FLAPS_SCL) during landing", + "min": 0.0, + "max": 1.0, "units": "norm", - "default": 1, - "increment": 0.01, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.01 }, { "name": "FW_FLAPS_SCL", "type": "Float", + "default": 1.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Scale factor for flaps", + "min": 0.0, + "max": 1.0, "units": "norm", - "default": 1, - "increment": 0.01, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.01 }, { "name": "FW_FLAPS_TO_SCL", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Flaps setting during take-off", "longDesc": "Sets a fraction of full flaps (FW_FLAPS_SCL) during take-off", + "min": 0.0, + "max": 1.0, "units": "norm", - "default": 0, - "increment": 0.01, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.01 }, { - "name": "FW_GND_SPD_MIN", + "name": "FW_MAN_P_MAX", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Minimum groundspeed", - "longDesc": "The controller will increase the commanded airspeed to maintain this minimum groundspeed to the next waypoint.", - "units": "m/s", - "default": 5, - "increment": 0.5, + "default": 45.0, + "group": "FW Attitude Control", + "shortDesc": "Max manual pitch", + "longDesc": "Max pitch for manual control in attitude stabilized mode", + "min": 0.0, + "max": 90.0, + "units": "deg", "decimalPlaces": 1, - "min": 0, - "max": 40 + "increment": 0.5 }, { - "name": "FW_L1_DAMPING", + "name": "FW_MAN_P_SC", "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "L1 damping", - "longDesc": "Damping factor for L1 control.", - "default": 0.75, - "increment": 0.05, + "default": 1.0, + "group": "FW Attitude Control", + "shortDesc": "Manual pitch scale", + "longDesc": "Scale factor applied to the desired pitch actuator command in full manual mode. This parameter allows to adjust the throws of the control surfaces.", + "min": 0.0, + "units": "norm", "decimalPlaces": 2, - "min": 0.6, - "max": 0.9 + "increment": 0.01 }, { - "name": "FW_L1_PERIOD", + "name": "FW_MAN_R_MAX", "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "L1 period", - "longDesc": "This is the L1 distance and defines the tracking point ahead of the aircraft its following. A value of 18-25 meters works for most aircraft. Shorten slowly during tuning until response is sharp without oscillation.", - "units": "m", - "default": 20, - "increment": 0.5, + "default": 45.0, + "group": "FW Attitude Control", + "shortDesc": "Max manual roll", + "longDesc": "Max roll for manual control in attitude stabilized mode", + "min": 0.0, + "max": 90.0, + "units": "deg", "decimalPlaces": 1, - "min": 12, - "max": 50 + "increment": 0.5 }, { - "name": "FW_L1_R_SLEW_MAX", + "name": "FW_MAN_R_SC", "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "L1 controller roll slew rate limit", - "longDesc": "The maxium change in roll angle setpoint per second.", - "units": "deg/s", - "default": 90, - "increment": 1, - "decimalPlaces": 0, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "FW_LND_AIRSPD_SC", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Min. airspeed scaling factor for landing", - "longDesc": "Multiplying this factor with the minimum airspeed of the plane gives the target airspeed the landing approach. FW_AIRSPD_MIN * FW_LND_AIRSPD_SC", - "units": "norm", - "default": 1.3, - "increment": 0.01, - "decimalPlaces": 2, - "min": 1, - "max": 1.5 - }, - { - "name": "FW_LND_ANG", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Landing slope angle", - "units": "deg", - "default": 5, - "increment": 0.5, - "decimalPlaces": 1, - "min": 1, - "max": 15 - }, - { - "name": "FW_LND_EARLYCFG", - "type": "Int32", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Early landing configuration deployment", - "longDesc": "When disabled, the landing configuration (flaps, landing airspeed, etc.) is only activated on the final approach to landing. When enabled, it is already activated when entering the final loiter-down (loiter-to-alt) waypoint before the landing approach. This shifts the (often large) altitude and airspeed errors caused by the configuration change away from the ground such that these are not so critical. It also gives the controller enough time to adapt to the new configuration such that the landing approach starts with a cleaner initial state.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "FW_LND_FLALT", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Landing flare altitude (relative to landing altitude)", - "units": "m", - "default": 3, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 25 - }, - { - "name": "FW_LND_FL_PMAX", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Flare, maximum pitch", - "longDesc": "Maximum pitch during flare, a positive sign means nose up Applied once FW_LND_FLALT is reached", - "units": "deg", - "default": 15, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 45 - }, - { - "name": "FW_LND_FL_PMIN", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Flare, minimum pitch", - "longDesc": "Minimum pitch during flare, a positive sign means nose up Applied once FW_LND_FLALT is reached", - "units": "deg", - "default": 2.5, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 15 - }, - { - "name": "FW_LND_HHDIST", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Landing heading hold horizontal distance. Set to 0 to disable heading hold", - "units": "m", - "default": 15, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 30 - }, - { - "name": "FW_LND_HVIRT", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "FW_LND_HVIRT", - "units": "m", - "default": 10, - "increment": 0.5, - "decimalPlaces": 1, - "min": 1, - "max": 15 - }, - { - "name": "FW_LND_THRTC_SC", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Throttle time constant factor for landing", - "longDesc": "Set this parameter to less than 1.0 to make the TECS throttle loop react faster during landing than during normal flight (i.e. giving efficiency and low motor wear at high altitudes but control accuracy during landing). During landing, the TECS throttle time constant (FW_T_THRO_CONST) is multiplied by this value.", - "default": 1, - "increment": 0.1, - "decimalPlaces": 1, - "min": 0.2, - "max": 1 - }, - { - "name": "FW_LND_TLALT", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Landing throttle limit altitude (relative landing altitude)", - "longDesc": "Default of -1.0 lets the system default to applying throttle limiting at 2/3 of the flare altitude.", - "units": "m", - "default": -1, - "increment": 0.5, - "decimalPlaces": 1, - "min": -1, - "max": 30 - }, - { - "name": "FW_LND_USETER", - "type": "Int32", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Use terrain estimate during landing", - "longDesc": "This is turned off by default and a waypoint or return altitude is normally used (or sea level for an arbitrary land position).", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "FW_MAN_P_MAX", - "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Max manual pitch", - "longDesc": "Max pitch for manual control in attitude stabilized mode", - "units": "deg", - "default": 45, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 90 - }, - { - "name": "FW_MAN_P_SC", - "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Manual pitch scale", - "longDesc": "Scale factor applied to the desired pitch actuator command in full manual mode. This parameter allows to adjust the throws of the control surfaces.", - "units": "norm", - "default": 1, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "FW_MAN_R_MAX", - "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Max manual roll", - "longDesc": "Max roll for manual control in attitude stabilized mode", - "units": "deg", - "default": 45, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 90 - }, - { - "name": "FW_MAN_R_SC", - "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Manual roll scale", - "longDesc": "Scale factor applied to the desired roll actuator command in full manual mode. This parameter allows to adjust the throws of the control surfaces.", - "units": "norm", - "default": 1, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": 1.0, + "group": "FW Attitude Control", + "shortDesc": "Manual roll scale", + "longDesc": "Scale factor applied to the desired roll actuator command in full manual mode. This parameter allows to adjust the throws of the control surfaces.", + "min": 0.0, + "max": 1.0, + "units": "norm", + "decimalPlaces": 2, + "increment": 0.01 }, { "name": "FW_MAN_Y_SC", "type": "Float", + "default": 1.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Manual yaw scale", "longDesc": "Scale factor applied to the desired yaw actuator command in full manual mode. This parameter allows to adjust the throws of the control surfaces.", + "min": 0.0, "units": "norm", - "default": 1, - "increment": 0.01, "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 + "increment": 0.01 }, { "name": "FW_PR_FF", "type": "Float", + "default": 0.5, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Pitch rate feed forward", "longDesc": "Direct feed forward from rate setpoint to control surface output", + "min": 0.0, + "max": 10.0, "units": "%/rad/s", - "default": 0.5, - "increment": 0.05, "decimalPlaces": 2, - "min": 0, - "max": 10 + "increment": 0.05 }, { "name": "FW_PR_I", "type": "Float", + "default": 0.1, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Pitch rate integrator gain", "longDesc": "This gain defines how much control response will result out of a steady state error. It trims any constant error.", + "min": 0.005, + "max": 0.5, "units": "%/rad", - "default": 0.1, - "increment": 0.005, "decimalPlaces": 3, - "min": 0.005, - "max": 0.5 + "increment": 0.005 }, { "name": "FW_PR_IMAX", "type": "Float", + "default": 0.4, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Pitch rate integrator limit", "longDesc": "The portion of the integrator part in the control surface deflection is limited to this value", - "default": 0.4, - "increment": 0.05, + "min": 0.0, + "max": 1.0, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.05 }, { "name": "FW_PR_P", "type": "Float", + "default": 0.08, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Pitch rate proportional gain", "longDesc": "This defines how much the elevator input will be commanded depending on the current body angular rate error.", + "min": 0.005, + "max": 1.0, "units": "%/rad/s", - "default": 0.08, - "increment": 0.005, "decimalPlaces": 3, - "min": 0.005, - "max": 1 + "increment": 0.005 }, { "name": "FW_PSP_OFF", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Pitch setpoint offset", "longDesc": "An airframe specific offset of the pitch setpoint in degrees, the value is added to the pitch setpoint and should correspond to the typical cruise speed of the airframe.", + "min": -90.0, + "max": 90.0, "units": "deg", - "default": 0, - "increment": 0.5, - "decimalPlaces": 1, - "min": -90, - "max": 90 - }, - { - "name": "FW_P_LIM_MAX", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Positive pitch limit", - "longDesc": "The maximum positive pitch the controller will output.", - "units": "deg", - "default": 45, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 60 - }, - { - "name": "FW_P_LIM_MIN", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Negative pitch limit", - "longDesc": "The minimum negative pitch the controller will output.", - "units": "deg", - "default": -45, - "increment": 0.5, "decimalPlaces": 1, - "min": -60, - "max": 0 + "increment": 0.5 }, { "name": "FW_P_RMAX_NEG", "type": "Float", + "default": 60.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Maximum negative / down pitch rate", "longDesc": "This limits the maximum pitch down up angular rate the controller will output (in degrees per second).", + "min": 0.0, + "max": 90.0, "units": "deg/s", - "default": 60, - "increment": 0.5, "decimalPlaces": 1, - "min": 0, - "max": 90 + "increment": 0.5 }, { "name": "FW_P_RMAX_POS", "type": "Float", + "default": 60.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Maximum positive / up pitch rate", "longDesc": "This limits the maximum pitch up angular rate the controller will output (in degrees per second).", + "min": 0.0, + "max": 90.0, "units": "deg/s", - "default": 60, - "increment": 0.5, "decimalPlaces": 1, - "min": 0, - "max": 90 + "increment": 0.5 }, { "name": "FW_P_TC", "type": "Float", + "default": 0.4, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Attitude pitch time constant", "longDesc": "This defines the latency between a pitch step input and the achieved setpoint (inverse to a P gain). Half a second is a good start value and fits for most average systems. Smaller systems may require smaller values, but as this will wear out servos faster, the value should only be decreased as needed.", + "min": 0.2, + "max": 1.0, "units": "s", - "default": 0.4, - "increment": 0.05, "decimalPlaces": 2, - "min": 0.2, - "max": 1 + "increment": 0.05 }, { "name": "FW_RATT_TH", "type": "Float", + "default": 0.8, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Threshold for Rattitude mode", "longDesc": "Manual input needed in order to override attitude control rate setpoints and instead pass manual stick inputs as rate setpoints", - "default": 0.8, - "increment": 0.01, + "min": 0.0, + "max": 1.0, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.01 }, { "name": "FW_RLL_TO_YAW_FF", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Roll control to yaw control feedforward gain", "longDesc": "This gain can be used to counteract the \"adverse yaw\" effect for fixed wings. When the plane enters a roll it will tend to yaw the nose out of the turn. This gain enables the use of a yaw actuator (rudder, airbrakes, ...) to counteract this effect.", - "default": 0, - "increment": 0.01, + "min": 0.0, "decimalPlaces": 1, - "min": 0, - "max": 3.40282e+38 + "increment": 0.01 }, { "name": "FW_RR_FF", "type": "Float", + "default": 0.5, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Roll rate feed forward", "longDesc": "Direct feed forward from rate setpoint to control surface output. Use this to obtain a tigher response of the controller without introducing noise amplification.", + "min": 0.0, + "max": 10.0, "units": "%/rad/s", - "default": 0.5, - "increment": 0.05, "decimalPlaces": 2, - "min": 0, - "max": 10 + "increment": 0.05 }, { "name": "FW_RR_I", "type": "Float", + "default": 0.1, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Roll rate integrator Gain", "longDesc": "This gain defines how much control response will result out of a steady state error. It trims any constant error.", + "min": 0.005, + "max": 0.2, "units": "%/rad", - "default": 0.1, - "increment": 0.005, "decimalPlaces": 3, - "min": 0.005, - "max": 0.2 + "increment": 0.005 }, { "name": "FW_RR_IMAX", "type": "Float", + "default": 0.2, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Roll integrator anti-windup", "longDesc": "The portion of the integrator part in the control surface deflection is limited to this value.", - "default": 0.2, - "increment": 0.05, + "min": 0.0, + "max": 1.0, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.05 }, { "name": "FW_RR_P", "type": "Float", + "default": 0.05, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Roll rate proportional Gain", "longDesc": "This defines how much the aileron input will be commanded depending on the current body angular rate error.", + "min": 0.005, + "max": 1.0, "units": "%/rad/s", - "default": 0.05, - "increment": 0.005, "decimalPlaces": 3, - "min": 0.005, - "max": 1 + "increment": 0.005 }, { "name": "FW_RSP_OFF", "type": "Float", + "default": 0.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Roll setpoint offset", "longDesc": "An airframe specific offset of the roll setpoint in degrees, the value is added to the roll setpoint and should correspond to the typical cruise speed of the airframe.", + "min": -90.0, + "max": 90.0, "units": "deg", - "default": 0, - "increment": 0.5, - "decimalPlaces": 1, - "min": -90, - "max": 90 - }, - { - "name": "FW_R_LIM", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Controller roll limit", - "longDesc": "The maximum roll the controller will output.", - "units": "deg", - "default": 50, - "increment": 0.5, "decimalPlaces": 1, - "min": 35, - "max": 65 + "increment": 0.5 }, { "name": "FW_R_RMAX", "type": "Float", + "default": 70.0, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Maximum roll rate", "longDesc": "This limits the maximum roll rate the controller will output (in degrees per second).", + "min": 0.0, + "max": 90.0, "units": "deg/s", - "default": 70, - "increment": 0.5, "decimalPlaces": 1, - "min": 0, - "max": 90 + "increment": 0.5 }, { "name": "FW_R_TC", "type": "Float", + "default": 0.4, "group": "FW Attitude Control", - "category": "Standard", "shortDesc": "Attitude Roll Time Constant", "longDesc": "This defines the latency between a roll step input and the achieved setpoint (inverse to a P gain). Half a second is a good start value and fits for most average systems. Smaller systems may require smaller values, but as this will wear out servos faster, the value should only be decreased as needed.", + "min": 0.4, + "max": 1.0, "units": "s", - "default": 0.4, - "increment": 0.05, "decimalPlaces": 2, - "min": 0.4, - "max": 1 + "increment": 0.05 }, { - "name": "FW_THR_ALT_SCL", + "name": "FW_WR_FF", "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Scale throttle by pressure change", - "longDesc": "Automatically adjust throttle to account for decreased air density at higher altitudes. Start with a scale factor of 1.0 and adjust for different propulsion systems. When flying without airspeed sensor this will help to keep a constant performance over large altitude ranges. The default value of 0 will disable scaling.", - "default": 0, - "increment": 0.1, - "decimalPlaces": 1, - "min": 0, - "max": 10 + "default": 0.2, + "group": "FW Attitude Control", + "shortDesc": "Wheel steering rate feed forward", + "longDesc": "Direct feed forward from rate setpoint to control surface output", + "min": 0.0, + "max": 10.0, + "units": "%/rad/s", + "decimalPlaces": 2, + "increment": 0.05 }, { - "name": "FW_THR_CRUISE", + "name": "FW_WR_I", "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Cruise throttle", - "longDesc": "This is the throttle setting required to achieve the desired cruise speed. Most airframes have a value of 0.5-0.7.", - "units": "norm", - "default": 0.6, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": 0.1, + "group": "FW Attitude Control", + "shortDesc": "Wheel steering rate integrator gain", + "longDesc": "This gain defines how much control response will result out of a steady state error. It trims any constant error.", + "min": 0.005, + "max": 0.5, + "units": "%/rad", + "decimalPlaces": 3, + "increment": 0.005 }, { - "name": "FW_THR_IDLE", + "name": "FW_WR_IMAX", "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Idle throttle", - "longDesc": "This is the minimum throttle while on the ground For aircraft with internal combustion engine this parameter should be set above desired idle rpm.", - "units": "norm", - "default": 0.15, - "increment": 0.01, + "default": 1.0, + "group": "FW Attitude Control", + "shortDesc": "Wheel steering rate integrator limit", + "longDesc": "The portion of the integrator part in the control surface deflection is limited to this value", + "min": 0.0, + "max": 1.0, "decimalPlaces": 2, - "min": 0, - "max": 0.4 + "increment": 0.05 }, { - "name": "FW_THR_LND_MAX", + "name": "FW_WR_P", "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Throttle limit during landing below throttle limit altitude", - "longDesc": "During the flare of the autonomous landing process, this value will be set as throttle limit when the aircraft altitude is below FW_LND_TLALT.", - "units": "norm", - "default": 1, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": 0.5, + "group": "FW Attitude Control", + "shortDesc": "Wheel steering rate proportional gain", + "longDesc": "This defines how much the wheel steering input will be commanded depending on the current body angular rate error.", + "min": 0.005, + "max": 1.0, + "units": "%/rad/s", + "decimalPlaces": 3, + "increment": 0.005 }, { - "name": "FW_THR_MAX", - "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Throttle limit max", - "longDesc": "This is the maximum throttle % that can be used by the controller. For overpowered aircraft, this should be reduced to a value that provides sufficient thrust to climb at the maximum pitch angle PTCH_MAX.", - "units": "norm", - "default": 1, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "name": "FW_W_EN", + "type": "Int32", + "default": 0, + "group": "FW Attitude Control", + "shortDesc": "Enable wheel steering controller" }, { - "name": "FW_THR_MIN", + "name": "FW_W_RMAX", "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Throttle limit min", - "longDesc": "This is the minimum throttle % that can be used by the controller. For electric aircraft this will normally be set to zero, but can be set to a small non-zero value if a folding prop is fitted to prevent the prop from folding and unfolding repeatedly in-flight or to provide some aerodynamic drag from a turning prop to improve the descent rate. For aircraft with internal combustion engine this parameter should be set for desired idle rpm.", - "units": "norm", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": 30.0, + "group": "FW Attitude Control", + "shortDesc": "Maximum wheel steering rate", + "longDesc": "This limits the maximum wheel steering rate the controller will output (in degrees per second).", + "min": 0.0, + "max": 90.0, + "units": "deg/s", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "FW_THR_SLEW_MAX", + "name": "FW_YR_FF", "type": "Float", - "group": "FW L1 Control", - "category": "Standard", - "shortDesc": "Throttle max slew rate", - "longDesc": "Maximum slew rate for the commanded throttle", - "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "default": 0.3, + "group": "FW Attitude Control", + "shortDesc": "Yaw rate feed forward", + "longDesc": "Direct feed forward from rate setpoint to control surface output", + "min": 0.0, + "max": 10.0, + "units": "%/rad/s", + "decimalPlaces": 2, + "increment": 0.05 }, { - "name": "FW_T_CLMB_MAX", + "name": "FW_YR_I", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Maximum climb rate", - "longDesc": "This is the best climb rate that the aircraft can achieve with the throttle set to THR_MAX and the airspeed set to the default value. For electric aircraft make sure this number can be achieved towards the end of flight when the battery voltage has reduced. The setting of this parameter can be checked by commanding a positive altitude change of 100m in loiter, RTL or guided mode. If the throttle required to climb is close to THR_MAX and the aircraft is maintaining airspeed, then this parameter is set correctly. If the airspeed starts to reduce, then the parameter is set to high, and if the throttle demand required to climb and maintain speed is noticeably less than FW_THR_MAX, then either FW_T_CLMB_MAX should be increased or FW_THR_MAX reduced.", - "units": "m/s", - "default": 5, - "increment": 0.5, + "default": 0.1, + "group": "FW Attitude Control", + "shortDesc": "Yaw rate integrator gain", + "longDesc": "This gain defines how much control response will result out of a steady state error. It trims any constant error.", + "min": 0.0, + "max": 50.0, + "units": "%/rad", "decimalPlaces": 1, - "min": 1, - "max": 15 + "increment": 0.5 }, { - "name": "FW_T_HRATE_FF", + "name": "FW_YR_IMAX", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Height rate feed forward", - "default": 0.8, - "increment": 0.05, + "default": 0.2, + "group": "FW Attitude Control", + "shortDesc": "Yaw rate integrator limit", + "longDesc": "The portion of the integrator part in the control surface deflection is limited to this value", + "min": 0.0, + "max": 1.0, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.05 }, { - "name": "FW_T_HRATE_P", + "name": "FW_YR_P", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Height rate proportional factor", "default": 0.05, - "increment": 0.05, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "group": "FW Attitude Control", + "shortDesc": "Yaw rate proportional gain", + "longDesc": "This defines how much the rudder input will be commanded depending on the current body angular rate error.", + "min": 0.005, + "max": 1.0, + "units": "%/rad/s", + "decimalPlaces": 3, + "increment": 0.005 }, { - "name": "FW_T_INTEG_GAIN", + "name": "FW_Y_RMAX", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Integrator gain", - "longDesc": "This is the integrator gain on the control loop. Increasing this gain increases the speed at which speed and height offsets are trimmed out, but reduces damping and increases overshoot. Set this value to zero to completely disable all integrator action.", - "default": 0.1, - "increment": 0.05, - "decimalPlaces": 2, - "min": 0, - "max": 2 + "default": 50.0, + "group": "FW Attitude Control", + "shortDesc": "Maximum yaw rate", + "longDesc": "This limits the maximum yaw rate the controller will output (in degrees per second).", + "min": 0.0, + "max": 90.0, + "units": "deg/s", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "FW_T_PTCH_DAMP", + "name": "FW_CLMBOUT_DIFF", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Pitch damping factor", - "longDesc": "This is the damping gain for the pitch demand loop. Increase to add damping to correct for oscillations in height. The default value of 0.0 will work well provided the pitch to servo controller has been tuned properly.", - "default": 0, - "increment": 0.1, + "default": 10.0, + "group": "FW L1 Control", + "shortDesc": "Climbout Altitude difference", + "longDesc": "If the altitude error exceeds this parameter, the system will climb out with maximum throttle and minimum airspeed until it is closer than this distance to the desired altitude. Mostly used for takeoff waypoints / modes. Set to 0 to disable climbout mode (not recommended).", + "min": 0.0, + "max": 150.0, + "units": "m", "decimalPlaces": 1, - "min": 0, - "max": 2 + "increment": 0.5 }, { - "name": "FW_T_RLL2THR", + "name": "FW_L1_DAMPING", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Roll -> Throttle feedforward", - "longDesc": "Increasing this gain turn increases the amount of throttle that will be used to compensate for the additional drag created by turning. Ideally this should be set to approximately 10 x the extra sink rate in m/s created by a 45 degree bank turn. Increase this gain if the aircraft initially loses energy in turns and reduce if the aircraft initially gains energy in turns. Efficient high aspect-ratio aircraft (eg powered sailplanes) can use a lower value, whereas inefficient low aspect-ratio models (eg delta wings) can use a higher value.", - "default": 15, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 20 + "default": 0.75, + "group": "FW L1 Control", + "shortDesc": "L1 damping", + "longDesc": "Damping factor for L1 control.", + "min": 0.6, + "max": 0.9, + "decimalPlaces": 2, + "increment": 0.05 }, { - "name": "FW_T_SINK_MAX", + "name": "FW_L1_PERIOD", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Maximum descent rate", - "longDesc": "This sets the maximum descent rate that the controller will use. If this value is too large, the aircraft can over-speed on descent. This should be set to a value that can be achieved without exceeding the lower pitch angle limit and without over-speeding the aircraft.", - "units": "m/s", - "default": 5, - "increment": 0.5, + "default": 20.0, + "group": "FW L1 Control", + "shortDesc": "L1 period", + "longDesc": "This is the L1 distance and defines the tracking point ahead of the aircraft its following. A value of 18-25 meters works for most aircraft. Shorten slowly during tuning until response is sharp without oscillation.", + "min": 12.0, + "max": 50.0, + "units": "m", "decimalPlaces": 1, - "min": 1, - "max": 15 + "increment": 0.5 }, { - "name": "FW_T_SINK_MIN", + "name": "FW_L1_R_SLEW_MAX", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Minimum descent rate", - "longDesc": "This is the sink rate of the aircraft with the throttle set to THR_MIN and flown at the same airspeed as used to measure FW_T_CLMB_MAX.", - "units": "m/s", - "default": 2, - "increment": 0.5, - "decimalPlaces": 1, - "min": 1, - "max": 5 + "default": 90.0, + "group": "FW L1 Control", + "shortDesc": "L1 controller roll slew rate limit", + "longDesc": "The maxium change in roll angle setpoint per second.", + "min": 0.0, + "units": "deg/s", + "increment": 1.0 }, { - "name": "FW_T_SPDWEIGHT", + "name": "FW_LND_AIRSPD_SC", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Speed <--> Altitude priority", - "longDesc": "This parameter adjusts the amount of weighting that the pitch control applies to speed vs height errors. Setting it to 0.0 will cause the pitch control to control height and ignore speed errors. This will normally improve height accuracy but give larger airspeed errors. Setting it to 2.0 will cause the pitch control loop to control speed and ignore height errors. This will normally reduce airspeed errors, but give larger height errors. The default value of 1.0 allows the pitch control to simultaneously control height and speed. Note to Glider Pilots - set this parameter to 2.0 (The glider will adjust its pitch angle to maintain airspeed, ignoring changes in height).", - "default": 1, - "increment": 1, - "decimalPlaces": 1, - "min": 0, - "max": 2 + "default": 1.3, + "group": "FW L1 Control", + "shortDesc": "Min. airspeed scaling factor for landing", + "longDesc": "Multiplying this factor with the minimum airspeed of the plane gives the target airspeed the landing approach. FW_AIRSPD_MIN * FW_LND_AIRSPD_SC", + "min": 1.0, + "max": 1.5, + "units": "norm", + "decimalPlaces": 2, + "increment": 0.01 }, { - "name": "FW_T_SPD_OMEGA", + "name": "FW_LND_ANG", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Complementary filter \"omega\" parameter for speed", - "longDesc": "This is the cross-over frequency (in radians/second) of the complementary filter used to fuse longitudinal acceleration and airspeed to obtain an improved airspeed estimate. Increasing this frequency weights the solution more towards use of the airspeed sensor, whilst reducing it weights the solution more towards use of the accelerometer data.", - "units": "rad/s", - "default": 2, - "increment": 0.5, + "default": 5.0, + "group": "FW L1 Control", + "shortDesc": "Landing slope angle", + "min": 1.0, + "max": 15.0, + "units": "deg", "decimalPlaces": 1, - "min": 1, - "max": 10 + "increment": 0.5 }, { - "name": "FW_T_SRATE_P", - "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Speed rate P factor", - "default": 0.02, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 2 + "name": "FW_LND_EARLYCFG", + "type": "Int32", + "default": 0, + "group": "FW L1 Control", + "shortDesc": "Early landing configuration deployment", + "longDesc": "When disabled, the landing configuration (flaps, landing airspeed, etc.) is only activated on the final approach to landing. When enabled, it is already activated when entering the final loiter-down (loiter-to-alt) waypoint before the landing approach. This shifts the (often large) altitude and airspeed errors caused by the configuration change away from the ground such that these are not so critical. It also gives the controller enough time to adapt to the new configuration such that the landing approach starts with a cleaner initial state." }, { - "name": "FW_T_THRO_CONST", + "name": "FW_LND_FLALT", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "TECS Throttle time constant", - "longDesc": "This is the time constant of the TECS throttle control algorithm (in seconds). Smaller values make it faster to respond, larger values make it slower to respond.", - "units": "s", - "default": 8, - "increment": 0.5, + "default": 3.0, + "group": "FW L1 Control", + "shortDesc": "Landing flare altitude (relative to landing altitude)", + "min": 0.0, + "max": 25.0, + "units": "m", "decimalPlaces": 1, - "min": 1, - "max": 10 + "increment": 0.5 }, { - "name": "FW_T_THR_DAMP", + "name": "FW_LND_FL_PMAX", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Throttle damping factor", - "longDesc": "This is the damping gain for the throttle demand loop. Increase to add damping to correct for oscillations in speed and height.", - "default": 0.5, - "increment": 0.1, + "default": 15.0, + "group": "FW L1 Control", + "shortDesc": "Flare, maximum pitch", + "longDesc": "Maximum pitch during flare, a positive sign means nose up Applied once FW_LND_FLALT is reached", + "min": 0.0, + "max": 45.0, + "units": "deg", "decimalPlaces": 1, - "min": 0, - "max": 2 + "increment": 0.5 }, { - "name": "FW_T_TIME_CONST", + "name": "FW_LND_FL_PMIN", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "TECS time constant", - "longDesc": "This is the time constant of the TECS control algorithm (in seconds). Smaller values make it faster to respond, larger values make it slower to respond.", - "units": "s", - "default": 5, - "increment": 0.5, + "default": 2.5, + "group": "FW L1 Control", + "shortDesc": "Flare, minimum pitch", + "longDesc": "Minimum pitch during flare, a positive sign means nose up Applied once FW_LND_FLALT is reached", + "min": 0.0, + "max": 15.0, + "units": "deg", "decimalPlaces": 1, - "min": 1, - "max": 10 + "increment": 0.5 }, { - "name": "FW_T_VERT_ACC", + "name": "FW_LND_HHDIST", "type": "Float", - "group": "FW TECS", - "category": "Standard", - "shortDesc": "Maximum vertical acceleration", - "longDesc": "This is the maximum vertical acceleration (in m/s/s) either up or down that the controller will use to correct speed or height errors. The default value of 7 m/s/s (equivalent to +- 0.7 g) allows for reasonably aggressive pitch changes if required to recover from under-speed conditions.", - "units": "m/s/s", - "default": 7, - "increment": 0.5, + "default": 15.0, + "group": "FW L1 Control", + "shortDesc": "Landing heading hold horizontal distance.\nSet to 0 to disable heading hold", + "min": 0.0, + "max": 30.0, + "units": "m", "decimalPlaces": 1, - "min": 1, - "max": 10 + "increment": 0.5 }, { - "name": "FW_WR_FF", + "name": "FW_LND_HVIRT", "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Wheel steering rate feed forward", - "longDesc": "Direct feed forward from rate setpoint to control surface output", - "units": "%/rad/s", - "default": 0.2, - "increment": 0.05, - "decimalPlaces": 2, - "min": 0, - "max": 10 + "default": 10.0, + "group": "FW L1 Control", + "shortDesc": "FW_LND_HVIRT", + "min": 1.0, + "max": 15.0, + "units": "m", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "FW_WR_I", + "name": "FW_LND_THRTC_SC", "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Wheel steering rate integrator gain", - "longDesc": "This gain defines how much control response will result out of a steady state error. It trims any constant error.", - "units": "%/rad", - "default": 0.1, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0.005, - "max": 0.5 + "default": 1.0, + "group": "FW L1 Control", + "shortDesc": "Throttle time constant factor for landing", + "longDesc": "Set this parameter to less than 1.0 to make the TECS throttle loop react faster during landing than during normal flight (i.e. giving efficiency and low motor wear at high altitudes but control accuracy during landing). During landing, the TECS throttle time constant (FW_T_THRO_CONST) is multiplied by this value.", + "min": 0.2, + "max": 1.0, + "units": "", + "increment": 0.1 }, { - "name": "FW_WR_IMAX", + "name": "FW_LND_TLALT", "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Wheel steering rate integrator limit", - "longDesc": "The portion of the integrator part in the control surface deflection is limited to this value", - "default": 1, - "increment": 0.05, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": -1.0, + "group": "FW L1 Control", + "shortDesc": "Landing throttle limit altitude (relative landing altitude)", + "longDesc": "Default of -1.0 lets the system default to applying throttle limiting at 2/3 of the flare altitude.", + "min": -1.0, + "max": 30.0, + "units": "m", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "FW_WR_P", + "name": "FW_LND_USETER", + "type": "Int32", + "default": 0, + "group": "FW L1 Control", + "shortDesc": "Use terrain estimate during landing", + "longDesc": "This is turned off by default and a waypoint or return altitude is normally used (or sea level for an arbitrary land position)." + }, + { + "name": "FW_P_LIM_MAX", "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Wheel steering rate proportional gain", - "longDesc": "This defines how much the wheel steering input will be commanded depending on the current body angular rate error.", - "units": "%/rad/s", - "default": 0.5, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0.005, - "max": 1 + "default": 45.0, + "group": "FW L1 Control", + "shortDesc": "Positive pitch limit", + "longDesc": "The maximum positive pitch the controller will output.", + "min": 0.0, + "max": 60.0, + "units": "deg", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "FW_W_EN", - "type": "Int32", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Enable wheel steering controller", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "FW_P_LIM_MIN", + "type": "Float", + "default": -45.0, + "group": "FW L1 Control", + "shortDesc": "Negative pitch limit", + "longDesc": "The minimum negative pitch the controller will output.", + "min": -60.0, + "max": 0.0, + "units": "deg", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "FW_W_RMAX", + "name": "FW_R_LIM", "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Maximum wheel steering rate", - "longDesc": "This limits the maximum wheel steering rate the controller will output (in degrees per second).", - "units": "deg/s", - "default": 30, - "increment": 0.5, + "default": 50.0, + "group": "FW L1 Control", + "shortDesc": "Controller roll limit", + "longDesc": "The maximum roll the controller will output.", + "min": 35.0, + "max": 65.0, + "units": "deg", "decimalPlaces": 1, - "min": 0, - "max": 90 + "increment": 0.5 }, { - "name": "FW_YR_FF", + "name": "FW_THR_ALT_SCL", "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Yaw rate feed forward", - "longDesc": "Direct feed forward from rate setpoint to control surface output", - "units": "%/rad/s", - "default": 0.3, - "increment": 0.05, + "default": 0.0, + "group": "FW L1 Control", + "shortDesc": "Scale throttle by pressure change", + "longDesc": "Automatically adjust throttle to account for decreased air density at higher altitudes. Start with a scale factor of 1.0 and adjust for different propulsion systems. When flying without airspeed sensor this will help to keep a constant performance over large altitude ranges. The default value of 0 will disable scaling.", + "min": 0.0, + "max": 10.0, + "decimalPlaces": 1, + "increment": 0.1 + }, + { + "name": "FW_THR_CRUISE", + "type": "Float", + "default": 0.6, + "group": "FW L1 Control", + "shortDesc": "Cruise throttle", + "longDesc": "This is the throttle setting required to achieve the desired cruise speed. Most airframes have a value of 0.5-0.7.", + "min": 0.0, + "max": 1.0, + "units": "norm", "decimalPlaces": 2, - "min": 0, - "max": 10 + "increment": 0.01 }, { - "name": "FW_YR_I", + "name": "FW_THR_IDLE", "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Yaw rate integrator gain", - "longDesc": "This gain defines how much control response will result out of a steady state error. It trims any constant error.", - "units": "%/rad", - "default": 0.1, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 50 + "default": 0.15, + "group": "FW L1 Control", + "shortDesc": "Idle throttle", + "longDesc": "This is the minimum throttle while on the ground For aircraft with internal combustion engine this parameter should be set above desired idle rpm.", + "min": 0.0, + "max": 0.4, + "units": "norm", + "decimalPlaces": 2, + "increment": 0.01 }, { - "name": "FW_YR_IMAX", + "name": "FW_THR_LND_MAX", "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Yaw rate integrator limit", - "longDesc": "The portion of the integrator part in the control surface deflection is limited to this value", - "default": 0.2, - "increment": 0.05, + "default": 1.0, + "group": "FW L1 Control", + "shortDesc": "Throttle limit during landing below throttle limit altitude", + "longDesc": "During the flare of the autonomous landing process, this value will be set as throttle limit when the aircraft altitude is below FW_LND_TLALT.", + "min": 0.0, + "max": 1.0, + "units": "norm", "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.01 }, { - "name": "FW_YR_P", + "name": "FW_THR_MAX", "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Yaw rate proportional gain", - "longDesc": "This defines how much the rudder input will be commanded depending on the current body angular rate error.", - "units": "%/rad/s", - "default": 0.05, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0.005, - "max": 1 + "default": 1.0, + "group": "FW L1 Control", + "shortDesc": "Throttle limit max", + "longDesc": "This is the maximum throttle % that can be used by the controller. For overpowered aircraft, this should be reduced to a value that provides sufficient thrust to climb at the maximum pitch angle PTCH_MAX.", + "min": 0.0, + "max": 1.0, + "units": "norm", + "decimalPlaces": 2, + "increment": 0.01 }, { - "name": "FW_Y_RMAX", + "name": "FW_THR_MIN", "type": "Float", - "group": "FW Attitude Control", - "category": "Standard", - "shortDesc": "Maximum yaw rate", - "longDesc": "This limits the maximum yaw rate the controller will output (in degrees per second).", - "units": "deg/s", - "default": 50, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 90 + "default": 0.0, + "group": "FW L1 Control", + "shortDesc": "Throttle limit min", + "longDesc": "This is the minimum throttle % that can be used by the controller. For electric aircraft this will normally be set to zero, but can be set to a small non-zero value if a folding prop is fitted to prevent the prop from folding and unfolding repeatedly in-flight or to provide some aerodynamic drag from a turning prop to improve the descent rate. For aircraft with internal combustion engine this parameter should be set for desired idle rpm.", + "min": 0.0, + "max": 1.0, + "units": "norm", + "decimalPlaces": 2, + "increment": 0.01 }, { - "name": "GF_ACTION", - "type": "Int32", - "group": "Geofence", - "category": "Standard", - "shortDesc": "Geofence violation action", - "longDesc": "Note: Setting this value to 4 enables flight termination, which will kill the vehicle on violation of the fence. Due to the inherent danger of this, this function is disabled using a software circuit breaker, which needs to be reset to 0 to really shut down the system.", - "default": 1, - "values": [ - { - "value": 0, - "description": "None" - }, - { - "value": 1, - "description": "Warning" - }, - { - "value": 2, - "description": "Hold mode" - }, - { - "value": 3, - "description": "Return mode" - }, - { - "value": 4, - "description": "Terminate" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 4 + "name": "FW_THR_SLEW_MAX", + "type": "Float", + "default": 0.0, + "group": "FW L1 Control", + "shortDesc": "Throttle max slew rate", + "longDesc": "Maximum slew rate for the commanded throttle", + "min": 0.0, + "max": 1.0 }, { - "name": "GF_ALTMODE", + "name": "LAUN_ALL_ON", "type": "Int32", - "group": "Geofence", - "category": "Standard", - "shortDesc": "Geofence altitude mode", - "longDesc": "Select which altitude reference should be used 0 = WGS84, 1 = AMSL", "default": 0, - "values": [ - { - "value": 0, - "description": "WGS84" - }, - { - "value": 1, - "description": "AMSL" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 1 + "group": "FW Launch detection", + "shortDesc": "Launch detection" }, { - "name": "GF_COUNT", - "type": "Int32", - "group": "Geofence", - "category": "Standard", - "shortDesc": "Geofence counter limit", - "longDesc": "Set how many subsequent position measurements outside of the fence are needed before geofence violation is triggered", - "default": -1, - "increment": 1, - "decimalPlaces": 0, - "min": -1, - "max": 10 - }, - { - "name": "GF_MAX_HOR_DIST", + "name": "LAUN_CAT_A", "type": "Float", - "group": "Geofence", - "category": "Standard", - "shortDesc": "Max horizontal distance in meters", - "longDesc": "Maximum horizontal distance in meters the vehicle can be from home before triggering a geofence action. Disabled if 0.", - "units": "m", - "default": 0, - "increment": 1, - "decimalPlaces": 0, - "min": 0, - "max": 10000 + "default": 30.0, + "group": "FW Launch detection", + "shortDesc": "Catapult accelerometer threshold", + "longDesc": "LAUN_CAT_A for LAUN_CAT_T serves as threshold to trigger launch detection.", + "min": 0.0, + "units": "m/s^2", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "GF_MAX_VER_DIST", + "name": "LAUN_CAT_MDEL", "type": "Float", - "group": "Geofence", - "category": "Standard", - "shortDesc": "Max vertical distance in meters", - "longDesc": "Maximum vertical distance in meters the vehicle can be from home before triggering a geofence action. Disabled if 0.", - "units": "m", - "default": 0, - "increment": 1, - "decimalPlaces": 0, - "min": 0, - "max": 10000 + "default": 0.0, + "group": "FW Launch detection", + "shortDesc": "Motor delay", + "longDesc": "Delay between starting attitude control and powering up the throttle (giving throttle control to the controller) Before this timespan is up the throttle will be set to FW_THR_IDLE, set to 0 to deactivate", + "min": 0.0, + "max": 10.0, + "units": "s", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "GF_SOURCE", - "type": "Int32", - "group": "Geofence", - "category": "Standard", - "shortDesc": "Geofence source", - "longDesc": "Select which position source should be used. Selecting GPS instead of global position makes sure that there is no dependence on the position estimator 0 = global position, 1 = GPS", - "default": 0, - "values": [ - { - "value": 0, - "description": "GPOS" - }, - { - "value": 1, - "description": "GPS" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 1 + "name": "LAUN_CAT_PMAX", + "type": "Float", + "default": 30.0, + "group": "FW Launch detection", + "shortDesc": "Maximum pitch before the throttle is powered up (during motor delay phase)", + "longDesc": "This is an extra limit for the maximum pitch which is imposed in the phase before the throttle turns on. This allows to limit the maximum pitch angle during a bungee launch (make the launch less steep).", + "min": 0.0, + "max": 45.0, + "units": "deg", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "GND_L1_DAMPING", + "name": "LAUN_CAT_T", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "L1 damping", - "longDesc": "Damping factor for L1 control.", - "default": 0.75, - "increment": 0.05, + "default": 0.05, + "group": "FW Launch detection", + "shortDesc": "Catapult time threshold", + "longDesc": "LAUN_CAT_A for LAUN_CAT_T serves as threshold to trigger launch detection.", + "min": 0.0, + "max": 5.0, + "units": "s", "decimalPlaces": 2, - "min": 0.6, - "max": 0.9 + "increment": 0.05 }, { - "name": "GND_L1_DIST", + "name": "FW_AIRSPD_MAX", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "L1 distance", - "longDesc": "This is the waypoint radius", - "units": "m", - "default": 5, - "increment": 0.1, + "default": 20.0, + "group": "FW TECS", + "shortDesc": "Maximum Airspeed", + "longDesc": "If the airspeed is above this value, the TECS controller will try to decrease airspeed more aggressively.", + "min": 0.0, + "max": 40.0, + "units": "m/s", "decimalPlaces": 1, - "min": 0, - "max": 100 + "increment": 0.5 }, { - "name": "GND_L1_PERIOD", + "name": "FW_AIRSPD_MIN", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "L1 period", - "longDesc": "This is the L1 distance and defines the tracking point ahead of the rover it's following. Using values around 2-5 for a traxxas stampede. Shorten slowly during tuning until response is sharp without oscillation.", - "units": "m", - "default": 10, - "increment": 0.5, + "default": 10.0, + "group": "FW TECS", + "shortDesc": "Minimum Airspeed", + "longDesc": "If the airspeed falls below this value, the TECS controller will try to increase airspeed more aggressively.", + "min": 0.0, + "max": 40.0, + "units": "m/s", "decimalPlaces": 1, - "min": 0, - "max": 50 + "increment": 0.5 }, { - "name": "GND_MAX_ANG", + "name": "FW_AIRSPD_TRIM", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Maximum turn angle for Ackerman steering. At a control output of 0, the steering wheels are at 0 radians. At a control output of 1, the steering wheels are at GND_MAX_ANG radians", - "units": "rad", - "default": 0.7854, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0, - "max": 3.14159 + "default": 15.0, + "group": "FW TECS", + "shortDesc": "Cruise Airspeed", + "longDesc": "The fixed wing controller tries to fly at this airspeed.", + "min": 0.0, + "max": 40.0, + "units": "m/s", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "GND_SPEED_D", + "name": "FW_GND_SPD_MIN", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Speed proportional gain", - "longDesc": "This is the derivative gain for the speed closed loop controller", - "units": "%m/s", - "default": 0.001, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0, - "max": 50 + "default": 5.0, + "group": "FW TECS", + "shortDesc": "Minimum groundspeed", + "longDesc": "The controller will increase the commanded airspeed to maintain this minimum groundspeed to the next waypoint.", + "min": 0.0, + "max": 40.0, + "units": "m/s", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "GND_SPEED_I", + "name": "FW_T_CLMB_MAX", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Speed Integral gain", - "longDesc": "This is the integral gain for the speed closed loop controller", - "units": "%m/s", - "default": 3, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0, - "max": 50 + "default": 5.0, + "group": "FW TECS", + "shortDesc": "Maximum climb rate", + "longDesc": "This is the best climb rate that the aircraft can achieve with the throttle set to THR_MAX and the airspeed set to the default value. For electric aircraft make sure this number can be achieved towards the end of flight when the battery voltage has reduced. The setting of this parameter can be checked by commanding a positive altitude change of 100m in loiter, RTL or guided mode. If the throttle required to climb is close to THR_MAX and the aircraft is maintaining airspeed, then this parameter is set correctly. If the airspeed starts to reduce, then the parameter is set to high, and if the throttle demand required to climb and maintain speed is noticeably less than FW_THR_MAX, then either FW_T_CLMB_MAX should be increased or FW_THR_MAX reduced.", + "min": 1.0, + "max": 15.0, + "units": "m/s", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "GND_SPEED_IMAX", + "name": "FW_T_HRATE_FF", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Speed integral maximum value", - "longDesc": "This is the maxim value the integral can reach to prevent wind-up.", - "units": "%m/s", - "default": 1, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0.005, - "max": 50 + "default": 0.8, + "group": "FW TECS", + "shortDesc": "Height rate feed forward", + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2, + "increment": 0.05 }, { - "name": "GND_SPEED_MAX", + "name": "FW_T_HRATE_P", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Maximum ground speed", - "units": "m/s", - "default": 10, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 40 + "default": 0.05, + "group": "FW TECS", + "shortDesc": "Height rate proportional factor", + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2, + "increment": 0.05 }, { - "name": "GND_SPEED_P", + "name": "FW_T_INTEG_GAIN", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Speed proportional gain", - "longDesc": "This is the proportional gain for the speed closed loop controller", - "units": "%m/s", - "default": 2, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0.005, - "max": 50 + "default": 0.1, + "group": "FW TECS", + "shortDesc": "Integrator gain", + "longDesc": "This is the integrator gain on the control loop. Increasing this gain increases the speed at which speed and height offsets are trimmed out, but reduces damping and increases overshoot. Set this value to zero to completely disable all integrator action.", + "min": 0.0, + "max": 2.0, + "decimalPlaces": 2, + "increment": 0.05 }, { - "name": "GND_SPEED_THR_SC", + "name": "FW_T_PTCH_DAMP", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Speed to throttle scaler", - "longDesc": "This is a gain to map the speed control output to the throttle linearly.", - "units": "%m/s", - "default": 1, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0.005, - "max": 50 + "default": 0.0, + "group": "FW TECS", + "shortDesc": "Pitch damping factor", + "longDesc": "This is the damping gain for the pitch demand loop. Increase to add damping to correct for oscillations in height. The default value of 0.0 will work well provided the pitch to servo controller has been tuned properly.", + "min": 0.0, + "max": 2.0, + "decimalPlaces": 1, + "increment": 0.1 }, { - "name": "GND_SPEED_TRIM", + "name": "FW_T_RLL2THR", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Trim ground speed", - "units": "m/s", - "default": 3, - "increment": 0.5, + "default": 15.0, + "group": "FW TECS", + "shortDesc": "Roll -> Throttle feedforward", + "longDesc": "Increasing this gain turn increases the amount of throttle that will be used to compensate for the additional drag created by turning. Ideally this should be set to approximately 10 x the extra sink rate in m/s created by a 45 degree bank turn. Increase this gain if the aircraft initially loses energy in turns and reduce if the aircraft initially gains energy in turns. Efficient high aspect-ratio aircraft (eg powered sailplanes) can use a lower value, whereas inefficient low aspect-ratio models (eg delta wings) can use a higher value.", + "min": 0.0, + "max": 20.0, "decimalPlaces": 1, - "min": 0, - "max": 40 + "increment": 0.5 }, { - "name": "GND_SP_CTRL_MODE", - "type": "Int32", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Control mode for speed", - "longDesc": "This allows the user to choose between closed loop gps speed or open loop cruise throttle speed", - "default": 1, - "values": [ - { - "value": 0, - "description": "open loop control" - }, - { - "value": 1, - "description": "close the loop with gps speed" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 1 + "name": "FW_T_SINK_MAX", + "type": "Float", + "default": 5.0, + "group": "FW TECS", + "shortDesc": "Maximum descent rate", + "longDesc": "This sets the maximum descent rate that the controller will use. If this value is too large, the aircraft can over-speed on descent. This should be set to a value that can be achieved without exceeding the lower pitch angle limit and without over-speeding the aircraft.", + "min": 1.0, + "max": 15.0, + "units": "m/s", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "GND_THR_CRUISE", + "name": "FW_T_SINK_MIN", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Cruise throttle", - "longDesc": "This is the throttle setting required to achieve the desired cruise speed. 10% is ok for a traxxas stampede vxl with ESC set to training mode", - "units": "norm", - "default": 0.1, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": 2.0, + "group": "FW TECS", + "shortDesc": "Minimum descent rate", + "longDesc": "This is the sink rate of the aircraft with the throttle set to THR_MIN and flown at the same airspeed as used to measure FW_T_CLMB_MAX.", + "min": 1.0, + "max": 5.0, + "units": "m/s", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "GND_THR_IDLE", + "name": "FW_T_SPDWEIGHT", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Idle throttle", - "longDesc": "This is the minimum throttle while on the ground, it should be 0 for a rover", - "units": "norm", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 0.4 + "default": 1.0, + "group": "FW TECS", + "shortDesc": "Speed <--> Altitude priority", + "longDesc": "This parameter adjusts the amount of weighting that the pitch control applies to speed vs height errors. Setting it to 0.0 will cause the pitch control to control height and ignore speed errors. This will normally improve height accuracy but give larger airspeed errors. Setting it to 2.0 will cause the pitch control loop to control speed and ignore height errors. This will normally reduce airspeed errors, but give larger height errors. The default value of 1.0 allows the pitch control to simultaneously control height and speed. Note to Glider Pilots - set this parameter to 2.0 (The glider will adjust its pitch angle to maintain airspeed, ignoring changes in height).", + "min": 0.0, + "max": 2.0, + "decimalPlaces": 1, + "increment": 1.0 }, { - "name": "GND_THR_MAX", + "name": "FW_T_SPD_OMEGA", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Throttle limit max", - "longDesc": "This is the maximum throttle % that can be used by the controller. For a Traxxas stampede vxl with the ESC set to training, 30 % is enough", - "units": "norm", - "default": 0.3, - "increment": 0.01, + "default": 2.0, + "group": "FW TECS", + "shortDesc": "Complementary filter \"omega\" parameter for speed", + "longDesc": "This is the cross-over frequency (in radians/second) of the complementary filter used to fuse longitudinal acceleration and airspeed to obtain an improved airspeed estimate. Increasing this frequency weights the solution more towards use of the airspeed sensor, whilst reducing it weights the solution more towards use of the accelerometer data.", + "min": 1.0, + "max": 10.0, + "units": "rad/s", + "decimalPlaces": 1, + "increment": 0.5 + }, + { + "name": "FW_T_SRATE_P", + "type": "Float", + "default": 0.02, + "group": "FW TECS", + "shortDesc": "Speed rate P factor", + "min": 0.0, + "max": 2.0, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.01 }, { - "name": "GND_THR_MIN", + "name": "FW_T_THRO_CONST", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Throttle limit min", - "longDesc": "This is the minimum throttle % that can be used by the controller. Set to 0 for rover", - "units": "norm", + "default": 8.0, + "group": "FW TECS", + "shortDesc": "TECS Throttle time constant", + "longDesc": "This is the time constant of the TECS throttle control algorithm (in seconds). Smaller values make it faster to respond, larger values make it slower to respond.", + "min": 1.0, + "max": 10.0, + "units": "s", + "decimalPlaces": 1, + "increment": 0.5 + }, + { + "name": "FW_T_THR_DAMP", + "type": "Float", + "default": 0.5, + "group": "FW TECS", + "shortDesc": "Throttle damping factor", + "longDesc": "This is the damping gain for the throttle demand loop. Increase to add damping to correct for oscillations in speed and height.", + "min": 0.0, + "max": 2.0, + "decimalPlaces": 1, + "increment": 0.1 + }, + { + "name": "FW_T_TIME_CONST", + "type": "Float", + "default": 5.0, + "group": "FW TECS", + "shortDesc": "TECS time constant", + "longDesc": "This is the time constant of the TECS control algorithm (in seconds). Smaller values make it faster to respond, larger values make it slower to respond.", + "min": 1.0, + "max": 10.0, + "units": "s", + "decimalPlaces": 1, + "increment": 0.5 + }, + { + "name": "FW_T_VERT_ACC", + "type": "Float", + "default": 7.0, + "group": "FW TECS", + "shortDesc": "Maximum vertical acceleration", + "longDesc": "This is the maximum vertical acceleration (in m/s/s) either up or down that the controller will use to correct speed or height errors. The default value of 7 m/s/s (equivalent to +- 0.7 g) allows for reasonably aggressive pitch changes if required to recover from under-speed conditions.", + "min": 1.0, + "max": 10.0, + "units": "m/s^2", + "decimalPlaces": 1, + "increment": 0.5 + }, + { + "name": "FD_ESCS_EN", + "type": "Int32", + "default": 1, + "group": "Failure Detector", + "shortDesc": "Enable checks on ESCs that report their arming state.\nIf enabled, failure detector will verify that all the ESCs have successfully armed when the vehicle has transitioned to the armed state.\nTimeout for receiving an acknowledgement from the ESCs is 0.3s, if no feedback is received the failure detector will auto disarm the vehicle", + "rebootRequired": true + }, + { + "name": "FD_EXT_ATS_EN", + "type": "Int32", "default": 0, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "group": "Failure Detector", + "shortDesc": "Enable PWM input on AUX5 or MAIN5 (depending on board) for engaging failsafe from an external\nautomatic trigger system (ATS)", + "longDesc": "External ATS is required by ASTM F3322-18.", + "rebootRequired": true }, { - "name": "GND_WHEEL_BASE", + "name": "FD_EXT_ATS_TRIG", + "type": "Int32", + "default": 1900, + "group": "Failure Detector", + "shortDesc": "The PWM threshold from external automatic trigger system for engaging failsafe", + "longDesc": "External ATS is required by ASTM F3322-18.", + "units": "us", + "decimalPlaces": 2 + }, + { + "name": "FD_FAIL_P", + "type": "Int32", + "default": 60, + "group": "Failure Detector", + "shortDesc": "FailureDetector Max Pitch", + "longDesc": "Maximum pitch angle before FailureDetector triggers the attitude_failure flag. The flag triggers flight termination (if @CBRK_FLIGHTTERM = 0), which sets outputs to their failsafe values. On takeoff the flag triggers lockdown (irrespective of @CBRK_FLIGHTTERM), which disarms motors but does not set outputs to failsafe values. Setting this parameter to 0 disables the check", + "min": 60, + "max": 180, + "units": "deg" + }, + { + "name": "FD_FAIL_P_TTRI", "type": "Float", - "group": "Rover Position Control", - "category": "Standard", - "shortDesc": "Distance from front axle to rear axle", - "units": "m", - "default": 2, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0, - "max": 3.40282e+38 + "default": 0.3, + "group": "Failure Detector", + "shortDesc": "Pitch failure trigger time", + "longDesc": "Seconds (decimal) that pitch has to exceed FD_FAIL_P before being considered as a failure.", + "min": 0.02, + "max": 5.0, + "units": "s", + "decimalPlaces": 2 }, { - "name": "GPS_{n}_CONFIG", + "name": "FD_FAIL_R", "type": "Int32", - "group": "GPS", - "category": "Standard", - "shortDesc": "Serial Configuration for Main GPS", - "longDesc": "Configure on which serial port to run Main GPS.", - "default": 201, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 6, - "description": "UART 6" - }, - { - "value": 101, - "description": "TELEM 1" - }, - { - "value": 102, - "description": "TELEM 2" - }, - { - "value": 103, - "description": "TELEM 3" - }, - { - "value": 104, - "description": "TELEM/SERIAL 4" - }, - { - "value": 201, - "description": "GPS 1" - }, - { - "value": 202, - "description": "GPS 2" - }, - { - "value": 203, - "description": "GPS 3" - }, - { - "value": 300, - "description": "Radio Controller" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "default": 60, + "group": "Failure Detector", + "shortDesc": "FailureDetector Max Roll", + "longDesc": "Maximum roll angle before FailureDetector triggers the attitude_failure flag. The flag triggers flight termination (if @CBRK_FLIGHTTERM = 0), which sets outputs to their failsafe values. On takeoff the flag triggers lockdown (irrespective of @CBRK_FLIGHTTERM), which disarms motors but does not set outputs to failsafe values. Setting this parameter to 0 disables the check", + "min": 60, + "max": 180, + "units": "deg" + }, + { + "name": "FD_FAIL_R_TTRI", + "type": "Float", + "default": 0.3, + "group": "Failure Detector", + "shortDesc": "Roll failure trigger time", + "longDesc": "Seconds (decimal) that roll has to exceed FD_FAIL_R before being considered as a failure.", + "min": 0.02, + "max": 5.0, + "units": "s", + "decimalPlaces": 2 + }, + { + "name": "NAV_FT_DST", + "type": "Float", + "default": 8.0, + "group": "Follow target", + "shortDesc": "Distance to follow target from", + "longDesc": "The distance in meters to follow the target at", + "min": 1.0, + "units": "m" + }, + { + "name": "NAV_FT_FS", + "type": "Int32", + "default": 1, + "group": "Follow target", + "shortDesc": "Side to follow target from", + "longDesc": "The side to follow the target from (front right = 0, behind = 1, front = 2, front left = 3)", + "min": 0, + "max": 3 + }, + { + "name": "NAV_FT_RS", + "type": "Float", + "default": 0.5, + "group": "Follow target", + "shortDesc": "Dynamic filtering algorithm responsiveness to target movement\nlower numbers increase the responsiveness to changing long lat\nbut also ignore less noise", + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2 + }, + { + "name": "NAV_MIN_FT_HT", + "type": "Float", + "default": 8.0, + "group": "Follow target", + "shortDesc": "Minimum follow target altitude", + "longDesc": "The minimum height in meters relative to home for following a target", + "min": 8.0, + "units": "m" }, { "name": "GPS_DUMP_COMM", "type": "Int32", + "default": 0, "group": "GPS", - "category": "Standard", "shortDesc": "Dump GPS communication to a file", "longDesc": "If this is set to 1, all GPS communication data will be published via uORB, and written to the log file as gps_dump message.", - "default": 0, + "min": 0, + "max": 1, "values": [ { "value": 0, @@ -6391,19 +5320,18 @@ "value": 1, "description": "Enable" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 1 + ] }, { "name": "GPS_UBX_DYNMODEL", "type": "Int32", + "default": 7, "group": "GPS", - "category": "Standard", "shortDesc": "u-blox GPS dynamic platform model", "longDesc": "u-blox receivers support different dynamic platform models to adjust the navigation engine to the expected application environment.", - "default": 7, + "min": 0, + "max": 9, + "rebootRequired": true, "values": [ { "value": 2, @@ -6425,1234 +5353,968 @@ "value": 8, "description": "airborne with <4g acceleration" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 9 + ] }, { "name": "GPS_YAW_OFFSET", "type": "Float", + "default": 0.0, "group": "GPS", - "category": "Standard", "shortDesc": "Heading/Yaw offset for dual antenna GPS", "longDesc": "Heading offset angle for dual antenna GPS setups that support heading estimation. (currently only for the Trimble MB-Two). Set this to 0 if the antennas are parallel to the forward-facing direction of the vehicle and the first antenna is in front. The offset angle increases counterclockwise. Set this to 90 if the first antenna is placed on the right side and the second on the left side of the vehicle.", + "min": 0.0, + "max": 360.0, "units": "deg", - "default": 0, - "rebootRequired": true, "decimalPlaces": 0, - "min": 0, - "max": 360 + "rebootRequired": true }, { - "name": "HTE_ACC_GATE", + "name": "NAV_GPSF_LT", "type": "Float", - "group": "Hover Thrust Estimator", - "category": "Standard", - "shortDesc": "Gate size for acceleration fusion", - "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", - "units": "SD", - "default": 3, - "decimalPlaces": 1, - "min": 1, - "max": 10 + "default": 0.0, + "group": "GPS Failure Navigation", + "shortDesc": "Loiter time", + "longDesc": "The time in seconds the system should do open loop loiter and wait for GPS recovery before it goes into flight termination. Set to 0 to disable.", + "min": 0.0, + "max": 3600.0, + "units": "s", + "decimalPlaces": 0, + "increment": 1.0 }, { - "name": "HTE_HT_ERR_INIT", + "name": "NAV_GPSF_P", "type": "Float", - "group": "Hover Thrust Estimator", - "category": "Standard", - "shortDesc": "1-sigma initial hover thrust uncertainty", - "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", - "units": "normalized_thrust", - "default": 0.1, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "default": 0.0, + "group": "GPS Failure Navigation", + "shortDesc": "Fixed pitch angle", + "longDesc": "Pitch in degrees during the open loop loiter", + "min": -30.0, + "max": 30.0, + "units": "deg", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "HTE_HT_NOISE", + "name": "NAV_GPSF_R", "type": "Float", - "group": "Hover Thrust Estimator", - "category": "Standard", - "shortDesc": "Hover thrust process noise", - "longDesc": "Reduce to make the hover thrust estimate more stable, increase if the real hover thrust is expected to change quickly over time.", - "units": "normalized_thrust/s", - "default": 0.0005, - "decimalPlaces": 4, - "min": 0.0001, - "max": 1 + "default": 15.0, + "group": "GPS Failure Navigation", + "shortDesc": "Fixed bank angle", + "longDesc": "Roll in degrees during the loiter", + "min": 0.0, + "max": 30.0, + "units": "deg", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "IMU_ACCEL_CUTOFF", + "name": "NAV_GPSF_TR", "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Low pass filter cutoff frequency for accel", - "longDesc": "The cutoff frequency for the 2nd order butterworth filter on the primary accelerometer. This only affects the signal sent to the controllers, not the estimators. 0 disables the filter.", - "units": "Hz", - "default": 30, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 1000 + "default": 0.0, + "group": "GPS Failure Navigation", + "shortDesc": "Thrust", + "longDesc": "Thrust value which is set during the open loop loiter", + "min": 0.0, + "max": 1.0, + "units": "norm", + "decimalPlaces": 2, + "increment": 0.05 }, { - "name": "IMU_DGYRO_CUTOFF", - "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Cutoff frequency for angular acceleration (D-Term filter)", - "longDesc": "The cutoff frequency for the 2nd order butterworth filter used on the time derivative of the measured angular velocity, also known as the D-term filter in the rate controller. The D-term uses the derivative of the rate and thus is the most susceptible to noise. Therefore, using a D-term filter allows to increase IMU_GYRO_CUTOFF, which leads to reduced control latency and permits to increase the P gains. A value of 0 disables the filter.", - "units": "Hz", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 1000 - }, - { - "name": "IMU_GYRO_CUTOFF", - "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Low pass filter cutoff frequency for gyro", - "longDesc": "The cutoff frequency for the 2nd order butterworth filter on the primary gyro. This only affects the angular velocity sent to the controllers, not the estimators. It applies also to the angular acceleration (D-Term filter), see IMU_DGYRO_CUTOFF. A value of 0 disables the filter.", - "units": "Hz", - "default": 30, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 1000 - }, - { - "name": "IMU_GYRO_NF_BW", - "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Notch filter bandwidth for gyro", - "longDesc": "The frequency width of the stop band for the 2nd order notch filter on the primary gyro. See \"IMU_GYRO_NF_FREQ\" to activate the filter and to set the notch frequency. Applies to both angular velocity and angular acceleration sent to the controllers.", - "units": "Hz", - "default": 20, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 100 - }, - { - "name": "IMU_GYRO_NF_FREQ", - "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Notch filter frequency for gyro", - "longDesc": "The center frequency for the 2nd order notch filter on the primary gyro. This filter can be enabled to avoid feedback amplification of structural resonances at a specific frequency. This only affects the signal sent to the controllers, not the estimators. Applies to both angular velocity and angular acceleration sent to the controllers. See \"IMU_GYRO_NF_BW\" to set the bandwidth of the filter. A value of 0 disables the filter.", - "units": "Hz", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 1000 - }, - { - "name": "IMU_GYRO_RATEMAX", + "name": "GF_ACTION", "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Gyro control data maximum publication rate", - "longDesc": "This is the maximum rate the gyro control data (sensor_gyro) will be allowed to publish at. Set to 0 to disable and publish at the native sensor sample rate.", - "units": "Hz", - "default": 0, + "default": 1, + "group": "Geofence", + "shortDesc": "Geofence violation action", + "longDesc": "Note: Setting this value to 4 enables flight termination, which will kill the vehicle on violation of the fence. Due to the inherent danger of this, this function is disabled using a software circuit breaker, which needs to be reset to 0 to really shut down the system.", + "min": 0, + "max": 5, "values": [ { "value": 0, - "description": "0 (no limit)" + "description": "None" }, { - "value": 50, - "description": "50 Hz" + "value": 1, + "description": "Warning" }, { - "value": 250, - "description": "250 Hz" + "value": 2, + "description": "Hold mode" }, { - "value": 400, - "description": "400 Hz" + "value": 3, + "description": "Return mode" }, { - "value": 1000, - "description": "1000 Hz" + "value": 4, + "description": "Terminate" }, { - "value": 2000, - "description": "2000 Hz" + "value": 5, + "description": "Land mode" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 2000 + ] }, { - "name": "IMU_INTEG_RATE", + "name": "GF_ALTMODE", "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "IMU integration rate", - "longDesc": "The rate at which raw IMU data is integrated to produce delta angles and delta velocities. Recommended to set this to a multiple of the estimator update period (currently 10 ms for ekf2).", - "units": "Hz", - "default": 200, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 100, - "max": 1000 + "default": 0, + "group": "Geofence", + "shortDesc": "Geofence altitude mode", + "longDesc": "Select which altitude reference should be used 0 = WGS84, 1 = AMSL", + "min": 0, + "max": 1, + "values": [ + { + "value": 0, + "description": "WGS84" + }, + { + "value": 1, + "description": "AMSL" + } + ] }, { - "name": "INA226_CONFIG", + "name": "GF_COUNT", "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "INA226 Power Monitor Config", - "units": "u", - "default": 18139, - "increment": 1, - "decimalPlaces": 1, - "min": 0, - "max": 65535 + "default": -1, + "group": "Geofence", + "shortDesc": "Geofence counter limit", + "longDesc": "Set how many subsequent position measurements outside of the fence are needed before geofence violation is triggered", + "min": -1, + "max": 10, + "increment": 1 }, { - "name": "INA226_CURRENT", + "name": "GF_MAX_HOR_DIST", "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "INA226 Power Monitor Max Current", - "default": 164, - "increment": 0.1, - "decimalPlaces": 2, - "min": 0.1, - "max": 200 + "default": 0.0, + "group": "Geofence", + "shortDesc": "Max horizontal distance in meters", + "longDesc": "Maximum horizontal distance in meters the vehicle can be from home before triggering a geofence action. Disabled if 0.", + "min": 0.0, + "max": 10000.0, + "units": "m", + "increment": 1.0 }, { - "name": "INA226_SHUNT", + "name": "GF_MAX_VER_DIST", "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "INA226 Power Monitor Shunt", - "default": 0.0005, - "increment": 1e-09, - "decimalPlaces": 10, - "min": 1e-09, - "max": 0.1 + "default": 0.0, + "group": "Geofence", + "shortDesc": "Max vertical distance in meters", + "longDesc": "Maximum vertical distance in meters the vehicle can be from home before triggering a geofence action. Disabled if 0.", + "min": 0.0, + "max": 10000.0, + "units": "m", + "increment": 1.0 }, { - "name": "ISBD_CONFIG", + "name": "GF_SOURCE", "type": "Int32", - "group": "Iridium SBD", - "category": "Standard", - "shortDesc": "Serial Configuration for Iridium (with MAVLink)", - "longDesc": "Configure on which serial port to run Iridium (with MAVLink).", "default": 0, + "group": "Geofence", + "shortDesc": "Geofence source", + "longDesc": "Select which position source should be used. Selecting GPS instead of global position makes sure that there is no dependence on the position estimator 0 = global position, 1 = GPS", + "min": 0, + "max": 1, "values": [ { "value": 0, - "description": "Disabled" - }, - { - "value": 6, - "description": "UART 6" - }, - { - "value": 101, - "description": "TELEM 1" - }, - { - "value": 102, - "description": "TELEM 2" - }, - { - "value": 103, - "description": "TELEM 3" - }, - { - "value": 104, - "description": "TELEM/SERIAL 4" - }, - { - "value": 201, - "description": "GPS 1" - }, - { - "value": 202, - "description": "GPS 2" - }, - { - "value": 203, - "description": "GPS 3" + "description": "GPOS" }, { - "value": 300, - "description": "Radio Controller" + "value": 1, + "description": "GPS" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "ISBD_READ_INT", - "type": "Int32", - "group": "Iridium SBD", - "category": "Standard", - "shortDesc": "Satellite radio read interval. Only required to be nonzero if data is not sent using a ring call", - "units": "s", - "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 5000 + "name": "HTE_ACC_GATE", + "type": "Float", + "default": 3.0, + "group": "Hover Thrust Estimator", + "shortDesc": "Gate size for acceleration fusion", + "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 1.0, + "max": 10.0, + "units": "SD", + "decimalPlaces": 1 }, { - "name": "ISBD_SBD_TIMEOUT", - "type": "Int32", - "group": "Iridium SBD", - "category": "Standard", - "shortDesc": "Iridium SBD session timeout", - "units": "s", - "default": 60, - "decimalPlaces": 3, - "min": 0, - "max": 300 + "name": "HTE_HT_ERR_INIT", + "type": "Float", + "default": 0.1, + "group": "Hover Thrust Estimator", + "shortDesc": "1-sigma initial hover thrust uncertainty", + "longDesc": "Sets the number of standard deviations used by the innovation consistency test.", + "min": 0.0, + "max": 1.0, + "units": "normalized_thrust", + "decimalPlaces": 3 }, { - "name": "ISBD_STACK_TIME", - "type": "Int32", - "group": "Iridium SBD", - "category": "Standard", - "shortDesc": "Time [ms] the Iridium driver will wait for additional mavlink messages to combine them into one SBD message Value 0 turns the functionality off", - "units": "ms", - "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 500 + "name": "HTE_HT_NOISE", + "type": "Float", + "default": 0.0005, + "group": "Hover Thrust Estimator", + "shortDesc": "Hover thrust process noise", + "longDesc": "Reduce to make the hover thrust estimate more stable, increase if the real hover thrust is expected to change quickly over time.", + "min": 0.0001, + "max": 1.0, + "units": "normalized_thrust/s", + "decimalPlaces": 4 }, { - "name": "LAUN_ALL_ON", - "type": "Int32", - "group": "FW Launch detection", - "category": "Standard", - "shortDesc": "Launch detection", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "LNDFW_AIRSPD_MAX", + "type": "Float", + "default": 8.0, + "group": "Land Detector", + "shortDesc": "Airspeed max", + "longDesc": "Maximum airspeed allowed in the landed state (m/s)", + "min": 4.0, + "max": 20.0, + "units": "m/s", + "decimalPlaces": 1 }, { - "name": "LAUN_CAT_A", + "name": "LNDFW_VEL_XY_MAX", "type": "Float", - "group": "FW Launch detection", - "category": "Standard", - "shortDesc": "Catapult accelerometer threshold", - "longDesc": "LAUN_CAT_A for LAUN_CAT_T serves as threshold to trigger launch detection.", - "units": "m/s/s", - "default": 30, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 3.40282e+38 + "default": 5.0, + "group": "Land Detector", + "shortDesc": "Fixedwing max horizontal velocity", + "longDesc": "Maximum horizontal velocity allowed in the landed state (m/s)", + "min": 0.5, + "max": 10.0, + "units": "m/s", + "decimalPlaces": 1 }, { - "name": "LAUN_CAT_MDEL", + "name": "LNDFW_VEL_Z_MAX", "type": "Float", - "group": "FW Launch detection", - "category": "Standard", - "shortDesc": "Motor delay", - "longDesc": "Delay between starting attitude control and powering up the throttle (giving throttle control to the controller) Before this timespan is up the throttle will be set to FW_THR_IDLE, set to 0 to deactivate", - "units": "s", - "default": 0, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 10 + "default": 3.0, + "group": "Land Detector", + "shortDesc": "Fixedwing max climb rate", + "longDesc": "Maximum vertical velocity allowed in the landed state (m/s up and down)", + "min": 0.1, + "max": 20.0, + "units": "m/s", + "decimalPlaces": 1 }, { - "name": "LAUN_CAT_PMAX", + "name": "LNDFW_XYACC_MAX", "type": "Float", - "group": "FW Launch detection", - "category": "Standard", - "shortDesc": "Maximum pitch before the throttle is powered up (during motor delay phase)", - "longDesc": "This is an extra limit for the maximum pitch which is imposed in the phase before the throttle turns on. This allows to limit the maximum pitch angle during a bungee launch (make the launch less steep).", - "units": "deg", - "default": 30, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 45 + "default": 8.0, + "group": "Land Detector", + "shortDesc": "Fixedwing max horizontal acceleration", + "longDesc": "Maximum horizontal (x,y body axes) acceleration allowed in the landed state (m/s^2)", + "min": 2.0, + "max": 15.0, + "units": "m/s^2", + "decimalPlaces": 1 }, { - "name": "LAUN_CAT_T", - "type": "Float", - "group": "FW Launch detection", - "category": "Standard", - "shortDesc": "Catapult time threshold", - "longDesc": "LAUN_CAT_A for LAUN_CAT_T serves as threshold to trigger launch detection.", - "units": "s", - "default": 0.05, - "increment": 0.05, - "decimalPlaces": 2, - "min": 0, - "max": 5 - }, - { - "name": "LED_RGB1_MAXBRT", - "type": "Int32", - "group": "System", - "category": "Standard", - "shortDesc": "RGB Led brightness limit", - "longDesc": "Set to 0 to disable, 1 for minimum brightness up to 31 (max)", - "default": 31, - "decimalPlaces": 3, - "min": 0, - "max": 31 - }, - { - "name": "LED_RGB_MAXBRT", - "type": "Int32", - "group": "System", - "category": "Standard", - "shortDesc": "RGB Led brightness limit", - "longDesc": "Set to 0 to disable, 1 for minimum brightness up to 15 (max)", - "default": 15, - "decimalPlaces": 3, - "min": 0, - "max": 15 - }, - { - "name": "LIGHT_EN_BLINKM", - "type": "Int32", - "group": "Peripheral", - "category": "Standard", - "shortDesc": "BlinkM LED", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "LNDFW_AIRSPD_MAX", - "type": "Float", - "group": "Land Detector", - "category": "Standard", - "shortDesc": "Airspeed max", - "longDesc": "Maximum airspeed allowed in the landed state (m/s)", - "units": "m/s", - "default": 8, - "decimalPlaces": 1, - "min": 4, - "max": 20 - }, - { - "name": "LNDFW_VEL_XY_MAX", - "type": "Float", - "group": "Land Detector", - "category": "Standard", - "shortDesc": "Fixedwing max horizontal velocity", - "longDesc": "Maximum horizontal velocity allowed in the landed state (m/s)", - "units": "m/s", - "default": 5, - "decimalPlaces": 1, - "min": 0.5, - "max": 10 - }, - { - "name": "LNDFW_VEL_Z_MAX", - "type": "Float", - "group": "Land Detector", - "category": "Standard", - "shortDesc": "Fixedwing max climb rate", - "longDesc": "Maximum vertical velocity allowed in the landed state (m/s up and down)", - "units": "m/s", - "default": 3, - "decimalPlaces": 1, - "min": 0.1, - "max": 20 - }, - { - "name": "LNDFW_XYACC_MAX", - "type": "Float", - "group": "Land Detector", - "category": "Standard", - "shortDesc": "Fixedwing max horizontal acceleration", - "longDesc": "Maximum horizontal (x,y body axes) acceleration allowed in the landed state (m/s^2)", - "units": "m/s^2", - "default": 8, - "decimalPlaces": 1, - "min": 2, - "max": 15 - }, - { - "name": "LNDMC_ALT_MAX", + "name": "LNDMC_ALT_MAX", "type": "Float", + "default": -1.0, "group": "Land Detector", - "category": "Standard", "shortDesc": "Maximum altitude for multicopters", "longDesc": "The system will obey this limit as a hard altitude limit. This setting will be consolidated with the GF_MAX_VER_DIST parameter. A negative value indicates no altitude limitation.", + "min": -1.0, + "max": 10000.0, "units": "m", - "default": -1, - "decimalPlaces": 2, - "min": -1, - "max": 10000 - }, - { - "name": "LNDMC_FFALL_THR", - "type": "Float", - "group": "Land Detector", - "category": "Standard", - "shortDesc": "Multicopter specific force threshold", - "longDesc": "Multicopter threshold on the specific force measured by accelerometers in m/s^2 for free-fall detection", - "units": "m/s^2", - "default": 2, - "decimalPlaces": 2, - "min": 0.1, - "max": 10 - }, - { - "name": "LNDMC_FFALL_TTRI", - "type": "Float", - "group": "Land Detector", - "category": "Standard", - "shortDesc": "Multicopter free-fall trigger time", - "longDesc": "Seconds (decimal) that freefall conditions have to met before triggering a freefall. Minimal value is limited by LAND_DETECTOR_UPDATE_RATE=50Hz in landDetector.h", - "units": "s", - "default": 0.3, - "decimalPlaces": 2, - "min": 0.02, - "max": 5 - }, - { - "name": "LNDMC_LOW_T_THR", - "type": "Float", - "group": "Land Detector", - "category": "Standard", - "shortDesc": "Low throttle detection threshold", - "longDesc": "Defines the commanded throttle value below which the land detector considers the vehicle to have \"low thrust\". This is one condition that is used to detect the ground contact state. The value is calculated as val = (MPC_THR_HOVER - MPC_THR_MIN) * LNDMC_LOW_T_THR + MPC_THR_MIN Increase this value if the system takes long time to detect landing.", - "units": "norm", - "default": 0.3, - "decimalPlaces": 2, - "min": 0.1, - "max": 0.9 + "decimalPlaces": 2 }, { "name": "LNDMC_ROT_MAX", "type": "Float", + "default": 20.0, "group": "Land Detector", - "category": "Standard", "shortDesc": "Multicopter max rotation", "longDesc": "Maximum allowed angular velocity around each axis allowed in the landed state.", "units": "deg/s", - "default": 20, - "decimalPlaces": 1, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "LNDMC_XY_VEL_MAX", "type": "Float", + "default": 1.5, "group": "Land Detector", - "category": "Standard", "shortDesc": "Multicopter max horizontal velocity", "longDesc": "Maximum horizontal velocity allowed in the landed state (m/s)", "units": "m/s", - "default": 1.5, - "decimalPlaces": 1, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "LNDMC_Z_VEL_MAX", "type": "Float", + "default": 0.5, "group": "Land Detector", - "category": "Standard", "shortDesc": "Multicopter max climb rate", "longDesc": "Maximum vertical velocity allowed in the landed state (m/s up and down)", "units": "m/s", - "default": 0.5, - "decimalPlaces": 1, - "min": -3.40282e+38, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "LND_FLIGHT_T_HI", "type": "Int32", + "default": 0, "group": "Land Detector", "category": "System", + "volatile": true, "shortDesc": "Total flight time in microseconds", "longDesc": "Total flight time of this autopilot. Higher 32 bits of the value. Flight time in microseconds = (LND_FLIGHT_T_HI << 32) | LND_FLIGHT_T_LO.", - "default": 0, - "volatile": true, - "decimalPlaces": 3, - "min": 0, - "max": 2.14748e+09 + "min": 0 }, { "name": "LND_FLIGHT_T_LO", "type": "Int32", + "default": 0, "group": "Land Detector", "category": "System", + "volatile": true, "shortDesc": "Total flight time in microseconds", "longDesc": "Total flight time of this autopilot. Lower 32 bits of the value. Flight time in microseconds = (LND_FLIGHT_T_HI << 32) | LND_FLIGHT_T_LO.", + "min": 0 + }, + { + "name": "LTEST_ACC_UNC", + "type": "Float", + "default": 10.0, + "group": "Landing target Estimator", + "shortDesc": "Acceleration uncertainty", + "longDesc": "Variance of acceleration measurement used for landing target position prediction. Higher values results in tighter following of the measurements and more lenient outlier rejection", + "min": 0.01, + "units": "(m/s^2)^2", + "decimalPlaces": 2 + }, + { + "name": "LTEST_MEAS_UNC", + "type": "Float", + "default": 0.005, + "group": "Landing target Estimator", + "shortDesc": "Landing target measurement uncertainty", + "longDesc": "Variance of the landing target measurement from the driver. Higher values results in less agressive following of the measurement and a smoother output as well as fewer rejected measurements.", + "units": "tan(rad)^2", + "decimalPlaces": 4 + }, + { + "name": "LTEST_MODE", + "type": "Int32", "default": 0, - "volatile": true, - "decimalPlaces": 3, + "group": "Landing target Estimator", + "shortDesc": "Landing target mode", + "longDesc": "Configure the mode of the landing target. Depending on the mode, the landing target observations are used differently to aid position estimation. Mode Moving: The landing target may be moving around while in the field of view of the vehicle. Landing target measurements are not used to aid positioning. Mode Stationary: The landing target is stationary. Measured velocity w.r.t. the landing target is used to aid velocity estimation.", "min": 0, - "max": 2.14748e+09 + "max": 1, + "values": [ + { + "value": 0, + "description": "Moving" + }, + { + "value": 1, + "description": "Stationary" + } + ] + }, + { + "name": "LTEST_POS_UNC_IN", + "type": "Float", + "default": 0.1, + "group": "Landing target Estimator", + "shortDesc": "Initial landing target position uncertainty", + "longDesc": "Initial variance of the relative landing target position in x and y direction", + "min": 0.001, + "units": "m^2", + "decimalPlaces": 3 + }, + { + "name": "LTEST_SCALE_X", + "type": "Float", + "default": 1.0, + "group": "Landing target Estimator", + "shortDesc": "Scale factor for sensor measurements in sensor x axis", + "longDesc": "Landing target x measurements are scaled by this factor before being used", + "min": 0.01, + "decimalPlaces": 3 + }, + { + "name": "LTEST_SCALE_Y", + "type": "Float", + "default": 1.0, + "group": "Landing target Estimator", + "shortDesc": "Scale factor for sensor measurements in sensor y axis", + "longDesc": "Landing target y measurements are scaled by this factor before being used", + "min": 0.01, + "decimalPlaces": 3 + }, + { + "name": "LTEST_VEL_UNC_IN", + "type": "Float", + "default": 0.1, + "group": "Landing target Estimator", + "shortDesc": "Initial landing target velocity uncertainty", + "longDesc": "Initial variance of the relative landing target velocity in x and y direction", + "min": 0.001, + "units": "(m/s)^2", + "decimalPlaces": 3 }, { "name": "LPE_ACC_XY", "type": "Float", + "default": 0.012, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Accelerometer xy noise density", "longDesc": "Data sheet noise density = 150ug/sqrt(Hz) = 0.0015 m/s^2/sqrt(Hz) Larger than data sheet to account for tilt error.", - "units": "m/s^2/sqrt(Hz)", - "default": 0.012, - "decimalPlaces": 4, "min": 1e-05, - "max": 2 + "max": 2.0, + "units": "m/s^2/sqrt(Hz)", + "decimalPlaces": 4 }, { "name": "LPE_ACC_Z", "type": "Float", + "default": 0.02, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Accelerometer z noise density", "longDesc": "Data sheet noise density = 150ug/sqrt(Hz) = 0.0015 m/s^2/sqrt(Hz)", - "units": "m/s^2/sqrt(Hz)", - "default": 0.02, - "decimalPlaces": 4, "min": 1e-05, - "max": 2 + "max": 2.0, + "units": "m/s^2/sqrt(Hz)", + "decimalPlaces": 4 }, { "name": "LPE_BAR_Z", "type": "Float", + "default": 3.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Barometric presssure altitude z standard deviation", - "units": "m", - "default": 3, - "decimalPlaces": 2, "min": 0.01, - "max": 100 + "max": 100.0, + "units": "m", + "decimalPlaces": 2 }, { "name": "LPE_EPH_MAX", "type": "Float", + "default": 3.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Max EPH allowed for GPS initialization", + "min": 1.0, + "max": 5.0, "units": "m", - "default": 3, - "decimalPlaces": 3, - "min": 1, - "max": 5 + "decimalPlaces": 3 }, { "name": "LPE_EPV_MAX", "type": "Float", + "default": 5.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Max EPV allowed for GPS initialization", + "min": 1.0, + "max": 5.0, "units": "m", - "default": 5, - "decimalPlaces": 3, - "min": 1, - "max": 5 + "decimalPlaces": 3 }, { "name": "LPE_FAKE_ORIGIN", "type": "Int32", - "group": "Local Position Estimator", - "category": "Standard", - "shortDesc": "Enable publishing of a fake global position (e.g for AUTO missions using Optical Flow) by initializing the estimator to the LPE_LAT/LON parameters when global information is unavailable", "default": 0, - "decimalPlaces": 3, + "group": "Local Position Estimator", + "shortDesc": "Enable publishing of a fake global position (e.g for AUTO missions using Optical Flow)\nby initializing the estimator to the LPE_LAT/LON parameters when global information is unavailable", "min": 0, "max": 1 }, { "name": "LPE_FGYRO_HP", "type": "Float", + "default": 0.001, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Flow gyro high pass filter cut off frequency", + "min": 0.0, + "max": 2.0, "units": "Hz", - "default": 0.001, - "decimalPlaces": 3, - "min": 0, - "max": 2 + "decimalPlaces": 3 }, { "name": "LPE_FLW_OFF_Z", "type": "Float", + "default": 0.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Optical flow z offset from center", + "min": -1.0, + "max": 1.0, "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -1, - "max": 1 + "decimalPlaces": 3 }, { "name": "LPE_FLW_QMIN", "type": "Int32", + "default": 150, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Optical flow minimum quality threshold", - "default": 150, - "decimalPlaces": 0, "min": 0, - "max": 255 + "max": 255, + "decimalPlaces": 0 }, { "name": "LPE_FLW_R", "type": "Float", + "default": 7.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Optical flow rotation (roll/pitch) noise gain", - "units": "m/s / (rad)", - "default": 7, - "decimalPlaces": 3, "min": 0.1, - "max": 10 + "max": 10.0, + "units": "m/s/rad", + "decimalPlaces": 3 }, { "name": "LPE_FLW_RR", "type": "Float", + "default": 7.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Optical flow angular velocity noise gain", - "units": "m/s / (rad/s)", - "default": 7, - "decimalPlaces": 3, - "min": 0, - "max": 10 + "min": 0.0, + "max": 10.0, + "units": "m/rad", + "decimalPlaces": 3 }, { "name": "LPE_FLW_SCALE", "type": "Float", + "default": 1.3, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Optical flow scale", - "units": "m", - "default": 1.3, - "decimalPlaces": 3, "min": 0.1, - "max": 10 + "max": 10.0, + "units": "m", + "decimalPlaces": 3 }, { "name": "LPE_FUSION", "type": "Int32", + "default": 145, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Integer bitmask controlling data fusion", "longDesc": "Set bits in the following positions to enable: 0 : Set to true to fuse GPS data if available, also requires GPS for altitude init 1 : Set to true to fuse optical flow data if available 2 : Set to true to fuse vision position 3 : Set to true to enable landing target 4 : Set to true to fuse land detector 5 : Set to true to publish AGL as local position down component 6 : Set to true to enable flow gyro compensation 7 : Set to true to enable baro fusion default (145 - GPS, baro, land detector)", - "default": 145, - "decimalPlaces": 3, "min": 0, - "max": 255 + "max": 255, + "bitmask": [ + { + "index": 0, + "description": "fuse GPS, requires GPS for alt. init" + }, + { + "index": 1, + "description": "fuse optical flow" + }, + { + "index": 2, + "description": "fuse vision position" + }, + { + "index": 3, + "description": "fuse landing target" + }, + { + "index": 4, + "description": "fuse land detector" + }, + { + "index": 5, + "description": "pub agl as lpos down" + }, + { + "index": 6, + "description": "flow gyro compensation" + }, + { + "index": 7, + "description": "fuse baro" + } + ] }, { "name": "LPE_GPS_DELAY", "type": "Float", + "default": 0.29, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "GPS delay compensaton", - "units": "sec", - "default": 0.29, - "decimalPlaces": 2, - "min": 0, - "max": 0.4 + "min": 0.0, + "max": 0.4, + "units": "s", + "decimalPlaces": 2 }, { "name": "LPE_GPS_VXY", "type": "Float", - "group": "Local Position Estimator", - "category": "Standard", - "shortDesc": "GPS xy velocity standard deviation. EPV used if greater than this value", - "units": "m/s", "default": 0.25, - "decimalPlaces": 3, + "group": "Local Position Estimator", + "shortDesc": "GPS xy velocity standard deviation.\nEPV used if greater than this value", "min": 0.01, - "max": 2 + "max": 2.0, + "units": "m/s", + "decimalPlaces": 3 }, { "name": "LPE_GPS_VZ", "type": "Float", + "default": 0.25, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "GPS z velocity standard deviation", - "units": "m/s", - "default": 0.25, - "decimalPlaces": 3, "min": 0.01, - "max": 2 + "max": 2.0, + "units": "m/s", + "decimalPlaces": 3 }, { "name": "LPE_GPS_XY", "type": "Float", + "default": 1.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Minimum GPS xy standard deviation, uses reported EPH if greater", - "units": "m", - "default": 1, - "decimalPlaces": 2, "min": 0.01, - "max": 5 + "max": 5.0, + "units": "m", + "decimalPlaces": 2 }, { "name": "LPE_GPS_Z", "type": "Float", + "default": 3.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Minimum GPS z standard deviation, uses reported EPV if greater", - "units": "m", - "default": 3, - "decimalPlaces": 2, "min": 0.01, - "max": 200 + "max": 200.0, + "units": "m", + "decimalPlaces": 2 }, { "name": "LPE_LAND_VXY", "type": "Float", + "default": 0.05, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Land detector xy velocity standard deviation", - "units": "m/s", - "default": 0.05, - "decimalPlaces": 3, "min": 0.01, - "max": 10 + "max": 10.0, + "units": "m/s", + "decimalPlaces": 3 }, { "name": "LPE_LAND_Z", "type": "Float", + "default": 0.03, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Land detector z standard deviation", - "units": "m", - "default": 0.03, - "decimalPlaces": 3, "min": 0.001, - "max": 10 + "max": 10.0, + "units": "m", + "decimalPlaces": 3 }, { "name": "LPE_LAT", "type": "Float", + "default": 47.397742, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Local origin latitude for nav w/o GPS", + "min": -90.0, + "max": 90.0, "units": "deg", - "default": 47.3977, - "decimalPlaces": 8, - "min": -90, - "max": 90 + "decimalPlaces": 8 }, { "name": "LPE_LDR_OFF_Z", "type": "Float", + "default": 0.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Lidar z offset from center of vehicle +down", + "min": -1.0, + "max": 1.0, "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -1, - "max": 1 + "decimalPlaces": 3 }, { "name": "LPE_LDR_Z", "type": "Float", + "default": 0.03, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Lidar z standard deviation", - "units": "m", - "default": 0.03, - "decimalPlaces": 3, "min": 0.01, - "max": 1 + "max": 1.0, + "units": "m", + "decimalPlaces": 3 }, { "name": "LPE_LON", "type": "Float", + "default": 8.545594, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Local origin longitude for nav w/o GPS", + "min": -180.0, + "max": 180.0, "units": "deg", - "default": 8.54559, - "decimalPlaces": 8, - "min": -180, - "max": 180 + "decimalPlaces": 8 }, { "name": "LPE_LT_COV", "type": "Float", + "default": 0.0001, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Minimum landing target standard covariance, uses reported covariance if greater", + "min": 0.0, + "max": 10.0, "units": "m^2", - "default": 0.0001, - "decimalPlaces": 2, - "min": 0, - "max": 10 + "decimalPlaces": 2 }, { "name": "LPE_PN_B", "type": "Float", + "default": 0.001, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Accel bias propagation noise density", - "units": "(m/s^2)/s/sqrt(Hz)", - "default": 0.001, - "decimalPlaces": 8, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0, + "units": "m/s^3/sqrt(Hz)", + "decimalPlaces": 8 }, { "name": "LPE_PN_P", "type": "Float", + "default": 0.1, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Position propagation noise density", "longDesc": "Increase to trust measurements more. Decrease to trust model more.", + "min": 0.0, + "max": 1.0, "units": "m/s/sqrt(Hz)", - "default": 0.1, - "decimalPlaces": 8, - "min": 0, - "max": 1 + "decimalPlaces": 8 }, { "name": "LPE_PN_T", "type": "Float", + "default": 0.001, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Terrain random walk noise density, hilly/outdoor (0.1), flat/Indoor (0.001)", - "units": "(m/s)/(sqrt(hz))", - "default": 0.001, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0, + "units": "m/s/sqrt(Hz)", + "decimalPlaces": 3 }, { "name": "LPE_PN_V", "type": "Float", + "default": 0.1, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Velocity propagation noise density", "longDesc": "Increase to trust measurements more. Decrease to trust model more.", - "units": "(m/s)/s/sqrt(Hz)", - "default": 0.1, - "decimalPlaces": 8, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0, + "units": "m/s^2/sqrt(Hz)", + "decimalPlaces": 8 }, { "name": "LPE_SNR_OFF_Z", "type": "Float", + "default": 0.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Sonar z offset from center of vehicle +down", + "min": -1.0, + "max": 1.0, "units": "m", - "default": 0, - "decimalPlaces": 3, - "min": -1, - "max": 1 + "decimalPlaces": 3 }, { "name": "LPE_SNR_Z", "type": "Float", + "default": 0.05, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Sonar z standard deviation", - "units": "m", - "default": 0.05, - "decimalPlaces": 3, "min": 0.01, - "max": 1 + "max": 1.0, + "units": "m", + "decimalPlaces": 3 }, { "name": "LPE_T_MAX_GRADE", "type": "Float", + "default": 1.0, "group": "Local Position Estimator", - "category": "Standard", - "shortDesc": "Terrain maximum percent grade, hilly/outdoor (100 = 45 deg), flat/Indoor (0 = 0 deg) Used to calculate increased terrain random walk nosie due to movement", + "shortDesc": "Terrain maximum percent grade, hilly/outdoor (100 = 45 deg), flat/Indoor (0 = 0 deg)\nUsed to calculate increased terrain random walk nosie due to movement", + "min": 0.0, + "max": 100.0, "units": "%", - "default": 1, - "decimalPlaces": 3, - "min": 0, - "max": 100 + "decimalPlaces": 3 }, { "name": "LPE_VIC_P", "type": "Float", + "default": 0.001, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Vicon position standard deviation", - "units": "m", - "default": 0.001, - "decimalPlaces": 4, "min": 0.0001, - "max": 1 + "max": 1.0, + "units": "m", + "decimalPlaces": 4 }, { "name": "LPE_VIS_DELAY", "type": "Float", + "default": 0.1, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Vision delay compensaton", "longDesc": "Set to zero to enable automatic compensation from measurement timestamps", - "units": "sec", - "default": 0.1, - "decimalPlaces": 2, - "min": 0, - "max": 0.1 + "min": 0.0, + "max": 0.1, + "units": "s", + "decimalPlaces": 2 }, { "name": "LPE_VIS_XY", "type": "Float", + "default": 0.1, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Vision xy standard deviation", - "units": "m", - "default": 0.1, - "decimalPlaces": 3, "min": 0.01, - "max": 1 + "max": 1.0, + "units": "m", + "decimalPlaces": 3 }, { "name": "LPE_VIS_Z", "type": "Float", + "default": 0.5, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Vision z standard deviation", - "units": "m", - "default": 0.5, - "decimalPlaces": 3, "min": 0.01, - "max": 100 + "max": 100.0, + "units": "m", + "decimalPlaces": 3 }, { "name": "LPE_VXY_PUB", "type": "Float", + "default": 0.3, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Required velocity xy standard deviation to publish position", - "units": "m/s", - "default": 0.3, - "decimalPlaces": 3, "min": 0.01, - "max": 1 + "max": 1.0, + "units": "m/s", + "decimalPlaces": 3 }, { "name": "LPE_X_LP", "type": "Float", + "default": 5.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Cut frequency for state publication", + "min": 5.0, + "max": 1000.0, "units": "Hz", - "default": 5, - "decimalPlaces": 0, - "min": 5, - "max": 1000 + "decimalPlaces": 0 }, { "name": "LPE_Z_PUB", "type": "Float", + "default": 1.0, "group": "Local Position Estimator", - "category": "Standard", "shortDesc": "Required z standard deviation to publish altitude/ terrain", - "units": "m", - "default": 1, - "decimalPlaces": 1, "min": 0.3, - "max": 5 - }, - { - "name": "LTEST_ACC_UNC", - "type": "Float", - "group": "Landing target Estimator", - "category": "Standard", - "shortDesc": "Acceleration uncertainty", - "longDesc": "Variance of acceleration measurement used for landing target position prediction. Higher values results in tighter following of the measurements and more lenient outlier rejection", - "units": "(m/s^2)^2", - "default": 10, - "decimalPlaces": 2, - "min": 0.01, - "max": 3.40282e+38 - }, - { - "name": "LTEST_MEAS_UNC", - "type": "Float", - "group": "Landing target Estimator", - "category": "Standard", - "shortDesc": "Landing target measurement uncertainty", - "longDesc": "Variance of the landing target measurement from the driver. Higher values results in less agressive following of the measurement and a smoother output as well as fewer rejected measurements.", - "units": "tan(rad)^2", - "default": 0.005, - "decimalPlaces": 4, - "min": -3.40282e+38, - "max": 3.40282e+38 + "max": 5.0, + "units": "m", + "decimalPlaces": 1 }, { - "name": "LTEST_MODE", + "name": "MAV_0_FORWARD", "type": "Int32", - "group": "Landing target Estimator", - "category": "Standard", - "shortDesc": "Landing target mode", - "longDesc": "Configure the mode of the landing target. Depending on the mode, the landing target observations are used differently to aid position estimation. Mode Moving: The landing target may be moving around while in the field of view of the vehicle. Landing target measurements are not used to aid positioning. Mode Stationary: The landing target is stationary. Measured velocity w.r.t. the landing target is used to aid velocity estimation.", - "default": 0, - "values": [ - { - "value": 0, - "description": "Moving" - }, - { - "value": 1, - "description": "Stationary" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 1 - }, - { - "name": "LTEST_POS_UNC_IN", - "type": "Float", - "group": "Landing target Estimator", - "category": "Standard", - "shortDesc": "Initial landing target position uncertainty", - "longDesc": "Initial variance of the relative landing target position in x and y direction", - "units": "m^2", - "default": 0.1, - "decimalPlaces": 3, - "min": 0.001, - "max": 3.40282e+38 - }, - { - "name": "LTEST_SCALE_X", - "type": "Float", - "group": "Landing target Estimator", - "category": "Standard", - "shortDesc": "Scale factor for sensor measurements in sensor x axis", - "longDesc": "Landing target x measurements are scaled by this factor before being used", - "default": 1, - "decimalPlaces": 3, - "min": 0.01, - "max": 3.40282e+38 - }, - { - "name": "LTEST_SCALE_Y", - "type": "Float", - "group": "Landing target Estimator", - "category": "Standard", - "shortDesc": "Scale factor for sensor measurements in sensor y axis", - "longDesc": "Landing target y measurements are scaled by this factor before being used", "default": 1, - "decimalPlaces": 3, - "min": 0.01, - "max": 3.40282e+38 - }, - { - "name": "LTEST_VEL_UNC_IN", - "type": "Float", - "group": "Landing target Estimator", - "category": "Standard", - "shortDesc": "Initial landing target velocity uncertainty", - "longDesc": "Initial variance of the relative landing target velocity in x and y direction", - "units": "(m/s)^2", - "default": 0.1, - "decimalPlaces": 3, - "min": 0.001, - "max": 3.40282e+38 + "group": "MAVLink", + "shortDesc": "Enable MAVLink Message forwarding for instance 0", + "longDesc": "If enabled, forward incoming MAVLink messages to other MAVLink ports if the message is either broadcast or the target is not the autopilot. This allows for example a GCS to talk to a camera that is connected to the autopilot via MAVLink (on a different link than the GCS).", + "rebootRequired": true }, { - "name": "MAV_{n}_CONFIG", + "name": "MAV_0_MODE", "type": "Int32", + "default": 0, "group": "MAVLink", - "category": "Standard", - "shortDesc": "Serial Configuration for MAVLink (instance 0)", - "longDesc": "Configure on which serial port to run MAVLink.", - "default": 101, + "shortDesc": "MAVLink Mode for instance 0", + "longDesc": "The MAVLink Mode defines the set of streamed messages (for example the vehicle's attitude) and their sending rates.", + "rebootRequired": true, "values": [ { "value": 0, - "description": "Disabled" - }, - { - "value": 6, - "description": "UART 6" - }, - { - "value": 101, - "description": "TELEM 1" + "description": "Normal" }, { - "value": 102, - "description": "TELEM 2" + "value": 1, + "description": "Custom" }, { - "value": 103, - "description": "TELEM 3" + "value": 2, + "description": "Onboard" }, { - "value": 104, - "description": "TELEM/SERIAL 4" + "value": 3, + "description": "OSD" }, { - "value": 201, - "description": "GPS 1" + "value": 4, + "description": "Magic" }, { - "value": 202, - "description": "GPS 2" + "value": 5, + "description": "Config" }, { - "value": 203, - "description": "GPS 3" + "value": 7, + "description": "Minimal" }, { - "value": 300, - "description": "Radio Controller" + "value": 8, + "description": "External Vision" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "MAV_{n}_FORWARD", + "name": "MAV_0_RADIO_CTL", "type": "Int32", + "default": 1, "group": "MAVLink", - "category": "Standard", - "shortDesc": "Enable MAVLink Message forwarding for instance 0", + "shortDesc": "Enable software throttling of mavlink on instance 0", + "longDesc": "If enabled, MAVLink messages will be throttled according to `txbuf` field reported by radio_status. Requires a radio to send the mavlink message RADIO_STATUS.", + "rebootRequired": true + }, + { + "name": "MAV_0_RATE", + "type": "Int32", + "default": 1200, + "group": "MAVLink", + "shortDesc": "Maximum MAVLink sending rate for instance 0", + "longDesc": "Configure the maximum sending rate for the MAVLink streams in Bytes/sec. If the configured streams exceed the maximum rate, the sending rate of each stream is automatically decreased. If this is set to 0 a value of half of the theoretical maximum bandwidth is used. This corresponds to baudrate/20 Bytes/s (baudrate/10 = maximum data rate on 8N1-configured links).", + "min": 0, + "units": "B/s", + "rebootRequired": true + }, + { + "name": "MAV_1_FORWARD", + "type": "Int32", + "default": 0, + "group": "MAVLink", + "shortDesc": "Enable MAVLink Message forwarding for instance 1", "longDesc": "If enabled, forward incoming MAVLink messages to other MAVLink ports if the message is either broadcast or the target is not the autopilot. This allows for example a GCS to talk to a camera that is connected to the autopilot via MAVLink (on a different link than the GCS).", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "rebootRequired": true }, { - "name": "MAV_{n}_MODE", + "name": "MAV_1_MODE", "type": "Int32", + "default": 2, "group": "MAVLink", - "category": "Standard", - "shortDesc": "MAVLink Mode for instance 0", + "shortDesc": "MAVLink Mode for instance 1", "longDesc": "The MAVLink Mode defines the set of streamed messages (for example the vehicle's attitude) and their sending rates.", - "default": 0, + "rebootRequired": true, "values": [ { "value": 0, @@ -7686,47 +6348,107 @@ "value": 8, "description": "External Vision" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "MAV_{n}_RADIO_CTL", + "name": "MAV_1_RADIO_CTL", "type": "Int32", + "default": 1, "group": "MAVLink", - "category": "Standard", - "shortDesc": "Enable software throttling of mavlink on instance 0", + "shortDesc": "Enable software throttling of mavlink on instance 1", "longDesc": "If enabled, MAVLink messages will be throttled according to `txbuf` field reported by radio_status. Requires a radio to send the mavlink message RADIO_STATUS.", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "rebootRequired": true }, { - "name": "MAV_{n}_RATE", + "name": "MAV_1_RATE", "type": "Int32", + "default": 0, "group": "MAVLink", - "category": "Standard", - "shortDesc": "Maximum MAVLink sending rate for instance 0", + "shortDesc": "Maximum MAVLink sending rate for instance 1", "longDesc": "Configure the maximum sending rate for the MAVLink streams in Bytes/sec. If the configured streams exceed the maximum rate, the sending rate of each stream is automatically decreased. If this is set to 0 a value of half of the theoretical maximum bandwidth is used. This corresponds to baudrate/20 Bytes/s (baudrate/10 = maximum data rate on 8N1-configured links).", + "min": 0, "units": "B/s", - "default": 1200, + "rebootRequired": true + }, + { + "name": "MAV_2_FORWARD", + "type": "Int32", + "default": 0, + "group": "MAVLink", + "shortDesc": "Enable MAVLink Message forwarding for instance 2", + "longDesc": "If enabled, forward incoming MAVLink messages to other MAVLink ports if the message is either broadcast or the target is not the autopilot. This allows for example a GCS to talk to a camera that is connected to the autopilot via MAVLink (on a different link than the GCS).", + "rebootRequired": true + }, + { + "name": "MAV_2_MODE", + "type": "Int32", + "default": 0, + "group": "MAVLink", + "shortDesc": "MAVLink Mode for instance 2", + "longDesc": "The MAVLink Mode defines the set of streamed messages (for example the vehicle's attitude) and their sending rates.", "rebootRequired": true, - "decimalPlaces": 3, + "values": [ + { + "value": 0, + "description": "Normal" + }, + { + "value": 1, + "description": "Custom" + }, + { + "value": 2, + "description": "Onboard" + }, + { + "value": 3, + "description": "OSD" + }, + { + "value": 4, + "description": "Magic" + }, + { + "value": 5, + "description": "Config" + }, + { + "value": 7, + "description": "Minimal" + }, + { + "value": 8, + "description": "External Vision" + } + ] + }, + { + "name": "MAV_2_RADIO_CTL", + "type": "Int32", + "default": 1, + "group": "MAVLink", + "shortDesc": "Enable software throttling of mavlink on instance 2", + "longDesc": "If enabled, MAVLink messages will be throttled according to `txbuf` field reported by radio_status. Requires a radio to send the mavlink message RADIO_STATUS.", + "rebootRequired": true + }, + { + "name": "MAV_2_RATE", + "type": "Int32", + "default": 0, + "group": "MAVLink", + "shortDesc": "Maximum MAVLink sending rate for instance 2", + "longDesc": "Configure the maximum sending rate for the MAVLink streams in Bytes/sec. If the configured streams exceed the maximum rate, the sending rate of each stream is automatically decreased. If this is set to 0 a value of half of the theoretical maximum bandwidth is used. This corresponds to baudrate/20 Bytes/s (baudrate/10 = maximum data rate on 8N1-configured links).", "min": 0, - "max": 2.14748e+09 + "units": "B/s", + "rebootRequired": true }, { "name": "MAV_BROADCAST", "type": "Int32", + "default": 0, "group": "MAVLink", - "category": "Standard", "shortDesc": "Broadcast heartbeats on local network", "longDesc": "This allows a ground control station to automatically find the drone on the local network.", - "default": 0, "values": [ { "value": 0, @@ -7740,78 +6462,56 @@ "value": 2, "description": "Only multicast" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "MAV_COMP_ID", "type": "Int32", + "default": 1, "group": "MAVLink", - "category": "Standard", "shortDesc": "MAVLink component ID", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, "min": 1, - "max": 250 + "max": 250, + "rebootRequired": true }, { "name": "MAV_FWDEXTSP", "type": "Int32", + "default": 1, "group": "MAVLink", - "category": "Standard", "shortDesc": "Forward external setpoint messages", - "longDesc": "If set to 1 incoming external setpoint messages will be directly forwarded to the controllers if in offboard control mode", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "If set to 1 incoming external setpoint messages will be directly forwarded to the controllers if in offboard control mode" }, { "name": "MAV_HASH_CHK_EN", "type": "Int32", + "default": 1, "group": "MAVLink", - "category": "Standard", "shortDesc": "Parameter hash check", - "longDesc": "Disabling the parameter hash check functionality will make the mavlink instance stream parameters continuously.", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Disabling the parameter hash check functionality will make the mavlink instance stream parameters continuously." }, { "name": "MAV_HB_FORW_EN", "type": "Int32", + "default": 1, "group": "MAVLink", - "category": "Standard", "shortDesc": "Hearbeat message forwarding", - "longDesc": "The mavlink hearbeat message will not be forwarded if this parameter is set to 'disabled'. The main reason for disabling heartbeats to be forwarded is because they confuse dronekit.", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "The mavlink hearbeat message will not be forwarded if this parameter is set to 'disabled'. The main reason for disabling heartbeats to be forwarded is because they confuse dronekit." }, { "name": "MAV_ODOM_LP", "type": "Int32", + "default": 0, "group": "MAVLink", - "category": "Standard", "shortDesc": "Activate ODOMETRY loopback", - "longDesc": "If set, it gets the data from 'vehicle_visual_odometry' instead of 'vehicle_odometry' serving as a loopback of the received ODOMETRY messages on the Mavlink receiver.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "If set, it gets the data from 'vehicle_visual_odometry' instead of 'vehicle_odometry' serving as a loopback of the received ODOMETRY messages on the Mavlink receiver." }, { "name": "MAV_PROTO_VER", "type": "Int32", + "default": 0, "group": "MAVLink", - "category": "Standard", "shortDesc": "MAVLink protocol version", - "default": 0, "values": [ { "value": 0, @@ -7825,56 +6525,52 @@ "value": 2, "description": "Always use version 2" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "MAV_RADIO_TOUT", "type": "Int32", + "default": 5, "group": "MAVLink", - "category": "Standard", "shortDesc": "Timeout in seconds for the RADIO_STATUS reports coming in", "longDesc": "If the connected radio stops reporting RADIO_STATUS for a certain time, a warning is triggered and, if MAV_X_RADIO_CTL is enabled, the software-flow control is reset.", - "units": "s", - "default": 5, - "decimalPlaces": 3, "min": 1, - "max": 250 + "max": 250, + "units": "s" }, { "name": "MAV_SIK_RADIO_ID", "type": "Int32", + "default": 0, "group": "MAVLink", - "category": "Standard", "shortDesc": "MAVLink SiK Radio ID", "longDesc": "When non-zero the MAVLink app will attempt to configure the SiK radio to this ID and re-set the parameter to 0. If the value is negative it will reset the complete radio config to factory defaults. Only applies if this mavlink instance is going through a SiK radio", - "default": 0, - "decimalPlaces": 3, "min": -1, "max": 240 }, { "name": "MAV_SYS_ID", "type": "Int32", + "default": 1, "group": "MAVLink", - "category": "Standard", "shortDesc": "MAVLink system ID", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, "min": 1, - "max": 250 + "max": 250, + "rebootRequired": true }, { "name": "MAV_TYPE", "type": "Int32", + "default": 2, "group": "MAVLink", - "category": "Standard", "shortDesc": "MAVLink airframe type", - "default": 2, + "min": 1, + "max": 27, "values": [ + { + "value": 0, + "description": "Generic micro air vehicle" + }, { "value": 1, "description": "Fixed wing aircraft" @@ -7983,574 +6679,423 @@ "value": 27, "description": "Onboard ADSB peripheral" } - ], - "decimalPlaces": 3, - "min": 1, - "max": 27 + ] }, { "name": "MAV_USEHILGPS", "type": "Int32", + "default": 0, "group": "MAVLink", - "category": "Standard", "shortDesc": "Use/Accept HIL GPS message even if not in HIL mode", - "longDesc": "If set to 1 incoming HIL GPS messages are parsed.", + "longDesc": "If set to 1 incoming HIL GPS messages are parsed." + }, + { + "name": "COM_OBS_AVOID", + "type": "Int32", "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "group": "Mission", + "shortDesc": "Flag to enable obstacle avoidance" }, { - "name": "MC_ACRO_EXPO", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Acro mode Expo factor for Roll and Pitch", - "longDesc": "Exponential factor for tuning the input curve shape. 0 Purely linear input curve 1 Purely cubic input curve", - "default": 0.69, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "name": "COM_TAKEOFF_ACT", + "type": "Int32", + "default": 0, + "group": "Mission", + "shortDesc": "Action after TAKEOFF has been accepted", + "longDesc": "The mode transition after TAKEOFF has completed successfully.", + "values": [ + { + "value": 0, + "description": "Hold" + }, + { + "value": 1, + "description": "Mission (if valid)" + } + ] }, { - "name": "MC_ACRO_EXPO_Y", + "name": "MIS_DIST_1WP", "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Acro mode Expo factor for Yaw", - "longDesc": "Exponential factor for tuning the input curve shape. 0 Purely linear input curve 1 Purely cubic input curve", - "default": 0.69, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": 900.0, + "group": "Mission", + "shortDesc": "Maximal horizontal distance from home to first waypoint", + "longDesc": "Failsafe check to prevent running mission stored from previous flight at a new takeoff location. Set a value of zero or less to disable. The mission will not be started if the current waypoint is more distant than MIS_DIS_1WP from the home position.", + "min": 0.0, + "max": 10000.0, + "units": "m", + "decimalPlaces": 1, + "increment": 100.0 }, { - "name": "MC_ACRO_P_MAX", + "name": "MIS_DIST_WPS", "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Max acro pitch rate default: 2 turns per second", - "units": "deg/s", - "default": 720, - "increment": 5, + "default": 900.0, + "group": "Mission", + "shortDesc": "Maximal horizontal distance between waypoint", + "longDesc": "Failsafe check to prevent running missions which are way too big. Set a value of zero or less to disable. The mission will not be started if any distance between two subsequent waypoints is greater than MIS_DIST_WPS.", + "min": 0.0, + "max": 10000.0, + "units": "m", "decimalPlaces": 1, - "min": 0, - "max": 1800 + "increment": 100.0 }, { - "name": "MC_ACRO_R_MAX", + "name": "MIS_LTRMIN_ALT", "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Max acro roll rate default: 2 turns per second", - "units": "deg/s", - "default": 720, - "increment": 5, + "default": -1.0, + "group": "Mission", + "shortDesc": "Minimum Loiter altitude", + "longDesc": "This is the minimum altitude the system will always obey. The intent is to stay out of ground effect. set to -1, if there shouldn't be a minimum loiter altitude", + "min": -1.0, + "max": 80.0, + "units": "m", "decimalPlaces": 1, + "increment": 0.5 + }, + { + "name": "MIS_MNT_YAW_CTL", + "type": "Int32", + "default": 0, + "group": "Mission", + "shortDesc": "Enable yaw control of the mount. (Only affects multicopters and ROI mission items)", + "longDesc": "If enabled, yaw commands will be sent to the mount and the vehicle will follow its heading towards the flight direction. If disabled, the vehicle will yaw towards the ROI.", "min": 0, - "max": 1800 + "max": 1, + "values": [ + { + "value": 0, + "description": "Disable" + }, + { + "value": 1, + "description": "Enable" + } + ] }, { - "name": "MC_ACRO_SUPEXPO", + "name": "MIS_TAKEOFF_ALT", "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Acro mode SuperExpo factor for Roll and Pitch", - "longDesc": "SuperExpo factor for refining the input curve shape tuned using MC_ACRO_EXPO. 0 Pure Expo function 0.7 resonable shape enhancement for intuitive stick feel 0.95 very strong bent input curve only near maxima have effect", - "default": 0.7, - "decimalPlaces": 2, - "min": 0, - "max": 0.95 + "default": 2.5, + "group": "Mission", + "shortDesc": "Take-off altitude", + "longDesc": "This is the minimum altitude the system will take off to.", + "min": 0.0, + "max": 80.0, + "units": "m", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "MC_ACRO_SUPEXPOY", + "name": "MIS_TAKEOFF_REQ", + "type": "Int32", + "default": 0, + "group": "Mission", + "shortDesc": "Take-off waypoint required", + "longDesc": "If set, the mission feasibility checker will check for a takeoff waypoint on the mission." + }, + { + "name": "MIS_YAW_ERR", "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Acro mode SuperExpo factor for Yaw", - "longDesc": "SuperExpo factor for refining the input curve shape tuned using MC_ACRO_EXPO_Y. 0 Pure Expo function 0.7 resonable shape enhancement for intuitive stick feel 0.95 very strong bent input curve only near maxima have effect", - "default": 0.7, - "decimalPlaces": 2, - "min": 0, - "max": 0.95 + "default": 12.0, + "group": "Mission", + "shortDesc": "Max yaw error in degrees needed for waypoint heading acceptance", + "min": 0.0, + "max": 90.0, + "units": "deg", + "decimalPlaces": 1, + "increment": 1.0 }, { - "name": "MC_ACRO_Y_MAX", + "name": "MIS_YAW_TMT", "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Max acro yaw rate default 1.5 turns per second", - "units": "deg/s", - "default": 540, - "increment": 5, + "default": -1.0, + "group": "Mission", + "shortDesc": "Time in seconds we wait on reaching target heading at a waypoint if it is forced", + "longDesc": "If set > 0 it will ignore the target heading for normal waypoint acceptance. If the waypoint forces the heading the timeout will matter. For example on VTOL forwards transition. Mainly useful for VTOLs that have less yaw authority and might not reach target yaw in wind. Disabled by default.", + "min": -1.0, + "max": 20.0, + "units": "s", "decimalPlaces": 1, - "min": 0, - "max": 1800 + "increment": 1.0 }, { - "name": "MC_AIRMODE", + "name": "MPC_YAW_MODE", "type": "Int32", - "group": "Mixer Output", - "category": "Standard", - "shortDesc": "Multicopter air-mode", - "longDesc": "The air-mode enables the mixer to increase the total thrust of the multirotor in order to keep attitude and rate control even at low and high throttle. This function should be disabled during tuning as it will help the controller to diverge if the closed-loop is unstable (i.e. the vehicle is not tuned yet). Enabling air-mode for yaw requires the use of an arming switch.", "default": 0, + "group": "Mission", + "shortDesc": "Yaw mode", + "longDesc": "Specifies the heading in Auto.", + "min": 0, + "max": 4, "values": [ { "value": 0, - "description": "Disabled" + "description": "towards waypoint" }, { "value": 1, - "description": "Roll/Pitch" + "description": "towards home" }, { "value": 2, - "description": "Roll/Pitch/Yaw" + "description": "away from home" + }, + { + "value": 3, + "description": "along trajectory" + }, + { + "value": 4, + "description": "towards waypoint (yaw first)" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "MC_BAT_SCALE_EN", - "type": "Int32", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Battery power level scaler", - "longDesc": "This compensates for voltage drop of the battery over time by attempting to normalize performance across the operating range of the battery. The copter should constantly behave as if it was fully charged with reduced max acceleration at lower battery percentages. i.e. if hover is at 0.5 throttle at 100% battery, it will still be 0.5 at 60% battery.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "MC_MAN_TILT_TAU", + "name": "NAV_ACC_RAD", "type": "Float", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Manual tilt input filter time constant Setting this parameter to 0 disables the filter", - "units": "s", - "default": 0, - "decimalPlaces": 2, - "min": 0, - "max": 2 + "default": 10.0, + "group": "Mission", + "shortDesc": "Acceptance Radius", + "longDesc": "Default acceptance radius, overridden by acceptance radius of waypoint if set. For fixed wing the L1 turning distance is used for horizontal acceptance.", + "min": 0.05, + "max": 200.0, + "units": "m", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "MC_PITCHRATE_D", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Pitch rate D gain", - "longDesc": "Pitch rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again.", - "default": 0.003, - "increment": 0.0005, - "decimalPlaces": 4, - "min": 0, - "max": 3.40282e+38 + "name": "NAV_DLL_ACT", + "type": "Int32", + "default": 0, + "group": "Mission", + "shortDesc": "Set data link loss failsafe mode", + "longDesc": "The data link loss failsafe will only be entered after a timeout, set by COM_DL_LOSS_T in seconds. Once the timeout occurs the selected action will be executed.", + "values": [ + { + "value": 0, + "description": "Disabled" + }, + { + "value": 1, + "description": "Hold mode" + }, + { + "value": 2, + "description": "Return mode" + }, + { + "value": 3, + "description": "Land mode" + }, + { + "value": 5, + "description": "Terminate" + }, + { + "value": 6, + "description": "Lockdown" + } + ] }, { - "name": "MC_PITCHRATE_FF", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Pitch rate feedforward", - "longDesc": "Improves tracking performance.", - "default": 0, - "decimalPlaces": 4, - "min": 0, - "max": 3.40282e+38 + "name": "NAV_FORCE_VT", + "type": "Int32", + "default": 1, + "group": "Mission", + "shortDesc": "Force VTOL mode takeoff and land" }, { - "name": "MC_PITCHRATE_I", + "name": "NAV_FW_ALTL_RAD", "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Pitch rate I gain", - "longDesc": "Pitch rate integral gain. Can be set to compensate static thrust difference or gravity center offset.", - "default": 0.2, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0, - "max": 3.40282e+38 + "default": 5.0, + "group": "Mission", + "shortDesc": "FW Altitude Acceptance Radius before a landing", + "longDesc": "Altitude acceptance used for the last waypoint before a fixed-wing landing. This is usually smaller than the standard vertical acceptance because close to the ground higher accuracy is required.", + "min": 0.05, + "max": 200.0, + "units": "m", + "decimalPlaces": 1 }, { - "name": "MC_PITCHRATE_K", + "name": "NAV_FW_ALT_RAD", "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Pitch rate controller gain", - "longDesc": "Global gain of the controller. This gain scales the P, I and D terms of the controller: output = MC_PITCHRATE_K * (MC_PITCHRATE_P * error + MC_PITCHRATE_I * error_integral + MC_PITCHRATE_D * error_derivative) Set MC_PITCHRATE_P=1 to implement a PID in the ideal form. Set MC_PITCHRATE_K=1 to implement a PID in the parallel form.", - "default": 1, - "increment": 0.0005, - "decimalPlaces": 4, - "min": 0.01, - "max": 5 + "default": 10.0, + "group": "Mission", + "shortDesc": "FW Altitude Acceptance Radius", + "longDesc": "Acceptance radius for fixedwing altitude.", + "min": 0.05, + "max": 200.0, + "units": "m", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "MC_PITCHRATE_MAX", + "name": "NAV_LOITER_RAD", "type": "Float", - "group": "Multicopter Attitude Control", - "category": "Standard", - "shortDesc": "Max pitch rate", - "longDesc": "Limit for pitch rate in manual and auto modes (except acro). Has effect for large rotations in autonomous mode, to avoid large control output and mixer saturation. This is not only limited by the vehicle's properties, but also by the maximum measurement rate of the gyro.", - "units": "deg/s", - "default": 220, - "increment": 5, + "default": 50.0, + "group": "Mission", + "shortDesc": "Loiter radius (FW only)", + "longDesc": "Default value of loiter radius for missions, Hold mode, Return mode, etc. (fixedwing only).", + "min": 25.0, + "max": 1000.0, + "units": "m", "decimalPlaces": 1, - "min": 0, - "max": 1800 + "increment": 0.5 }, { - "name": "MC_PITCHRATE_P", + "name": "NAV_MC_ALT_RAD", "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Pitch rate P gain", - "longDesc": "Pitch rate proportional gain, i.e. control output for angular speed error 1 rad/s.", - "default": 0.15, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0.01, - "max": 0.6 + "default": 0.8, + "group": "Mission", + "shortDesc": "MC Altitude Acceptance Radius", + "longDesc": "Acceptance radius for multicopter altitude.", + "min": 0.05, + "max": 200.0, + "units": "m", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "MC_PITCH_P", - "type": "Float", - "group": "Multicopter Attitude Control", - "category": "Standard", - "shortDesc": "Pitch P gain", - "longDesc": "Pitch proportional gain, i.e. desired angular speed in rad/s for error 1 rad.", - "units": "1/s", - "default": 6.5, - "increment": 0.1, - "decimalPlaces": 2, - "min": 0, - "max": 12 + "name": "NAV_RCL_ACT", + "type": "Int32", + "default": 2, + "group": "Mission", + "shortDesc": "Set RC loss failsafe mode", + "longDesc": "The RC loss failsafe will only be entered after a timeout, set by COM_RC_LOSS_T in seconds. If RC input checks have been disabled by setting the COM_RC_IN_MODE param it will not be triggered.", + "values": [ + { + "value": 0, + "description": "Disabled" + }, + { + "value": 1, + "description": "Hold mode" + }, + { + "value": 2, + "description": "Return mode" + }, + { + "value": 3, + "description": "Land mode" + }, + { + "value": 5, + "description": "Terminate" + }, + { + "value": 6, + "description": "Lockdown" + } + ] }, { - "name": "MC_PR_INT_LIM", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Pitch rate integrator limit", - "longDesc": "Pitch rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large pitch moment trim changes.", - "default": 0.3, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 + "name": "NAV_TRAFF_AVOID", + "type": "Int32", + "default": 1, + "group": "Mission", + "shortDesc": "Set traffic avoidance mode", + "longDesc": "Enabling this will allow the system to respond to transponder data from e.g. ADSB transponders", + "values": [ + { + "value": 0, + "description": "Disabled" + }, + { + "value": 1, + "description": "Warn only" + }, + { + "value": 2, + "description": "Return mode" + }, + { + "value": 3, + "description": "Land mode" + }, + { + "value": 4, + "description": "Position Hold mode" + } + ] }, { - "name": "MC_RATT_TH", + "name": "NAV_TRAFF_A_RADM", "type": "Float", - "group": "Multicopter Attitude Control", - "category": "Standard", - "shortDesc": "Threshold for Rattitude mode", - "longDesc": "Manual input needed in order to override attitude control rate setpoints and instead pass manual stick inputs as rate setpoints", - "default": 0.8, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": 500.0, + "group": "Mission", + "shortDesc": "Set NAV TRAFFIC AVOID RADIUS MANNED", + "longDesc": "Defines the Radius where NAV TRAFFIC AVOID is Called For Manned Aviation", + "min": 500.0, + "units": "m" }, { - "name": "MC_ROLLRATE_D", + "name": "NAV_TRAFF_A_RADU", "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Roll rate D gain", - "longDesc": "Roll rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again.", - "default": 0.003, - "increment": 0.0005, - "decimalPlaces": 4, - "min": 0, - "max": 0.01 + "default": 10.0, + "group": "Mission", + "shortDesc": "Set NAV TRAFFIC AVOID RADIUS", + "longDesc": "Defines the Radius where NAV TRAFFIC AVOID is Called For Unmanned Aviation", + "min": 10.0, + "max": 500.0, + "units": "m" }, { - "name": "MC_ROLLRATE_FF", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Roll rate feedforward", - "longDesc": "Improves tracking performance.", + "name": "MC_AIRMODE", + "type": "Int32", "default": 0, - "decimalPlaces": 4, - "min": 0, - "max": 3.40282e+38 + "group": "Mixer Output", + "shortDesc": "Multicopter air-mode", + "longDesc": "The air-mode enables the mixer to increase the total thrust of the multirotor in order to keep attitude and rate control even at low and high throttle. This function should be disabled during tuning as it will help the controller to diverge if the closed-loop is unstable (i.e. the vehicle is not tuned yet). Enabling air-mode for yaw requires the use of an arming switch.", + "values": [ + { + "value": 0, + "description": "Disabled" + }, + { + "value": 1, + "description": "Roll/Pitch" + }, + { + "value": 2, + "description": "Roll/Pitch/Yaw" + } + ] }, { - "name": "MC_ROLLRATE_I", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Roll rate I gain", - "longDesc": "Roll rate integral gain. Can be set to compensate static thrust difference or gravity center offset.", - "default": 0.2, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "MC_ROLLRATE_K", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Roll rate controller gain", - "longDesc": "Global gain of the controller. This gain scales the P, I and D terms of the controller: output = MC_ROLLRATE_K * (MC_ROLLRATE_P * error + MC_ROLLRATE_I * error_integral + MC_ROLLRATE_D * error_derivative) Set MC_ROLLRATE_P=1 to implement a PID in the ideal form. Set MC_ROLLRATE_K=1 to implement a PID in the parallel form.", - "default": 1, - "increment": 0.0005, - "decimalPlaces": 4, - "min": 0.01, - "max": 5 - }, - { - "name": "MC_ROLLRATE_MAX", - "type": "Float", - "group": "Multicopter Attitude Control", - "category": "Standard", - "shortDesc": "Max roll rate", - "longDesc": "Limit for roll rate in manual and auto modes (except acro). Has effect for large rotations in autonomous mode, to avoid large control output and mixer saturation. This is not only limited by the vehicle's properties, but also by the maximum measurement rate of the gyro.", - "units": "deg/s", - "default": 220, - "increment": 5, - "decimalPlaces": 1, - "min": 0, - "max": 1800 - }, - { - "name": "MC_ROLLRATE_P", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Roll rate P gain", - "longDesc": "Roll rate proportional gain, i.e. control output for angular speed error 1 rad/s.", - "default": 0.15, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0.01, - "max": 0.5 - }, - { - "name": "MC_ROLL_P", - "type": "Float", - "group": "Multicopter Attitude Control", - "category": "Standard", - "shortDesc": "Roll P gain", - "longDesc": "Roll proportional gain, i.e. desired angular speed in rad/s for error 1 rad.", - "units": "1/s", - "default": 6.5, - "increment": 0.1, - "decimalPlaces": 2, - "min": 0, - "max": 12 - }, - { - "name": "MC_RR_INT_LIM", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Roll rate integrator limit", - "longDesc": "Roll rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large roll moment trim changes.", - "default": 0.3, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "MC_YAWRATE_D", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Yaw rate D gain", - "longDesc": "Yaw rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "MC_YAWRATE_FF", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Yaw rate feedforward", - "longDesc": "Improves tracking performance.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 4, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "MC_YAWRATE_I", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Yaw rate I gain", - "longDesc": "Yaw rate integral gain. Can be set to compensate static thrust difference or gravity center offset.", - "default": 0.1, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "MC_YAWRATE_K", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Yaw rate controller gain", - "longDesc": "Global gain of the controller. This gain scales the P, I and D terms of the controller: output = MC_YAWRATE_K * (MC_YAWRATE_P * error + MC_YAWRATE_I * error_integral + MC_YAWRATE_D * error_derivative) Set MC_YAWRATE_P=1 to implement a PID in the ideal form. Set MC_YAWRATE_K=1 to implement a PID in the parallel form.", - "default": 1, - "increment": 0.0005, - "decimalPlaces": 4, - "min": 0, - "max": 5 - }, - { - "name": "MC_YAWRATE_MAX", - "type": "Float", - "group": "Multicopter Attitude Control", - "category": "Standard", - "shortDesc": "Max yaw rate", - "units": "deg/s", - "default": 200, - "increment": 5, - "decimalPlaces": 1, - "min": 0, - "max": 1800 - }, - { - "name": "MC_YAWRATE_P", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Yaw rate P gain", - "longDesc": "Yaw rate proportional gain, i.e. control output for angular speed error 1 rad/s.", - "default": 0.2, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 0.6 - }, - { - "name": "MC_YAW_P", - "type": "Float", - "group": "Multicopter Attitude Control", - "category": "Standard", - "shortDesc": "Yaw P gain", - "longDesc": "Yaw proportional gain, i.e. desired angular speed in rad/s for error 1 rad.", - "units": "1/s", - "default": 2.8, - "increment": 0.1, - "decimalPlaces": 2, - "min": 0, - "max": 5 - }, - { - "name": "MC_YAW_WEIGHT", - "type": "Float", - "group": "Multicopter Attitude Control", - "category": "Standard", - "shortDesc": "Yaw weight", - "longDesc": "A fraction [0,1] deprioritizing yaw compared to roll and pitch in non-linear attitude control. Deprioritizing yaw is necessary because multicopters have much less control authority in yaw compared to the other axes and it makes sense because yaw is not critical for stable hovering or 3D navigation. For yaw control tuning use MC_YAW_P. This ratio has no inpact on the yaw gain.", - "units": "1/s", - "default": 0.4, - "increment": 0.1, - "decimalPlaces": 2, - "min": 0, - "max": 1 - }, - { - "name": "MC_YR_INT_LIM", - "type": "Float", - "group": "Multicopter Rate Control", - "category": "Standard", - "shortDesc": "Yaw rate integrator limit", - "longDesc": "Yaw rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large yaw moment trim changes.", - "default": 0.3, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "MIS_ALTMODE", + "name": "MOT_ORDERING", "type": "Int32", - "group": "Mission", - "category": "Standard", - "shortDesc": "Altitude setpoint mode", - "longDesc": "0: the system will follow a zero order hold altitude setpoint 1: the system will follow a first order hold altitude setpoint values follow the definition in enum mission_altitude_mode", - "default": 1, + "default": 0, + "group": "Mixer Output", + "shortDesc": "Motor Ordering", + "longDesc": "Determines the motor ordering. This can be used for example in combination with a 4-in-1 ESC that assumes a motor ordering which is different from PX4. ONLY supported for Quads. When changing this, make sure to test the motor response without props first.", "values": [ { "value": 0, - "description": "Zero Order Hold" + "description": "PX4" }, { "value": 1, - "description": "First Order Hold" + "description": "Betaflight / Cleanflight" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 1 - }, - { - "name": "MIS_DIST_1WP", - "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "Maximal horizontal distance from home to first waypoint", - "longDesc": "Failsafe check to prevent running mission stored from previous flight at a new takeoff location. Set a value of zero or less to disable. The mission will not be started if the current waypoint is more distant than MIS_DIS_1WP from the home position.", - "units": "m", - "default": 900, - "increment": 100, - "decimalPlaces": 1, - "min": 0, - "max": 10000 + ] }, { - "name": "MIS_DIST_WPS", - "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "Maximal horizontal distance between waypoint", - "longDesc": "Failsafe check to prevent running missions which are way too big. Set a value of zero or less to disable. The mission will not be started if any distance between two subsequent waypoints is greater than MIS_DIST_WPS.", - "units": "m", - "default": 900, - "increment": 100, - "decimalPlaces": 1, - "min": 0, - "max": 10000 - }, - { - "name": "MIS_LTRMIN_ALT", - "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "Minimum Loiter altitude", - "longDesc": "This is the minimum altitude the system will always obey. The intent is to stay out of ground effect. set to -1, if there shouldn't be a minimum loiter altitude", - "units": "m", - "default": -1, - "increment": 0.5, - "decimalPlaces": 1, - "min": -1, - "max": 80 + "name": "MNT_DO_STAB", + "type": "Int32", + "default": 0, + "group": "Mount", + "shortDesc": "Stabilize the mount (set to true for servo gimbal, false for passthrough).\nDoes not affect MAVLINK_ROI input" }, { - "name": "MIS_MNT_YAW_CTL", + "name": "MNT_MAN_PITCH", "type": "Int32", - "group": "Mission", - "category": "Standard", - "shortDesc": "Enable yaw control of the mount. (Only affects multicopters and ROI mission items)", - "longDesc": "If enabled, yaw commands will be sent to the mount and the vehicle will follow its heading towards the flight direction. If disabled, the vehicle will yaw towards the ROI.", "default": 0, + "group": "Mount", + "shortDesc": "Auxiliary channel to control pitch (in AUX input or manual mode)", + "min": 0, + "max": 6, "values": [ { "value": 0, @@ -8558,136 +7103,38 @@ }, { "value": 1, - "description": "Enable" + "description": "AUX1" + }, + { + "value": 2, + "description": "AUX2" + }, + { + "value": 3, + "description": "AUX3" + }, + { + "value": 4, + "description": "AUX4" + }, + { + "value": 5, + "description": "AUX5" + }, + { + "value": 6, + "description": "AUX6" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 1 - }, - { - "name": "MIS_TAKEOFF_ALT", - "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "Take-off altitude", - "longDesc": "This is the minimum altitude the system will take off to.", - "units": "m", - "default": 2.5, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 80 + ] }, { - "name": "MIS_TAKEOFF_REQ", + "name": "MNT_MAN_ROLL", "type": "Int32", - "group": "Mission", - "category": "Standard", - "shortDesc": "Take-off waypoint required", - "longDesc": "If set, the mission feasibility checker will check for a takeoff waypoint on the mission.", "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "MIS_YAW_ERR", - "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "Max yaw error in degrees needed for waypoint heading acceptance", - "units": "deg", - "default": 12, - "increment": 1, - "decimalPlaces": 1, - "min": 0, - "max": 90 - }, - { - "name": "MIS_YAW_TMT", - "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "Time in seconds we wait on reaching target heading at a waypoint if it is forced", - "longDesc": "If set > 0 it will ignore the target heading for normal waypoint acceptance. If the waypoint forces the heading the timeout will matter. For example on VTOL forwards transition. Mainly useful for VTOLs that have less yaw authority and might not reach target yaw in wind. Disabled by default.", - "units": "s", - "default": -1, - "increment": 1, - "decimalPlaces": 1, - "min": -1, - "max": 20 - }, - { - "name": "MKBLCTRL_TEST", - "type": "Int32", - "group": "MKBLCTRL Testmode", - "category": "Standard", - "shortDesc": "Test mode (Identify) of MKBLCTRL Driver", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "MNT_DO_STAB", - "type": "Int32", - "group": "Mount", - "category": "Standard", - "shortDesc": "Stabilize the mount (set to true for servo gimbal, false for passthrough). Does not affect MAVLINK_ROI input", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "MNT_MAN_PITCH", - "type": "Int32", - "group": "Mount", - "category": "Standard", - "shortDesc": "Auxiliary channel to control pitch (in AUX input or manual mode)", - "default": 0, - "values": [ - { - "value": 0, - "description": "Disable" - }, - { - "value": 1, - "description": "AUX1" - }, - { - "value": 2, - "description": "AUX2" - }, - { - "value": 3, - "description": "AUX3" - }, - { - "value": 4, - "description": "AUX4" - }, - { - "value": 5, - "description": "AUX5" - }, - { - "value": 6, - "description": "AUX6" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 6 - }, - { - "name": "MNT_MAN_ROLL", - "type": "Int32", "group": "Mount", - "category": "Standard", "shortDesc": "Auxiliary channel to control roll (in AUX input or manual mode)", - "default": 0, + "min": 0, + "max": 6, "values": [ { "value": 0, @@ -8717,18 +7164,16 @@ "value": 6, "description": "AUX6" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 6 + ] }, { "name": "MNT_MAN_YAW", "type": "Int32", + "default": 0, "group": "Mount", - "category": "Standard", "shortDesc": "Auxiliary channel to control yaw (in AUX input or manual mode)", - "default": 0, + "min": 0, + "max": 6, "values": [ { "value": 0, @@ -8758,43 +7203,34 @@ "value": 6, "description": "AUX6" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 6 + ] }, { "name": "MNT_MAV_COMPID", "type": "Int32", + "default": 154, "group": "Mount", - "category": "Standard", "shortDesc": "Mavlink Component ID of the mount", - "longDesc": "If MNT_MODE_OUT is MAVLINK, mount configure/control commands will be sent with this component ID.", - "default": 154, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "If MNT_MODE_OUT is MAVLINK, mount configure/control commands will be sent with this component ID." }, { "name": "MNT_MAV_SYSID", "type": "Int32", + "default": 1, "group": "Mount", - "category": "Standard", "shortDesc": "Mavlink System ID of the mount", - "longDesc": "If MNT_MODE_OUT is MAVLINK, mount configure/control commands will be sent with this target ID.", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "If MNT_MODE_OUT is MAVLINK, mount configure/control commands will be sent with this target ID." }, { "name": "MNT_MODE_IN", "type": "Int32", + "default": -1, "group": "Mount", - "category": "Standard", "shortDesc": "Mount input mode", "longDesc": "RC uses the AUX input channels (see MNT_MAN_* parameters), MAVLINK_ROI uses the MAV_CMD_DO_SET_ROI Mavlink message, and MAVLINK_DO_MOUNT the MAV_CMD_DO_MOUNT_CONFIGURE and MAV_CMD_DO_MOUNT_CONTROL messages to control a mount.", - "default": -1, + "min": -1, + "max": 3, + "rebootRequired": true, "values": [ { "value": -1, @@ -8816,20 +7252,17 @@ "value": 3, "description": "MAVLINK_DO_MOUNT" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -1, - "max": 3 + ] }, { "name": "MNT_MODE_OUT", "type": "Int32", + "default": 0, "group": "Mount", - "category": "Standard", "shortDesc": "Mount output mode", "longDesc": "AUX uses the mixer output Control Group #2. MAVLINK uses the MAV_CMD_DO_MOUNT_CONFIGURE and MAV_CMD_DO_MOUNT_CONTROL MavLink messages to control a mount (set MNT_MAV_SYSID & MNT_MAV_COMPID)", - "default": 0, + "min": 0, + "max": 1, "values": [ { "value": 0, @@ -8839,446 +7272,510 @@ "value": 1, "description": "MAVLINK" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 1 + ] }, { "name": "MNT_OB_LOCK_MODE", "type": "Float", + "default": 0.0, "group": "Mount", - "category": "Standard", - "shortDesc": "Mixer value for selecting a locking mode if required for the gimbal (only in AUX output mode)", - "default": 0, - "decimalPlaces": 3, - "min": -1, - "max": 1 + "shortDesc": "Mixer value for selecting a locking mode\nif required for the gimbal (only in AUX output mode)", + "min": -1.0, + "max": 1.0, + "decimalPlaces": 3 }, { "name": "MNT_OB_NORM_MODE", "type": "Float", + "default": -1.0, "group": "Mount", - "category": "Standard", - "shortDesc": "Mixer value for selecting normal mode if required by the gimbal (only in AUX output mode)", - "default": -1, - "decimalPlaces": 3, - "min": -1, - "max": 1 + "shortDesc": "Mixer value for selecting normal mode\nif required by the gimbal (only in AUX output mode)", + "min": -1.0, + "max": 1.0, + "decimalPlaces": 3 }, { "name": "MNT_OFF_PITCH", "type": "Float", + "default": 0.0, "group": "Mount", - "category": "Standard", "shortDesc": "Offset for pitch channel output in degrees", - "default": 0, - "decimalPlaces": 1, - "min": -360, - "max": 360 + "min": -360.0, + "max": 360.0, + "decimalPlaces": 1 }, { "name": "MNT_OFF_ROLL", "type": "Float", + "default": 0.0, "group": "Mount", - "category": "Standard", "shortDesc": "Offset for roll channel output in degrees", - "default": 0, - "decimalPlaces": 1, - "min": -360, - "max": 360 + "min": -360.0, + "max": 360.0, + "decimalPlaces": 1 }, { "name": "MNT_OFF_YAW", "type": "Float", + "default": 0.0, "group": "Mount", - "category": "Standard", "shortDesc": "Offset for yaw channel output in degrees", - "default": 0, - "decimalPlaces": 1, - "min": -360, - "max": 360 + "min": -360.0, + "max": 360.0, + "decimalPlaces": 1 }, { "name": "MNT_RANGE_PITCH", "type": "Float", + "default": 360.0, "group": "Mount", - "category": "Standard", "shortDesc": "Range of pitch channel output in degrees (only in AUX output mode)", - "default": 360, - "decimalPlaces": 1, - "min": 1, - "max": 720 + "min": 1.0, + "max": 720.0, + "decimalPlaces": 1 }, { "name": "MNT_RANGE_ROLL", "type": "Float", + "default": 360.0, "group": "Mount", - "category": "Standard", "shortDesc": "Range of roll channel output in degrees (only in AUX output mode)", - "default": 360, - "decimalPlaces": 1, - "min": 1, - "max": 720 + "min": 1.0, + "max": 720.0, + "decimalPlaces": 1 }, { "name": "MNT_RANGE_YAW", "type": "Float", + "default": 360.0, "group": "Mount", - "category": "Standard", "shortDesc": "Range of yaw channel output in degrees (only in AUX output mode)", - "default": 360, + "min": 1.0, + "max": 720.0, + "decimalPlaces": 1 + }, + { + "name": "MC_PITCHRATE_MAX", + "type": "Float", + "default": 220.0, + "group": "Multicopter Attitude Control", + "shortDesc": "Max pitch rate", + "longDesc": "Limit for pitch rate in manual and auto modes (except acro). Has effect for large rotations in autonomous mode, to avoid large control output and mixer saturation. This is not only limited by the vehicle's properties, but also by the maximum measurement rate of the gyro.", + "min": 0.0, + "max": 1800.0, + "units": "deg/s", "decimalPlaces": 1, - "min": 1, - "max": 720 + "increment": 5.0 }, { - "name": "MOT_ORDERING", - "type": "Int32", - "group": "Mixer Output", - "category": "Standard", - "shortDesc": "Motor Ordering", - "longDesc": "Determines the motor ordering. This can be used for example in combination with a 4-in-1 ESC that assumes a motor ordering which is different from PX4. ONLY supported for Quads. When changing this, make sure to test the motor response without props first.", - "default": 0, - "values": [ - { - "value": 0, - "description": "PX4" - }, - { - "value": 1, - "description": "Betaflight / Cleanflight" - } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "MC_PITCH_P", + "type": "Float", + "default": 6.5, + "group": "Multicopter Attitude Control", + "shortDesc": "Pitch P gain", + "longDesc": "Pitch proportional gain, i.e. desired angular speed in rad/s for error 1 rad.", + "min": 0.0, + "max": 12.0, + "units": "Hz", + "decimalPlaces": 2, + "increment": 0.1 }, { - "name": "MOT_POLE_COUNT", - "type": "Int32", - "group": "DShot", - "category": "Standard", - "shortDesc": "Number of magnetic poles of the motors", - "longDesc": "Specify the number of magnetic poles of the motors. It is required to compute the RPM value from the eRPM returned with the ESC telemetry. Either get the number from the motor spec sheet or count the magnets on the bell of the motor (not the stator magnets). Typical motors for 5 inch props have 14 poles.", - "default": 14, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "MC_RATT_TH", + "type": "Float", + "default": 0.8, + "group": "Multicopter Attitude Control", + "shortDesc": "Threshold for Rattitude mode", + "longDesc": "Manual input needed in order to override attitude control rate setpoints and instead pass manual stick inputs as rate setpoints", + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2, + "increment": 0.01 }, { - "name": "MOT_SLEW_MAX", + "name": "MC_ROLLRATE_MAX", "type": "Float", - "group": "PWM Outputs", - "category": "Standard", - "shortDesc": "Minimum motor rise time (slew rate limit)", - "longDesc": "Minimum time allowed for the motor input signal to pass through a range of 1000 PWM units. A value x means that the motor signal can only go from 1000 to 2000 PWM in maximum x seconds. Zero means that slew rate limiting is disabled.", - "units": "s/(1000*PWM)", - "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 3.40282e+38 + "default": 220.0, + "group": "Multicopter Attitude Control", + "shortDesc": "Max roll rate", + "longDesc": "Limit for roll rate in manual and auto modes (except acro). Has effect for large rotations in autonomous mode, to avoid large control output and mixer saturation. This is not only limited by the vehicle's properties, but also by the maximum measurement rate of the gyro.", + "min": 0.0, + "max": 1800.0, + "units": "deg/s", + "decimalPlaces": 1, + "increment": 5.0 }, { - "name": "MPC_ACC_DOWN_MAX", + "name": "MC_ROLL_P", "type": "Float", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Maximum vertical acceleration in velocity controlled modes down", - "units": "m/s/s", - "default": 3, - "increment": 1, + "default": 6.5, + "group": "Multicopter Attitude Control", + "shortDesc": "Roll P gain", + "longDesc": "Roll proportional gain, i.e. desired angular speed in rad/s for error 1 rad.", + "min": 0.0, + "max": 12.0, + "units": "Hz", "decimalPlaces": 2, - "min": 2, - "max": 15 + "increment": 0.1 }, { - "name": "MPC_ACC_HOR", + "name": "MC_YAWRATE_MAX", "type": "Float", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Acceleration for auto and for manual", - "longDesc": "Note: In manual, this parameter is only used in MPC_POS_MODE 1.", - "units": "m/s/s", - "default": 3, - "increment": 1, - "decimalPlaces": 2, - "min": 2, - "max": 15 + "default": 200.0, + "group": "Multicopter Attitude Control", + "shortDesc": "Max yaw rate", + "min": 0.0, + "max": 1800.0, + "units": "deg/s", + "decimalPlaces": 1, + "increment": 5.0 }, { - "name": "MPC_ACC_HOR_MAX", + "name": "MC_YAW_P", "type": "Float", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Maximum horizontal acceleration for auto mode and for manual mode", - "longDesc": "Maximum deceleration for MPC_POS_MODE 1. Maximum acceleration and deceleration for MPC_POS_MODE 3.", - "units": "m/s/s", - "default": 5, - "increment": 1, + "default": 2.8, + "group": "Multicopter Attitude Control", + "shortDesc": "Yaw P gain", + "longDesc": "Yaw proportional gain, i.e. desired angular speed in rad/s for error 1 rad.", + "min": 0.0, + "max": 5.0, + "units": "Hz", "decimalPlaces": 2, - "min": 2, - "max": 15 + "increment": 0.1 }, { - "name": "MPC_ACC_UP_MAX", + "name": "MC_YAW_WEIGHT", "type": "Float", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Maximum vertical acceleration in velocity controlled modes upward", - "units": "m/s/s", - "default": 4, - "increment": 1, + "default": 0.4, + "group": "Multicopter Attitude Control", + "shortDesc": "Yaw weight", + "longDesc": "A fraction [0,1] deprioritizing yaw compared to roll and pitch in non-linear attitude control. Deprioritizing yaw is necessary because multicopters have much less control authority in yaw compared to the other axes and it makes sense because yaw is not critical for stable hovering or 3D navigation. For yaw control tuning use MC_YAW_P. This ratio has no inpact on the yaw gain.", + "min": 0.0, + "max": 1.0, + "units": "Hz", "decimalPlaces": 2, - "min": 2, - "max": 15 + "increment": 0.1 }, { - "name": "MPC_ALT_MODE", - "type": "Int32", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Altitude control mode", - "longDesc": "Set to 0 to control height relative to the earth frame origin. This origin may move up and down in flight due to sensor drift. Set to 1 to control height relative to estimated distance to ground. The vehicle will move up and down with terrain height variation. Requires a distance to ground sensor. The height controller will revert to using height above origin if the distance to ground estimate becomes invalid as indicated by the local_position.distance_bottom_valid message being false. Set to 2 to control height relative to ground (requires a distance sensor) when stationary and relative to earth frame origin when moving horizontally. The speed threshold is controlled by the MPC_HOLD_MAX_XY parameter.", - "default": 0, - "values": [ - { - "value": 0, - "description": "Altitude following" - }, - { - "value": 1, - "description": "Terrain following" - }, - { - "value": 2, - "description": "Terrain hold" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 2 + "name": "MPC_YAWRAUTO_MAX", + "type": "Float", + "default": 45.0, + "group": "Multicopter Attitude Control", + "shortDesc": "Max yaw rate in auto mode", + "longDesc": "Limit the rate of change of the yaw setpoint in autonomous mode to avoid large control output and mixer saturation.", + "min": 0.0, + "max": 360.0, + "units": "deg/s", + "decimalPlaces": 1, + "increment": 5.0 }, { - "name": "MPC_DEC_HOR_SLOW", + "name": "CP_DELAY", "type": "Float", + "default": 0.4, + "group": "Multicopter Position Control", + "shortDesc": "Average delay of the range sensor message plus the tracking delay of the position controller in seconds", + "longDesc": "Only used in Position mode.", + "min": 0.0, + "max": 1.0, + "units": "s" + }, + { + "name": "CP_DIST", + "type": "Float", + "default": -1.0, + "group": "Multicopter Position Control", + "shortDesc": "Minimum distance the vehicle should keep to all obstacles", + "longDesc": "Only used in Position mode. Collision avoidance is disabled by setting this parameter to a negative value", + "min": -1.0, + "max": 15.0, + "units": "m" + }, + { + "name": "CP_GO_NO_DATA", + "type": "Float", + "default": 0.0, + "group": "Multicopter Position Control", + "shortDesc": "Boolean to allow moving into directions where there is no sensor data (outside FOV)", + "longDesc": "Only used in Position mode." + }, + { + "name": "CP_GUIDE_ANG", + "type": "Float", + "default": 30.0, + "group": "Multicopter Position Control", + "shortDesc": "Angle left/right from the commanded setpoint by which the collision prevention algorithm can choose to change the setpoint direction", + "longDesc": "Only used in Position mode.", + "min": 0.0, + "max": 90.0, + "units": "deg" + }, + { + "name": "MC_MAN_TILT_TAU", + "type": "Float", + "default": 0.0, + "group": "Multicopter Position Control", + "shortDesc": "Manual tilt input filter time constant\nSetting this parameter to 0 disables the filter", + "min": 0.0, + "max": 2.0, + "units": "s", + "decimalPlaces": 2 + }, + { + "name": "MPC_ACC_DOWN_MAX", + "type": "Float", + "default": 3.0, + "group": "Multicopter Position Control", + "shortDesc": "Maximum vertical acceleration in velocity controlled modes down", + "min": 2.0, + "max": 15.0, + "units": "m/s^2", + "decimalPlaces": 2, + "increment": 1.0 + }, + { + "name": "MPC_ACC_HOR", + "type": "Float", + "default": 3.0, + "group": "Multicopter Position Control", + "shortDesc": "Acceleration for auto and for manual", + "longDesc": "Note: In manual, this parameter is only used in MPC_POS_MODE 1.", + "min": 2.0, + "max": 15.0, + "units": "m/s^2", + "decimalPlaces": 2, + "increment": 1.0 + }, + { + "name": "MPC_ACC_HOR_MAX", + "type": "Float", + "default": 5.0, + "group": "Multicopter Position Control", + "shortDesc": "Maximum horizontal acceleration for auto mode and for manual mode", + "longDesc": "Maximum deceleration for MPC_POS_MODE 1. Maximum acceleration and deceleration for MPC_POS_MODE 3.", + "min": 2.0, + "max": 15.0, + "units": "m/s^2", + "decimalPlaces": 2, + "increment": 1.0 + }, + { + "name": "MPC_ACC_UP_MAX", + "type": "Float", + "default": 4.0, + "group": "Multicopter Position Control", + "shortDesc": "Maximum vertical acceleration in velocity controlled modes upward", + "min": 2.0, + "max": 15.0, + "units": "m/s^2", + "decimalPlaces": 2, + "increment": 1.0 + }, + { + "name": "MPC_ALT_MODE", + "type": "Int32", + "default": 0, + "group": "Multicopter Position Control", + "shortDesc": "Altitude control mode", + "longDesc": "Set to 0 to control height relative to the earth frame origin. This origin may move up and down in flight due to sensor drift. Set to 1 to control height relative to estimated distance to ground. The vehicle will move up and down with terrain height variation. Requires a distance to ground sensor. The height controller will revert to using height above origin if the distance to ground estimate becomes invalid as indicated by the local_position.distance_bottom_valid message being false. Set to 2 to control height relative to ground (requires a distance sensor) when stationary and relative to earth frame origin when moving horizontally. The speed threshold is controlled by the MPC_HOLD_MAX_XY parameter.", + "min": 0, + "max": 2, + "values": [ + { + "value": 0, + "description": "Altitude following" + }, + { + "value": 1, + "description": "Terrain following" + }, + { + "value": 2, + "description": "Terrain hold" + } + ] + }, + { + "name": "MPC_DEC_HOR_SLOW", + "type": "Float", + "default": 5.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Slow horizontal manual deceleration for manual mode", "longDesc": "Note: This is only used when MPC_POS_MODE is set to 1.", - "units": "m/s/s", - "default": 5, - "increment": 1, - "decimalPlaces": 2, "min": 0.5, - "max": 10 + "max": 10.0, + "units": "m/s^2", + "decimalPlaces": 2, + "increment": 1.0 }, { "name": "MPC_HOLD_DZ", "type": "Float", + "default": 0.1, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Deadzone of sticks where position hold is enabled", - "default": 0.1, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2 }, { "name": "MPC_HOLD_MAX_XY", "type": "Float", + "default": 0.8, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Maximum horizontal velocity for which position hold is enabled (use 0 to disable check)", + "min": 0.0, + "max": 3.0, "units": "m/s", - "default": 0.8, - "decimalPlaces": 2, - "min": 0, - "max": 3 + "decimalPlaces": 2 }, { "name": "MPC_HOLD_MAX_Z", "type": "Float", + "default": 0.6, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Maximum vertical velocity for which position hold is enabled (use 0 to disable check)", + "min": 0.0, + "max": 3.0, "units": "m/s", - "default": 0.6, - "decimalPlaces": 2, - "min": 0, - "max": 3 + "decimalPlaces": 2 }, { "name": "MPC_JERK_AUTO", "type": "Float", + "default": 4.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Jerk limit in auto mode", "longDesc": "Limit the maximum jerk of the vehicle (how fast the acceleration can change). A lower value leads to smoother vehicle motions, but it also limits its agility.", - "units": "m/s/s/s", - "default": 4, - "increment": 1, + "min": 1.0, + "max": 80.0, + "units": "m/s^3", "decimalPlaces": 1, - "min": 1, - "max": 80 + "increment": 1.0 }, { "name": "MPC_JERK_MAX", "type": "Float", + "default": 8.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Maximum jerk limit", "longDesc": "Limit the maximum jerk of the vehicle (how fast the acceleration can change). A lower value leads to smoother vehicle motions, but it also limits its agility (how fast it can change directions or break). Setting this to the maximum value essentially disables the limit. Note: This is only used when MPC_POS_MODE is set to a smoothing mode 1 or 3.", - "units": "m/s/s/s", - "default": 8, - "increment": 1, - "decimalPlaces": 2, "min": 0.5, - "max": 500 + "max": 500.0, + "units": "m/s^3", + "decimalPlaces": 2, + "increment": 1.0 }, { "name": "MPC_JERK_MIN", "type": "Float", + "default": 8.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Velocity-based jerk limit", "longDesc": "If this is not zero, a velocity-based maximum jerk limit is used: the applied jerk limit linearly increases with the vehicle's velocity between MPC_JERK_MIN (zero velocity) and MPC_JERK_MAX (maximum velocity). This means that the vehicle's motions are smooth for low velocities, but still allows fast direction changes or breaking at higher velocities. Set this to zero to use a fixed maximum jerk limit (MPC_JERK_MAX). Note: This is only used when MPC_POS_MODE is set to 1.", - "units": "m/s/s/s", - "default": 8, - "increment": 1, + "min": 0.0, + "max": 30.0, + "units": "m/s^3", "decimalPlaces": 2, - "min": 0, - "max": 30 + "increment": 1.0 }, { "name": "MPC_LAND_ALT1", "type": "Float", + "default": 10.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Altitude for 1. step of slow landing (descend)", "longDesc": "Below this altitude: - descending velocity gets limited to a value between \"MPC_Z_VEL_MAX\" and \"MPC_LAND_SPEED\" - horizontal velocity gets limited to a value between \"MPC_VEL_MANUAL\" and \"MPC_LAND_VEL_XY\" for a smooth descent and landing experience. Value needs to be higher than \"MPC_LAND_ALT2\"", + "min": 0.0, + "max": 122.0, "units": "m", - "default": 5, - "decimalPlaces": 1, - "min": 0, - "max": 122 + "decimalPlaces": 1 }, { "name": "MPC_LAND_ALT2", "type": "Float", + "default": 5.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Altitude for 2. step of slow landing (landing)", "longDesc": "Below this altitude descending and horizontal velocities get limited to \"MPC_LAND_SPEED\" and \"MPC_LAND_VEL_XY\", respectively. Value needs to be lower than \"MPC_LAND_ALT1\"", + "min": 0.0, + "max": 122.0, "units": "m", - "default": 2, - "decimalPlaces": 1, - "min": 0, - "max": 122 - }, - { - "name": "MPC_LAND_RC_HELP", - "type": "Int32", - "group": "Miscellaneous", - "category": "Standard", - "shortDesc": "Enable user assisted descent speed for autonomous land routine. When enabled, descent speed will be equal to MPC_LAND_SPEED at half throttle, MPC_Z_VEL_MAX_DN at zero throttle, and 0.5 * MPC_LAND_SPEED at full throttle", - "default": 0, - "values": [ - { - "value": 0, - "description": "Fixed descent speed of MPC_LAND_SPEED" - }, - { - "value": 1, - "description": "User assisted descent speed" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 1 + "decimalPlaces": 1 }, { "name": "MPC_LAND_SPEED", "type": "Float", + "default": 0.7, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Landing descend rate", - "units": "m/s", - "default": 0.7, - "decimalPlaces": 1, "min": 0.6, - "max": 3.40282e+38 + "units": "m/s", + "decimalPlaces": 1 }, { "name": "MPC_LAND_VEL_XY", "type": "Float", + "default": 10.0, "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Maximum horizontal position mode velocity when close to ground/home altitude Set the value higher than the otherwise expected maximum to disable any slowdown", + "shortDesc": "Maximum horizontal position mode velocity when close to ground/home altitude\nSet the value higher than the otherwise expected maximum to disable any slowdown", + "min": 0.0, "units": "m/s", - "default": 10, - "decimalPlaces": 1, - "min": 0, - "max": 3.40282e+38 + "decimalPlaces": 1 }, { "name": "MPC_MANTHR_MIN", "type": "Float", + "default": 0.08, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Minimum manual thrust", "longDesc": "Minimum vertical thrust. It's recommended to set it > 0 to avoid free fall with zero thrust. With MC_AIRMODE set to 1, this can safely be set to 0.", + "min": 0.0, + "max": 1.0, "units": "norm", - "default": 0.08, - "increment": 0.01, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.01 }, { "name": "MPC_MAN_TILT_MAX", "type": "Float", + "default": 35.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Maximal tilt angle in manual or altitude mode", + "min": 0.0, + "max": 90.0, "units": "deg", - "default": 35, - "decimalPlaces": 1, - "min": 0, - "max": 90 + "decimalPlaces": 1 }, { "name": "MPC_MAN_Y_MAX", "type": "Float", + "default": 150.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Max manual yaw rate", + "min": 0.0, + "max": 400.0, "units": "deg/s", - "default": 150, - "decimalPlaces": 1, - "min": 0, - "max": 400 + "decimalPlaces": 1 }, { "name": "MPC_MAN_Y_TAU", "type": "Float", + "default": 0.08, "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Manual yaw rate input filter time constant Setting this parameter to 0 disables the filter", + "shortDesc": "Manual yaw rate input filter time constant\nSetting this parameter to 0 disables the filter", + "min": 0.0, + "max": 5.0, "units": "s", - "default": 0.08, - "decimalPlaces": 2, - "min": 0, - "max": 5 + "decimalPlaces": 2 }, { "name": "MPC_POS_MODE", "type": "Int32", + "default": 3, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Manual-Position control sub-mode", "longDesc": "The supported sub-modes are: 0 Simple position control where sticks map directly to velocity setpoints without smoothing. Useful for velocity control tuning. 1 Smooth position control with maximum acceleration and jerk limits based on slew-rates. 3 Smooth position control with maximum acceleration and jerk limits based on jerk optimized trajectory generator (different algorithm than 1).", - "default": 3, "values": [ { "value": 0, @@ -9292,32 +7789,26 @@ "value": 3, "description": "Smooth position control (Jerk optimized)" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "MPC_SPOOLUP_TIME", "type": "Float", + "default": 1.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Enforced delay between arming and takeoff", "longDesc": "For altitude controlled modes the time from arming the motors until a takeoff is possible gets forced to be at least MPC_SPOOLUP_TIME seconds to ensure the motors and propellers can sppol up and reach idle speed before getting commanded to spin faster. This delay is particularly useful for vehicles with slow motor spin-up e.g. because of large propellers.", - "units": "s", - "default": 1, - "decimalPlaces": 3, - "min": 0, - "max": 10 + "min": 0.0, + "max": 10.0, + "units": "s" }, { "name": "MPC_THR_CURVE", "type": "Int32", + "default": 0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Thrust curve in Manual Mode", "longDesc": "This parameter defines how the throttle stick input is mapped to commanded thrust in Manual/Stabilized flight mode. In case the default is used ('Rescale to hover thrust'), the stick input is linearly rescaled, such that a centered stick corresponds to the hover throttle (see MPC_THR_HOVER). Select 'No Rescale' to directly map the stick 1:1 to the output. This can be useful in case the hover thrust is very low and the default would lead to too much distortion (e.g. if hover thrust is set to 20%, 80% of the upper thrust range is squeezed into the upper half of the stick range). Note: In case MPC_THR_HOVER is set to 50%, the modes 0 and 1 are the same.", - "default": 0, "values": [ { "value": 0, @@ -9327,2906 +7818,3069 @@ "value": 1, "description": "No Rescale" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "MPC_THR_HOVER", "type": "Float", + "default": 0.5, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Hover thrust", "longDesc": "Vertical thrust required to hover. This value is mapped to center stick for manual throttle control. With this value set to the thrust required to hover, transition from manual to Altitude or Position mode while hovering will occur with the throttle stick near center, which is then interpreted as (near) zero demand for vertical speed. This parameter is also important for the landing detection to work correctly.", + "min": 0.1, + "max": 0.8, "units": "norm", - "default": 0.5, - "increment": 0.01, "decimalPlaces": 2, - "min": 0.1, - "max": 0.8 + "increment": 0.01 }, { "name": "MPC_THR_MAX", "type": "Float", + "default": 1.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Maximum thrust in auto thrust control", "longDesc": "Limit max allowed thrust", + "min": 0.0, + "max": 1.0, "units": "norm", - "default": 1, - "increment": 0.01, "decimalPlaces": 2, - "min": 0, - "max": 1 + "increment": 0.01 }, { "name": "MPC_THR_MIN", "type": "Float", + "default": 0.12, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Minimum thrust in auto thrust control", "longDesc": "It's recommended to set it > 0 to avoid free fall with zero thrust.", + "min": 0.05, + "max": 1.0, "units": "norm", - "default": 0.12, - "increment": 0.01, "decimalPlaces": 2, - "min": 0.05, - "max": 1 + "increment": 0.01 }, { "name": "MPC_TILTMAX_AIR", "type": "Float", + "default": 45.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Maximum tilt angle in air", "longDesc": "Limits maximum tilt in AUTO and POSCTRL modes during flight.", + "min": 20.0, + "max": 89.0, "units": "deg", - "default": 45, - "decimalPlaces": 1, - "min": 20, - "max": 89 + "decimalPlaces": 1 }, { "name": "MPC_TILTMAX_LND", "type": "Float", + "default": 12.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Maximum tilt during landing", "longDesc": "Limits maximum tilt angle on landing.", + "min": 10.0, + "max": 89.0, "units": "deg", - "default": 12, - "decimalPlaces": 1, - "min": 10, - "max": 89 + "decimalPlaces": 1 }, { "name": "MPC_TKO_RAMP_T", "type": "Float", + "default": 3.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Position control smooth takeoff ramp time constant", "longDesc": "Increasing this value will make automatic and manual takeoff slower. If it's too slow the drone might scratch the ground and tip over. A time constant of 0 disables the ramp", - "default": 3, - "decimalPlaces": 3, - "min": 0, - "max": 5 + "min": 0.0, + "max": 5.0 }, { "name": "MPC_TKO_SPEED", "type": "Float", + "default": 1.5, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Takeoff climb rate", + "min": 1.0, + "max": 5.0, "units": "m/s", - "default": 1.5, - "decimalPlaces": 2, - "min": 1, - "max": 5 + "decimalPlaces": 2 }, { "name": "MPC_USE_HTE", "type": "Int32", + "default": 1, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Hover thrust source selector", - "longDesc": "Set false to use the fixed parameter MPC_THR_HOVER Set true to use the value computed by the hover thrust estimator", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Set false to use the fixed parameter MPC_THR_HOVER Set true to use the value computed by the hover thrust estimator" }, { "name": "MPC_VELD_LP", "type": "Float", + "default": 5.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Low pass filter cut freq. for numerical velocity derivative", + "min": 0.0, + "max": 10.0, "units": "Hz", - "default": 5, - "decimalPlaces": 2, - "min": 0, - "max": 10 + "decimalPlaces": 2 }, { "name": "MPC_VEL_MANUAL", "type": "Float", + "default": 10.0, "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Maximum horizontal velocity setpoint for manual controlled mode If velocity setpoint larger than MPC_XY_VEL_MAX is set, then the setpoint will be capped to MPC_XY_VEL_MAX", + "shortDesc": "Maximum horizontal velocity setpoint for manual controlled mode\nIf velocity setpoint larger than MPC_XY_VEL_MAX is set, then\nthe setpoint will be capped to MPC_XY_VEL_MAX", + "min": 3.0, + "max": 20.0, "units": "m/s", - "default": 10, - "increment": 1, "decimalPlaces": 2, - "min": 3, - "max": 20 + "increment": 1.0 }, { "name": "MPC_XY_CRUISE", "type": "Float", + "default": 5.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Maximum horizontal velocity in mission", "longDesc": "Normal horizontal velocity in AUTO modes (includes also RTL / hold / etc.) and endpoint for position stabilized mode (POSCTRL).", + "min": 3.0, + "max": 20.0, "units": "m/s", - "default": 5, - "increment": 1, "decimalPlaces": 2, - "min": 3, - "max": 20 + "increment": 1.0 }, { "name": "MPC_XY_MAN_EXPO", "type": "Float", + "default": 0.6, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Manual position control stick exponential curve sensitivity", "longDesc": "The higher the value the less sensitivity the stick has around zero while still reaching the maximum value with full stick deflection. 0 Purely linear input curve (default) 1 Purely cubic input curve", - "default": 0.6, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2 }, { "name": "MPC_XY_P", "type": "Float", + "default": 0.95, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Proportional gain for horizontal position error", - "default": 0.95, - "decimalPlaces": 2, - "min": 0, - "max": 2 + "min": 0.0, + "max": 2.0, + "decimalPlaces": 2 }, { "name": "MPC_XY_TRAJ_P", "type": "Float", + "default": 0.5, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Proportional gain for horizontal trajectory position error", - "default": 0.5, - "decimalPlaces": 1, "min": 0.1, - "max": 1 + "max": 1.0, + "decimalPlaces": 1 }, { "name": "MPC_XY_VEL_D_ACC", "type": "Float", + "default": 0.2, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Differential gain for horizontal velocity error. Small values help reduce fast oscillations. If value is too big oscillations will appear again", "longDesc": "defined as correction acceleration in m/s^2 per m/s^2 velocity derivative", - "default": 0.2, - "decimalPlaces": 3, "min": 0.1, - "max": 2 + "max": 2.0, + "decimalPlaces": 3 }, { "name": "MPC_XY_VEL_I_ACC", "type": "Float", + "default": 0.4, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Integral gain for horizontal velocity error", "longDesc": "defined as correction acceleration in m/s^2 per m velocity integral Non-zero value allows to eliminate steady state errors in the presence of disturbances like wind.", - "default": 0.4, - "decimalPlaces": 3, - "min": 0, - "max": 60 + "min": 0.0, + "max": 60.0, + "decimalPlaces": 3 }, { "name": "MPC_XY_VEL_MAX", "type": "Float", + "default": 12.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Maximum horizontal velocity", "longDesc": "Maximum horizontal velocity in AUTO mode. If higher speeds are commanded in a mission they will be capped to this velocity.", + "min": 0.0, + "max": 20.0, "units": "m/s", - "default": 12, - "increment": 1, "decimalPlaces": 2, - "min": 0, - "max": 20 + "increment": 1.0 }, { "name": "MPC_XY_VEL_P_ACC", "type": "Float", + "default": 1.8, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Proportional gain for horizontal velocity error", "longDesc": "defined as correction acceleration in m/s^2 per m/s velocity error", - "default": 1.8, - "decimalPlaces": 2, "min": 1.2, - "max": 3 - }, - { - "name": "MPC_YAWRAUTO_MAX", - "type": "Float", - "group": "Multicopter Attitude Control", - "category": "Standard", - "shortDesc": "Max yaw rate in auto mode", - "longDesc": "Limit the rate of change of the yaw setpoint in autonomous mode to avoid large control output and mixer saturation.", - "units": "deg/s", - "default": 45, - "increment": 5, - "decimalPlaces": 1, - "min": 0, - "max": 360 + "max": 3.0, + "decimalPlaces": 2 }, { "name": "MPC_YAW_EXPO", "type": "Float", + "default": 0.6, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Manual control stick yaw rotation exponential curve", "longDesc": "The higher the value the less sensitivity the stick has around zero while still reaching the maximum value with full stick deflection. 0 Purely linear input curve (default) 1 Purely cubic input curve", - "default": 0.6, - "decimalPlaces": 2, - "min": 0, - "max": 1 - }, - { - "name": "MPC_YAW_MODE", - "type": "Int32", - "group": "Mission", - "category": "Standard", - "shortDesc": "Yaw mode", - "longDesc": "Specifies the heading in Auto.", - "default": 0, - "values": [ - { - "value": 0, - "description": "towards waypoint" - }, - { - "value": 1, - "description": "towards home" - }, - { - "value": 2, - "description": "away from home" - }, - { - "value": 3, - "description": "along trajectory" - }, - { - "value": 4, - "description": "towards waypoint (yaw first)" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 4 + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2 }, { "name": "MPC_Z_MAN_EXPO", "type": "Float", + "default": 0.6, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Manual control stick vertical exponential curve", "longDesc": "The higher the value the less sensitivity the stick has around zero while still reaching the maximum value with full stick deflection. 0 Purely linear input curve (default) 1 Purely cubic input curve", - "default": 0.6, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2 }, { "name": "MPC_Z_P", "type": "Float", + "default": 1.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Proportional gain for vertical position error", - "default": 1, - "decimalPlaces": 2, - "min": 0, - "max": 1.5 + "min": 0.0, + "max": 1.5, + "decimalPlaces": 2 }, { "name": "MPC_Z_VEL_D_ACC", "type": "Float", + "default": 0.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Differential gain for vertical velocity error", "longDesc": "defined as correction acceleration in m/s^2 per m/s^2 velocity derivative", - "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 2 + "min": 0.0, + "max": 2.0, + "decimalPlaces": 3 }, { "name": "MPC_Z_VEL_I_ACC", "type": "Float", + "default": 2.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Integral gain for vertical velocity error", "longDesc": "defined as correction acceleration in m/s^2 per m velocity integral Non zero value allows hovering thrust estimation on stabilized or autonomous takeoff.", - "default": 2, - "decimalPlaces": 3, "min": 0.2, - "max": 2 + "max": 2.0, + "decimalPlaces": 3 }, { "name": "MPC_Z_VEL_MAX_DN", "type": "Float", + "default": 1.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Maximum vertical descent velocity", "longDesc": "Maximum vertical velocity in AUTO mode and endpoint for stabilized modes (ALTCTRL, POSCTRL).", - "units": "m/s", - "default": 1, - "decimalPlaces": 3, "min": 0.5, - "max": 4 + "max": 4.0, + "units": "m/s" }, { "name": "MPC_Z_VEL_MAX_UP", "type": "Float", + "default": 3.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Maximum vertical ascent velocity", "longDesc": "Maximum vertical velocity in AUTO mode and endpoint for stabilized modes (ALTCTRL, POSCTRL).", - "units": "m/s", - "default": 3, - "decimalPlaces": 1, "min": 0.5, - "max": 8 + "max": 8.0, + "units": "m/s", + "decimalPlaces": 1 }, { "name": "MPC_Z_VEL_P_ACC", "type": "Float", + "default": 4.0, "group": "Multicopter Position Control", - "category": "Standard", "shortDesc": "Proportional gain for vertical velocity error", "longDesc": "defined as correction acceleration in m/s^2 per m/s velocity error", - "default": 4, - "decimalPlaces": 2, - "min": 2, - "max": 8 - }, - { - "name": "NAV_ACC_RAD", - "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "Acceptance Radius", - "longDesc": "Default acceptance radius, overridden by acceptance radius of waypoint if set. For fixed wing the L1 turning distance is used for horizontal acceptance.", - "units": "m", - "default": 10, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0.05, - "max": 200 - }, - { - "name": "NAV_AH_ALT", - "type": "Float", - "group": "Data Link Loss", - "category": "Standard", - "shortDesc": "Airfield home alt", - "longDesc": "Altitude of airfield home waypoint", - "units": "m", - "default": 600, - "increment": 0.5, - "decimalPlaces": 1, - "min": -50, - "max": 3.40282e+38 - }, - { - "name": "NAV_AH_LAT", - "type": "Int32", - "group": "Data Link Loss", - "category": "Standard", - "shortDesc": "Airfield home Lat", - "longDesc": "Latitude of airfield home waypoint", - "units": "deg * 1e7", - "default": -2.65848e+08, - "decimalPlaces": 3, - "min": -9e+08, - "max": 9e+08 - }, - { - "name": "NAV_AH_LON", - "type": "Int32", - "group": "Data Link Loss", - "category": "Standard", - "shortDesc": "Airfield home Lon", - "longDesc": "Longitude of airfield home waypoint", - "units": "deg * 1e7", - "default": 1.51842e+09, - "decimalPlaces": 3, - "min": -1.8e+09, - "max": 1.8e+09 + "min": 2.0, + "max": 8.0, + "decimalPlaces": 2 }, { - "name": "NAV_DLL_ACT", + "name": "WV_EN", "type": "Int32", - "group": "Mission", - "category": "Standard", - "shortDesc": "Set data link loss failsafe mode", - "longDesc": "The data link loss failsafe will only be entered after a timeout, set by COM_DL_LOSS_T in seconds. Once the timeout occurs the selected action will be executed.", "default": 0, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 1, - "description": "Hold mode" - }, - { - "value": 2, - "description": "Return mode" - }, - { - "value": 3, - "description": "Land mode" - }, - { - "value": 5, - "description": "Terminate" - }, - { - "value": 6, - "description": "Lockdown" - } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "group": "Multicopter Position Control", + "shortDesc": "Enable weathervane" }, { - "name": "NAV_FORCE_VT", - "type": "Int32", - "group": "Mission", - "category": "Standard", - "shortDesc": "Force VTOL mode takeoff and land", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "WV_ROLL_MIN", + "type": "Float", + "default": 1.0, + "group": "Multicopter Position Control", + "shortDesc": "Minimum roll angle setpoint for weathervane controller to demand a yaw-rate", + "min": 0.0, + "max": 5.0, + "units": "deg" }, { - "name": "NAV_FT_DST", + "name": "WV_YRATE_MAX", "type": "Float", - "group": "Follow target", - "category": "Standard", - "shortDesc": "Distance to follow target from", - "longDesc": "The distance in meters to follow the target at", - "units": "meters", - "default": 8, - "decimalPlaces": 3, - "min": 1, - "max": 3.40282e+38 + "default": 90.0, + "group": "Multicopter Position Control", + "shortDesc": "Maximum yawrate the weathervane controller is allowed to demand", + "min": 0.0, + "max": 120.0, + "units": "deg/s" }, { - "name": "NAV_FT_FS", - "type": "Int32", - "group": "Follow target", - "category": "Standard", - "shortDesc": "Side to follow target from", - "longDesc": "The side to follow the target from (front right = 0, behind = 1, front = 2, front left = 3)", - "units": "n/a", - "default": 1, - "decimalPlaces": 3, - "min": 0, - "max": 3 + "name": "MC_ACRO_EXPO", + "type": "Float", + "default": 0.69, + "group": "Multicopter Rate Control", + "shortDesc": "Acro mode Expo factor for Roll and Pitch", + "longDesc": "Exponential factor for tuning the input curve shape. 0 Purely linear input curve 1 Purely cubic input curve", + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2 }, { - "name": "NAV_FT_RS", + "name": "MC_ACRO_EXPO_Y", "type": "Float", - "group": "Follow target", - "category": "Standard", - "shortDesc": "Dynamic filtering algorithm responsiveness to target movement lower numbers increase the responsiveness to changing long lat but also ignore less noise", - "units": "n/a", - "default": 0.5, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": 0.69, + "group": "Multicopter Rate Control", + "shortDesc": "Acro mode Expo factor for Yaw", + "longDesc": "Exponential factor for tuning the input curve shape. 0 Purely linear input curve 1 Purely cubic input curve", + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2 }, { - "name": "NAV_FW_ALTL_RAD", + "name": "MC_ACRO_P_MAX", "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "FW Altitude Acceptance Radius before a landing", - "longDesc": "Altitude acceptance used for the last waypoint before a fixed-wing landing. This is usually smaller than the standard vertical acceptance because close to the ground higher accuracy is required.", - "units": "m", - "default": 5, + "default": 720.0, + "group": "Multicopter Rate Control", + "shortDesc": "Max acro pitch rate\ndefault: 2 turns per second", + "min": 0.0, + "max": 1800.0, + "units": "deg/s", "decimalPlaces": 1, - "min": 0.05, - "max": 200 + "increment": 5.0 }, { - "name": "NAV_FW_ALT_RAD", + "name": "MC_ACRO_R_MAX", "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "FW Altitude Acceptance Radius", - "longDesc": "Acceptance radius for fixedwing altitude.", - "units": "m", - "default": 10, - "increment": 0.5, + "default": 720.0, + "group": "Multicopter Rate Control", + "shortDesc": "Max acro roll rate\ndefault: 2 turns per second", + "min": 0.0, + "max": 1800.0, + "units": "deg/s", "decimalPlaces": 1, - "min": 0.05, - "max": 200 + "increment": 5.0 }, { - "name": "NAV_GPSF_LT", + "name": "MC_ACRO_SUPEXPO", "type": "Float", - "group": "GPS Failure Navigation", - "category": "Standard", - "shortDesc": "Loiter time", - "longDesc": "The time in seconds the system should do open loop loiter and wait for GPS recovery before it goes into flight termination. Set to 0 to disable.", - "units": "s", - "default": 0, - "increment": 1, - "decimalPlaces": 0, - "min": 0, - "max": 3600 + "default": 0.7, + "group": "Multicopter Rate Control", + "shortDesc": "Acro mode SuperExpo factor for Roll and Pitch", + "longDesc": "SuperExpo factor for refining the input curve shape tuned using MC_ACRO_EXPO. 0 Pure Expo function 0.7 resonable shape enhancement for intuitive stick feel 0.95 very strong bent input curve only near maxima have effect", + "min": 0.0, + "max": 0.95, + "decimalPlaces": 2 }, { - "name": "NAV_GPSF_P", + "name": "MC_ACRO_SUPEXPOY", "type": "Float", - "group": "GPS Failure Navigation", - "category": "Standard", - "shortDesc": "Fixed pitch angle", - "longDesc": "Pitch in degrees during the open loop loiter", - "units": "deg", - "default": 0, - "increment": 0.5, - "decimalPlaces": 1, - "min": -30, - "max": 30 + "default": 0.7, + "group": "Multicopter Rate Control", + "shortDesc": "Acro mode SuperExpo factor for Yaw", + "longDesc": "SuperExpo factor for refining the input curve shape tuned using MC_ACRO_EXPO_Y. 0 Pure Expo function 0.7 resonable shape enhancement for intuitive stick feel 0.95 very strong bent input curve only near maxima have effect", + "min": 0.0, + "max": 0.95, + "decimalPlaces": 2 }, { - "name": "NAV_GPSF_R", + "name": "MC_ACRO_Y_MAX", "type": "Float", - "group": "GPS Failure Navigation", - "category": "Standard", - "shortDesc": "Fixed bank angle", - "longDesc": "Roll in degrees during the loiter", - "units": "deg", - "default": 15, - "increment": 0.5, + "default": 540.0, + "group": "Multicopter Rate Control", + "shortDesc": "Max acro yaw rate\ndefault 1.5 turns per second", + "min": 0.0, + "max": 1800.0, + "units": "deg/s", "decimalPlaces": 1, - "min": 0, - "max": 30 + "increment": 5.0 }, { - "name": "NAV_GPSF_TR", - "type": "Float", - "group": "GPS Failure Navigation", - "category": "Standard", - "shortDesc": "Thrust", - "longDesc": "Thrust value which is set during the open loop loiter", - "units": "norm", + "name": "MC_BAT_SCALE_EN", + "type": "Int32", "default": 0, - "increment": 0.05, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "group": "Multicopter Rate Control", + "shortDesc": "Battery power level scaler", + "longDesc": "This compensates for voltage drop of the battery over time by attempting to normalize performance across the operating range of the battery. The copter should constantly behave as if it was fully charged with reduced max acceleration at lower battery percentages. i.e. if hover is at 0.5 throttle at 100% battery, it will still be 0.5 at 60% battery." }, { - "name": "NAV_LOITER_RAD", + "name": "MC_PITCHRATE_D", "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "Loiter radius (FW only)", - "longDesc": "Default value of loiter radius for missions, Hold mode, Return mode, etc. (fixedwing only).", - "units": "m", - "default": 50, - "increment": 0.5, - "decimalPlaces": 1, - "min": 25, - "max": 1000 + "default": 0.003, + "group": "Multicopter Rate Control", + "shortDesc": "Pitch rate D gain", + "longDesc": "Pitch rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again.", + "min": 0.0, + "decimalPlaces": 4, + "increment": 0.0005 }, { - "name": "NAV_MC_ALT_RAD", + "name": "MC_PITCHRATE_FF", "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "MC Altitude Acceptance Radius", - "longDesc": "Acceptance radius for multicopter altitude.", - "units": "m", - "default": 0.8, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0.05, - "max": 200 + "default": 0.0, + "group": "Multicopter Rate Control", + "shortDesc": "Pitch rate feedforward", + "longDesc": "Improves tracking performance.", + "min": 0.0, + "decimalPlaces": 4 }, { - "name": "NAV_MIN_FT_HT", + "name": "MC_PITCHRATE_I", "type": "Float", - "group": "Follow target", - "category": "Standard", - "shortDesc": "Minimum follow target altitude", - "longDesc": "The minimum height in meters relative to home for following a target", - "units": "meters", - "default": 8, + "default": 0.2, + "group": "Multicopter Rate Control", + "shortDesc": "Pitch rate I gain", + "longDesc": "Pitch rate integral gain. Can be set to compensate static thrust difference or gravity center offset.", + "min": 0.0, "decimalPlaces": 3, - "min": 8, - "max": 3.40282e+38 + "increment": 0.01 }, { - "name": "NAV_RCL_ACT", - "type": "Int32", - "group": "Mission", - "category": "Standard", - "shortDesc": "Set RC loss failsafe mode", - "longDesc": "The RC loss failsafe will only be entered after a timeout, set by COM_RC_LOSS_T in seconds. If RC input checks have been disabled by setting the COM_RC_IN_MODE param it will not be triggered.", - "default": 2, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 1, - "description": "Hold mode" - }, - { - "value": 2, - "description": "Return mode" - }, - { - "value": 3, - "description": "Land mode" - }, - { - "value": 5, - "description": "Terminate" - }, - { - "value": 6, - "description": "Lockdown" - } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "MC_PITCHRATE_K", + "type": "Float", + "default": 1.0, + "group": "Multicopter Rate Control", + "shortDesc": "Pitch rate controller gain", + "longDesc": "Global gain of the controller. This gain scales the P, I and D terms of the controller: output = MC_PITCHRATE_K * (MC_PITCHRATE_P * error + MC_PITCHRATE_I * error_integral + MC_PITCHRATE_D * error_derivative) Set MC_PITCHRATE_P=1 to implement a PID in the ideal form. Set MC_PITCHRATE_K=1 to implement a PID in the parallel form.", + "min": 0.01, + "max": 5.0, + "decimalPlaces": 4, + "increment": 0.0005 }, { - "name": "NAV_TRAFF_AVOID", - "type": "Int32", - "group": "Mission", - "category": "Standard", - "shortDesc": "Set traffic avoidance mode", - "longDesc": "Enabling this will allow the system to respond to transponder data from e.g. ADSB transponders", - "default": 1, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 1, - "description": "Warn only" - }, - { - "value": 2, - "description": "Return mode" - }, - { - "value": 3, - "description": "Land mode" - }, - { - "value": 4, - "description": "Position Hold mode" - } - ], + "name": "MC_PITCHRATE_P", + "type": "Float", + "default": 0.15, + "group": "Multicopter Rate Control", + "shortDesc": "Pitch rate P gain", + "longDesc": "Pitch rate proportional gain, i.e. control output for angular speed error 1 rad/s.", + "min": 0.01, + "max": 0.6, "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "increment": 0.01 }, { - "name": "NAV_TRAFF_A_RADM", + "name": "MC_PR_INT_LIM", "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "Set NAV TRAFFIC AVOID RADIUS MANNED", - "longDesc": "Defines the Radius where NAV TRAFFIC AVOID is Called For Manned Aviation", - "units": "m", - "default": 500, - "decimalPlaces": 3, - "min": 500, - "max": 3.40282e+38 + "default": 0.3, + "group": "Multicopter Rate Control", + "shortDesc": "Pitch rate integrator limit", + "longDesc": "Pitch rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large pitch moment trim changes.", + "min": 0.0, + "decimalPlaces": 2, + "increment": 0.01 }, { - "name": "NAV_TRAFF_A_RADU", + "name": "MC_ROLLRATE_D", "type": "Float", - "group": "Mission", - "category": "Standard", - "shortDesc": "Set NAV TRAFFIC AVOID RADIUS", - "longDesc": "Defines the Radius where NAV TRAFFIC AVOID is Called For Unmanned Aviation", - "units": "m", - "default": 10, - "decimalPlaces": 3, - "min": 10, - "max": 500 + "default": 0.003, + "group": "Multicopter Rate Control", + "shortDesc": "Roll rate D gain", + "longDesc": "Roll rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again.", + "min": 0.0, + "max": 0.01, + "decimalPlaces": 4, + "increment": 0.0005 }, { - "name": "OSD_ATXXXX_CFG", - "type": "Int32", - "group": "OSD", - "category": "Standard", - "shortDesc": "Enable/Disable the ATXXX OSD Chip", - "longDesc": "Configure the ATXXXX OSD Chip (mounted on the OmnibusF4SD board) and select the transmission standard.", - "default": 0, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 1, - "description": "NTSC" - }, - { - "value": 2, - "description": "PAL" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "MC_ROLLRATE_FF", + "type": "Float", + "default": 0.0, + "group": "Multicopter Rate Control", + "shortDesc": "Roll rate feedforward", + "longDesc": "Improves tracking performance.", + "min": 0.0, + "decimalPlaces": 4 }, { - "name": "PCF8583_ADDR", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "PCF8583 rotorfreq (i2c) i2c address", - "default": 80, - "values": [ - { - "value": 80, - "description": "Address 0x50 (80)" - }, - { - "value": 81, - "description": "Address 0x51 (81)" - } - ], - "rebootRequired": true, + "name": "MC_ROLLRATE_I", + "type": "Float", + "default": 0.2, + "group": "Multicopter Rate Control", + "shortDesc": "Roll rate I gain", + "longDesc": "Roll rate integral gain. Can be set to compensate static thrust difference or gravity center offset.", + "min": 0.0, "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "increment": 0.01 }, { - "name": "PCF8583_MAGNET", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "PCF8583 rotorfreq (i2c) pulse count", - "longDesc": "Nmumber of signals per rotation of actuator", - "default": 2, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 1, - "max": 2.14748e+09 + "name": "MC_ROLLRATE_K", + "type": "Float", + "default": 1.0, + "group": "Multicopter Rate Control", + "shortDesc": "Roll rate controller gain", + "longDesc": "Global gain of the controller. This gain scales the P, I and D terms of the controller: output = MC_ROLLRATE_K * (MC_ROLLRATE_P * error + MC_ROLLRATE_I * error_integral + MC_ROLLRATE_D * error_derivative) Set MC_ROLLRATE_P=1 to implement a PID in the ideal form. Set MC_ROLLRATE_K=1 to implement a PID in the parallel form.", + "min": 0.01, + "max": 5.0, + "decimalPlaces": 4, + "increment": 0.0005 }, { - "name": "PCF8583_POOL", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "PCF8583 rotorfreq (i2c) pool interval How often the sensor is readout", - "units": "us", - "default": 1e+06, - "rebootRequired": true, + "name": "MC_ROLLRATE_P", + "type": "Float", + "default": 0.15, + "group": "Multicopter Rate Control", + "shortDesc": "Roll rate P gain", + "longDesc": "Roll rate proportional gain, i.e. control output for angular speed error 1 rad/s.", + "min": 0.01, + "max": 0.5, "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "increment": 0.01 }, { - "name": "PCF8583_RESET", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "PCF8583 rotorfreq (i2c) pulse reset value", - "longDesc": "Internal device counter is reset to 0 when overun this value, counter is able to store upto 6 digits reset of counter takes some time - measurement with reset has worse accurancy. 0 means reset counter after every measurement.", - "default": 500000, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "MC_RR_INT_LIM", + "type": "Float", + "default": 0.3, + "group": "Multicopter Rate Control", + "shortDesc": "Roll rate integrator limit", + "longDesc": "Roll rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large roll moment trim changes.", + "min": 0.0, + "decimalPlaces": 2, + "increment": 0.01 }, { - "name": "PLD_BTOUT", + "name": "MC_YAWRATE_D", "type": "Float", - "group": "Precision Land", - "category": "Standard", - "shortDesc": "Landing Target Timeout", - "longDesc": "Time after which the landing target is considered lost without any new measurements.", - "units": "s", - "default": 5, - "increment": 0.5, - "decimalPlaces": 1, - "min": 0, - "max": 50 + "default": 0.0, + "group": "Multicopter Rate Control", + "shortDesc": "Yaw rate D gain", + "longDesc": "Yaw rate differential gain. Small values help reduce fast oscillations. If value is too big oscillations will appear again.", + "min": 0.0, + "decimalPlaces": 2, + "increment": 0.01 }, { - "name": "PLD_FAPPR_ALT", + "name": "MC_YAWRATE_FF", "type": "Float", - "group": "Precision Land", - "category": "Standard", - "shortDesc": "Final approach altitude", - "longDesc": "Allow final approach (without horizontal positioning) if losing landing target closer than this to the ground.", - "units": "m", - "default": 0.1, - "increment": 0.1, - "decimalPlaces": 2, - "min": 0, - "max": 10 + "default": 0.0, + "group": "Multicopter Rate Control", + "shortDesc": "Yaw rate feedforward", + "longDesc": "Improves tracking performance.", + "min": 0.0, + "decimalPlaces": 4, + "increment": 0.01 }, { - "name": "PLD_HACC_RAD", + "name": "MC_YAWRATE_I", "type": "Float", - "group": "Precision Land", - "category": "Standard", - "shortDesc": "Horizontal acceptance radius", - "longDesc": "Start descending if closer above landing target than this.", - "units": "m", - "default": 0.2, - "increment": 0.1, + "default": 0.1, + "group": "Multicopter Rate Control", + "shortDesc": "Yaw rate I gain", + "longDesc": "Yaw rate integral gain. Can be set to compensate static thrust difference or gravity center offset.", + "min": 0.0, "decimalPlaces": 2, - "min": 0, - "max": 10 + "increment": 0.01 }, { - "name": "PLD_MAX_SRCH", - "type": "Int32", - "group": "Precision Land", - "category": "Standard", - "shortDesc": "Maximum number of search attempts", - "longDesc": "Maximum number of times to seach for the landing target if it is lost during the precision landing.", - "default": 3, - "decimalPlaces": 3, - "min": 0, - "max": 100 + "name": "MC_YAWRATE_K", + "type": "Float", + "default": 1.0, + "group": "Multicopter Rate Control", + "shortDesc": "Yaw rate controller gain", + "longDesc": "Global gain of the controller. This gain scales the P, I and D terms of the controller: output = MC_YAWRATE_K * (MC_YAWRATE_P * error + MC_YAWRATE_I * error_integral + MC_YAWRATE_D * error_derivative) Set MC_YAWRATE_P=1 to implement a PID in the ideal form. Set MC_YAWRATE_K=1 to implement a PID in the parallel form.", + "min": 0.0, + "max": 5.0, + "decimalPlaces": 4, + "increment": 0.0005 }, { - "name": "PLD_SRCH_ALT", + "name": "MC_YAWRATE_P", "type": "Float", - "group": "Precision Land", - "category": "Standard", - "shortDesc": "Search altitude", - "longDesc": "Altitude above home to which to climb when searching for the landing target.", - "units": "m", - "default": 10, - "increment": 0.1, - "decimalPlaces": 1, - "min": 0, - "max": 100 + "default": 0.2, + "group": "Multicopter Rate Control", + "shortDesc": "Yaw rate P gain", + "longDesc": "Yaw rate proportional gain, i.e. control output for angular speed error 1 rad/s.", + "min": 0.0, + "max": 0.6, + "decimalPlaces": 2, + "increment": 0.01 }, { - "name": "PLD_SRCH_TOUT", + "name": "MC_YR_INT_LIM", "type": "Float", - "group": "Precision Land", - "category": "Standard", - "shortDesc": "Search timeout", - "longDesc": "Time allowed to search for the landing target before falling back to normal landing.", - "units": "s", - "default": 10, - "increment": 0.1, - "decimalPlaces": 1, - "min": 0, - "max": 100 + "default": 0.3, + "group": "Multicopter Rate Control", + "shortDesc": "Yaw rate integrator limit", + "longDesc": "Yaw rate integrator limit. Can be set to increase the amount of integrator available to counteract disturbances or reduced to improve settling time after large yaw moment trim changes.", + "min": 0.0, + "decimalPlaces": 2, + "increment": 0.01 + }, + { + "name": "MOT_SLEW_MAX", + "type": "Float", + "default": 0.0, + "group": "PWM Outputs", + "shortDesc": "Minimum motor rise time (slew rate limit)", + "longDesc": "Minimum time allowed for the motor input signal to pass through a range of 1000 PWM units. A value x means that the motor signal can only go from 1000 to 2000 PWM in maximum x seconds. Zero means that slew rate limiting is disabled.", + "min": 0.0, + "units": "s/(1000*PWM)" }, { "name": "PWM_AUX_DIS1", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the auxiliary 1 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_DIS2", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the auxiliary 2 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_DIS3", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the auxiliary 3 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_DIS4", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the auxiliary 4 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_DIS5", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the auxiliary 5 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_DIS6", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the auxiliary 6 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_DIS7", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the auxiliary 7 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_DIS8", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the auxiliary 8 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_AUX_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_DISARMED", "type": "Int32", + "default": 1500, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for auxiliary outputs", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. The main use of this parameter is to silence ESCs when they are disarmed.", - "units": "us", - "default": 1500, - "rebootRequired": true, - "decimalPlaces": 3, "min": 0, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_FAIL1", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the auxiliary 1 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_FAIL2", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the auxiliary 2 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_FAIL3", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the auxiliary 3 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_FAIL4", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the auxiliary 4 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_FAIL5", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the auxiliary 5 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_FAIL6", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the auxiliary 6 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_FAIL7", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the auxiliary 7 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_FAIL8", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the auxiliary 8 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MAX", "type": "Int32", + "default": 2000, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the maximum PWM for the auxiliary outputs", "longDesc": "Set to 2000 for industry default or 2100 to increase servo travel.", - "units": "us", - "default": 2000, - "rebootRequired": true, - "decimalPlaces": 3, "min": 1600, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MAX1", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the auxiliary 1 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MAX2", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the auxiliary 2 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MAX3", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the auxiliary 3 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MAX4", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the auxiliary 4 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MAX5", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the auxiliary 5 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MAX6", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the auxiliary 6 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MAX7", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the auxiliary 7 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MAX8", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the auxiliary 8 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MIN", "type": "Int32", + "default": 1000, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the minimum PWM for the auxiliary outputs", "longDesc": "Set to 1000 for industry default or 900 to increase servo travel.", - "units": "us", - "default": 1000, - "rebootRequired": true, - "decimalPlaces": 3, "min": 800, - "max": 1400 + "max": 1400, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MIN1", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the auxiliary 1 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MIN2", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the auxiliary 2 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MIN3", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the auxiliary 3 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MIN4", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the auxiliary 4 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MIN5", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the auxiliary 5 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MIN6", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the auxiliary 6 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MIN7", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the auxiliary 7 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_MIN8", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the auxiliary 8 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_AUX_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_AUX_RATE", "type": "Int32", + "default": 50, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the PWM output frequency for the auxiliary outputs", "longDesc": "Set to 400 for industry default or 1000 for high frequency ESCs. Set to 0 for Oneshot125.", - "units": "Hz", - "default": 50, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2000 + "max": 2000, + "units": "Hz", + "rebootRequired": true }, { "name": "PWM_AUX_REV1", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of auxiliary output channel 1", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_AUX_REV2", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of auxiliary output channel 2", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_AUX_REV3", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of auxiliary output channel 3", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_AUX_REV4", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of auxiliary output channel 4", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_AUX_REV5", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of auxiliary output channel 5", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_AUX_REV6", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of auxiliary output channel 6", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_AUX_REV7", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of auxiliary output channel 7", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_AUX_REV8", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of auxiliary output channel 8", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_AUX_TRIM1", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for auxiliary output channel 1", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_AUX_TRIM2", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for auxiliary output channel 2", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_AUX_TRIM3", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for auxiliary output channel 3", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_AUX_TRIM4", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for auxiliary output channel 4", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_AUX_TRIM5", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for auxiliary output channel 5", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_AUX_TRIM6", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for auxiliary output channel 6", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_AUX_TRIM7", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for auxiliary output channel 7", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_AUX_TRIM8", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for auxiliary output channel 8", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_DISARMED", "type": "Int32", + "default": 900, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the main outputs", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. The main use of this parameter is to silence ESCs when they are disarmed.", - "units": "us", - "default": 900, - "rebootRequired": true, - "decimalPlaces": 3, "min": 0, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_DIS1", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the main 1 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_DIS2", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the main 2 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_DIS3", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the main 3 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_DIS4", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the main 4 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_DIS5", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the main 5 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_DIS6", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the main 6 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_DIS7", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the main 7 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_DIS8", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the disarmed PWM for the main 8 output", "longDesc": "This is the PWM pulse the autopilot is outputting if not armed. When set to -1 the value for PWM_DISARMED will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_FAIL1", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the main 1 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_FAIL2", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the main 2 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_FAIL3", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the main 3 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_FAIL4", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the main 4 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_FAIL5", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the main 5 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_FAIL6", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the main 6 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_FAIL7", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the main 7 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_FAIL8", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the failsafe PWM for the main 8 output", "longDesc": "This is the PWM pulse the autopilot is outputting if in failsafe mode. When set to -1 the value is set automatically depending if the actuator is a motor (900us) or a servo (1500us)", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MAX1", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the main 1 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MAX2", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the main 2 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MAX3", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the main 3 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MAX4", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the main 4 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MAX5", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the main 5 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MAX6", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the main 6 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MAX7", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the main 7 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MAX8", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the max PWM value for the main 8 output", "longDesc": "This is the maximum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MAX will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MIN1", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the main 1 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MIN2", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the main 2 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MIN3", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the main 3 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MIN4", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the main 4 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MIN5", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the main 5 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MIN6", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the main 6 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MIN7", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the main 7 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_MIN8", "type": "Int32", + "default": -1, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the min PWM value for the main 8 output", "longDesc": "This is the minimum PWM pulse the autopilot is allowed to output. When set to -1 the value for PWM_MIN will be used", - "units": "us", - "default": -1, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MAIN_REV1", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of main output channel 1", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_MAIN_REV2", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of main output channel 2", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_MAIN_REV3", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of main output channel 3", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_MAIN_REV4", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of main output channel 4", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_MAIN_REV5", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of main output channel 5", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_MAIN_REV6", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of main output channel 6", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_MAIN_REV7", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of main output channel 7", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_MAIN_REV8", "type": "Int32", + "default": 0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Invert direction of main output channel 8", - "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "longDesc": "Enable to invert the channel. Warning: Use this parameter when connected to a servo only. For a brushless motor, invert manually two phases to reverse the direction." }, { "name": "PWM_MAIN_TRIM1", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for main output channel 1", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_MAIN_TRIM2", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for main output channel 2", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_MAIN_TRIM3", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for main output channel 3", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_MAIN_TRIM4", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for main output channel 4", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_MAIN_TRIM5", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for main output channel 5", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_MAIN_TRIM6", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for main output channel 6", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_MAIN_TRIM7", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for main output channel 7", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_MAIN_TRIM8", "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Trim value for main output channel 8", "longDesc": "Set to normalized offset", - "default": 0, - "decimalPlaces": 2, "min": -0.2, - "max": 0.2 + "max": 0.2, + "decimalPlaces": 2 }, { "name": "PWM_MAX", "type": "Int32", + "default": 2000, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the maximum PWM for the main outputs", "longDesc": "Set to 2000 for industry default or 2100 to increase servo travel.", - "units": "us", - "default": 2000, - "rebootRequired": true, - "decimalPlaces": 3, "min": 1600, - "max": 2200 + "max": 2200, + "units": "us", + "rebootRequired": true }, { "name": "PWM_MIN", "type": "Int32", + "default": 1000, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the minimum PWM for the main outputs", "longDesc": "Set to 1000 for industry default or 900 to increase servo travel.", - "units": "us", - "default": 1000, - "rebootRequired": true, - "decimalPlaces": 3, "min": 800, - "max": 1400 + "max": 1400, + "units": "us", + "rebootRequired": true }, { "name": "PWM_RATE", "type": "Int32", + "default": 400, "group": "PWM Outputs", - "category": "Standard", "shortDesc": "Set the PWM output frequency for the main outputs", "longDesc": "Set to 400 for industry default or 1000 for high frequency ESCs. Set to 0 for Oneshot125.", - "units": "Hz", - "default": 400, - "rebootRequired": true, - "decimalPlaces": 3, "min": -1, - "max": 2000 + "max": 2000, + "units": "Hz", + "rebootRequired": true }, { - "name": "PWM_SBUS_MODE", - "type": "Int32", + "name": "THR_MDL_FAC", + "type": "Float", + "default": 0.0, "group": "PWM Outputs", - "category": "Standard", - "shortDesc": "S.BUS out", - "longDesc": "Set to 1 to enable S.BUS version 1 output instead of RSSI.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "shortDesc": "Thrust to motor control signal model parameter", + "longDesc": "Parameter used to model the nonlinear relationship between motor control signal (e.g. PWM) and static thrust. The model is: rel_thrust = factor * rel_signal^2 + (1-factor) * rel_signal, where rel_thrust is the normalized thrust between 0 and 1, and rel_signal is the relative motor control signal between 0 and 1.", + "min": 0.0, + "max": 1.0 }, { - "name": "RBCLW_ADDRESS", - "type": "Int32", - "group": "Roboclaw driver", - "category": "Standard", - "shortDesc": "Address of the Roboclaw", - "longDesc": "The Roboclaw can be configured to have an address from 0x80 to 0x87, inclusive. It must be configured to match this parameter.", - "default": 128, - "values": [ - { - "value": 128, - "description": "0x80" - }, - { - "value": 129, - "description": "0x81" - }, - { - "value": 130, - "description": "0x82" - }, - { - "value": 131, - "description": "0x83" - }, - { - "value": 132, - "description": "0x84" - }, - { - "value": 133, - "description": "0x85" - }, - { - "value": 134, - "description": "0x86" - }, - { - "value": 135, - "description": "0x87" - } - ], - "decimalPlaces": 3, - "min": 128, - "max": 135 + "name": "PLD_BTOUT", + "type": "Float", + "default": 5.0, + "group": "Precision Land", + "shortDesc": "Landing Target Timeout", + "longDesc": "Time after which the landing target is considered lost without any new measurements.", + "min": 0.0, + "max": 50.0, + "units": "s", + "decimalPlaces": 1, + "increment": 0.5 }, { - "name": "RBCLW_BAUD", - "type": "Int32", - "group": "Roboclaw driver", - "category": "Standard", - "shortDesc": "Roboclaw serial baud rate", - "longDesc": "Baud rate of the serial communication with the Roboclaw. The Roboclaw must be configured to match this rate.", - "default": 2400, - "values": [ - { - "value": 2400, - "description": "2400 baud" - }, - { - "value": 9600, - "description": "9600 baud" - }, - { - "value": 19200, - "description": "19200 baud" - }, - { - "value": 38400, - "description": "38400 baud" - }, - { - "value": 57600, - "description": "57600 baud" - }, - { - "value": 115200, - "description": "115200 baud" - }, - { - "value": 230400, - "description": "230400 baud" - }, - { - "value": 460800, - "description": "460800 baud" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 2400, - "max": 460800 + "name": "PLD_FAPPR_ALT", + "type": "Float", + "default": 0.1, + "group": "Precision Land", + "shortDesc": "Final approach altitude", + "longDesc": "Allow final approach (without horizontal positioning) if losing landing target closer than this to the ground.", + "min": 0.0, + "max": 10.0, + "units": "m", + "decimalPlaces": 2, + "increment": 0.1 }, { - "name": "RBCLW_COUNTS_REV", - "type": "Int32", - "group": "Roboclaw driver", - "category": "Standard", - "shortDesc": "Encoder counts per revolution", - "longDesc": "Number of encoder counts for one revolution. The roboclaw treats analog encoders (potentiometers) as having 2047 counts per rev. The default value of 1200 corresponds to the default configuration of the Aion R1 rover.", - "default": 1200, - "decimalPlaces": 3, - "min": 1, - "max": 2.14748e+09 + "name": "PLD_HACC_RAD", + "type": "Float", + "default": 0.2, + "group": "Precision Land", + "shortDesc": "Horizontal acceptance radius", + "longDesc": "Start descending if closer above landing target than this.", + "min": 0.0, + "max": 10.0, + "units": "m", + "decimalPlaces": 2, + "increment": 0.1 }, { - "name": "RBCLW_READ_PER", + "name": "PLD_MAX_SRCH", "type": "Int32", - "group": "Roboclaw driver", - "category": "Standard", - "shortDesc": "Encoder read period", - "longDesc": "How long to wait, in Milliseconds, between reading wheel encoder values over Uart from the Roboclaw", - "units": "ms", - "default": 10, - "decimalPlaces": 3, - "min": 1, - "max": 1000 + "default": 3, + "group": "Precision Land", + "shortDesc": "Maximum number of search attempts", + "longDesc": "Maximum number of times to seach for the landing target if it is lost during the precision landing.", + "min": 0, + "max": 100 }, { - "name": "RBCLW_SER_CFG", - "type": "Int32", - "group": "Roboclaw", - "category": "Standard", - "shortDesc": "Serial Configuration for Roboclaw Driver", - "longDesc": "Configure on which serial port to run Roboclaw Driver.", - "default": 0, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 6, - "description": "UART 6" - }, - { - "value": 101, - "description": "TELEM 1" - }, - { - "value": 102, - "description": "TELEM 2" - }, - { - "value": 103, - "description": "TELEM 3" - }, - { - "value": 104, - "description": "TELEM/SERIAL 4" - }, - { - "value": 201, - "description": "GPS 1" - }, - { - "value": 202, - "description": "GPS 2" - }, - { - "value": 203, - "description": "GPS 3" - }, - { - "value": 300, - "description": "Radio Controller" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "PLD_SRCH_ALT", + "type": "Float", + "default": 10.0, + "group": "Precision Land", + "shortDesc": "Search altitude", + "longDesc": "Altitude above home to which to climb when searching for the landing target.", + "min": 0.0, + "max": 100.0, + "units": "m", + "decimalPlaces": 1, + "increment": 0.1 }, { - "name": "RBCLW_WRITE_PER", - "type": "Int32", - "group": "Roboclaw driver", - "category": "Standard", - "shortDesc": "Uart write period", - "longDesc": "How long to wait, in Milliseconds, between writing actuator controls over Uart to the Roboclaw", - "units": "ms", - "default": 10, - "decimalPlaces": 3, - "min": 1, - "max": 1000 + "name": "PLD_SRCH_TOUT", + "type": "Float", + "default": 10.0, + "group": "Precision Land", + "shortDesc": "Search timeout", + "longDesc": "Time allowed to search for the landing target before falling back to normal landing.", + "min": 0.0, + "max": 100.0, + "units": "s", + "decimalPlaces": 1, + "increment": 0.1 }, { - "name": "RC{n}_DZ", + "name": "RC10_DZ", "type": "Float", + "default": 0.0, "group": "Radio Calibration", - "category": "Standard", "shortDesc": "RC channel 10 dead zone", "longDesc": "The +- range of this value around the trim value will be considered as zero.", - "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 100 + "min": 0.0, + "max": 100.0 }, { - "name": "RC{n}_MAX", + "name": "RC10_MAX", "type": "Float", + "default": 2000.0, "group": "Radio Calibration", - "category": "Standard", "shortDesc": "RC channel 10 maximum", "longDesc": "Maximum value for this channel.", - "units": "us", - "default": 2000, - "decimalPlaces": 3, - "min": 1500, - "max": 2200 + "min": 1500.0, + "max": 2200.0, + "units": "us" }, { - "name": "RC{n}_MIN", + "name": "RC10_MIN", "type": "Float", + "default": 1000.0, "group": "Radio Calibration", - "category": "Standard", "shortDesc": "RC channel 10 minimum", "longDesc": "Minimum value for this channel.", - "units": "us", - "default": 1000, - "decimalPlaces": 3, - "min": 800, - "max": 1500 + "min": 800.0, + "max": 1500.0, + "units": "us" }, { - "name": "RC{n}_REV", + "name": "RC10_REV", "type": "Float", + "default": 1.0, "group": "Radio Calibration", - "category": "Standard", "shortDesc": "RC channel 10 reverse", "longDesc": "Set to -1 to reverse channel.", - "default": 1, + "min": -1.0, + "max": 1.0, "values": [ { - "value": -1, + "value": -1.0, "description": "Reverse" }, { - "value": 1, + "value": 1.0, "description": "Normal" } - ], - "decimalPlaces": 3, - "min": -1, - "max": 1 + ] }, { - "name": "RC{n}_TRIM", + "name": "RC10_TRIM", "type": "Float", + "default": 1500.0, "group": "Radio Calibration", - "category": "Standard", "shortDesc": "RC channel 10 trim", "longDesc": "Mid point value (has to be set to the same as min for throttle channel).", - "units": "us", - "default": 1500, - "decimalPlaces": 3, - "min": 800, - "max": 2200 + "min": 800.0, + "max": 2200.0, + "units": "us" }, { - "name": "RC_ACRO_TH", + "name": "RC11_DZ", "type": "Float", - "group": "Radio Switches", - "category": "Standard", - "shortDesc": "Threshold for selecting acro mode", - "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channel 0", + "min": 0.0, + "max": 100.0, + "units": "m", + "decimalPlaces": 1, + "increment": 1.0 + }, + { + "name": "RWTO_PSP", + "type": "Float", + "default": 0.0, + "group": "Runway Takeoff", + "shortDesc": "Pitch setpoint during taxi / before takeoff airspeed is reached.\nA taildragger with stearable wheel might need to pitch up\na little to keep it's wheel on the ground before airspeed\nto takeoff is reached", + "min": -10.0, + "max": 20.0, + "units": "deg", + "decimalPlaces": 1, + "increment": 0.5 + }, + { + "name": "RWTO_RAMP_TIME", + "type": "Float", + "default": 2.0, + "group": "Runway Takeoff", + "shortDesc": "Throttle ramp up time for runway takeoff", + "min": 1.0, + "max": 15.0, + "units": "s", + "decimalPlaces": 2, + "increment": 0.1 + }, + { + "name": "RWTO_TKOFF", + "type": "Int32", + "default": 0, + "group": "Runway Takeoff", + "shortDesc": "Runway takeoff with landing gear" + }, + { + "name": "SDLOG_BOOT_BAT", + "type": "Int32", + "default": 0, + "group": "SD Logging", + "shortDesc": "Battery-only Logging", + "longDesc": "When enabled, logging will not start from boot if battery power is not detected (e.g. powered via USB on a test bench). This prevents extraneous flight logs from being created during bench testing. Note that this only applies to log-from-boot modes. This has no effect on arm-based modes." + }, + { + "name": "SDLOG_DIRS_MAX", + "type": "Int32", + "default": 0, + "group": "SD Logging", + "shortDesc": "Maximum number of log directories to keep", + "longDesc": "If there are more log directories than this value, the system will delete the oldest directories during startup. In addition, the system will delete old logs if there is not enough free space left. The minimum amount is 300 MB. If this is set to 0, old directories will only be removed if the free space falls below the minimum. Note: this does not apply to mission log files.", "min": 0, - "max": 18 + "max": 1000, + "rebootRequired": true }, { - "name": "RC_MAP_MODE_SW", + "name": "SDLOG_MISSION", "type": "Int32", - "group": "Radio Switches", - "category": "Standard", - "shortDesc": "Mode switch channel mapping", - "longDesc": "This is the main flight mode selector. The channel index (starting from 1 for channel 1) indicates which channel should be used for deciding about the main mode. A value of zero indicates the switch is not assigned.", "default": 0, + "group": "SD Logging", + "shortDesc": "Mission Log", + "longDesc": "If enabled, a small additional \"mission\" log file will be written to the SD card. The log contains just those messages that are useful for tasks like generating flight statistics and geotagging. The different modes can be used to further reduce the logged data (and thus the log file size). For example, choose geotagging mode to only log data required for geotagging. Note that the normal/full log is still created, and contains all the data in the mission log (and more).", + "rebootRequired": true, "values": [ { "value": 0, - "description": "Unassigned" + "description": "Disabled" }, { "value": 1, - "description": "Channel 1" + "description": "All mission messages" }, { "value": 2, - "description": "Channel 2" - }, - { - "value": 3, - "description": "Channel 3" - }, - { - "value": 4, - "description": "Channel 4" - }, - { - "value": 5, - "description": "Channel 5" - }, - { - "value": 6, - "description": "Channel 6" - }, - { - "value": 7, - "description": "Channel 7" - }, - { - "value": 8, - "description": "Channel 8" - }, - { - "value": 9, - "description": "Channel 9" - }, - { - "value": 10, - "description": "Channel 10" - }, - { - "value": 11, - "description": "Channel 11" - }, - { - "value": 12, - "description": "Channel 12" - }, - { - "value": 13, - "description": "Channel 13" - }, - { - "value": 14, - "description": "Channel 14" - }, - { - "value": 15, - "description": "Channel 15" - }, - { - "value": 16, - "description": "Channel 16" - }, - { - "value": 17, - "description": "Channel 17" - }, - { - "value": 18, - "description": "Channel 18" + "description": "Geotagging messages" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 + ] }, { - "name": "RC_MAP_OFFB_SW", + "name": "SDLOG_MODE", "type": "Int32", - "group": "Radio Switches", - "category": "Standard", - "shortDesc": "Offboard switch channel", "default": 0, + "group": "SD Logging", + "shortDesc": "Logging Mode", + "longDesc": "Determines when to start and stop logging. By default, logging is started when arming the system, and stopped when disarming.", + "rebootRequired": true, "values": [ + { + "value": -1, + "description": "disabled" + }, { "value": 0, - "description": "Unassigned" + "description": "when armed until disarm (default)" }, { "value": 1, - "description": "Channel 1" + "description": "from boot until disarm" }, { "value": 2, - "description": "Channel 2" + "description": "from boot until shutdown" }, { "value": 3, - "description": "Channel 3" - }, + "description": "depending on AUX1 RC channel" + } + ] + }, + { + "name": "SDLOG_PROFILE", + "type": "Int32", + "default": 1, + "group": "SD Logging", + "shortDesc": "Logging topic profile (integer bitmask)", + "longDesc": "This integer bitmask controls the set and rates of logged topics. The default allows for general log analysis and estimator replay, while keeping the log file size reasonably small. Enabling multiple sets leads to higher bandwidth requirements and larger log files. Set bits true to enable: 0 : Default set (used for general log analysis) 1 : Full rate estimator (EKF2) replay topics 2 : Topics for thermal calibration (high rate raw IMU and Baro sensor data) 3 : Topics for system identification (high rate actuator control and IMU data) 4 : Full rates for analysis of fast maneuvers (RC, attitude, rates and actuators) 5 : Debugging topics (debug_*.msg topics, for custom code) 6 : Topics for sensor comparison (low rate raw IMU, Baro and Magnetomer data) 7 : Topics for computer vision and collision avoidance 8 : Raw FIFO high-rate IMU (Gyro) 9 : Raw FIFO high-rate IMU (Accel)", + "min": 0, + "max": 1023, + "rebootRequired": true, + "bitmask": [ { - "value": 4, - "description": "Channel 4" + "index": 0, + "description": "Default set (general log analysis)" }, { - "value": 5, - "description": "Channel 5" + "index": 1, + "description": "Estimator replay (EKF2)" }, { - "value": 6, - "description": "Channel 6" + "index": 2, + "description": "Thermal calibration" }, { - "value": 7, - "description": "Channel 7" + "index": 3, + "description": "System identification" }, { - "value": 8, - "description": "Channel 8" + "index": 4, + "description": "High rate" }, { - "value": 9, - "description": "Channel 9" + "index": 5, + "description": "Debug" }, { - "value": 10, - "description": "Channel 10" + "index": 6, + "description": "Sensor comparison" }, { - "value": 11, - "description": "Channel 11" + "index": 7, + "description": "Computer Vision and Avoidance" }, { - "value": 12, - "description": "Channel 12" + "index": 8, + "description": "Raw FIFO high-rate IMU (Gyro)" }, { - "value": 13, - "description": "Channel 13" + "index": 9, + "description": "Raw FIFO high-rate IMU (Accel)" + } + ] + }, + { + "name": "SDLOG_UTC_OFFSET", + "type": "Int32", + "default": 0, + "group": "SD Logging", + "shortDesc": "UTC offset (unit: min)", + "longDesc": "the difference in hours and minutes from Coordinated Universal Time (UTC) for a your place and date. for example, In case of South Korea(UTC+09:00), UTC offset is 540 min (9*60) refer to https://en.wikipedia.org/wiki/List_of_UTC_time_offsets", + "min": -1000, + "max": 1000, + "units": "min" + }, + { + "name": "SDLOG_UUID", + "type": "Int32", + "default": 1, + "group": "SD Logging", + "shortDesc": "Log UUID", + "longDesc": "If set to 1, add an ID to the log, which uniquely identifies the vehicle" + }, + { + "name": "SIM_BAT_DRAIN", + "type": "Float", + "default": 60.0, + "group": "SITL", + "shortDesc": "Simulator Battery drain interval", + "min": 1.0, + "max": 86400.0, + "units": "s", + "increment": 1.0 + }, + { + "name": "SIM_BAT_MIN_PCT", + "type": "Float", + "default": 50.0, + "group": "SITL", + "shortDesc": "Simulator Battery minimal percentage. Can be used to alter\nthe battery level during SITL- or HITL-simulation on the fly.\nParticularly useful for testing different low-battery behaviour", + "min": 0.0, + "max": 100.0, + "units": "%", + "increment": 0.1 + }, + { + "name": "CAL_ACC0_ID", + "type": "Int32", + "default": 0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "ID of the Accelerometer that the calibration is for" + }, + { + "name": "CAL_ACC0_PRIO", + "type": "Int32", + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer 0 priority", + "values": [ + { + "value": -1, + "description": " Uninitialized" }, { - "value": 14, - "description": "Channel 14" + "value": 0, + "description": " Disabled" }, { - "value": 15, - "description": "Channel 15" + "value": 1, + "description": " Min" }, { - "value": 16, - "description": "Channel 16" + "value": 25, + "description": " Low" }, { - "value": 17, - "description": "Channel 17" + "value": 50, + "description": " Medium (Default)" }, { - "value": 18, - "description": "Channel 18" + "value": 75, + "description": " High" + }, + { + "value": 100, + "description": "Max" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 + ] }, { - "name": "RC_MAP_PARAM1", + "name": "CAL_ACC0_ROT", "type": "Int32", - "group": "Radio Calibration", - "category": "Standard", - "shortDesc": "PARAM1 tuning channel", - "longDesc": "Can be used for parameter tuning with the RC. This one is further referenced as the 1st parameter channel. Set to 0 to deactivate *", - "default": 0, + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Rotation of accelerometer 0 relative to airframe", + "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.", + "min": -1, + "max": 41, + "rebootRequired": true, "values": [ + { + "value": -1, + "description": "Internal" + }, { "value": 0, - "description": "Unassigned" + "description": "No rotation" }, { "value": 1, - "description": "Channel 1" + "description": "Yaw 45\u00b0" }, { "value": 2, - "description": "Channel 2" + "description": "Yaw 90\u00b0" }, { "value": 3, - "description": "Channel 3" + "description": "Yaw 135\u00b0" }, { "value": 4, - "description": "Channel 4" + "description": "Yaw 180\u00b0" }, { "value": 5, - "description": "Channel 5" + "description": "Yaw 225\u00b0" }, { "value": 6, - "description": "Channel 6" + "description": "Yaw 270\u00b0" }, { "value": 7, - "description": "Channel 7" + "description": "Yaw 315\u00b0" }, { "value": 8, - "description": "Channel 8" + "description": "Roll 180\u00b0" }, { "value": 9, - "description": "Channel 9" + "description": "Roll 180\u00b0, Yaw 45\u00b0" }, { "value": 10, - "description": "Channel 10" + "description": "Roll 180\u00b0, Yaw 90\u00b0" }, { "value": 11, - "description": "Channel 11" + "description": "Roll 180\u00b0, Yaw 135\u00b0" }, { "value": 12, - "description": "Channel 12" + "description": "Pitch 180\u00b0" }, { "value": 13, - "description": "Channel 13" + "description": "Roll 180\u00b0, Yaw 225\u00b0" }, { "value": 14, - "description": "Channel 14" + "description": "Roll 180\u00b0, Yaw 270\u00b0" }, { "value": 15, - "description": "Channel 15" + "description": "Roll 180\u00b0, Yaw 315\u00b0" }, { "value": 16, - "description": "Channel 16" + "description": "Roll 90\u00b0" }, { "value": 17, - "description": "Channel 17" + "description": "Roll 90\u00b0, Yaw 45\u00b0" }, { "value": 18, - "description": "Channel 18" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 - }, - { - "name": "RC_MAP_PARAM2", - "type": "Int32", - "group": "Radio Calibration", - "category": "Standard", - "shortDesc": "PARAM2 tuning channel", - "longDesc": "Can be used for parameter tuning with the RC. This one is further referenced as the 2nd parameter channel. Set to 0 to deactivate *", - "default": 0, - "values": [ + "description": "Roll 90\u00b0, Yaw 90\u00b0" + }, { - "value": 0, - "description": "Unassigned" + "value": 19, + "description": "Roll 90\u00b0, Yaw 135\u00b0" }, { - "value": 1, - "description": "Channel 1" + "value": 20, + "description": "Roll 270\u00b0" }, { - "value": 2, - "description": "Channel 2" + "value": 21, + "description": "Roll 270\u00b0, Yaw 45\u00b0" }, { - "value": 3, - "description": "Channel 3" + "value": 22, + "description": "Roll 270\u00b0, Yaw 90\u00b0" }, { - "value": 4, - "description": "Channel 4" + "value": 23, + "description": "Roll 270\u00b0, Yaw 135\u00b0" }, { - "value": 5, - "description": "Channel 5" + "value": 24, + "description": "Pitch 90\u00b0" }, { - "value": 6, - "description": "Channel 6" + "value": 25, + "description": "Pitch 270\u00b0" }, { - "value": 7, - "description": "Channel 7" + "value": 26, + "description": "Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 8, - "description": "Channel 8" + "value": 27, + "description": "Pitch 180\u00b0, Yaw 270\u00b0" }, { - "value": 9, - "description": "Channel 9" + "value": 28, + "description": "Roll 90\u00b0, Pitch 90\u00b0" }, { - "value": 10, - "description": "Channel 10" + "value": 29, + "description": "Roll 180\u00b0, Pitch 90\u00b0" }, { - "value": 11, - "description": "Channel 11" + "value": 30, + "description": "Roll 270\u00b0, Pitch 90\u00b0" }, { - "value": 12, - "description": "Channel 12" + "value": 31, + "description": "Roll 90\u00b0, Pitch 180\u00b0" }, { - "value": 13, - "description": "Channel 13" + "value": 32, + "description": "Roll 270\u00b0, Pitch 180\u00b0" }, { - "value": 14, - "description": "Channel 14" + "value": 33, + "description": "Roll 90\u00b0, Pitch 270\u00b0" }, { - "value": 15, - "description": "Channel 15" + "value": 34, + "description": "Roll 180\u00b0, Pitch 270\u00b0" }, { - "value": 16, - "description": "Channel 16" + "value": 35, + "description": "Roll 270\u00b0, Pitch 270\u00b0" }, { - "value": 17, - "description": "Channel 17" + "value": 36, + "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 18, - "description": "Channel 18" + "value": 37, + "description": "Roll 90\u00b0, Yaw 270\u00b0" + }, + { + "value": 38, + "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0" + }, + { + "value": 39, + "description": "Pitch 315\u00b0" + }, + { + "value": 40, + "description": "Roll 90\u00b0, Pitch 315\u00b0" + }, + { + "value": 41, + "description": "Roll 270\u00b0, Yaw 180\u00b0" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 + ] }, { - "name": "RC_MAP_PARAM3", + "name": "CAL_ACC0_XOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer X-axis offset" + }, + { + "name": "CAL_ACC0_XSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer X-axis scaling factor" + }, + { + "name": "CAL_ACC0_YOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Y-axis offset" + }, + { + "name": "CAL_ACC0_YSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Y-axis scaling factor" + }, + { + "name": "CAL_ACC0_ZOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Z-axis offset" + }, + { + "name": "CAL_ACC0_ZSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Z-axis scaling factor" + }, + { + "name": "CAL_ACC1_ID", "type": "Int32", - "group": "Radio Calibration", - "category": "Standard", - "shortDesc": "PARAM3 tuning channel", - "longDesc": "Can be used for parameter tuning with the RC. This one is further referenced as the 3th parameter channel. Set to 0 to deactivate *", "default": 0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "ID of the Accelerometer that the calibration is for" + }, + { + "name": "CAL_ACC1_PRIO", + "type": "Int32", + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer 1 priority", "values": [ + { + "value": -1, + "description": " Uninitialized" + }, { "value": 0, - "description": "Unassigned" + "description": " Disabled" }, { "value": 1, - "description": "Channel 1" + "description": " Min" + }, + { + "value": 25, + "description": " Low" + }, + { + "value": 50, + "description": " Medium (Default)" + }, + { + "value": 75, + "description": " High" + }, + { + "value": 100, + "description": "Max" + } + ] + }, + { + "name": "CAL_ACC1_ROT", + "type": "Int32", + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Rotation of accelerometer 1 relative to airframe", + "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.", + "min": -1, + "max": 41, + "rebootRequired": true, + "values": [ + { + "value": -1, + "description": "Internal" + }, + { + "value": 0, + "description": "No rotation" + }, + { + "value": 1, + "description": "Yaw 45\u00b0" }, { "value": 2, - "description": "Channel 2" + "description": "Yaw 90\u00b0" }, { "value": 3, - "description": "Channel 3" + "description": "Yaw 135\u00b0" }, { "value": 4, - "description": "Channel 4" + "description": "Yaw 180\u00b0" }, { "value": 5, - "description": "Channel 5" + "description": "Yaw 225\u00b0" }, { "value": 6, - "description": "Channel 6" + "description": "Yaw 270\u00b0" }, { "value": 7, - "description": "Channel 7" + "description": "Yaw 315\u00b0" }, { "value": 8, - "description": "Channel 8" + "description": "Roll 180\u00b0" }, { "value": 9, - "description": "Channel 9" + "description": "Roll 180\u00b0, Yaw 45\u00b0" }, { "value": 10, - "description": "Channel 10" + "description": "Roll 180\u00b0, Yaw 90\u00b0" }, { "value": 11, - "description": "Channel 11" + "description": "Roll 180\u00b0, Yaw 135\u00b0" }, { "value": 12, - "description": "Channel 12" + "description": "Pitch 180\u00b0" }, { "value": 13, - "description": "Channel 13" + "description": "Roll 180\u00b0, Yaw 225\u00b0" }, { "value": 14, - "description": "Channel 14" + "description": "Roll 180\u00b0, Yaw 270\u00b0" }, { "value": 15, - "description": "Channel 15" + "description": "Roll 180\u00b0, Yaw 315\u00b0" }, { "value": 16, - "description": "Channel 16" + "description": "Roll 90\u00b0" }, { "value": 17, - "description": "Channel 17" + "description": "Roll 90\u00b0, Yaw 45\u00b0" }, { "value": 18, - "description": "Channel 18" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 - }, - { - "name": "RC_MAP_PITCH", - "type": "Int32", - "group": "Radio Calibration", - "category": "Standard", - "shortDesc": "Pitch control channel mapping", - "longDesc": "The channel index (starting from 1 for channel 1) indicates which channel should be used for reading pitch inputs from. A value of zero indicates the switch is not assigned.", - "default": 0, - "values": [ + "description": "Roll 90\u00b0, Yaw 90\u00b0" + }, + { + "value": 19, + "description": "Roll 90\u00b0, Yaw 135\u00b0" + }, + { + "value": 20, + "description": "Roll 270\u00b0" + }, + { + "value": 21, + "description": "Roll 270\u00b0, Yaw 45\u00b0" + }, + { + "value": 22, + "description": "Roll 270\u00b0, Yaw 90\u00b0" + }, + { + "value": 23, + "description": "Roll 270\u00b0, Yaw 135\u00b0" + }, + { + "value": 24, + "description": "Pitch 90\u00b0" + }, + { + "value": 25, + "description": "Pitch 270\u00b0" + }, + { + "value": 26, + "description": "Pitch 180\u00b0, Yaw 90\u00b0" + }, + { + "value": 27, + "description": "Pitch 180\u00b0, Yaw 270\u00b0" + }, + { + "value": 28, + "description": "Roll 90\u00b0, Pitch 90\u00b0" + }, { - "value": 0, - "description": "Unassigned" + "value": 29, + "description": "Roll 180\u00b0, Pitch 90\u00b0" }, { - "value": 1, - "description": "Channel 1" + "value": 30, + "description": "Roll 270\u00b0, Pitch 90\u00b0" }, { - "value": 2, - "description": "Channel 2" + "value": 31, + "description": "Roll 90\u00b0, Pitch 180\u00b0" }, { - "value": 3, - "description": "Channel 3" + "value": 32, + "description": "Roll 270\u00b0, Pitch 180\u00b0" }, { - "value": 4, - "description": "Channel 4" + "value": 33, + "description": "Roll 90\u00b0, Pitch 270\u00b0" }, { - "value": 5, - "description": "Channel 5" + "value": 34, + "description": "Roll 180\u00b0, Pitch 270\u00b0" }, { - "value": 6, - "description": "Channel 6" + "value": 35, + "description": "Roll 270\u00b0, Pitch 270\u00b0" }, { - "value": 7, - "description": "Channel 7" + "value": 36, + "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 8, - "description": "Channel 8" + "value": 37, + "description": "Roll 90\u00b0, Yaw 270\u00b0" }, { - "value": 9, - "description": "Channel 9" + "value": 38, + "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0" }, { - "value": 10, - "description": "Channel 10" + "value": 39, + "description": "Pitch 315\u00b0" }, { - "value": 11, - "description": "Channel 11" + "value": 40, + "description": "Roll 90\u00b0, Pitch 315\u00b0" }, { - "value": 12, - "description": "Channel 12" + "value": 41, + "description": "Roll 270\u00b0, Yaw 180\u00b0" + } + ] + }, + { + "name": "CAL_ACC1_XOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer X-axis offset" + }, + { + "name": "CAL_ACC1_XSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer X-axis scaling factor" + }, + { + "name": "CAL_ACC1_YOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Y-axis offset" + }, + { + "name": "CAL_ACC1_YSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Y-axis scaling factor" + }, + { + "name": "CAL_ACC1_ZOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Z-axis offset" + }, + { + "name": "CAL_ACC1_ZSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Z-axis scaling factor" + }, + { + "name": "CAL_ACC2_ID", + "type": "Int32", + "default": 0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "ID of the Accelerometer that the calibration is for" + }, + { + "name": "CAL_ACC2_PRIO", + "type": "Int32", + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer 2 priority", + "values": [ + { + "value": -1, + "description": " Uninitialized" }, { - "value": 13, - "description": "Channel 13" + "value": 0, + "description": " Disabled" }, { - "value": 14, - "description": "Channel 14" + "value": 1, + "description": " Min" }, { - "value": 15, - "description": "Channel 15" + "value": 25, + "description": " Low" }, { - "value": 16, - "description": "Channel 16" + "value": 50, + "description": " Medium (Default)" }, { - "value": 17, - "description": "Channel 17" + "value": 75, + "description": " High" }, { - "value": 18, - "description": "Channel 18" + "value": 100, + "description": "Max" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 + ] }, { - "name": "RC_MAP_POSCTL_SW", + "name": "CAL_ACC2_ROT", "type": "Int32", - "group": "Radio Switches", - "category": "Standard", - "shortDesc": "Position Control switch channel", - "default": 0, + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Rotation of accelerometer 2 relative to airframe", + "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.", + "min": -1, + "max": 41, + "rebootRequired": true, "values": [ + { + "value": -1, + "description": "Internal" + }, { "value": 0, - "description": "Unassigned" + "description": "No rotation" }, { "value": 1, - "description": "Channel 1" + "description": "Yaw 45\u00b0" }, { "value": 2, - "description": "Channel 2" + "description": "Yaw 90\u00b0" }, { "value": 3, - "description": "Channel 3" + "description": "Yaw 135\u00b0" }, { "value": 4, - "description": "Channel 4" + "description": "Yaw 180\u00b0" }, { "value": 5, - "description": "Channel 5" + "description": "Yaw 225\u00b0" }, { "value": 6, - "description": "Channel 6" + "description": "Yaw 270\u00b0" }, { "value": 7, - "description": "Channel 7" + "description": "Yaw 315\u00b0" }, { "value": 8, - "description": "Channel 8" + "description": "Roll 180\u00b0" }, { "value": 9, - "description": "Channel 9" + "description": "Roll 180\u00b0, Yaw 45\u00b0" }, { "value": 10, - "description": "Channel 10" + "description": "Roll 180\u00b0, Yaw 90\u00b0" }, { "value": 11, - "description": "Channel 11" + "description": "Roll 180\u00b0, Yaw 135\u00b0" }, { "value": 12, - "description": "Channel 12" + "description": "Pitch 180\u00b0" }, { "value": 13, - "description": "Channel 13" + "description": "Roll 180\u00b0, Yaw 225\u00b0" }, { "value": 14, - "description": "Channel 14" + "description": "Roll 180\u00b0, Yaw 270\u00b0" }, { "value": 15, - "description": "Channel 15" + "description": "Roll 180\u00b0, Yaw 315\u00b0" }, { "value": 16, - "description": "Channel 16" + "description": "Roll 90\u00b0" }, { "value": 17, - "description": "Channel 17" + "description": "Roll 90\u00b0, Yaw 45\u00b0" }, { "value": 18, - "description": "Channel 18" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 - }, - { - "name": "RC_MAP_RATT_SW", - "type": "Int32", - "group": "Radio Switches", - "category": "Standard", - "shortDesc": "Rattitude switch channel", - "default": 0, - "values": [ + "description": "Roll 90\u00b0, Yaw 90\u00b0" + }, { - "value": 0, - "description": "Unassigned" + "value": 19, + "description": "Roll 90\u00b0, Yaw 135\u00b0" }, { - "value": 1, - "description": "Channel 1" + "value": 20, + "description": "Roll 270\u00b0" }, { - "value": 2, - "description": "Channel 2" + "value": 21, + "description": "Roll 270\u00b0, Yaw 45\u00b0" }, { - "value": 3, - "description": "Channel 3" + "value": 22, + "description": "Roll 270\u00b0, Yaw 90\u00b0" }, { - "value": 4, - "description": "Channel 4" + "value": 23, + "description": "Roll 270\u00b0, Yaw 135\u00b0" }, { - "value": 5, - "description": "Channel 5" + "value": 24, + "description": "Pitch 90\u00b0" }, { - "value": 6, - "description": "Channel 6" + "value": 25, + "description": "Pitch 270\u00b0" }, { - "value": 7, - "description": "Channel 7" + "value": 26, + "description": "Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 8, - "description": "Channel 8" + "value": 27, + "description": "Pitch 180\u00b0, Yaw 270\u00b0" }, { - "value": 9, - "description": "Channel 9" + "value": 28, + "description": "Roll 90\u00b0, Pitch 90\u00b0" }, { - "value": 10, - "description": "Channel 10" + "value": 29, + "description": "Roll 180\u00b0, Pitch 90\u00b0" }, { - "value": 11, - "description": "Channel 11" + "value": 30, + "description": "Roll 270\u00b0, Pitch 90\u00b0" }, { - "value": 12, - "description": "Channel 12" + "value": 31, + "description": "Roll 90\u00b0, Pitch 180\u00b0" + }, + { + "value": 32, + "description": "Roll 270\u00b0, Pitch 180\u00b0" + }, + { + "value": 33, + "description": "Roll 90\u00b0, Pitch 270\u00b0" + }, + { + "value": 34, + "description": "Roll 180\u00b0, Pitch 270\u00b0" + }, + { + "value": 35, + "description": "Roll 270\u00b0, Pitch 270\u00b0" + }, + { + "value": 36, + "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0" + }, + { + "value": 37, + "description": "Roll 90\u00b0, Yaw 270\u00b0" + }, + { + "value": 38, + "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0" + }, + { + "value": 39, + "description": "Pitch 315\u00b0" + }, + { + "value": 40, + "description": "Roll 90\u00b0, Pitch 315\u00b0" + }, + { + "value": 41, + "description": "Roll 270\u00b0, Yaw 180\u00b0" + } + ] + }, + { + "name": "CAL_ACC2_XOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer X-axis offset" + }, + { + "name": "CAL_ACC2_XSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer X-axis scaling factor" + }, + { + "name": "CAL_ACC2_YOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Y-axis offset" + }, + { + "name": "CAL_ACC2_YSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Y-axis scaling factor" + }, + { + "name": "CAL_ACC2_ZOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Z-axis offset" + }, + { + "name": "CAL_ACC2_ZSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Z-axis scaling factor" + }, + { + "name": "CAL_ACC3_ID", + "type": "Int32", + "default": 0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "ID of the Accelerometer that the calibration is for" + }, + { + "name": "CAL_ACC3_PRIO", + "type": "Int32", + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer 3 priority", + "values": [ + { + "value": -1, + "description": " Uninitialized" }, { - "value": 13, - "description": "Channel 13" + "value": 0, + "description": " Disabled" }, { - "value": 14, - "description": "Channel 14" + "value": 1, + "description": " Min" }, { - "value": 15, - "description": "Channel 15" + "value": 25, + "description": " Low" }, { - "value": 16, - "description": "Channel 16" + "value": 50, + "description": " Medium (Default)" }, { - "value": 17, - "description": "Channel 17" + "value": 75, + "description": " High" }, { - "value": 18, - "description": "Channel 18" + "value": 100, + "description": "Max" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 + ] }, { - "name": "RC_MAP_RETURN_SW", + "name": "CAL_ACC3_ROT", "type": "Int32", - "group": "Radio Switches", - "category": "Standard", - "shortDesc": "Return switch channel", - "default": 0, + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Rotation of accelerometer 3 relative to airframe", + "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.", + "min": -1, + "max": 41, + "rebootRequired": true, "values": [ + { + "value": -1, + "description": "Internal" + }, { "value": 0, - "description": "Unassigned" + "description": "No rotation" }, { "value": 1, - "description": "Channel 1" + "description": "Yaw 45\u00b0" }, { "value": 2, - "description": "Channel 2" + "description": "Yaw 90\u00b0" }, { "value": 3, - "description": "Channel 3" + "description": "Yaw 135\u00b0" }, { "value": 4, - "description": "Channel 4" + "description": "Yaw 180\u00b0" }, { "value": 5, - "description": "Channel 5" + "description": "Yaw 225\u00b0" }, { "value": 6, - "description": "Channel 6" + "description": "Yaw 270\u00b0" }, { "value": 7, - "description": "Channel 7" + "description": "Yaw 315\u00b0" }, { "value": 8, - "description": "Channel 8" + "description": "Roll 180\u00b0" }, { "value": 9, - "description": "Channel 9" + "description": "Roll 180\u00b0, Yaw 45\u00b0" }, { "value": 10, - "description": "Channel 10" + "description": "Roll 180\u00b0, Yaw 90\u00b0" }, { "value": 11, - "description": "Channel 11" + "description": "Roll 180\u00b0, Yaw 135\u00b0" }, { "value": 12, - "description": "Channel 12" + "description": "Pitch 180\u00b0" }, { "value": 13, - "description": "Channel 13" + "description": "Roll 180\u00b0, Yaw 225\u00b0" }, { "value": 14, - "description": "Channel 14" + "description": "Roll 180\u00b0, Yaw 270\u00b0" }, { "value": 15, - "description": "Channel 15" + "description": "Roll 180\u00b0, Yaw 315\u00b0" }, { "value": 16, - "description": "Channel 16" + "description": "Roll 90\u00b0" }, { "value": 17, - "description": "Channel 17" + "description": "Roll 90\u00b0, Yaw 45\u00b0" }, { "value": 18, - "description": "Channel 18" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 - }, - { - "name": "RC_MAP_ROLL", - "type": "Int32", - "group": "Radio Calibration", - "category": "Standard", - "shortDesc": "Roll control channel mapping", - "longDesc": "The channel index (starting from 1 for channel 1) indicates which channel should be used for reading roll inputs from. A value of zero indicates the switch is not assigned.", - "default": 0, - "values": [ + "description": "Roll 90\u00b0, Yaw 90\u00b0" + }, { - "value": 0, - "description": "Unassigned" + "value": 19, + "description": "Roll 90\u00b0, Yaw 135\u00b0" }, { - "value": 1, - "description": "Channel 1" + "value": 20, + "description": "Roll 270\u00b0" }, { - "value": 2, - "description": "Channel 2" + "value": 21, + "description": "Roll 270\u00b0, Yaw 45\u00b0" }, { - "value": 3, - "description": "Channel 3" + "value": 22, + "description": "Roll 270\u00b0, Yaw 90\u00b0" }, { - "value": 4, - "description": "Channel 4" + "value": 23, + "description": "Roll 270\u00b0, Yaw 135\u00b0" }, { - "value": 5, - "description": "Channel 5" + "value": 24, + "description": "Pitch 90\u00b0" }, { - "value": 6, - "description": "Channel 6" + "value": 25, + "description": "Pitch 270\u00b0" }, { - "value": 7, - "description": "Channel 7" + "value": 26, + "description": "Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 8, - "description": "Channel 8" + "value": 27, + "description": "Pitch 180\u00b0, Yaw 270\u00b0" }, { - "value": 9, - "description": "Channel 9" + "value": 28, + "description": "Roll 90\u00b0, Pitch 90\u00b0" }, { - "value": 10, - "description": "Channel 10" + "value": 29, + "description": "Roll 180\u00b0, Pitch 90\u00b0" }, { - "value": 11, - "description": "Channel 11" + "value": 30, + "description": "Roll 270\u00b0, Pitch 90\u00b0" }, { - "value": 12, - "description": "Channel 12" + "value": 31, + "description": "Roll 90\u00b0, Pitch 180\u00b0" }, { - "value": 13, - "description": "Channel 13" + "value": 32, + "description": "Roll 270\u00b0, Pitch 180\u00b0" }, { - "value": 14, - "description": "Channel 14" + "value": 33, + "description": "Roll 90\u00b0, Pitch 270\u00b0" }, { - "value": 15, - "description": "Channel 15" + "value": 34, + "description": "Roll 180\u00b0, Pitch 270\u00b0" }, { - "value": 16, - "description": "Channel 16" + "value": 35, + "description": "Roll 270\u00b0, Pitch 270\u00b0" }, { - "value": 17, - "description": "Channel 17" + "value": 36, + "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 18, - "description": "Channel 18" + "value": 37, + "description": "Roll 90\u00b0, Yaw 270\u00b0" + }, + { + "value": 38, + "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0" + }, + { + "value": 39, + "description": "Pitch 315\u00b0" + }, + { + "value": 40, + "description": "Roll 90\u00b0, Pitch 315\u00b0" + }, + { + "value": 41, + "description": "Roll 270\u00b0, Yaw 180\u00b0" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 + ] }, { - "name": "RC_MAP_STAB_SW", + "name": "CAL_ACC3_XOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer X-axis offset" + }, + { + "name": "CAL_ACC3_XSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer X-axis scaling factor" + }, + { + "name": "CAL_ACC3_YOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Y-axis offset" + }, + { + "name": "CAL_ACC3_YSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Y-axis scaling factor" + }, + { + "name": "CAL_ACC3_ZOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Z-axis offset" + }, + { + "name": "CAL_ACC3_ZSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Accelerometer Z-axis scaling factor" + }, + { + "name": "CAL_GYRO0_ID", "type": "Int32", - "group": "Radio Switches", - "category": "Standard", - "shortDesc": "Stabilize switch channel mapping", "default": 0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "ID of the Gyro that the calibration is for" + }, + { + "name": "CAL_GYRO0_PRIO", + "type": "Int32", + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Gyro 0 priority", "values": [ + { + "value": -1, + "description": " Uninitialized" + }, { "value": 0, - "description": "Unassigned" + "description": " Disabled" }, { "value": 1, - "description": "Channel 1" + "description": " Min" + }, + { + "value": 25, + "description": " Low" + }, + { + "value": 50, + "description": " Medium (Default)" + }, + { + "value": 75, + "description": " High" + }, + { + "value": 100, + "description": "Max" + } + ] + }, + { + "name": "CAL_GYRO0_ROT", + "type": "Int32", + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Rotation of gyro 0 relative to airframe", + "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.", + "min": -1, + "max": 41, + "rebootRequired": true, + "values": [ + { + "value": -1, + "description": "Internal" + }, + { + "value": 0, + "description": "No rotation" + }, + { + "value": 1, + "description": "Yaw 45\u00b0" }, { "value": 2, - "description": "Channel 2" + "description": "Yaw 90\u00b0" }, { "value": 3, - "description": "Channel 3" + "description": "Yaw 135\u00b0" }, { "value": 4, - "description": "Channel 4" + "description": "Yaw 180\u00b0" }, { "value": 5, - "description": "Channel 5" + "description": "Yaw 225\u00b0" }, { "value": 6, - "description": "Channel 6" + "description": "Yaw 270\u00b0" }, { "value": 7, - "description": "Channel 7" + "description": "Yaw 315\u00b0" }, { "value": 8, - "description": "Channel 8" + "description": "Roll 180\u00b0" }, { "value": 9, - "description": "Channel 9" + "description": "Roll 180\u00b0, Yaw 45\u00b0" }, { "value": 10, - "description": "Channel 10" + "description": "Roll 180\u00b0, Yaw 90\u00b0" }, { "value": 11, - "description": "Channel 11" + "description": "Roll 180\u00b0, Yaw 135\u00b0" }, { "value": 12, - "description": "Channel 12" + "description": "Pitch 180\u00b0" }, { "value": 13, - "description": "Channel 13" + "description": "Roll 180\u00b0, Yaw 225\u00b0" }, { "value": 14, - "description": "Channel 14" + "description": "Roll 180\u00b0, Yaw 270\u00b0" }, { "value": 15, - "description": "Channel 15" + "description": "Roll 180\u00b0, Yaw 315\u00b0" }, { "value": 16, - "description": "Channel 16" + "description": "Roll 90\u00b0" }, { "value": 17, - "description": "Channel 17" + "description": "Roll 90\u00b0, Yaw 45\u00b0" }, { "value": 18, - "description": "Channel 18" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 - }, - { - "name": "RC_MAP_THROTTLE", - "type": "Int32", - "group": "Radio Calibration", - "category": "Standard", - "shortDesc": "Throttle control channel mapping", - "longDesc": "The channel index (starting from 1 for channel 1) indicates which channel should be used for reading throttle inputs from. A value of zero indicates the switch is not assigned.", - "default": 0, - "values": [ + "description": "Roll 90\u00b0, Yaw 90\u00b0" + }, + { + "value": 19, + "description": "Roll 90\u00b0, Yaw 135\u00b0" + }, + { + "value": 20, + "description": "Roll 270\u00b0" + }, + { + "value": 21, + "description": "Roll 270\u00b0, Yaw 45\u00b0" + }, + { + "value": 22, + "description": "Roll 270\u00b0, Yaw 90\u00b0" + }, { - "value": 0, - "description": "Unassigned" + "value": 23, + "description": "Roll 270\u00b0, Yaw 135\u00b0" }, { - "value": 1, - "description": "Channel 1" + "value": 24, + "description": "Pitch 90\u00b0" }, { - "value": 2, - "description": "Channel 2" + "value": 25, + "description": "Pitch 270\u00b0" }, { - "value": 3, - "description": "Channel 3" + "value": 26, + "description": "Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 4, - "description": "Channel 4" + "value": 27, + "description": "Pitch 180\u00b0, Yaw 270\u00b0" }, { - "value": 5, - "description": "Channel 5" + "value": 28, + "description": "Roll 90\u00b0, Pitch 90\u00b0" }, { - "value": 6, - "description": "Channel 6" + "value": 29, + "description": "Roll 180\u00b0, Pitch 90\u00b0" }, { - "value": 7, - "description": "Channel 7" + "value": 30, + "description": "Roll 270\u00b0, Pitch 90\u00b0" }, { - "value": 8, - "description": "Channel 8" + "value": 31, + "description": "Roll 90\u00b0, Pitch 180\u00b0" }, { - "value": 9, - "description": "Channel 9" + "value": 32, + "description": "Roll 270\u00b0, Pitch 180\u00b0" }, { - "value": 10, - "description": "Channel 10" + "value": 33, + "description": "Roll 90\u00b0, Pitch 270\u00b0" }, { - "value": 11, - "description": "Channel 11" + "value": 34, + "description": "Roll 180\u00b0, Pitch 270\u00b0" }, { - "value": 12, - "description": "Channel 12" + "value": 35, + "description": "Roll 270\u00b0, Pitch 270\u00b0" }, { - "value": 13, - "description": "Channel 13" + "value": 36, + "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 14, - "description": "Channel 14" + "value": 37, + "description": "Roll 90\u00b0, Yaw 270\u00b0" }, { - "value": 15, - "description": "Channel 15" + "value": 38, + "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0" }, { - "value": 16, - "description": "Channel 16" + "value": 39, + "description": "Pitch 315\u00b0" }, { - "value": 17, - "description": "Channel 17" + "value": 40, + "description": "Roll 90\u00b0, Pitch 315\u00b0" }, { - "value": 18, - "description": "Channel 18" + "value": 41, + "description": "Roll 270\u00b0, Yaw 180\u00b0" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 + ] }, { - "name": "RC_MAP_TRANS_SW", + "name": "CAL_GYRO0_XOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Gyro X-axis offset" + }, + { + "name": "CAL_GYRO0_YOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Gyro Y-axis offset" + }, + { + "name": "CAL_GYRO0_ZOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Gyro Z-axis offset" + }, + { + "name": "CAL_GYRO1_ID", "type": "Int32", - "group": "Radio Switches", - "category": "Standard", - "shortDesc": "VTOL transition switch channel mapping", "default": 0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "ID of the Gyro that the calibration is for" + }, + { + "name": "CAL_GYRO1_PRIO", + "type": "Int32", + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Gyro 1 priority", "values": [ + { + "value": -1, + "description": " Uninitialized" + }, { "value": 0, - "description": "Unassigned" + "description": " Disabled" }, { "value": 1, - "description": "Channel 1" + "description": " Min" + }, + { + "value": 25, + "description": " Low" + }, + { + "value": 50, + "description": " Medium (Default)" + }, + { + "value": 75, + "description": " High" + }, + { + "value": 100, + "description": "Max" + } + ] + }, + { + "name": "CAL_GYRO1_ROT", + "type": "Int32", + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Rotation of gyro 1 relative to airframe", + "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.", + "min": -1, + "max": 41, + "rebootRequired": true, + "values": [ + { + "value": -1, + "description": "Internal" + }, + { + "value": 0, + "description": "No rotation" + }, + { + "value": 1, + "description": "Yaw 45\u00b0" }, { "value": 2, - "description": "Channel 2" + "description": "Yaw 90\u00b0" }, { "value": 3, - "description": "Channel 3" + "description": "Yaw 135\u00b0" }, { "value": 4, - "description": "Channel 4" + "description": "Yaw 180\u00b0" }, { "value": 5, - "description": "Channel 5" + "description": "Yaw 225\u00b0" }, { "value": 6, - "description": "Channel 6" + "description": "Yaw 270\u00b0" }, { "value": 7, - "description": "Channel 7" + "description": "Yaw 315\u00b0" }, { "value": 8, - "description": "Channel 8" + "description": "Roll 180\u00b0" }, { "value": 9, - "description": "Channel 9" + "description": "Roll 180\u00b0, Yaw 45\u00b0" }, { "value": 10, - "description": "Channel 10" + "description": "Roll 180\u00b0, Yaw 90\u00b0" }, { "value": 11, - "description": "Channel 11" + "description": "Roll 180\u00b0, Yaw 135\u00b0" }, { "value": 12, - "description": "Channel 12" + "description": "Pitch 180\u00b0" }, { "value": 13, - "description": "Channel 13" + "description": "Roll 180\u00b0, Yaw 225\u00b0" }, { "value": 14, - "description": "Channel 14" + "description": "Roll 180\u00b0, Yaw 270\u00b0" }, { "value": 15, - "description": "Channel 15" + "description": "Roll 180\u00b0, Yaw 315\u00b0" }, { "value": 16, - "description": "Channel 16" + "description": "Roll 90\u00b0" }, { "value": 17, - "description": "Channel 17" + "description": "Roll 90\u00b0, Yaw 45\u00b0" }, { "value": 18, - "description": "Channel 18" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 - }, - { - "name": "RC_MAP_YAW", - "type": "Int32", - "group": "Radio Calibration", - "category": "Standard", - "shortDesc": "Yaw control channel mapping", - "longDesc": "The channel index (starting from 1 for channel 1) indicates which channel should be used for reading yaw inputs from. A value of zero indicates the switch is not assigned.", - "default": 0, - "values": [ + "description": "Roll 90\u00b0, Yaw 90\u00b0" + }, { - "value": 0, - "description": "Unassigned" + "value": 19, + "description": "Roll 90\u00b0, Yaw 135\u00b0" }, { - "value": 1, - "description": "Channel 1" + "value": 20, + "description": "Roll 270\u00b0" }, { - "value": 2, - "description": "Channel 2" + "value": 21, + "description": "Roll 270\u00b0, Yaw 45\u00b0" }, { - "value": 3, - "description": "Channel 3" + "value": 22, + "description": "Roll 270\u00b0, Yaw 90\u00b0" }, { - "value": 4, - "description": "Channel 4" + "value": 23, + "description": "Roll 270\u00b0, Yaw 135\u00b0" }, { - "value": 5, - "description": "Channel 5" + "value": 24, + "description": "Pitch 90\u00b0" }, { - "value": 6, - "description": "Channel 6" + "value": 25, + "description": "Pitch 270\u00b0" }, { - "value": 7, - "description": "Channel 7" + "value": 26, + "description": "Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 8, - "description": "Channel 8" + "value": 27, + "description": "Pitch 180\u00b0, Yaw 270\u00b0" }, { - "value": 9, - "description": "Channel 9" + "value": 28, + "description": "Roll 90\u00b0, Pitch 90\u00b0" }, { - "value": 10, - "description": "Channel 10" + "value": 29, + "description": "Roll 180\u00b0, Pitch 90\u00b0" }, { - "value": 11, - "description": "Channel 11" + "value": 30, + "description": "Roll 270\u00b0, Pitch 90\u00b0" }, { - "value": 12, - "description": "Channel 12" + "value": 31, + "description": "Roll 90\u00b0, Pitch 180\u00b0" }, { - "value": 13, - "description": "Channel 13" + "value": 32, + "description": "Roll 270\u00b0, Pitch 180\u00b0" }, { - "value": 14, - "description": "Channel 14" + "value": 33, + "description": "Roll 90\u00b0, Pitch 270\u00b0" }, { - "value": 15, - "description": "Channel 15" + "value": 34, + "description": "Roll 180\u00b0, Pitch 270\u00b0" }, { - "value": 16, - "description": "Channel 16" + "value": 35, + "description": "Roll 270\u00b0, Pitch 270\u00b0" }, { - "value": 17, - "description": "Channel 17" + "value": 36, + "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 18, - "description": "Channel 18" + "value": 37, + "description": "Roll 90\u00b0, Yaw 270\u00b0" + }, + { + "value": 38, + "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0" + }, + { + "value": 39, + "description": "Pitch 315\u00b0" + }, + { + "value": 40, + "description": "Roll 90\u00b0, Pitch 315\u00b0" + }, + { + "value": 41, + "description": "Roll 270\u00b0, Yaw 180\u00b0" } - ], - "decimalPlaces": 3, - "min": 0, - "max": 18 + ] }, { - "name": "RC_OFFB_TH", + "name": "CAL_GYRO1_XOFF", "type": "Float", - "group": "Radio Switches", - "category": "Standard", - "shortDesc": "Threshold for selecting offboard mode", - "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channelth negative : true when channelth negative : true when channelth negative : true when channel 0", - "default": 1000, - "decimalPlaces": 3, - "min": 0, - "max": 2000 - }, - { - "name": "RC_RSSI_PWM_MIN", - "type": "Int32", - "group": "Radio Calibration", - "category": "Standard", - "shortDesc": "Min input value for RSSI reading", - "longDesc": "Only used if RC_RSSI_PWM_CHAN > 0", - "default": 2000, - "decimalPlaces": 3, - "min": 0, - "max": 2000 - }, - { - "name": "RC_STAB_TH", - "type": "Float", - "group": "Radio Switches", - "category": "Standard", - "shortDesc": "Threshold for the stabilize switch", - "longDesc": "0-1 indicate where in the full channel range the threshold sits 0 : min 1 : max sign indicates polarity of comparison positive : true when channel>th negative : true when channelth negative : true when channel 0", - "units": "m", - "default": 5, - "increment": 1, - "decimalPlaces": 1, - "min": 0, - "max": 100 + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Gyro X-axis offset" }, { - "name": "RWTO_PSP", + "name": "CAL_GYRO3_YOFF", "type": "Float", - "group": "Runway Takeoff", - "category": "Standard", - "shortDesc": "Pitch setpoint during taxi / before takeoff airspeed is reached. A taildragger with stearable wheel might need to pitch up a little to keep it's wheel on the ground before airspeed to takeoff is reached", - "units": "deg", - "default": 0, - "increment": 0.5, - "decimalPlaces": 1, - "min": -10, - "max": 20 + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Gyro Y-axis offset" }, { - "name": "RWTO_RAMP_TIME", + "name": "CAL_GYRO3_ZOFF", "type": "Float", - "group": "Runway Takeoff", - "category": "Standard", - "shortDesc": "Throttle ramp up time for runway takeoff", - "units": "s", - "default": 2, - "increment": 0.1, - "decimalPlaces": 2, - "min": 1, - "max": 15 - }, - { - "name": "RWTO_TKOFF", - "type": "Int32", - "group": "Runway Takeoff", - "category": "Standard", - "shortDesc": "Runway takeoff with landing gear", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SDLOG_BOOT_BAT", - "type": "Int32", - "group": "SD Logging", - "category": "Standard", - "shortDesc": "Battery-only Logging", - "longDesc": "When enabled, logging will not start from boot if battery power is not detected (e.g. powered via USB on a test bench). This prevents extraneous flight logs from being created during bench testing. Note that this only applies to log-from-boot modes. This has no effect on arm-based modes.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SDLOG_DIRS_MAX", - "type": "Int32", - "group": "SD Logging", - "category": "Standard", - "shortDesc": "Maximum number of log directories to keep", - "longDesc": "If there are more log directories than this value, the system will delete the oldest directories during startup. In addition, the system will delete old logs if there is not enough free space left. The minimum amount is 300 MB. If this is set to 0, old directories will only be removed if the free space falls below the minimum. Note: this does not apply to mission log files.", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 1000 + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Gyro Z-axis offset" }, { - "name": "SDLOG_MISSION", + "name": "CAL_MAG0_ID", "type": "Int32", - "group": "SD Logging", - "category": "Standard", - "shortDesc": "Mission Log", - "longDesc": "If enabled, a small additional \"mission\" log file will be written to the SD card. The log contains just those messages that are useful for tasks like generating flight statistics and geotagging. The different modes can be used to further reduce the logged data (and thus the log file size). For example, choose geotagging mode to only log data required for geotagging. Note that the normal/full log is still created, and contains all the data in the mission log (and more).", "default": 0, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 1, - "description": "All mission messages" - }, - { - "value": 2, - "description": "Geotagging messages" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "ID of Magnetometer the calibration is for" }, { - "name": "SDLOG_MODE", + "name": "CAL_MAG0_PRIO", "type": "Int32", - "group": "SD Logging", - "category": "Standard", - "shortDesc": "Logging Mode", - "longDesc": "Determines when to start and stop logging. By default, logging is started when arming the system, and stopped when disarming.", - "default": 0, + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Mag 0 priority", "values": [ { "value": -1, - "description": "disabled" + "description": " Uninitialized" }, { "value": 0, - "description": "when armed until disarm (default)" + "description": " Disabled" }, { "value": 1, - "description": "from boot until disarm" + "description": " Min" }, { - "value": 2, - "description": "from boot until shutdown" + "value": 25, + "description": " Low" }, { - "value": 3, - "description": "depending on AUX1 RC channel" + "value": 50, + "description": " Medium (Default)" + }, + { + "value": 75, + "description": " High" + }, + { + "value": 100, + "description": "Max" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SDLOG_PROFILE", - "type": "Int32", - "group": "SD Logging", - "category": "Standard", - "shortDesc": "Logging topic profile (integer bitmask)", - "longDesc": "This integer bitmask controls the set and rates of logged topics. The default allows for general log analysis and estimator replay, while keeping the log file size reasonably small. Enabling multiple sets leads to higher bandwidth requirements and larger log files. Set bits true to enable: 0 : Default set (used for general log analysis) 1 : Full rate estimator (EKF2) replay topics 2 : Topics for thermal calibration (high rate raw IMU and Baro sensor data) 3 : Topics for system identification (high rate actuator control and IMU data) 4 : Full rates for analysis of fast maneuvers (RC, attitude, rates and actuators) 5 : Debugging topics (debug_*.msg topics, for custom code) 6 : Topics for sensor comparison (low rate raw IMU, Baro and Magnetomer data) 7 : Topics for computer vision and collision avoidance 8 : Raw FIFO high-rate IMU (Gyro) 9 : Raw FIFO high-rate IMU (Accel)", - "default": 3, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 1023 - }, - { - "name": "SDLOG_UTC_OFFSET", - "type": "Int32", - "group": "SD Logging", - "category": "Standard", - "shortDesc": "UTC offset (unit: min)", - "longDesc": "the difference in hours and minutes from Coordinated Universal Time (UTC) for a your place and date. for example, In case of South Korea(UTC+09:00), UTC offset is 540 min (9*60) refer to https://en.wikipedia.org/wiki/List_of_UTC_time_offsets", - "units": "min", - "default": 0, - "decimalPlaces": 3, - "min": -1000, - "max": 1000 + ] }, { - "name": "SDLOG_UUID", + "name": "CAL_MAG0_ROT", "type": "Int32", - "group": "SD Logging", - "category": "Standard", - "shortDesc": "Log UUID", - "longDesc": "If set to 1, add an ID to the log, which uniquely identifies the vehicle", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SENS_BARO_QNH", - "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "QNH for barometer", - "units": "hPa", - "default": 1013.25, + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Rotation of magnetometer 0 relative to airframe", + "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.", + "min": -1, + "max": 41, "rebootRequired": true, - "decimalPlaces": 3, - "min": 500, - "max": 1500 - }, - { - "name": "SENS_BOARD_ROT", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Board rotation", - "longDesc": "This parameter defines the rotation of the FMU board relative to the platform.", - "default": 0, "values": [ + { + "value": -1, + "description": "Internal" + }, { "value": 0, "description": "No rotation" }, { "value": 1, - "description": "Yaw 45°" + "description": "Yaw 45\u00b0" }, { "value": 2, - "description": "Yaw 90°" + "description": "Yaw 90\u00b0" }, { "value": 3, - "description": "Yaw 135°" + "description": "Yaw 135\u00b0" }, { "value": 4, - "description": "Yaw 180°" + "description": "Yaw 180\u00b0" }, { "value": 5, - "description": "Yaw 225°" + "description": "Yaw 225\u00b0" }, { "value": 6, - "description": "Yaw 270°" + "description": "Yaw 270\u00b0" }, { "value": 7, - "description": "Yaw 315°" + "description": "Yaw 315\u00b0" }, { "value": 8, - "description": "Roll 180°" + "description": "Roll 180\u00b0" }, { "value": 9, - "description": "Roll 180°, Yaw 45°" + "description": "Roll 180\u00b0, Yaw 45\u00b0" }, { "value": 10, - "description": "Roll 180°, Yaw 90°" + "description": "Roll 180\u00b0, Yaw 90\u00b0" }, { "value": 11, - "description": "Roll 180°, Yaw 135°" + "description": "Roll 180\u00b0, Yaw 135\u00b0" }, { "value": 12, - "description": "Pitch 180°" + "description": "Pitch 180\u00b0" }, { "value": 13, - "description": "Roll 180°, Yaw 225°" + "description": "Roll 180\u00b0, Yaw 225\u00b0" }, { "value": 14, - "description": "Roll 180°, Yaw 270°" + "description": "Roll 180\u00b0, Yaw 270\u00b0" }, { "value": 15, - "description": "Roll 180°, Yaw 315°" + "description": "Roll 180\u00b0, Yaw 315\u00b0" }, { "value": 16, - "description": "Roll 90°" + "description": "Roll 90\u00b0" }, { "value": 17, - "description": "Roll 90°, Yaw 45°" + "description": "Roll 90\u00b0, Yaw 45\u00b0" }, { "value": 18, - "description": "Roll 90°, Yaw 90°" + "description": "Roll 90\u00b0, Yaw 90\u00b0" }, { "value": 19, - "description": "Roll 90°, Yaw 135°" + "description": "Roll 90\u00b0, Yaw 135\u00b0" }, { "value": 20, - "description": "Roll 270°" + "description": "Roll 270\u00b0" }, { "value": 21, - "description": "Roll 270°, Yaw 45°" + "description": "Roll 270\u00b0, Yaw 45\u00b0" }, { "value": 22, - "description": "Roll 270°, Yaw 90°" + "description": "Roll 270\u00b0, Yaw 90\u00b0" }, { "value": 23, - "description": "Roll 270°, Yaw 135°" + "description": "Roll 270\u00b0, Yaw 135\u00b0" }, { "value": 24, - "description": "Pitch 90°" + "description": "Pitch 90\u00b0" }, { "value": 25, - "description": "Pitch 270°" + "description": "Pitch 270\u00b0" }, { "value": 26, - "description": "Roll 270°, Yaw 270°" + "description": "Pitch 180\u00b0, Yaw 90\u00b0" }, { "value": 27, - "description": "Roll 180°, Pitch 270°" + "description": "Pitch 180\u00b0, Yaw 270\u00b0" }, { "value": 28, - "description": "Pitch 90°, Yaw 180" + "description": "Roll 90\u00b0, Pitch 90\u00b0" }, { "value": 29, - "description": "Pitch 90°, Roll 90°" + "description": "Roll 180\u00b0, Pitch 90\u00b0" }, { "value": 30, - "description": "Yaw 293°, Pitch 68°, Roll 90° (Solo)" + "description": "Roll 270\u00b0, Pitch 90\u00b0" }, { "value": 31, - "description": "Pitch 90°, Roll 270°" + "description": "Roll 90\u00b0, Pitch 180\u00b0" }, { "value": 32, - "description": "Pitch 9°, Yaw 180°" + "description": "Roll 270\u00b0, Pitch 180\u00b0" }, { "value": 33, - "description": "Pitch 45°" + "description": "Roll 90\u00b0, Pitch 270\u00b0" }, { "value": 34, - "description": "Pitch 315°" + "description": "Roll 180\u00b0, Pitch 270\u00b0" }, { "value": 35, - "description": "Roll 90°, Yaw 270°" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SENS_BOARD_X_OFF", - "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Board rotation X (Roll) offset", - "longDesc": "This parameter defines a rotational offset in degrees around the X (Roll) axis It allows the user to fine tune the board offset in the event of misalignment.", - "units": "deg", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "SENS_BOARD_Y_OFF", - "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Board rotation Y (Pitch) offset", - "longDesc": "This parameter defines a rotational offset in degrees around the Y (Pitch) axis. It allows the user to fine tune the board offset in the event of misalignment.", - "units": "deg", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "SENS_BOARD_Z_OFF", - "type": "Float", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Board rotation Z (YAW) offset", - "longDesc": "This parameter defines a rotational offset in degrees around the Z (Yaw) axis. It allows the user to fine tune the board offset in the event of misalignment.", - "units": "deg", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "SENS_CM8JL65_CFG", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Serial Configuration for Lanbao PSK-CM8JL65-CC5", - "longDesc": "Configure on which serial port to run Lanbao PSK-CM8JL65-CC5.", - "default": 0, - "values": [ - { - "value": 0, - "description": "Disabled" + "description": "Roll 270\u00b0, Pitch 270\u00b0" }, { - "value": 6, - "description": "UART 6" - }, - { - "value": 101, - "description": "TELEM 1" - }, - { - "value": 102, - "description": "TELEM 2" - }, - { - "value": 103, - "description": "TELEM 3" + "value": 36, + "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 104, - "description": "TELEM/SERIAL 4" + "value": 37, + "description": "Roll 90\u00b0, Yaw 270\u00b0" }, { - "value": 201, - "description": "GPS 1" + "value": 38, + "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0" }, { - "value": 202, - "description": "GPS 2" + "value": 39, + "description": "Pitch 315\u00b0" }, { - "value": 203, - "description": "GPS 3" + "value": 40, + "description": "Roll 90\u00b0, Pitch 315\u00b0" }, { - "value": 300, - "description": "Radio Controller" + "value": 41, + "description": "Roll 270\u00b0, Yaw 180\u00b0" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "SENS_CM8JL65_R_0", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Distance Sensor Rotation", - "longDesc": "Distance Sensor Rotation as MAV_SENSOR_ORIENTATION enum", - "default": 25, - "values": [ - { - "value": 0, - "description": "ROTATION_FORWARD_FACING" - }, - { - "value": 2, - "description": "ROTATION_RIGHT_FACING" - }, - { - "value": 6, - "description": "ROTATION_LEFT_FACING" - }, - { - "value": 12, - "description": "ROTATION_BACKWARD_FACING" - }, - { - "value": 24, - "description": "ROTATION_UPWARD_FACING" - }, - { - "value": 25, - "description": "ROTATION_DOWNWARD_FACING" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "CAL_MAG0_XCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Coefficient describing linear relationship between\nX component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" }, { - "name": "SENS_DPRES_ANSC", + "name": "CAL_MAG0_XODIAG", "type": "Float", + "default": 0.0, "group": "Sensor Calibration", - "category": "Standard", - "shortDesc": "Differential pressure sensor analog scaling", - "longDesc": "Pick the appropriate scaling from the datasheet. this number defines the (linear) conversion from voltage to Pascal (pa). For the MPXV7002DP this is 1000. NOTE: If the sensor always registers zero, try switching the static and dynamic tubes.", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "category": "System", + "shortDesc": "Magnetometer X-axis off diagonal factor" }, { - "name": "SENS_DPRES_OFF", + "name": "CAL_MAG0_XOFF", "type": "Float", + "default": 0.0, "group": "Sensor Calibration", "category": "System", - "shortDesc": "Differential pressure sensor offset", - "longDesc": "The offset (zero-reading) in Pascal", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Magnetometer X-axis offset" }, { - "name": "SENS_EN_BATT", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "SMBUS Smart battery driver (BQ40Z50)", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "CAL_MAG0_XSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer X-axis scaling factor" }, { - "name": "SENS_EN_LL40LS", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Lidar-Lite (LL40LS)", - "default": 0, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 1, - "description": "PWM" - }, - { - "value": 2, - "description": "I2C" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 2 + "name": "CAL_MAG0_YCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Coefficient describing linear relationship between\nY component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" }, { - "name": "SENS_EN_MB12XX", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Maxbotix Sonar (mb12xx)", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "CAL_MAG0_YODIAG", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Y-axis off diagonal factor" }, { - "name": "SENS_EN_MPDT", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Enable Mappydot rangefinder (i2c)", - "default": 0, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 1, - "description": "Autodetect" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "name": "CAL_MAG0_YOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Y-axis offset" }, { - "name": "SENS_EN_PAW3902", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "PAW3902 Optical Flow", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "CAL_MAG0_YSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Y-axis scaling factor" }, { - "name": "SENS_EN_PGA460", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "PGA460 Ultrasonic driver (PGA460)", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "CAL_MAG0_ZCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Coefficient describing linear relationship between\nZ component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" }, { - "name": "SENS_EN_PMW3901", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "PMW3901 Optical Flow", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "CAL_MAG0_ZODIAG", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Z-axis off diagonal factor" + }, + { + "name": "CAL_MAG0_ZOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Z-axis offset" + }, + { + "name": "CAL_MAG0_ZSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Z-axis scaling factor" }, { - "name": "SENS_EN_PX4FLOW", + "name": "CAL_MAG1_ID", "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "PX4 Flow Optical Flow", "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "ID of Magnetometer the calibration is for" }, { - "name": "SENS_EN_SF0X", + "name": "CAL_MAG1_PRIO", "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Lightware Laser Rangefinder hardware model", - "default": 1, + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Mag 1 priority", "values": [ + { + "value": -1, + "description": " Uninitialized" + }, + { + "value": 0, + "description": " Disabled" + }, { "value": 1, - "description": "SF02" + "description": " Min" }, { - "value": 2, - "description": "SF10/a" + "value": 25, + "description": " Low" }, { - "value": 3, - "description": "SF10/b" + "value": 50, + "description": " Medium (Default)" }, { - "value": 4, - "description": "SF10/c" + "value": 75, + "description": " High" }, { - "value": 5, - "description": "SF11/c" + "value": 100, + "description": "Max" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "SENS_EN_SF1XX", + "name": "CAL_MAG1_ROT", "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Lightware SF1xx/SF20/LW20 laser rangefinder (i2c)", - "default": 0, + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Rotation of magnetometer 1 relative to airframe", + "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.", + "min": -1, + "max": 41, + "rebootRequired": true, "values": [ + { + "value": -1, + "description": "Internal" + }, { "value": 0, - "description": "Disabled" + "description": "No rotation" }, { "value": 1, - "description": "SF10/a" + "description": "Yaw 45\u00b0" }, { "value": 2, - "description": "SF10/b" + "description": "Yaw 90\u00b0" }, { "value": 3, - "description": "SF10/c" + "description": "Yaw 135\u00b0" }, { "value": 4, - "description": "SF11/c" + "description": "Yaw 180\u00b0" }, { "value": 5, - "description": "SF/LW20/b" + "description": "Yaw 225\u00b0" }, { "value": 6, - "description": "SF/LW20/c" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 6 - }, - { - "name": "SENS_EN_THERMAL", - "type": "Int32", - "group": "Sensors", - "category": "System", - "shortDesc": "Thermal control of sensor temperature", - "default": -1, - "values": [ + "description": "Yaw 270\u00b0" + }, { - "value": -1, - "description": "Thermal control unavailable" + "value": 7, + "description": "Yaw 315\u00b0" }, { - "value": 0, - "description": "Thermal control off" + "value": 8, + "description": "Roll 180\u00b0" }, { - "value": 1, - "description": "Thermal control enabled" - } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SENS_EN_TRANGER", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "TeraRanger Rangefinder (i2c)", - "default": 0, - "values": [ + "value": 9, + "description": "Roll 180\u00b0, Yaw 45\u00b0" + }, { - "value": 0, - "description": "Disabled" + "value": 10, + "description": "Roll 180\u00b0, Yaw 90\u00b0" }, { - "value": 1, - "description": "Autodetect" + "value": 11, + "description": "Roll 180\u00b0, Yaw 135\u00b0" }, { - "value": 2, - "description": "TROne" + "value": 12, + "description": "Pitch 180\u00b0" }, { - "value": 3, - "description": "TREvo60m" + "value": 13, + "description": "Roll 180\u00b0, Yaw 225\u00b0" + }, + { + "value": 14, + "description": "Roll 180\u00b0, Yaw 270\u00b0" + }, + { + "value": 15, + "description": "Roll 180\u00b0, Yaw 315\u00b0" + }, + { + "value": 16, + "description": "Roll 90\u00b0" + }, + { + "value": 17, + "description": "Roll 90\u00b0, Yaw 45\u00b0" + }, + { + "value": 18, + "description": "Roll 90\u00b0, Yaw 90\u00b0" + }, + { + "value": 19, + "description": "Roll 90\u00b0, Yaw 135\u00b0" + }, + { + "value": 20, + "description": "Roll 270\u00b0" + }, + { + "value": 21, + "description": "Roll 270\u00b0, Yaw 45\u00b0" + }, + { + "value": 22, + "description": "Roll 270\u00b0, Yaw 90\u00b0" + }, + { + "value": 23, + "description": "Roll 270\u00b0, Yaw 135\u00b0" + }, + { + "value": 24, + "description": "Pitch 90\u00b0" + }, + { + "value": 25, + "description": "Pitch 270\u00b0" + }, + { + "value": 26, + "description": "Pitch 180\u00b0, Yaw 90\u00b0" + }, + { + "value": 27, + "description": "Pitch 180\u00b0, Yaw 270\u00b0" + }, + { + "value": 28, + "description": "Roll 90\u00b0, Pitch 90\u00b0" + }, + { + "value": 29, + "description": "Roll 180\u00b0, Pitch 90\u00b0" + }, + { + "value": 30, + "description": "Roll 270\u00b0, Pitch 90\u00b0" + }, + { + "value": 31, + "description": "Roll 90\u00b0, Pitch 180\u00b0" + }, + { + "value": 32, + "description": "Roll 270\u00b0, Pitch 180\u00b0" + }, + { + "value": 33, + "description": "Roll 90\u00b0, Pitch 270\u00b0" + }, + { + "value": 34, + "description": "Roll 180\u00b0, Pitch 270\u00b0" + }, + { + "value": 35, + "description": "Roll 270\u00b0, Pitch 270\u00b0" + }, + { + "value": 36, + "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0" + }, + { + "value": 37, + "description": "Roll 90\u00b0, Yaw 270\u00b0" + }, + { + "value": 38, + "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0" + }, + { + "value": 39, + "description": "Pitch 315\u00b0" + }, + { + "value": 40, + "description": "Roll 90\u00b0, Pitch 315\u00b0" + }, + { + "value": 41, + "description": "Roll 270\u00b0, Yaw 180\u00b0" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 3 + ] }, { - "name": "SENS_EXT_I2C_PRB", - "type": "Int32", - "group": "Sensors", + "name": "CAL_MAG1_XCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", "category": "System", - "shortDesc": "External I2C probe", - "longDesc": "Probe for optional external I2C devices.", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "shortDesc": "Coefficient describing linear relationship between\nX component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" }, { - "name": "SENS_FLOW_MAXHGT", + "name": "CAL_MAG1_XODIAG", "type": "Float", + "default": 0.0, "group": "Sensor Calibration", - "category": "Standard", - "shortDesc": "Maximum height above ground when reliant on optical flow", - "longDesc": "This parameter defines the maximum distance from ground at which the optical flow sensor operates reliably. The height setpoint will be limited to be no greater than this value when the navigation system is completely reliant on optical flow data and the height above ground estimate is valid. The sensor may be usable above this height, but accuracy will progressively degrade.", - "units": "m", - "default": 3, - "increment": 0.1, - "decimalPlaces": 1, - "min": 1, - "max": 25 + "category": "System", + "shortDesc": "Magnetometer X-axis off diagonal factor" }, { - "name": "SENS_FLOW_MAXR", + "name": "CAL_MAG1_XOFF", "type": "Float", + "default": 0.0, "group": "Sensor Calibration", - "category": "Standard", - "shortDesc": "Magnitude of maximum angular flow rate reliably measurable by the optical flow sensor. Optical flow data will not fused by the estimators if the magnitude of the flow rate exceeds this value and control loops will be instructed to limit ground speed such that the flow rate produced by movement over ground is less than 50% of this value", - "units": "rad/s", - "default": 2.5, - "decimalPlaces": 2, - "min": 1, - "max": 3.40282e+38 + "category": "System", + "shortDesc": "Magnetometer X-axis offset" }, { - "name": "SENS_FLOW_MINHGT", + "name": "CAL_MAG1_XSCALE", "type": "Float", + "default": 1.0, "group": "Sensor Calibration", - "category": "Standard", - "shortDesc": "Minimum height above ground when reliant on optical flow", - "longDesc": "This parameter defines the minimum distance from ground at which the optical flow sensor operates reliably. The sensor may be usable below this height, but accuracy will progressively reduce to loss of focus.", - "units": "m", - "default": 0.7, - "increment": 0.1, - "decimalPlaces": 1, - "min": 0, - "max": 1 + "category": "System", + "shortDesc": "Magnetometer X-axis scaling factor" }, { - "name": "SENS_FLOW_ROT", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "PX4Flow board rotation", - "longDesc": "This parameter defines the yaw rotation of the PX4FLOW board relative to the vehicle body frame. Zero rotation is defined as X on flow board pointing towards front of vehicle. The recommneded installation default for the PX4FLOW board is with the Y axis forward (270 deg yaw).", - "default": 6, - "values": [ - { - "value": 0, - "description": "No rotation" - }, - { - "value": 1, - "description": "Yaw 45°" - }, - { - "value": 2, - "description": "Yaw 90°" - }, - { - "value": 3, - "description": "Yaw 135°" - }, - { - "value": 4, - "description": "Yaw 180°" - }, - { - "value": 5, - "description": "Yaw 225°" - }, - { - "value": 6, - "description": "Yaw 270°" - }, - { - "value": 7, - "description": "Yaw 315°" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "CAL_MAG1_YCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Coefficient describing linear relationship between\nY component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" }, { - "name": "SENS_IMU_TEMP", + "name": "CAL_MAG1_YODIAG", "type": "Float", - "group": "Sensors", + "default": 0.0, + "group": "Sensor Calibration", "category": "System", - "shortDesc": "Target IMU temperature", - "units": "C", - "default": 55, - "decimalPlaces": 3, - "min": 0, - "max": 85 + "shortDesc": "Magnetometer Y-axis off diagonal factor" }, { - "name": "SENS_IMU_TEMP_I", + "name": "CAL_MAG1_YOFF", "type": "Float", - "group": "Sensors", + "default": 0.0, + "group": "Sensor Calibration", "category": "System", - "shortDesc": "IMU heater controller integrator gain value", - "units": "microseconds/C", - "default": 0.025, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "shortDesc": "Magnetometer Y-axis offset" + }, + { + "name": "CAL_MAG1_YSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Y-axis scaling factor" + }, + { + "name": "CAL_MAG1_ZCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Coefficient describing linear relationship between\nZ component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" + }, + { + "name": "CAL_MAG1_ZODIAG", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Z-axis off diagonal factor" + }, + { + "name": "CAL_MAG1_ZOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Z-axis offset" }, { - "name": "SENS_IMU_TEMP_P", + "name": "CAL_MAG1_ZSCALE", "type": "Float", - "group": "Sensors", + "default": 1.0, + "group": "Sensor Calibration", "category": "System", - "shortDesc": "IMU heater controller proportional gain value", - "units": "microseconds/C", - "default": 1, - "decimalPlaces": 3, - "min": 0, - "max": 2 + "shortDesc": "Magnetometer Z-axis scaling factor" }, { - "name": "SENS_LEDDAR1_CFG", + "name": "CAL_MAG2_ID", "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Serial Configuration for LeddarOne Rangefinder", - "longDesc": "Configure on which serial port to run LeddarOne Rangefinder.", "default": 0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "ID of Magnetometer the calibration is for" + }, + { + "name": "CAL_MAG2_PRIO", + "type": "Int32", + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Mag 2 priority", "values": [ { - "value": 0, - "description": "Disabled" - }, - { - "value": 6, - "description": "UART 6" - }, - { - "value": 101, - "description": "TELEM 1" - }, - { - "value": 102, - "description": "TELEM 2" + "value": -1, + "description": " Uninitialized" }, { - "value": 103, - "description": "TELEM 3" + "value": 0, + "description": " Disabled" }, { - "value": 104, - "description": "TELEM/SERIAL 4" + "value": 1, + "description": " Min" }, { - "value": 201, - "description": "GPS 1" + "value": 25, + "description": " Low" }, { - "value": 202, - "description": "GPS 2" + "value": 50, + "description": " Medium (Default)" }, { - "value": 203, - "description": "GPS 3" + "value": 75, + "description": " High" }, { - "value": 300, - "description": "Radio Controller" + "value": 100, + "description": "Max" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "SENS_MB12_{n}_ROT", + "name": "CAL_MAG2_ROT", "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "MaxBotix MB12XX Sensor 0 Rotation", - "longDesc": "This parameter defines the rotation of the sensor relative to the platform.", - "default": 0, + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Rotation of magnetometer 2 relative to airframe", + "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.", + "min": -1, + "max": 41, + "rebootRequired": true, "values": [ + { + "value": -1, + "description": "Internal" + }, { "value": 0, "description": "No rotation" }, { "value": 1, - "description": "Yaw 45°" + "description": "Yaw 45\u00b0" }, { "value": 2, - "description": "Yaw 90°" + "description": "Yaw 90\u00b0" }, { "value": 3, - "description": "Yaw 135°" + "description": "Yaw 135\u00b0" }, { "value": 4, - "description": "Yaw 180°" + "description": "Yaw 180\u00b0" }, { "value": 5, - "description": "Yaw 225°" + "description": "Yaw 225\u00b0" }, { "value": 6, - "description": "Yaw 270°" + "description": "Yaw 270\u00b0" }, { "value": 7, - "description": "Yaw 315°" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 7 - }, - { - "name": "SENS_MPDT{n}_ROT", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "MappyDot Sensor 0 Rotation", - "longDesc": "This parameter defines the rotation of the Mappydot sensor relative to the platform.", - "default": 0, - "values": [ + "description": "Yaw 315\u00b0" + }, { - "value": 0, - "description": "No rotation" + "value": 8, + "description": "Roll 180\u00b0" }, { - "value": 1, - "description": "Yaw 45°" + "value": 9, + "description": "Roll 180\u00b0, Yaw 45\u00b0" }, { - "value": 2, - "description": "Yaw 90°" + "value": 10, + "description": "Roll 180\u00b0, Yaw 90\u00b0" }, { - "value": 3, - "description": "Yaw 135°" + "value": 11, + "description": "Roll 180\u00b0, Yaw 135\u00b0" }, { - "value": 4, - "description": "Yaw 180°" + "value": 12, + "description": "Pitch 180\u00b0" }, { - "value": 5, - "description": "Yaw 225°" + "value": 13, + "description": "Roll 180\u00b0, Yaw 225\u00b0" }, { - "value": 6, - "description": "Yaw 270°" + "value": 14, + "description": "Roll 180\u00b0, Yaw 270\u00b0" }, { - "value": 7, - "description": "Yaw 315°" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 7 - }, - { - "name": "SENS_SF0X_CFG", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Serial Configuration for Lightware Laser Rangefinder", - "longDesc": "Configure on which serial port to run Lightware Laser Rangefinder.", - "default": 0, - "values": [ + "value": 15, + "description": "Roll 180\u00b0, Yaw 315\u00b0" + }, { - "value": 0, - "description": "Disabled" + "value": 16, + "description": "Roll 90\u00b0" }, { - "value": 6, - "description": "UART 6" + "value": 17, + "description": "Roll 90\u00b0, Yaw 45\u00b0" }, { - "value": 101, - "description": "TELEM 1" + "value": 18, + "description": "Roll 90\u00b0, Yaw 90\u00b0" }, { - "value": 102, - "description": "TELEM 2" + "value": 19, + "description": "Roll 90\u00b0, Yaw 135\u00b0" }, { - "value": 103, - "description": "TELEM 3" + "value": 20, + "description": "Roll 270\u00b0" }, { - "value": 104, - "description": "TELEM/SERIAL 4" + "value": 21, + "description": "Roll 270\u00b0, Yaw 45\u00b0" }, { - "value": 201, - "description": "GPS 1" + "value": 22, + "description": "Roll 270\u00b0, Yaw 90\u00b0" }, { - "value": 202, - "description": "GPS 2" + "value": 23, + "description": "Roll 270\u00b0, Yaw 135\u00b0" }, { - "value": 203, - "description": "GPS 3" + "value": 24, + "description": "Pitch 90\u00b0" }, { - "value": 300, - "description": "Radio Controller" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SENS_TEMP_ID", - "type": "Int32", - "group": "Sensors", - "category": "System", - "shortDesc": "Target IMU device ID to regulate temperature", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SENS_TFMINI_CFG", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Serial Configuration for Benewake TFmini Rangefinder", - "longDesc": "Configure on which serial port to run Benewake TFmini Rangefinder.", - "default": 0, - "values": [ + "value": 25, + "description": "Pitch 270\u00b0" + }, { - "value": 0, - "description": "Disabled" + "value": 26, + "description": "Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 6, - "description": "UART 6" + "value": 27, + "description": "Pitch 180\u00b0, Yaw 270\u00b0" }, { - "value": 101, - "description": "TELEM 1" + "value": 28, + "description": "Roll 90\u00b0, Pitch 90\u00b0" }, { - "value": 102, - "description": "TELEM 2" + "value": 29, + "description": "Roll 180\u00b0, Pitch 90\u00b0" }, { - "value": 103, - "description": "TELEM 3" + "value": 30, + "description": "Roll 270\u00b0, Pitch 90\u00b0" }, { - "value": 104, - "description": "TELEM/SERIAL 4" + "value": 31, + "description": "Roll 90\u00b0, Pitch 180\u00b0" }, { - "value": 201, - "description": "GPS 1" + "value": 32, + "description": "Roll 270\u00b0, Pitch 180\u00b0" }, { - "value": 202, - "description": "GPS 2" + "value": 33, + "description": "Roll 90\u00b0, Pitch 270\u00b0" }, { - "value": 203, - "description": "GPS 3" + "value": 34, + "description": "Roll 180\u00b0, Pitch 270\u00b0" }, { - "value": 300, - "description": "Radio Controller" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SENS_ULAND_CFG", - "type": "Int32", - "group": "Sensors", - "category": "Standard", - "shortDesc": "Serial Configuration for uLanding Radar", - "longDesc": "Configure on which serial port to run uLanding Radar.", - "default": 0, - "values": [ + "value": 35, + "description": "Roll 270\u00b0, Pitch 270\u00b0" + }, { - "value": 0, - "description": "Disabled" + "value": 36, + "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 6, - "description": "UART 6" + "value": 37, + "description": "Roll 90\u00b0, Yaw 270\u00b0" + }, + { + "value": 38, + "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0" + }, + { + "value": 39, + "description": "Pitch 315\u00b0" }, { - "value": 101, - "description": "TELEM 1" + "value": 40, + "description": "Roll 90\u00b0, Pitch 315\u00b0" }, { - "value": 102, - "description": "TELEM 2" + "value": 41, + "description": "Roll 270\u00b0, Yaw 180\u00b0" + } + ] + }, + { + "name": "CAL_MAG2_XCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Coefficient describing linear relationship between\nX component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" + }, + { + "name": "CAL_MAG2_XODIAG", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer X-axis off diagonal factor" + }, + { + "name": "CAL_MAG2_XOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer X-axis offset" + }, + { + "name": "CAL_MAG2_XSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer X-axis scaling factor" + }, + { + "name": "CAL_MAG2_YCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Coefficient describing linear relationship between\nY component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" + }, + { + "name": "CAL_MAG2_YODIAG", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Y-axis off diagonal factor" + }, + { + "name": "CAL_MAG2_YOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Y-axis offset" + }, + { + "name": "CAL_MAG2_YSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Y-axis scaling factor" + }, + { + "name": "CAL_MAG2_ZCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Coefficient describing linear relationship between\nZ component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" + }, + { + "name": "CAL_MAG2_ZODIAG", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Z-axis off diagonal factor" + }, + { + "name": "CAL_MAG2_ZOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Z-axis offset" + }, + { + "name": "CAL_MAG2_ZSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Z-axis scaling factor" + }, + { + "name": "CAL_MAG3_ID", + "type": "Int32", + "default": 0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "ID of Magnetometer the calibration is for" + }, + { + "name": "CAL_MAG3_PRIO", + "type": "Int32", + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Mag 3 priority", + "values": [ + { + "value": -1, + "description": " Uninitialized" }, { - "value": 103, - "description": "TELEM 3" + "value": 0, + "description": " Disabled" }, { - "value": 104, - "description": "TELEM/SERIAL 4" + "value": 1, + "description": " Min" }, { - "value": 201, - "description": "GPS 1" + "value": 25, + "description": " Low" }, { - "value": 202, - "description": "GPS 2" + "value": 50, + "description": " Medium (Default)" }, { - "value": 203, - "description": "GPS 3" + "value": 75, + "description": " High" }, { - "value": 300, - "description": "Radio Controller" + "value": 100, + "description": "Max" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "SER_GPS{n}_BAUD", + "name": "CAL_MAG3_ROT", "type": "Int32", - "group": "Serial", - "category": "Standard", - "shortDesc": "Baudrate for the GPS 1 Serial Port", - "longDesc": "Configure the Baudrate for the GPS 1 Serial Port. Note: certain drivers such as the GPS can determine the Baudrate automatically.", - "default": 0, + "default": -1, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Rotation of magnetometer 3 relative to airframe", + "longDesc": "An internal sensor will force a value of -1, so a GCS should only attempt to configure the rotation if the value is greater than or equal to zero.", + "min": -1, + "max": 41, + "rebootRequired": true, "values": [ + { + "value": -1, + "description": "Internal" + }, { "value": 0, - "description": "Auto" + "description": "No rotation" }, { - "value": 50, - "description": "50 8N1" + "value": 1, + "description": "Yaw 45\u00b0" }, { - "value": 75, - "description": "75 8N1" + "value": 2, + "description": "Yaw 90\u00b0" + }, + { + "value": 3, + "description": "Yaw 135\u00b0" }, { - "value": 110, - "description": "110 8N1" + "value": 4, + "description": "Yaw 180\u00b0" }, { - "value": 134, - "description": "134 8N1" + "value": 5, + "description": "Yaw 225\u00b0" }, { - "value": 150, - "description": "150 8N1" + "value": 6, + "description": "Yaw 270\u00b0" }, { - "value": 200, - "description": "200 8N1" + "value": 7, + "description": "Yaw 315\u00b0" }, { - "value": 300, - "description": "300 8N1" + "value": 8, + "description": "Roll 180\u00b0" }, { - "value": 600, - "description": "600 8N1" + "value": 9, + "description": "Roll 180\u00b0, Yaw 45\u00b0" }, { - "value": 1200, - "description": "1200 8N1" + "value": 10, + "description": "Roll 180\u00b0, Yaw 90\u00b0" }, { - "value": 1800, - "description": "1800 8N1" + "value": 11, + "description": "Roll 180\u00b0, Yaw 135\u00b0" }, { - "value": 2400, - "description": "2400 8N1" + "value": 12, + "description": "Pitch 180\u00b0" }, { - "value": 4800, - "description": "4800 8N1" + "value": 13, + "description": "Roll 180\u00b0, Yaw 225\u00b0" }, { - "value": 9600, - "description": "9600 8N1" + "value": 14, + "description": "Roll 180\u00b0, Yaw 270\u00b0" }, { - "value": 19200, - "description": "19200 8N1" + "value": 15, + "description": "Roll 180\u00b0, Yaw 315\u00b0" }, { - "value": 38400, - "description": "38400 8N1" + "value": 16, + "description": "Roll 90\u00b0" }, { - "value": 57600, - "description": "57600 8N1" + "value": 17, + "description": "Roll 90\u00b0, Yaw 45\u00b0" }, { - "value": 115200, - "description": "115200 8N1" + "value": 18, + "description": "Roll 90\u00b0, Yaw 90\u00b0" }, { - "value": 230400, - "description": "230400 8N1" + "value": 19, + "description": "Roll 90\u00b0, Yaw 135\u00b0" }, { - "value": 460800, - "description": "460800 8N1" + "value": 20, + "description": "Roll 270\u00b0" }, { - "value": 500000, - "description": "500000 8N1" + "value": 21, + "description": "Roll 270\u00b0, Yaw 45\u00b0" }, { - "value": 921600, - "description": "921600 8N1" + "value": 22, + "description": "Roll 270\u00b0, Yaw 90\u00b0" }, { - "value": 1e+06, - "description": "1000000 8N1" + "value": 23, + "description": "Roll 270\u00b0, Yaw 135\u00b0" }, { - "value": 1.5e+06, - "description": "1500000 8N1" + "value": 24, + "description": "Pitch 90\u00b0" }, { - "value": 2e+06, - "description": "2000000 8N1" + "value": 25, + "description": "Pitch 270\u00b0" }, { - "value": 3e+06, - "description": "3000000 8N1" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SER_RC_BAUD", - "type": "Int32", - "group": "Serial", - "category": "Standard", - "shortDesc": "Baudrate for the Radio Controller Serial Port", - "longDesc": "Configure the Baudrate for the Radio Controller Serial Port. Note: certain drivers such as the GPS can determine the Baudrate automatically.", - "default": 0, - "values": [ - { - "value": 0, - "description": "Auto" + "value": 26, + "description": "Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 50, - "description": "50 8N1" + "value": 27, + "description": "Pitch 180\u00b0, Yaw 270\u00b0" }, { - "value": 75, - "description": "75 8N1" + "value": 28, + "description": "Roll 90\u00b0, Pitch 90\u00b0" }, { - "value": 110, - "description": "110 8N1" + "value": 29, + "description": "Roll 180\u00b0, Pitch 90\u00b0" }, { - "value": 134, - "description": "134 8N1" + "value": 30, + "description": "Roll 270\u00b0, Pitch 90\u00b0" }, { - "value": 150, - "description": "150 8N1" + "value": 31, + "description": "Roll 90\u00b0, Pitch 180\u00b0" }, { - "value": 200, - "description": "200 8N1" + "value": 32, + "description": "Roll 270\u00b0, Pitch 180\u00b0" }, { - "value": 300, - "description": "300 8N1" + "value": 33, + "description": "Roll 90\u00b0, Pitch 270\u00b0" }, { - "value": 600, - "description": "600 8N1" + "value": 34, + "description": "Roll 180\u00b0, Pitch 270\u00b0" }, { - "value": 1200, - "description": "1200 8N1" + "value": 35, + "description": "Roll 270\u00b0, Pitch 270\u00b0" }, { - "value": 1800, - "description": "1800 8N1" + "value": 36, + "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 2400, - "description": "2400 8N1" + "value": 37, + "description": "Roll 90\u00b0, Yaw 270\u00b0" }, { - "value": 4800, - "description": "4800 8N1" + "value": 38, + "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0" }, { - "value": 9600, - "description": "9600 8N1" + "value": 39, + "description": "Pitch 315\u00b0" }, { - "value": 19200, - "description": "19200 8N1" + "value": 40, + "description": "Roll 90\u00b0, Pitch 315\u00b0" }, { - "value": 38400, - "description": "38400 8N1" - }, + "value": 41, + "description": "Roll 270\u00b0, Yaw 180\u00b0" + } + ] + }, + { + "name": "CAL_MAG3_XCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Coefficient describing linear relationship between\nX component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" + }, + { + "name": "CAL_MAG3_XODIAG", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer X-axis off diagonal factor" + }, + { + "name": "CAL_MAG3_XOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer X-axis offset" + }, + { + "name": "CAL_MAG3_XSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer X-axis scaling factor" + }, + { + "name": "CAL_MAG3_YCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Coefficient describing linear relationship between\nY component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" + }, + { + "name": "CAL_MAG3_YODIAG", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Y-axis off diagonal factor" + }, + { + "name": "CAL_MAG3_YOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Y-axis offset" + }, + { + "name": "CAL_MAG3_YSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Y-axis scaling factor" + }, + { + "name": "CAL_MAG3_ZCOMP", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Coefficient describing linear relationship between\nZ component of magnetometer in body frame axis\nand either current or throttle depending on value of CAL_MAG_COMP_TYP\nUnit for throttle-based compensation is [G] and\nfor current-based compensation [G/kA]" + }, + { + "name": "CAL_MAG3_ZODIAG", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Z-axis off diagonal factor" + }, + { + "name": "CAL_MAG3_ZOFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Z-axis offset" + }, + { + "name": "CAL_MAG3_ZSCALE", + "type": "Float", + "default": 1.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Magnetometer Z-axis scaling factor" + }, + { + "name": "CAL_MAG_COMP_TYP", + "type": "Int32", + "default": 0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Type of magnetometer compensation", + "values": [ { - "value": 57600, - "description": "57600 8N1" + "value": 0, + "description": "Disabled" }, { - "value": 115200, - "description": "115200 8N1" + "value": 1, + "description": "Throttle-based compensation" }, { - "value": 230400, - "description": "230400 8N1" + "value": 2, + "description": "Current-based compensation (battery_status instance 0)" }, { - "value": 460800, - "description": "460800 8N1" - }, + "value": 3, + "description": "Current-based compensation (battery_status instance 1)" + } + ] + }, + { + "name": "SENS_DPRES_ANSC", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "shortDesc": "Differential pressure sensor analog scaling", + "longDesc": "Pick the appropriate scaling from the datasheet. this number defines the (linear) conversion from voltage to Pascal (pa). For the MPXV7002DP this is 1000. NOTE: If the sensor always registers zero, try switching the static and dynamic tubes." + }, + { + "name": "SENS_DPRES_OFF", + "type": "Float", + "default": 0.0, + "group": "Sensor Calibration", + "category": "System", + "shortDesc": "Differential pressure sensor offset", + "longDesc": "The offset (zero-reading) in Pascal" + }, + { + "name": "SENS_FLOW_MAXHGT", + "type": "Float", + "default": 3.0, + "group": "Sensor Calibration", + "shortDesc": "Maximum height above ground when reliant on optical flow", + "longDesc": "This parameter defines the maximum distance from ground at which the optical flow sensor operates reliably. The height setpoint will be limited to be no greater than this value when the navigation system is completely reliant on optical flow data and the height above ground estimate is valid. The sensor may be usable above this height, but accuracy will progressively degrade.", + "min": 1.0, + "max": 25.0, + "units": "m", + "decimalPlaces": 1, + "increment": 0.1 + }, + { + "name": "SENS_FLOW_MAXR", + "type": "Float", + "default": 2.5, + "group": "Sensor Calibration", + "shortDesc": "Magnitude of maximum angular flow rate reliably measurable by the optical flow sensor.\nOptical flow data will not fused by the estimators if the magnitude of the flow rate exceeds this value and\ncontrol loops will be instructed to limit ground speed such that the flow rate produced by movement over ground\nis less than 50% of this value", + "min": 1.0, + "units": "rad/s", + "decimalPlaces": 2 + }, + { + "name": "SENS_FLOW_MINHGT", + "type": "Float", + "default": 0.7, + "group": "Sensor Calibration", + "shortDesc": "Minimum height above ground when reliant on optical flow", + "longDesc": "This parameter defines the minimum distance from ground at which the optical flow sensor operates reliably. The sensor may be usable below this height, but accuracy will progressively reduce to loss of focus.", + "min": 0.0, + "max": 1.0, + "units": "m", + "decimalPlaces": 1, + "increment": 0.1 + }, + { + "name": "CAL_AIR_CMODEL", + "type": "Int32", + "default": 0, + "group": "Sensors", + "shortDesc": "Airspeed sensor compensation model for the SDP3x", + "longDesc": "Model with Pitot CAL_AIR_TUBED_MM: Not used, 1.5 mm tubes assumed. CAL_AIR_TUBELEN: Length of the tubes connecting the pitot to the sensor. Model without Pitot (1.5 mm tubes) CAL_AIR_TUBED_MM: Not used, 1.5 mm tubes assumed. CAL_AIR_TUBELEN: Length of the tubes connecting the pitot to the sensor. Tube Pressure Drop CAL_AIR_TUBED_MM: Diameter in mm of the pitot and tubes, must have the same diameter. CAL_AIR_TUBELEN: Length of the tubes connecting the pitot to the sensor and the static + dynamic port length of the pitot.", + "values": [ { - "value": 500000, - "description": "500000 8N1" + "value": 0, + "description": "Model with Pitot" }, { - "value": 921600, - "description": "921600 8N1" + "value": 1, + "description": "Model without Pitot (1.5 mm tubes)" }, { - "value": 1e+06, - "description": "1000000 8N1" - }, + "value": 2, + "description": "Tube Pressure Drop" + } + ] + }, + { + "name": "CAL_AIR_TUBED_MM", + "type": "Float", + "default": 1.5, + "group": "Sensors", + "shortDesc": "Airspeed sensor tube diameter. Only used for the Tube Pressure Drop Compensation", + "min": 0.1, + "max": 100.0, + "units": "mm" + }, + { + "name": "CAL_AIR_TUBELEN", + "type": "Float", + "default": 0.2, + "group": "Sensors", + "shortDesc": "Airspeed sensor tube length", + "longDesc": "See the CAL_AIR_CMODEL explanation on how this parameter should be set.", + "min": 0.01, + "max": 2.0, + "units": "m" + }, + { + "name": "CAL_MAG_ROT_AUTO", + "type": "Int32", + "default": 1, + "group": "Sensors", + "shortDesc": "Automatically set external rotations", + "longDesc": "During calibration attempt to automatically determine the rotation of external magnetometers." + }, + { + "name": "CAL_MAG_SIDES", + "type": "Int32", + "default": 63, + "group": "Sensors", + "shortDesc": "Bitfield selecting mag sides for calibration", + "longDesc": "If set to two side calibration, only the offsets are estimated, the scale calibration is left unchanged. Thus an initial six side calibration is recommended. Bits: ORIENTATION_TAIL_DOWN = 1 ORIENTATION_NOSE_DOWN = 2 ORIENTATION_LEFT = 4 ORIENTATION_RIGHT = 8 ORIENTATION_UPSIDE_DOWN = 16 ORIENTATION_RIGHTSIDE_UP = 32", + "min": 34, + "max": 63, + "values": [ { - "value": 1.5e+06, - "description": "1500000 8N1" + "value": 34, + "description": "Two side calibration" }, { - "value": 2e+06, - "description": "2000000 8N1" + "value": 38, + "description": "Three side calibration" }, { - "value": 3e+06, - "description": "3000000 8N1" + "value": 63, + "description": "Six side calibration" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] + }, + { + "name": "IMU_ACCEL_CUTOFF", + "type": "Float", + "default": 30.0, + "group": "Sensors", + "shortDesc": "Low pass filter cutoff frequency for accel", + "longDesc": "The cutoff frequency for the 2nd order butterworth filter on the primary accelerometer. This only affects the signal sent to the controllers, not the estimators. 0 disables the filter.", + "min": 0.0, + "max": 1000.0, + "units": "Hz", + "rebootRequired": true + }, + { + "name": "IMU_DGYRO_CUTOFF", + "type": "Float", + "default": 0.0, + "group": "Sensors", + "shortDesc": "Cutoff frequency for angular acceleration (D-Term filter)", + "longDesc": "The cutoff frequency for the 2nd order butterworth filter used on the time derivative of the measured angular velocity, also known as the D-term filter in the rate controller. The D-term uses the derivative of the rate and thus is the most susceptible to noise. Therefore, using a D-term filter allows to increase IMU_GYRO_CUTOFF, which leads to reduced control latency and permits to increase the P gains. A value of 0 disables the filter.", + "min": 0.0, + "max": 1000.0, + "units": "Hz", + "rebootRequired": true + }, + { + "name": "IMU_GYRO_CUTOFF", + "type": "Float", + "default": 30.0, + "group": "Sensors", + "shortDesc": "Low pass filter cutoff frequency for gyro", + "longDesc": "The cutoff frequency for the 2nd order butterworth filter on the primary gyro. This only affects the angular velocity sent to the controllers, not the estimators. It applies also to the angular acceleration (D-Term filter), see IMU_DGYRO_CUTOFF. A value of 0 disables the filter.", + "min": 0.0, + "max": 1000.0, + "units": "Hz", + "rebootRequired": true + }, + { + "name": "IMU_GYRO_NF_BW", + "type": "Float", + "default": 20.0, + "group": "Sensors", + "shortDesc": "Notch filter bandwidth for gyro", + "longDesc": "The frequency width of the stop band for the 2nd order notch filter on the primary gyro. See \"IMU_GYRO_NF_FREQ\" to activate the filter and to set the notch frequency. Applies to both angular velocity and angular acceleration sent to the controllers.", + "min": 0.0, + "max": 100.0, + "units": "Hz", + "rebootRequired": true + }, + { + "name": "IMU_GYRO_NF_FREQ", + "type": "Float", + "default": 0.0, + "group": "Sensors", + "shortDesc": "Notch filter frequency for gyro", + "longDesc": "The center frequency for the 2nd order notch filter on the primary gyro. This filter can be enabled to avoid feedback amplification of structural resonances at a specific frequency. This only affects the signal sent to the controllers, not the estimators. Applies to both angular velocity and angular acceleration sent to the controllers. See \"IMU_GYRO_NF_BW\" to set the bandwidth of the filter. A value of 0 disables the filter.", + "min": 0.0, + "max": 1000.0, + "units": "Hz", + "rebootRequired": true }, { - "name": "SER_TEL{n}_BAUD", + "name": "IMU_GYRO_RATEMAX", "type": "Int32", - "group": "Serial", - "category": "Standard", - "shortDesc": "Baudrate for the TELEM 1 Serial Port", - "longDesc": "Configure the Baudrate for the TELEM 1 Serial Port. Note: certain drivers such as the GPS can determine the Baudrate automatically.", - "default": 57600, + "default": 0, + "group": "Sensors", + "shortDesc": "Gyro control data maximum publication rate", + "longDesc": "This is the maximum rate the gyro control data (sensor_gyro) will be allowed to publish at. Set to 0 to disable and publish at the native sensor sample rate.", + "min": 0, + "max": 2000, + "units": "Hz", + "rebootRequired": true, "values": [ { "value": 0, - "description": "Auto" + "description": "0 (no limit)" }, { "value": 50, - "description": "50 8N1" + "description": "50 Hz" }, { - "value": 75, - "description": "75 8N1" + "value": 250, + "description": "250 Hz" }, { - "value": 110, - "description": "110 8N1" + "value": 400, + "description": "400 Hz" }, { - "value": 134, - "description": "134 8N1" + "value": 1000, + "description": "1000 Hz" }, { - "value": 150, - "description": "150 8N1" - }, + "value": 2000, + "description": "2000 Hz" + } + ] + }, + { + "name": "IMU_INTEG_RATE", + "type": "Int32", + "default": 200, + "group": "Sensors", + "shortDesc": "IMU integration rate", + "longDesc": "The rate at which raw IMU data is integrated to produce delta angles and delta velocities. Recommended to set this to a multiple of the estimator update period (currently 10 ms for ekf2).", + "min": 100, + "max": 1000, + "units": "Hz", + "rebootRequired": true, + "values": [ { - "value": 200, - "description": "200 8N1" + "value": 100, + "description": "100 Hz" }, { - "value": 300, - "description": "300 8N1" + "value": 200, + "description": "200 Hz" }, { - "value": 600, - "description": "600 8N1" - }, + "value": 400, + "description": "400 Hz" + } + ] + }, + { + "name": "SENS_BARO_QNH", + "type": "Float", + "default": 1013.25, + "group": "Sensors", + "shortDesc": "QNH for barometer", + "min": 500.0, + "max": 1500.0, + "units": "hPa", + "rebootRequired": true + }, + { + "name": "SENS_BARO_RATE", + "type": "Float", + "default": 20.0, + "group": "Sensors", + "shortDesc": "Baro max rate", + "longDesc": "Barometric air data maximum publication rate. This is an upper bound, actual barometric data rate is still dependant on the sensor.", + "min": 1.0, + "max": 200.0, + "units": "Hz", + "rebootRequired": true + }, + { + "name": "SENS_BOARD_ROT", + "type": "Int32", + "default": 0, + "group": "Sensors", + "shortDesc": "Board rotation", + "longDesc": "This parameter defines the rotation of the FMU board relative to the platform.", + "min": -1, + "max": 41, + "rebootRequired": true, + "values": [ { - "value": 1200, - "description": "1200 8N1" + "value": 0, + "description": "No rotation" }, { - "value": 1800, - "description": "1800 8N1" + "value": 1, + "description": "Yaw 45\u00b0" }, { - "value": 2400, - "description": "2400 8N1" + "value": 2, + "description": "Yaw 90\u00b0" }, { - "value": 4800, - "description": "4800 8N1" + "value": 3, + "description": "Yaw 135\u00b0" }, { - "value": 9600, - "description": "9600 8N1" + "value": 4, + "description": "Yaw 180\u00b0" }, { - "value": 19200, - "description": "19200 8N1" + "value": 5, + "description": "Yaw 225\u00b0" }, { - "value": 38400, - "description": "38400 8N1" + "value": 6, + "description": "Yaw 270\u00b0" }, { - "value": 57600, - "description": "57600 8N1" + "value": 7, + "description": "Yaw 315\u00b0" }, { - "value": 115200, - "description": "115200 8N1" + "value": 8, + "description": "Roll 180\u00b0" }, { - "value": 230400, - "description": "230400 8N1" + "value": 9, + "description": "Roll 180\u00b0, Yaw 45\u00b0" }, { - "value": 460800, - "description": "460800 8N1" + "value": 10, + "description": "Roll 180\u00b0, Yaw 90\u00b0" }, { - "value": 500000, - "description": "500000 8N1" + "value": 11, + "description": "Roll 180\u00b0, Yaw 135\u00b0" }, { - "value": 921600, - "description": "921600 8N1" + "value": 12, + "description": "Pitch 180\u00b0" }, { - "value": 1e+06, - "description": "1000000 8N1" + "value": 13, + "description": "Roll 180\u00b0, Yaw 225\u00b0" }, { - "value": 1.5e+06, - "description": "1500000 8N1" + "value": 14, + "description": "Roll 180\u00b0, Yaw 270\u00b0" }, { - "value": 2e+06, - "description": "2000000 8N1" + "value": 15, + "description": "Roll 180\u00b0, Yaw 315\u00b0" }, { - "value": 3e+06, - "description": "3000000 8N1" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SER_URT6_BAUD", - "type": "Int32", - "group": "Serial", - "category": "Standard", - "shortDesc": "Baudrate for the UART 6 Serial Port", - "longDesc": "Configure the Baudrate for the UART 6 Serial Port. Note: certain drivers such as the GPS can determine the Baudrate automatically.", - "default": 57600, - "values": [ - { - "value": 0, - "description": "Auto" + "value": 16, + "description": "Roll 90\u00b0" }, { - "value": 50, - "description": "50 8N1" + "value": 17, + "description": "Roll 90\u00b0, Yaw 45\u00b0" }, { - "value": 75, - "description": "75 8N1" + "value": 18, + "description": "Roll 90\u00b0, Yaw 90\u00b0" }, { - "value": 110, - "description": "110 8N1" + "value": 19, + "description": "Roll 90\u00b0, Yaw 135\u00b0" }, { - "value": 134, - "description": "134 8N1" + "value": 20, + "description": "Roll 270\u00b0" }, { - "value": 150, - "description": "150 8N1" + "value": 21, + "description": "Roll 270\u00b0, Yaw 45\u00b0" }, { - "value": 200, - "description": "200 8N1" + "value": 22, + "description": "Roll 270\u00b0, Yaw 90\u00b0" }, { - "value": 300, - "description": "300 8N1" + "value": 23, + "description": "Roll 270\u00b0, Yaw 135\u00b0" }, { - "value": 600, - "description": "600 8N1" + "value": 24, + "description": "Pitch 90\u00b0" }, { - "value": 1200, - "description": "1200 8N1" + "value": 25, + "description": "Pitch 270\u00b0" }, { - "value": 1800, - "description": "1800 8N1" + "value": 26, + "description": "Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 2400, - "description": "2400 8N1" + "value": 27, + "description": "Pitch 180\u00b0, Yaw 270\u00b0" }, { - "value": 4800, - "description": "4800 8N1" + "value": 28, + "description": "Roll 90\u00b0, Pitch 90\u00b0" }, { - "value": 9600, - "description": "9600 8N1" + "value": 29, + "description": "Roll 180\u00b0, Pitch 90\u00b0" }, { - "value": 19200, - "description": "19200 8N1" + "value": 30, + "description": "Roll 270\u00b0, Pitch 90\u00b0" }, { - "value": 38400, - "description": "38400 8N1" + "value": 31, + "description": "Roll 90\u00b0, Pitch 180\u00b0" }, { - "value": 57600, - "description": "57600 8N1" + "value": 32, + "description": "Roll 270\u00b0, Pitch 180\u00b0" }, { - "value": 115200, - "description": "115200 8N1" + "value": 33, + "description": "Roll 90\u00b0, Pitch 270\u00b0" }, { - "value": 230400, - "description": "230400 8N1" + "value": 34, + "description": "Roll 180\u00b0, Pitch 270\u00b0" }, { - "value": 460800, - "description": "460800 8N1" + "value": 35, + "description": "Roll 270\u00b0, Pitch 270\u00b0" }, { - "value": 500000, - "description": "500000 8N1" + "value": 36, + "description": "Roll 90\u00b0, Pitch 180\u00b0, Yaw 90\u00b0" }, { - "value": 921600, - "description": "921600 8N1" + "value": 37, + "description": "Roll 90\u00b0, Yaw 270\u00b0" }, { - "value": 1e+06, - "description": "1000000 8N1" + "value": 38, + "description": "Roll 90\u00b0, Pitch 68\u00b0, Yaw 293\u00b0" }, { - "value": 1.5e+06, - "description": "1500000 8N1" + "value": 39, + "description": "Pitch 315\u00b0" }, { - "value": 2e+06, - "description": "2000000 8N1" + "value": 40, + "description": "Roll 90\u00b0, Pitch 315\u00b0" }, { - "value": 3e+06, - "description": "3000000 8N1" + "value": 41, + "description": "Roll 270\u00b0, Yaw 180\u00b0" } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SIH_IXX", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Vehicle inertia about X axis", - "longDesc": "The intertia is a 3 by 3 symmetric matrix. It represents the difficulty of the vehicle to modify its angular rate.", - "units": "kg*m*m", - "default": 0.025, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "SIH_IXY", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Vehicle cross term inertia xy", - "longDesc": "The intertia is a 3 by 3 symmetric matrix. This value can be set to 0 for a quad symmetric about its center of mass.", - "units": "kg*m*m", - "default": 0, - "increment": 0.005, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "SIH_IXZ", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Vehicle cross term inertia xz", - "longDesc": "The intertia is a 3 by 3 symmetric matrix. This value can be set to 0 for a quad symmetric about its center of mass.", - "units": "kg*m*m", - "default": 0, - "increment": 0.005, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "SIH_IYY", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Vehicle inertia about Y axis", - "longDesc": "The intertia is a 3 by 3 symmetric matrix. It represents the difficulty of the vehicle to modify its angular rate.", - "units": "kg*m*m", - "default": 0.025, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "SIH_IYZ", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Vehicle cross term inertia yz", - "longDesc": "The intertia is a 3 by 3 symmetric matrix. This value can be set to 0 for a quad symmetric about its center of mass.", - "units": "kg*m*m", - "default": 0, - "increment": 0.005, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "SIH_IZZ", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Vehicle inertia about Z axis", - "longDesc": "The intertia is a 3 by 3 symmetric matrix. It represents the difficulty of the vehicle to modify its angular rate.", - "units": "kg*m*m", - "default": 0.03, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0, - "max": 3.40282e+38 + ] }, { - "name": "SIH_KDV", + "name": "SENS_BOARD_X_OFF", "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "First order drag coefficient", - "longDesc": "Physical coefficient representing the friction with air particules. The greater this value, the slower the quad will move. Drag force function of velocity: D=-KDV*V. The maximum freefall velocity can be computed as V=10*MASS/KDV [m/s]", - "units": "N/(m/s)", - "default": 1, - "increment": 0.05, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 + "default": 0.0, + "group": "Sensors", + "shortDesc": "Board rotation X (Roll) offset", + "longDesc": "This parameter defines a rotational offset in degrees around the X (Roll) axis It allows the user to fine tune the board offset in the event of misalignment.", + "units": "deg" }, { - "name": "SIH_KDW", + "name": "SENS_BOARD_Y_OFF", "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "First order angular damper coefficient", - "longDesc": "Physical coefficient representing the friction with air particules during rotations. The greater this value, the slower the quad will rotate. Aerodynamic moment function of body rate: Ma=-KDW*W_B. This value can be set to 0 if unknown.", - "units": "Nm/(rad/s)", - "default": 0.025, - "increment": 0.005, - "decimalPlaces": 3, - "min": 0, - "max": 3.40282e+38 + "default": 0.0, + "group": "Sensors", + "shortDesc": "Board rotation Y (Pitch) offset", + "longDesc": "This parameter defines a rotational offset in degrees around the Y (Pitch) axis. It allows the user to fine tune the board offset in the event of misalignment.", + "units": "deg" }, { - "name": "SIH_LOC_H0", + "name": "SENS_BOARD_Z_OFF", "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Initial AMSL ground altitude", - "longDesc": "This value represents the Above Mean Sea Level (AMSL) altitude where the simulation begins. If using FlightGear as a visual animation, this value can be tweaked such that the vehicle lies on the ground at takeoff. LAT0, LON0, H0, MU_X, MU_Y, and MU_Z should ideally be consistent among each others to represent a physical ground location on Earth.", - "units": "m", - "default": 32.34, - "increment": 0.01, - "decimalPlaces": 2, - "min": -420, - "max": 8848 + "default": 0.0, + "group": "Sensors", + "shortDesc": "Board rotation Z (YAW) offset", + "longDesc": "This parameter defines a rotational offset in degrees around the Z (Yaw) axis. It allows the user to fine tune the board offset in the event of misalignment.", + "units": "deg" }, { - "name": "SIH_LOC_LAT0", + "name": "SENS_EN_THERMAL", "type": "Int32", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Initial geodetic latitude", - "longDesc": "This value represents the North-South location on Earth where the simulation begins. A value of 45 deg should be written 450000000. LAT0, LON0, H0, MU_X, MU_Y, and MU_Z should ideally be consistent among each others to represent a physical ground location on Earth.", - "units": "1e-7 deg", - "default": 4.54671e+08, - "decimalPlaces": 3, - "min": -8.5e+08, - "max": 8.5e+08 + "default": -1, + "group": "Sensors", + "category": "System", + "shortDesc": "Thermal control of sensor temperature", + "values": [ + { + "value": -1, + "description": "Thermal control unavailable" + }, + { + "value": 0, + "description": "Thermal control off" + }, + { + "value": 1, + "description": "Thermal control enabled" + } + ] }, { - "name": "SIH_LOC_LON0", + "name": "SENS_EXT_I2C_PRB", "type": "Int32", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Initial geodetic longitude", - "longDesc": "This value represents the East-West location on Earth where the simulation begins. A value of 45 deg should be written 450000000. LAT0, LON0, H0, MU_X, MU_Y, and MU_Z should ideally be consistent among each others to represent a physical ground location on Earth.", - "units": "1e-7 deg", - "default": -7.37578e+08, - "decimalPlaces": 3, - "min": -1.8e+09, - "max": 1.8e+09 - }, - { - "name": "SIH_LOC_MU_X", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "North magnetic field at the initial location", - "longDesc": "This value represents the North magnetic field at the initial location. A magnetic field calculator can be found on the NOAA website Note, the values need to be converted from nano Tesla to Gauss LAT0, LON0, H0, MU_X, MU_Y, and MU_Z should ideally be consistent among each others to represent a physical ground location on Earth.", - "units": "Gauss", - "default": 0.179, - "increment": 0.001, - "decimalPlaces": 2, - "min": -1, - "max": 1 - }, - { - "name": "SIH_LOC_MU_Y", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "East magnetic field at the initial location", - "longDesc": "This value represents the East magnetic field at the initial location. A magnetic field calculator can be found on the NOAA website Note, the values need to be converted from nano Tesla to Gauss LAT0, LON0, H0, MU_X, MU_Y, and MU_Z should ideally be consistent among each others to represent a physical ground location on Earth.", - "units": "Gauss", - "default": -0.045, - "increment": 0.001, - "decimalPlaces": 2, - "min": -1, - "max": 1 - }, - { - "name": "SIH_LOC_MU_Z", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Down magnetic field at the initial location", - "longDesc": "This value represents the Down magnetic field at the initial location. A magnetic field calculator can be found on the NOAA website Note, the values need to be converted from nano Tesla to Gauss LAT0, LON0, H0, MU_X, MU_Y, and MU_Z should ideally be consistent among each others to represent a physical ground location on Earth.", - "units": "Gauss", - "default": 0.504, - "increment": 0.001, - "decimalPlaces": 2, - "min": -1, - "max": 1 - }, - { - "name": "SIH_L_PITCH", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Pitch arm length", - "longDesc": "This is the arm length generating the pitching moment This value can be measured with a ruler. This corresponds to half the distance between the front and rear motors.", - "units": "m", - "default": 0.2, - "increment": 0.05, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "SIH_L_ROLL", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Roll arm length", - "longDesc": "This is the arm length generating the rolling moment This value can be measured with a ruler. This corresponds to half the distance between the left and right motors.", - "units": "m", - "default": 0.2, - "increment": 0.05, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "SIH_MASS", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Vehicle mass", - "longDesc": "This value can be measured by weighting the quad on a scale.", - "units": "kg", "default": 1, - "increment": 0.1, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "SIH_Q_MAX", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Max propeller torque", - "longDesc": "This is the maximum torque delivered by one propeller when the motor is running at full speed. This value is usually about few percent of the maximum thrust force.", - "units": "Nm", - "default": 0.1, - "increment": 0.05, - "decimalPlaces": 3, - "min": 0, - "max": 3.40282e+38 - }, - { - "name": "SIH_T_MAX", - "type": "Float", - "group": "Simulation In Hardware", - "category": "Standard", - "shortDesc": "Max propeller thrust force", - "longDesc": "This is the maximum force delivered by one propeller when the motor is running at full speed. This value is usually about 5 times the mass of the quadrotor.", - "units": "N", - "default": 5, - "increment": 0.5, - "decimalPlaces": 2, - "min": 0, - "max": 3.40282e+38 + "group": "Sensors", + "category": "System", + "shortDesc": "External I2C probe", + "longDesc": "Probe for optional external I2C devices." }, { - "name": "SIM_ACCEL_BLOCK", + "name": "SENS_FLOW_ROT", "type": "Int32", - "group": "SITL", - "category": "Standard", - "shortDesc": "Simulator block accelerometer data", - "longDesc": "Enable to block the publication of any incoming simulation accelerometer data.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "default": 6, + "group": "Sensors", + "shortDesc": "PX4Flow board rotation", + "longDesc": "This parameter defines the yaw rotation of the PX4FLOW board relative to the vehicle body frame. Zero rotation is defined as X on flow board pointing towards front of vehicle. The recommneded installation default for the PX4FLOW board is with the Y axis forward (270 deg yaw).", + "rebootRequired": true, + "values": [ + { + "value": 0, + "description": "No rotation" + }, + { + "value": 1, + "description": "Yaw 45\u00b0" + }, + { + "value": 2, + "description": "Yaw 90\u00b0" + }, + { + "value": 3, + "description": "Yaw 135\u00b0" + }, + { + "value": 4, + "description": "Yaw 180\u00b0" + }, + { + "value": 5, + "description": "Yaw 225\u00b0" + }, + { + "value": 6, + "description": "Yaw 270\u00b0" + }, + { + "value": 7, + "description": "Yaw 315\u00b0" + } + ] }, { - "name": "SIM_BARO_BLOCK", + "name": "SENS_GPS_MASK", "type": "Int32", - "group": "SITL", - "category": "Standard", - "shortDesc": "Simulator block barometer data", - "longDesc": "Enable to block the publication of any incoming simulation barometer data.", "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "group": "Sensors", + "shortDesc": "Multi GPS Blending Control Mask", + "longDesc": "Set bits in the following positions to set which GPS accuracy metrics will be used to calculate the blending weight. Set to zero to disable and always used first GPS instance. 0 : Set to true to use speed accuracy 1 : Set to true to use horizontal position accuracy 2 : Set to true to use vertical position accuracy", + "min": 0, + "max": 7, + "bitmask": [ + { + "index": 0, + "description": "use speed accuracy" + }, + { + "index": 1, + "description": "use hpos accuracy" + }, + { + "index": 2, + "description": "use vpos accuracy" + } + ] }, { - "name": "SIM_BAT_DRAIN", + "name": "SENS_GPS_TAU", "type": "Float", - "group": "SITL", - "category": "Standard", - "shortDesc": "Simulator Battery drain interval", + "default": 10.0, + "group": "Sensors", + "shortDesc": "Multi GPS Blending Time Constant", + "longDesc": "Sets the longest time constant that will be applied to the calculation of GPS position and height offsets used to correct data from multiple GPS data for steady state position differences.", + "min": 1.0, + "max": 100.0, "units": "s", - "default": 60, - "increment": 1, - "decimalPlaces": 0, - "min": 1, - "max": 86400 - }, - { - "name": "SIM_BAT_MIN_PCT", - "type": "Float", - "group": "SITL", - "category": "Standard", - "shortDesc": "Simulator Battery minimal percentage. Can be used to alter the battery level during SITL- or HITL-simulation on the fly. Particularly useful for testing different low-battery behaviour", - "units": "%", - "default": 50, - "increment": 0.1, - "decimalPlaces": 1, - "min": 0, - "max": 100 - }, - { - "name": "SIM_DPRES_BLOCK", - "type": "Int32", - "group": "SITL", - "category": "Standard", - "shortDesc": "Simulator block differential pressure data", - "longDesc": "Enable to block the publication of any incoming simulation differential pressure data.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "decimalPlaces": 1 }, { - "name": "SIM_GPS_BLOCK", + "name": "SENS_IMU_MODE", "type": "Int32", - "group": "SITL", - "category": "Standard", - "shortDesc": "Simulator block GPS data", - "longDesc": "Enable to block the publication of any incoming simulation GPS data.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "default": 1, + "group": "Sensors", + "category": "System", + "shortDesc": "Sensors hub IMU mode", + "rebootRequired": true, + "values": [ + { + "value": 0, + "description": "Disabled" + }, + { + "value": 1, + "description": "Publish primary IMU selection" + } + ] }, { - "name": "SIM_GYRO_BLOCK", + "name": "SENS_MAG_MODE", "type": "Int32", - "group": "SITL", - "category": "Standard", - "shortDesc": "Simulator block gyroscope data", - "longDesc": "Enable to block the publication of any incoming simulation gyroscope data.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "default": 1, + "group": "Sensors", + "category": "System", + "shortDesc": "Sensors hub mag mode", + "rebootRequired": true, + "values": [ + { + "value": 0, + "description": "Publish all magnetometers" + }, + { + "value": 1, + "description": "Publish primary magnetometer" + } + ] }, { - "name": "SIM_MAG_BLOCK", - "type": "Int32", - "group": "SITL", - "category": "Standard", - "shortDesc": "Simulator block magnetometer data", - "longDesc": "Enable to block the publication of any incoming simulation magnetometer data.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "SENS_MAG_RATE", + "type": "Float", + "default": 50.0, + "group": "Sensors", + "shortDesc": "Magnetometer max rate", + "longDesc": "Magnetometer data maximum publication rate. This is an upper bound, actual magnetometer data rate is still dependant on the sensor.", + "min": 1.0, + "max": 200.0, + "units": "Hz", + "rebootRequired": true }, { "name": "SYS_AUTOCONFIG", "type": "Int32", + "default": 0, "group": "System", - "category": "Standard", "shortDesc": "Automatically configure default values", "longDesc": "Set to 1 to reset parameters on next system startup (setting defaults). Platform-specific values are used if available. RC* parameters are preserved.", - "default": 0, "values": [ { "value": 0, @@ -17277,146 +18348,128 @@ "value": 2, "description": "Reload airframe parameters" } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { "name": "SYS_AUTOSTART", "type": "Int32", + "default": 0, "group": "System", - "category": "Standard", "shortDesc": "Auto-start script index", "longDesc": "CHANGING THIS VALUE REQUIRES A RESTART. Defines the auto-start script used to bootstrap the system.", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, "min": 0, - "max": 1e+07 + "max": 9999999, + "rebootRequired": true }, { "name": "SYS_BL_UPDATE", "type": "Int32", + "default": 0, "group": "System", - "category": "Standard", "shortDesc": "Bootloader update", "longDesc": "If enabled, update the bootloader on the next boot. WARNING: do not cut the power during an update process, otherwise you will have to recover using some alternative method (e.g. JTAG). Instructions: - Insert an SD card - Enable this parameter - Reboot the board (plug the power or send a reboot command) - Wait until the board comes back up (or at least 2 minutes) - If it does not come back, check the file bootlog.txt on the SD card", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "rebootRequired": true }, { "name": "SYS_CAL_ACCEL", "type": "Int32", + "default": 0, "group": "System", - "category": "Standard", "shortDesc": "Enable auto start of accelerometer thermal calibration at the next power up", "longDesc": "0 : Set to 0 to do nothing 1 : Set to 1 to start a calibration at next boot This parameter is reset to zero when the the temperature calibration starts. default (0, no calibration)", - "default": 0, - "decimalPlaces": 3, "min": 0, "max": 1 }, { "name": "SYS_CAL_BARO", "type": "Int32", + "default": 0, "group": "System", - "category": "Standard", "shortDesc": "Enable auto start of barometer thermal calibration at the next power up", "longDesc": "0 : Set to 0 to do nothing 1 : Set to 1 to start a calibration at next boot This parameter is reset to zero when the the temperature calibration starts. default (0, no calibration)", - "default": 0, - "decimalPlaces": 3, "min": 0, "max": 1 }, { "name": "SYS_CAL_GYRO", "type": "Int32", + "default": 0, "group": "System", - "category": "Standard", "shortDesc": "Enable auto start of rate gyro thermal calibration at the next power up", "longDesc": "0 : Set to 0 to do nothing 1 : Set to 1 to start a calibration at next boot This parameter is reset to zero when the the temperature calibration starts. default (0, no calibration)", - "default": 0, - "decimalPlaces": 3, "min": 0, "max": 1 }, { "name": "SYS_CAL_TDEL", "type": "Int32", + "default": 24, "group": "System", - "category": "Standard", "shortDesc": "Required temperature rise during thermal calibration", "longDesc": "A temperature increase greater than this value is required during calibration. Calibration will complete for each sensor when the temperature increase above the starting temeprature exceeds the value set by SYS_CAL_TDEL. If the temperature rise is insufficient, the calibration will continue indefinitely and the board will need to be repowered to exit.", - "units": "deg C", - "default": 24, - "decimalPlaces": 3, "min": 10, - "max": 2.14748e+09 + "units": "celcius" }, { "name": "SYS_CAL_TMAX", "type": "Int32", + "default": 10, "group": "System", - "category": "Standard", "shortDesc": "Maximum starting temperature for thermal calibration", "longDesc": "Temperature calibration will not start if the temperature of any sensor is higher than the value set by SYS_CAL_TMAX.", - "units": "deg C", - "default": 10, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "units": "celcius" }, { "name": "SYS_CAL_TMIN", "type": "Int32", + "default": 5, "group": "System", - "category": "Standard", "shortDesc": "Minimum starting temperature for thermal calibration", "longDesc": "Temperature calibration for each sensor will ignore data if the temperature is lower than the value set by SYS_CAL_TMIN.", - "units": "deg C", - "default": 5, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "units": "celcius" + }, + { + "name": "SYS_FAC_CAL_MODE", + "type": "Int32", + "default": 0, + "group": "System", + "shortDesc": "Enable factory calibration mode", + "longDesc": "If enabled, future sensor calibrations will be stored to /fs/mtd_caldata. Note: this is only supported on boards with a separate calibration storage /fs/mtd_caldata." + }, + { + "name": "SYS_FAILURE_EN", + "type": "Int32", + "default": 0, + "group": "System", + "shortDesc": "Enable failure injection", + "longDesc": "If enabled allows MAVLink INJECT_FAILURE commands. WARNING: the failures can easily cause crashes and are to be used with caution!" }, { "name": "SYS_HAS_BARO", "type": "Int32", + "default": 1, "group": "System", - "category": "Standard", "shortDesc": "Control if the vehicle has a barometer", "longDesc": "Disable this if the board has no barometer, such as some of the the Omnibus F4 SD variants. If disabled, the preflight checks will not check for the presence of a barometer.", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "rebootRequired": true }, { "name": "SYS_HAS_MAG", "type": "Int32", + "default": 1, "group": "System", - "category": "Standard", "shortDesc": "Control if the vehicle has a magnetometer", "longDesc": "Disable this if the board has no magnetometer, such as the Omnibus F4 SD. If disabled, the preflight checks will not check for the presence of a magnetometer.", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "rebootRequired": true }, { "name": "SYS_HITL", "type": "Int32", + "default": 0, "group": "System", - "category": "Standard", "shortDesc": "Enable HITL/SIH mode on next boot", "longDesc": "While enabled the system will boot in Hardware-In-The-Loop (HITL) or Simulation-In-Hardware (SIH) mode and not enable all sensors and checks. When disabled the same vehicle can be flown normally. Set to 'external HITL', if the system should perform as if it were a real vehicle (the only difference to a real system is then only the parameter value, which can be used for log analysis).", - "default": 0, + "rebootRequired": true, "values": [ { "value": -1, @@ -17432,3136 +18485,2152 @@ }, { "value": 2, - "description": "SIH enabled" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SYS_MC_EST_GROUP", - "type": "Int32", - "group": "System", - "category": "Standard", - "shortDesc": "Set multicopter estimator group", - "longDesc": "Set the group of estimators used for multicopters and VTOLs", - "default": 2, - "values": [ - { - "value": 1, - "description": "local_position_estimator, attitude_estimator_q (unsupported)" - }, - { - "value": 2, - "description": "ekf2 (recommended)" - }, - { - "value": 3, - "description": "Q attitude estimator (no position)" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SYS_PARAM_VER", - "type": "Int32", - "group": "System", - "category": "Standard", - "shortDesc": "Parameter version", - "longDesc": "This is used internally only: an airframe configuration might set an expected parameter version value via PARAM_DEFAULTS_VER. This is checked on bootup against SYS_PARAM_VER, and if they do not match, parameters from the airframe configuration are reloaded.", - "default": 1, - "decimalPlaces": 3, - "min": 0, - "max": 2.14748e+09 - }, - { - "name": "SYS_RESTART_TYPE", - "type": "Int32", - "group": "System", - "category": "System", - "shortDesc": "Set restart type", - "longDesc": "Set by px4io to indicate type of restart", - "default": 2, - "values": [ - { - "value": 0, - "description": "Data survives resets" - }, - { - "value": 1, - "description": "Data survives in-flight resets only" - }, - { - "value": 2, - "description": "Data does not survive reset" - } - ], - "volatile": true, - "decimalPlaces": 3, - "min": 0, - "max": 2 - }, - { - "name": "SYS_STCK_EN", - "type": "Int32", - "group": "System", - "category": "Standard", - "shortDesc": "Enable stack checking", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "SYS_USE_IO", - "type": "Int32", - "group": "System", - "category": "Standard", - "shortDesc": "Set usage of IO board", - "longDesc": "Can be used to use a standard startup script but with a FMU only set-up. Set to 0 to force the FMU only set-up.", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 1 - }, - { - "name": "TC_A0_ID", - "type": "Int32", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "ID of Accelerometer that the calibration is for", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "TC_A0_TMAX", - "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer calibration maximum temperature", - "default": 100, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "TC_A0_TMIN", - "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer calibration minimum temperature", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "TC_A0_TREF", - "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer calibration reference temperature", - "default": 25, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "description": "SIH enabled" + } + ] }, { - "name": "TC_A0_X0_0", - "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "name": "SYS_MC_EST_GROUP", + "type": "Int32", + "default": 2, + "group": "System", + "shortDesc": "Set multicopter estimator group", + "longDesc": "Set the group of estimators used for multicopters and VTOLs", + "rebootRequired": true, + "values": [ + { + "value": 1, + "description": "local_position_estimator, attitude_estimator_q (unsupported)" + }, + { + "value": 2, + "description": "ekf2 (recommended)" + }, + { + "value": 3, + "description": "Q attitude estimator (no position)" + } + ] }, { - "name": "TC_A0_X0_1", - "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "name": "SYS_PARAM_VER", + "type": "Int32", + "default": 1, + "group": "System", + "shortDesc": "Parameter version", + "longDesc": "This is used internally only: an airframe configuration might set an expected parameter version value via PARAM_DEFAULTS_VER. This is checked on bootup against SYS_PARAM_VER, and if they do not match, parameters from the airframe configuration are reloaded.", + "min": 0 }, { - "name": "TC_A0_X0_2", - "type": "Float", - "group": "Thermal Compensation", + "name": "SYS_RESTART_TYPE", + "type": "Int32", + "default": 2, + "group": "System", "category": "System", - "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "volatile": true, + "shortDesc": "Set restart type", + "longDesc": "Set by px4io to indicate type of restart", + "min": 0, + "max": 2, + "values": [ + { + "value": 0, + "description": "Data survives resets" + }, + { + "value": 1, + "description": "Data survives in-flight resets only" + }, + { + "value": 2, + "description": "Data does not survive reset" + } + ] }, { - "name": "TC_A0_X1_0", - "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "name": "TEST_1", + "type": "Int32", + "default": 2, + "group": "Testing", + "shortDesc": "TEST_1" }, { - "name": "TC_A0_X1_1", - "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "name": "TEST_2", + "type": "Int32", + "default": 4, + "group": "Testing", + "shortDesc": "TEST_2" }, { - "name": "TC_A0_X1_2", + "name": "TEST_3", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 5.0, + "group": "Testing", + "shortDesc": "TEST_3" }, { - "name": "TC_A0_X2_0", + "name": "TEST_D", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.01, + "group": "Testing", + "shortDesc": "TEST_D" }, { - "name": "TC_A0_X2_1", + "name": "TEST_DEV", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 2.0, + "group": "Testing", + "shortDesc": "TEST_DEV" }, { - "name": "TC_A0_X2_2", + "name": "TEST_D_LP", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 10.0, + "group": "Testing", + "shortDesc": "TEST_D_LP" }, { - "name": "TC_A0_X3_0", + "name": "TEST_HP", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 10.0, + "group": "Testing", + "shortDesc": "TEST_HP" }, { - "name": "TC_A0_X3_1", + "name": "TEST_I", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.1, + "group": "Testing", + "shortDesc": "TEST_I" }, { - "name": "TC_A0_X3_2", + "name": "TEST_I_MAX", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "TC_A1_ID", - "type": "Int32", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "ID of Accelerometer that the calibration is for", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "default": 1.0, + "group": "Testing", + "shortDesc": "TEST_I_MAX" }, { - "name": "TC_A1_TMAX", + "name": "TEST_LP", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer calibration maximum temperature", - "default": 100, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 10.0, + "group": "Testing", + "shortDesc": "TEST_LP" }, { - "name": "TC_A1_TMIN", + "name": "TEST_MAX", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer calibration minimum temperature", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 1.0, + "group": "Testing", + "shortDesc": "TEST_MAX" }, { - "name": "TC_A1_TREF", + "name": "TEST_MEAN", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer calibration reference temperature", - "default": 25, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 1.0, + "group": "Testing", + "shortDesc": "TEST_MEAN" }, { - "name": "TC_A1_X0_0", + "name": "TEST_MIN", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": -1.0, + "group": "Testing", + "shortDesc": "TEST_MIN" }, { - "name": "TC_A1_X0_1", + "name": "TEST_P", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.2, + "group": "Testing", + "shortDesc": "TEST_P" }, { - "name": "TC_A1_X0_2", - "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "name": "TEST_PARAMS", + "type": "Int32", + "default": 12345678, + "group": "Testing", + "shortDesc": "TEST_PARAMS" }, { - "name": "TC_A1_X1_0", - "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "name": "TEST_RC2_X", + "type": "Int32", + "default": 16, + "group": "Testing", + "shortDesc": "TEST_RC2_X" }, { - "name": "TC_A1_X1_1", - "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "name": "TEST_RC_X", + "type": "Int32", + "default": 8, + "group": "Testing", + "shortDesc": "TEST_RC_X" }, { - "name": "TC_A1_X1_2", + "name": "TEST_TRIM", "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.5, + "group": "Testing", + "shortDesc": "TEST_TRIM" }, { - "name": "TC_A1_X2_0", - "type": "Float", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - X axis", + "name": "TC_A0_ID", + "type": "Int32", "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "TC_A1_X2_1", - "type": "Float", "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "ID of Accelerometer that the calibration is for" }, { - "name": "TC_A1_X2_2", + "name": "TC_A0_TMAX", "type": "Float", + "default": 100.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer calibration maximum temperature" }, { - "name": "TC_A1_X3_0", + "name": "TC_A0_TMIN", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer calibration minimum temperature" }, { - "name": "TC_A1_X3_1", + "name": "TC_A0_TREF", "type": "Float", + "default": 25.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer calibration reference temperature" }, { - "name": "TC_A1_X3_2", + "name": "TC_A0_X0_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "TC_A2_ID", - "type": "Int32", - "group": "Thermal Compensation", - "category": "System", - "shortDesc": "ID of Accelerometer that the calibration is for", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "category": "System", + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - X axis" }, { - "name": "TC_A2_TMAX", + "name": "TC_A0_X0_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer calibration maximum temperature", - "default": 100, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Y axis" }, { - "name": "TC_A2_TMIN", + "name": "TC_A0_X0_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer calibration minimum temperature", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Z axis" }, { - "name": "TC_A2_TREF", + "name": "TC_A0_X1_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer calibration reference temperature", - "default": 25, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - X axis" }, { - "name": "TC_A2_X0_0", + "name": "TC_A0_X1_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Y axis" }, { - "name": "TC_A2_X0_1", + "name": "TC_A0_X1_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Z axis" }, { - "name": "TC_A2_X0_2", + "name": "TC_A0_X2_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - X axis" }, { - "name": "TC_A2_X1_0", + "name": "TC_A0_X2_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Y axis" }, { - "name": "TC_A2_X1_1", + "name": "TC_A0_X2_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Z axis" }, { - "name": "TC_A2_X1_2", + "name": "TC_A0_X3_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - X axis" }, { - "name": "TC_A2_X2_0", + "name": "TC_A0_X3_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Y axis" }, { - "name": "TC_A2_X2_1", + "name": "TC_A0_X3_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Y axis", + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Z axis" + }, + { + "name": "TC_A1_ID", + "type": "Int32", "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "ID of Accelerometer that the calibration is for" }, { - "name": "TC_A2_X2_2", + "name": "TC_A1_TMAX", "type": "Float", + "default": 100.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer calibration maximum temperature" }, { - "name": "TC_A2_X3_0", + "name": "TC_A1_TMIN", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer calibration minimum temperature" }, { - "name": "TC_A2_X3_1", + "name": "TC_A1_TREF", "type": "Float", + "default": 25.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer calibration reference temperature" }, { - "name": "TC_A2_X3_2", + "name": "TC_A1_X0_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - X axis" }, { - "name": "TC_A_ENABLE", - "type": "Int32", + "name": "TC_A1_X0_1", + "type": "Float", + "default": 0.0, "group": "Thermal Compensation", - "category": "Standard", - "shortDesc": "Thermal compensation for accelerometer sensors", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "category": "System", + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Y axis" }, { - "name": "TC_B0_ID", - "type": "Int32", + "name": "TC_A1_X0_2", + "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "ID of Barometer that the calibration is for", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Z axis" }, { - "name": "TC_B0_TMAX", + "name": "TC_A1_X1_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer calibration maximum temperature", - "default": 75, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - X axis" }, { - "name": "TC_B0_TMIN", + "name": "TC_A1_X1_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer calibration minimum temperature", - "default": 5, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Y axis" }, { - "name": "TC_B0_TREF", + "name": "TC_A1_X1_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer calibration reference temperature", - "default": 40, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Z axis" }, { - "name": "TC_B0_X0", + "name": "TC_A1_X2_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^0 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - X axis" }, { - "name": "TC_B0_X1", + "name": "TC_A1_X2_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^1 polynomial coefficients", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Y axis" }, { - "name": "TC_B0_X2", + "name": "TC_A1_X2_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^2 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Z axis" }, { - "name": "TC_B0_X3", + "name": "TC_A1_X3_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^3 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - X axis" }, { - "name": "TC_B0_X4", + "name": "TC_A1_X3_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^4 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Y axis" }, { - "name": "TC_B0_X5", + "name": "TC_A1_X3_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^5 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Z axis" }, { - "name": "TC_B1_ID", + "name": "TC_A2_ID", "type": "Int32", + "default": 0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "ID of Barometer that the calibration is for", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "shortDesc": "ID of Accelerometer that the calibration is for" }, { - "name": "TC_B1_TMAX", + "name": "TC_A2_TMAX", "type": "Float", + "default": 100.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer calibration maximum temperature", - "default": 75, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer calibration maximum temperature" }, { - "name": "TC_B1_TMIN", + "name": "TC_A2_TMIN", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer calibration minimum temperature", - "default": 5, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer calibration minimum temperature" }, { - "name": "TC_B1_TREF", + "name": "TC_A2_TREF", "type": "Float", + "default": 25.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer calibration reference temperature", - "default": 40, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer calibration reference temperature" }, { - "name": "TC_B1_X0", + "name": "TC_A2_X0_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^0 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - X axis" }, { - "name": "TC_B1_X1", + "name": "TC_A2_X0_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^1 polynomial coefficients", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Y axis" }, { - "name": "TC_B1_X2", + "name": "TC_A2_X0_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^2 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Z axis" }, { - "name": "TC_B1_X3", + "name": "TC_A2_X1_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^3 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - X axis" }, { - "name": "TC_B1_X4", + "name": "TC_A2_X1_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^4 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Y axis" }, { - "name": "TC_B1_X5", + "name": "TC_A2_X1_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^5 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Z axis" }, { - "name": "TC_B2_ID", - "type": "Int32", + "name": "TC_A2_X2_0", + "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "ID of Barometer that the calibration is for", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - X axis" }, { - "name": "TC_B2_TMAX", + "name": "TC_A2_X2_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer calibration maximum temperature", - "default": 75, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Y axis" }, { - "name": "TC_B2_TMIN", + "name": "TC_A2_X2_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer calibration minimum temperature", - "default": 5, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Z axis" }, { - "name": "TC_B2_TREF", + "name": "TC_A2_X3_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer calibration reference temperature", - "default": 40, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - X axis" }, { - "name": "TC_B2_X0", + "name": "TC_A2_X3_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^0 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Y axis" }, { - "name": "TC_B2_X1", + "name": "TC_A2_X3_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^1 polynomial coefficients", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Z axis" }, { - "name": "TC_B2_X2", - "type": "Float", + "name": "TC_A3_ID", + "type": "Int32", + "default": 0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^2 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "ID of Accelerometer that the calibration is for" }, { - "name": "TC_B2_X3", + "name": "TC_A3_TMAX", "type": "Float", + "default": 100.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^3 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer calibration maximum temperature" }, { - "name": "TC_B2_X4", + "name": "TC_A3_TMIN", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^4 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer calibration minimum temperature" }, { - "name": "TC_B2_X5", + "name": "TC_A3_TREF", "type": "Float", + "default": 25.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Barometer offset temperature ^5 polynomial coefficient", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "TC_B_ENABLE", - "type": "Int32", - "group": "Thermal Compensation", - "category": "Standard", - "shortDesc": "Thermal compensation for barometric pressure sensors", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "shortDesc": "Accelerometer calibration reference temperature" }, { - "name": "TC_G0_ID", - "type": "Int32", + "name": "TC_A3_X0_0", + "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "ID of Gyro that the calibration is for", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - X axis" }, { - "name": "TC_G0_TMAX", + "name": "TC_A3_X0_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro calibration maximum temperature", - "default": 100, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Y axis" }, { - "name": "TC_G0_TMIN", + "name": "TC_A3_X0_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro calibration minimum temperature", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^0 polynomial coefficient - Z axis" }, { - "name": "TC_G0_TREF", + "name": "TC_A3_X1_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro calibration reference temperature", - "default": 25, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - X axis" }, { - "name": "TC_G0_X0_0", + "name": "TC_A3_X1_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Y axis" }, { - "name": "TC_G0_X0_1", + "name": "TC_A3_X1_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^1 polynomial coefficient - Z axis" }, { - "name": "TC_G0_X0_2", + "name": "TC_A3_X2_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - X axis" }, { - "name": "TC_G0_X1_0", + "name": "TC_A3_X2_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Y axis" }, { - "name": "TC_G0_X1_1", + "name": "TC_A3_X2_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^2 polynomial coefficient - Z axis" }, { - "name": "TC_G0_X1_2", + "name": "TC_A3_X3_0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - X axis" }, { - "name": "TC_G0_X2_0", + "name": "TC_A3_X3_1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Y axis" }, { - "name": "TC_G0_X2_1", + "name": "TC_A3_X3_2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Accelerometer offset temperature ^3 polynomial coefficient - Z axis" }, { - "name": "TC_G0_X2_2", - "type": "Float", + "name": "TC_A_ENABLE", + "type": "Int32", + "default": 0, "group": "Thermal Compensation", - "category": "System", - "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Z axis", + "shortDesc": "Thermal compensation for accelerometer sensors", + "rebootRequired": true + }, + { + "name": "TC_B0_ID", + "type": "Int32", "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "ID of Barometer that the calibration is for" }, { - "name": "TC_G0_X3_0", + "name": "TC_B0_TMAX", "type": "Float", + "default": 75.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration maximum temperature" }, { - "name": "TC_G0_X3_1", + "name": "TC_B0_TMIN", "type": "Float", + "default": 5.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration minimum temperature" }, { - "name": "TC_G0_X3_2", + "name": "TC_B0_TREF", "type": "Float", + "default": 40.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration reference temperature" }, { - "name": "TC_G1_ID", - "type": "Int32", + "name": "TC_B0_X0", + "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "ID of Gyro that the calibration is for", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "shortDesc": "Barometer offset temperature ^0 polynomial coefficient" }, { - "name": "TC_G1_TMAX", + "name": "TC_B0_X1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro calibration maximum temperature", - "default": 100, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^1 polynomial coefficients" }, { - "name": "TC_G1_TMIN", + "name": "TC_B0_X2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro calibration minimum temperature", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^2 polynomial coefficient" }, { - "name": "TC_G1_TREF", + "name": "TC_B0_X3", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro calibration reference temperature", - "default": 25, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^3 polynomial coefficient" }, { - "name": "TC_G1_X0_0", + "name": "TC_B0_X4", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^4 polynomial coefficient" }, { - "name": "TC_G1_X0_1", + "name": "TC_B0_X5", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^5 polynomial coefficient" }, { - "name": "TC_G1_X0_2", - "type": "Float", + "name": "TC_B1_ID", + "type": "Int32", + "default": 0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "ID of Barometer that the calibration is for" }, { - "name": "TC_G1_X1_0", + "name": "TC_B1_TMAX", "type": "Float", + "default": 75.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration maximum temperature" }, { - "name": "TC_G1_X1_1", + "name": "TC_B1_TMIN", "type": "Float", + "default": 5.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration minimum temperature" }, { - "name": "TC_G1_X1_2", + "name": "TC_B1_TREF", "type": "Float", + "default": 40.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration reference temperature" }, { - "name": "TC_G1_X2_0", + "name": "TC_B1_X0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^0 polynomial coefficient" }, { - "name": "TC_G1_X2_1", + "name": "TC_B1_X1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^1 polynomial coefficients" }, { - "name": "TC_G1_X2_2", + "name": "TC_B1_X2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^2 polynomial coefficient" }, { - "name": "TC_G1_X3_0", + "name": "TC_B1_X3", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^3 polynomial coefficient" }, { - "name": "TC_G1_X3_1", + "name": "TC_B1_X4", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^4 polynomial coefficient" }, { - "name": "TC_G1_X3_2", + "name": "TC_B1_X5", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^5 polynomial coefficient" }, { - "name": "TC_G2_ID", + "name": "TC_B2_ID", "type": "Int32", + "default": 0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "ID of Gyro that the calibration is for", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "shortDesc": "ID of Barometer that the calibration is for" }, { - "name": "TC_G2_TMAX", + "name": "TC_B2_TMAX", "type": "Float", + "default": 75.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro calibration maximum temperature", - "default": 100, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration maximum temperature" }, { - "name": "TC_G2_TMIN", + "name": "TC_B2_TMIN", "type": "Float", + "default": 5.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro calibration minimum temperature", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration minimum temperature" }, { - "name": "TC_G2_TREF", + "name": "TC_B2_TREF", "type": "Float", + "default": 40.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro calibration reference temperature", - "default": 25, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration reference temperature" }, { - "name": "TC_G2_X0_0", + "name": "TC_B2_X0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^0 polynomial coefficient" }, { - "name": "TC_G2_X0_1", + "name": "TC_B2_X1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^1 polynomial coefficients" }, { - "name": "TC_G2_X0_2", + "name": "TC_B2_X2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^2 polynomial coefficient" }, { - "name": "TC_G2_X1_0", + "name": "TC_B2_X3", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^3 polynomial coefficient" }, { - "name": "TC_G2_X1_1", + "name": "TC_B2_X4", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^4 polynomial coefficient" }, { - "name": "TC_G2_X1_2", + "name": "TC_B2_X5", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Z axis", + "shortDesc": "Barometer offset temperature ^5 polynomial coefficient" + }, + { + "name": "TC_B3_ID", + "type": "Int32", "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "ID of Barometer that the calibration is for" }, { - "name": "TC_G2_X2_0", + "name": "TC_B3_TMAX", "type": "Float", + "default": 75.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration maximum temperature" }, { - "name": "TC_G2_X2_1", + "name": "TC_B3_TMIN", "type": "Float", + "default": 5.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration minimum temperature" }, { - "name": "TC_G2_X2_2", + "name": "TC_B3_TREF", "type": "Float", + "default": 40.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer calibration reference temperature" }, { - "name": "TC_G2_X3_0", + "name": "TC_B3_X0", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - X axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^0 polynomial coefficient" }, { - "name": "TC_G2_X3_1", + "name": "TC_B3_X1", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Y axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^1 polynomial coefficients" }, { - "name": "TC_G2_X3_2", + "name": "TC_B3_X2", "type": "Float", + "default": 0.0, "group": "Thermal Compensation", "category": "System", - "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Z axis", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "shortDesc": "Barometer offset temperature ^2 polynomial coefficient" }, { - "name": "TC_G_ENABLE", - "type": "Int32", + "name": "TC_B3_X3", + "type": "Float", + "default": 0.0, "group": "Thermal Compensation", - "category": "Standard", - "shortDesc": "Thermal compensation for rate gyro sensors", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "category": "System", + "shortDesc": "Barometer offset temperature ^3 polynomial coefficient" }, { - "name": "TEL_BST_EN", - "type": "Int32", - "group": "Telemetry", - "category": "Standard", - "shortDesc": "Blacksheep telemetry Enable", - "longDesc": "If true, the FMU will try to connect to Blacksheep telemetry on start up", - "default": 0, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "TC_B3_X4", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Barometer offset temperature ^4 polynomial coefficient" }, { - "name": "TEL_FRSKY_CONFIG", - "type": "Int32", - "group": "Telemetry", - "category": "Standard", - "shortDesc": "Serial Configuration for FrSky Telemetry", - "longDesc": "Configure on which serial port to run FrSky Telemetry.", - "default": 0, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 6, - "description": "UART 6" - }, - { - "value": 101, - "description": "TELEM 1" - }, - { - "value": 102, - "description": "TELEM 2" - }, - { - "value": 103, - "description": "TELEM 3" - }, - { - "value": 104, - "description": "TELEM/SERIAL 4" - }, - { - "value": 201, - "description": "GPS 1" - }, - { - "value": 202, - "description": "GPS 2" - }, - { - "value": 203, - "description": "GPS 3" - }, - { - "value": 300, - "description": "Radio Controller" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "TC_B3_X5", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Barometer offset temperature ^5 polynomial coefficient" }, { - "name": "TEL_HOTT_CONFIG", + "name": "TC_B_ENABLE", "type": "Int32", - "group": "Telemetry", - "category": "Standard", - "shortDesc": "Serial Configuration for HoTT Telemetry", - "longDesc": "Configure on which serial port to run HoTT Telemetry.", "default": 0, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 6, - "description": "UART 6" - }, - { - "value": 101, - "description": "TELEM 1" - }, - { - "value": 102, - "description": "TELEM 2" - }, - { - "value": 103, - "description": "TELEM 3" - }, - { - "value": 104, - "description": "TELEM/SERIAL 4" - }, - { - "value": 201, - "description": "GPS 1" - }, - { - "value": 202, - "description": "GPS 2" - }, - { - "value": 203, - "description": "GPS 3" - }, - { - "value": 300, - "description": "Radio Controller" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "TEST_1", - "type": "Int32", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_1", - "default": 2, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "group": "Thermal Compensation", + "shortDesc": "Thermal compensation for barometric pressure sensors", + "rebootRequired": true }, { - "name": "TEST_2", + "name": "TC_G0_ID", "type": "Int32", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_2", - "default": 4, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 - }, - { - "name": "TEST_3", - "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_3", - "default": 5, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 - }, - { - "name": "TEST_D", - "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_D", - "default": 0.01, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "ID of Gyro that the calibration is for" }, { - "name": "TEST_DEV", + "name": "TC_G0_TMAX", "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_DEV", - "default": 2, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 100.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration maximum temperature" }, { - "name": "TEST_D_LP", + "name": "TC_G0_TMIN", "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_D_LP", - "default": 10, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration minimum temperature" }, { - "name": "TEST_HP", + "name": "TC_G0_TREF", "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_HP", - "default": 10, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 25.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration reference temperature" }, { - "name": "TEST_I", + "name": "TC_G0_X0_0", "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_I", - "default": 0.1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - X axis" }, { - "name": "TEST_I_MAX", + "name": "TC_G0_X0_1", "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_I_MAX", - "default": 1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Y axis" }, { - "name": "TEST_LP", + "name": "TC_G0_X0_2", "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_LP", - "default": 10, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Z axis" }, { - "name": "TEST_MAX", + "name": "TC_G0_X1_0", "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_MAX", - "default": 1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - X axis" }, { - "name": "TEST_MEAN", + "name": "TC_G0_X1_1", "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_MEAN", - "default": 1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Y axis" }, { - "name": "TEST_MIN", + "name": "TC_G0_X1_2", "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_MIN", - "default": -1, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Z axis" }, { - "name": "TEST_P", + "name": "TC_G0_X2_0", "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_P", - "default": 0.2, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - X axis" }, { - "name": "TEST_PARAMS", - "type": "Int32", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_PARAMS", - "default": 1.23457e+07, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "TC_G0_X2_1", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Y axis" }, { - "name": "TEST_RC2_X", - "type": "Int32", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_RC2_X", - "default": 16, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "TC_G0_X2_2", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Z axis" }, { - "name": "TEST_RC_X", - "type": "Int32", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_RC_X", - "default": 8, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "TC_G0_X3_0", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - X axis" }, { - "name": "TEST_TRIM", + "name": "TC_G0_X3_1", "type": "Float", - "group": "Testing", - "category": "Standard", - "shortDesc": "TEST_TRIM", - "default": 0.5, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Y axis" }, { - "name": "THR_MDL_FAC", + "name": "TC_G0_X3_2", "type": "Float", - "group": "PWM Outputs", - "category": "Standard", - "shortDesc": "Thrust to motor control signal model parameter", - "longDesc": "Parameter used to model the nonlinear relationship between motor control signal (e.g. PWM) and static thrust. The model is: rel_thrust = factor * rel_signal^2 + (1-factor) * rel_signal, where rel_thrust is the normalized thrust between 0 and 1, and rel_signal is the relative motor control signal between 0 and 1.", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Z axis" + }, + { + "name": "TC_G1_ID", + "type": "Int32", "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "ID of Gyro that the calibration is for" }, { - "name": "TRIG_ACT_TIME", + "name": "TC_G1_TMAX", "type": "Float", - "group": "Camera trigger", - "category": "Standard", - "shortDesc": "Camera trigger activation time", - "longDesc": "This parameter sets the time the trigger needs to pulled high or low.", - "units": "ms", - "default": 40, - "rebootRequired": true, - "decimalPlaces": 1, - "min": 0.1, - "max": 3000 + "default": 100.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration maximum temperature" }, { - "name": "TRIG_DISTANCE", + "name": "TC_G1_TMIN", "type": "Float", - "group": "Camera trigger", - "category": "Standard", - "shortDesc": "Camera trigger distance", - "longDesc": "Sets the distance at which to trigger the camera.", - "units": "m", - "default": 25, - "increment": 1, - "rebootRequired": true, - "decimalPlaces": 1, - "min": 0, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration minimum temperature" }, { - "name": "TRIG_INTERFACE", - "type": "Int32", - "group": "Camera trigger", - "category": "Standard", - "shortDesc": "Camera trigger Interface", - "longDesc": "Selects the trigger interface", - "default": 4, - "values": [ - { - "value": 1, - "description": "GPIO" - }, - { - "value": 2, - "description": "Seagull MAP2 (over PWM)" - }, - { - "value": 3, - "description": "MAVLink (forward via MAV_CMD_IMAGE_START_CAPTURE)" - }, - { - "value": 4, - "description": "Generic PWM (IR trigger, servo)" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "TC_G1_TREF", + "type": "Float", + "default": 25.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration reference temperature" }, { - "name": "TRIG_INTERVAL", + "name": "TC_G1_X0_0", "type": "Float", - "group": "Camera trigger", - "category": "Standard", - "shortDesc": "Camera trigger interval", - "longDesc": "This parameter sets the time between two consecutive trigger events", - "units": "ms", - "default": 40, - "rebootRequired": true, - "decimalPlaces": 1, - "min": 4, - "max": 10000 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - X axis" }, { - "name": "TRIG_MIN_INTERVA", + "name": "TC_G1_X0_1", "type": "Float", - "group": "Camera trigger", - "category": "Standard", - "shortDesc": "Minimum camera trigger interval", - "longDesc": "This parameter sets the minimum time between two consecutive trigger events the specific camera setup is supporting.", - "units": "ms", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 1, - "min": 1, - "max": 10000 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Y axis" }, { - "name": "TRIG_MODE", - "type": "Int32", - "group": "Camera trigger", - "category": "Standard", - "shortDesc": "Camera trigger mode", - "default": 0, - "values": [ - { - "value": 0, - "description": "Disable" - }, - { - "value": 1, - "description": "Time based, on command" - }, - { - "value": 2, - "description": "Time based, always on" - }, - { - "value": 3, - "description": "Distance based, always on" - }, - { - "value": 4, - "description": "Distance based, on command (Survey mode)" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 4 + "name": "TC_G1_X0_2", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Z axis" }, { - "name": "TRIG_PINS", - "type": "Int32", - "group": "Camera trigger", - "category": "Standard", - "shortDesc": "Camera trigger pin", - "longDesc": "Selects which FMU pin is used (range: AUX1-AUX6 on Pixhawk controllers with an I/O board, MAIN1-MAIN6 on controllers without an I/O board. The PWM interface takes two pins per camera, while relay triggers on every pin individually. Example: Value 56 would trigger on pins 5 and 6. For GPIO mode Pin 6 will be triggered followed by 5. With a value of 65 pin 5 will be triggered followed by 6. Pins may be non contiguous. I.E. 16 or 61. In GPIO mode the delay pin to pin is < .2 uS.", - "default": 56, - "rebootRequired": true, - "decimalPlaces": 0, - "min": 1, - "max": 123456 + "name": "TC_G1_X1_0", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - X axis" }, - { - "name": "TRIG_POLARITY", - "type": "Int32", - "group": "Camera trigger", - "category": "Standard", - "shortDesc": "Camera trigger polarity", - "longDesc": "This parameter sets the polarity of the trigger (0 = active low, 1 = active high )", - "default": 0, - "values": [ - { - "value": 0, - "description": "Active low" - }, - { - "value": 1, - "description": "Active high" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 1 + { + "name": "TC_G1_X1_1", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Y axis" }, { - "name": "TRIG_PWM_NEUTRAL", - "type": "Int32", - "group": "Camera trigger", - "category": "Standard", - "shortDesc": "PWM neutral output on trigger pin", - "units": "us", - "default": 1500, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 1000, - "max": 2000 + "name": "TC_G1_X1_2", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Z axis" }, { - "name": "TRIG_PWM_SHOOT", - "type": "Int32", - "group": "Camera trigger", - "category": "Standard", - "shortDesc": "PWM output to trigger shot", - "units": "us", - "default": 1900, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 1000, - "max": 2000 + "name": "TC_G1_X2_0", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - X axis" }, { - "name": "TRIM_PITCH", + "name": "TC_G1_X2_1", "type": "Float", - "group": "Radio Calibration", - "category": "Standard", - "shortDesc": "Pitch trim", - "longDesc": "The trim value is the actuator control value the system needs for straight and level flight. It can be calibrated by flying manually straight and level using the RC trims and copying them using the GCS.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, - "min": -0.25, - "max": 0.25 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Y axis" }, { - "name": "TRIM_ROLL", + "name": "TC_G1_X2_2", "type": "Float", - "group": "Radio Calibration", - "category": "Standard", - "shortDesc": "Roll trim", - "longDesc": "The trim value is the actuator control value the system needs for straight and level flight. It can be calibrated by flying manually straight and level using the RC trims and copying them using the GCS.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, - "min": -0.25, - "max": 0.25 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Z axis" }, { - "name": "TRIM_YAW", + "name": "TC_G1_X3_0", "type": "Float", - "group": "Radio Calibration", - "category": "Standard", - "shortDesc": "Yaw trim", - "longDesc": "The trim value is the actuator control value the system needs for straight and level flight. It can be calibrated by flying manually straight and level using the RC trims and copying them using the GCS.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, - "min": -0.25, - "max": 0.25 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - X axis" }, { - "name": "UAVCAN_BITRATE", - "type": "Int32", - "group": "UAVCAN", - "category": "Standard", - "shortDesc": "UAVCAN CAN bus bitrate", - "units": "bit/s", - "default": 1e+06, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 20000, - "max": 1e+06 + "name": "TC_G1_X3_1", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Y axis" + }, + { + "name": "TC_G1_X3_2", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Z axis" }, { - "name": "UAVCAN_ENABLE", + "name": "TC_G2_ID", "type": "Int32", - "group": "UAVCAN", - "category": "Standard", - "shortDesc": "UAVCAN mode", - "longDesc": "0 - UAVCAN disabled. 1 - Enables support for UAVCAN sensors without dynamic node ID allocation and firmware update. 2 - Enables support for UAVCAN sensors with dynamic node ID allocation and firmware update. 3 - Enables support for UAVCAN sensors and actuators with dynamic node ID allocation and firmware update. Also sets the motor control outputs to UAVCAN.", "default": 0, - "values": [ - { - "value": 0, - "description": "Disabled" - }, - { - "value": 1, - "description": "Sensors Manual Config" - }, - { - "value": 2, - "description": "Sensors Automatic Config" - }, - { - "value": 3, - "description": "Sensors and Actuators (ESCs) Automatic Config" - } - ], - "rebootRequired": true, - "decimalPlaces": 3, - "min": 0, - "max": 3 + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "ID of Gyro that the calibration is for" }, { - "name": "UAVCAN_ESC_IDLT", - "type": "Int32", - "group": "UAVCAN", - "category": "Standard", - "shortDesc": "UAVCAN ESC will spin at idle throttle when armed, even if the mixer outputs zero setpoints", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "TC_G2_TMAX", + "type": "Float", + "default": 100.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration maximum temperature" }, { - "name": "UAVCAN_NODE_ID", - "type": "Int32", - "group": "UAVCAN", - "category": "Standard", - "shortDesc": "UAVCAN Node ID", - "longDesc": "Read the specs at http://uavcan.org to learn more about Node ID.", - "default": 1, - "rebootRequired": true, - "decimalPlaces": 3, - "min": 1, - "max": 125 + "name": "TC_G2_TMIN", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration minimum temperature" }, { - "name": "UUV_DIRCT_PITCH", + "name": "TC_G2_TREF", "type": "Float", - "group": "UUV Attitude Control", - "category": "Standard", - "shortDesc": "Direct pitch input", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 25.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration reference temperature" }, { - "name": "UUV_DIRCT_ROLL", + "name": "TC_G2_X0_0", "type": "Float", - "group": "UUV Attitude Control", - "category": "Standard", - "shortDesc": "Direct roll input", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - X axis" }, { - "name": "UUV_DIRCT_THRUST", + "name": "TC_G2_X0_1", "type": "Float", - "group": "UUV Attitude Control", - "category": "Standard", - "shortDesc": "Direct thrust input", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Y axis" }, { - "name": "UUV_DIRCT_YAW", + "name": "TC_G2_X0_2", "type": "Float", - "group": "UUV Attitude Control", - "category": "Standard", - "shortDesc": "Direct yaw input", - "default": 0, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Z axis" }, { - "name": "UUV_INPUT_MODE", - "type": "Int32", - "group": "UUV Attitude Control", - "category": "Standard", - "shortDesc": "Select Input Mode", - "default": 0, - "values": [ - { - "value": 0, - "description": "use Attitude Setpoints" - }, - { - "value": 1, - "description": "Direct Feedthrough" - } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "TC_G2_X1_0", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - X axis" }, { - "name": "UUV_PITCH_D", + "name": "TC_G2_X1_1", "type": "Float", - "group": "UUV Attitude Control", - "category": "Standard", - "shortDesc": "Pitch differential gain", - "default": 2, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Y axis" }, { - "name": "UUV_PITCH_P", + "name": "TC_G2_X1_2", "type": "Float", - "group": "UUV Attitude Control", - "category": "Standard", - "shortDesc": "Pitch proportional gain", - "default": 4, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Z axis" }, { - "name": "UUV_ROLL_D", + "name": "TC_G2_X2_0", "type": "Float", - "group": "UUV Attitude Control", - "category": "Standard", - "shortDesc": "Roll differential gain", - "default": 1.5, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - X axis" }, { - "name": "UUV_ROLL_P", + "name": "TC_G2_X2_1", "type": "Float", - "group": "UUV Attitude Control", - "category": "Standard", - "shortDesc": "Roll proportional gain", - "default": 4, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Y axis" }, { - "name": "UUV_YAW_D", + "name": "TC_G2_X2_2", "type": "Float", - "group": "UUV Attitude Control", - "category": "Standard", - "shortDesc": "Yaw differential gain", - "default": 2, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Z axis" }, { - "name": "UUV_YAW_P", + "name": "TC_G2_X3_0", "type": "Float", - "group": "UUV Attitude Control", - "category": "Standard", - "shortDesc": "Yawh proportional gain", - "default": 4, - "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - X axis" }, { - "name": "VT_ARSP_BLEND", + "name": "TC_G2_X3_1", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Transition blending airspeed", - "longDesc": "Airspeed at which we can start blending both fw and mc controls. Set to 0 to disable.", - "units": "m/s", - "default": 8, - "increment": 1, - "decimalPlaces": 2, - "min": 0, - "max": 30 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Y axis" }, { - "name": "VT_ARSP_TRANS", + "name": "TC_G2_X3_2", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Transition airspeed", - "longDesc": "Airspeed at which we can switch to fw mode", - "units": "m/s", - "default": 10, - "increment": 1, - "decimalPlaces": 2, - "min": 0, - "max": 30 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Z axis" }, { - "name": "VT_B_DEC_FF", + "name": "TC_G3_ID", + "type": "Int32", + "default": 0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "ID of Gyro that the calibration is for" + }, + { + "name": "TC_G3_TMAX", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Backtransition deceleration setpoint to pitch feedforward gain", - "units": "rad*s*s/m", - "default": 0.12, - "increment": 0.05, - "decimalPlaces": 1, - "min": 0, - "max": 0.2 + "default": 100.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration maximum temperature" }, { - "name": "VT_B_DEC_I", + "name": "TC_G3_TMIN", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Backtransition deceleration setpoint to pitch I gain", - "units": "rad*s/m", - "default": 0.1, - "increment": 0.05, - "decimalPlaces": 1, - "min": 0, - "max": 0.3 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration minimum temperature" + }, + { + "name": "TC_G3_TREF", + "type": "Float", + "default": 25.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro calibration reference temperature" + }, + { + "name": "TC_G3_X0_0", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - X axis" }, { - "name": "VT_B_DEC_MSS", + "name": "TC_G3_X0_1", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Approximate deceleration during back transition", - "longDesc": "The approximate deceleration during a back transition in m/s/s Used to calculate back transition distance in mission mode. A lower value will make the VTOL transition further from the destination waypoint. For standard vtol and tiltrotors a controller is used to track this value during the transition.", - "units": "m/s/s", - "default": 2, - "increment": 0.1, - "decimalPlaces": 2, - "min": 0.5, - "max": 10 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Y axis" }, { - "name": "VT_B_REV_DEL", + "name": "TC_G3_X0_2", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Delay in seconds before applying back transition throttle Set this to a value greater than 0 to give the motor time to spin down", - "longDesc": "unit s", - "default": 0, - "increment": 1, - "decimalPlaces": 2, - "min": 0, - "max": 10 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^0 polynomial coefficient - Z axis" }, { - "name": "VT_B_REV_OUT", + "name": "TC_G3_X1_0", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Output on airbrakes channel during back transition Used for airbrakes or with ESCs that have reverse thrust enabled on a seperate channel Airbrakes need to be enables for your selected model/mixer", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - X axis" }, { - "name": "VT_B_TRANS_DUR", + "name": "TC_G3_X1_1", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Duration of a back transition", - "longDesc": "Time in seconds used for a back transition", - "units": "s", - "default": 4, - "increment": 1, - "decimalPlaces": 2, - "min": 0, - "max": 20 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Y axis" }, { - "name": "VT_B_TRANS_RAMP", + "name": "TC_G3_X1_2", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Back transition MC motor ramp up time", - "longDesc": "This sets the duration during which the MC motors ramp up to the commanded thrust during the back transition stage.", - "units": "s", - "default": 3, - "decimalPlaces": 3, - "min": 0, - "max": 20 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^1 polynomial coefficient - Z axis" }, { - "name": "VT_B_TRANS_THR", + "name": "TC_G3_X2_0", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Target throttle value for the transition to hover flight. standard vtol: pusher tailsitter, tiltrotor: main throttle", - "longDesc": "Note for standard vtol: For ESCs and mixers that support reverse thrust on low PWM values set this to a negative value to apply active breaking For ESCs that support thrust reversal with a control channel please set VT_B_REV_OUT and set this to a positive value to apply active breaking", - "default": 0, - "increment": 0.01, - "decimalPlaces": 2, - "min": -1, - "max": 1 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - X axis" }, { - "name": "VT_DWN_PITCH_MAX", + "name": "TC_G3_X2_1", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Maximum allowed angle the vehicle is allowed to pitch down to generate forward force when fixed-wing forward actuation is active (seeVT_FW_TRHUST_EN). If demanded down pitch exceeds this limmit, the fixed-wing forward actuators are used instead", - "default": 5, - "decimalPlaces": 3, - "min": 0, - "max": 45 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Y axis" }, { - "name": "VT_ELEV_MC_LOCK", - "type": "Int32", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Lock elevons in multicopter mode", - "longDesc": "If set to 1 the elevons are locked in multicopter mode", - "default": 1, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "TC_G3_X2_2", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^2 polynomial coefficient - Z axis" }, { - "name": "VT_FWD_THRUST_EN", - "type": "Int32", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Enable/disable usage of fixed-wing actuators in hover to generate forward force (instead of pitching down). This technique can be used to avoid the plane having to pitch down in order to move forward. This prevents large, negative lift values being created when facing strong winds. Fixed-wing forward actuators refers to puller/pusher (standard VTOL), or forward-tilt (tiltrotor VTOL). Only active if demaded down pitch is above VT_DWN_PITCH_MAX, and uses VT_FWD_THRUST_SC to get from demanded down pitch to fixed-wing actuation", - "default": 0, - "values": [ - { - "value": 0, - "description": "Disable FW forward actuation in hover." - }, - { - "value": 1, - "description": "Enable FW forward actuation in hover in altitude, position and auto modes (except LANDING)." - }, - { - "value": 2, - "description": "Enable FW forward actuation in hover in altitude, position and auto modes if above MPC_LAND_ALT1." - }, - { - "value": 3, - "description": "Enable FW forward actuation in hover in altitude, position and auto modes if above MPC_LAND_ALT2." - }, - { - "value": 4, - "description": "Enable FW forward actuation in hover in altitude, position and auto modes." - } - ], - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "TC_G3_X3_0", + "type": "Float", + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - X axis" }, { - "name": "VT_FWD_THRUST_SC", + "name": "TC_G3_X3_1", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Fixed-wing actuator thrust scale for hover forward flight", - "longDesc": "Scale applied to the demanded down-pitch to get the fixed-wing forward actuation in hover mode. Only active if demaded down pitch is above VT_DWN_PITCH_MAX. Enabled via VT_FWD_THRUST_EN.", - "default": 0.7, - "decimalPlaces": 3, - "min": 0, - "max": 2 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Y axis" }, { - "name": "VT_FW_ALT_ERR", + "name": "TC_G3_X3_2", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Adaptive QuadChute", - "longDesc": "Maximum negative altitude error for fixed wing flight. If the altitude drops below this value below the altitude setpoint the vehicle will transition back to MC mode and enter failsafe RTL.", - "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 200 + "default": 0.0, + "group": "Thermal Compensation", + "category": "System", + "shortDesc": "Gyro rate offset temperature ^3 polynomial coefficient - Z axis" }, { - "name": "VT_FW_DIFTHR_EN", + "name": "TC_G_ENABLE", "type": "Int32", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Differential thrust in forwards flight", - "longDesc": "Set to 1 to enable differential thrust in fixed-wing flight.", "default": 0, - "decimalPlaces": 0, - "min": 0, - "max": 1 + "group": "Thermal Compensation", + "shortDesc": "Thermal compensation for rate gyro sensors", + "rebootRequired": true }, { - "name": "VT_FW_DIFTHR_SC", + "name": "UUV_DIRCT_PITCH", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Differential thrust scaling factor", - "longDesc": "This factor specifies how the yaw input gets mapped to differential thrust in forwards flight.", - "default": 0.1, - "increment": 0.1, - "decimalPlaces": 2, - "min": 0, - "max": 1 + "default": 0.0, + "group": "UUV Attitude Control", + "shortDesc": "Direct pitch input" }, { - "name": "VT_FW_MIN_ALT", + "name": "UUV_DIRCT_ROLL", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "QuadChute Altitude", - "longDesc": "Minimum altitude for fixed wing flight, when in fixed wing the altitude drops below this altitude the vehicle will transition back to MC mode and enter failsafe RTL", - "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 200 + "default": 0.0, + "group": "UUV Attitude Control", + "shortDesc": "Direct roll input" }, { - "name": "VT_FW_MOT_OFFID", - "type": "Int32", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "The channel number of motors that must be turned off in fixed wing mode", - "default": 0, - "increment": 1, - "decimalPlaces": 0, - "min": 0, - "max": 1.23457e+07 + "name": "UUV_DIRCT_THRUST", + "type": "Float", + "default": 0.0, + "group": "UUV Attitude Control", + "shortDesc": "Direct thrust input" }, { - "name": "VT_FW_PERM_STAB", - "type": "Int32", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Permanent stabilization in fw mode", - "longDesc": "If set to one this parameter will cause permanent attitude stabilization in fw mode. This parameter has been introduced for pure convenience sake.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "UUV_DIRCT_YAW", + "type": "Float", + "default": 0.0, + "group": "UUV Attitude Control", + "shortDesc": "Direct yaw input" }, { - "name": "VT_FW_QC_P", + "name": "UUV_INPUT_MODE", "type": "Int32", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "QuadChute Max Pitch", - "longDesc": "Maximum pitch angle before QuadChute engages Above this the vehicle will transition back to MC mode and enter failsafe RTL", "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 180 + "group": "UUV Attitude Control", + "shortDesc": "Select Input Mode", + "values": [ + { + "value": 0, + "description": "use Attitude Setpoints" + }, + { + "value": 1, + "description": "Direct Feedthrough" + } + ] }, { - "name": "VT_FW_QC_R", - "type": "Int32", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "QuadChute Max Roll", - "longDesc": "Maximum roll angle before QuadChute engages Above this the vehicle will transition back to MC mode and enter failsafe RTL", - "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 180 + "name": "UUV_PITCH_D", + "type": "Float", + "default": 2.0, + "group": "UUV Attitude Control", + "shortDesc": "Pitch differential gain" }, { - "name": "VT_F_TRANS_DUR", + "name": "UUV_PITCH_P", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Duration of a front transition", - "longDesc": "Time in seconds used for a transition", - "units": "s", - "default": 5, - "increment": 1, - "decimalPlaces": 2, - "min": 0, - "max": 20 + "default": 4.0, + "group": "UUV Attitude Control", + "shortDesc": "Pitch proportional gain" }, { - "name": "VT_F_TRANS_THR", + "name": "UUV_ROLL_D", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Target throttle value for the transition to fixed wing flight. standard vtol: pusher tailsitter, tiltrotor: main throttle", - "default": 1, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "default": 1.5, + "group": "UUV Attitude Control", + "shortDesc": "Roll differential gain" }, { - "name": "VT_F_TR_OL_TM", + "name": "UUV_ROLL_P", "type": "Float", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Airspeed less front transition time (open loop)", - "longDesc": "The duration of the front transition when there is no airspeed feedback available.", - "units": "seconds", - "default": 6, - "decimalPlaces": 3, - "min": 1, - "max": 30 + "default": 4.0, + "group": "UUV Attitude Control", + "shortDesc": "Roll proportional gain" }, { - "name": "VT_IDLE_PWM_MC", - "type": "Int32", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Idle speed of VTOL when in multicopter mode", - "units": "us", - "default": 900, - "increment": 1, - "decimalPlaces": 0, - "min": 900, - "max": 2000 + "name": "UUV_YAW_D", + "type": "Float", + "default": 2.0, + "group": "UUV Attitude Control", + "shortDesc": "Yaw differential gain" }, { - "name": "VT_MC_ON_FMU", - "type": "Int32", - "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Enable the usage of AUX outputs for hover motors", - "longDesc": "Set this parameter to true if the vehicle's hover motors are connected to the FMU (AUX) port. Not required for boards that only have a FMU, and no IO. Only applies for standard VTOL and tiltrotor.", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "name": "UUV_YAW_P", + "type": "Float", + "default": 4.0, + "group": "UUV Attitude Control", + "shortDesc": "Yawh proportional gain" }, { - "name": "VT_MOT_ID", - "type": "Int32", + "name": "VT_ARSP_BLEND", + "type": "Float", + "default": 8.0, "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "The channel number of motors which provide lift during hover", - "default": 0, - "increment": 1, - "decimalPlaces": 0, - "min": 0, - "max": 1.23457e+07 + "shortDesc": "Transition blending airspeed", + "longDesc": "Airspeed at which we can start blending both fw and mc controls. Set to 0 to disable.", + "min": 0.0, + "max": 30.0, + "units": "m/s", + "decimalPlaces": 2, + "increment": 1.0 }, { - "name": "VT_PSHER_RMP_DT", + "name": "VT_ARSP_TRANS", "type": "Float", + "default": 10.0, "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Defines the time window during which the pusher throttle will be ramped up linearly to VT_F_TRANS_THR during a transition to fixed wing mode. Zero or negative values will produce an instant throttle rise to VT_F_TRANS_THR", - "default": 3, - "increment": 0.01, + "shortDesc": "Transition airspeed", + "longDesc": "Airspeed at which we can switch to fw mode", + "min": 0.0, + "max": 30.0, + "units": "m/s", "decimalPlaces": 2, - "min": -3.40282e+38, - "max": 20 + "increment": 1.0 }, { - "name": "VT_TILT_FW", + "name": "VT_B_DEC_FF", "type": "Float", + "default": 0.12, "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Position of tilt servo in fw mode", - "default": 1, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "shortDesc": "Backtransition deceleration setpoint to pitch feedforward gain", + "min": 0.0, + "max": 0.2, + "units": "rad s^2/m", + "decimalPlaces": 1, + "increment": 0.05 }, { - "name": "VT_TILT_MC", + "name": "VT_B_DEC_I", "type": "Float", + "default": 0.1, "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Position of tilt servo in mc mode", - "default": 0, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "shortDesc": "Backtransition deceleration setpoint to pitch I gain", + "min": 0.0, + "max": 0.3, + "units": "rad s/m", + "decimalPlaces": 1, + "increment": 0.05 }, { - "name": "VT_TILT_SPINUP", + "name": "VT_B_DEC_MSS", "type": "Float", + "default": 2.0, "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Tilt actuator control value commanded when disarmed and during the first second after arming", - "longDesc": "This specific tilt during spin-up is necessary for some systems whose motors otherwise don't spin-up freely.", - "default": 0, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "shortDesc": "Approximate deceleration during back transition", + "longDesc": "The approximate deceleration during a back transition in m/s/s Used to calculate back transition distance in mission mode. A lower value will make the VTOL transition further from the destination waypoint. For standard vtol and tiltrotors a controller is used to track this value during the transition.", + "min": 0.5, + "max": 10.0, + "units": "m/s^2", + "decimalPlaces": 2, + "increment": 0.1 }, { - "name": "VT_TILT_TRANS", + "name": "VT_B_REV_DEL", "type": "Float", + "default": 0.0, "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Position of tilt servo in transition mode", - "default": 0.3, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "shortDesc": "Delay in seconds before applying back transition throttle\nSet this to a value greater than 0 to give the motor time to spin down", + "longDesc": "unit s", + "min": 0.0, + "max": 10.0, + "decimalPlaces": 2, + "increment": 1.0 }, { - "name": "VT_TRANS_MIN_TM", + "name": "VT_B_REV_OUT", "type": "Float", + "default": 0.0, "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Front transition minimum time", - "longDesc": "Minimum time in seconds for front transition.", - "units": "s", - "default": 2, - "decimalPlaces": 3, - "min": 0, - "max": 20 + "shortDesc": "Output on airbrakes channel during back transition\nUsed for airbrakes or with ESCs that have reverse thrust enabled on a seperate channel\nAirbrakes need to be enables for your selected model/mixer", + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2, + "increment": 0.01 }, { - "name": "VT_TRANS_P2_DUR", + "name": "VT_B_TRANS_DUR", "type": "Float", + "default": 4.0, "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Duration of front transition phase 2", - "longDesc": "Time in seconds it should take for the rotors to rotate forward completely from the point when the plane has picked up enough airspeed and is ready to go into fixed wind mode.", + "shortDesc": "Duration of a back transition", + "longDesc": "Time in seconds used for a back transition", + "min": 0.0, + "max": 20.0, "units": "s", - "default": 0.5, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0.1, - "max": 5 + "decimalPlaces": 2, + "increment": 1.0 }, { - "name": "VT_TRANS_TIMEOUT", + "name": "VT_B_TRANS_RAMP", "type": "Float", + "default": 3.0, "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Front transition timeout", - "longDesc": "Time in seconds after which transition will be cancelled. Disabled if set to 0.", - "units": "s", - "default": 15, - "increment": 1, + "shortDesc": "Back transition MC motor ramp up time", + "longDesc": "This sets the duration during which the MC motors ramp up to the commanded thrust during the back transition stage.", + "min": 0.0, + "max": 20.0, + "units": "s" + }, + { + "name": "VT_B_TRANS_THR", + "type": "Float", + "default": 0.0, + "group": "VTOL Attitude Control", + "shortDesc": "Target throttle value for the transition to hover flight.\nstandard vtol: pusher\ntailsitter, tiltrotor: main throttle", + "longDesc": "Note for standard vtol: For ESCs and mixers that support reverse thrust on low PWM values set this to a negative value to apply active breaking For ESCs that support thrust reversal with a control channel please set VT_B_REV_OUT and set this to a positive value to apply active breaking", + "min": -1.0, + "max": 1.0, "decimalPlaces": 2, - "min": 0, - "max": 30 + "increment": 0.01 }, { - "name": "VT_TYPE", + "name": "VT_DWN_PITCH_MAX", + "type": "Float", + "default": 5.0, + "group": "VTOL Attitude Control", + "shortDesc": "Maximum allowed angle the vehicle is allowed to pitch down to generate forward force\nwhen fixed-wing forward actuation is active (seeVT_FW_TRHUST_EN).\nIf demanded down pitch exceeds this limmit, the fixed-wing forward actuators are used instead", + "min": 0.0, + "max": 45.0 + }, + { + "name": "VT_ELEV_MC_LOCK", "type": "Int32", + "default": 1, "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "VTOL Type (Tailsitter=0, Tiltrotor=1, Standard=2)", + "shortDesc": "Lock elevons in multicopter mode", + "longDesc": "If set to 1 the elevons are locked in multicopter mode" + }, + { + "name": "VT_FWD_THRUST_EN", + "type": "Int32", "default": 0, + "group": "VTOL Attitude Control", + "shortDesc": "Enable/disable usage of fixed-wing actuators in hover to generate forward force (instead of pitching down).\nThis technique can be used to avoid the plane having to pitch down in order to move forward.\nThis prevents large, negative lift values being created when facing strong winds.\nFixed-wing forward actuators refers to puller/pusher (standard VTOL), or forward-tilt (tiltrotor VTOL).\nOnly active if demaded down pitch is above VT_DWN_PITCH_MAX, and uses VT_FWD_THRUST_SC to get from\ndemanded down pitch to fixed-wing actuation", "values": [ { "value": 0, - "description": "Tailsitter" + "description": "Disable FW forward actuation in hover." }, { "value": 1, - "description": "Tiltrotor" + "description": "Enable FW forward actuation in hover in altitude, position and auto modes (except LANDING)." }, { "value": 2, - "description": "Standard" + "description": "Enable FW forward actuation in hover in altitude, position and auto modes if above MPC_LAND_ALT1." + }, + { + "value": 3, + "description": "Enable FW forward actuation in hover in altitude, position and auto modes if above MPC_LAND_ALT2." + }, + { + "value": 4, + "description": "Enable FW forward actuation in hover in altitude, position and auto modes." } - ], - "rebootRequired": true, - "decimalPlaces": 0, - "min": 0, - "max": 2 - }, - { - "name": "WV_EN", - "type": "Int32", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Enable weathervane", - "default": 0, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + ] }, { - "name": "WV_GAIN", + "name": "VT_FWD_THRUST_SC", "type": "Float", + "default": 0.7, "group": "VTOL Attitude Control", - "category": "Standard", - "shortDesc": "Weather-vane roll angle to yawrate", - "longDesc": "The desired gain to convert roll sp into yaw rate sp.", - "units": "1/s", - "default": 1, - "increment": 0.01, - "decimalPlaces": 3, - "min": 0, - "max": 3 - }, - { - "name": "WV_ROLL_MIN", - "type": "Float", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Minimum roll angle setpoint for weathervane controller to demand a yaw-rate", - "units": "deg", - "default": 1, - "decimalPlaces": 3, - "min": 0, - "max": 5 + "shortDesc": "Fixed-wing actuator thrust scale for hover forward flight", + "longDesc": "Scale applied to the demanded down-pitch to get the fixed-wing forward actuation in hover mode. Only active if demaded down pitch is above VT_DWN_PITCH_MAX. Enabled via VT_FWD_THRUST_EN.", + "min": 0.0, + "max": 2.0 }, { - "name": "WV_YRATE_MAX", + "name": "VT_FW_ALT_ERR", "type": "Float", - "group": "Multicopter Position Control", - "category": "Standard", - "shortDesc": "Maximum yawrate the weathervane controller is allowed to demand", - "units": "deg/s", - "default": 90, - "decimalPlaces": 3, - "min": 0, - "max": 120 - }, - { - "name": "ctl_bw", - "type": "Int32", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "default": 75, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "default": 0.0, + "group": "VTOL Attitude Control", + "shortDesc": "Adaptive QuadChute", + "longDesc": "Maximum negative altitude error for fixed wing flight. If the altitude drops below this value below the altitude setpoint the vehicle will transition back to MC mode and enter failsafe RTL.", + "min": 0.0, + "max": 200.0 }, { - "name": "ctl_dir", + "name": "VT_FW_DIFTHR_EN", "type": "Int32", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Reverse direction", - "longDesc": "Motor spin direction as detected during initial enumeration. Use 0 or 1 to reverse direction.", - "default": 1, - "decimalPlaces": 3, + "default": 0, + "group": "VTOL Attitude Control", + "shortDesc": "Differential thrust in forwards flight", + "longDesc": "Set to 1 to enable differential thrust in fixed-wing flight.", "min": 0, - "max": 1 + "max": 1, + "decimalPlaces": 0 }, { - "name": "ctl_gain", + "name": "VT_FW_DIFTHR_SC", "type": "Float", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Speed (RPM) controller gain", - "longDesc": "Speed (RPM) controller gain. Determines controller aggressiveness; units are amp-seconds per radian. Systems with higher rotational inertia (large props) will need gain increased; systems with low rotational inertia (small props) may need gain decreased. Higher values result in faster response, but may result in oscillation and excessive overshoot. Lower values result in a slower, smoother response.", - "units": "amp-seconds per radian", - "default": 1, - "decimalPlaces": 3, - "min": 0, - "max": 1 + "default": 0.1, + "group": "VTOL Attitude Control", + "shortDesc": "Differential thrust scaling factor", + "longDesc": "This factor specifies how the yaw input gets mapped to differential thrust in forwards flight.", + "min": 0.0, + "max": 1.0, + "decimalPlaces": 2, + "increment": 0.1 }, { - "name": "ctl_hz_idle", + "name": "VT_FW_MIN_ALT", "type": "Float", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Idle speed (e Hz)", - "longDesc": "Idle speed (e Hz)", - "units": "Hertz", - "default": 3.5, - "decimalPlaces": 3, - "min": 0, - "max": 100 - }, - { - "name": "ctl_start_rate", - "type": "Int32", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Spin-up rate (e Hz/s)", - "longDesc": "Spin-up rate (e Hz/s)", - "units": "Hz/s", - "default": 25, - "decimalPlaces": 3, - "min": 5, - "max": 1000 + "default": 0.0, + "group": "VTOL Attitude Control", + "shortDesc": "QuadChute Altitude", + "longDesc": "Minimum altitude for fixed wing flight, when in fixed wing the altitude drops below this altitude the vehicle will transition back to MC mode and enter failsafe RTL", + "min": 0.0, + "max": 200.0 }, { - "name": "esc_index", + "name": "VT_FW_MOT_OFFID", "type": "Int32", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Index of this ESC in throttle command messages.", - "longDesc": "Index of this ESC in throttle command messages.", - "units": "Index", "default": 0, - "decimalPlaces": 3, - "min": 0, - "max": 15 - }, - { - "name": "gnss.dyn_model", - "type": "Int32", - "group": "UAVCAN GNSS", - "category": "Standard", - "shortDesc": "GNSS dynamic model", - "longDesc": "Dynamic model used in the GNSS positioning engine. 0 – Automotive, 1 – Sea, 2 – Airborne. ", - "default": 2, - "values": [ - { - "value": 0, - "description": "Automotive" - }, - { - "value": 1, - "description": "Sea" - }, - { - "value": 2, - "description": "Airborne" - } - ], - "decimalPlaces": 3, + "group": "VTOL Attitude Control", + "shortDesc": "The channel number of motors that must be turned off in fixed wing mode", "min": 0, - "max": 2 + "max": 12345678, + "decimalPlaces": 0, + "increment": 1 }, { - "name": "gnss.old_fix_msg", + "name": "VT_FW_PERM_STAB", "type": "Int32", - "group": "UAVCAN GNSS", - "category": "Standard", - "shortDesc": "Broadcast old GNSS fix message", - "longDesc": "Broadcast the old (deprecated) GNSS fix message uavcan.equipment.gnss.Fix alongside the new alternative uavcan.equipment.gnss.Fix2. It is recommended to disable this feature to reduce the CAN bus traffic. ", - "default": 1, - "values": [ - { - "value": 0, - "description": "Fix2" - }, - { - "value": 1, - "description": "Fix and Fix2" - } - ], - "decimalPlaces": 3, - "min": 0, - "max": 1 + "default": 0, + "group": "VTOL Attitude Control", + "shortDesc": "Permanent stabilization in fw mode", + "longDesc": "If set to one this parameter will cause permanent attitude stabilization in fw mode. This parameter has been introduced for pure convenience sake." }, { - "name": "gnss.warn_dimens", + "name": "VT_FW_QC_P", "type": "Int32", - "group": "UAVCAN GNSS", - "category": "Standard", - "shortDesc": "device health warning", - "longDesc": "Set the device health to Warning if the dimensionality of the GNSS solution is less than this value. 3 for the full (3D) solution, 2 for planar (2D) solution, 1 for time-only solution, 0 disables the feature. ", "default": 0, - "values": [ - { - "value": 0, - "description": "disables the feature" - }, - { - "value": 1, - "description": "time-only solution" - }, - { - "value": 2, - "description": "planar (2D) solution" - }, - { - "value": 3, - "description": "full (3D) solution" - } - ], - "decimalPlaces": 3, + "group": "VTOL Attitude Control", + "shortDesc": "QuadChute Max Pitch", + "longDesc": "Maximum pitch angle before QuadChute engages Above this the vehicle will transition back to MC mode and enter failsafe RTL", "min": 0, - "max": 3 + "max": 180 }, { - "name": "gnss.warn_sats", + "name": "VT_FW_QC_R", "type": "Int32", - "group": "UAVCAN GNSS", - "category": "Standard", - "longDesc": "Set the device health to Warning if the number of satellites used in the GNSS solution is below this threshold. Zero disables the feature ", "default": 0, + "group": "VTOL Attitude Control", + "shortDesc": "QuadChute Max Roll", + "longDesc": "Maximum roll angle before QuadChute engages Above this the vehicle will transition back to MC mode and enter failsafe RTL", + "min": 0, + "max": 180 + }, + { + "name": "VT_F_TRANS_DUR", + "type": "Float", + "default": 5.0, + "group": "VTOL Attitude Control", + "shortDesc": "Duration of a front transition", + "longDesc": "Time in seconds used for a transition", + "min": 0.0, + "max": 20.0, + "units": "s", + "decimalPlaces": 2, + "increment": 1.0 + }, + { + "name": "VT_F_TRANS_THR", + "type": "Float", + "default": 1.0, + "group": "VTOL Attitude Control", + "shortDesc": "Target throttle value for the transition to fixed wing flight.\nstandard vtol: pusher\ntailsitter, tiltrotor: main throttle", + "min": 0.0, + "max": 1.0, "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 2.14748e+09 + "increment": 0.01 }, { - "name": "id_ext_status", + "name": "VT_F_TR_OL_TM", + "type": "Float", + "default": 6.0, + "group": "VTOL Attitude Control", + "shortDesc": "Airspeed less front transition time (open loop)", + "longDesc": "The duration of the front transition when there is no airspeed feedback available.", + "min": 1.0, + "max": 30.0, + "units": "s" + }, + { + "name": "VT_IDLE_PWM_MC", "type": "Int32", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Extended status ID", - "longDesc": "Extended status ID", - "default": 20034, - "decimalPlaces": 3, - "min": 1, - "max": 1e+06 + "default": 900, + "group": "VTOL Attitude Control", + "shortDesc": "Idle speed of VTOL when in multicopter mode", + "min": 900, + "max": 2000, + "units": "us", + "decimalPlaces": 0, + "increment": 1 }, { - "name": "int_ext_status", + "name": "VT_MC_ON_FMU", "type": "Int32", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Extended status interval (µs)", - "longDesc": "Extended status interval (µs)", - "units": "µs", - "default": 50000, - "decimalPlaces": 3, - "min": 0, - "max": 1e+06 + "default": 0, + "group": "VTOL Attitude Control", + "shortDesc": "Enable the usage of AUX outputs for hover motors", + "longDesc": "Set this parameter to true if the vehicle's hover motors are connected to the FMU (AUX) port. Not required for boards that only have a FMU, and no IO. Only applies for standard VTOL and tiltrotor." }, { - "name": "int_status", + "name": "VT_MOT_ID", "type": "Int32", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "ESC status interval (µs)", - "longDesc": "ESC status interval (µs)", - "units": "µs", - "default": 50000, - "decimalPlaces": 3, - "min": -2.14748e+09, - "max": 1e+06 + "default": 0, + "group": "VTOL Attitude Control", + "shortDesc": "The channel number of motors which provide lift during hover", + "min": 0, + "max": 12345678, + "decimalPlaces": 0, + "increment": 1 }, { - "name": "mot_i_max", + "name": "VT_PSHER_RMP_DT", "type": "Float", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Motor current limit in amps", - "longDesc": "Motor current limit in amps. This determines the maximum current controller setpoint, as well as the maximum allowable current setpoint slew rate. This value should generally be set to the continuous current rating listed in the motor’s specification sheet, or set equal to the motor’s specified continuous power divided by the motor voltage limit.", - "units": "Amps", - "default": 12, - "decimalPlaces": 3, - "min": 1, - "max": 80 + "default": 3.0, + "group": "VTOL Attitude Control", + "shortDesc": "Defines the time window during which the pusher throttle will be ramped up linearly to VT_F_TRANS_THR during a transition\nto fixed wing mode. Zero or negative values will produce an instant throttle rise to VT_F_TRANS_THR", + "max": 20.0, + "decimalPlaces": 2, + "increment": 0.01 }, { - "name": "mot_kv", - "type": "Int32", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Motor Kv in RPM per volt", - "longDesc": "Motor Kv in RPM per volt. This can be taken from the motor’s specification sheet; accuracy will help control performance but some deviation from the specified value is acceptable.", - "units": "RPM/v", - "default": 2300, + "name": "VT_TILT_FW", + "type": "Float", + "default": 1.0, + "group": "VTOL Attitude Control", + "shortDesc": "Position of tilt servo in fw mode", + "min": 0.0, + "max": 1.0, "decimalPlaces": 3, - "min": 0, - "max": 4000 + "increment": 0.01 }, { - "name": "mot_ls", + "name": "VT_TILT_MC", "type": "Float", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "READ ONLY: Motor inductance in henries.", - "longDesc": "READ ONLY: Motor inductance in henries. This is measured on start-up.", - "units": "henries", - "default": 0, + "default": 0.0, + "group": "VTOL Attitude Control", + "shortDesc": "Position of tilt servo in mc mode", + "min": 0.0, + "max": 1.0, "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "increment": 0.01 }, { - "name": "mot_num_poles", - "type": "Int32", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Number of motor poles.", - "longDesc": "Number of motor poles. Used to convert mechanical speeds to electrical speeds. This number should be taken from the motor’s specification sheet.", - "units": "Poles", - "default": 14, + "name": "VT_TILT_SPINUP", + "type": "Float", + "default": 0.0, + "group": "VTOL Attitude Control", + "shortDesc": "Tilt actuator control value commanded when disarmed and during the first second after arming", + "longDesc": "This specific tilt during spin-up is necessary for some systems whose motors otherwise don't spin-up freely.", + "min": 0.0, + "max": 1.0, "decimalPlaces": 3, - "min": 2, - "max": 40 + "increment": 0.01 }, { - "name": "mot_rs", + "name": "VT_TILT_TRANS", "type": "Float", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "READ ONLY: Motor resistance in ohms", - "longDesc": "READ ONLY: Motor resistance in ohms. This is measured on start-up. When tuning a new motor, check that this value is approximately equal to the value shown in the motor’s specification sheet.", - "units": "Ohms", - "default": 0, + "default": 0.3, + "group": "VTOL Attitude Control", + "shortDesc": "Position of tilt servo in transition mode", + "min": 0.0, + "max": 1.0, "decimalPlaces": 3, - "min": -3.40282e+38, - "max": 3.40282e+38 + "increment": 0.01 }, { - "name": "mot_v_accel", + "name": "VT_TRANS_MIN_TM", + "type": "Float", + "default": 2.0, + "group": "VTOL Attitude Control", + "shortDesc": "Front transition minimum time", + "longDesc": "Minimum time in seconds for front transition.", + "min": 0.0, + "max": 20.0, + "units": "s" + }, + { + "name": "VT_TRANS_P2_DUR", "type": "Float", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Acceleration limit (V)", - "longDesc": "Acceleration limit (V)", - "units": "Volts", "default": 0.5, + "group": "VTOL Attitude Control", + "shortDesc": "Duration of front transition phase 2", + "longDesc": "Time in seconds it should take for the rotors to rotate forward completely from the point when the plane has picked up enough airspeed and is ready to go into fixed wind mode.", + "min": 0.1, + "max": 5.0, + "units": "s", "decimalPlaces": 3, - "min": 0.01, - "max": 1 + "increment": 0.01 }, { - "name": "mot_v_max", + "name": "VT_TRANS_TIMEOUT", "type": "Float", - "group": "UAVCAN Motor Parameters", - "category": "Standard", - "shortDesc": "Motor voltage limit in volts", - "longDesc": "Motor voltage limit in volts. The current controller’s commanded voltage will never exceed this value. Note that this may safely be above the nominal voltage of the motor; to determine the actual motor voltage limit, divide the motor’s rated power by the motor current limit.", - "units": "Volts", - "default": 14.8, - "decimalPlaces": 3, - "min": 0, - "max": 3.40282e+38 + "default": 15.0, + "group": "VTOL Attitude Control", + "shortDesc": "Front transition timeout", + "longDesc": "Time in seconds after which transition will be cancelled. Disabled if set to 0.", + "min": 0.0, + "max": 30.0, + "units": "s", + "decimalPlaces": 2, + "increment": 1.0 }, { - "name": "uavcan.pubp-pres", + "name": "VT_TYPE", "type": "Int32", - "group": "UAVCAN GNSS", - "category": "Standard", - "longDesc": "Set the device health to Warning if the number of satellites used in the GNSS solution is below this threshold. Zero disables the feature ", - "units": "microseconds", "default": 0, + "group": "VTOL Attitude Control", + "shortDesc": "VTOL Type (Tailsitter=0, Tiltrotor=1, Standard=2)", + "min": 0, + "max": 2, + "decimalPlaces": 0, + "rebootRequired": true, + "values": [ + { + "value": 0, + "description": "Tailsitter" + }, + { + "value": 1, + "description": "Tiltrotor" + }, + { + "value": 2, + "description": "Standard" + } + ] + }, + { + "name": "WV_GAIN", + "type": "Float", + "default": 1.0, + "group": "VTOL Attitude Control", + "shortDesc": "Weather-vane roll angle to yawrate", + "longDesc": "The desired gain to convert roll sp into yaw rate sp.", + "min": 0.0, + "max": 3.0, + "units": "Hz", "decimalPlaces": 3, + "increment": 0.01 + }, + { + "name": "EXFW_HDNG_P", + "type": "Float", + "default": 0.1, + "group": "Miscellaneous", + "shortDesc": "EXFW_HDNG_P" + }, + { + "name": "EXFW_PITCH_P", + "type": "Float", + "default": 0.2, + "group": "Miscellaneous", + "shortDesc": "EXFW_PITCH_P" + }, + { + "name": "EXFW_ROLL_P", + "type": "Float", + "default": 0.2, + "group": "Miscellaneous", + "shortDesc": "EXFW_ROLL_P" + }, + { + "name": "MPC_LAND_RC_HELP", + "type": "Int32", + "default": 0, + "group": "Miscellaneous", + "shortDesc": "Enable user assisted descent speed for autonomous land routine", + "longDesc": "When enabled, descent speed will be: stick full up - 0 stick centered - MPC_LAND_SPEED stick full down - 2 * MPC_LAND_SPEED", "min": 0, - "max": 1e+06 + "max": 1, + "values": [ + { + "value": 0, + "description": "Fixed descent speed of MPC_LAND_SPEED" + }, + { + "value": 1, + "description": "User assisted descent speed" + } + ] + }, + { + "name": "RV_YAW_P", + "type": "Float", + "default": 0.1, + "group": "Miscellaneous", + "shortDesc": "RV_YAW_P" } ] -} +} \ No newline at end of file diff --git a/src/comm/MockLink.Parameter.MetaData.json.gz b/src/comm/MockLink.Parameter.MetaData.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..ba3d2ca2a121238b7c413ab916cfeb28f9e01301 GIT binary patch literal 63999 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 literal 0 HcmV?d00001 -- 2.22.0