diff --git a/radio/src/gui/colorlcd/radio_sdmanager.cpp b/radio/src/gui/colorlcd/radio_sdmanager.cpp index 52d77d572..84cfe9489 100644 --- a/radio/src/gui/colorlcd/radio_sdmanager.cpp +++ b/radio/src/gui/colorlcd/radio_sdmanager.cpp @@ -256,11 +256,12 @@ void RadioSdManagerPage::fileAction(const char* path, const char* name, [=]() { BootloaderUpdate(fullpath); }); } } else if (!READ_ONLY() && !strcasecmp(ext, SPORT_FIRMWARE_EXT)) { - // TODO - // if (HAS_SPORT_UPDATE_CONNECTOR()) { - // menu->addLine(STR_FLASH_EXTERNAL_DEVICE, - // [=]() { FrSkyFirmwareUpdate(fullpath, SPORT_MODULE); }); - // } + + auto mod_desc = modulePortGetModuleDescription(SPORT_MODULE); + if (mod_desc && mod_desc->set_pwr) { + menu->addLine(STR_FLASH_EXTERNAL_DEVICE, + [=]() { FrSkyFirmwareUpdate(fullpath, SPORT_MODULE); }); + } menu->addLine(STR_FLASH_INTERNAL_MODULE, [=]() { FrSkyFirmwareUpdate(fullpath, INTERNAL_MODULE); }); menu->addLine(STR_FLASH_EXTERNAL_MODULE, @@ -281,15 +282,17 @@ void RadioSdManagerPage::fileAction(const char* path, const char* name, } if (information.productFamily == FIRMWARE_FAMILY_RECEIVER || information.productFamily == FIRMWARE_FAMILY_SENSOR) { - // if (HAS_SPORT_UPDATE_CONNECTOR()) { - // menu->addLine(STR_FLASH_EXTERNAL_DEVICE, [=]() { - // FrSkyFirmwareUpdate(fullpath, SPORT_MODULE); - // }); - // } else { - menu->addLine(STR_FLASH_EXTERNAL_MODULE, [=]() { - FrSkyFirmwareUpdate(fullpath, EXTERNAL_MODULE); - }); - // } + + auto mod_desc = modulePortGetModuleDescription(SPORT_MODULE); + if (mod_desc && mod_desc->set_pwr) { + menu->addLine(STR_FLASH_EXTERNAL_DEVICE, [=]() { + FrSkyFirmwareUpdate(fullpath, SPORT_MODULE); + }); + } else { + menu->addLine(STR_FLASH_EXTERNAL_MODULE, [=]() { + FrSkyFirmwareUpdate(fullpath, EXTERNAL_MODULE); + }); + } } #if _NYI_ // Not yet implemented #if defined(PXX2) diff --git a/radio/src/io/frsky_firmware_update.cpp b/radio/src/io/frsky_firmware_update.cpp index 86a66ac4e..b690c03e7 100644 --- a/radio/src/io/frsky_firmware_update.cpp +++ b/radio/src/io/frsky_firmware_update.cpp @@ -315,8 +315,7 @@ const char *FrskyDeviceFirmwareUpdate::doFlashFirmware( return STR_DEVICE_FILE_WRONG_SIG; } - if (information.productFamily == FIRMWARE_FAMILY_INTERNAL_MODULE && - information.productId == FIRMWARE_ID_MODULE_ISRM) { + if (information.productFamily == FIRMWARE_FAMILY_INTERNAL_MODULE) { port = ETX_MOD_PORT_UART; }