diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 1ab89c02..c6d6c4aa 100755 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -624,6 +624,9 @@ }, "receiverRcExpo": { "message": "RC Expo" + }, + "receiverRcYawExpo": { + "message": "RC Yaw Expo" }, "receiverChannelMap": { "message": "Channel Map" diff --git a/js/data_storage.js b/js/data_storage.js index cf854511..bef75952 100755 --- a/js/data_storage.js +++ b/js/data_storage.js @@ -75,7 +75,8 @@ var RC_tuning = { dynamic_THR_PID: 0, throttle_MID: 0, throttle_EXPO: 0, - dynamic_THR_breakpoint: 0 + dynamic_THR_breakpoint: 0, + RC_YAW_EXPO: 0 }; var AUX_CONFIG = []; diff --git a/js/msp.js b/js/msp.js index 55bc0ea2..0e50b920 100644 --- a/js/msp.js +++ b/js/msp.js @@ -309,6 +309,9 @@ var MSP = { RC_tuning.throttle_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2)); if (semver.gte(CONFIG.apiVersion, "1.7.0")) { RC_tuning.dynamic_THR_breakpoint = data.getUint16(offset++, 1); + } + if (semver.gte(CONFIG.apiVersion, "1.10.0")) { + RC_tuning.RC_YAW_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2)); } break; case MSP_codes.MSP_PID: @@ -965,6 +968,9 @@ MSP.crunch = function (code) { if (semver.gte(CONFIG.apiVersion, "1.7.0")) { buffer.push(lowByte(RC_tuning.dynamic_THR_breakpoint)); buffer.push(highByte(RC_tuning.dynamic_THR_breakpoint)); + } + if (semver.gte(CONFIG.apiVersion, "1.10.0")) { + buffer.push(parseInt(RC_tuning.RC_YAW_EXPO * 100)); } break; // Disabled, cleanflight does not use MSP_SET_BOX. diff --git a/tabs/receiver.html b/tabs/receiver.html index efb1e63a..b299451a 100644 --- a/tabs/receiver.html +++ b/tabs/receiver.html @@ -17,10 +17,12 @@