diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index 506c46705..d1b391dc3 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -334,6 +334,8 @@ elseif(PCB STREQUAL X7 AND PCBREV STREQUAL T8) set(FLAVOUR t8) elseif(PCB STREQUAL X7 AND PCBREV STREQUAL MT12) set(FLAVOUR mt12) +elseif(PCB STREQUAL X7 AND PCBREV STREQUAL V14) + set(FLAVOUR v14) elseif(PCB STREQUAL X9D+ AND PCBREV STREQUAL 2019) set(FLAVOUR x9d+2019) elseif(PCB STREQUAL X10 AND PCBREV STREQUAL EXPRESS) diff --git a/companion/src/firmwares/boards.cpp b/companion/src/firmwares/boards.cpp index 0adc9f974..b6af8929e 100644 --- a/companion/src/firmwares/boards.cpp +++ b/companion/src/firmwares/boards.cpp @@ -128,7 +128,7 @@ uint32_t Boards::getFourCC(Type board) case BOARD_BETAFPV_LR3PRO: return 0x4578746F; case BOARD_IFLIGHT_COMMANDO8: - return 0x4B78746F; // TODO : Check this value + return 0x4B78746F; case BOARD_JUMPER_T12: return 0x3D78746F; case BOARD_JUMPER_TLITE: @@ -161,6 +161,10 @@ uint32_t Boards::getFourCC(Type board) return 0x4878746F; case BOARD_FLYSKY_ST16: return 0x4C78746F; + case BOARD_HELLORADIOSKY_V14: + return 0x4D78746F; + case BOARD_HELLORADIOSKY_V16: + return 0x4E78746F; default: return 0; } @@ -205,6 +209,7 @@ int Boards::getEEpromSize(Board::Type board) case BOARD_RADIOMASTER_POCKET: case BOARD_RADIOMASTER_MT12: case BOARD_RADIOMASTER_GX12: + case BOARD_HELLORADIOSKY_V14: return EESIZE_TARANIS; case BOARD_UNKNOWN: return EESIZE_MAX; @@ -268,6 +273,7 @@ int Boards::getFlashSize(Type board) case BOARD_RADIOMASTER_POCKET: case BOARD_RADIOMASTER_MT12: case BOARD_RADIOMASTER_GX12: + case BOARD_HELLORADIOSKY_V14: return FSIZE_TARANIS; case BOARD_HORUS_X12S: case BOARD_X10: @@ -676,6 +682,8 @@ QString Boards::getBoardName(Board::Type board) return "Fatfish F16"; case BOARD_HELLORADIOSKY_V16: return "HelloRadioSky V16"; + case BOARD_HELLORADIOSKY_V14: + return "HelloRadioSky V14"; default: return CPN_STR_UNKNOWN_ITEM; } @@ -784,22 +792,23 @@ int Boards::getDefaultInternalModules(Board::Type board) return (int)MODULE_TYPE_MULTIMODULE; case BOARD_BETAFPV_LR3PRO: - case BOARD_RADIOMASTER_ZORRO: - case BOARD_RADIOMASTER_BOXER: - case BOARD_RADIOMASTER_MT12: - case BOARD_RADIOMASTER_POCKET: - case BOARD_RADIOMASTER_GX12: - case BOARD_RADIOMASTER_TX12_MK2: + case BOARD_FATFISH_F16: + case BOARD_HELLORADIOSKY_V14: + case BOARD_HELLORADIOSKY_V16: case BOARD_IFLIGHT_COMMANDO8: + case BOARD_JUMPER_BUMBLEBEE: case BOARD_JUMPER_T12MAX: case BOARD_JUMPER_T14: case BOARD_JUMPER_T15: case BOARD_JUMPER_T20: - case BOARD_JUMPER_T20V2: case BOARD_JUMPER_TPROS: - case BOARD_JUMPER_BUMBLEBEE: - case BOARD_FATFISH_F16: - case BOARD_HELLORADIOSKY_V16: + case BOARD_JUMPER_T20V2: + case BOARD_RADIOMASTER_BOXER: + case BOARD_RADIOMASTER_GX12: + case BOARD_RADIOMASTER_MT12: + case BOARD_RADIOMASTER_POCKET: + case BOARD_RADIOMASTER_TX12_MK2: + case BOARD_RADIOMASTER_ZORRO: return (int)MODULE_TYPE_CROSSFIRE; case BOARD_FLYSKY_NV14: @@ -819,6 +828,18 @@ int Boards::getDefaultInternalModules(Board::Type board) void Boards::getBattRange(Board::Type board, int& vmin, int& vmax, unsigned int& vwarn) { switch (board) { + case BOARD_HELLORADIOSKY_V14: + case BOARD_JUMPER_T12: + case BOARD_JUMPER_T14: + case BOARD_JUMPER_TPRO: + case BOARD_JUMPER_TPROV2: + case BOARD_RADIOMASTER_BOXER: + case BOARD_RADIOMASTER_GX12: + case BOARD_RADIOMASTER_MT12: + case BOARD_RADIOMASTER_POCKET: + case BOARD_RADIOMASTER_TX12: + case BOARD_RADIOMASTER_TX12_MK2: + case BOARD_RADIOMASTER_ZORRO: case BOARD_TARANIS_X7: case BOARD_TARANIS_X7_ACCESS: case BOARD_TARANIS_X9D: @@ -826,17 +847,6 @@ void Boards::getBattRange(Board::Type board, int& vmin, int& vmax, unsigned int& case BOARD_TARANIS_X9DP_2019: case BOARD_TARANIS_X9LITE: case BOARD_TARANIS_X9LITES: - case BOARD_RADIOMASTER_TX12: - case BOARD_RADIOMASTER_TX12_MK2: - case BOARD_RADIOMASTER_BOXER: - case BOARD_RADIOMASTER_POCKET: - case BOARD_RADIOMASTER_ZORRO: - case BOARD_RADIOMASTER_MT12: - case BOARD_RADIOMASTER_GX12: - case BOARD_JUMPER_T12: - case BOARD_JUMPER_T14: - case BOARD_JUMPER_TPRO: - case BOARD_JUMPER_TPROV2: default: BR(60, 80, 65) break; diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h index 2a68db001..265771a3f 100644 --- a/companion/src/firmwares/boards.h +++ b/companion/src/firmwares/boards.h @@ -94,6 +94,7 @@ namespace Board { BOARD_FATFISH_F16, BOARD_HELLORADIOSKY_V16, BOARD_RADIOMASTER_MT12, + BOARD_HELLORADIOSKY_V14, BOARD_TYPE_COUNT, BOARD_TYPE_MAX = BOARD_TYPE_COUNT - 1 }; @@ -613,6 +614,11 @@ inline bool IS_FATFISH_F16(Board::Type board) return board == Board::BOARD_FATFISH_F16; } +inline bool IS_HELLORADIOSKY_V14(Board::Type board) +{ + return board == Board::BOARD_HELLORADIOSKY_V14; +} + inline bool IS_HELLORADIOSKY_V16(Board::Type board) { return board == Board::BOARD_HELLORADIOSKY_V16; @@ -630,7 +636,11 @@ inline bool IS_FAMILY_T16(Board::Type board) inline bool IS_FAMILY_T12(Board::Type board) { - return board == Board::BOARD_JUMPER_T12 || + return board == Board::BOARD_BETAFPV_LR3PRO || + board == Board::BOARD_HELLORADIOSKY_V14 || + board == Board::BOARD_IFLIGHT_COMMANDO8 || + board == Board::BOARD_JUMPER_BUMBLEBEE || + board == Board::BOARD_JUMPER_T12 || board == Board::BOARD_JUMPER_T12MAX || board == Board::BOARD_JUMPER_T14 || board == Board::BOARD_JUMPER_T20 || @@ -638,19 +648,16 @@ inline bool IS_FAMILY_T12(Board::Type board) board == Board::BOARD_JUMPER_TLITE || board == Board::BOARD_JUMPER_TLITE_F4 || board == Board::BOARD_JUMPER_TPRO || - board == Board::BOARD_JUMPER_TPROV2 || board == Board::BOARD_JUMPER_TPROS || - board == Board::BOARD_JUMPER_BUMBLEBEE || - board == Board::BOARD_RADIOMASTER_TX12 || - board == Board::BOARD_RADIOMASTER_TX12_MK2 || - board == Board::BOARD_RADIOMASTER_ZORRO || + board == Board::BOARD_JUMPER_TPROV2 || board == Board::BOARD_RADIOMASTER_BOXER || - board == Board::BOARD_RADIOMASTER_MT12 || - board == Board::BOARD_RADIOMASTER_POCKET || board == Board::BOARD_RADIOMASTER_GX12 || board == Board::BOARD_RADIOMASTER_T8 || - board == Board::BOARD_BETAFPV_LR3PRO || - board == Board::BOARD_IFLIGHT_COMMANDO8; + board == Board::BOARD_RADIOMASTER_TX12 || + board == Board::BOARD_RADIOMASTER_TX12_MK2 || + board == Board::BOARD_RADIOMASTER_MT12 || + board == Board::BOARD_RADIOMASTER_POCKET || + board == Board::BOARD_RADIOMASTER_ZORRO; } inline bool IS_FLYSKY_NV14(Board::Type board) diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index d49249112..f3fedd250 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -615,6 +615,13 @@ void registerOpenTxFirmwares() registerOpenTxFirmware(firmware); addOpenTxRfOptions(firmware, EU + FLEX); + /* HelloRadioSky V14 board */ + firmware = new OpenTxFirmware(FIRMWAREID("v14"), Firmware::tr("HelloRadioSky V14"), BOARD_HELLORADIOSKY_V14); + addOpenTxCommonOptions(firmware); + addOpenTxFontOptions(firmware); + registerOpenTxFirmware(firmware); + addOpenTxRfOptions(firmware, FLEX); + /* HelloRadioSky V16 board */ firmware = new OpenTxFirmware(FIRMWAREID("v16"), Firmware::tr("HelloRadioSky V16"), BOARD_HELLORADIOSKY_V16); addOpenTxFrskyOptions(firmware); diff --git a/radio/util/hw_defs/switch_config.py b/radio/util/hw_defs/switch_config.py index c82e0e563..cc4257ed2 100644 --- a/radio/util/hw_defs/switch_config.py +++ b/radio/util/hw_defs/switch_config.py @@ -121,12 +121,12 @@ SWITCH_CONFIG = { }, "v14": { # left side - "SA": {"default": "2POS", "display": [0, 0]}, + "SA": {"default": "TOGGLE", "display": [0, 0]}, "SB": {"default": "3POS", "display": [0, 1]}, "SE": {"default": "2POS", "display": [0, 2]}, # right side - "SC": {"default": "2POS", "display": [1, 0]}, - "SD": {"default": "2POS", "display": [1, 1]}, + "SC": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "TOGGLE", "display": [1, 1]}, "SF": {"default": "TOGGLE", "display": [1, 2]}, }, "v16": { diff --git a/tools/build-companion.sh b/tools/build-companion.sh index a6c9147ee..f0329ed3d 100755 --- a/tools/build-companion.sh +++ b/tools/build-companion.sh @@ -75,7 +75,7 @@ declare -a simulator_plugins=(x9lite x9lites xlite xlites nv14 el18 pl18 pl18ev pl18u st16 x10 x10express x12s - t15 t16 t18 t20 t20v2 tx16s f16 v16) + t15 t16 t18 t20 t20v2 tx16s f16 v14 v16) for plugin in "${simulator_plugins[@]}" do