Skip to content

Commit

Permalink
Prevent issues with corrupted firmware using outdated configurator (#…
Browse files Browse the repository at this point in the history
…3793)

* Deny use of newer firmware not supported by configurator

* Update dialog

* Abort on dialog

* Update message
  • Loading branch information
haslinghuis authored Feb 15, 2024
1 parent c3f3722 commit 92c1139
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 7 deletions.
6 changes: 3 additions & 3 deletions locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@
"message": "You are using an outdated version of the <b>Betaflight Configurator</b>.<br>$t(configuratorUpdateHelp.message)"
},
"configuratorUpdateHelp": {
"message": "Using a newer version of the firmware with an outdated version of Configurator means that changing some settings will result in a <strong>corrupted firmware configuration and a non-working craft</strong>. Furthermore, some features of the firmware will only be configurable in CLI.<br><strong>Betaflight Configurator version <b>$1</b> is available for download online</strong>, please visit <a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">this page</a> to download and install the latest version with fixes and improvements.<br>Please close the configurator window before updating."
"message": "Using a newer version of the firmware with an outdated version of Configurator means that changing some settings will result in a <strong>corrupted firmware configuration and a non-working craft</strong>.<br />Furthermore, some features of the firmware will only be configurable in CLI.<br g/><br /><strong>Betaflight Configurator version <b>$1</b> is available for download online</strong>.<br />Download and install the latest version of configurator with fixes and improvements <a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">here</a><br>Configurator window needs to be closed before updating."
},
"configuratorUpdateWebsite": {
"message": "Go to Release Website"
Expand Down Expand Up @@ -517,10 +517,10 @@
"message": "The following <strong>problems with your configuration</strong> were detected:"
},
"reportProblemsDialogFooter": {
"message": "Please <strong>fix these problems before attempting to fly your craft</strong>."
"message": "<span class=\"message-negative\"><strong>You need to fix these problems before attempting to fly your craft</span></strong>."
},
"reportProblemsDialogAPI_VERSION_MAX_SUPPORTED": {
"message": "<strong>the version of configurator that you are using ($3) is older than the firmware you are using ($4)</strong>.<br>$t(configuratorUpdateHelp.message)"
"message": "<span class=\"message-negative\"><strong>The configurator version used ($3) does not support firmware $4</strong></span>.<br>$t(configuratorUpdateHelp.message)"
},
"reportProblemsDialogMOTOR_PROTOCOL_DISABLED": {
"message": "<strong>there is no motor output protocol selected</strong>.<br>Please select a motor output protocol appropriate for your ESCs in '$t(configurationEscFeatures.message)' on the '$t(tabMotorTesting.message)' tab.<br>$t(escProtocolDisabledMessage.message)"
Expand Down
19 changes: 15 additions & 4 deletions src/js/serial_backend.js
Original file line number Diff line number Diff line change
Expand Up @@ -487,18 +487,26 @@ function checkReportProblems() {
problemDialogList.empty();

let problems = [];
let abort = false;

if (semver.gt(FC.CONFIG.apiVersion, CONFIGURATOR.API_VERSION_MAX_SUPPORTED)) {
const problemName = 'API_VERSION_MAX_SUPPORTED';
problems.push({ name: problemName, description: i18n.getMessage(`reportProblemsDialog${problemName}`,
[CONFIGURATOR.latestVersion, CONFIGURATOR.latestVersionReleaseUrl, CONFIGURATOR.getDisplayVersion(), FC.CONFIG.flightControllerVersion])});
needsProblemReportingDialog = true;

abort = true;
GUI.timeout_remove('connecting'); // kill connecting timer
$('div.connect_controls a.connect').click(); // disconnect
}

needsProblemReportingDialog = checkReportProblem('MOTOR_PROTOCOL_DISABLED', problems) || needsProblemReportingDialog;
if (!abort) {
// only check for problems if we are not already aborting
needsProblemReportingDialog = checkReportProblem('MOTOR_PROTOCOL_DISABLED', problems) || needsProblemReportingDialog;

if (have_sensor(FC.CONFIG.activeSensors, 'acc')) {
needsProblemReportingDialog = checkReportProblem('ACC_NEEDS_CALIBRATION', problems) || needsProblemReportingDialog;
if (have_sensor(FC.CONFIG.activeSensors, 'acc')) {
needsProblemReportingDialog = checkReportProblem('ACC_NEEDS_CALIBRATION', problems) || needsProblemReportingDialog;
}
}

if (needsProblemReportingDialog) {
Expand All @@ -519,7 +527,10 @@ function checkReportProblems() {
$('#dialogReportProblems-closebtn').focus();
}

processUid();
if (!abort) {
// if we are not aborting, we can continue
processUid();
}
});
}

Expand Down
2 changes: 2 additions & 0 deletions src/js/utils/checkForConfiguratorUpdates.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ function notifyOutdatedVersion(data) {
});

dialog.showModal();
} else {
CONFIGURATOR.latestVersion = data.version;
}
}

Expand Down

0 comments on commit 92c1139

Please sign in to comment.