From fdca61c66639a4465c5463426c0d5ea4451c628e Mon Sep 17 00:00:00 2001 From: Peter Hall <33176108+IamPete1@users.noreply.github.com> Date: Thu, 6 Aug 2026 23:53:23 +0100 Subject: [PATCH] FilterReview: add support for filter version 3 and Quintuple notch --- FilterReview/FilterReview.js | 40 +- FilterReview/index.html | 2 + FilterReview/params.json | 770 +++++++++++++---------------------- 3 files changed, 315 insertions(+), 497 deletions(-) diff --git a/FilterReview/FilterReview.js b/FilterReview/FilterReview.js index 9f2f8e91..390b0cf0 100644 --- a/FilterReview/FilterReview.js +++ b/FilterReview/FilterReview.js @@ -146,15 +146,18 @@ function MultiNotch(attenuation_dB, bandwidth_hz, harmonic, min_freq_fun, num, c this.notches = [] this.notches.push(new NotchFilter(attenuation_dB, bw_scaled, harmonic, min_freq_fun, 1.0 - notch_spread)) this.notches.push(new NotchFilter(attenuation_dB, bw_scaled, harmonic, min_freq_fun, 1.0 + notch_spread)) - if (num == 3) { + if (num >= 3) { this.notches.push(new NotchFilter(attenuation_dB, bw_scaled, harmonic, min_freq_fun, 1.0)) } + if (num == 5) { + this.notches.push(new NotchFilter(attenuation_dB, bw_scaled, harmonic, min_freq_fun, 1.0 - (2.0 * notch_spread))) + this.notches.push(new NotchFilter(attenuation_dB, bw_scaled, harmonic, min_freq_fun, 1.0 + (2.0 * notch_spread))) + } this.transfer = function(Hn, Hd, center, sample_freq, Z1, Z2) { - this.notches[0].transfer(Hn, Hd, center, sample_freq, Z1, Z2) - this.notches[1].transfer(Hn, Hd, center, sample_freq, Z1, Z2) - if (this.notches.length == 3) { - this.notches[2].transfer(Hn, Hd, center, sample_freq, Z1, Z2) + const len = this.notches.length + for (let i = 0; i { return this.get_min_freq(h) }, 1.0)) } else { - this.notches.push(new MultiNotch(this.params.attenuation, this.params.bandwidth, harmonic, (h) => { return this.get_min_freq(h) }, double ? 2 : 3, this.params.freq)) + this.notches.push(new MultiNotch(this.params.attenuation, this.params.bandwidth, harmonic, (h) => { return this.get_min_freq(h) }, num_composite_notches, this.params.freq)) } } } @@ -356,6 +374,7 @@ function reset() { document.getElementById("filter_version_1").disabled = true document.getElementById("filter_version_1").checked = true document.getElementById("filter_version_2").disabled = true + document.getElementById("filter_version_3").disabled = true document.getElementById("calculate").disabled = true document.getElementById("calculate_filters").disabled = true document.getElementById("OpenFilterTool").disabled = true @@ -1991,7 +2010,7 @@ function get_filter_version() { // Update the filter vesion from user buttons function update_filter_version() { - const versions = [1, 2] + const versions = [1, 2, 3] for (const version of versions) { const version_radio_button = document.getElementById("filter_version_" + version) if (version_radio_button.checked) { @@ -2407,6 +2426,7 @@ async function load(log_file) { } document.getElementById("filter_version_1").disabled = false document.getElementById("filter_version_2").disabled = false + document.getElementById("filter_version_3").disabled = false // Load potential sources of notch tracking targets tracking_methods = [new StaticTarget(), diff --git a/FilterReview/index.html b/FilterReview/index.html index 0f0a2c51..20fca129 100644 --- a/FilterReview/index.html +++ b/FilterReview/index.html @@ -134,6 +134,8 @@

1.0

+ +
diff --git a/FilterReview/params.json b/FilterReview/params.json index 827f6ccc..931d6438 100644 --- a/FilterReview/params.json +++ b/FilterReview/params.json @@ -1,57 +1,57 @@ { "ATC_": { - "ATC_ACCEL_P_MAX": { + "ATC_ACC_P_MAX": { "Description": "Maximum acceleration in pitch axis", "DisplayName": "Acceleration Max for Pitch", - "Increment": "1000", + "Increment": "10", "Range": { - "high": "180000", + "high": "1800", "low": "0" }, - "Units": "cdeg/s/s", + "Units": "deg/s/s", "User": "Advanced", "Values": { "0": "Disabled", - "108000": "Medium", - "162000": "Fast", - "30000": "VerySlow", - "72000": "Slow" + "1080": "Medium", + "1620": "Fast", + "300": "VerySlow", + "720": "Slow" } }, - "ATC_ACCEL_R_MAX": { + "ATC_ACC_R_MAX": { "Description": "Maximum acceleration in roll axis", "DisplayName": "Acceleration Max for Roll", - "Increment": "1000", + "Increment": "10", "Range": { - "high": "180000", + "high": "1800", "low": "0" }, - "Units": "cdeg/s/s", + "Units": "deg/s/s", "User": "Advanced", "Values": { "0": "Disabled", - "108000": "Medium", - "162000": "Fast", - "30000": "VerySlow", - "72000": "Slow" + "1080": "Medium", + "1620": "Fast", + "300": "VerySlow", + "720": "Slow" } }, - "ATC_ACCEL_Y_MAX": { + "ATC_ACC_Y_MAX": { "Description": "Maximum acceleration in yaw axis", "DisplayName": "Acceleration Max for Yaw", - "Increment": "1000", + "Increment": "10", "Range": { - "high": "72000", + "high": "720", "low": "0" }, - "Units": "cdeg/s/s", + "Units": "deg/s/s", "User": "Advanced", "Values": { "0": "Disabled", - "18000": "Slow", - "36000": "Medium", - "54000": "Fast", - "9000": "VerySlow" + "180": "Slow", + "360": "Medium", + "540": "Fast", + "90": "VerySlow" } }, "ATC_ANGLE_BOOST": { @@ -63,6 +63,17 @@ "1": "Enabled" } }, + "ATC_ANGLE_MAX": { + "Description": "Maximum lean angle in all flight modes", + "DisplayName": "Angle Max", + "Increment": "0.1", + "Range": { + "high": "80.0", + "low": "10.0" + }, + "Units": "deg", + "User": "Standard" + }, "ATC_ANG_LIM_TC": { "Description": "Angle Limit (to maintain altitude) Time Constant", "DisplayName": "Angle Limit (to maintain altitude) Time Constant", @@ -75,6 +86,7 @@ "ATC_ANG_PIT_P": { "Description": "Pitch axis angle controller P gain. Converts the error between the desired pitch angle and actual angle to a desired pitch rate", "DisplayName": "Pitch axis angle controller P gain", + "Increment": "0.01", "Range": { "high": "12.000", "low": "3.000" @@ -84,6 +96,7 @@ "ATC_ANG_RLL_P": { "Description": "Roll axis angle controller P gain. Converts the error between the desired roll angle and actual angle to a desired roll rate", "DisplayName": "Roll axis angle controller P gain", + "Increment": "0.01", "Range": { "high": "12.000", "low": "3.000" @@ -93,6 +106,7 @@ "ATC_ANG_YAW_P": { "Description": "Yaw axis angle controller P gain. Converts the error between the desired yaw angle and actual angle to a desired yaw rate", "DisplayName": "Yaw axis angle controller P gain", + "Increment": "0.01", "Range": { "high": "12.000", "low": "3.000" @@ -129,7 +143,7 @@ } }, "ATC_LAND_P_MULT": { - "Description": "Pitch gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the pitch axis. ", + "Description": "Pitch gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the pitch axis.", "DisplayName": "Landed pitch gain multiplier", "Range": { "high": "1.0", @@ -138,7 +152,7 @@ "User": "Advanced" }, "ATC_LAND_R_MULT": { - "Description": "Roll gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the roll axis. ", + "Description": "Roll gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the roll axis.", "DisplayName": "Landed roll gain multiplier", "Range": { "high": "1.0", @@ -147,7 +161,7 @@ "User": "Advanced" }, "ATC_LAND_Y_MULT": { - "Description": "Yaw gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the yaw axis. ", + "Description": "Yaw gain multiplier active when landed. A factor of 1.0 means no reduction in gain while landed. Reduce this factor to reduce ground oscitation in the yaw axis.", "DisplayName": "Landed yaw gain multiplier", "Range": { "high": "1.0", @@ -207,6 +221,17 @@ "60": "Slow" } }, + "ATC_RATE_WPY_MAX": { + "Description": "Maximum rate the yaw target can be updated in Auto, Guided, Circle, Follow, RTL, SmartRTL, Throw and ZigZag flight modes", + "DisplayName": "Yaw target slew rate", + "Increment": "1", + "Range": { + "high": "180", + "low": "5" + }, + "Units": "deg/s", + "User": "Advanced" + }, "ATC_RATE_Y_MAX": { "Description": "Maximum angular velocity in yaw axis", "DisplayName": "Angular Velocity Max for Yaw", @@ -232,6 +257,7 @@ "high": "0.03", "low": "0.0" }, + "Units": "s^2/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -243,6 +269,7 @@ "high": "0.02", "low": "0" }, + "Units": "s^2/rad", "User": "Advanced", "path": "AC_AttitudeControl_Heli" }, @@ -254,6 +281,7 @@ "high": "0.5", "low": "0.05" }, + "Units": "s/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -301,6 +329,7 @@ "high": "0.6", "low": "0.0" }, + "Units": "1/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -352,6 +381,7 @@ "high": "0.35", "low": "0.0" }, + "Units": "s/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -383,6 +413,7 @@ "high": "0.03", "low": "0.0" }, + "Units": "s^2/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -394,6 +425,7 @@ "high": "0.02", "low": "0" }, + "Units": "s^2/rad", "User": "Advanced", "path": "AC_AttitudeControl_Heli" }, @@ -405,6 +437,7 @@ "high": "0.5", "low": "0.05" }, + "Units": "s/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -452,6 +485,7 @@ "high": "0.6", "low": "0.0" }, + "Units": "1/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -503,6 +537,7 @@ "high": "0.35", "low": "0.0" }, + "Units": "s/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -534,6 +569,7 @@ "high": "0.02", "low": "0.000" }, + "Units": "s^2/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -545,6 +581,7 @@ "high": "0.02", "low": "0" }, + "Units": "s^2/rad", "User": "Advanced", "path": "AC_AttitudeControl_Heli" }, @@ -556,6 +593,7 @@ "high": "0.5", "low": "0" }, + "Units": "s/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -603,6 +641,7 @@ "high": "0.2", "low": "0.01" }, + "Units": "1/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -655,6 +694,7 @@ "high": "0.60", "low": "0.180" }, + "Units": "s/rad", "User": "Standard", "path": "AC_AttitudeControl_Heli" }, @@ -678,17 +718,6 @@ "User": "Advanced", "path": "AC_AttitudeControl_Heli" }, - "ATC_SLEW_YAW": { - "Description": "Maximum rate the yaw target can be updated in RTL and Auto flight modes", - "DisplayName": "Yaw target slew rate", - "Increment": "100", - "Range": { - "high": "18000", - "low": "500" - }, - "Units": "cdeg/s", - "User": "Advanced" - }, "ATC_THR_G_BOOST": { "Description": "Throttle-gain boost ratio. A value of 0 means no boosting is applied, a value of 1 means full boosting is applied. Describes the ratio increase that is applied to angle P and PD on pitch and roll.", "DisplayName": "Throttle-gain boost", @@ -1923,7 +1952,7 @@ }, "INS_HNTC2_FM_RAT": { "Description": "The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.", - "DisplayName": "Throttle notch min freqency ratio", + "DisplayName": "Throttle notch min frequency ratio", "Range": { "high": "1.0", "low": "0.1" @@ -1931,7 +1960,7 @@ "User": "Advanced" }, "INS_HNTC2_FREQ": { - "Description": "Harmonic Notch Filter base center frequency in Hz. This is the center frequency for static notches, the center frequency for Throttle based notches at the reference thrust value, and the minimum limit of center frequency variation for all other notch types. This should always be set lower than half the backend gyro rate (which is typically 1Khz). ", + "Description": "Harmonic Notch Filter base center frequency in Hz. This is the center frequency for static notches, the center frequency for Throttle based notches at the reference thrust value, and the minimum limit of center frequency variation for all other notch types. This should always be set lower than half the backend gyro rate (which is typically 1Khz).", "DisplayName": "Harmonic Notch Filter base frequency", "Range": { "high": "495", @@ -1965,7 +1994,7 @@ "User": "Advanced" }, "INS_HNTC2_MODE": { - "Description": "Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based harmonic notch cannot be used on fixed wing only planes. It can for Copters, QuaadPlane(while in VTOL modes), and Rovers.", + "Description": "Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based harmonic notch cannot be used on fixed wing only planes. It can for Copters, QuadPlane(while in VTOL modes), and Rovers.", "DisplayName": "Harmonic Notch Filter dynamic frequency tracking mode", "Range": { "high": "5", @@ -1988,7 +2017,8 @@ "2": "Update at loop rate", "3": "EnableOnAllIMUs", "4": "Triple notch", - "5": "Use min freq on RPM source failure" + "5": "Use min freq on RPM source failure", + "6": "Quintuple notch" }, "Description": "Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Multi-Source attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.", "DisplayName": "Harmonic Notch Filter options", @@ -2006,8 +2036,8 @@ "User": "Advanced" } }, - "INS_HNTCH_": { - "INS_HNTCH_ATT": { + "INS_HNTC3_": { + "INS_HNTC3_ATT": { "Description": "Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.", "DisplayName": "Harmonic Notch Filter attenuation", "Range": { @@ -2017,7 +2047,7 @@ "Units": "dB", "User": "Advanced" }, - "INS_HNTCH_BW": { + "INS_HNTC3_BW": { "Description": "Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.", "DisplayName": "Harmonic Notch Filter bandwidth", "Range": { @@ -2027,7 +2057,7 @@ "Units": "Hz", "User": "Advanced" }, - "INS_HNTCH_ENABLE": { + "INS_HNTC3_ENABLE": { "Description": "Harmonic Notch Filter enable", "DisplayName": "Harmonic Notch Filter enable", "User": "Advanced", @@ -2036,17 +2066,17 @@ "1": "Enabled" } }, - "INS_HNTCH_FM_RAT": { + "INS_HNTC3_FM_RAT": { "Description": "The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.", - "DisplayName": "Throttle notch min freqency ratio", + "DisplayName": "Throttle notch min frequency ratio", "Range": { "high": "1.0", "low": "0.1" }, "User": "Advanced" }, - "INS_HNTCH_FREQ": { - "Description": "Harmonic Notch Filter base center frequency in Hz. This is the center frequency for static notches, the center frequency for Throttle based notches at the reference thrust value, and the minimum limit of center frequency variation for all other notch types. This should always be set lower than half the backend gyro rate (which is typically 1Khz). ", + "INS_HNTC3_FREQ": { + "Description": "Harmonic Notch Filter base center frequency in Hz. This is the center frequency for static notches, the center frequency for Throttle based notches at the reference thrust value, and the minimum limit of center frequency variation for all other notch types. This should always be set lower than half the backend gyro rate (which is typically 1Khz).", "DisplayName": "Harmonic Notch Filter base frequency", "Range": { "high": "495", @@ -2055,7 +2085,7 @@ "Units": "Hz", "User": "Advanced" }, - "INS_HNTCH_HMNCS": { + "INS_HNTC3_HMNCS": { "Bitmask": { "0": "1st harmonic", "1": "2nd harmonic", @@ -2079,8 +2109,8 @@ "RebootRequired": "True", "User": "Advanced" }, - "INS_HNTCH_MODE": { - "Description": "Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based harmonic notch cannot be used on fixed wing only planes. It can for Copters, QuaadPlane(while in VTOL modes), and Rovers.", + "INS_HNTC3_MODE": { + "Description": "Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based harmonic notch cannot be used on fixed wing only planes. It can for Copters, QuadPlane(while in VTOL modes), and Rovers.", "DisplayName": "Harmonic Notch Filter dynamic frequency tracking mode", "Range": { "high": "5", @@ -2096,21 +2126,22 @@ "5": "Second RPM Sensor" } }, - "INS_HNTCH_OPTS": { + "INS_HNTC3_OPTS": { "Bitmask": { "0": "Double notch", "1": "Multi-Source", "2": "Update at loop rate", "3": "EnableOnAllIMUs", "4": "Triple notch", - "5": "Use min freq on RPM source failure" + "5": "Use min freq on RPM source failure", + "6": "Quintuple notch" }, "Description": "Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Multi-Source attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.", "DisplayName": "Harmonic Notch Filter options", "RebootRequired": "True", "User": "Advanced" }, - "INS_HNTCH_REF": { + "INS_HNTC3_REF": { "Description": "A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.", "DisplayName": "Harmonic Notch Filter reference value", "Range": { @@ -2121,473 +2152,235 @@ "User": "Advanced" } }, - "INS_LOG_": { - "INS_LOG_BAT_CNT": { - "Description": "Number of samples to take when logging streams of IMU sensor readings. Will be rounded down to a multiple of 32. This option takes effect on the next reboot.", - "DisplayName": "sample count per batch", - "Increment": "32", - "RebootRequired": "True", - "User": "Advanced" - }, - "INS_LOG_BAT_LGCT": { - "Description": "Number of samples to push to count every INS_LOG_BAT_LGIN", - "DisplayName": "logging count", - "Increment": "1" - }, - "INS_LOG_BAT_LGIN": { - "Description": "Interval between pushing samples to the AP_Logger log", - "DisplayName": "logging interval", - "Increment": "10", - "Units": "ms" - }, - "INS_LOG_BAT_MASK": { - "Bitmask": { - "0": "IMU1", - "1": "IMU2", - "2": "IMU3" + "INS_HNTC4_": { + "INS_HNTC4_ATT": { + "Description": "Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.", + "DisplayName": "Harmonic Notch Filter attenuation", + "Range": { + "high": "50", + "low": "5" }, - "Description": "Bitmap of which IMUs to log batch data for. This option takes effect on the next reboot.", - "DisplayName": "Sensor Bitmask", - "RebootRequired": "True", + "Units": "dB", "User": "Advanced" }, - "INS_LOG_BAT_OPT": { - "Bitmask": { - "0": "Sensor-Rate Logging (sample at full sensor rate seen by AP)", - "1": "Sample post-filtering", - "2": "Sample pre- and post-filter" + "INS_HNTC4_BW": { + "Description": "Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.", + "DisplayName": "Harmonic Notch Filter bandwidth", + "Range": { + "high": "250", + "low": "5" }, - "Description": "Options for the BatchSampler.", - "DisplayName": "Batch Logging Options Mask", - "User": "Advanced" - } - }, - "INS_TCAL1_": { - "INS_TCAL1_ACC1_X": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 1st order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL1_ACC1_Y": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 1st order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL1_ACC1_Z": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 1st order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL1_ACC2_X": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 2nd order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL1_ACC2_Y": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 2nd order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL1_ACC2_Z": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 2nd order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL1_ACC3_X": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 3rd order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL1_ACC3_Y": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 3rd order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL1_ACC3_Z": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 3rd order temperature coefficient Z axis", + "Units": "Hz", "User": "Advanced" }, - "INS_TCAL1_ENABLE": { - "Description": "Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot", - "DisplayName": "Enable temperature calibration", - "RebootRequired": "True", + "INS_HNTC4_ENABLE": { + "Description": "Harmonic Notch Filter enable", + "DisplayName": "Harmonic Notch Filter enable", "User": "Advanced", "Values": { "0": "Disabled", - "1": "Enabled", - "2": "LearnCalibration" + "1": "Enabled" } }, - "INS_TCAL1_GYR1_X": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 1st order temperature coefficient X axis", + "INS_HNTC4_FM_RAT": { + "Description": "The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.", + "DisplayName": "Throttle notch min frequency ratio", + "Range": { + "high": "1.0", + "low": "0.1" + }, "User": "Advanced" }, - "INS_TCAL1_GYR1_Y": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 1st order temperature coefficient Y axis", + "INS_HNTC4_FREQ": { + "Description": "Harmonic Notch Filter base center frequency in Hz. This is the center frequency for static notches, the center frequency for Throttle based notches at the reference thrust value, and the minimum limit of center frequency variation for all other notch types. This should always be set lower than half the backend gyro rate (which is typically 1Khz).", + "DisplayName": "Harmonic Notch Filter base frequency", + "Range": { + "high": "495", + "low": "10" + }, + "Units": "Hz", "User": "Advanced" }, - "INS_TCAL1_GYR1_Z": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 1st order temperature coefficient Z axis", + "INS_HNTC4_HMNCS": { + "Bitmask": { + "0": "1st harmonic", + "1": "2nd harmonic", + "10": "11th harmonic", + "11": "12th harmonic", + "12": "13th harmonic", + "13": "14th harmonic", + "14": "15th harmonic", + "15": "16th harmonic", + "2": "3rd harmonic", + "3": "4th harmonic", + "4": "5th harmonic", + "5": "6th harmonic", + "6": "7th harmonic", + "7": "8th harmonic", + "8": "9th harmonic", + "9": "10th harmonic" + }, + "Description": "Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.", + "DisplayName": "Harmonic Notch Filter harmonics", + "RebootRequired": "True", "User": "Advanced" }, - "INS_TCAL1_GYR2_X": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 2nd order temperature coefficient X axis", - "User": "Advanced" + "INS_HNTC4_MODE": { + "Description": "Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based harmonic notch cannot be used on fixed wing only planes. It can for Copters, QuadPlane(while in VTOL modes), and Rovers.", + "DisplayName": "Harmonic Notch Filter dynamic frequency tracking mode", + "Range": { + "high": "5", + "low": "0" + }, + "User": "Advanced", + "Values": { + "0": "Fixed", + "1": "Throttle", + "2": "RPM Sensor", + "3": "ESC Telemetry", + "4": "Dynamic FFT", + "5": "Second RPM Sensor" + } }, - "INS_TCAL1_GYR2_Y": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 2nd order temperature coefficient Y axis", + "INS_HNTC4_OPTS": { + "Bitmask": { + "0": "Double notch", + "1": "Multi-Source", + "2": "Update at loop rate", + "3": "EnableOnAllIMUs", + "4": "Triple notch", + "5": "Use min freq on RPM source failure", + "6": "Quintuple notch" + }, + "Description": "Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Multi-Source attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.", + "DisplayName": "Harmonic Notch Filter options", + "RebootRequired": "True", "User": "Advanced" }, - "INS_TCAL1_GYR2_Z": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 2nd order temperature coefficient Z axis", + "INS_HNTC4_REF": { + "Description": "A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.", + "DisplayName": "Harmonic Notch Filter reference value", + "Range": { + "high": "1.0", + "low": "0.0" + }, + "RebootRequired": "True", "User": "Advanced" - }, - "INS_TCAL1_GYR3_X": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 3rd order temperature coefficient X axis", + } + }, + "INS_HNTCH_": { + "INS_HNTCH_ATT": { + "Description": "Harmonic Notch Filter attenuation in dB. Values greater than 40dB will typically produce a hard notch rather than a modest attenuation of motor noise.", + "DisplayName": "Harmonic Notch Filter attenuation", + "Range": { + "high": "50", + "low": "5" + }, + "Units": "dB", "User": "Advanced" }, - "INS_TCAL1_GYR3_Y": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 3rd order temperature coefficient Y axis", + "INS_HNTCH_BW": { + "Description": "Harmonic Notch Filter bandwidth in Hz. This is typically set to half the base frequency. The ratio of base frequency to bandwidth determines the notch quality factor and is fixed across harmonics.", + "DisplayName": "Harmonic Notch Filter bandwidth", + "Range": { + "high": "250", + "low": "5" + }, + "Units": "Hz", "User": "Advanced" }, - "INS_TCAL1_GYR3_Z": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 3rd order temperature coefficient Z axis", - "User": "Advanced" + "INS_HNTCH_ENABLE": { + "Description": "Harmonic Notch Filter enable", + "DisplayName": "Harmonic Notch Filter enable", + "User": "Advanced", + "Values": { + "0": "Disabled", + "1": "Enabled" + } }, - "INS_TCAL1_TMAX": { - "Calibration": "1", - "Description": "The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration", - "DisplayName": "Temperature calibration max", + "INS_HNTCH_FM_RAT": { + "Description": "The minimum ratio below the configured frequency to take throttle based notch filters when flying at a throttle level below the reference throttle. Note that lower frequency notch filters will have more phase lag. If you want throttle based notch filtering to be effective at a throttle up to 30% below the configured notch frequency then set this parameter to 0.7. The default of 1.0 means the notch will not go below the frequency in the FREQ parameter.", + "DisplayName": "Throttle notch min frequency ratio", "Range": { - "high": "80", - "low": "-70" + "high": "1.0", + "low": "0.1" }, - "Units": "degC", "User": "Advanced" }, - "INS_TCAL1_TMIN": { - "Calibration": "1", - "Description": "The minimum temperature that the calibration is valid for", - "DisplayName": "Temperature calibration min", + "INS_HNTCH_FREQ": { + "Description": "Harmonic Notch Filter base center frequency in Hz. This is the center frequency for static notches, the center frequency for Throttle based notches at the reference thrust value, and the minimum limit of center frequency variation for all other notch types. This should always be set lower than half the backend gyro rate (which is typically 1Khz).", + "DisplayName": "Harmonic Notch Filter base frequency", "Range": { - "high": "80", - "low": "-70" + "high": "495", + "low": "10" }, - "Units": "degC", - "User": "Advanced" - } - }, - "INS_TCAL2_": { - "INS_TCAL2_ACC1_X": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 1st order temperature coefficient X axis", + "Units": "Hz", "User": "Advanced" }, - "INS_TCAL2_ACC1_Y": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 1st order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL2_ACC1_Z": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 1st order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL2_ACC2_X": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 2nd order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL2_ACC2_Y": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 2nd order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL2_ACC2_Z": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 2nd order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL2_ACC3_X": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 3rd order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL2_ACC3_Y": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 3rd order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL2_ACC3_Z": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 3rd order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL2_ENABLE": { - "Description": "Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot", - "DisplayName": "Enable temperature calibration", - "RebootRequired": "True", - "User": "Advanced", - "Values": { - "0": "Disabled", - "1": "Enabled", - "2": "LearnCalibration" - } - }, - "INS_TCAL2_GYR1_X": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 1st order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL2_GYR1_Y": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 1st order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL2_GYR1_Z": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 1st order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL2_GYR2_X": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 2nd order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL2_GYR2_Y": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 2nd order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL2_GYR2_Z": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 2nd order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL2_GYR3_X": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 3rd order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL2_GYR3_Y": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 3rd order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL2_GYR3_Z": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 3rd order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL2_TMAX": { - "Calibration": "1", - "Description": "The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration", - "DisplayName": "Temperature calibration max", - "Range": { - "high": "80", - "low": "-70" + "INS_HNTCH_HMNCS": { + "Bitmask": { + "0": "1st harmonic", + "1": "2nd harmonic", + "10": "11th harmonic", + "11": "12th harmonic", + "12": "13th harmonic", + "13": "14th harmonic", + "14": "15th harmonic", + "15": "16th harmonic", + "2": "3rd harmonic", + "3": "4th harmonic", + "4": "5th harmonic", + "5": "6th harmonic", + "6": "7th harmonic", + "7": "8th harmonic", + "8": "9th harmonic", + "9": "10th harmonic" }, - "Units": "degC", + "Description": "Bitmask of harmonic frequencies to apply Harmonic Notch Filter to. This option takes effect on the next reboot. A value of 0 disables this filter. The first harmonic refers to the base frequency.", + "DisplayName": "Harmonic Notch Filter harmonics", + "RebootRequired": "True", "User": "Advanced" }, - "INS_TCAL2_TMIN": { - "Calibration": "1", - "Description": "The minimum temperature that the calibration is valid for", - "DisplayName": "Temperature calibration min", + "INS_HNTCH_MODE": { + "Description": "Harmonic Notch Filter dynamic frequency tracking mode. Dynamic updates can be throttle, RPM sensor, ESC telemetry or dynamic FFT based. Throttle-based harmonic notch cannot be used on fixed wing only planes. It can for Copters, QuadPlane(while in VTOL modes), and Rovers.", + "DisplayName": "Harmonic Notch Filter dynamic frequency tracking mode", "Range": { - "high": "80", - "low": "-70" + "high": "5", + "low": "0" }, - "Units": "degC", - "User": "Advanced" - } - }, - "INS_TCAL3_": { - "INS_TCAL3_ACC1_X": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 1st order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL3_ACC1_Y": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 1st order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL3_ACC1_Z": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 1st order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL3_ACC2_X": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 2nd order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL3_ACC2_Y": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 2nd order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL3_ACC2_Z": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 2nd order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL3_ACC3_X": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 3rd order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL3_ACC3_Y": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 3rd order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL3_ACC3_Z": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Accelerometer 3rd order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL3_ENABLE": { - "Description": "Enable the use of temperature calibration parameters for this IMU. For automatic learning set to 2 and also set the INS_TCALn_TMAX to the target temperature, then reboot", - "DisplayName": "Enable temperature calibration", - "RebootRequired": "True", "User": "Advanced", "Values": { - "0": "Disabled", - "1": "Enabled", - "2": "LearnCalibration" + "0": "Fixed", + "1": "Throttle", + "2": "RPM Sensor", + "3": "ESC Telemetry", + "4": "Dynamic FFT", + "5": "Second RPM Sensor" } }, - "INS_TCAL3_GYR1_X": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 1st order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL3_GYR1_Y": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 1st order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL3_GYR1_Z": { - "Calibration": "1", - "Description": "This is the 1st order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 1st order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL3_GYR2_X": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 2nd order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL3_GYR2_Y": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 2nd order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL3_GYR2_Z": { - "Calibration": "1", - "Description": "This is the 2nd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 2nd order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL3_GYR3_X": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 3rd order temperature coefficient X axis", - "User": "Advanced" - }, - "INS_TCAL3_GYR3_Y": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 3rd order temperature coefficient Y axis", - "User": "Advanced" - }, - "INS_TCAL3_GYR3_Z": { - "Calibration": "1", - "Description": "This is the 3rd order temperature coefficient from a temperature calibration", - "DisplayName": "Gyroscope 3rd order temperature coefficient Z axis", - "User": "Advanced" - }, - "INS_TCAL3_TMAX": { - "Calibration": "1", - "Description": "The maximum temperature that the calibration is valid for. This must be at least 10 degrees above TMIN for calibration", - "DisplayName": "Temperature calibration max", - "Range": { - "high": "80", - "low": "-70" + "INS_HNTCH_OPTS": { + "Bitmask": { + "0": "Double notch", + "1": "Multi-Source", + "2": "Update at loop rate", + "3": "EnableOnAllIMUs", + "4": "Triple notch", + "5": "Use min freq on RPM source failure", + "6": "Quintuple notch" }, - "Units": "degC", + "Description": "Harmonic Notch Filter options. Triple and double-notches can provide deeper attenuation across a wider bandwidth with reduced latency than single notches and are suitable for larger aircraft. Multi-Source attaches a harmonic notch to each detected noise frequency instead of simply being multiples of the base frequency, in the case of FFT it will attach notches to each of three detected noise peaks, in the case of ESC it will attach notches to each of four motor RPM values. Loop rate update changes the notch center frequency at the scheduler loop rate rather than at the default of 200Hz. If both double and triple notches are specified only double notches will take effect.", + "DisplayName": "Harmonic Notch Filter options", + "RebootRequired": "True", "User": "Advanced" }, - "INS_TCAL3_TMIN": { - "Calibration": "1", - "Description": "The minimum temperature that the calibration is valid for", - "DisplayName": "Temperature calibration min", + "INS_HNTCH_REF": { + "Description": "A reference value of zero disables dynamic updates on the Harmonic Notch Filter and a positive value enables dynamic updates on the Harmonic Notch Filter. For throttle-based scaling, this parameter is the reference value associated with the specified frequency to facilitate frequency scaling of the Harmonic Notch Filter. For RPM and ESC telemetry based tracking, this parameter is set to 1 to enable the Harmonic Notch Filter using the RPM sensor or ESC telemetry set to measure rotor speed. The sensor data is converted to Hz automatically for use in the Harmonic Notch Filter. This reference value may also be used to scale the sensor data, if required. For example, rpm sensor data is required to measure heli motor RPM. Therefore the reference value can be used to scale the RPM sensor to the rotor RPM.", + "DisplayName": "Harmonic Notch Filter reference value", "Range": { - "high": "80", - "low": "-70" + "high": "1.0", + "low": "0.0" }, - "Units": "degC", + "RebootRequired": "True", "User": "Advanced" } }, @@ -2600,23 +2393,26 @@ "0": "Disabled", "2": "ShowSlips", "3": "ShowOverruns" - }, - "__field_text": "\n // @DisplayName: Scheduler debug level\n // @Description: Set to non-zero to enable scheduler debug messages. When set to show \"Slips\" the scheduler will display a message whenever a scheduled task is delayed due to too much CPU load. When set to ShowOverruns the scheduled will display a message whenever a task takes longer than the limit promised in the task table.\n // @Values: 0:Disabled,2:ShowSlips,3:ShowOverruns\n // @User: Advanced" + } }, "SCHED_LOOP_RATE": { "Description": "This controls the rate of the main control loop in Hz. This should only be changed by developers. This only takes effect on restart. Values over 400 are considered highly experimental.", "DisplayName": "Scheduling main loop rate", + "Range": { + "high": "400", + "low": "50" + }, "RebootRequired": "True", - "User": "Advanced", - "Values": { - "100": "100Hz", - "200": "200Hz", - "250": "250Hz", - "300": "300Hz", - "400": "400Hz", - "50": "50Hz" - }, - "__field_text": "\n // @DisplayName: Scheduling main loop rate\n // @Description: This controls the rate of the main control loop in Hz. This should only be changed by developers. This only takes effect on restart. Values over 400 are considered highly experimental.\n // @Values: 50:50Hz,100:100Hz,200:200Hz,250:250Hz,300:300Hz,400:400Hz\n // @RebootRequired: True\n // @User: Advanced" + "Units": "Hz", + "User": "Advanced" + }, + "SCHED_OPTIONS": { + "Bitmask": { + "0": "Enable per-task perf info" + }, + "Description": "This controls optional aspects of the scheduler.", + "DisplayName": "Scheduling options", + "User": "Advanced" } }, "json": {