Added selection of dterm lowpass filter type

10.3.x-maintenance
Bas Delfos 2017-07-12 11:36:25 +02:00
parent 667c4d5af3
commit bc86e8bc18
5 changed files with 140 additions and 102 deletions

View File

@ -741,19 +741,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"
@ -921,10 +921,10 @@
"message": "Frequency" "message": "Frequency"
}, },
"pidTuningRatesCurve": { "pidTuningRatesCurve": {
"message": "Rates" "message": "Rates"
}, },
"throttle": { "throttle": {
"message": "Throttle" "message": "Throttle"
}, },
"pidTuningButtonSave": { "pidTuningButtonSave": {
"message": "Save" "message": "Save"
@ -1239,13 +1239,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": {
@ -1387,7 +1387,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."
}, },
@ -1671,73 +1671,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": {
@ -1849,60 +1849,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"
}, },
@ -2474,22 +2480,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"
} }

View File

@ -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 = {

View File

@ -788,6 +788,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:
@ -1388,6 +1391,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:

View File

@ -434,6 +434,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">

View File

@ -258,6 +258,12 @@ 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);
} else {
$('.dtermfiltertype').hide();
}
} }
function form_to_pid_and_rc() { function form_to_pid_and_rc() {
@ -368,6 +374,10 @@ 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();
}
} }
function showAllPids() { function showAllPids() {
@ -590,7 +600,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();