1
0
Fork 0
mirror of https://github.com/EdgeTX/edgetx.git synced 2025-07-15 12:25:11 +03:00

feat: support Jumper T20 V2 (#4701)

Co-authored-by: 3djc <3djc@gh.com>
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
This commit is contained in:
3djc 2024-03-14 10:08:59 +01:00 committed by GitHub
parent ab2b773b14
commit 84a90a75e4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 149 additions and 57 deletions

View file

@ -55,6 +55,7 @@ jobs:
- tlite - tlite
- t20 - t20
- t14 - t14
- t20v2
- tx12 - tx12
- x10 - x10
- x12s - x12s
@ -99,7 +100,7 @@ jobs:
- t16;t18 - t16;t18
- t8;zorro;pocket;mt12;commando8 - t8;zorro;pocket;mt12;commando8
- tlite;tpro;tprov2;lr3pro - tlite;tpro;tprov2;lr3pro
- t20;t14 - t20;t20v2;t14
- tx12;tx12mk2;boxer - tx12;tx12mk2;boxer
- tx16s - tx16s
- x10;x10-access - x10;x10-access

View file

@ -22,7 +22,7 @@ jobs:
- t16;t18 - t16;t18
- t8;zorro;pocket;mt12;commando8 - t8;zorro;pocket;mt12;commando8
- tlite;tpro;tprov2;lr3pro - tlite;tpro;tprov2;lr3pro
- t20;t14 - t20;t20v2;t14
- tx12;tx12mk2;boxer - tx12;tx12mk2;boxer
- tx16s - tx16s
- x10;x10-access - x10;x10-access

View file

@ -308,6 +308,8 @@ elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TPROV2)
set(FLAVOUR tprov2) set(FLAVOUR tprov2)
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL T20) elseif(PCB STREQUAL X7 AND PCBREV STREQUAL T20)
set(FLAVOUR t20) set(FLAVOUR t20)
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL T20V2)
set(FLAVOUR t20v2)
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TX12) elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TX12)
set(FLAVOUR tx12) set(FLAVOUR tx12)
elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TX12MK2) elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TX12MK2)

View file

@ -185,6 +185,7 @@ int Boards::getEEpromSize(Board::Type board)
case BOARD_IFLIGHT_COMMANDO8: case BOARD_IFLIGHT_COMMANDO8:
case BOARD_JUMPER_T12: case BOARD_JUMPER_T12:
case BOARD_JUMPER_T20: case BOARD_JUMPER_T20:
case BOARD_JUMPER_T20V2:
case BOARD_JUMPER_TLITE: case BOARD_JUMPER_TLITE:
case BOARD_JUMPER_TLITE_F4: case BOARD_JUMPER_TLITE_F4:
case BOARD_JUMPER_TPRO: case BOARD_JUMPER_TPRO:
@ -235,6 +236,7 @@ int Boards::getFlashSize(Type board)
case BOARD_IFLIGHT_COMMANDO8: case BOARD_IFLIGHT_COMMANDO8:
case BOARD_JUMPER_T12: case BOARD_JUMPER_T12:
case BOARD_JUMPER_T20: case BOARD_JUMPER_T20:
case BOARD_JUMPER_T20V2:
case BOARD_JUMPER_TLITE: case BOARD_JUMPER_TLITE:
case BOARD_JUMPER_TLITE_F4: case BOARD_JUMPER_TLITE_F4:
case BOARD_JUMPER_TPRO: case BOARD_JUMPER_TPRO:
@ -533,6 +535,8 @@ QString Boards::getBoardName(Board::Type board)
return "Jumper T18"; return "Jumper T18";
case BOARD_JUMPER_T20: case BOARD_JUMPER_T20:
return "Jumper T20"; return "Jumper T20";
case BOARD_JUMPER_T20V2:
return "Jumper T20 V2";
case BOARD_RADIOMASTER_TX16S: case BOARD_RADIOMASTER_TX16S:
return "Radiomaster TX16S"; return "Radiomaster TX16S";
case BOARD_RADIOMASTER_TX12: case BOARD_RADIOMASTER_TX12:
@ -661,6 +665,7 @@ int Boards::getDefaultInternalModules(Board::Type board)
case BOARD_RADIOMASTER_TX12_MK2: case BOARD_RADIOMASTER_TX12_MK2:
case BOARD_IFLIGHT_COMMANDO8: case BOARD_IFLIGHT_COMMANDO8:
case BOARD_JUMPER_T20: case BOARD_JUMPER_T20:
case BOARD_JUMPER_T20V2:
return (int)MODULE_TYPE_CROSSFIRE; return (int)MODULE_TYPE_CROSSFIRE;
case BOARD_FLYSKY_NV14: case BOARD_FLYSKY_NV14:

View file

@ -80,6 +80,7 @@ namespace Board {
BOARD_FLYSKY_EL18, BOARD_FLYSKY_EL18,
BOARD_JUMPER_TPROV2, BOARD_JUMPER_TPROV2,
BOARD_RADIOMASTER_POCKET, BOARD_RADIOMASTER_POCKET,
BOARD_JUMPER_T20V2,
BOARD_TYPE_COUNT, BOARD_TYPE_COUNT,
BOARD_TYPE_MAX = BOARD_TYPE_COUNT - 1 BOARD_TYPE_MAX = BOARD_TYPE_COUNT - 1
}; };
@ -444,7 +445,7 @@ inline bool IS_JUMPER_T18(Board::Type board)
inline bool IS_JUMPER_T20(Board::Type board) inline bool IS_JUMPER_T20(Board::Type board)
{ {
return board == Board::BOARD_JUMPER_T20; return board == Board::BOARD_JUMPER_T20 || board == Board::BOARD_JUMPER_T20V2;
} }
inline bool IS_RADIOMASTER_TX16S(Board::Type board) inline bool IS_RADIOMASTER_TX16S(Board::Type board)
@ -492,6 +493,7 @@ inline bool IS_FAMILY_T12(Board::Type board)
{ {
return board == Board::BOARD_JUMPER_T12 || return board == Board::BOARD_JUMPER_T12 ||
board == Board::BOARD_JUMPER_T20 || board == Board::BOARD_JUMPER_T20 ||
board == Board::BOARD_JUMPER_T20V2 ||
board == Board::BOARD_JUMPER_TLITE || board == Board::BOARD_JUMPER_TLITE ||
board == Board::BOARD_JUMPER_TLITE_F4 || board == Board::BOARD_JUMPER_TLITE_F4 ||
board == Board::BOARD_JUMPER_TPRO || board == Board::BOARD_JUMPER_TPRO ||

View file

@ -74,6 +74,8 @@ const char * OpenTxEepromInterface::getName()
return "EdgeTX for Jumper T18"; return "EdgeTX for Jumper T18";
case BOARD_JUMPER_T20: case BOARD_JUMPER_T20:
return "EdgeTX for Jumper T20"; return "EdgeTX for Jumper T20";
case BOARD_JUMPER_T20V2:
return "EdgeTX for Jumper T20 V2";
case BOARD_RADIOMASTER_TX16S: case BOARD_RADIOMASTER_TX16S:
return "EdgeTX for Radiomaster TX16S"; return "EdgeTX for Radiomaster TX16S";
case BOARD_RADIOMASTER_TX12: case BOARD_RADIOMASTER_TX12:
@ -1424,6 +1426,13 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, NONE); addOpenTxRfOptions(firmware, NONE);
registerOpenTxFirmware(firmware); registerOpenTxFirmware(firmware);
/* Jumper T20 V2 board */
firmware = new OpenTxFirmware(FIRMWAREID("t20v2"), Firmware::tr("Jumper T20 V2"), BOARD_JUMPER_T20V2);
addOpenTxFrskyOptions(firmware);
firmware->addOption("internalelrs", Firmware::tr("Select if internal ELRS module is installed"));
addOpenTxRfOptions(firmware, NONE);
registerOpenTxFirmware(firmware);
/* Radiomaster Boxer board */ /* Radiomaster Boxer board */
firmware = new OpenTxFirmware(FIRMWAREID("boxer"), QCoreApplication::translate("Firmware", "Radiomaster Boxer"), Board::BOARD_RADIOMASTER_BOXER); firmware = new OpenTxFirmware(FIRMWAREID("boxer"), QCoreApplication::translate("Firmware", "Radiomaster Boxer"), Board::BOARD_RADIOMASTER_BOXER);
addOpenTxCommonOptions(firmware); addOpenTxCommonOptions(firmware);

View file

@ -28,6 +28,7 @@
["Jumper T-Pro V2", "tprov2-"], ["Jumper T-Pro V2", "tprov2-"],
["Jumper T20", "t20-"], ["Jumper T20", "t20-"],
["Jumper T14", "t14-"], ["Jumper T14", "t14-"],
["Jumper T20 V2", "t20v2-"],
["RadioMaster Boxer", "boxer-"], ["RadioMaster Boxer", "boxer-"],
["RadioMaster MT12","mt12-"], ["RadioMaster MT12","mt12-"],
["RadioMaster Pocket", "pocket-"], ["RadioMaster Pocket", "pocket-"],

View file

@ -133,7 +133,7 @@ static inline void check_struct()
#elif defined(RADIO_T14) #elif defined(RADIO_T14)
CHKSIZE(RadioData, 869); CHKSIZE(RadioData, 869);
CHKSIZE(ModelData, 6265); CHKSIZE(ModelData, 6265);
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
CHKSIZE(RadioData, 869); CHKSIZE(RadioData, 869);
CHKSIZE(ModelData, 6326); CHKSIZE(ModelData, 6326);
#elif defined(RADIO_BOXER) #elif defined(RADIO_BOXER)

View file

@ -29,7 +29,7 @@ const unsigned char bmp_sleep[] = {
#include "sleep.lbm" #include "sleep.lbm"
}; };
#if defined(RADIO_T20) #if defined(RADIO_FAMILY_T20)
constexpr uint8_t steps = NUM_FUNCTIONS_SWITCHES/2; constexpr uint8_t steps = NUM_FUNCTIONS_SWITCHES/2;
#elif defined(FUNCTION_SWITCHES) #elif defined(FUNCTION_SWITCHES)
constexpr uint8_t steps = NUM_FUNCTIONS_SWITCHES; constexpr uint8_t steps = NUM_FUNCTIONS_SWITCHES;
@ -53,7 +53,7 @@ void drawStartupAnimation(uint32_t duration, uint32_t totalDuration)
for (uint8_t j = 0; j < steps; j++) { for (uint8_t j = 0; j < steps; j++) {
if (index2 > j) { if (index2 > j) {
fsLedOn(j); fsLedOn(j);
#if defined(RADIO_T20) #if defined(RADIO_FAMILY_T20)
fsLedOn(j + steps); fsLedOn(j + steps);
#endif #endif
} }
@ -89,12 +89,12 @@ void drawShutdownAnimation(uint32_t duration, uint32_t totalDuration,
for (uint8_t j = 0; j < steps; j++) { for (uint8_t j = 0; j < steps; j++) {
fsLedOff(j); fsLedOff(j);
#if defined(RADIO_T20) #if defined(RADIO_FAMILY_T20)
fsLedOff(j + steps); fsLedOff(j + steps);
#endif #endif
if (steps - index2 > j) { if (steps - index2 > j) {
fsLedOn(j); fsLedOn(j);
#if defined(RADIO_T20) #if defined(RADIO_FAMILY_T20)
fsLedOn(j + steps); fsLedOn(j + steps);
#endif #endif
} }

View file

@ -27,7 +27,7 @@
#define ROTENC_MIDSPEED 5 #define ROTENC_MIDSPEED 5
#define ROTENC_HIGHSPEED 50 #define ROTENC_HIGHSPEED 50
#if defined(RADIO_T20) || defined(RADIO_T14) #if defined(RADIO_FAMILY_T20) || defined(RADIO_T14)
#define ROTARY_ENCODER_GRANULARITY 4 #define ROTARY_ENCODER_GRANULARITY 4
#else #else
#define ROTARY_ENCODER_GRANULARITY 2 #define ROTARY_ENCODER_GRANULARITY 2

View file

@ -25,7 +25,7 @@ elseif(PCB STREQUAL PL18)
elseif(PCB STREQUAL X7) elseif(PCB STREQUAL X7)
if(PCBREV STREQUAL TPRO) if(PCBREV STREQUAL TPRO)
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_tpro.cpp) set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_tpro.cpp)
elseif(PCBREV STREQUAL T20) elseif((PCBREV STREQUAL T20) OR (PCBREV STREQUAL T20V2))
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_t20.cpp) set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_t20.cpp)
else() else()
set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_128x64.cpp) set(YAML_GEN_OUTPUT storage/yaml/yaml_datastructs_128x64.cpp)

View file

@ -39,7 +39,7 @@
#elif defined(PCBX7) #elif defined(PCBX7)
#if defined(RADIO_TPRO) || defined(RADIO_TPROV2) #if defined(RADIO_TPRO) || defined(RADIO_TPROV2)
#include "yaml_datastructs_tpro.cpp" #include "yaml_datastructs_tpro.cpp"
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#include "yaml_datastructs_t20.cpp" #include "yaml_datastructs_t20.cpp"
#else #else
#include "yaml_datastructs_128x64.cpp" #include "yaml_datastructs_128x64.cpp"

View file

@ -49,7 +49,7 @@
#define BOOTLOADER_KEYS 0x42 #define BOOTLOADER_KEYS 0x42
#endif #endif
#if defined(RADIO_T20) #if defined(RADIO_FAMILY_T20)
#define SECONDARY_BOOTLOADER_KEYS 0x1200 #define SECONDARY_BOOTLOADER_KEYS 0x1200
#endif #endif

View file

@ -169,6 +169,21 @@ elseif(PCB STREQUAL X7)
set(FLYSKY_GIMBAL ON) set(FLYSKY_GIMBAL ON)
add_definitions(-DFUNCTION_SWITCHES) add_definitions(-DFUNCTION_SWITCHES)
add_definitions(-DRADIO_T20) add_definitions(-DRADIO_T20)
add_definitions(-DRADIO_FAMILY_T20)
add_definitions(-DMANUFACTURER_JUMPER)
set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough")
elseif(PCBREV STREQUAL T20V2)
set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module")
set(INTERNAL_MODULE_SERIAL YES)
set(MODULE_SIZE_SML YES)
set(FLAVOUR t20v2)
set(NAVIGATION_TYPE x7)
set(ROTARY_ENCODER YES)
set(CPU_TYPE_FULL STM32F407xE)
set(FLYSKY_GIMBAL ON)
add_definitions(-DFUNCTION_SWITCHES)
add_definitions(-DRADIO_T20V2)
add_definitions(-DRADIO_FAMILY_T20)
add_definitions(-DMANUFACTURER_JUMPER) add_definitions(-DMANUFACTURER_JUMPER)
set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough") set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough")
elseif(PCBREV STREQUAL TLITE) elseif(PCBREV STREQUAL TLITE)

View file

@ -163,7 +163,7 @@ extern HardwareOptions hardwareOptions;
#define BATTERY_WARN 87 // 8.7V #define BATTERY_WARN 87 // 8.7V
#define BATTERY_MIN 85 // 8.5V #define BATTERY_MIN 85 // 8.5V
#define BATTERY_MAX 115 // 11.5V #define BATTERY_MAX 115 // 11.5V
#elif defined(PCBXLITE) || defined(RADIO_T20) #elif defined(PCBXLITE) || defined(RADIO_FAMILY_T20)
// 2 x Li-Ion // 2 x Li-Ion
#define BATTERY_WARN 66 // 6.6V #define BATTERY_WARN 66 // 6.6V
#define BATTERY_MIN 67 // 6.7V #define BATTERY_MIN 67 // 6.7V
@ -416,13 +416,13 @@ void setTopBatteryValue(uint32_t volts);
#if defined(RADIO_ZORRO) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_POCKET) #if defined(RADIO_ZORRO) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_POCKET)
#define VOLTAGE_DROP 45 #define VOLTAGE_DROP 45
#elif defined(RADIO_TPROV2) || defined(RADIO_T20) #elif defined(RADIO_TPROV2) || defined(RADIO_FAMILY_T20)
#define VOLTAGE_DROP 60 #define VOLTAGE_DROP 60
#else #else
#define VOLTAGE_DROP 20 #define VOLTAGE_DROP 20
#endif #endif
#if defined(RADIO_T20) #if defined(RADIO_FAMILY_T20)
#define NUM_TRIMS 8 #define NUM_TRIMS 8
#else #else
#define NUM_TRIMS 4 #define NUM_TRIMS 4

View file

@ -152,7 +152,7 @@
#define KEYS_GPIO_PIN_MINUS LL_GPIO_PIN_14 // PE.14 #define KEYS_GPIO_PIN_MINUS LL_GPIO_PIN_14 // PE.14
#define KEYS_GPIO_REG_BIND GPIOD #define KEYS_GPIO_REG_BIND GPIOD
#define KEYS_GPIO_PIN_BIND LL_GPIO_PIN_9 // PD.09 #define KEYS_GPIO_PIN_BIND LL_GPIO_PIN_9 // PD.09
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define KEYS_GPIO_REG_PAGE GPIOD #define KEYS_GPIO_REG_PAGE GPIOD
#define KEYS_GPIO_PIN_PAGE LL_GPIO_PIN_11 // PD.11 #define KEYS_GPIO_PIN_PAGE LL_GPIO_PIN_11 // PD.11
#define KEYS_GPIO_REG_MENU GPIOD #define KEYS_GPIO_REG_MENU GPIOD
@ -245,7 +245,7 @@
#define USE_EXTI15_10_IRQ #define USE_EXTI15_10_IRQ
#define EXTI15_10_IRQ_Priority 5 #define EXTI15_10_IRQ_Priority 5
#endif #endif
#elif defined(RADIO_X7) || defined(RADIO_X7ACCESS) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_T20) #elif defined(RADIO_X7) || defined(RADIO_X7ACCESS) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_FAMILY_T20)
#define ROTARY_ENCODER_NAVIGATION #define ROTARY_ENCODER_NAVIGATION
#define ROTARY_ENCODER_GPIO GPIOE #define ROTARY_ENCODER_GPIO GPIOE
#define ROTARY_ENCODER_GPIO_PIN_A GPIO_Pin_9 // PE.09 #define ROTARY_ENCODER_GPIO_PIN_A GPIO_Pin_9 // PE.09
@ -366,7 +366,7 @@
#define TRIMS_GPIO_PIN_RVU LL_GPIO_PIN_2 // PC.02 #define TRIMS_GPIO_PIN_RVU LL_GPIO_PIN_2 // PC.02
#define TRIMS_GPIO_REG_RHL GPIOE #define TRIMS_GPIO_REG_RHL GPIOE
#define TRIMS_GPIO_PIN_RHL LL_GPIO_PIN_4 // PE.04 #define TRIMS_GPIO_PIN_RHL LL_GPIO_PIN_4 // PE.04
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define TRIMS_GPIO_REG_LHL GPIOD #define TRIMS_GPIO_REG_LHL GPIOD
#define TRIMS_GPIO_PIN_LHL LL_GPIO_PIN_13 // PD.13 #define TRIMS_GPIO_PIN_LHL LL_GPIO_PIN_13 // PD.13
#define TRIMS_GPIO_REG_LHR GPIOG #define TRIMS_GPIO_REG_LHR GPIOG
@ -391,8 +391,13 @@
#define TRIMS_GPIO_PIN_RSD LL_GPIO_PIN_7 // PD.07 #define TRIMS_GPIO_PIN_RSD LL_GPIO_PIN_7 // PD.07
#define TRIMS_GPIO_REG_RSU GPIOG #define TRIMS_GPIO_REG_RSU GPIOG
#define TRIMS_GPIO_PIN_RSU LL_GPIO_PIN_12 // PG.12 #define TRIMS_GPIO_PIN_RSU LL_GPIO_PIN_12 // PG.12
#if defined(RADIO_T20V2)
#define TRIMS_GPIO_REG_T7L GPIOC
#define TRIMS_GPIO_PIN_T7L LL_GPIO_PIN_13 // PC.13
#else
#define TRIMS_GPIO_REG_T7L GPIOB #define TRIMS_GPIO_REG_T7L GPIOB
#define TRIMS_GPIO_PIN_T7L LL_GPIO_PIN_3 // PB.03 #define TRIMS_GPIO_PIN_T7L LL_GPIO_PIN_3 // PB.03
#endif
#define TRIMS_GPIO_REG_T7R GPIOG #define TRIMS_GPIO_REG_T7R GPIOG
#define TRIMS_GPIO_PIN_T7R LL_GPIO_PIN_15 // PG.15 #define TRIMS_GPIO_PIN_T7R LL_GPIO_PIN_15 // PG.15
#define TRIMS_GPIO_REG_T8D GPIOG #define TRIMS_GPIO_REG_T8D GPIOG
@ -567,7 +572,7 @@
#define SWITCHES_GPIO_PIN_A_L LL_GPIO_PIN_13 // PE.13 #define SWITCHES_GPIO_PIN_A_L LL_GPIO_PIN_13 // PE.13
#define SWITCHES_GPIO_REG_A_H GPIOE #define SWITCHES_GPIO_REG_A_H GPIOE
#define SWITCHES_GPIO_PIN_A_H LL_GPIO_PIN_7 // PE.07 #define SWITCHES_GPIO_PIN_A_H LL_GPIO_PIN_7 // PE.07
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define STORAGE_SWITCH_A #define STORAGE_SWITCH_A
#define HARDWARE_SWITCH_A #define HARDWARE_SWITCH_A
#define SWITCHES_A_INVERTED #define SWITCHES_A_INVERTED
@ -624,7 +629,7 @@
#define SWITCHES_GPIO_PIN_B_L LL_GPIO_PIN_1 // PE.01 #define SWITCHES_GPIO_PIN_B_L LL_GPIO_PIN_1 // PE.01
#define SWITCHES_GPIO_REG_B_H GPIOE #define SWITCHES_GPIO_REG_B_H GPIOE
#define SWITCHES_GPIO_PIN_B_H LL_GPIO_PIN_2 // PE.02 #define SWITCHES_GPIO_PIN_B_H LL_GPIO_PIN_2 // PE.02
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define STORAGE_SWITCH_B #define STORAGE_SWITCH_B
#define HARDWARE_SWITCH_B #define HARDWARE_SWITCH_B
#define SWITCHES_B_INVERTED #define SWITCHES_B_INVERTED
@ -738,7 +743,7 @@
#define HARDWARE_SWITCH_C #define HARDWARE_SWITCH_C
#define SWITCHES_GPIO_REG_C GPIOE #define SWITCHES_GPIO_REG_C GPIOE
#define SWITCHES_GPIO_PIN_C LL_GPIO_PIN_14 // PE.14 #define SWITCHES_GPIO_PIN_C LL_GPIO_PIN_14 // PE.14
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define STORAGE_SWITCH_C #define STORAGE_SWITCH_C
#define HARDWARE_SWITCH_C #define HARDWARE_SWITCH_C
#define SWITCHES_GPIO_REG_C_L GPIOD #define SWITCHES_GPIO_REG_C_L GPIOD
@ -819,7 +824,7 @@
#define SWITCHES_GPIO_PIN_D_L LL_GPIO_PIN_5 // PA.05 #define SWITCHES_GPIO_PIN_D_L LL_GPIO_PIN_5 // PA.05
#define SWITCHES_GPIO_REG_D_H GPIOE #define SWITCHES_GPIO_REG_D_H GPIOE
#define SWITCHES_GPIO_PIN_D_H LL_GPIO_PIN_15 // PE.15 #define SWITCHES_GPIO_PIN_D_H LL_GPIO_PIN_15 // PE.15
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define STORAGE_SWITCH_D #define STORAGE_SWITCH_D
#define HARDWARE_SWITCH_D #define HARDWARE_SWITCH_D
#define SWITCHES_GPIO_REG_D_L GPIOE #define SWITCHES_GPIO_REG_D_L GPIOE
@ -918,7 +923,7 @@
#define HARDWARE_SWITCH_E #define HARDWARE_SWITCH_E
#define SWITCHES_GPIO_REG_E GPIOE #define SWITCHES_GPIO_REG_E GPIOE
#define SWITCHES_GPIO_PIN_E LL_GPIO_PIN_8 // PE.08 #define SWITCHES_GPIO_PIN_E LL_GPIO_PIN_8 // PE.08
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define STORAGE_SWITCH_E #define STORAGE_SWITCH_E
#define HARDWARE_SWITCH_E #define HARDWARE_SWITCH_E
#define SWITCHES_GPIO_REG_E GPIOD #define SWITCHES_GPIO_REG_E GPIOD
@ -990,7 +995,7 @@
#define HARDWARE_SWITCH_F #define HARDWARE_SWITCH_F
#define SWITCHES_GPIO_REG_F GPIOC #define SWITCHES_GPIO_REG_F GPIOC
#define SWITCHES_GPIO_PIN_F LL_GPIO_PIN_13// PC.13 #define SWITCHES_GPIO_PIN_F LL_GPIO_PIN_13// PC.13
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define STORAGE_SWITCH_F #define STORAGE_SWITCH_F
#define HARDWARE_SWITCH_F #define HARDWARE_SWITCH_F
#define SWITCHES_GPIO_REG_F GPIOB #define SWITCHES_GPIO_REG_F GPIOB
@ -1045,7 +1050,7 @@
#define HARDWARE_SWITCH_G #define HARDWARE_SWITCH_G
#define SWITCHES_GPIO_REG_G GPIOG #define SWITCHES_GPIO_REG_G GPIOG
#define SWITCHES_GPIO_PIN_G LL_GPIO_PIN_7 // PG.07 #define SWITCHES_GPIO_PIN_G LL_GPIO_PIN_7 // PG.07
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
//TRIM left low //TRIM left low
#define STORAGE_SWITCH_G #define STORAGE_SWITCH_G
#define HARDWARE_SWITCH_G #define HARDWARE_SWITCH_G
@ -1092,7 +1097,7 @@
#define HARDWARE_SWITCH_H #define HARDWARE_SWITCH_H
#define SWITCHES_GPIO_REG_H GPIOG #define SWITCHES_GPIO_REG_H GPIOG
#define SWITCHES_GPIO_PIN_H LL_GPIO_PIN_6 // PG.06 #define SWITCHES_GPIO_PIN_H LL_GPIO_PIN_6 // PG.06
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
//TRIM right low //TRIM right low
#define STORAGE_SWITCH_H #define STORAGE_SWITCH_H
#define HARDWARE_SWITCH_H #define HARDWARE_SWITCH_H
@ -1213,7 +1218,7 @@
#define HARDWARE_SWITCH_L #define HARDWARE_SWITCH_L
#define SWITCHES_GPIO_REG_L GPIOG #define SWITCHES_GPIO_REG_L GPIOG
#define SWITCHES_GPIO_PIN_L LL_GPIO_PIN_2 // PG.02 #define SWITCHES_GPIO_PIN_L LL_GPIO_PIN_2 // PG.02
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
//TRIM left up //TRIM left up
#define STORAGE_SWITCH_I #define STORAGE_SWITCH_I
#define HARDWARE_SWITCH_I #define HARDWARE_SWITCH_I
@ -1235,7 +1240,7 @@
#define SWITCHES_GPIO_PIN_J LL_GPIO_PIN_10 // PD.10 #define SWITCHES_GPIO_PIN_J LL_GPIO_PIN_10 // PD.10
#endif #endif
#if defined(RADIO_T20) #if defined(RADIO_FAMILY_T20)
//SW1 //SW1
#define FUNCTION_SWITCH_1 SK #define FUNCTION_SWITCH_1 SK
#define STORAGE_SWITCH_K #define STORAGE_SWITCH_K
@ -1338,7 +1343,7 @@
#endif #endif
// ADC // ADC
#if !defined(RADIO_T20) #if !defined(RADIO_FAMILY_T20)
#define ADC_MAIN ADC1 #define ADC_MAIN ADC1
#define ADC_DMA DMA2 #define ADC_DMA DMA2
#define ADC_DMA_CHANNEL LL_DMA_CHANNEL_0 #define ADC_DMA_CHANNEL LL_DMA_CHANNEL_0
@ -1558,7 +1563,7 @@
#define ADC_CHANNEL_POT2 LL_ADC_CHANNEL_8 #define ADC_CHANNEL_POT2 LL_ADC_CHANNEL_8
#define ADC_CHANNEL_BATT LL_ADC_CHANNEL_10 #define ADC_CHANNEL_BATT LL_ADC_CHANNEL_10
#define ADC_VREF_PREC2 330 #define ADC_VREF_PREC2 330
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define ADC_MAIN ADC3 #define ADC_MAIN ADC3
#define ADC_DMA DMA2 #define ADC_DMA DMA2
#define ADC_DMA_CHANNEL LL_DMA_CHANNEL_2 #define ADC_DMA_CHANNEL LL_DMA_CHANNEL_2
@ -1715,7 +1720,7 @@
#define ADC_DIRECTION {1,-1,1,-1, 1,1, 1, 1} #define ADC_DIRECTION {1,-1,1,-1, 1,1, 1, 1}
#elif defined(RADIO_T14) #elif defined(RADIO_T14)
#define ADC_DIRECTION {1, -1, 1, -1, 1, 1, 1} #define ADC_DIRECTION {1, -1, 1, -1, 1, 1, 1}
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define ADC_DIRECTION {1,-1,1,-1, -1,1,-1,-1,-1,-1} #define ADC_DIRECTION {1,-1,1,-1, -1,1,-1,-1,-1,-1}
#elif defined(RADIO_MT12) #elif defined(RADIO_MT12)
#define ADC_DIRECTION {1,-1, -1,-1, 0, 0, 0, 0} #define ADC_DIRECTION {1,-1, -1,-1, 0, 0, 0, 0}
@ -1745,7 +1750,7 @@
#define PWR_SWITCH_GPIO_PIN GPIO_Pin_11 // PD.11 #define PWR_SWITCH_GPIO_PIN GPIO_Pin_11 // PD.11
#define PWR_ON_GPIO GPIOD #define PWR_ON_GPIO GPIOD
#define PWR_ON_GPIO_PIN GPIO_Pin_10 // PD.10 #define PWR_ON_GPIO_PIN GPIO_Pin_10 // PD.10
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define PWR_SWITCH_GPIO GPIOG #define PWR_SWITCH_GPIO GPIOG
#define PWR_SWITCH_GPIO_PIN GPIO_Pin_5 // PG.05 #define PWR_SWITCH_GPIO_PIN GPIO_Pin_5 // PG.05
#define PWR_ON_GPIO GPIOG #define PWR_ON_GPIO GPIOG
@ -1839,7 +1844,7 @@
#define LED_RED_GPIO_PIN GPIO_Pin_5 // PC.05 #define LED_RED_GPIO_PIN GPIO_Pin_5 // PC.05
#define LED_BLUE_GPIO GPIOC #define LED_BLUE_GPIO GPIOC
#define LED_BLUE_GPIO_PIN GPIO_Pin_4 // PC.04 #define LED_BLUE_GPIO_PIN GPIO_Pin_4 // PC.04
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define STATUS_LEDS #define STATUS_LEDS
#define GPIO_LED_GPIO_ON GPIO_SetBits #define GPIO_LED_GPIO_ON GPIO_SetBits
#define GPIO_LED_GPIO_OFF GPIO_ResetBits #define GPIO_LED_GPIO_OFF GPIO_ResetBits
@ -1920,7 +1925,7 @@
#endif #endif
#if defined(FUNCTION_SWITCHES) #if defined(FUNCTION_SWITCHES)
#if defined(RADIO_T20) #if defined(RADIO_FAMILY_T20)
#define FS_RCC_AHB1Periph RCC_AHB1Periph_GPIOF #define FS_RCC_AHB1Periph RCC_AHB1Periph_GPIOF
#define GPIO_FSLED_GPIO_ON GPIO_SetBits #define GPIO_FSLED_GPIO_ON GPIO_SetBits
#define GPIO_FSLED_GPIO_OFF GPIO_ResetBits #define GPIO_FSLED_GPIO_OFF GPIO_ResetBits
@ -2018,10 +2023,25 @@
#define INTMODULE_DMA_STREAM_IRQHandler DMA2_Stream7_IRQHandler #define INTMODULE_DMA_STREAM_IRQHandler DMA2_Stream7_IRQHandler
#define INTMODULE_DMA_FLAG_TC DMA_IT_TCIF7 #define INTMODULE_DMA_FLAG_TC DMA_IT_TCIF7
#define INTMODULE_DMA_CHANNEL DMA_Channel_4 #define INTMODULE_DMA_CHANNEL DMA_Channel_4
#elif defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T14) #elif defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T20V2) || defined(RADIO_T14)
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA2) #define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA2)
#define INTMODULE_PWR_GPIO GPIOC #define INTMODULE_PWR_GPIO GPIOC
#if defined(RADIO_T20V2)
#define INTMODULE_PWR_GPIO_PIN GPIO_Pin_6 // PC.06
#define INTMODULE_BOOTCMD_GPIO GPIOE
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_4 // PE.04
#define INTMODULE_BOOTCMD_DEFAULT 0 // RESET
#else
#define INTMODULE_PWR_GPIO_PIN GPIO_Pin_4 // PC.04 #define INTMODULE_PWR_GPIO_PIN GPIO_Pin_4 // PC.04
#define INTMODULE_BOOTCMD_GPIO GPIOB
#if defined(RADIO_T14)
#define INTMODULE_BOOTCMD_GPIO GPIOE
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_14 // PE.14
#else
#define INTMODULE_BOOTCMD_GPIO GPIOB
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_1 // PB.01
#endif
#endif
#define INTMODULE_GPIO GPIOB #define INTMODULE_GPIO GPIOB
#define INTMODULE_TX_GPIO_PIN GPIO_Pin_6 // PB.06 #define INTMODULE_TX_GPIO_PIN GPIO_Pin_6 // PB.06
#define INTMODULE_RX_GPIO_PIN GPIO_Pin_7 // PB.07 #define INTMODULE_RX_GPIO_PIN GPIO_Pin_7 // PB.07
@ -2040,13 +2060,6 @@
#define INTMODULE_RX_DMA DMA2 #define INTMODULE_RX_DMA DMA2
#define INTMODULE_RX_DMA_STREAM LL_DMA_STREAM_2 #define INTMODULE_RX_DMA_STREAM LL_DMA_STREAM_2
#define INTMODULE_RX_DMA_CHANNEL LL_DMA_CHANNEL_4 #define INTMODULE_RX_DMA_CHANNEL LL_DMA_CHANNEL_4
#if defined(RADIO_T14)
#define INTMODULE_BOOTCMD_GPIO GPIOE
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_14 // PE.14
#else
#define INTMODULE_BOOTCMD_GPIO GPIOB
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_1 // PB.01
#endif
#define INTMODULE_BOOTCMD_DEFAULT 0 // RESET #define INTMODULE_BOOTCMD_DEFAULT 0 // RESET
#define INIT_INTMODULE_BOOTCMD_PIN() GPIO_ResetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN); #define INIT_INTMODULE_BOOTCMD_PIN() GPIO_ResetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN);
#elif defined(PCBX9E) || defined(PCBX9DP) || defined(RADIO_X7) #elif defined(PCBX9E) || defined(PCBX9DP) || defined(RADIO_X7)
@ -2095,7 +2108,7 @@
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_11 // PF.11 #define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_11 // PF.11
#define INTMODULE_BOOTCMD_DEFAULT 0 // RESET #define INTMODULE_BOOTCMD_DEFAULT 0 // RESET
#define INIT_INTMODULE_BOOTCMD_PIN() GPIO_ResetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN); #define INIT_INTMODULE_BOOTCMD_PIN() GPIO_ResetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN);
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define INTMODULE_BOOTCMD_GPIO GPIOE #define INTMODULE_BOOTCMD_GPIO GPIOE
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_4 // PE.04 #define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_4 // PE.04
#define INTMODULE_BOOTCMD_DEFAULT 0 // RESET #define INTMODULE_BOOTCMD_DEFAULT 0 // RESET
@ -2201,7 +2214,7 @@
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_2 //External tuner power pin #define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_2 //External tuner power pin
#define EXTERNAL_MODULE_PWR_ON() GPIO_SetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN|EXTMODULE_RF_SWITCH_GPIO_PIN) #define EXTERNAL_MODULE_PWR_ON() GPIO_SetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN|EXTMODULE_RF_SWITCH_GPIO_PIN)
#define EXTERNAL_MODULE_PWR_OFF() GPIO_ResetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN|EXTMODULE_RF_SWITCH_GPIO_PIN) #define EXTERNAL_MODULE_PWR_OFF() GPIO_ResetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN|EXTMODULE_RF_SWITCH_GPIO_PIN)
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define EXTMODULE_PWR_GPIO GPIOB #define EXTMODULE_PWR_GPIO GPIOB
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_1 // PB.01 #define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_1 // PB.01
#define EXTERNAL_MODULE_PWR_ON() GPIO_SetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN) #define EXTERNAL_MODULE_PWR_ON() GPIO_SetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN)
@ -2257,7 +2270,7 @@
#define TRAINER_IN_TIMER_Channel LL_TIM_CHANNEL_CH3 #define TRAINER_IN_TIMER_Channel LL_TIM_CHANNEL_CH3
#define TRAINER_OUT_GPIO_PIN LL_GPIO_PIN_9 // PC.09 #define TRAINER_OUT_GPIO_PIN LL_GPIO_PIN_9 // PC.09
#define TRAINER_OUT_TIMER_Channel LL_TIM_CHANNEL_CH4 #define TRAINER_OUT_TIMER_Channel LL_TIM_CHANNEL_CH4
#if defined(RADIO_T20) #if defined(RADIO_FAMILY_T20)
#define TRAINER_DETECT_GPIO GPIOE #define TRAINER_DETECT_GPIO GPIOE
#define TRAINER_DETECT_GPIO_PIN LL_GPIO_PIN_8 // PE.03 #define TRAINER_DETECT_GPIO_PIN LL_GPIO_PIN_8 // PE.03
#elif defined(RADIO_MT12) #elif defined(RADIO_MT12)
@ -2576,7 +2589,7 @@
#define BACKLIGHT_CCMR1 TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 // Channel 1, PWM #define BACKLIGHT_CCMR1 TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 // Channel 1, PWM
#define BACKLIGHT_CCER TIM_CCER_CC1E #define BACKLIGHT_CCER TIM_CCER_CC1E
#define BACKLIGHT_COUNTER_REGISTER BACKLIGHT_TIMER->CCR1 #define BACKLIGHT_COUNTER_REGISTER BACKLIGHT_TIMER->CCR1
#elif defined(RADIO_T8) || defined(RADIO_TPROV2) || defined(RADIO_T20) || defined(RADIO_T14) #elif defined(RADIO_T8) || defined(RADIO_TPROV2) || defined(RADIO_FAMILY_T20) || defined(RADIO_T14)
#define BACKLIGHT_RCC_AHB1Periph 0 #define BACKLIGHT_RCC_AHB1Periph 0
#define BACKLIGHT_RCC_APB1Periph 0 #define BACKLIGHT_RCC_APB1Periph 0
#define BACKLIGHT_RCC_APB2Periph 0 #define BACKLIGHT_RCC_APB2Periph 0
@ -2620,10 +2633,10 @@
#define KEYS_BACKLIGHT_RCC_AHB1Periph 0 #define KEYS_BACKLIGHT_RCC_AHB1Periph 0
// LCD driver // LCD driver
#if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_T20) || defined(RADIO_MT12) #if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_FAMILY_T20) || defined(RADIO_MT12)
#define LCD_VERTICAL_INVERT #define LCD_VERTICAL_INVERT
#endif #endif
#if defined(RADIO_LR3PRO) || defined(RADIO_TPROV2) || defined(RADIO_T20) || defined(RADIO_T14) #if defined(RADIO_LR3PRO) || defined(RADIO_TPROV2) || defined(RADIO_FAMILY_T20) || defined(RADIO_T14)
#define LCD_HORIZONTAL_INVERT #define LCD_HORIZONTAL_INVERT
#define OLED_SCREEN #define OLED_SCREEN
#endif #endif
@ -2683,7 +2696,7 @@
#define LCD_A0_GPIO_PIN GPIO_Pin_11 // PC.11 //MOSI #define LCD_A0_GPIO_PIN GPIO_Pin_11 // PC.11 //MOSI
#define LCD_NCS_GPIO GPIOA #define LCD_NCS_GPIO GPIOA
#define LCD_NCS_GPIO_PIN GPIO_Pin_15 // PA.15 #define LCD_NCS_GPIO_PIN GPIO_Pin_15 // PA.15
#if defined(RADIO_T20) #if defined(RADIO_FAMILY_T20)
#define LCD_RST_GPIO GPIOA #define LCD_RST_GPIO GPIOA
#define LCD_RST_GPIO_PIN GPIO_Pin_14 // PA.14 #define LCD_RST_GPIO_PIN GPIO_Pin_14 // PA.14
#else #else
@ -2780,7 +2793,7 @@
#endif #endif
// SD - SPI2 // SD - SPI2
#if defined(RADIO_T20) || defined(RADIO_T14) #if defined(RADIO_FAMILY_T20) || defined(RADIO_T14)
// Using chip, so no detect // Using chip, so no detect
#else #else
#define SD_PRESENT_GPIO GPIOD #define SD_PRESENT_GPIO GPIOD
@ -2827,7 +2840,7 @@
#define AUDIO_SPEAKER_ENABLE_GPIO_PIN GPIO_Pin_14 // PD.14 #define AUDIO_SPEAKER_ENABLE_GPIO_PIN GPIO_Pin_14 // PD.14
#define HEADPHONE_TRAINER_SWITCH_GPIO GPIOD #define HEADPHONE_TRAINER_SWITCH_GPIO GPIOD
#define HEADPHONE_TRAINER_SWITCH_GPIO_PIN GPIO_Pin_9 // PD.09 #define HEADPHONE_TRAINER_SWITCH_GPIO_PIN GPIO_Pin_9 // PD.09
#elif defined(RADIO_T20) #elif defined(RADIO_FAMILY_T20)
#define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOG | RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_DMA1) #define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOG | RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_DMA1)
#define AUDIO_MUTE_GPIO GPIOG #define AUDIO_MUTE_GPIO GPIOG
#define AUDIO_MUTE_GPIO_PIN GPIO_Pin_4 // PG.04 #define AUDIO_MUTE_GPIO_PIN GPIO_Pin_4 // PG.04
@ -2854,7 +2867,7 @@
#endif #endif
// Haptic // Haptic
#if defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2)|| defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T14) #if defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2)|| defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T20V2) || defined(RADIO_T14)
#define HAPTIC_PWM #define HAPTIC_PWM
#define HAPTIC_RCC_AHB1Periph RCC_AHB1Periph_GPIOB #define HAPTIC_RCC_AHB1Periph RCC_AHB1Periph_GPIOB
#define HAPTIC_RCC_APB1Periph RCC_APB1Periph_TIM2 #define HAPTIC_RCC_APB1Periph RCC_APB1Periph_TIM2
@ -2905,7 +2918,7 @@
#define HAPTIC_GPIO_PIN GPIO_Pin_12 #define HAPTIC_GPIO_PIN GPIO_Pin_12
#endif #endif
#if defined(RADIO_BOXER) || defined(RADIO_T20) || defined(RADIO_X9DP2019) #if defined(RADIO_BOXER) || defined(RADIO_FAMILY_T20) || defined(RADIO_X9DP2019)
// Flysky Hall Stick // Flysky Hall Stick
#define FLYSKY_HALL_SERIAL_USART UART4 #define FLYSKY_HALL_SERIAL_USART UART4
#define FLYSKY_HALL_SERIAL_GPIO GPIOA #define FLYSKY_HALL_SERIAL_GPIO GPIOA

View file

@ -70,6 +70,10 @@
#define USB_NAME "Jumper T20" #define USB_NAME "Jumper T20"
#define USB_MANUFACTURER 'J', 'U', 'M', 'P', 'E', 'R', ' ', ' ' /* 8 bytes */ #define USB_MANUFACTURER 'J', 'U', 'M', 'P', 'E', 'R', ' ', ' ' /* 8 bytes */
#define USB_PRODUCT 'T', '2', '0', ' ', ' ', ' ', ' ', ' ' /* 8 Bytes */ #define USB_PRODUCT 'T', '2', '0', ' ', ' ', ' ', ' ', ' ' /* 8 Bytes */
#elif defined(RADIO_T20V2)
#define USB_NAME "Jumper T20 V2"
#define USB_MANUFACTURER 'J', 'U', 'M', 'P', 'E', 'R', ' ', ' ' /* 8 bytes */
#define USB_PRODUCT 'T', '2', '0', 'V', '2', ' ', ' ', ' ' /* 8 Bytes */
#elif defined(RADIO_COMMANDO8) #elif defined(RADIO_COMMANDO8)
#define USB_NAME "iFlight Commando 8" #define USB_NAME "iFlight Commando 8"
#define USB_MANUFACTURER 'i', 'F', 'l', 'i', 'g', 'h', 't', '-' /* 8 bytes */ #define USB_MANUFACTURER 'i', 'F', 'l', 'i', 'g', 'h', 't', '-' /* 8 bytes */

View file

@ -115,7 +115,7 @@ const uint32_t CROSSFIRE_BAUDRATES[] = {
5250000, 5250000,
}; };
#if defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_T20) #if defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_FAMILY_T20)
#define CROSSFIRE_MAX_INTERNAL_BAUDRATE DIM(CROSSFIRE_BAUDRATES) - 3 #define CROSSFIRE_MAX_INTERNAL_BAUDRATE DIM(CROSSFIRE_BAUDRATES) - 3
#else #else
#define CROSSFIRE_MAX_INTERNAL_BAUDRATE DIM(CROSSFIRE_BAUDRATES) - 1 #define CROSSFIRE_MAX_INTERNAL_BAUDRATE DIM(CROSSFIRE_BAUDRATES) - 1

View file

@ -566,7 +566,7 @@ LEGACY_NAMES = [
} }
}, },
{ {
"targets": {"t20"}, "targets": {"t20","t20v2"},
"inputs": { "inputs": {
"LH": { "LH": {
"yaml": "Rud", "yaml": "Rud",

View file

@ -54,6 +54,14 @@ POT_CONFIG = {
"SL3": {"default": "SLIDER"}, "SL3": {"default": "SLIDER"},
"SL4": {"default": "SLIDER"}, "SL4": {"default": "SLIDER"},
}, },
"t20v2": {
"P1": {"default": "POT_CENTER"},
"P2": {"default": "POT_CENTER"},
"SL1": {"default": "SLIDER"},
"SL2": {"default": "SLIDER"},
"SL3": {"default": "SLIDER"},
"SL4": {"default": "SLIDER"},
},
"t12": { "t12": {
"P1": {"default": "POT"}, "P1": {"default": "POT"},
"P2": {"default": "POT"} "P2": {"default": "POT"}

View file

@ -177,6 +177,20 @@ SWITCH_CONFIG = {
"SH": {"default": "TOGGLE", "display": [1, 3]}, "SH": {"default": "TOGGLE", "display": [1, 3]},
"SJ": {"default": "TOGGLE", "display": [1, 4]} "SJ": {"default": "TOGGLE", "display": [1, 4]}
}, },
"t20v2": {
# left side
"SA": {"default": "2POS", "display": [0, 0]},
"SC": {"default": "3POS", "display": [0, 1]},
"SE": {"default": "2POS", "display": [0, 2]},
"SG": {"default": "TOGGLE", "display": [0, 3]},
"SI": {"default": "TOGGLE", "display": [0, 4]},
# right side
"SB": {"default": "2POS", "display": [1, 0]},
"SD": {"default": "3POS", "display": [1, 1]},
"SF": {"default": "2POS", "display": [1, 2]},
"SH": {"default": "TOGGLE", "display": [1, 3]},
"SJ": {"default": "TOGGLE", "display": [1, 4]}
},
"tx12": { "tx12": {
# left side # left side
"SA": {"default": "TOGGLE", "display": [0, 0]}, "SA": {"default": "TOGGLE", "display": [0, 0]},

View file

@ -134,6 +134,9 @@ do
t14) t14)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14" BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14"
;; ;;
t20v2)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20V2"
;;
xlite) xlite)
BUILD_OPTIONS+="-DPCB=XLITE" BUILD_OPTIONS+="-DPCB=XLITE"
;; ;;

View file

@ -146,6 +146,9 @@ do
t14) t14)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14" BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14"
;; ;;
t20v2)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20V2"
;;
lr3pro) lr3pro)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO" BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO"
;; ;;

View file

@ -112,6 +112,9 @@ do
t14) t14)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14" BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14"
;; ;;
t20v2)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20V2"
;;
xlite) xlite)
BUILD_OPTIONS+="-DPCB=XLITE" BUILD_OPTIONS+="-DPCB=XLITE"
;; ;;

View file

@ -6,7 +6,7 @@ set -e
: "${SRCDIR:=$(dirname "$(pwd)/$0")/..}" : "${SRCDIR:=$(dirname "$(pwd)/$0")/..}"
: ${FLAVOR:="nv14;t12;t16;t18;t8;zorro;pocket;commando8;tlite;tpro;tprov2;t20;t14;lr3pro;mt12;tx12;tx12mk2;boxer;tx16s;x10;x10-access;x12s;x7;x7-access;x9d;x9dp;x9dp2019;x9e;x9lite;x9lites;xlite;xlites"} : ${FLAVOR:="nv14;t12;t16;t18;t8;zorro;pocket;commando8;tlite;tpro;tprov2;t20;t20v2;t14;lr3pro;mt12;tx12;tx12mk2;boxer;tx16s;x10;x10-access;x12s;x7;x7-access;x9d;x9dp;x9dp2019;x9e;x9lite;x9lites;xlite;xlites"}
: ${COMMON_OPTIONS:="-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_RULE_MESSAGES=OFF -Wno-dev -DCMAKE_MESSAGE_LOG_LEVEL=WARNING"} : ${COMMON_OPTIONS:="-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_RULE_MESSAGES=OFF -Wno-dev -DCMAKE_MESSAGE_LOG_LEVEL=WARNING"}
# wipe build directory clean # wipe build directory clean
@ -75,6 +75,9 @@ do
t14) t14)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14" BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14"
;; ;;
t20v2)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20V2"
;;
lr3pro) lr3pro)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO" BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO"
;; ;;

View file

@ -74,6 +74,9 @@ do
t20) t20)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20" BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20"
;; ;;
t20v2)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20V2"
;;
t14) t14)
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14" BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14"
;; ;;

View file

@ -9,7 +9,7 @@
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
export BRANCH_NAME="main" # main|2.9|... export BRANCH_NAME="main" # main|2.9|...
export RADIO_TYPE="tx16s" # tx16s|x10|x10-access|x12s|x9d|x9dp|x9lite|x9lites|x7|x7-access|t12|tx12|tx12mk2|mt12|boxer|t8|zorro|pocket|tlite|tpro|t20|t14|lr3pro|xlite|xlites|x9dp2019|x9e|x9e-hall|t16|t18|nv14|commando8 export RADIO_TYPE="tx16s" # tx16s|x10|x10-access|x12s|x9d|x9dp|x9lite|x9lites|x7|x7-access|t12|tx12|tx12mk2|mt12|boxer|t8|zorro|pocket|tlite|tpro|t20|t20v2|t14|lr3pro|xlite|xlites|x9dp2019|x9e|x9e-hall|t16|t18|nv14|commando8
export BUILD_OPTIONS="-DDEFAULT_MODE=2 -DGVARS=YES" export BUILD_OPTIONS="-DDEFAULT_MODE=2 -DGVARS=YES"
@ -60,6 +60,9 @@ case $RADIO_TYPE in
t20) t20)
BUILD_OPTIONS+=" -DPCB=X7 -DPCBREV=T20" BUILD_OPTIONS+=" -DPCB=X7 -DPCBREV=T20"
;; ;;
t20v2)
BUILD_OPTIONS+=" -DPCB=X7 -DPCBREV=T20V2"
;;
t14) t14)
BUILD_OPTIONS+=" -DPCB=X7 -DPCBREV=T14" BUILD_OPTIONS+=" -DPCB=X7 -DPCBREV=T14"
;; ;;