Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ body:
- RadioMaster T8
- RadioMaster TX12 / TX12MK2
- RadioMaster TX15
- RadioMaster GX15
- RadioMaster TX16S / TX16SMK2
- RadioMaster TX16S MK3
- RadioMaster Zorro
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/build_fw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ jobs:
- tprov2;tpros;bumblebee
- mt12;gx12;t20;t20v2
- t12max;tx12mk2;boxer
- tx15;tx16s
- tx16s
- tx15;gx15
- x12s;f16
- v14;v14lcd;v16
- x10;x10express
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/companion.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
- id: color-4
target: [nb4p, st16, pa01, c14]
- id: color-5
target: [t15pro, tx16smk3]
target: [t15pro, tx16smk3, gx15]

steps:
- name: Check out the repo
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- nb4p
- st16
- c14
- tx15
- tx15;gx15
- t15pro
- v12
container:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ jobs:
> If you are using a STM32 F2 based radio, *stop right now*, this release is not for you! EdgeTX v2.11 is the last release series to support these radios. Check [this list](https://hackmd.io/@edgetx/B12oQyQKye) if you are unsure if this affects you. Because of this, EdgeTX v2.11 will continue to be supported alongside 2.12, 3.0, etc., with a focus on bug fixes.

> [!WARNING]
> Radios based on STM32H7 MCUs update differently to older radios. Do **not** use the "Flash via USB" option in EdgeTX Buddy with them (yet). To update radios such as the Flysky PA01 & ST16, Jumper T15 Pro, RM TX15 and RM TX16S MK3, please follow the instructions in the [EdgeTX Manual](https://manual.edgetx.org/installing-and-updating-edgetx/updating-your-stm32h7-radio).
> Radios based on STM32H7 MCUs update differently to older radios. Do **not** use the "Flash via USB" option in EdgeTX Buddy with them (yet). To update radios such as the Flysky PA01 & ST16, Jumper T15 Pro, RM TX15, RM GX15 and RM TX16S MK3, please follow the instructions in the [EdgeTX Manual](https://manual.edgetx.org/installing-and-updating-edgetx/updating-your-stm32h7-radio).

> [!NOTE]
> For MacOS users, Companion is now only compiled for MacOS 12 and above. Stay with v2.10.5 or earlier if you need support for an older version of MacOS.
Expand Down
4 changes: 2 additions & 2 deletions companion/src/firmwares/boardjson.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ void BoardJson::afterLoadFixups(Board::Type board, InputsTable * inputs, Switche
// TODO json files do not contain gyro defs
// Radio cmake directive IMU is currently used
if (IS_TARANIS_XLITES(board) || IS_FAMILY_HORUS_OR_T16(board) ||
IS_RADIOMASTER_TX15(board) || IS_RADIOMASTER_TX16SMK3(board) ||
IS_FLYSKY_PA01(board)) {
IS_RADIOMASTER_TX15(board) || IS_RADIOMASTER_GX15(board) ||
IS_RADIOMASTER_TX16SMK3(board) || IS_FLYSKY_PA01(board)) {
if (getInputIndex(inputs, "TILT_X", Board::LVT_TAG) < 0) {
InputDefn defn;
defn.type = AIT_FLEX;
Expand Down
11 changes: 9 additions & 2 deletions companion/src/firmwares/boards.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,8 @@ uint32_t Boards::getFourCC(Type board)
return 0x3878746F;
case BOARD_RADIOMASTER_TX15:
return 0x4978746F;
case BOARD_RADIOMASTER_GX15:
return 0x4978746F;
case BOARD_RADIOMASTER_TX16SMK3:
return 0x4978746F;
case BOARD_RADIOMASTER_TX12:
Expand Down Expand Up @@ -293,6 +295,7 @@ int Boards::getFlashSize(Type board)
case BOARD_RADIOMASTER_TX16S:
case BOARD_RADIOMASTER_TX16SMK3:
case BOARD_RADIOMASTER_TX15:
case BOARD_RADIOMASTER_GX15:
case BOARD_FLYSKY_NV14:
case BOARD_FLYSKY_EL18:
case BOARD_FLYSKY_PA01: // 8MB SDRAM
Expand Down Expand Up @@ -355,7 +358,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)

case HasIMU:
return (IS_FAMILY_HORUS_OR_T16(board) || IS_TARANIS(board) ||
IS_RADIOMASTER_TX15(board));
IS_RADIOMASTER_TX15(board) || IS_RADIOMASTER_GX15(board) || IS_RADIOMASTER_TX16SMK3(board));

case HasInternalGPS:
return ((IS_FAMILY_HORUS_OR_T16(board) && getCapability(board, HasAuxSerialMode)) ||
Expand Down Expand Up @@ -422,7 +425,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
IS_RADIOMASTER_ZORRO(board) || IS_RADIOMASTER_TX15(board) ||
IS_JUMPER_T15PRO(board) || IS_FLYSKY_PA01(board) ||
IS_FLYSKY_ST16(board) || IS_RADIOMASTER_TX16SMK3(board) ||
IS_IFLIGHT_C14(board));
IS_IFLIGHT_C14(board) || IS_RADIOMASTER_GX15(board));

default:
return getBoardJson(board)->getCapability(capability);
Expand Down Expand Up @@ -660,6 +663,8 @@ QString Boards::getBoardName(Board::Type board)
return "Radiomaster TX16 SMK3";
case BOARD_RADIOMASTER_TX15:
return "Radiomaster TX15";
case BOARD_RADIOMASTER_GX15:
return "Radiomaster GX15";
case BOARD_RADIOMASTER_ZORRO:
return "Radiomaster Zorro";
case BOARD_RADIOMASTER_GX12:
Expand Down Expand Up @@ -806,6 +811,7 @@ int Boards::getDefaultInternalModules(Board::Type board)
case BOARD_HELLORADIOSKY_V14LCD:
case BOARD_HELLORADIOSKY_V16:
case BOARD_RADIOMASTER_TX15:
case BOARD_RADIOMASTER_GX15:
case BOARD_RADIOMASTER_TX16SMK3:
case BOARD_IFLIGHT_COMMANDO8:
case BOARD_IFLIGHT_COMMANDO14:
Expand Down Expand Up @@ -881,6 +887,7 @@ void Boards::getBattRange(Board::Type board, int& vmin, int& vmax, unsigned int&
case BOARD_RADIOMASTER_TX16S:
case BOARD_RADIOMASTER_TX16SMK3:
case BOARD_RADIOMASTER_TX15:
case BOARD_RADIOMASTER_GX15:
case BOARD_JUMPER_T16:
case BOARD_JUMPER_T18:
case BOARD_JUMPER_T20:
Expand Down
7 changes: 7 additions & 0 deletions companion/src/firmwares/boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ namespace Board {
BOARD_RADIOMASTER_TX16S,
BOARD_RADIOMASTER_TX16SMK3,
BOARD_RADIOMASTER_TX15,
BOARD_RADIOMASTER_GX15,
BOARD_JUMPER_T18,
BOARD_JUMPER_T20,
BOARD_RADIOMASTER_TX12,
Expand Down Expand Up @@ -614,6 +615,11 @@ inline bool IS_RADIOMASTER_TX15(Board::Type board)
return board == Board::BOARD_RADIOMASTER_TX15;
}

inline bool IS_RADIOMASTER_GX15(Board::Type board)
{
return board == Board::BOARD_RADIOMASTER_GX15;
}

inline bool IS_RADIOMASTER_TX12(Board::Type board)
{
return board == Board::BOARD_RADIOMASTER_TX12;
Expand Down Expand Up @@ -689,6 +695,7 @@ inline bool IS_FAMILY_T16(Board::Type board)
board == Board::BOARD_JUMPER_T16 ||
board == Board::BOARD_JUMPER_T18 ||
board == Board::BOARD_RADIOMASTER_TX15 ||
board == Board::BOARD_RADIOMASTER_GX15 ||
board == Board::BOARD_RADIOMASTER_TX16S ||
board == Board::BOARD_RADIOMASTER_TX16SMK3;
}
Expand Down
2 changes: 2 additions & 0 deletions companion/src/firmwares/generalsettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,8 @@ void GeneralSettings::init()
strcpy(bluetoothName, "st16");
else if (IS_RADIOMASTER_TX15(board))
strcpy(bluetoothName, "tx15");
else if (IS_RADIOMASTER_GX15(board))
strcpy(bluetoothName, "gx15");
else if (IS_RADIOMASTER_TX16SMK3(board))
strcpy(bluetoothName, "tx16smk3");
else if (IS_FAMILY_HORUS_OR_T16(board))
Expand Down
9 changes: 8 additions & 1 deletion companion/src/firmwares/opentx/opentxinterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ int OpenTxFirmware::getCapability(::Capability capability)
return id.contains("internalelrs") || IS_RADIOMASTER_TX12_MK2(board) ||
IS_IFLIGHT_COMMANDO8(board) || IS_RADIOMASTER_BOXER(board) ||
IS_RADIOMASTER_POCKET(board) || IS_JUMPER_T20(board) ||
IS_RADIOMASTER_MT12(board) || IS_RADIOMASTER_TX15(board) || IS_JUMPER_T15PRO(board) || IS_JUMPER_T22(board);
IS_RADIOMASTER_MT12(board) || IS_RADIOMASTER_TX15(board) || IS_RADIOMASTER_GX15(board) || IS_JUMPER_T15PRO(board) || IS_JUMPER_T22(board);
case HasIntModuleFlySky:
return id.contains("afhds2a") || id.contains("afhds3") ||
IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FAMILY_PL18(board);
Expand Down Expand Up @@ -735,6 +735,13 @@ void registerOpenTxFirmwares()
firmware->addOptionsGroup({opt_bt, opt_internal_gps});
registerOpenTxFirmware(firmware);

/* Radiomaster GX15 board */
firmware = new OpenTxFirmware(FIRMWAREID("gx15"), Firmware::tr("Radiomaster GX15"), BOARD_RADIOMASTER_GX15);
addOpenTxFrskyOptions(firmware);
addOpenTxRfOptions(firmware, FLEX);
firmware->addOptionsGroup({opt_bt, opt_internal_gps});
registerOpenTxFirmware(firmware);

/* Radiomaster TX16S board */
firmware = new OpenTxFirmware(FIRMWAREID("tx16s"), Firmware::tr("Radiomaster TX16S / SE / Hall / Masterfire"), BOARD_RADIOMASTER_TX16S);
addOpenTxFrskyOptions(firmware);
Expand Down
1 change: 1 addition & 0 deletions fw.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
["Jumper T-Pro V2", "tprov2-"],
["RadioMaster Boxer", "boxer-"],
["RadioMaster GX12", "gx12-"],
["RadioMaster GX15", "gx15-"],
["RadioMaster MT12","mt12-"],
["RadioMaster Pocket", "pocket-"],
["RadioMaster TX12MK2", "tx12mk2-"],
Expand Down
4 changes: 3 additions & 1 deletion radio/src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
include(CMakeForceCompiler)
include(Bitmaps)

set(PCB_TYPES X9LITE X9LITES X7 XLITE XLITES X9D X9D+ X9E X10 X12S PL18 T15PRO ST16 PA01 TX15 TX16SMK3 T22 V12)
set(PCB_TYPES X9LITE X9LITES X7 XLITE XLITES X9D X9D+ X9E X10 X12S PL18 T15PRO ST16 PA01 TX15 GX15 TX16SMK3 T22 V12)
set(RADIO_LANGUAGES CN CZ DA DE EN ES FI FR HE HU IT JP KO NL PL PT RU SE SK TW UA)
set(TTS_LANGUAGES CN CZ DA DE EN ES FI FR HE HU IT JP KO NL PL PT RU SE SK TW UA)

Expand Down Expand Up @@ -103,6 +103,8 @@ elseif(PCB STREQUAL V12)
include(targets/v12/CMakeLists.txt)
elseif(PCB STREQUAL TX15)
include(targets/tx15/CMakeLists.txt)
elseif(PCB STREQUAL GX15)
include(targets/gx15/CMakeLists.txt)
elseif(PCB STREQUAL TX16SMK3)
include(targets/tx16smk3/CMakeLists.txt)
elseif(PCB STREQUAL T22)
Expand Down
Loading
Loading