diff --git a/src/VehicleSetup/FirmwareUpgradeController.cc b/src/VehicleSetup/FirmwareUpgradeController.cc index 4a3bcab6075938cc89182ee9134b2045882c26f1..e25da2e6f9b68d017e04b68a69fbe5d708b51b70 100644 --- a/src/VehicleSetup/FirmwareUpgradeController.cc +++ b/src/VehicleSetup/FirmwareUpgradeController.cc @@ -78,7 +78,14 @@ FirmwareUpgradeController::~FirmwareUpgradeController() void FirmwareUpgradeController::startBoardSearch(void) { - qgcApp()->toolbox()->linkManager()->setConnectionsSuspended(tr("Connect not allowed during Firmware Upgrade.")); + LinkManager* linkMgr = qgcApp()->toolbox()->linkManager(); + + linkMgr->setConnectionsSuspended(tr("Connect not allowed during Firmware Upgrade.")); + + if (!linkMgr->anyActiveLinks()) { + // We have to disconnect any inactive links + linkMgr->disconnectAll(); + } _bootloaderFound = false; _startFlashWhenBootloaderFound = false; _threadController->startFindBoardLoop();