mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-25 17:25:10 +03:00
feat(fw): Jumper T14 support (#4543)
This commit is contained in:
parent
3235293580
commit
1b7044a134
19 changed files with 274 additions and 23 deletions
2
.github/workflows/actions.yml
vendored
2
.github/workflows/actions.yml
vendored
|
@ -54,6 +54,7 @@ jobs:
|
|||
- t8
|
||||
- tlite
|
||||
- t20
|
||||
- t14
|
||||
- tx12
|
||||
- x10
|
||||
- x12s
|
||||
|
@ -98,6 +99,7 @@ jobs:
|
|||
- t8;zorro;pocket;mt12;commando8
|
||||
- tlite;tpro;tprov2;lr3pro
|
||||
- t20
|
||||
- t14
|
||||
- tx12;tx12mk2;boxer
|
||||
- tx16s
|
||||
- x10;x10-access
|
||||
|
|
2
.github/workflows/nightly.yml
vendored
2
.github/workflows/nightly.yml
vendored
|
@ -22,7 +22,7 @@ jobs:
|
|||
- t18
|
||||
- t8;zorro;pocket;mt12;commando8
|
||||
- tlite;tpro;tprov2;lr3pro
|
||||
- t20
|
||||
- t20;t14
|
||||
- tx12;tx12mk2;boxer
|
||||
- tx16s
|
||||
- x10;x10-access
|
||||
|
|
1
fw.json
1
fw.json
|
@ -27,6 +27,7 @@
|
|||
["Jumper T-Pro", "tpro-"],
|
||||
["Jumper T-Pro V2", "tprov2-"],
|
||||
["Jumper T20", "t20-"],
|
||||
["Jumper T14", "t14-"],
|
||||
["RadioMaster Boxer", "boxer-"],
|
||||
["RadioMaster MT12","mt12-"],
|
||||
["RadioMaster Pocket", "pocket-"],
|
||||
|
|
|
@ -130,6 +130,9 @@ static inline void check_struct()
|
|||
#elif defined(RADIO_TPROV2)
|
||||
CHKSIZE(RadioData, 859);
|
||||
CHKSIZE(ModelData, 6290);
|
||||
#elif defined(RADIO_T14)
|
||||
CHKSIZE(RadioData, 859);
|
||||
CHKSIZE(ModelData, 6265);
|
||||
#elif defined(RADIO_T20)
|
||||
CHKSIZE(RadioData, 859);
|
||||
CHKSIZE(ModelData, 6326);
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#define ROTENC_MIDSPEED 5
|
||||
#define ROTENC_HIGHSPEED 50
|
||||
|
||||
#if defined(RADIO_T20)
|
||||
#if defined(RADIO_T20) || defined(RADIO_T14)
|
||||
#define ROTARY_ENCODER_GRANULARITY 4
|
||||
#else
|
||||
#define ROTARY_ENCODER_GRANULARITY 2
|
||||
|
|
|
@ -147,6 +147,17 @@ elseif(PCB STREQUAL X7)
|
|||
add_definitions(-DRADIO_TPROV2)
|
||||
add_definitions(-DMANUFACTURER_JUMPER)
|
||||
set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough")
|
||||
elseif (PCBREV STREQUAL T14)
|
||||
set(DEFAULT_INTERNAL_MODULE CROSSFIRE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
set(MODULE_SIZE_SML YES)
|
||||
set(FLAVOUR t14)
|
||||
set(NAVIGATION_TYPE x7)
|
||||
set(ROTARY_ENCODER YES)
|
||||
set(CPU_TYPE_FULL STM32F407xG)
|
||||
add_definitions(-DRADIO_T14)
|
||||
add_definitions(-DMANUFACTURER_JUMPER)
|
||||
set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough")
|
||||
elseif(PCBREV STREQUAL T20)
|
||||
set(DEFAULT_INTERNAL_MODULE CROSSFIRE CACHE STRING "Default internal module")
|
||||
set(INTERNAL_MODULE_SERIAL YES)
|
||||
|
@ -598,7 +609,7 @@ if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES OR PCBREV STREQUAL COMMANDO8)
|
|||
targets/common/arm/stm32/sticks_pwm_driver.cpp)
|
||||
endif()
|
||||
|
||||
if(PCBREV STREQUAL MT12)
|
||||
if(PCBREV STREQUAL MT12 OR PCBREV STREQUAL T14)
|
||||
set(FIRMWARE_SRC
|
||||
${FIRMWARE_SRC}
|
||||
targets/common/arm/stm32/stm32_ws2812.cpp
|
||||
|
|
|
@ -161,6 +161,15 @@
|
|||
#define KEYS_GPIO_PIN_EXIT LL_GPIO_PIN_12 // PD.12
|
||||
#define KEYS_GPIO_REG_ENTER GPIOE
|
||||
#define KEYS_GPIO_PIN_ENTER LL_GPIO_PIN_7 // PE.7
|
||||
#elif defined(RADIO_T14)
|
||||
#define KEYS_GPIO_REG_PAGE GPIOD
|
||||
#define KEYS_GPIO_PIN_PAGE LL_GPIO_PIN_3 // PD.03
|
||||
#define KEYS_GPIO_REG_MENU GPIOD
|
||||
#define KEYS_GPIO_PIN_MENU LL_GPIO_PIN_7 // PD.07
|
||||
#define KEYS_GPIO_REG_EXIT GPIOD
|
||||
#define KEYS_GPIO_PIN_EXIT LL_GPIO_PIN_2 // PD.02
|
||||
#define KEYS_GPIO_REG_ENTER GPIOA
|
||||
#define KEYS_GPIO_PIN_ENTER LL_GPIO_PIN_13 // PA.13
|
||||
#elif defined(PCBX7)
|
||||
#define KEYS_GPIO_REG_PAGE GPIOD
|
||||
#define KEYS_GPIO_PIN_PAGE LL_GPIO_PIN_3 // PD.03
|
||||
|
@ -273,10 +282,10 @@
|
|||
#define USE_EXTI15_10_IRQ
|
||||
#define EXTI15_10_IRQ_Priority 5
|
||||
#endif
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_MT12) || defined(RADIO_POCKET)
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_MT12) || defined(RADIO_POCKET) || defined(RADIO_T14)
|
||||
#define ROTARY_ENCODER_NAVIGATION
|
||||
#define ROTARY_ENCODER_GPIO GPIOE
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A GPIO_Pin_9 // PE.9
|
||||
#define ROTARY_ENCODER_GPIO_PIN_A GPIO_Pin_9 // PE.09
|
||||
#define ROTARY_ENCODER_GPIO_PIN_B GPIO_Pin_10 // PE.10
|
||||
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x03)
|
||||
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_9
|
||||
|
@ -297,7 +306,7 @@
|
|||
#if defined(RADIO_TX12)
|
||||
#define ROTARY_ENCODER_SUPPORT_BUGGY_WIRING
|
||||
#endif
|
||||
#if defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_MT12) || defined(RADIO_POCKET)
|
||||
#if defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_MT12) || defined(RADIO_POCKET) || defined(RADIO_T14)
|
||||
#define ROTARY_ENCODER_INVERTED
|
||||
#endif
|
||||
#endif
|
||||
|
@ -411,6 +420,23 @@
|
|||
#define TRIMS_GPIO_PIN_T5R LL_GPIO_PIN_15 // PE.15
|
||||
#define TRIMS_GPIO_REG_T5L GPIOE
|
||||
#define TRIMS_GPIO_PIN_T5L LL_GPIO_PIN_14 // PE.14
|
||||
#elif defined(RADIO_T14)
|
||||
#define TRIMS_GPIO_REG_LHL GPIOE
|
||||
#define TRIMS_GPIO_PIN_LHL LL_GPIO_PIN_3 // PE.03
|
||||
#define TRIMS_GPIO_REG_LHR GPIOE
|
||||
#define TRIMS_GPIO_PIN_LHR LL_GPIO_PIN_4 // PE.04
|
||||
#define TRIMS_GPIO_REG_LVD GPIOC
|
||||
#define TRIMS_GPIO_PIN_LVD LL_GPIO_PIN_3 // PC.03
|
||||
#define TRIMS_GPIO_REG_LVU GPIOC
|
||||
#define TRIMS_GPIO_PIN_LVU LL_GPIO_PIN_2 // PC.02
|
||||
#define TRIMS_GPIO_REG_RVD GPIOE
|
||||
#define TRIMS_GPIO_PIN_RVD LL_GPIO_PIN_6 // PE.06
|
||||
#define TRIMS_GPIO_REG_RHL GPIOD
|
||||
#define TRIMS_GPIO_PIN_RHL LL_GPIO_PIN_15 // PD.15
|
||||
#define TRIMS_GPIO_REG_RVU GPIOE
|
||||
#define TRIMS_GPIO_PIN_RVU LL_GPIO_PIN_5 // PE.05
|
||||
#define TRIMS_GPIO_REG_RHR GPIOC
|
||||
#define TRIMS_GPIO_PIN_RHR LL_GPIO_PIN_1 // PC.01
|
||||
#elif defined(PCBX7) && !defined(RADIO_COMMANDO8)
|
||||
#define TRIMS_GPIO_REG_LHL GPIOD
|
||||
#define TRIMS_GPIO_PIN_LHL LL_GPIO_PIN_15 // PD.15
|
||||
|
@ -519,6 +545,11 @@
|
|||
#define HARDWARE_SWITCH_A
|
||||
#define SWITCHES_GPIO_REG_A GPIOC
|
||||
#define SWITCHES_GPIO_PIN_A LL_GPIO_PIN_13 // PC.13
|
||||
#elif defined(RADIO_T14)
|
||||
#define STORAGE_SWITCH_A
|
||||
#define HARDWARE_SWITCH_A
|
||||
#define SWITCHES_GPIO_REG_A GPIOC
|
||||
#define SWITCHES_GPIO_PIN_A LL_GPIO_PIN_5 // PC.05
|
||||
#elif defined(RADIO_T8)
|
||||
#define STORAGE_SWITCH_A
|
||||
#define HARDWARE_SWITCH_A
|
||||
|
@ -613,6 +644,11 @@
|
|||
#define SWITCHES_GPIO_PIN_B_L LL_GPIO_PIN_15 // PE.15
|
||||
#define SWITCHES_GPIO_REG_B_H GPIOE
|
||||
#define SWITCHES_GPIO_PIN_B_H LL_GPIO_PIN_7 // PE.07
|
||||
#elif defined(RADIO_T14)
|
||||
#define STORAGE_SWITCH_B
|
||||
#define HARDWARE_SWITCH_B
|
||||
#define SWITCHES_GPIO_REG_B GPIOE
|
||||
#define SWITCHES_GPIO_PIN_B LL_GPIO_PIN_7 // PE.07
|
||||
#elif defined(RADIO_MT12)
|
||||
#define STORAGE_SWITCH_B
|
||||
#define HARDWARE_SWITCH_B
|
||||
|
@ -662,6 +698,13 @@
|
|||
#define SWITCHES_GPIO_PIN_C_L LL_GPIO_PIN_0 // PE.00
|
||||
#define SWITCHES_GPIO_REG_C_H GPIOD
|
||||
#define SWITCHES_GPIO_PIN_C_H LL_GPIO_PIN_11 // PD.11
|
||||
#elif defined(RADIO_T14)
|
||||
#define STORAGE_SWITCH_C
|
||||
#define HARDWARE_SWITCH_C
|
||||
#define SWITCHES_GPIO_REG_C_H GPIOE
|
||||
#define SWITCHES_GPIO_PIN_C_H LL_GPIO_PIN_0 // PE.00
|
||||
#define SWITCHES_GPIO_REG_C_L GPIOD
|
||||
#define SWITCHES_GPIO_PIN_C_L LL_GPIO_PIN_11 // PD.11
|
||||
#elif defined(RADIO_TX12)
|
||||
#define STORAGE_SWITCH_C
|
||||
#define HARDWARE_SWITCH_C
|
||||
|
@ -769,6 +812,13 @@
|
|||
#define HARDWARE_SWITCH_D
|
||||
#define SWITCHES_GPIO_REG_D GPIOD
|
||||
#define SWITCHES_GPIO_PIN_D LL_GPIO_PIN_14 // PD.14
|
||||
#elif defined(RADIO_T14)
|
||||
#define STORAGE_SWITCH_D
|
||||
#define HARDWARE_SWITCH_D
|
||||
#define SWITCHES_GPIO_REG_D_L GPIOA
|
||||
#define SWITCHES_GPIO_PIN_D_L LL_GPIO_PIN_5 // PA.05
|
||||
#define SWITCHES_GPIO_REG_D_H GPIOE
|
||||
#define SWITCHES_GPIO_PIN_D_H LL_GPIO_PIN_15 // PE.15
|
||||
#elif defined(RADIO_T20)
|
||||
#define STORAGE_SWITCH_D
|
||||
#define HARDWARE_SWITCH_D
|
||||
|
@ -863,6 +913,11 @@
|
|||
#define HARDWARE_SWITCH_E
|
||||
#define SWITCHES_GPIO_REG_E GPIOG
|
||||
#define SWITCHES_GPIO_PIN_E LL_GPIO_PIN_10 // PG.10
|
||||
#elif defined(RADIO_T14)
|
||||
#define STORAGE_SWITCH_E
|
||||
#define HARDWARE_SWITCH_E
|
||||
#define SWITCHES_GPIO_REG_E GPIOE
|
||||
#define SWITCHES_GPIO_PIN_E LL_GPIO_PIN_8 // PE.08
|
||||
#elif defined(RADIO_T20)
|
||||
#define STORAGE_SWITCH_E
|
||||
#define HARDWARE_SWITCH_E
|
||||
|
@ -930,6 +985,11 @@
|
|||
#define HARDWARE_SWITCH_F
|
||||
#define SWITCHES_GPIO_REG_F GPIOG
|
||||
#define SWITCHES_GPIO_PIN_F LL_GPIO_PIN_9 // PG.09
|
||||
#elif defined(RADIO_T14)
|
||||
#define STORAGE_SWITCH_F
|
||||
#define HARDWARE_SWITCH_F
|
||||
#define SWITCHES_GPIO_REG_F GPIOC
|
||||
#define SWITCHES_GPIO_PIN_F LL_GPIO_PIN_13// PC.13
|
||||
#elif defined(RADIO_T20)
|
||||
#define STORAGE_SWITCH_F
|
||||
#define HARDWARE_SWITCH_F
|
||||
|
@ -991,7 +1051,7 @@
|
|||
#define HARDWARE_SWITCH_G
|
||||
#define SWITCHES_GPIO_REG_G GPIOD
|
||||
#define SWITCHES_GPIO_PIN_G LL_GPIO_PIN_15 // PD.15
|
||||
#elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_MT12) || defined(RADIO_POCKET)
|
||||
#elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_MT12) || defined(RADIO_POCKET) || defined(RADIO_T14)
|
||||
// no SWG
|
||||
#else
|
||||
#define STORAGE_SWITCH_G
|
||||
|
@ -1018,8 +1078,8 @@
|
|||
#define STORAGE_SWITCH_H
|
||||
// no SWH
|
||||
#elif defined(RADIO_TX12) || defined(RADIO_MT12)
|
||||
#elif defined(RADIO_TX12MK2) || defined(RADIO_BOXER)
|
||||
#define STORAGE_SWITCH_H
|
||||
#elif defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_T14)
|
||||
#define STORAGE_SWITCH_H
|
||||
#elif defined(RADIO_TPROV2)
|
||||
#define STORAGE_SWITCH_H
|
||||
#define HARDWARE_SWITCH_H
|
||||
|
@ -1089,8 +1149,8 @@
|
|||
#define STORAGE_SWITCH_I
|
||||
// no SWJ
|
||||
#define STORAGE_SWITCH_J
|
||||
#elif defined(RADIO_ZORRO) || defined(RADIO_POCKET)
|
||||
// No I/J
|
||||
#elif defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_T14)
|
||||
// No I/J
|
||||
#elif defined(RADIO_TPROV2)
|
||||
// SW1
|
||||
#define FUNCTION_SWITCH_1 SI
|
||||
|
@ -1456,6 +1516,27 @@
|
|||
#define ADC_GPIOC_PINS ADC_GPIO_PIN_BATT
|
||||
#define ADC_CHANNEL_BATT LL_ADC_CHANNEL_10
|
||||
#define ADC_VREF_PREC2 330
|
||||
#elif defined(RADIO_T14)
|
||||
#define HARDWARE_POT1
|
||||
#define HARDWARE_POT2
|
||||
#define ADC_GPIO_PIN_STICK_LV LL_GPIO_PIN_0 // PA.00
|
||||
#define ADC_GPIO_PIN_STICK_LH LL_GPIO_PIN_1 // PA.01
|
||||
#define ADC_GPIO_PIN_STICK_RV LL_GPIO_PIN_2 // PA.02
|
||||
#define ADC_GPIO_PIN_STICK_RH LL_GPIO_PIN_3 // PA.03
|
||||
#define ADC_CHANNEL_STICK_LV LL_ADC_CHANNEL_0 // ADC1_IN0
|
||||
#define ADC_CHANNEL_STICK_LH LL_ADC_CHANNEL_1 // ADC1_IN1
|
||||
#define ADC_CHANNEL_STICK_RV LL_ADC_CHANNEL_2 // ADC1_IN2
|
||||
#define ADC_CHANNEL_STICK_RH LL_ADC_CHANNEL_3 // ADC1_IN3
|
||||
#define ADC_GPIO_PIN_POT1 LL_GPIO_PIN_0 // PB.00
|
||||
#define ADC_GPIO_PIN_POT2 LL_GPIO_PIN_1 // PB.01
|
||||
#define ADC_GPIO_PIN_BATT LL_GPIO_PIN_0 // PC.00
|
||||
#define ADC_GPIOA_PINS (ADC_GPIO_PIN_STICK_RV | ADC_GPIO_PIN_STICK_RH | ADC_GPIO_PIN_STICK_LH | ADC_GPIO_PIN_STICK_LV)
|
||||
#define ADC_GPIOB_PINS (ADC_GPIO_PIN_POT1 | ADC_GPIO_PIN_POT2)
|
||||
#define ADC_GPIOC_PINS ADC_GPIO_PIN_BATT
|
||||
#define ADC_CHANNEL_POT1 LL_ADC_CHANNEL_8 // ADC12_IN8
|
||||
#define ADC_CHANNEL_POT2 LL_ADC_CHANNEL_9 // ADC12_IN9
|
||||
#define ADC_CHANNEL_BATT LL_ADC_CHANNEL_10
|
||||
#define ADC_VREF_PREC2 330
|
||||
#elif defined(RADIO_TPRO) || defined(RADIO_TPROV2)
|
||||
#define HARDWARE_POT1
|
||||
#define HARDWARE_POT2
|
||||
|
@ -1632,6 +1713,8 @@
|
|||
#define ADC_DIRECTION {-1, 1, 1, -1, -1}
|
||||
#elif defined(RADIO_TPRO) || defined(RADIO_TPROV2)
|
||||
#define ADC_DIRECTION {1,-1,1,-1, 1,1, 1, 1}
|
||||
#elif defined(RADIO_T14)
|
||||
#define ADC_DIRECTION {1, -1, 1, -1, 1, 1, 1}
|
||||
#elif defined(RADIO_T20)
|
||||
#define ADC_DIRECTION {1,-1,1,-1, -1,1,-1,-1,-1,-1}
|
||||
#elif defined(RADIO_MT12)
|
||||
|
@ -1736,6 +1819,16 @@
|
|||
#define LED_RED_GPIO_PIN GPIO_Pin_13 // PE.13
|
||||
#define LED_BLUE_GPIO GPIOA
|
||||
#define LED_BLUE_GPIO_PIN GPIO_Pin_7 // PA.07
|
||||
#elif defined(RADIO_T14)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON GPIO_SetBits
|
||||
#define GPIO_LED_GPIO_OFF GPIO_ResetBits
|
||||
#define LED_RED_GPIO GPIOE
|
||||
#define LED_RED_GPIO_PIN GPIO_Pin_2 // PE.02
|
||||
#define LED_BLUE_GPIO GPIOE
|
||||
#define LED_BLUE_GPIO_PIN GPIO_Pin_13 // PE.13
|
||||
#define LED_GREEN_GPIO GPIOA
|
||||
#define LED_GREEN_GPIO_PIN GPIO_Pin_7 // PA.07
|
||||
#elif defined(RADIO_TLITE) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TX12)
|
||||
#define STATUS_LEDS
|
||||
#define GPIO_LED_GPIO_ON GPIO_SetBits
|
||||
|
@ -1810,6 +1903,20 @@
|
|||
#define LED_STRIP_TIMER_DMA_IRQn DMA2_Stream5_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA2_Stream5_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
#elif defined(RADIO_T14)
|
||||
#define LED_STRIP_LENGTH 1
|
||||
#define LED_STRIP_GPIO GPIOA
|
||||
#define LED_STRIP_GPIO_PIN_DATA LL_GPIO_PIN_10 // PA.10 / TIM1_CH3
|
||||
#define LED_STRIP_GPIO_PIN_AF LL_GPIO_AF_1
|
||||
#define LED_STRIP_TIMER TIM1
|
||||
#define LED_STRIP_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
|
||||
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
|
||||
#define LED_STRIP_TIMER_DMA DMA2
|
||||
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMA_CHANNEL_6
|
||||
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_5
|
||||
#define LED_STRIP_TIMER_DMA_IRQn DMA2_Stream5_IRQn
|
||||
#define LED_STRIP_TIMER_DMA_IRQHandler DMA2_Stream5_IRQHandler
|
||||
#define LED_STRIP_REFRESH_PERIOD 50 //ms
|
||||
#endif
|
||||
|
||||
#if defined(FUNCTION_SWITCHES)
|
||||
|
@ -1911,7 +2018,7 @@
|
|||
#define INTMODULE_DMA_STREAM_IRQHandler DMA2_Stream7_IRQHandler
|
||||
#define INTMODULE_DMA_FLAG_TC DMA_IT_TCIF7
|
||||
#define INTMODULE_DMA_CHANNEL DMA_Channel_4
|
||||
#elif defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12)
|
||||
#elif defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T14)
|
||||
#define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA2)
|
||||
#define INTMODULE_PWR_GPIO GPIOC
|
||||
#define INTMODULE_PWR_GPIO_PIN GPIO_Pin_4 // PC.04
|
||||
|
@ -1933,8 +2040,13 @@
|
|||
#define INTMODULE_RX_DMA DMA2
|
||||
#define INTMODULE_RX_DMA_STREAM LL_DMA_STREAM_2
|
||||
#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 INIT_INTMODULE_BOOTCMD_PIN() GPIO_ResetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN);
|
||||
#elif defined(PCBX9E) || defined(PCBX9DP) || defined(RADIO_X7)
|
||||
|
@ -2035,8 +2147,8 @@
|
|||
#endif
|
||||
|
||||
// External Module
|
||||
#if defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_X9DP2019) || defined(PCBX7ACCESS) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12)
|
||||
#if defined(RADIO_X9DP2019) || defined(RADIO_X7ACCESS) || defined(RADIO_ZORRO)|| defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12)
|
||||
#if defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_X9DP2019) || defined(PCBX7ACCESS) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T14)
|
||||
#if defined(RADIO_X9DP2019) || defined(RADIO_X7ACCESS) || defined(RADIO_ZORRO)|| defined(RADIO_POCKET) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12)|| defined(RADIO_T14)
|
||||
#define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2)
|
||||
#define EXTMODULE_PWR_GPIO GPIOD
|
||||
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_8 // PD.08
|
||||
|
@ -2370,7 +2482,8 @@
|
|||
// Trainer / Trainee from the module bay
|
||||
#if defined(PCBX9LITE) || defined(PCBXLITE) || defined(RADIO_X9DP2019) || \
|
||||
defined(PCBX7ACCESS) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || \
|
||||
defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12)
|
||||
defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) ||\
|
||||
defined(RADIO_T14)
|
||||
#define TRAINER_MODULE_CPPM_TIMER TIM3
|
||||
#define TRAINER_MODULE_CPPM_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
|
||||
#define TRAINER_MODULE_CPPM_GPIO EXTMODULE_USART_GPIO
|
||||
|
@ -2463,7 +2576,7 @@
|
|||
#define BACKLIGHT_CCMR1 TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 // Channel 1, PWM
|
||||
#define BACKLIGHT_CCER TIM_CCER_CC1E
|
||||
#define BACKLIGHT_COUNTER_REGISTER BACKLIGHT_TIMER->CCR1
|
||||
#elif defined(RADIO_T8) || defined(RADIO_TPROV2) || defined(RADIO_T20)
|
||||
#elif defined(RADIO_T8) || defined(RADIO_TPROV2) || defined(RADIO_T20) || defined(RADIO_T14)
|
||||
#define BACKLIGHT_RCC_AHB1Periph 0
|
||||
#define BACKLIGHT_RCC_APB1Periph 0
|
||||
#define BACKLIGHT_RCC_APB2Periph 0
|
||||
|
@ -2510,10 +2623,13 @@
|
|||
#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)
|
||||
#define LCD_VERTICAL_INVERT
|
||||
#endif
|
||||
#if defined(RADIO_LR3PRO) || defined(RADIO_TPROV2) || defined(RADIO_T20)
|
||||
#if defined(RADIO_LR3PRO) || defined(RADIO_TPROV2) || defined(RADIO_T20) || defined(RADIO_T14)
|
||||
#define LCD_HORIZONTAL_INVERT
|
||||
#define OLED_SCREEN
|
||||
#endif
|
||||
#if defined(RADIO_T14)
|
||||
#define SSD1309_LCD
|
||||
#endif
|
||||
#if defined(PCBX9E)
|
||||
#define LCD_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA1)
|
||||
#define LCD_RCC_APB1Periph RCC_APB1Periph_SPI3
|
||||
|
@ -2564,7 +2680,7 @@
|
|||
#define LCD_MOSI_GPIO_PinSource GPIO_PinSource12
|
||||
#define LCD_CLK_GPIO_PIN GPIO_Pin_10 // PC.10
|
||||
#define LCD_CLK_GPIO_PinSource GPIO_PinSource10
|
||||
#define LCD_A0_GPIO_PIN GPIO_Pin_11 // PC.11
|
||||
#define LCD_A0_GPIO_PIN GPIO_Pin_11 // PC.11 //MOSI
|
||||
#define LCD_NCS_GPIO GPIOA
|
||||
#define LCD_NCS_GPIO_PIN GPIO_Pin_15 // PA.15
|
||||
#if defined(RADIO_T20)
|
||||
|
@ -2595,6 +2711,11 @@
|
|||
#define LCD_RST_GPIO_PIN GPIO_Pin_12 // PD.12
|
||||
#endif
|
||||
#define LCD_RCC_APB2Periph 0
|
||||
#if defined(SSD1309_LCD)
|
||||
#define LCD_SPI_PRESCALER SPI_CR1_BR_1
|
||||
#else
|
||||
#define LCD_SPI_PRESCALER 0
|
||||
#endif
|
||||
|
||||
// I2C Bus 1: EEPROM and CAT5137 digital pot for volume control
|
||||
#define I2C_B1 I2C1
|
||||
|
@ -2659,7 +2780,7 @@
|
|||
#endif
|
||||
|
||||
// SD - SPI2
|
||||
#if defined(RADIO_T20)
|
||||
#if defined(RADIO_T20) || defined(RADIO_T14)
|
||||
// Using chip, so no detect
|
||||
#else
|
||||
#define SD_PRESENT_GPIO GPIOD
|
||||
|
@ -2733,7 +2854,7 @@
|
|||
#endif
|
||||
|
||||
// Haptic
|
||||
#if defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2)|| defined(RADIO_BOXER) || defined(RADIO_MT12)
|
||||
#if defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2)|| defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T14)
|
||||
#define HAPTIC_PWM
|
||||
#define HAPTIC_RCC_AHB1Periph RCC_AHB1Periph_GPIOB
|
||||
#define HAPTIC_RCC_APB1Periph RCC_APB1Periph_TIM2
|
||||
|
|
|
@ -72,7 +72,7 @@ void lcdHardwareInit()
|
|||
|
||||
// APB1 clock / 2 = 133nS per clock
|
||||
LCD_SPI->CR1 = 0; // Clear any mode error
|
||||
LCD_SPI->CR1 = SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_CPOL | SPI_CR1_CPHA;
|
||||
LCD_SPI->CR1 = SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_CPOL | SPI_CR1_CPHA | LCD_SPI_PRESCALER;
|
||||
LCD_SPI->CR2 = 0;
|
||||
LCD_SPI->CR1 |= SPI_CR1_MSTR; // Make sure in case SSM/SSI needed to be set first
|
||||
LCD_SPI->CR1 |= SPI_CR1_SPE;
|
||||
|
@ -116,9 +116,44 @@ void lcdHardwareInit()
|
|||
NVIC_EnableIRQ(LCD_DMA_Stream_IRQn);
|
||||
}
|
||||
|
||||
#if defined(SSD1309_LCD)
|
||||
void lcdColumnSet(unsigned char column)
|
||||
{
|
||||
lcdWriteCommand(0x10|(column >> 4));
|
||||
lcdWriteCommand(0x00|(column & 0x0f));
|
||||
}
|
||||
|
||||
void lcdPageSet(unsigned char page)
|
||||
{
|
||||
lcdWriteCommand(0xb0 + page);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if LCD_W == 128
|
||||
void lcdStart()
|
||||
{
|
||||
#if defined(SSD1309_LCD)
|
||||
lcdWriteCommand(0xD5); // Set Display Clock Divide Ratio / OSC Frequency
|
||||
lcdWriteCommand(0x80); // Display Clock Divide Ratio / OSC Frequency
|
||||
lcdWriteCommand(0xA8); // Set Multiplex Ratio
|
||||
lcdWriteCommand(0x3F); // Multiplex Ratio for 128x64 (LCD_HEIGHT - 1)
|
||||
lcdWriteCommand(0xD3); // Set Display Offset
|
||||
lcdWriteCommand(0x00); // Display Offset (0)
|
||||
lcdWriteCommand(0x40); // Set Display Start Line (0)
|
||||
lcdWriteCommand(0x8D); // Set Charge Pump
|
||||
lcdWriteCommand(0x10); // Charge Pump (0x10 External, 0x14 Internal DC/DC)
|
||||
lcdWriteCommand(0xA1); // Set Segment Re-Map (Reversed)
|
||||
lcdWriteCommand(0xC8); // Set Com Output Scan Direction (Reversed)
|
||||
lcdWriteCommand(0xDA); // Set COM Hardware Configuration
|
||||
lcdWriteCommand(0x12); // COM Hardware Configuration
|
||||
lcdWriteCommand(0xD9); // Set Pre-Charge Period
|
||||
lcdWriteCommand(0x4F); // Set Pre-Charge Period (A[7:4]:Phase 2, A[3:0]:Phase 1)
|
||||
lcdWriteCommand(0xDB); // Set VCOMH Deselect Level
|
||||
lcdWriteCommand(0x20); // VCOMH Deselect Level (0x00 ~ 0.65 x VCC, 0x10 ~ 0.71 x VCC, 0x20 ~ 0.77 x VCC, 0x30 ~ 0.83 x VCC)
|
||||
lcdWriteCommand(0xA4); // Disable Entire Display On
|
||||
lcdWriteCommand(0xA6); // Set Normal Display (not inverted)
|
||||
lcdWriteCommand(0x2E); // Deactivate scroll
|
||||
#else
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
// T12 and TX12 have the screen inverted.
|
||||
lcdWriteCommand(0xe2); // (14) Soft reset
|
||||
|
@ -155,6 +190,7 @@ void lcdStart()
|
|||
#else
|
||||
lcdSetRefVolt(g_eeGeneral.contrast);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
void lcdStart()
|
||||
|
@ -221,10 +257,15 @@ void lcdRefresh(bool wait)
|
|||
lcdWriteCommand(LCD_W_OFFSET);
|
||||
#endif
|
||||
for (uint8_t y=0; y < 8; y++, p+=LCD_W) {
|
||||
#if defined(SSD1309_LCD)
|
||||
lcdPageSet(y);
|
||||
lcdColumnSet(0);
|
||||
#else
|
||||
lcdWriteCommand(0x10); // Column addr 0
|
||||
lcdWriteCommand(0xB0 | y); // Page addr y
|
||||
#if !defined(LCD_VERTICAL_INVERT)
|
||||
lcdWriteCommand(0x04);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
LCD_NCS_LOW();
|
||||
|
@ -297,6 +338,7 @@ void lcdOff()
|
|||
|
||||
void lcdReset()
|
||||
{
|
||||
LCD_NCS_HIGH();
|
||||
LCD_RST_LOW();
|
||||
#if LCD_W == 128
|
||||
delay_ms(150);
|
||||
|
|
|
@ -62,6 +62,10 @@
|
|||
#define USB_NAME "Jumper TPro V2"
|
||||
#define USB_MANUFACTURER 'J', 'U', 'M', 'P', 'E', 'R', ' ', ' ' /* 8 bytes */
|
||||
#define USB_PRODUCT 'T', '-', 'P', 'r', 'o', ' ', 'V', '2' /* 8 Bytes */
|
||||
#elif defined(RADIO_T14)
|
||||
#define USB_NAME "Jumper T14"
|
||||
#define USB_MANUFACTURER 'J', 'U', 'M', 'P', 'E', 'R', ' ', ' ' /* 8 bytes */
|
||||
#define USB_PRODUCT 'T', '1', '4', ' ', ' ', ' ', ' ', ' ' /* 8 Bytes */
|
||||
#elif defined(RADIO_T20)
|
||||
#define USB_NAME "Jumper T20"
|
||||
#define USB_MANUFACTURER 'J', 'U', 'M', 'P', 'E', 'R', ' ', ' ' /* 8 bytes */
|
||||
|
|
|
@ -297,6 +297,37 @@ LEGACY_NAMES = [
|
|||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"targets": {"t14"},
|
||||
"inputs": {
|
||||
"LH": {
|
||||
"yaml": "Rud"
|
||||
},
|
||||
"LV": {
|
||||
"yaml": "Ele"
|
||||
},
|
||||
"RV": {
|
||||
"yaml": "Thr"
|
||||
},
|
||||
"RH": {
|
||||
"yaml": "Ail"
|
||||
},
|
||||
"P1": {
|
||||
"yaml": "POT1",
|
||||
"lua": "s1",
|
||||
"label": "S1",
|
||||
"short_label": "1",
|
||||
"description": "Potentiometer 1"
|
||||
},
|
||||
"P2": {
|
||||
"yaml": "POT2",
|
||||
"lua": "s2",
|
||||
"label": "S2",
|
||||
"short_label": "2",
|
||||
"description": "Potentiometer 2"
|
||||
},
|
||||
}
|
||||
},
|
||||
{
|
||||
"targets": {
|
||||
"commando8",
|
||||
|
|
|
@ -58,6 +58,10 @@ POT_CONFIG = {
|
|||
"P1": {"default": "POT"},
|
||||
"P2": {"default": "POT"}
|
||||
},
|
||||
"t14": {
|
||||
"P1": {"default": "POT_CENTER"},
|
||||
"P2": {"default": "POT_CENTER"}
|
||||
},
|
||||
"tx12": {
|
||||
"P1": {"default": "POT_CENTER"},
|
||||
"P2": {"default": "POT_CENTER"}
|
||||
|
|
|
@ -95,6 +95,16 @@ SWITCH_CONFIG = {
|
|||
"SD": {"default": "3POS", "display": [1, 1]},
|
||||
"SH": {"default": "2POS", "display": [1, 3]}
|
||||
},
|
||||
"t14": {
|
||||
# left side
|
||||
"SA": {"default": "2POS", "display": [0, 0]},
|
||||
"SC": {"default": "3POS", "display": [0, 1]},
|
||||
"SE": {"default": "2POS", "display": [0, 2]},
|
||||
# right side
|
||||
"SB": {"default": "2POS", "display": [1, 0]},
|
||||
"SD": {"default": "3POS", "display": [1, 1]},
|
||||
"SF": {"default": "TOGGLE", "display": [1, 2]}
|
||||
},
|
||||
"t16": {
|
||||
"SA": {"default": "3POS"},
|
||||
"SB": {"default": "3POS"},
|
||||
|
|
|
@ -74,4 +74,8 @@ boards = {
|
|||
"PCB": "X7",
|
||||
"PCBREV": "T20",
|
||||
},
|
||||
"T14": {
|
||||
"PCB": "X7",
|
||||
"PCBREV": "T14",
|
||||
},
|
||||
}
|
||||
|
|
|
@ -128,6 +128,9 @@ do
|
|||
t20)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20"
|
||||
;;
|
||||
t14)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14"
|
||||
;;
|
||||
xlite)
|
||||
BUILD_OPTIONS+="-DPCB=XLITE"
|
||||
;;
|
||||
|
|
|
@ -143,6 +143,9 @@ do
|
|||
t20)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20"
|
||||
;;
|
||||
t14)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14"
|
||||
;;
|
||||
lr3pro)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO"
|
||||
;;
|
||||
|
|
|
@ -106,6 +106,9 @@ do
|
|||
t20)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20"
|
||||
;;
|
||||
t14)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14"
|
||||
;;
|
||||
xlite)
|
||||
BUILD_OPTIONS+="-DPCB=XLITE"
|
||||
;;
|
||||
|
|
|
@ -6,7 +6,7 @@ set -e
|
|||
|
||||
: "${SRCDIR:=$(dirname "$(pwd)/$0")/..}"
|
||||
|
||||
: ${FLAVOR:="nv14;t12;t16;t18;t8;zorro;pocket;commando8;tlite;tpro;tprov2;t20;lr3pro;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;t14;lr3pro;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"}
|
||||
|
||||
# wipe build directory clean
|
||||
|
@ -69,6 +69,9 @@ do
|
|||
t20)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20"
|
||||
;;
|
||||
t14)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14"
|
||||
;;
|
||||
lr3pro)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=LR3PRO"
|
||||
;;
|
||||
|
|
|
@ -71,6 +71,9 @@ do
|
|||
t20)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T20"
|
||||
;;
|
||||
t14)
|
||||
BUILD_OPTIONS+="-DPCB=X7 -DPCBREV=T14"
|
||||
;;
|
||||
xlite)
|
||||
BUILD_OPTIONS+="-DPCB=XLITE"
|
||||
;;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
# -----------------------------------------------------------------------------
|
||||
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|boxer|t8|zorro|pocket|tlite|tpro|t20|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|boxer|t8|zorro|pocket|tlite|tpro|t20|t14|lr3pro|xlite|xlites|x9dp2019|x9e|x9e-hall|t16|t18|nv14|commando8
|
||||
|
||||
export BUILD_OPTIONS="-DDEFAULT_MODE=2 -DGVARS=YES"
|
||||
|
||||
|
@ -57,6 +57,9 @@ case $RADIO_TYPE in
|
|||
t20)
|
||||
BUILD_OPTIONS+=" -DPCB=X7 -DPCBREV=T20"
|
||||
;;
|
||||
t14)
|
||||
BUILD_OPTIONS+=" -DPCB=X7 -DPCBREV=T14"
|
||||
;;
|
||||
lr3pro)
|
||||
BUILD_OPTIONS+=" -DPCB=X7 -DPCBREV=LR3PRO"
|
||||
;;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue