mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-18 22:05:13 +03:00
Merge pull request #545 from basdelfos/bfc_change_dterm_filter
Added new features and settings for BF 3.2
This commit is contained in:
commit
fc371852b2
6 changed files with 200 additions and 108 deletions
|
@ -545,7 +545,7 @@
|
||||||
"message": "Configure via the BlackBox tab after enabling."
|
"message": "Configure via the BlackBox tab after enabling."
|
||||||
},
|
},
|
||||||
"featureESC_SENSOR": {
|
"featureESC_SENSOR": {
|
||||||
"message": "Use KISS ESC 24A telemetry as sensor"
|
"message": "Use KISS/BLHeli_32 ESC telemetry as sensor"
|
||||||
},
|
},
|
||||||
"featureCHANNEL_FORWARDING": {
|
"featureCHANNEL_FORWARDING": {
|
||||||
"message": "Forward aux channels to servo outputs"
|
"message": "Forward aux channels to servo outputs"
|
||||||
|
@ -571,6 +571,12 @@
|
||||||
"featureVTX": {
|
"featureVTX": {
|
||||||
"message": "Video Transmitter"
|
"message": "Video Transmitter"
|
||||||
},
|
},
|
||||||
|
"featureANTI_GRAVITY": {
|
||||||
|
"message": "Temporary boost I-Term on high throttle changes"
|
||||||
|
},
|
||||||
|
"featureDYNAMIC_FILTER": {
|
||||||
|
"message": "Dynamic gyro notch filtering"
|
||||||
|
},
|
||||||
"featureFAILSAFE": {
|
"featureFAILSAFE": {
|
||||||
"message": "Enable Failsafe Stage 2"
|
"message": "Enable Failsafe Stage 2"
|
||||||
},
|
},
|
||||||
|
@ -741,19 +747,19 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
"portsIdentifier": {
|
"portsIdentifier": {
|
||||||
"message": "Identifier"
|
"message": "Identifier"
|
||||||
},
|
},
|
||||||
"portsConfiguration": {
|
"portsConfiguration": {
|
||||||
"message": "Configuration/MSP"
|
"message": "Configuration/MSP"
|
||||||
},
|
},
|
||||||
"portsSerialRx": {
|
"portsSerialRx": {
|
||||||
"message": "Serial Rx"
|
"message": "Serial Rx"
|
||||||
},
|
},
|
||||||
"portsSensorIn": {
|
"portsSensorIn": {
|
||||||
"message": "Sensor Input"
|
"message": "Sensor Input"
|
||||||
},
|
},
|
||||||
"portsTelemetryOut": {
|
"portsTelemetryOut": {
|
||||||
"message": "Telemetry Output"
|
"message": "Telemetry Output"
|
||||||
},
|
},
|
||||||
"portsPeripherals": {
|
"portsPeripherals": {
|
||||||
"message": "Peripherals"
|
"message": "Peripherals"
|
||||||
|
@ -845,6 +851,14 @@
|
||||||
"pidTuningNonProfilePidSettings": {
|
"pidTuningNonProfilePidSettings": {
|
||||||
"message": "Profile independent PID Controller Settings"
|
"message": "Profile independent PID Controller Settings"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"pidTuningAntiGravityGain": {
|
||||||
|
"message": "Anti Gravity Gain"
|
||||||
|
},
|
||||||
|
"pidTuningAntiGravityThres": {
|
||||||
|
"message": "Anti Gravity Threshold"
|
||||||
|
},
|
||||||
|
|
||||||
"pidTuningPidSettings": {
|
"pidTuningPidSettings": {
|
||||||
"message": "PID Controller Settings"
|
"message": "PID Controller Settings"
|
||||||
},
|
},
|
||||||
|
@ -924,10 +938,10 @@
|
||||||
"message": "Frequency"
|
"message": "Frequency"
|
||||||
},
|
},
|
||||||
"pidTuningRatesCurve": {
|
"pidTuningRatesCurve": {
|
||||||
"message": "Rates"
|
"message": "Rates"
|
||||||
},
|
},
|
||||||
"throttle": {
|
"throttle": {
|
||||||
"message": "Throttle"
|
"message": "Throttle"
|
||||||
},
|
},
|
||||||
"pidTuningButtonSave": {
|
"pidTuningButtonSave": {
|
||||||
"message": "Save"
|
"message": "Save"
|
||||||
|
@ -1242,13 +1256,13 @@
|
||||||
"transponderHelp2": {
|
"transponderHelp2": {
|
||||||
"message": "For more information please visit <a href=\"http://www.arcitimer.com/\" title=\"aRCiTimer\" target=\"_blank\">aRCiTimer site</a>"
|
"message": "For more information please visit <a href=\"http://www.arcitimer.com/\" title=\"aRCiTimer\" target=\"_blank\">aRCiTimer site</a>"
|
||||||
},
|
},
|
||||||
"transponderDataHelp3": {
|
"transponderDataHelp3": {
|
||||||
"message": "Choose ERLT ID 0-63"
|
"message": "Choose ERLT ID 0-63"
|
||||||
},
|
},
|
||||||
"transponderHelp3": {
|
"transponderHelp3": {
|
||||||
"message": "For more information please visit <a href=\"https://github.com/polyvision/EasyRaceLapTimer\" title=\"aRCiTimer\" target=\"_blank\">EasyRaceLapTimer site</a>"
|
"message": "For more information please visit <a href=\"https://github.com/polyvision/EasyRaceLapTimer\" title=\"aRCiTimer\" target=\"_blank\">EasyRaceLapTimer site</a>"
|
||||||
},
|
},
|
||||||
"transponderButtonSave": {
|
"transponderButtonSave": {
|
||||||
"message": "Save"
|
"message": "Save"
|
||||||
},
|
},
|
||||||
"transponderButtonSaveReboot": {
|
"transponderButtonSaveReboot": {
|
||||||
|
@ -1390,7 +1404,7 @@
|
||||||
"cliSaveToFileBtn": {
|
"cliSaveToFileBtn": {
|
||||||
"message": "Save to File"
|
"message": "Save to File"
|
||||||
},
|
},
|
||||||
|
|
||||||
"loggingNote": {
|
"loggingNote": {
|
||||||
"message": "Data will be logged in this tab <span style=\"color: red\">only</span>, leaving the tab will <span style=\"color: red\">cancel</span> logging and application will return to its normal <strong>\"configurator\"</strong> state.<br /> You are free to select the global update period, data will be written into the log file every <strong>1</strong> second for performance reasons."
|
"message": "Data will be logged in this tab <span style=\"color: red\">only</span>, leaving the tab will <span style=\"color: red\">cancel</span> logging and application will return to its normal <strong>\"configurator\"</strong> state.<br /> You are free to select the global update period, data will be written into the log file every <strong>1</strong> second for performance reasons."
|
||||||
},
|
},
|
||||||
|
@ -1674,73 +1688,73 @@
|
||||||
"message": "VTX (uses vtx frequency to assign color)"
|
"message": "VTX (uses vtx frequency to assign color)"
|
||||||
},
|
},
|
||||||
"ledStripFunctionSection": {
|
"ledStripFunctionSection": {
|
||||||
"message": "LED Functions"
|
"message": "LED Functions"
|
||||||
},
|
},
|
||||||
"ledStripFunctionTitle": {
|
"ledStripFunctionTitle": {
|
||||||
"message": "Function"
|
"message": "Function"
|
||||||
},
|
},
|
||||||
"ledStripColorModifierTitle": {
|
"ledStripColorModifierTitle": {
|
||||||
"message": "Color modifier"
|
"message": "Color modifier"
|
||||||
},
|
},
|
||||||
"ledStripThrottleFunction": {
|
"ledStripThrottleFunction": {
|
||||||
"message": "Throttle"
|
"message": "Throttle"
|
||||||
},
|
},
|
||||||
"ledStripVtxFunction": {
|
"ledStripVtxFunction": {
|
||||||
"message": "Larson scanner"
|
"message": "Larson scanner"
|
||||||
},
|
},
|
||||||
"ledStripBlinkTitle": {
|
"ledStripBlinkTitle": {
|
||||||
"message": "Blink"
|
"message": "Blink"
|
||||||
},
|
},
|
||||||
"ledStripBlinkAlwaysOverlay": {
|
"ledStripBlinkAlwaysOverlay": {
|
||||||
"message": "Blink always"
|
"message": "Blink always"
|
||||||
},
|
},
|
||||||
"ledStripBlinkLandingOverlay": {
|
"ledStripBlinkLandingOverlay": {
|
||||||
"message": "Blink on landing"
|
"message": "Blink on landing"
|
||||||
},
|
},
|
||||||
"ledStripOverlayTitle": {
|
"ledStripOverlayTitle": {
|
||||||
"message": "Overlay"
|
"message": "Overlay"
|
||||||
},
|
},
|
||||||
"ledStripWarningsOverlay": {
|
"ledStripWarningsOverlay": {
|
||||||
"message": "Warnings"
|
"message": "Warnings"
|
||||||
},
|
},
|
||||||
"ledStripIndecatorOverlay": {
|
"ledStripIndecatorOverlay": {
|
||||||
"message": "Indicator (uses position on matrix)"
|
"message": "Indicator (uses position on matrix)"
|
||||||
},
|
},
|
||||||
"ledStripVtxOverlay": {
|
"ledStripVtxOverlay": {
|
||||||
"message": "VTX (uses vtx frequency to assign color)"
|
"message": "VTX (uses vtx frequency to assign color)"
|
||||||
},
|
},
|
||||||
"ledStripFunctionSection": {
|
"ledStripFunctionSection": {
|
||||||
"message": "LED Functions"
|
"message": "LED Functions"
|
||||||
},
|
},
|
||||||
"ledStripFunctionTitle": {
|
"ledStripFunctionTitle": {
|
||||||
"message": "Function"
|
"message": "Function"
|
||||||
},
|
},
|
||||||
"ledStripColorModifierTitle": {
|
"ledStripColorModifierTitle": {
|
||||||
"message": "Color modifier"
|
"message": "Color modifier"
|
||||||
},
|
},
|
||||||
"ledStripThrottleFunction": {
|
"ledStripThrottleFunction": {
|
||||||
"message": "Throttle"
|
"message": "Throttle"
|
||||||
},
|
},
|
||||||
"ledStripVtxFunction": {
|
"ledStripVtxFunction": {
|
||||||
"message": "Larson scanner"
|
"message": "Larson scanner"
|
||||||
},
|
},
|
||||||
"ledStripBlinkTitle": {
|
"ledStripBlinkTitle": {
|
||||||
"message": "Blink"
|
"message": "Blink"
|
||||||
},
|
},
|
||||||
"ledStripBlinkAlwaysOverlay": {
|
"ledStripBlinkAlwaysOverlay": {
|
||||||
"message": "Blink always"
|
"message": "Blink always"
|
||||||
},
|
},
|
||||||
"ledStripBlinkLandingOverlay": {
|
"ledStripBlinkLandingOverlay": {
|
||||||
"message": "Blink on landing"
|
"message": "Blink on landing"
|
||||||
},
|
},
|
||||||
"ledStripOverlayTitle": {
|
"ledStripOverlayTitle": {
|
||||||
"message": "Overlay"
|
"message": "Overlay"
|
||||||
},
|
},
|
||||||
"ledStripWarningsOverlay": {
|
"ledStripWarningsOverlay": {
|
||||||
"message": "Warnings"
|
"message": "Warnings"
|
||||||
},
|
},
|
||||||
"ledStripIndecatorOverlay": {
|
"ledStripIndecatorOverlay": {
|
||||||
"message": "Indicator (uses position on matrix)"
|
"message": "Indicator (uses position on matrix)"
|
||||||
},
|
},
|
||||||
|
|
||||||
"controlAxisRoll": {
|
"controlAxisRoll": {
|
||||||
|
@ -1852,60 +1866,66 @@
|
||||||
"pidTuningLevelHelp": {
|
"pidTuningLevelHelp": {
|
||||||
"message": "The values below change the behaviour of the ANGLE and HORIZON flight modes. Different PID controllers handle the values differently. Please check the documentation."
|
"message": "The values below change the behaviour of the ANGLE and HORIZON flight modes. Different PID controllers handle the values differently. Please check the documentation."
|
||||||
},
|
},
|
||||||
"pidTuningNonProfileFilterSettings": {
|
"pidTuningNonProfileFilterSettings": {
|
||||||
"message": "Profile independent Filter Settings"
|
"message": "Profile independent Filter Settings"
|
||||||
},
|
},
|
||||||
"pidTuningGyroLowpassFrequency": {
|
"pidTuningGyroLowpassFrequency": {
|
||||||
"message": "Gyro Soft Lowpass Frequency [Hz]"
|
"message": "Gyro Soft Lowpass Frequency [Hz]"
|
||||||
},
|
},
|
||||||
"pidTuningGyroLowpassFrequencyHelp": {
|
"pidTuningGyroLowpassFrequencyHelp": {
|
||||||
"message": "Gyro Soft Lowpass Frequency [Hz]"
|
"message": "Gyro Soft Lowpass Frequency [Hz]"
|
||||||
},
|
},
|
||||||
"pidTuningGyroNotch1Frequency": {
|
"pidTuningGyroNotch1Frequency": {
|
||||||
"message": "Gyro Notch Filter 1 Frequency [Hz]"
|
"message": "Gyro Notch Filter 1 Frequency [Hz]"
|
||||||
},
|
},
|
||||||
"pidTuningGyroNotch2Frequency": {
|
"pidTuningGyroNotch2Frequency": {
|
||||||
"message": "Gyro Notch Filter 2 Frequency [Hz]"
|
"message": "Gyro Notch Filter 2 Frequency [Hz]"
|
||||||
},
|
},
|
||||||
"pidTuningGyroNotchFrequencyHelp": {
|
"pidTuningGyroNotchFrequencyHelp": {
|
||||||
"message": "Gyro Notch Filter Frequency in Hz (0 means disabled)"
|
"message": "Gyro Notch Filter Frequency in Hz (0 means disabled)"
|
||||||
},
|
},
|
||||||
"pidTuningGyroNotch1Cutoff": {
|
"pidTuningGyroNotch1Cutoff": {
|
||||||
"message": "Gyro Notch Filter Cutoff 1 Frequency [Hz]"
|
"message": "Gyro Notch Filter Cutoff 1 Frequency [Hz]"
|
||||||
},
|
},
|
||||||
"pidTuningGyroNotch2Cutoff": {
|
"pidTuningGyroNotch2Cutoff": {
|
||||||
"message": "Gyro Notch Filter Cutoff 2 Frequency [Hz]"
|
"message": "Gyro Notch Filter Cutoff 2 Frequency [Hz]"
|
||||||
},
|
},
|
||||||
"pidTuningGyroNotchCutoffHelp": {
|
"pidTuningGyroNotchCutoffHelp": {
|
||||||
"message": "Gyro Notch Filter Cutoff Frequency in Hz (This is where notch filter starts. For example with notch filter 160 and notch hz of 260 it means the range is 160-360hz with most attenuation around center)"
|
"message": "Gyro Notch Filter Cutoff Frequency in Hz (This is where notch filter starts. For example with notch filter 160 and notch hz of 260 it means the range is 160-360hz with most attenuation around center)"
|
||||||
},
|
},
|
||||||
"pidTuningFilterSettings": {
|
"pidTuningFilterSettings": {
|
||||||
"message": "Filter Settings"
|
"message": "Filter Settings"
|
||||||
},
|
},
|
||||||
"pidTuningDTermLowpassFrequency": {
|
"pidTuningDTermLowpassType": {
|
||||||
"message": "D Term Lowpass Frequency [Hz]"
|
"message": "D-Term Lowpass Filter"
|
||||||
},
|
},
|
||||||
"pidTuningDTermLowpassFrequencyHelp": {
|
"pidTuningDTermLowpassTypeTip": {
|
||||||
"message": "D Term Lowpass Frequency [Hz] (0 means disabled)"
|
"message": "Select D-Term lowpass filter type to use. Default is BIQUAD"
|
||||||
},
|
},
|
||||||
"pidTuningDTermNotchFrequency": {
|
"pidTuningDTermLowpassFrequency": {
|
||||||
"message": "D Term Notch Filter Frequency [Hz]"
|
"message": "D Term Lowpass Frequency [Hz]"
|
||||||
},
|
},
|
||||||
"pidTuningDTermNotchFrequencyHelp": {
|
"pidTuningDTermLowpassFrequencyHelp": {
|
||||||
"message": "D Term Notch Filter Frequency [Hz] (0 means disabled)"
|
"message": "D Term Lowpass Frequency [Hz] (0 means disabled)"
|
||||||
},
|
},
|
||||||
"pidTuningDTermNotchCutoff": {
|
"pidTuningDTermNotchFrequency": {
|
||||||
"message": "D Term Notch Filter Cutoff [Hz]"
|
"message": "D Term Notch Filter Frequency [Hz]"
|
||||||
},
|
},
|
||||||
"pidTuningDTermNotchCutoffHelp": {
|
"pidTuningDTermNotchFrequencyHelp": {
|
||||||
"message": "D Term Notch Filter Cutoff in Hz (This is where notch filter starts. For example with notch filter 160 and notch hz of 260 it means the range is 160-360hz with most attenuation around center)"
|
"message": "D Term Notch Filter Frequency [Hz] (0 means disabled)"
|
||||||
},
|
},
|
||||||
"pidTuningYawLowpassFrequency": {
|
"pidTuningDTermNotchCutoff": {
|
||||||
"message": "Yaw Lowpass Frequency [Hz]"
|
"message": "D Term Notch Filter Cutoff [Hz]"
|
||||||
},
|
},
|
||||||
"pidTuningYawLowpassFrequencyHelp": {
|
"pidTuningDTermNotchCutoffHelp": {
|
||||||
"message": "Yaw Lowpass Frequency [Hz] (Yaw axis can sometimes be noiser than the rest. This filter only affects the P of yaw)"
|
"message": "D Term Notch Filter Cutoff in Hz (This is where notch filter starts. For example with notch filter 160 and notch hz of 260 it means the range is 160-360hz with most attenuation around center)"
|
||||||
},
|
},
|
||||||
|
"pidTuningYawLowpassFrequency": {
|
||||||
|
"message": "Yaw Lowpass Frequency [Hz]"
|
||||||
|
},
|
||||||
|
"pidTuningYawLowpassFrequencyHelp": {
|
||||||
|
"message": "Yaw Lowpass Frequency [Hz] (Yaw axis can sometimes be noiser than the rest. This filter only affects the P of yaw)"
|
||||||
|
},
|
||||||
"pidTuningVbatPidCompensation": {
|
"pidTuningVbatPidCompensation": {
|
||||||
"message": "Vbat PID Compensation"
|
"message": "Vbat PID Compensation"
|
||||||
},
|
},
|
||||||
|
@ -2480,22 +2500,22 @@
|
||||||
"message": "FPV Camera Angle [degrees]"
|
"message": "FPV Camera Angle [degrees]"
|
||||||
},
|
},
|
||||||
"onboardLoggingBlackbox": {
|
"onboardLoggingBlackbox": {
|
||||||
"message": "Blackbox logging device"
|
"message": "Blackbox logging device"
|
||||||
},
|
},
|
||||||
"onboardLoggingRateOfLogging": {
|
"onboardLoggingRateOfLogging": {
|
||||||
"message": "Blackbox logging rate"
|
"message": "Blackbox logging rate"
|
||||||
},
|
},
|
||||||
"onboardLoggingSerialLogger": {
|
"onboardLoggingSerialLogger": {
|
||||||
"message": "Outboard serial logging device"
|
"message": "Outboard serial logging device"
|
||||||
},
|
},
|
||||||
"onboardLoggingFlashLogger": {
|
"onboardLoggingFlashLogger": {
|
||||||
"message": "Onboard dataflash chip"
|
"message": "Onboard dataflash chip"
|
||||||
},
|
},
|
||||||
"onboardLoggingEraseInProgress": {
|
"onboardLoggingEraseInProgress": {
|
||||||
"message": "Erase in progress, please wait..."
|
"message": "Erase in progress, please wait..."
|
||||||
},
|
},
|
||||||
"onboardLoggingOnboardSDCard": {
|
"onboardLoggingOnboardSDCard": {
|
||||||
"message": "Onboard SD card"
|
"message": "Onboard SD card"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,14 @@ var Features = function (config) {
|
||||||
if (semver.gte(CONFIG.apiVersion, "1.31.0")) {
|
if (semver.gte(CONFIG.apiVersion, "1.31.0")) {
|
||||||
features.push(
|
features.push(
|
||||||
{bit: 27, group: 'other', name: 'ESC_SENSOR'}
|
{bit: 27, group: 'other', name: 'ESC_SENSOR'}
|
||||||
)
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
|
||||||
|
features.push(
|
||||||
|
{bit: 28, group: 'other', name: 'ANTI_GRAVITY'},
|
||||||
|
{bit: 29, group: 'other', name: 'DYNAMIC_FILTER'}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
23
js/fc.js
23
js/fc.js
|
@ -77,21 +77,21 @@ var FC = {
|
||||||
rateProfile: 0,
|
rateProfile: 0,
|
||||||
boardType: 0,
|
boardType: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
FEATURE_CONFIG = {
|
FEATURE_CONFIG = {
|
||||||
features: 0,
|
features: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
MIXER_CONFIG = {
|
MIXER_CONFIG = {
|
||||||
mixer: 0,
|
mixer: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
BOARD_ALIGNMENT_CONFIG = {
|
BOARD_ALIGNMENT_CONFIG = {
|
||||||
roll: 0,
|
roll: 0,
|
||||||
pitch: 0,
|
pitch: 0,
|
||||||
yaw: 0,
|
yaw: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
LED_STRIP = [];
|
LED_STRIP = [];
|
||||||
LED_COLORS = [];
|
LED_COLORS = [];
|
||||||
LED_MODE_COLORS = [];
|
LED_MODE_COLORS = [];
|
||||||
|
@ -192,7 +192,7 @@ var FC = {
|
||||||
VOLTAGE_METER_CONFIGS = [];
|
VOLTAGE_METER_CONFIGS = [];
|
||||||
CURRENT_METERS = [];
|
CURRENT_METERS = [];
|
||||||
CURRENT_METER_CONFIGS = [];
|
CURRENT_METER_CONFIGS = [];
|
||||||
|
|
||||||
BATTERY_STATE = {};
|
BATTERY_STATE = {};
|
||||||
BATTERY_CONFIG = {
|
BATTERY_CONFIG = {
|
||||||
vbatmincellvoltage: 0,
|
vbatmincellvoltage: 0,
|
||||||
|
@ -202,7 +202,7 @@ var FC = {
|
||||||
voltageMeterSource: 0,
|
voltageMeterSource: 0,
|
||||||
currentMeterSource: 0,
|
currentMeterSource: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
ARMING_CONFIG = {
|
ARMING_CONFIG = {
|
||||||
auto_disarm_delay: 0,
|
auto_disarm_delay: 0,
|
||||||
disarm_kill_switch: 0,
|
disarm_kill_switch: 0,
|
||||||
|
@ -211,7 +211,7 @@ var FC = {
|
||||||
FC_CONFIG = {
|
FC_CONFIG = {
|
||||||
loopTime: 0
|
loopTime: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
MISC = {
|
MISC = {
|
||||||
// DEPRECATED = only used to store values that are written back to the fc as-is, do NOT use for any other purpose
|
// DEPRECATED = only used to store values that are written back to the fc as-is, do NOT use for any other purpose
|
||||||
failsafe_throttle: 0,
|
failsafe_throttle: 0,
|
||||||
|
@ -228,14 +228,14 @@ var FC = {
|
||||||
maxthrottle: 0,
|
maxthrottle: 0,
|
||||||
mincommand: 0,
|
mincommand: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
GPS_CONFIG = {
|
GPS_CONFIG = {
|
||||||
provider: 0,
|
provider: 0,
|
||||||
ublox_sbas: 0,
|
ublox_sbas: 0,
|
||||||
auto_config: 0,
|
auto_config: 0,
|
||||||
auto_baud: 0,
|
auto_baud: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
COMPASS_CONFIG = {
|
COMPASS_CONFIG = {
|
||||||
mag_declination: 0,
|
mag_declination: 0,
|
||||||
};
|
};
|
||||||
|
@ -243,7 +243,7 @@ var FC = {
|
||||||
RSSI_CONFIG = {
|
RSSI_CONFIG = {
|
||||||
channel: 0,
|
channel: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
MOTOR_3D_CONFIG = {
|
MOTOR_3D_CONFIG = {
|
||||||
deadband3d_low: 0,
|
deadband3d_low: 0,
|
||||||
deadband3d_high: 0,
|
deadband3d_high: 0,
|
||||||
|
@ -313,6 +313,7 @@ var FC = {
|
||||||
dterm_notch_cutoff: 0,
|
dterm_notch_cutoff: 0,
|
||||||
gyro_soft_notch_hz_2: 0,
|
gyro_soft_notch_hz_2: 0,
|
||||||
gyro_soft_notch_cutoff_2: 0,
|
gyro_soft_notch_cutoff_2: 0,
|
||||||
|
dterm_filter_type: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
ADVANCED_TUNING = {
|
ADVANCED_TUNING = {
|
||||||
|
@ -330,6 +331,8 @@ var FC = {
|
||||||
pidMaxVelocityYaw: 0,
|
pidMaxVelocityYaw: 0,
|
||||||
levelAngleLimit: 0,
|
levelAngleLimit: 0,
|
||||||
levelSensitivity: 0,
|
levelSensitivity: 0,
|
||||||
|
itermThrottleThreshold: 0,
|
||||||
|
itermAcceleratorGain: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
SENSOR_CONFIG = {
|
SENSOR_CONFIG = {
|
||||||
|
|
|
@ -789,6 +789,9 @@ MspHelper.prototype.process_data = function(dataHandler) {
|
||||||
FILTER_CONFIG.gyro_soft_notch_hz_2 = data.readU16();
|
FILTER_CONFIG.gyro_soft_notch_hz_2 = data.readU16();
|
||||||
FILTER_CONFIG.gyro_soft_notch_cutoff_2 = data.readU16();
|
FILTER_CONFIG.gyro_soft_notch_cutoff_2 = data.readU16();
|
||||||
}
|
}
|
||||||
|
if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
|
||||||
|
FILTER_CONFIG.dterm_filter_type = data.readU8();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MSPCodes.MSP_SET_PID_ADVANCED:
|
case MSPCodes.MSP_SET_PID_ADVANCED:
|
||||||
|
@ -808,10 +811,14 @@ MspHelper.prototype.process_data = function(dataHandler) {
|
||||||
ADVANCED_TUNING.itermThrottleGain = data.readU8();
|
ADVANCED_TUNING.itermThrottleGain = data.readU8();
|
||||||
ADVANCED_TUNING.pidMaxVelocity = data.readU16();
|
ADVANCED_TUNING.pidMaxVelocity = data.readU16();
|
||||||
ADVANCED_TUNING.pidMaxVelocityYaw = data.readU16();
|
ADVANCED_TUNING.pidMaxVelocityYaw = data.readU16();
|
||||||
}
|
if (semver.gte(CONFIG.apiVersion, "1.24.0")) {
|
||||||
if (semver.gte(CONFIG.apiVersion, "1.24.0")) {
|
ADVANCED_TUNING.levelAngleLimit = data.readU8();
|
||||||
ADVANCED_TUNING.levelAngleLimit = data.readU8();
|
ADVANCED_TUNING.levelSensitivity = data.readU8();
|
||||||
ADVANCED_TUNING.levelSensitivity = data.readU8();
|
}
|
||||||
|
if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
|
||||||
|
ADVANCED_TUNING.itermThrottleThreshold = data.readU16();
|
||||||
|
ADVANCED_TUNING.itermAcceleratorGain = data.readU16();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MSPCodes.MSP_SENSOR_CONFIG:
|
case MSPCodes.MSP_SENSOR_CONFIG:
|
||||||
|
@ -1392,6 +1399,9 @@ MspHelper.prototype.crunch = function(code) {
|
||||||
buffer.push16(FILTER_CONFIG.gyro_soft_notch_hz_2)
|
buffer.push16(FILTER_CONFIG.gyro_soft_notch_hz_2)
|
||||||
.push16(FILTER_CONFIG.gyro_soft_notch_cutoff_2)
|
.push16(FILTER_CONFIG.gyro_soft_notch_cutoff_2)
|
||||||
}
|
}
|
||||||
|
if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
|
||||||
|
buffer.push8(FILTER_CONFIG.dterm_filter_type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MSPCodes.MSP_SET_PID_ADVANCED:
|
case MSPCodes.MSP_SET_PID_ADVANCED:
|
||||||
|
@ -1412,6 +1422,10 @@ MspHelper.prototype.crunch = function(code) {
|
||||||
buffer.push8(ADVANCED_TUNING.levelAngleLimit)
|
buffer.push8(ADVANCED_TUNING.levelAngleLimit)
|
||||||
.push8(ADVANCED_TUNING.levelSensitivity);
|
.push8(ADVANCED_TUNING.levelSensitivity);
|
||||||
}
|
}
|
||||||
|
if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
|
||||||
|
buffer.push16(ADVANCED_TUNING.itermThrottleThreshold)
|
||||||
|
.push16(ADVANCED_TUNING.itermAcceleratorGain);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// only supports 1 version pre bf 3.0
|
// only supports 1 version pre bf 3.0
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -326,6 +326,24 @@
|
||||||
</td>
|
</td>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="antigravity topspacer tpa">
|
||||||
|
<table class="cf">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th i18n="pidTuningAntiGravityGain"></th>
|
||||||
|
<th i18n="pidTuningAntiGravityThres"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 35px;">
|
||||||
|
<td><input type="number" name="itermAcceleratorGain" step="0.1" min="1" max="30" /></td>
|
||||||
|
<td><input type="number" name="itermThrottleThreshold" step="10" min="20" max="1000" /></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="gui_box grey topspacer">
|
<div class="gui_box grey topspacer">
|
||||||
<table class="pid_titlebar">
|
<table class="pid_titlebar">
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -434,6 +452,21 @@
|
||||||
<p i18n="tuningHelp"></p>
|
<p i18n="tuningHelp"></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="dtermfiltertype cf_column twothird">
|
||||||
|
<div class="profile single-field" style="width:200px; margin-bottom: 0px;">
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningDTermLowpassTypeTip" style="margin-top: 5px;"></div>
|
||||||
|
<div class="head" i18n="pidTuningDTermLowpassType"></div>
|
||||||
|
<div class="bottomarea">
|
||||||
|
<select name="dtermFilterType">
|
||||||
|
<option value="0" class="PT1">PT1</option>
|
||||||
|
<option value="1" class="BIQUAD">BIQUAD</option>
|
||||||
|
<option value="2" class="FIR">FIR</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="cf_column twothird">
|
<div class="cf_column twothird">
|
||||||
<div class="gui_box grey topspacer pid_filter">
|
<div class="gui_box grey topspacer pid_filter">
|
||||||
<table class="pid_titlebar new_rates">
|
<table class="pid_titlebar new_rates">
|
||||||
|
|
|
@ -258,6 +258,15 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
} else {
|
} else {
|
||||||
$('.pid_sensitivity').hide();
|
$('.pid_sensitivity').hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
|
||||||
|
$('.profile select[name="dtermFilterType"]').val(FILTER_CONFIG.dterm_filter_type);
|
||||||
|
$('.antigravity input[name="itermThrottleThreshold"]').val(ADVANCED_TUNING.itermThrottleThreshold);
|
||||||
|
$('.antigravity input[name="itermAcceleratorGain"]').val(ADVANCED_TUNING.itermAcceleratorGain / 1000);
|
||||||
|
} else {
|
||||||
|
$('.dtermfiltertype').hide();
|
||||||
|
$('.antigravity').hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function form_to_pid_and_rc() {
|
function form_to_pid_and_rc() {
|
||||||
|
@ -368,6 +377,12 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
ADVANCED_TUNING.levelAngleLimit = parseInt($('.pid_tuning input[name="angleLimit"]').val());
|
ADVANCED_TUNING.levelAngleLimit = parseInt($('.pid_tuning input[name="angleLimit"]').val());
|
||||||
ADVANCED_TUNING.levelSensitivity = parseInt($('.pid_tuning input[name="sensitivity"]').val());
|
ADVANCED_TUNING.levelSensitivity = parseInt($('.pid_tuning input[name="sensitivity"]').val());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (semver.gte(CONFIG.apiVersion, "1.36.0")) {
|
||||||
|
FILTER_CONFIG.dterm_filter_type = $('.profile select[name="dtermFilterType"]').val();
|
||||||
|
ADVANCED_TUNING.itermThrottleThreshold = parseInt($('.antigravity input[name="itermThrottleThreshold"]').val());
|
||||||
|
ADVANCED_TUNING.itermAcceleratorGain = parseInt($('.antigravity input[name="itermAcceleratorGain"]').val() * 1000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function showAllPids() {
|
function showAllPids() {
|
||||||
|
@ -590,7 +605,7 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
$('#pid-tuning .ptermSetpoint').hide();
|
$('#pid-tuning .ptermSetpoint').hide();
|
||||||
$('#pid-tuning .dtermSetpoint').hide();
|
$('#pid-tuning .dtermSetpoint').hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!semver.gte(CONFIG.apiVersion, "1.16.0")) {
|
if (!semver.gte(CONFIG.apiVersion, "1.16.0")) {
|
||||||
$('#pid-tuning .delta').hide();
|
$('#pid-tuning .delta').hide();
|
||||||
$('.tab-pid_tuning .note').hide();
|
$('.tab-pid_tuning .note').hide();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue