diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js
index a42f857ea7..5ffeccc54d 100644
--- a/src/js/tabs/firmware_flasher.js
+++ b/src/js/tabs/firmware_flasher.js
@@ -239,7 +239,7 @@ firmware_flasher.initialize = async function (callback) {
$("a.load_remote_file").text(i18n.getMessage("firmwareFlasherButtonLoadOnline"));
}
- function loadTargetList(targets) {
+ async function loadTargetList(targets) {
if (!targets || !ispConnected()) {
$('select[name="board"]').empty().append('');
$('select[name="firmware_version"]').empty().append('');
@@ -445,6 +445,7 @@ firmware_flasher.initialize = async function (callback) {
self.enableLoadRemoteFileButton(false);
const build_type = buildType_e.val();
+ const currentlySelectedBoard = $('select[name="board"]').val();
$('select[name="board"]')
.empty()
@@ -456,7 +457,16 @@ firmware_flasher.initialize = async function (callback) {
if (!GUI.connect_lock) {
try {
- loadTargetList(await self.buildApi.loadTargets());
+ await loadTargetList(await self.buildApi.loadTargets());
+
+ // Restore the previously selected board if it was selected and still exists
+ if (
+ currentlySelectedBoard &&
+ currentlySelectedBoard !== "0" &&
+ $(`select[name="board"] option[value="${currentlySelectedBoard}"]`).length > 0
+ ) {
+ $('select[name="board"]').val(currentlySelectedBoard).trigger("change");
+ }
} catch (err) {
console.error(err);
}