From ef97028001093d8803869e9f29e6b084046c073c Mon Sep 17 00:00:00 2001 From: Nico Date: Fri, 6 Mar 2026 19:35:16 -0300 Subject: [PATCH 1/2] frontend: wizard: check if there is a board available before running wizard customization step --- .../frontend/src/components/wizard/Wizard.vue | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/core/frontend/src/components/wizard/Wizard.vue b/core/frontend/src/components/wizard/Wizard.vue index 9a758c0e5f..17b10bd1f8 100644 --- a/core/frontend/src/components/wizard/Wizard.vue +++ b/core/frontend/src/components/wizard/Wizard.vue @@ -83,6 +83,14 @@ + + No flight controller detected. +
`Failed to disable smart wifi hotspot: ${error.message ?? error.response?.data}.`) }, async installLatestStableFirmware(vehicle: Vehicle): Promise { + await fetchCurrentBoard() + if (!autopilot.current_board) { + return 'No flight controller board detected.' + } + if (this.retry_count) { console.debug('Going to reboot flight controller on retry.') mavlink2rest.sendMessage( From 3f9fdb6ec69fc9f366f8f714153921c4531868e1 Mon Sep 17 00:00:00 2001 From: Nico Date: Thu, 26 Mar 2026 17:05:58 -0300 Subject: [PATCH 2/2] frontend: wizard: add board detection helper --- .../frontend/src/components/wizard/Wizard.vue | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/core/frontend/src/components/wizard/Wizard.vue b/core/frontend/src/components/wizard/Wizard.vue index 17b10bd1f8..c6326f9a67 100644 --- a/core/frontend/src/components/wizard/Wizard.vue +++ b/core/frontend/src/components/wizard/Wizard.vue @@ -89,7 +89,7 @@ class="ma-2" dense > - No flight controller detected. + {{ board_detection_message }}
`Failed to disable smart wifi hotspot: ${error.message ?? error.response?.data}.`) }, async installLatestStableFirmware(vehicle: Vehicle): Promise { - await fetchCurrentBoard() - if (!autopilot.current_board) { + if (!await this.isBoardDetected()) { return 'No flight controller board detected.' } @@ -773,6 +767,22 @@ export default Vue.extend({ validateParams(): boolean { return this.$refs.param_loader?.validateParams() }, + async isBoardDetected(): Promise { + try { + await fetchCurrentBoard() + } catch (error) { + this.board_not_detected = true + this.board_detection_message = `Failed to communicate with autopilot manager: ${error}` + return false + } + if (!autopilot.current_board) { + this.board_not_detected = true + this.board_detection_message = 'No flight controller detected.' + return false + } + this.board_not_detected = false + return true + }, }, })