mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-26 09:45:28 +03:00
Added RC rate yaw and prepared filters
This commit is contained in:
parent
f2fd1e1077
commit
dca4dc97a1
5 changed files with 41 additions and 8 deletions
|
@ -768,6 +768,12 @@
|
||||||
},
|
},
|
||||||
"pidTuningTPABreakPoint": {
|
"pidTuningTPABreakPoint": {
|
||||||
"message": "TPA Breakpoint"
|
"message": "TPA Breakpoint"
|
||||||
|
},
|
||||||
|
"pidTuningFilter": {
|
||||||
|
"message": "Filter"
|
||||||
|
},
|
||||||
|
"pidTuningFilterFrequency": {
|
||||||
|
"message": "Frequency"
|
||||||
},
|
},
|
||||||
"rcCurve": {
|
"rcCurve": {
|
||||||
"message": "RC Curve"
|
"message": "RC Curve"
|
||||||
|
|
2
js/fc.js
2
js/fc.js
|
@ -260,7 +260,7 @@ var FC = {
|
||||||
};
|
};
|
||||||
|
|
||||||
TEMPORARY_COMMANDS = {
|
TEMPORARY_COMMANDS = {
|
||||||
RC_YAW_RATE: 0
|
RC_RATE_YAW: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
RX_CONFIG = {
|
RX_CONFIG = {
|
||||||
|
|
11
js/msp.js
11
js/msp.js
|
@ -902,7 +902,7 @@ var MSP = {
|
||||||
ADVANCED_TUNING.yaw_p_limit = data.getUint16(offset, 1);
|
ADVANCED_TUNING.yaw_p_limit = data.getUint16(offset, 1);
|
||||||
break;
|
break;
|
||||||
case MSP_codes.MSP_TEMPORARY_COMMANDS:
|
case MSP_codes.MSP_TEMPORARY_COMMANDS:
|
||||||
TEMPORARY_COMMANDS.RC_RATE_YAW = data.getUint8(0, 1);
|
TEMPORARY_COMMANDS.RC_RATE_YAW = parseFloat((data.getUint8(offset++) / 100).toFixed(2));
|
||||||
break;
|
break;
|
||||||
case MSP_codes.MSP_LED_STRIP_CONFIG:
|
case MSP_codes.MSP_LED_STRIP_CONFIG:
|
||||||
LED_STRIP = [];
|
LED_STRIP = [];
|
||||||
|
@ -1407,8 +1407,13 @@ MSP.crunch = function (code) {
|
||||||
buffer.push(lowByte(PID_ADVANCED_CONFIG.motor_pwm_rate));
|
buffer.push(lowByte(PID_ADVANCED_CONFIG.motor_pwm_rate));
|
||||||
buffer.push(highByte(PID_ADVANCED_CONFIG.motor_pwm_rate));
|
buffer.push(highByte(PID_ADVANCED_CONFIG.motor_pwm_rate));
|
||||||
break;
|
break;
|
||||||
case MSP_codes.MSP_TEMPORARY_COMMANDS:
|
case MSP_codes.MSP_SET_FILTER_CONFIG:
|
||||||
buffer.push(TEMPORARY_COMMANDS.RC_RATE_YAW);
|
buffer.push(FILTER_CONFIG.gyro_soft_lpf_hz);
|
||||||
|
buffer.push(FILTER_CONFIG.dterm_lpf_hz);
|
||||||
|
buffer.push(FILTER_CONFIG.yaw_lpf_hz);
|
||||||
|
break;
|
||||||
|
case MSP_codes.MSP_SET_TEMPORARY_COMMANDS:
|
||||||
|
buffer.push(Math.round(TEMPORARY_COMMANDS.RC_RATE_YAW * 100));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
<td><input type="number" name="p" step="1" min="0" max="255" /></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="i" step="1" min="0" max="255" /></td>
|
||||||
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
||||||
<td rowspan="3"><input type="number" name="rc_rate" step="0.01" min="0" max="2.5" /></td>
|
<td rowspan="2"><input type="number" name="rc_rate" step="0.01" min="0" max="2.5" /></td>
|
||||||
<td class="roll_rate"><input type="number" name="roll_rate" step="0.01" min="0" max="1.00" /></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 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"><input type="number" name="rc_expo" step="0.01" min="0" max="1" /></td>
|
<td rowspan="2"><input type="number" name="rc_expo" step="0.01" min="0" max="1" /></td>
|
||||||
|
@ -69,6 +69,7 @@
|
||||||
<td><input type="number" name="p" step="1" min="0" max="255" /></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="i" step="1" min="0" max="255" /></td>
|
||||||
<td><input type="number" name="d" step="1" min="0" max="255" /></td>
|
<td><input type="number" name="d" step="1" min="0" max="255" /></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="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>
|
<td><input type="number" name="rc_yaw_expo" step="0.01" min="0" max="1" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -185,6 +185,7 @@ 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(TEMPORARY_COMMANDS.RC_RATE_YAW.toFixed(2));
|
||||||
|
|
||||||
$('.tpa input[name="tpa"]').val(RC_tuning.dynamic_THR_PID.toFixed(2));
|
$('.tpa input[name="tpa"]').val(RC_tuning.dynamic_THR_PID.toFixed(2));
|
||||||
$('.tpa input[name="tpa-breakpoint"]').val(RC_tuning.dynamic_THR_breakpoint);
|
$('.tpa input[name="tpa-breakpoint"]').val(RC_tuning.dynamic_THR_breakpoint);
|
||||||
|
@ -194,7 +195,9 @@ 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_soft_lpf"]').val(FILTER_CONFIG.gyro_soft_lpf_hz);
|
||||||
|
$('.pid_tuning input[name="dterm_lpf"]').val(FILTER_CONFIG.dterm_lpf_hz);
|
||||||
|
$('.pid_tuning input[name="yaw_lpf"]').val(FILTER_CONFIG.yaw_lpf_hz);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -258,9 +261,14 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
RC_tuning.yaw_rate = parseFloat($('.pid_tuning input[name="yaw_rate"]').val());
|
RC_tuning.yaw_rate = parseFloat($('.pid_tuning input[name="yaw_rate"]').val());
|
||||||
RC_tuning.RC_EXPO = parseFloat($('.pid_tuning input[name="rc_expo"]').val());
|
RC_tuning.RC_EXPO = parseFloat($('.pid_tuning input[name="rc_expo"]').val());
|
||||||
RC_tuning.RC_YAW_EXPO = parseFloat($('.pid_tuning input[name="rc_yaw_expo"]').val());
|
RC_tuning.RC_YAW_EXPO = parseFloat($('.pid_tuning input[name="rc_yaw_expo"]').val());
|
||||||
|
TEMPORARY_COMMANDS.RC_RATE_YAW = parseFloat($('.pid_tuning input[name="rc_rate_yaw"]').val());
|
||||||
|
|
||||||
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($('.tpa input[name="gyro_soft_lpf"]').val());
|
||||||
|
FILTER_CONFIG.dterm_lpf_hz = parseInt($('.tpa input[name="dterm_lpf"]').val());
|
||||||
|
FILTER_CONFIG.yaw_lpf_hz = parseInt($('.tpa input[name="yaw_lpf"]').val());
|
||||||
}
|
}
|
||||||
function hideUnusedPids(sensors_detected) {
|
function hideUnusedPids(sensors_detected) {
|
||||||
$('.tab-pid_tuning table.pid_tuning').hide();
|
$('.tab-pid_tuning table.pid_tuning').hide();
|
||||||
|
@ -436,10 +444,23 @@ TABS.pid_tuning.initialize = function (callback) {
|
||||||
|
|
||||||
function send_pids() {
|
function send_pids() {
|
||||||
if (!TABS.pid_tuning.controllerChanged) {
|
if (!TABS.pid_tuning.controllerChanged) {
|
||||||
MSP.send_message(MSP_codes.MSP_SET_PID, MSP.crunch(MSP_codes.MSP_SET_PID), false, send_rc_tuning_changes);
|
MSP.send_message(MSP_codes.MSP_SET_PID, MSP.crunch(MSP_codes.MSP_SET_PID), false, send_temporary);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function send_temporary() {
|
||||||
|
if (!TABS.pid_tuning.controllerChanged) {
|
||||||
|
MSP.send_message(MSP_codes.MSP_SET_TEMPORARY_COMMANDS, MSP.crunch(MSP_codes.MSP_SET_TEMPORARY_COMMANDS), false, send_rc_tuning_changes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Uncomment when HTML layout added
|
||||||
|
function send_filters() {
|
||||||
|
if (!TABS.pid_tuning.controllerChanged) {
|
||||||
|
MSP.send_message(MSP_codes.MSP_SET_FILTER_CONFIG, MSP.crunch(MSP_codes.MSP_SET_FILTER_CONFIG), false, send_rc_tuning_changes);
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
function send_rc_tuning_changes() {
|
function send_rc_tuning_changes() {
|
||||||
MSP.send_message(MSP_codes.MSP_SET_RC_TUNING, MSP.crunch(MSP_codes.MSP_SET_RC_TUNING), false, save_to_eeprom);
|
MSP.send_message(MSP_codes.MSP_SET_RC_TUNING, MSP.crunch(MSP_codes.MSP_SET_RC_TUNING), false, save_to_eeprom);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue