diff --git a/src/VehicleSetup/FirmwareUpgradeController.cc b/src/VehicleSetup/FirmwareUpgradeController.cc index c6a01bf28efc7d5a2f54ed940535f264b6b21995..8e3f28cf740bd1c58f767f3107df5e9411ce7bdf 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();