Merge branch 'add_filter_settings' of https://github.com/mikeller/betaflight-configurator
commit
7f1848aeb5
|
@ -776,8 +776,11 @@
|
||||||
"pidTuningUpgradeFirmwareToChangePidController": {
|
"pidTuningUpgradeFirmwareToChangePidController": {
|
||||||
"message": "<span style=\"color: red\">Changing PID controller disabled - you can change it via the CLI.</span> You have firmware with API version <span style=\"color: red\">$1</span>, but this functionality requires requires <span style=\"color: #ffbb00\">$2</span>."
|
"message": "<span style=\"color: red\">Changing PID controller disabled - you can change it via the CLI.</span> You have firmware with API version <span style=\"color: red\">$1</span>, but this functionality requires requires <span style=\"color: #ffbb00\">$2</span>."
|
||||||
},
|
},
|
||||||
"pidTuningName": {
|
"pidTuningSubTabPid": {
|
||||||
"message": "Name"
|
"message": "PID Settings"
|
||||||
|
},
|
||||||
|
"pidTuningSubTabFilter": {
|
||||||
|
"message": "Filter Settings"
|
||||||
},
|
},
|
||||||
"pidTuningShowAllPids": {
|
"pidTuningShowAllPids": {
|
||||||
"message": "Show all PIDs"
|
"message": "Show all PIDs"
|
||||||
|
@ -1623,18 +1626,54 @@
|
||||||
"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."
|
||||||
},
|
},
|
||||||
"pidTuningLfpFilters": {
|
"pidTuningNonProfileFilterSettings": {
|
||||||
"message": "LFP Filters"
|
"message": "Profile independent Filter Settings"
|
||||||
},
|
},
|
||||||
"pidTuningGyro": {
|
"pidTuningGyroLowpassFrequency": {
|
||||||
"message": "Gyro Soft (Hz)"
|
"message": "Gyro Soft Lowpass Frequency (Hz)"
|
||||||
},
|
},
|
||||||
"pidTuningDTerm": {
|
"pidTuningGyroLowpassFrequencyHelp": {
|
||||||
"message": "D Term (Hz)"
|
"message": "Gyro Soft Lowpass Frequency (Hz)"
|
||||||
},
|
},
|
||||||
"pidTuningYaw": {
|
"pidTuningGyroNotchFrequency": {
|
||||||
"message": "Yaw (Hz)"
|
"message": "Gyro Notch Filter Frequency (Hz)"
|
||||||
},
|
},
|
||||||
|
"pidTuningGyroNotchFrequencyHelp": {
|
||||||
|
"message": "Gyro Notch Filter Frequency (Hz)"
|
||||||
|
},
|
||||||
|
"pidTuningGyroNotchCutoff": {
|
||||||
|
"message": "Gyro Notch Filter Cutoff Frequency (Hz)"
|
||||||
|
},
|
||||||
|
"pidTuningGyroNotchCutoffHelp": {
|
||||||
|
"message": "Gyro Notch Filter Cutoff Frequency (Hz)"
|
||||||
|
},
|
||||||
|
"pidTuningFilterSettings": {
|
||||||
|
"message": "Filter Settings"
|
||||||
|
},
|
||||||
|
"pidTuningDTermLowpassFrequency": {
|
||||||
|
"message": "D Term Lowpass Frequency (Hz)"
|
||||||
|
},
|
||||||
|
"pidTuningDTermLowpassFrequencyHelp": {
|
||||||
|
"message": "D Term Lowpass Frequency (Hz)"
|
||||||
|
},
|
||||||
|
"pidTuningDTermNotchFrequency": {
|
||||||
|
"message": "D Term Notch Filter Frequency (Hz)"
|
||||||
|
},
|
||||||
|
"pidTuningDTermNotchFrequencyHelp": {
|
||||||
|
"message": "D Term Notch Filter Frequency (Hz)"
|
||||||
|
},
|
||||||
|
"pidTuningDTermNotchCutoff": {
|
||||||
|
"message": "D Term Notch Filter Cutoff (Hz)"
|
||||||
|
},
|
||||||
|
"pidTuningDTermNotchCutoffHelp": {
|
||||||
|
"message": "D Term Notch Filter Cutoff (Hz)"
|
||||||
|
},
|
||||||
|
"pidTuningYawLowpassFrequency": {
|
||||||
|
"message": "Yaw Lowpass Frequency (Hz)"
|
||||||
|
},
|
||||||
|
"pidTuningYawLowpassFrequencyHelp": {
|
||||||
|
"message": "Yaw Lowpass Frequency (Hz)"
|
||||||
|
},
|
||||||
"pidTuningVbatPidCompensation": {
|
"pidTuningVbatPidCompensation": {
|
||||||
"message": "Vbat PID Compensation"
|
"message": "Vbat PID Compensation"
|
||||||
},
|
},
|
||||||
|
|
|
@ -242,7 +242,7 @@
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
border-right: 1px solid #ccc;
|
border-right: 1px solid #ccc;
|
||||||
width: calc(100% -1px);
|
width: calc(100% - 1px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-pid_tuning .pid_titlebar th:first-child {
|
.tab-pid_tuning .pid_titlebar th:first-child {
|
||||||
|
@ -305,6 +305,33 @@
|
||||||
border-radius: 0px;
|
border-radius: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tab-pid_tuning .tab_container {
|
||||||
|
float: top;
|
||||||
|
width: 300px;
|
||||||
|
height: 20px;
|
||||||
|
border-right-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-pid_tuning .tab_container td {
|
||||||
|
background-color: #2e2e2e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-pid_tuning .tab_container td a {
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-pid_tuning .tab_container td.active {
|
||||||
|
background-color: #ffbb00;
|
||||||
|
color: #000;
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-pid_tuning .tab_container td.active a {
|
||||||
|
background-color: #ffbb00;
|
||||||
|
color: #000;
|
||||||
|
text-shadow: 0px 1px rgba(255, 255, 255, 0.45);
|
||||||
|
}
|
||||||
|
|
||||||
.tab-pid_tuning .single-field {
|
.tab-pid_tuning .single-field {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
@ -374,7 +401,7 @@
|
||||||
border-bottom: 1px solid #ccc;
|
border-bottom: 1px solid #ccc;
|
||||||
color: #828282;
|
color: #828282;
|
||||||
/* font-family: 'open_sans', Arial; */
|
/* font-family: 'open_sans', Arial; */
|
||||||
background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 10%, transparent 10%, transparent 20%, rgba(255, 255, 255, .2) 20%, rgba(255, 255, 255, .2) 30%, transparent 30%, transparent 40%, rgba(255, 255, 255, .2) 40%, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent 60%, rgba(255, 255, 255, .2) 60%, rgba(255, 255, 255, .2) 70%, transparent 70%, transparent 80%, rgba(255, 255, 255, .2) 80%, rgba(255, 255, 255, .2) 90%, transparent 90%, transparent 100%, rgba(255, 255, 255, .2) 100%, transparent);
|
background-image: linear-gradient(315deg, rgba(255, 255, 255, .2) 10%, transparent 10%, transparent 20%, rgba(255, 255, 255, .2) 20%, rgba(255, 255, 255, .2) 30%, transparent 30%, transparent 40%, rgba(255, 255, 255, .2) 40%, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent 60%, rgba(255, 255, 255, .2) 60%, rgba(255, 255, 255, .2) 70%, transparent 70%, transparent 80%, rgba(255, 255, 255, .2) 80%, rgba(255, 255, 255, .2) 90%, transparent 90%, transparent 100%, rgba(255, 255, 255, .2) 100%, transparent);
|
||||||
}
|
}
|
||||||
|
|
||||||
.fancy.header th {
|
.fancy.header th {
|
||||||
|
@ -383,7 +410,6 @@
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.pid_mode {
|
.pid_mode {
|
||||||
width: calc(100% - 5px);
|
width: calc(100% - 5px);
|
||||||
height: 20px;
|
height: 20px;
|
||||||
|
@ -399,7 +425,7 @@
|
||||||
border-bottom: 1px solid #ccc;
|
border-bottom: 1px solid #ccc;
|
||||||
color: #828282;
|
color: #828282;
|
||||||
font-family: 'open_sans', Arial;
|
font-family: 'open_sans', Arial;
|
||||||
background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 10%, transparent 10%, transparent 20%,
|
background-image: linear-gradient(315deg, rgba(255, 255, 255, .2) 10%, transparent 10%, transparent 20%,
|
||||||
rgba(255, 255, 255, .2) 20%, rgba(255, 255, 255, .2) 30%, transparent 30%, transparent 40%,
|
rgba(255, 255, 255, .2) 20%, rgba(255, 255, 255, .2) 30%, transparent 30%, transparent 40%,
|
||||||
rgba(255, 255, 255, .2) 40%, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent 60%,
|
rgba(255, 255, 255, .2) 40%, rgba(255, 255, 255, .2) 50%, transparent 50%, transparent 60%,
|
||||||
rgba(255, 255, 255, .2) 60%, rgba(255, 255, 255, .2) 70%, transparent 70%, transparent 80%,
|
rgba(255, 255, 255, .2) 60%, rgba(255, 255, 255, .2) 70%, transparent 70%, transparent 80%,
|
||||||
|
|
|
@ -4,11 +4,6 @@
|
||||||
<div class="cf_doc_version_bt">
|
<div class="cf_doc_version_bt">
|
||||||
<a id="button-documentation" href="https://github.com/betaflight/betaflight/releases" target="_blank"></a>
|
<a id="button-documentation" href="https://github.com/betaflight/betaflight/releases" target="_blank"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="note" style="margin-bottom: 25px;">
|
|
||||||
<div class="note_spacer">
|
|
||||||
<p i18n="tuningHelp"></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="cf_column">
|
<div class="cf_column">
|
||||||
<div class="profile single-field">
|
<div class="profile single-field">
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningProfileTip" style="margin-top: 5px;"></div>
|
<div class="helpicon cf_tip" i18n_title="pidTuningProfileTip" style="margin-top: 5px;"></div>
|
||||||
|
@ -50,417 +45,526 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tab_container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="pid active">
|
||||||
|
<a href="#" i18n="pidTuningSubTabPid" />
|
||||||
|
</td>
|
||||||
|
<td class="filter">
|
||||||
|
<a href="#" i18n="pidTuningSubTabFilter" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
<form name="pid-tuning" id="pid-tuning">
|
<form name="pid-tuning" id="pid-tuning">
|
||||||
<div class="clear-both"></div>
|
<div class="subtab-pid">
|
||||||
<div class="cf_column twothird">
|
<div class="clear-both"></div>
|
||||||
<div class="gui_box grey">
|
<div class="cf_column twothird">
|
||||||
<table class="pid_titlebar">
|
<div class="gui_box grey topspacer">
|
||||||
<tr>
|
<table class="pid_titlebar">
|
||||||
<th class="name" i18n="pidTuningName"></th>
|
|
||||||
<th class="proportional" i18n="pidTuningProportional"></th>
|
|
||||||
<th class="integral" i18n="pidTuningIntegral"></th>
|
|
||||||
<th class="derivative" i18n="pidTuningDerivative"></th>
|
|
||||||
<th class="rc_rate" i18n="pidTuningRcRate"></th>
|
|
||||||
<th class="rate" i18n="pidTuningRate"></th>
|
|
||||||
<th class="rc_expo" i18n="pidTuningRcExpo"></th>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<table id="pid_main" class="pid_tuning">
|
|
||||||
<tr>
|
|
||||||
<th colspan="8">
|
|
||||||
<div class="pid_mode">
|
|
||||||
<div i18n="pidTuningBasic" style="float:left;"></div>
|
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningPidTuningTip"></div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="ROLL">
|
|
||||||
<!-- 0 -->
|
|
||||||
<td bgcolor="#FF8080"></td>
|
|
||||||
<td class="pid_data"><input type="number" name="p" step="1" min="0" max="255" /></td>
|
|
||||||
<td class="pid_data"><input type="number" name="i" step="1" min="0" max="255" /></td>
|
|
||||||
<td class="pid_data"><input type="number" name="d" step="1" min="0" max="255" /></td>
|
|
||||||
<td rowspan="2" style="background-color:white;">
|
|
||||||
<input type="number" name="rc_rate" step="0.01" min="0" max="2.5" />
|
|
||||||
<div class="bracket"></div>
|
|
||||||
</td>
|
|
||||||
<td class="roll_rate"><input type="number" name="roll_rate" step="0.01" min="0" max="1.00" /></td>
|
|
||||||
<td class="roll_pitch_rate" rowspan="2"><input type="number" name="roll_pitch_rate" step="0.01" min="0" max="1.00" /></td>
|
|
||||||
<td rowspan="2" style="background-color:white;">
|
|
||||||
<input type="number" name="rc_expo" step="0.01" min="0" max="1" />
|
|
||||||
<div class="bracket"></div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="PITCH">
|
|
||||||
<!-- 1 -->
|
|
||||||
<td bgcolor="#80FF80"></td>
|
|
||||||
<td class="pid_data"><input type="number" name="p" step="1" min="0" max="255" /></td>
|
|
||||||
<td class="pid_data"><input type="number" name="i" step="1" min="0" max="255" /></td>
|
|
||||||
<td class="pid_data"><input type="number" name="d" step="1" min="0" max="255" /></td>
|
|
||||||
<td class="pitch_rate"><input type="number" name="pitch_rate" step="0.01" min="0" max="1.00" /></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="YAW">
|
|
||||||
<!-- 2 -->
|
|
||||||
<td bgcolor="#8080FF"></td>
|
|
||||||
<td class="pid_data"><input type="number" name="p" step="1" min="0" max="255" /></td>
|
|
||||||
<td class="pid_data"><input type="number" name="i" step="1" min="0" max="255" /></td>
|
|
||||||
<td></td>
|
|
||||||
<td rowspan="1"><input type="number" name="rc_rate_yaw" step="0.01" min="0" max="2.5" /></td>
|
|
||||||
<td><input type="number" name="yaw_rate" step="0.01" min="0" max="2.55" /></td>
|
|
||||||
<td><input type="number" name="rc_yaw_expo" step="0.01" min="0" max="1" /></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="YAW_JUMP_PREVENTION">
|
|
||||||
<td colspan = 3>
|
|
||||||
<div>
|
|
||||||
<div i18n="pidTuningYawJumpPrevention" style="float:left;"></div>
|
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningYawJumpPreventionHelp"></div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="pid_data"><input type="number" name="d" step="1" min="0" max="255" /></td>
|
|
||||||
<td colspan=3></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div id="pid_optional" class="gui_box grey topspacer pid_tuning">
|
|
||||||
<table class="pid_titlebar">
|
|
||||||
<tr>
|
|
||||||
<th class="name" i18n="pidTuningName"></th>
|
|
||||||
<th class="proportional" i18n="pidTuningProportional"></th>
|
|
||||||
<th class="integral" i18n="pidTuningIntegral"></th>
|
|
||||||
<th class="derivative" i18n="pidTuningDerivative"></th>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<table id="pid_baro" class="pid_tuning">
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">
|
|
||||||
<div class="pid_mode" i18n="pidTuningAltitude"></div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="ALT">
|
|
||||||
<!-- 3 -->
|
|
||||||
<td></td>
|
|
||||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
|
||||||
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
|
||||||
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="Vario">
|
|
||||||
<!-- 9 -->
|
|
||||||
<td>VEL</td>
|
|
||||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
|
||||||
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
|
||||||
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<table id="pid_mag" class="pid_tuning">
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">
|
|
||||||
<div class="pid_mode" i18n="pidTuningMag"></div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="MAG">
|
|
||||||
<!-- 8 -->
|
|
||||||
<td></td>
|
|
||||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<table id="pid_gps" class="pid_tuning">
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">
|
|
||||||
<div class="pid_mode" i18n="pidTuningGps"></div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="Pos">
|
|
||||||
<!-- 4 -->
|
|
||||||
<td></td>
|
|
||||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
|
||||||
<!-- <td><input type="number" name="i" step="1" min="0" max="255" /></td> -->
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="PosR">
|
|
||||||
<!-- 5 -->
|
|
||||||
<td></td>
|
|
||||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
|
||||||
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
|
||||||
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="NavR">
|
|
||||||
<!-- 6 -->
|
|
||||||
<td></td>
|
|
||||||
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
|
||||||
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
|
||||||
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div id="pid_accel" class="gui_box grey topspacer pid_tuning">
|
|
||||||
<table class="pid_titlebar">
|
|
||||||
<tr>
|
|
||||||
<th class="third" i18n="pidTuningName"></th>
|
|
||||||
<th class="third" i18n="pidTuningStrength"></th>
|
|
||||||
<th class="third" i18n="pidTuningTransition"></th>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<table id="pid_level" class="pid_tuning">
|
|
||||||
<tr>
|
|
||||||
<th colspan="3">
|
|
||||||
<div class="pid_mode">
|
|
||||||
<div i18n="pidTuningLevel" style="float:left;"></div>
|
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningLevelHelp"></div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr class="ANGLE">
|
|
||||||
<!-- 7 -->
|
|
||||||
<td class="third" i18n="pidTuningAngle"></td>
|
|
||||||
<td class="third"><input type="number" name="p" step="1" min="0" max="255" /></td>
|
|
||||||
<td class="third"></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="HORIZON">
|
|
||||||
<!-- 7 -->
|
|
||||||
<td class="third" i18n="pidTuningHorizon"></td>
|
|
||||||
<td class="third"><input type="number" name="i" step="1" min="0" max="255" /></td>
|
|
||||||
<td class="third"><input type="number" name="d" step="1" min="0" max="255" /></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div id="pid_filter" class="gui_box grey topspacer pid_tuning">
|
|
||||||
<table class="pid_titlebar">
|
|
||||||
<tr>
|
|
||||||
<th class="third" i18n="pidTuningGyro"></th>
|
|
||||||
<th class="third" i18n="pidTuningDTerm"></th>
|
|
||||||
<th class="third" i18n="pidTuningYaw"></th>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="3">
|
|
||||||
<div class="pid_mode">
|
|
||||||
<div i18n="pidTuningLfpFilters" style="float: left;"> </div>
|
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningFilterTip"></div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="third"><input type="number" name="gyro" step="1" min="0" max="255" /></td>
|
|
||||||
<td class="third"><input type="number" name="dterm" step="1" min="0" max="500" /></td>
|
|
||||||
<td class="third"><input type="number" name="yaw" step="1" min="0" max="500" /></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="gui_box grey topspacer">
|
|
||||||
<table class="pid_titlebar new_rates">
|
|
||||||
<tr>
|
|
||||||
<th i18n="pidTuningNonProfilePidSettings"></th>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<table class="compensation">
|
|
||||||
<tbody class="features pidTuning">
|
|
||||||
<!-- table generated here -->
|
|
||||||
</tbody>
|
|
||||||
<tr class="rcInterpolation">
|
|
||||||
<td>
|
|
||||||
<select name="rcInterpolation-select">
|
|
||||||
<option value="0" i18n="pidTuningRcInterpolationOff"/>
|
|
||||||
<option value="1" i18n="pidTuningRcInterpolationDefault"/>
|
|
||||||
<option value="2" i18n="pidTuningRcInterpolationAuto"/>
|
|
||||||
<option value="3" i18n="pidTuningRcInterpolationManual"/>
|
|
||||||
</select>
|
|
||||||
</td>
|
|
||||||
<td colspan=2>
|
|
||||||
<div>
|
|
||||||
<label>
|
|
||||||
<span i18n="pidTuningRcInterpolation"></span>
|
|
||||||
</label>
|
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningRcInterpolationHelp"></div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="rcInterpolationInterval">
|
|
||||||
<td><input type="number" class="nonProfile" name="rcInterpolationInterval-number" step="1" min="1" max="50"/></td>
|
|
||||||
<td colspan=2>
|
|
||||||
<div>
|
|
||||||
<label>
|
|
||||||
<span i18n="pidTuningRcInterpolationInterval"></span>
|
|
||||||
</label>
|
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningRcInterpolationIntervalHelp"></div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="gui_box grey topspacer">
|
|
||||||
<table class="pid_titlebar new_rates">
|
|
||||||
<tr>
|
|
||||||
<th i18n="pidTuningPidSettings"></th>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<table class="compensation">
|
|
||||||
<tr class="delta">
|
|
||||||
<td>
|
|
||||||
<select name="delta-select">
|
|
||||||
<option value="0" i18n="pidTuningDeltaError"/>
|
|
||||||
<option value="1" i18n="pidTuningDeltaMeasurement"/>
|
|
||||||
</select>
|
|
||||||
</td>
|
|
||||||
<td colspan=2>
|
|
||||||
<div>
|
|
||||||
<label for="delta-select">
|
|
||||||
<span i18n="pidTuningDelta"></span>
|
|
||||||
</label>
|
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningDeltaTip"></div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="ptermSetpoint">
|
|
||||||
<td><input type="number" name="ptermSetpoint-number" step="0.01" min="0.30" max="1.00"/></td>
|
|
||||||
<td class="slider"><input type="range" name="ptermSetpoint-range" step="0.01" min="0.30" max="1.00"/></td>
|
|
||||||
<td colspan=2>
|
|
||||||
<div>
|
|
||||||
<label>
|
|
||||||
<span i18n="pidTuningPtermSetpoint"></span>
|
|
||||||
</label>
|
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningPtermSetpointHelp"></div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="dtermSetpoint">
|
|
||||||
<td><input type="number" name="dtermSetpoint-number" step="0.01" min="0.00" max="2.00"/></td>
|
|
||||||
<td class="slider"><input type="range" name="dtermSetpoint-range" step="0.01" min="0.00" max="2.00"/></td>
|
|
||||||
<td colspan=2>
|
|
||||||
<div>
|
|
||||||
<label>
|
|
||||||
<span i18n="pidTuningDtermSetpoint"></span>
|
|
||||||
</label>
|
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningDtermSetpointHelp"></div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<td><input type="checkbox" name="vbatpidcompensation" class="toggle" /></td>
|
|
||||||
<td colspan=2>
|
|
||||||
<div>
|
|
||||||
<label for="vbatpidcompensation">
|
|
||||||
<span i18n="pidTuningVbatPidCompensation"></span>
|
|
||||||
</label>
|
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningVbatPidCompensationHelp"></div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="gui_box grey topspacer">
|
|
||||||
<table class="pid_titlebar">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
<tr>
|
||||||
<th i18n="pidTuningRatesPreview"></th>
|
<th class="name" i18n="pidTuningName"></th>
|
||||||
|
<th class="proportional" i18n="pidTuningProportional"></th>
|
||||||
|
<th class="integral" i18n="pidTuningIntegral"></th>
|
||||||
|
<th class="derivative" i18n="pidTuningDerivative"></th>
|
||||||
|
<th class="rc_rate" i18n="pidTuningRcRate"></th>
|
||||||
|
<th class="rate" i18n="pidTuningRate"></th>
|
||||||
|
<th class="rc_expo" i18n="pidTuningRcExpo"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</table>
|
||||||
<tbody>
|
<table id="pid_main" class="pid_tuning">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="rates_preview_cell">
|
<th colspan="8">
|
||||||
<div class="rates_preview">
|
<div class="pid_mode">
|
||||||
<canvas id="canvas"></canvas>
|
<div i18n="pidTuningBasic" style="float:left;"></div>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningPidTuningTip"></div>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr class="ROLL">
|
||||||
|
<!-- 0 -->
|
||||||
|
<td bgcolor="#FF8080"></td>
|
||||||
|
<td class="pid_data"><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||||
|
<td class="pid_data"><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||||
|
<td class="pid_data"><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||||
|
<td rowspan="2" style="background-color:white;">
|
||||||
|
<input type="number" name="rc_rate" step="0.01" min="0" max="2.5" />
|
||||||
|
<div class="bracket"></div>
|
||||||
|
</td>
|
||||||
|
<td class="roll_rate"><input type="number" name="roll_rate" step="0.01" min="0" max="1.00" /></td>
|
||||||
|
<td class="roll_pitch_rate" rowspan="2"><input type="number" name="roll_pitch_rate" step="0.01" min="0" max="1.00" /></td>
|
||||||
|
<td rowspan="2" style="background-color:white;">
|
||||||
|
<input type="number" name="rc_expo" step="0.01" min="0" max="1" />
|
||||||
|
<div class="bracket"></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="PITCH">
|
||||||
|
<!-- 1 -->
|
||||||
|
<td bgcolor="#80FF80"></td>
|
||||||
|
<td class="pid_data"><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||||
|
<td class="pid_data"><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||||
|
<td class="pid_data"><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||||
|
<td class="pitch_rate"><input type="number" name="pitch_rate" step="0.01" min="0" max="1.00" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="YAW">
|
||||||
|
<!-- 2 -->
|
||||||
|
<td bgcolor="#8080FF"></td>
|
||||||
|
<td class="pid_data"><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||||
|
<td class="pid_data"><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||||
|
<td></td>
|
||||||
|
<td rowspan="1"><input type="number" name="rc_rate_yaw" step="0.01" min="0" max="2.5" /></td>
|
||||||
|
<td><input type="number" name="yaw_rate" step="0.01" min="0" max="2.55" /></td>
|
||||||
|
<td><input type="number" name="rc_yaw_expo" step="0.01" min="0" max="1" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="YAW_JUMP_PREVENTION">
|
||||||
|
<td colspan = 3>
|
||||||
|
<div>
|
||||||
|
<div i18n="pidTuningYawJumpPrevention" style="float:left;"></div>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningYawJumpPreventionHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="pid_data"><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||||
|
<td colspan=3></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="pid_optional" class="gui_box grey topspacer pid_tuning">
|
||||||
|
<table class="pid_titlebar">
|
||||||
|
<tr>
|
||||||
|
<th class="name" i18n="pidTuningName"></th>
|
||||||
|
<th class="proportional" i18n="pidTuningProportional"></th>
|
||||||
|
<th class="integral" i18n="pidTuningIntegral"></th>
|
||||||
|
<th class="derivative" i18n="pidTuningDerivative"></th>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table id="pid_baro" class="pid_tuning">
|
||||||
|
<tr>
|
||||||
|
<th colspan="4">
|
||||||
|
<div class="pid_mode" i18n="pidTuningAltitude"></div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr class="ALT">
|
||||||
|
<!-- 3 -->
|
||||||
|
<td></td>
|
||||||
|
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||||
|
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||||
|
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="Vario">
|
||||||
|
<!-- 9 -->
|
||||||
|
<td>VEL</td>
|
||||||
|
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||||
|
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||||
|
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table id="pid_mag" class="pid_tuning">
|
||||||
|
<tr>
|
||||||
|
<th colspan="4">
|
||||||
|
<div class="pid_mode" i18n="pidTuningMag"></div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr class="MAG">
|
||||||
|
<!-- 8 -->
|
||||||
|
<td></td>
|
||||||
|
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table id="pid_gps" class="pid_tuning">
|
||||||
|
<tr>
|
||||||
|
<th colspan="4">
|
||||||
|
<div class="pid_mode" i18n="pidTuningGps"></div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr class="Pos">
|
||||||
|
<!-- 4 -->
|
||||||
|
<td></td>
|
||||||
|
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||||
|
<!-- <td><input type="number" name="i" step="1" min="0" max="255" /></td> -->
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="PosR">
|
||||||
|
<!-- 5 -->
|
||||||
|
<td></td>
|
||||||
|
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||||
|
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||||
|
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="NavR">
|
||||||
|
<!-- 6 -->
|
||||||
|
<td></td>
|
||||||
|
<td><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||||
|
<td><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||||
|
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div id="pid_accel" class="gui_box grey topspacer pid_tuning">
|
||||||
|
<table class="pid_titlebar">
|
||||||
|
<tr>
|
||||||
|
<th class="third" i18n="pidTuningName"></th>
|
||||||
|
<th class="third" i18n="pidTuningStrength"></th>
|
||||||
|
<th class="third" i18n="pidTuningTransition"></th>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table id="pid_level" class="pid_tuning">
|
||||||
|
<tr>
|
||||||
|
<th colspan="3">
|
||||||
|
<div class="pid_mode">
|
||||||
|
<div i18n="pidTuningLevel" style="float:left;"></div>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningLevelHelp"></div>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr class="ANGLE">
|
||||||
|
<!-- 7 -->
|
||||||
|
<td class="third" i18n="pidTuningAngle"></td>
|
||||||
|
<td class="third"><input type="number" name="p" step="1" min="0" max="255" /></td>
|
||||||
|
<td class="third"></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="HORIZON">
|
||||||
|
<!-- 7 -->
|
||||||
|
<td class="third" i18n="pidTuningHorizon"></td>
|
||||||
|
<td class="third"><input type="number" name="i" step="1" min="0" max="255" /></td>
|
||||||
|
<td class="third"><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="gui_box grey topspacer">
|
||||||
|
<table class="pid_titlebar new_rates">
|
||||||
|
<tr>
|
||||||
|
<th i18n="pidTuningNonProfilePidSettings"></th>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table class="compensation">
|
||||||
|
<tbody class="features pidTuning">
|
||||||
|
<!-- table generated here -->
|
||||||
|
</tbody>
|
||||||
|
<tr class="rcInterpolation">
|
||||||
|
<td>
|
||||||
|
<select name="rcInterpolation-select">
|
||||||
|
<option value="0" i18n="pidTuningRcInterpolationOff"/>
|
||||||
|
<option value="1" i18n="pidTuningRcInterpolationDefault"/>
|
||||||
|
<option value="2" i18n="pidTuningRcInterpolationAuto"/>
|
||||||
|
<option value="3" i18n="pidTuningRcInterpolationManual"/>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
<td colspan=2>
|
||||||
|
<div>
|
||||||
|
<label>
|
||||||
|
<span i18n="pidTuningRcInterpolation"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningRcInterpolationHelp"></div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
<tr class="rcInterpolationInterval">
|
||||||
</table>
|
<td><input type="number" class="nonProfile" name="rcInterpolationInterval-number" step="1" min="1" max="50"/></td>
|
||||||
</div>
|
<td colspan=2>
|
||||||
</div>
|
<div>
|
||||||
<div class="cf_column third_right">
|
<label>
|
||||||
<div class="spacer_left rc_curve">
|
<span i18n="pidTuningRcInterpolationInterval"></span>
|
||||||
<div class="rc_curve_bg">
|
</label>
|
||||||
<table class="cf">
|
<div class="helpicon cf_tip" i18n_title="pidTuningRcInterpolationIntervalHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="gui_box grey topspacer">
|
||||||
|
<table class="pid_titlebar new_rates">
|
||||||
|
<tr>
|
||||||
|
<th i18n="pidTuningPidSettings"></th>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table class="compensation">
|
||||||
|
<tr class="delta">
|
||||||
|
<td>
|
||||||
|
<select id="delta-select">
|
||||||
|
<option value="0" i18n="pidTuningDeltaError"/>
|
||||||
|
<option value="1" i18n="pidTuningDeltaMeasurement"/>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
<td colspan=2>
|
||||||
|
<div>
|
||||||
|
<label for="delta-select">
|
||||||
|
<span i18n="pidTuningDelta"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningDeltaTip"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="ptermSetpoint">
|
||||||
|
<td><input type="number" name="ptermSetpoint-number" step="0.01" min="0.30" max="1.00"/></td>
|
||||||
|
<td class="slider"><input type="range" name="ptermSetpoint-range" step="0.01" min="0.30" max="1.00"/></td>
|
||||||
|
<td colspan=2>
|
||||||
|
<div>
|
||||||
|
<label>
|
||||||
|
<span i18n="pidTuningPtermSetpoint"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningPtermSetpointHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="dtermSetpoint">
|
||||||
|
<td><input type="number" name="dtermSetpoint-number" step="0.01" min="0.00" max="2.00"/></td>
|
||||||
|
<td class="slider"><input type="range" name="dtermSetpoint-range" step="0.01" min="0.00" max="2.00"/></td>
|
||||||
|
<td colspan=2>
|
||||||
|
<div>
|
||||||
|
<label>
|
||||||
|
<span i18n="pidTuningDtermSetpoint"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningDtermSetpointHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<td><input type="checkbox" id="vbatpidcompensation" class="toggle" /></td>
|
||||||
|
<td colspan=2>
|
||||||
|
<div>
|
||||||
|
<label for="vbatpidcompensation">
|
||||||
|
<span i18n="pidTuningVbatPidCompensation"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningVbatPidCompensationHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="gui_box grey topspacer">
|
||||||
|
<table class="pid_titlebar">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th colspan=2>
|
<th i18n="pidTuningRatesPreview"></th>
|
||||||
<div>
|
|
||||||
<div i18n="pidTuningRatesCurve" style="float:left;"></div>
|
|
||||||
<div class="helpicon cf_tip" i18n_title="pidTuningRatesTip"></div>
|
|
||||||
</div>
|
|
||||||
</th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan=2>
|
<td class="rates_preview_cell">
|
||||||
<div class="spacer" style="margin-top: 10px; margin-bottom: 10px;">
|
<div class="rates_preview">
|
||||||
<div class="rate_curve">
|
<canvas id="canvas"></canvas>
|
||||||
<canvas height="120px" style="width: 100%; height: 100%"></canvas>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="new_rates">
|
|
||||||
<td i18n="pidTuningMaxAngularVelRoll" style="width: 70%"></td>
|
|
||||||
<td class="maxAngularVelRoll"></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="new_rates">
|
|
||||||
<td i18n="pidTuningMaxAngularVelPitch"></td>
|
|
||||||
<td class="maxAngularVelPitch"></td>
|
|
||||||
</tr>
|
|
||||||
<tr class="new_rates">
|
|
||||||
<td i18n="pidTuningMaxAngularVelYaw"></td>
|
|
||||||
<td class="maxAngularVelYaw"></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer_left topspacer throttle">
|
<div class="cf_column third_right">
|
||||||
<table class="cf">
|
<div class="spacer_left rc_curve">
|
||||||
<thead>
|
<div class="rc_curve_bg">
|
||||||
|
<table class="cf">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th colspan=2>
|
||||||
|
<div>
|
||||||
|
<div i18n="pidTuningRatesCurve" style="float:left;"></div>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningRatesTip"></div>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colspan=2>
|
||||||
|
<div class="spacer" style="margin-top: 10px; margin-bottom: 10px;">
|
||||||
|
<div class="rate_curve">
|
||||||
|
<canvas height="120px" style="width: 100%; height: 100%"></canvas>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="new_rates">
|
||||||
|
<td i18n="pidTuningMaxAngularVelRoll" style="width: 70%"></td>
|
||||||
|
<td class="maxAngularVelRoll"></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="new_rates">
|
||||||
|
<td i18n="pidTuningMaxAngularVelPitch"></td>
|
||||||
|
<td class="maxAngularVelPitch"></td>
|
||||||
|
</tr>
|
||||||
|
<tr class="new_rates">
|
||||||
|
<td i18n="pidTuningMaxAngularVelYaw"></td>
|
||||||
|
<td class="maxAngularVelYaw"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="spacer_left topspacer throttle">
|
||||||
|
<table class="cf">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th i18n="receiverThrottleMid"></th>
|
||||||
|
<th i18n="receiverThrottleExpo"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><input type="number" name="mid" step="0.01" min="0" max="1" /></td>
|
||||||
|
<td><input type="number" name="expo" step="0.01" min="0" max="1" /></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="spacer_left topspacer throttle">
|
||||||
|
<table class="cf">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th colspan=2 i18n="throttle"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th i18n="receiverThrottleMid"></th>
|
<td colspan=2>
|
||||||
<th i18n="receiverThrottleExpo"></th>
|
<div class="spacer" style="margin-top: 10px; margin-bottom: 10px;">
|
||||||
</tr>
|
<div class="throttle_curve">
|
||||||
</thead>
|
<canvas height="120px" style="width: 100%; height: 100%"></canvas>
|
||||||
<tbody>
|
</div>
|
||||||
<tr>
|
|
||||||
<td><input type="number" name="mid" step="0.01" min="0" max="1" /></td>
|
|
||||||
<td><input type="number" name="expo" step="0.01" min="0" max="1" /></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="spacer_left topspacer throttle">
|
|
||||||
<table class="cf">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th colspan=2 i18n="throttle"></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
</tbody>
|
|
||||||
<tr>
|
|
||||||
<td colspan=2>
|
|
||||||
<div class="spacer" style="margin-top: 10px; margin-bottom: 10px;">
|
|
||||||
<div class="throttle_curve">
|
|
||||||
<canvas height="120px" style="width: 100%; height: 100%"></canvas>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</td>
|
||||||
</td>
|
</tr>
|
||||||
</tr>
|
</tbody>
|
||||||
</tbody>
|
</table>
|
||||||
</table>
|
</div>
|
||||||
|
<div class="spacer_left topspacer tpa">
|
||||||
|
<table class="cf">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th i18n="pidTuningTPA"></th>
|
||||||
|
<th class="tpa-breakpoint" i18n="pidTuningTPABreakPoint"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="leftzero"><input type="number" name="tpa" step="0.01" min="0"
|
||||||
|
max="1.00" /></td>
|
||||||
|
<td class="tpa-breakpoint"><input type="number" name="tpa-breakpoint" step="10" min="1000" max="2000" /></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer_left topspacer tpa">
|
</div>
|
||||||
<table class="cf">
|
<div class="subtab-filter" style="display: none;">
|
||||||
<thead>
|
<div class="clear-both"></div>
|
||||||
|
<div class="note topspacer">
|
||||||
|
<div class="note_spacer">
|
||||||
|
<p i18n="tuningHelp"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cf_column twothird">
|
||||||
|
<div class="gui_box grey topspacer pid_filter">
|
||||||
|
<table class="pid_titlebar new_rates">
|
||||||
<tr>
|
<tr>
|
||||||
<th i18n="pidTuningTPA"></th>
|
<th i18n="pidTuningNonProfileFilterSettings"></th>
|
||||||
<th class="tpa-breakpoint" i18n="pidTuningTPABreakPoint"></th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</table>
|
||||||
<tbody>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="leftzero"><input type="number" name="tpa" step="0.01" min="0"
|
<td>
|
||||||
max="1.00" /></td>
|
<input type="number" class="nonProfile" name="gyroLowpassFrequency" step="1" min="0" max="255"/>
|
||||||
<td class="tpa-breakpoint"><input type="number" name="tpa-breakpoint" step="10" min="1000" max="2000" /></td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<div>
|
||||||
|
<label>
|
||||||
|
<span i18n="pidTuningGyroLowpassFrequency"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningGyroLowpassFrequencyHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
<tr class="newFilter">
|
||||||
</table>
|
<td>
|
||||||
|
<input type="number" class="nonProfile" name="gyroNotchFrequency" step="1" min="0" max="500"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div>
|
||||||
|
<label>
|
||||||
|
<span i18n="pidTuningGyroNotchFrequency"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningGyroNotchFrequencyHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="newFilter">
|
||||||
|
<td>
|
||||||
|
<input type="number" class="nonProfile" name="gyroNotchCutoff" step="1" min="0" max="500"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div>
|
||||||
|
<label>
|
||||||
|
<span i18n="pidTuningGyroNotchCutoff"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningGyroNotchCutoffHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="gui_box grey topspacer pid_filter">
|
||||||
|
<table class="pid_titlebar new_rates">
|
||||||
|
<tr>
|
||||||
|
<th i18n="pidTuningFilterSettings"></th>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input type="number" name="dtermLowpassFrequency" step="1" min="0" max="500"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div>
|
||||||
|
<label>
|
||||||
|
<span i18n="pidTuningDtermLowpassFrequency"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningDtermLowpassFrequencyHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="newFilter">
|
||||||
|
<td>
|
||||||
|
<input type="number" name="dTermNotchFrequency" step="1" min="0" max="500"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div>
|
||||||
|
<label>
|
||||||
|
<span i18n="pidTuningDTermNotchFrequency"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningDTermNotchFrequencyHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="newFilter">
|
||||||
|
<td>
|
||||||
|
<input type="number" name="dTermNotchCutoff" step="1" min="0" max="500"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div>
|
||||||
|
<label>
|
||||||
|
<span i18n="pidTuningDTermNotchCutoff"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningDTermNotchCutoffHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input type="number" name="yawLowpassFrequency" step="1" min="0" max="500"/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div>
|
||||||
|
<label>
|
||||||
|
<span i18n="pidTuningYawLowpassFrequency"></span>
|
||||||
|
</label>
|
||||||
|
<div class="helpicon cf_tip" i18n_title="pidTuningYawLowpassFrequencyHelp"></div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -59,7 +59,7 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.8.1")) {
|
if (semver.gte(CONFIG.flightControllerVersion, "2.8.1")) {
|
||||||
$('input[name="vbatpidcompensation"]').prop('checked', ADVANCED_TUNING.vbatPidCompensation !== 0);
|
$('input[name="#vbatpidcompensation"]').prop('checked', ADVANCED_TUNING.vbatPidCompensation !== 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.8.2")) {
|
if (semver.gte(CONFIG.flightControllerVersion, "2.8.2")) {
|
||||||
|
@ -227,7 +227,6 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
$('.pid_tuning input[name="yaw_rate"]').val(RC_tuning.yaw_rate.toFixed(2));
|
$('.pid_tuning input[name="yaw_rate"]').val(RC_tuning.yaw_rate.toFixed(2));
|
||||||
$('.pid_tuning input[name="rc_expo"]').val(RC_tuning.RC_EXPO.toFixed(2));
|
$('.pid_tuning input[name="rc_expo"]').val(RC_tuning.RC_EXPO.toFixed(2));
|
||||||
$('.pid_tuning input[name="rc_yaw_expo"]').val(RC_tuning.RC_YAW_EXPO.toFixed(2));
|
$('.pid_tuning input[name="rc_yaw_expo"]').val(RC_tuning.RC_YAW_EXPO.toFixed(2));
|
||||||
$('.pid_tuning input[name="rc_rate_yaw"]').val(RC_tuning.rcYawRate.toFixed(2));
|
|
||||||
|
|
||||||
$('.throttle input[name="mid"]').val(RC_tuning.throttle_MID.toFixed(2));
|
$('.throttle input[name="mid"]').val(RC_tuning.throttle_MID.toFixed(2));
|
||||||
$('.throttle input[name="expo"]').val(RC_tuning.throttle_EXPO.toFixed(2));
|
$('.throttle input[name="expo"]').val(RC_tuning.throttle_EXPO.toFixed(2));
|
||||||
|
@ -240,14 +239,25 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
$('.pid_tuning input[name="rc_expo"]').attr("rowspan", "3");
|
$('.pid_tuning input[name="rc_expo"]').attr("rowspan", "3");
|
||||||
}
|
}
|
||||||
|
|
||||||
$('.pid_tuning input[name="gyro"]').val(FILTER_CONFIG.gyro_soft_lpf_hz);
|
if (semver.gte(CONFIG.flightControllerVersion, '2.9.0')) {
|
||||||
$('.pid_tuning input[name="dterm"]').val(FILTER_CONFIG.dterm_lpf_hz);
|
$('.pid_tuning input[name="rc_rate_yaw"]').val(RC_tuning.rcYawRate.toFixed(2));
|
||||||
$('.pid_tuning input[name="yaw"]').val(FILTER_CONFIG.yaw_lpf_hz);
|
$('.pid_filter input[name="gyroLowpassFrequency"]').val(FILTER_CONFIG.gyro_soft_lpf_hz);
|
||||||
|
$('.pid_filter input[name="dtermLowpassFrequency"]').val(FILTER_CONFIG.dterm_lpf_hz);
|
||||||
if (semver.lt(CONFIG.flightControllerVersion, "2.9.0")) {
|
$('.pid_filter input[name="yawLowpassFrequency"]').val(FILTER_CONFIG.yaw_lpf_hz);
|
||||||
$('.pid_filter').hide();
|
} else {
|
||||||
|
$('.tab-pid_tuning .subtab-filter').hide();
|
||||||
|
$('.tab-pid_tuning .tab_container').hide();
|
||||||
$('.pid_tuning input[name="rc_rate_yaw"]').hide();
|
$('.pid_tuning input[name="rc_rate_yaw"]').hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (semver.gte(CONFIG.flightControllerVersion, '3.0.0')) {
|
||||||
|
$('.pid_filter input[name="gyroNotchFrequency"]').val(FILTER_CONFIG.gyro_soft_notch_hz);
|
||||||
|
$('.pid_filter input[name="gyroNotchCutoff"]').val(FILTER_CONFIG.gyro_soft_notch_cutoff);
|
||||||
|
$('.pid_filter input[name="dTermNotchFrequency"]').val(FILTER_CONFIG.dterm_notch_hz);
|
||||||
|
$('.pid_filter input[name="dTermNotchCutoff"]').val(FILTER_CONFIG.dterm_notch_cutoff);
|
||||||
|
} else {
|
||||||
|
$('.pid_filter .newFilter').hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function form_to_pid_and_rc() {
|
function form_to_pid_and_rc() {
|
||||||
|
@ -256,7 +266,7 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.8.1")) {
|
if (semver.gte(CONFIG.flightControllerVersion, "2.8.1")) {
|
||||||
ADVANCED_TUNING.vbatPidCompensation = $('input[name="vbatpidcompensation"]').is(':checked') ? 1 : 0;
|
ADVANCED_TUNING.vbatPidCompensation = $('input[name="#vbatpidcompensation"]').is(':checked') ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.8.2")) {
|
if (semver.gte(CONFIG.flightControllerVersion, "2.8.2")) {
|
||||||
|
@ -346,9 +356,16 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
|
|
||||||
RC_tuning.dynamic_THR_PID = parseFloat($('.tpa input[name="tpa"]').val());
|
RC_tuning.dynamic_THR_PID = parseFloat($('.tpa input[name="tpa"]').val());
|
||||||
RC_tuning.dynamic_THR_breakpoint = parseInt($('.tpa input[name="tpa-breakpoint"]').val());
|
RC_tuning.dynamic_THR_breakpoint = parseInt($('.tpa input[name="tpa-breakpoint"]').val());
|
||||||
FILTER_CONFIG.gyro_soft_lpf_hz = parseInt($('.pid_tuning input[name="gyro"]').val());
|
FILTER_CONFIG.gyro_soft_lpf_hz = parseInt($('.pid_filter input[name="gyroLowpassFrequency"]').val());
|
||||||
FILTER_CONFIG.dterm_lpf_hz = parseInt($('.pid_tuning input[name="dterm"]').val());
|
FILTER_CONFIG.dterm_lpf_hz = parseInt($('.pid_filter input[name="dtermLowpassFrequency"]').val());
|
||||||
FILTER_CONFIG.yaw_lpf_hz = parseInt($('.pid_tuning input[name="yaw"]').val());
|
FILTER_CONFIG.yaw_lpf_hz = parseInt($('.pid_filter input[name="yawLowpassFrequency"]').val());
|
||||||
|
|
||||||
|
if (semver.gte(CONFIG.flightControllerVersion, '3.0.0')) {
|
||||||
|
FILTER_CONFIG.gyro_soft_notch_hz = parseInt($('.pid_filter input[name="gyroNotchFrequency"]').val());
|
||||||
|
FILTER_CONFIG.gyro_soft_notch_cutoff = parseInt($('.pid_filter input[name="gyroNotchCutoff"]').val());
|
||||||
|
FILTER_CONFIG.dterm_notch_hz = parseInt($('.pid_filter input[name="dTermNotchFrequency"]').val());
|
||||||
|
FILTER_CONFIG.dterm_notch_cutoff = parseInt($('.pid_filter input[name="dTermNotchCutoff"]').val());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function showAllPids() {
|
function showAllPids() {
|
||||||
|
@ -360,10 +377,6 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
|
|
||||||
$('#pid_main').show();
|
$('#pid_main').show();
|
||||||
|
|
||||||
if (semver.gte(CONFIG.flightControllerVersion, "2.9.0")) {
|
|
||||||
$('#pid_filter').show();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (have_sensor(CONFIG.activeSensors, 'acc')) {
|
if (have_sensor(CONFIG.activeSensors, 'acc')) {
|
||||||
$('#pid_accel').show();
|
$('#pid_accel').show();
|
||||||
$('#pid_level').show();
|
$('#pid_level').show();
|
||||||
|
@ -482,6 +495,22 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
self.currentRates.pitch_rate = RC_tuning.roll_pitch_rate;
|
self.currentRates.pitch_rate = RC_tuning.roll_pitch_rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$('.tab-pid_tuning .tab_container .pid').on('click', function () {
|
||||||
|
$('.tab-pid_tuning .subtab-pid').show();
|
||||||
|
$('.tab-pid_tuning .subtab-filter').hide();
|
||||||
|
|
||||||
|
$('.tab-pid_tuning .tab_container td').removeClass('active');
|
||||||
|
$(this).addClass('active');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.tab-pid_tuning .tab_container .filter').on('click', function () {
|
||||||
|
$('.tab-pid_tuning .subtab-filter').show();
|
||||||
|
$('.tab-pid_tuning .subtab-pid').hide();
|
||||||
|
|
||||||
|
$('.tab-pid_tuning .tab_container td').removeClass('active');
|
||||||
|
$(this).addClass('active');
|
||||||
|
});
|
||||||
|
|
||||||
var showAllButton = $('#showAllPids');
|
var showAllButton = $('#showAllPids');
|
||||||
|
|
||||||
function updatePidDisplay() {
|
function updatePidDisplay() {
|
||||||
|
|
Loading…
Reference in New Issue