mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-26 17:55:24 +03:00
Update PID Profile
This commit is contained in:
parent
db99a98807
commit
a1449a8c9f
4 changed files with 58 additions and 19 deletions
|
@ -229,10 +229,10 @@ const FC = {
|
||||||
roll_rate: 0,
|
roll_rate: 0,
|
||||||
pitch_rate: 0,
|
pitch_rate: 0,
|
||||||
yaw_rate: 0,
|
yaw_rate: 0,
|
||||||
dynamic_THR_PID: 0,
|
dynamic_THR_PID: 0, // moved in 1.45 to ADVANCED_TUNING
|
||||||
throttle_MID: 0,
|
throttle_MID: 0,
|
||||||
throttle_EXPO: 0,
|
throttle_EXPO: 0,
|
||||||
dynamic_THR_breakpoint: 0,
|
dynamic_THR_breakpoint: 0, // moved in 1.45 to ADVANCED_TUNING
|
||||||
RC_YAW_EXPO: 0,
|
RC_YAW_EXPO: 0,
|
||||||
rcYawRate: 0,
|
rcYawRate: 0,
|
||||||
rcPitchRate: 0,
|
rcPitchRate: 0,
|
||||||
|
@ -518,6 +518,8 @@ const FC = {
|
||||||
feedforward_jitter_factor: 0,
|
feedforward_jitter_factor: 0,
|
||||||
vbat_sag_compensation: 0,
|
vbat_sag_compensation: 0,
|
||||||
thrustLinearization: 0,
|
thrustLinearization: 0,
|
||||||
|
tpaRate: 0,
|
||||||
|
tpaBreakpoint: 0,
|
||||||
};
|
};
|
||||||
this.ADVANCED_TUNING_ACTIVE = { ...this.ADVANCED_TUNING };
|
this.ADVANCED_TUNING_ACTIVE = { ...this.ADVANCED_TUNING };
|
||||||
|
|
||||||
|
|
|
@ -406,11 +406,19 @@ MspHelper.prototype.process_data = function(dataHandler) {
|
||||||
FC.RC_TUNING.pitch_rate = parseFloat((data.readU8() / 100).toFixed(2));
|
FC.RC_TUNING.pitch_rate = parseFloat((data.readU8() / 100).toFixed(2));
|
||||||
}
|
}
|
||||||
FC.RC_TUNING.yaw_rate = parseFloat((data.readU8() / 100).toFixed(2));
|
FC.RC_TUNING.yaw_rate = parseFloat((data.readU8() / 100).toFixed(2));
|
||||||
|
if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
|
||||||
FC.RC_TUNING.dynamic_THR_PID = parseFloat((data.readU8() / 100).toFixed(2));
|
FC.RC_TUNING.dynamic_THR_PID = parseFloat((data.readU8() / 100).toFixed(2));
|
||||||
|
} else {
|
||||||
|
data.readU8();
|
||||||
|
}
|
||||||
FC.RC_TUNING.throttle_MID = parseFloat((data.readU8() / 100).toFixed(2));
|
FC.RC_TUNING.throttle_MID = parseFloat((data.readU8() / 100).toFixed(2));
|
||||||
FC.RC_TUNING.throttle_EXPO = parseFloat((data.readU8() / 100).toFixed(2));
|
FC.RC_TUNING.throttle_EXPO = parseFloat((data.readU8() / 100).toFixed(2));
|
||||||
if (semver.gte(FC.CONFIG.apiVersion, "1.7.0")) {
|
if (semver.gte(FC.CONFIG.apiVersion, "1.7.0")) {
|
||||||
|
if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
|
||||||
FC.RC_TUNING.dynamic_THR_breakpoint = data.readU16();
|
FC.RC_TUNING.dynamic_THR_breakpoint = data.readU16();
|
||||||
|
} else {
|
||||||
|
data.readU16();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
FC.RC_TUNING.dynamic_THR_breakpoint = 0;
|
FC.RC_TUNING.dynamic_THR_breakpoint = 0;
|
||||||
}
|
}
|
||||||
|
@ -1261,6 +1269,11 @@ MspHelper.prototype.process_data = function(dataHandler) {
|
||||||
FC.ADVANCED_TUNING.feedforward_jitter_factor = data.readU8();
|
FC.ADVANCED_TUNING.feedforward_jitter_factor = data.readU8();
|
||||||
FC.ADVANCED_TUNING.vbat_sag_compensation = data.readU8();
|
FC.ADVANCED_TUNING.vbat_sag_compensation = data.readU8();
|
||||||
FC.ADVANCED_TUNING.thrustLinearization = data.readU8();
|
FC.ADVANCED_TUNING.thrustLinearization = data.readU8();
|
||||||
|
|
||||||
|
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
|
||||||
|
FC.ADVANCED_TUNING.tpaRate = data.readU8();
|
||||||
|
FC.ADVANCED_TUNING.tpaBreakpoint = data.readU16();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1830,12 +1843,20 @@ MspHelper.prototype.crunch = function(code) {
|
||||||
buffer.push8(Math.round(FC.RC_TUNING.roll_rate * 100))
|
buffer.push8(Math.round(FC.RC_TUNING.roll_rate * 100))
|
||||||
.push8(Math.round(FC.RC_TUNING.pitch_rate * 100));
|
.push8(Math.round(FC.RC_TUNING.pitch_rate * 100));
|
||||||
}
|
}
|
||||||
buffer.push8(Math.round(FC.RC_TUNING.yaw_rate * 100))
|
buffer.push8(Math.round(FC.RC_TUNING.yaw_rate * 100));
|
||||||
.push8(Math.round(FC.RC_TUNING.dynamic_THR_PID * 100))
|
if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
|
||||||
.push8(Math.round(FC.RC_TUNING.throttle_MID * 100))
|
buffer.push8(Math.round(FC.RC_TUNING.dynamic_THR_PID * 100));
|
||||||
.push8(Math.round(FC.RC_TUNING.throttle_EXPO * 100));
|
} else {
|
||||||
|
buffer.push8(0);
|
||||||
|
}
|
||||||
|
buffer.push8(Math.round(FC.RC_TUNING.throttle_MID * 100));
|
||||||
|
buffer.push8(Math.round(FC.RC_TUNING.throttle_EXPO * 100));
|
||||||
if (semver.gte(FC.CONFIG.apiVersion, "1.7.0")) {
|
if (semver.gte(FC.CONFIG.apiVersion, "1.7.0")) {
|
||||||
|
if (semver.lt(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
|
||||||
buffer.push16(FC.RC_TUNING.dynamic_THR_breakpoint);
|
buffer.push16(FC.RC_TUNING.dynamic_THR_breakpoint);
|
||||||
|
} else {
|
||||||
|
buffer.push16(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (semver.gte(FC.CONFIG.apiVersion, "1.10.0")) {
|
if (semver.gte(FC.CONFIG.apiVersion, "1.10.0")) {
|
||||||
buffer.push8(Math.round(FC.RC_TUNING.RC_YAW_EXPO * 100));
|
buffer.push8(Math.round(FC.RC_TUNING.RC_YAW_EXPO * 100));
|
||||||
|
@ -2269,6 +2290,11 @@ MspHelper.prototype.crunch = function(code) {
|
||||||
.push8(FC.ADVANCED_TUNING.feedforward_jitter_factor)
|
.push8(FC.ADVANCED_TUNING.feedforward_jitter_factor)
|
||||||
.push8(FC.ADVANCED_TUNING.vbat_sag_compensation)
|
.push8(FC.ADVANCED_TUNING.vbat_sag_compensation)
|
||||||
.push8(FC.ADVANCED_TUNING.thrustLinearization);
|
.push8(FC.ADVANCED_TUNING.thrustLinearization);
|
||||||
|
|
||||||
|
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
|
||||||
|
buffer.push8(FC.ADVANCED_TUNING.tpaRate);
|
||||||
|
buffer.push16(FC.ADVANCED_TUNING.tpaBreakpoint);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,8 +109,14 @@ pid_tuning.initialize = function (callback) {
|
||||||
$('.throttle input[name="mid"]').val(FC.RC_TUNING.throttle_MID.toFixed(2));
|
$('.throttle input[name="mid"]').val(FC.RC_TUNING.throttle_MID.toFixed(2));
|
||||||
$('.throttle input[name="expo"]').val(FC.RC_TUNING.throttle_EXPO.toFixed(2));
|
$('.throttle input[name="expo"]').val(FC.RC_TUNING.throttle_EXPO.toFixed(2));
|
||||||
|
|
||||||
|
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
|
||||||
|
// Moved tpa to profile
|
||||||
|
$('.tpa input[name="tpa"]').val(FC.ADVANCED_TUNING.tpaRate);
|
||||||
|
$('.tpa input[name="tpa-breakpoint"]').val(FC.ADVANCED_TUNING.tpaBreakpoint);
|
||||||
|
} else {
|
||||||
$('.tpa input[name="tpa"]').val(FC.RC_TUNING.dynamic_THR_PID.toFixed(2));
|
$('.tpa input[name="tpa"]').val(FC.RC_TUNING.dynamic_THR_PID.toFixed(2));
|
||||||
$('.tpa input[name="tpa-breakpoint"]').val(FC.RC_TUNING.dynamic_THR_breakpoint);
|
$('.tpa input[name="tpa-breakpoint"]').val(FC.RC_TUNING.dynamic_THR_breakpoint);
|
||||||
|
}
|
||||||
|
|
||||||
if (semver.lt(FC.CONFIG.apiVersion, "1.10.0")) {
|
if (semver.lt(FC.CONFIG.apiVersion, "1.10.0")) {
|
||||||
$('.pid_tuning input[name="rc_yaw_expo"]').hide();
|
$('.pid_tuning input[name="rc_yaw_expo"]').hide();
|
||||||
|
@ -1184,8 +1190,14 @@ pid_tuning.initialize = function (callback) {
|
||||||
FC.RC_TUNING.throttle_MID = parseFloat($('.throttle input[name="mid"]').val());
|
FC.RC_TUNING.throttle_MID = parseFloat($('.throttle input[name="mid"]').val());
|
||||||
FC.RC_TUNING.throttle_EXPO = parseFloat($('.throttle input[name="expo"]').val());
|
FC.RC_TUNING.throttle_EXPO = parseFloat($('.throttle input[name="expo"]').val());
|
||||||
|
|
||||||
|
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
|
||||||
|
FC.ADVANCED_TUNING.tpaRate = parseFloat($('.tpa input[name="tpa"]').val());
|
||||||
|
FC.ADVANCED_TUNING.tpaBreakpoint = parseInt($('.tpa input[name="tpa-breakpoint"]').val());
|
||||||
|
} else {
|
||||||
FC.RC_TUNING.dynamic_THR_PID = parseFloat($('.tpa input[name="tpa"]').val());
|
FC.RC_TUNING.dynamic_THR_PID = parseFloat($('.tpa input[name="tpa"]').val());
|
||||||
FC.RC_TUNING.dynamic_THR_breakpoint = parseInt($('.tpa input[name="tpa-breakpoint"]').val());
|
FC.RC_TUNING.dynamic_THR_breakpoint = parseInt($('.tpa input[name="tpa-breakpoint"]').val());
|
||||||
|
}
|
||||||
|
|
||||||
FC.FILTER_CONFIG.gyro_lowpass_hz = parseInt($('.pid_filter input[name="gyroLowpassFrequency"]').val());
|
FC.FILTER_CONFIG.gyro_lowpass_hz = parseInt($('.pid_filter input[name="gyroLowpassFrequency"]').val());
|
||||||
FC.FILTER_CONFIG.dterm_lowpass_hz = parseInt($('.pid_filter input[name="dtermLowpassFrequency"]').val());
|
FC.FILTER_CONFIG.dterm_lowpass_hz = parseInt($('.pid_filter input[name="dtermLowpassFrequency"]').val());
|
||||||
FC.FILTER_CONFIG.yaw_lowpass_hz = parseInt($('.pid_filter input[name="yawLowpassFrequency"]').val());
|
FC.FILTER_CONFIG.yaw_lowpass_hz = parseInt($('.pid_filter input[name="yawLowpassFrequency"]').val());
|
||||||
|
|
|
@ -1032,9 +1032,8 @@
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="leftzero"><input type="number" name="tpa" step="0.01" min="0"
|
<td class="leftzero"><input type="number" name="tpa" step="1" min="0" max="100" /></td>
|
||||||
max="1.00" /></td>
|
<td class="tpa-breakpoint"><input type="number" name="tpa-breakpoint" step="10" min="750" max="2250" /></td>
|
||||||
<td class="tpa-breakpoint"><input type="number" name="tpa-breakpoint" step="10" min="1000" max="2000" /></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue