Allow R9M 2019 in ACCESS mode on some radios (#7963)
Support for external R9M ACCESS
This commit is contained in:
@@ -193,7 +193,7 @@ enum TrainerMode {
|
||||
TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE,
|
||||
TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE,
|
||||
#endif
|
||||
#if defined(PCBTARANIS) || defined(AUX_SERIAL)
|
||||
#if defined(PCBTARANIS) || defined(AUX_SERIAL) || defined(AUX2_SERIAL)
|
||||
TRAINER_MODE_MASTER_BATTERY_COMPARTMENT,
|
||||
#endif
|
||||
TRAINER_MODE_MASTER_BLUETOOTH,
|
||||
|
||||
@@ -92,6 +92,17 @@ bool menuRadioModulesVersion(event_t event)
|
||||
y += FH;
|
||||
continue;
|
||||
}
|
||||
#if defined(HARDWARE_EXTERNAL_ACCESS_MOD)
|
||||
if (isModuleMultimodule(INTERNAL_MODULE)) {
|
||||
char statusText[64];
|
||||
lcdDrawText(COLUMN2_X, y, "Multimodule");
|
||||
y += FH;
|
||||
getMultiModuleStatus(INTERNAL_MODULE).getStatusString(statusText);
|
||||
lcdDrawText(COLUMN2_X, y, statusText);
|
||||
y += FH;
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
if (!isModulePXX2(INTERNAL_MODULE)) {
|
||||
lcdDrawText(COLUMN2_X, y, STR_NO_INFORMATION);
|
||||
y += FH;
|
||||
|
||||
@@ -26,6 +26,9 @@ static const char * const options[] = {
|
||||
#if defined(AUTOUPDATE)
|
||||
"autoupdate",
|
||||
#endif
|
||||
#if defined(BLUETOOTH)
|
||||
"bluetooth",
|
||||
#endif
|
||||
#if defined(CROSSFIRE)
|
||||
"crossfire",
|
||||
#endif
|
||||
@@ -91,6 +94,9 @@ static const char * const options[] = {
|
||||
#endif
|
||||
#if defined(SHUTDOWN_CONFIRMATION)
|
||||
"shutdownconfirm",
|
||||
#endif
|
||||
#if defined(HARDWARE_EXTERNAL_ACCESS_MOD)
|
||||
"externalaccessmod",
|
||||
#endif
|
||||
nullptr //sentinel
|
||||
};
|
||||
|
||||
@@ -5,6 +5,7 @@ option(PXX2 "PXX2 protocol support" OFF)
|
||||
option(AFHDS3 "AFHDS3 TX Module" ON)
|
||||
option(MULTIMODULE "DIY Multiprotocol TX Module (https://github.com/pascallanger/DIY-Multiprotocol-TX-Module)" ON)
|
||||
option(GHOST "Ghost TX Module" ON)
|
||||
option(HARDWARE_EXTERNAL_ACCESS_MOD "Support for R9M 2019 hardware mod" OFF)
|
||||
|
||||
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
|
||||
set(CPU_TYPE STM32F4)
|
||||
@@ -139,6 +140,12 @@ if(NOT UNEXPECTED_SHUTDOWN)
|
||||
add_definitions(-DNO_UNEXPECTED_SHUTDOWN)
|
||||
endif()
|
||||
|
||||
if(HARDWARE_EXTERNAL_ACCESS_MOD)
|
||||
set(PXX2 ON)
|
||||
set(AUX_SERIAL OFF)
|
||||
add_definitions(-DHARDWARE_EXTERNAL_ACCESS_MOD)
|
||||
endif()
|
||||
|
||||
if(INTERNAL_MODULE_PXX1)
|
||||
add_definitions(-DHARDWARE_INTERNAL_MODULE)
|
||||
add_definitions(-DINTERNAL_MODULE_PXX1)
|
||||
|
||||
@@ -635,8 +635,8 @@ void sportUpdatePowerInit();
|
||||
#endif
|
||||
|
||||
// Aux serial port driver
|
||||
#if defined(AUX_SERIAL_GPIO)
|
||||
#define DEBUG_BAUDRATE 115200
|
||||
#if defined(AUX_SERIAL_GPIO)
|
||||
extern uint8_t auxSerialMode;
|
||||
void auxSerialInit(unsigned int mode, unsigned int protocol);
|
||||
void auxSerialPutc(char c);
|
||||
|
||||
@@ -402,7 +402,7 @@
|
||||
#endif
|
||||
|
||||
// Serial Port (DEBUG)
|
||||
#if defined(PCBX12S) || defined(RADIO_TX16S)
|
||||
#if (defined(PCBX12S) || defined(RADIO_TX16S)) && !defined(HARDWARE_EXTERNAL_ACCESS_MOD)
|
||||
#define AUX_SERIAL_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1)
|
||||
#define AUX_SERIAL_RCC_APB1Periph RCC_APB1Periph_USART3
|
||||
#define AUX_SERIAL_RCC_APB2Periph 0
|
||||
@@ -762,7 +762,7 @@
|
||||
#define INTMODULE_BOOTCMD_GPIO_PIN GPIO_Pin_9 // PI.09
|
||||
#endif
|
||||
#define INIT_INTMODULE_BOOTCMD_PIN() GPIO_ResetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN);
|
||||
#if defined(PCBX10) || PCBREV >= 13
|
||||
#if (defined(PCBX10) || PCBREV >= 13) && !defined(HARDWARE_EXTERNAL_ACCESS_MOD) //TIM2 used by ext mod
|
||||
#define INTMODULE_RCC_APB1Periph RCC_APB1Periph_TIM2
|
||||
#define INTMODULE_RCC_APB2Periph RCC_APB2Periph_USART1
|
||||
#define INTMODULE_TIMER TIM2
|
||||
@@ -782,7 +782,7 @@
|
||||
#define EXTMODULE_PWR_GPIO GPIOB
|
||||
#define EXTMODULE_PWR_GPIO_PIN GPIO_Pin_3 // PB.03
|
||||
#define EXTERNAL_MODULE_PWR_OFF() GPIO_ResetBits(EXTMODULE_PWR_GPIO, EXTMODULE_PWR_GPIO_PIN)
|
||||
#if defined(PCBX10) && defined(PCBREV_EXPRESS)
|
||||
#if (defined(PCBX10) && defined(PCBREV_EXPRESS)) || defined(HARDWARE_EXTERNAL_ACCESS_MOD)
|
||||
#define EXTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1)
|
||||
#define EXTMODULE_RCC_APB1Periph (RCC_APB1Periph_TIM2 | RCC_APB1Periph_USART3)
|
||||
#define EXTMODULE_RCC_APB2Periph 0
|
||||
@@ -861,7 +861,7 @@
|
||||
#define INTMODULE_HEARTBEAT_EXTI_LINE EXTI_Line12
|
||||
#define INTMODULE_HEARTBEAT_EXTI_IRQn EXTI15_10_IRQn
|
||||
#define INTMODULE_HEARTBEAT_REUSE_INTERRUPT_ROTARY_ENCODER
|
||||
#if defined(PXX2)
|
||||
#if defined(INTERNAL_MODULE_PXX2)
|
||||
#define INTMODULE_HEARTBEAT_TRIGGER EXTI_Trigger_Falling
|
||||
#else
|
||||
#define INTMODULE_HEARTBEAT_TRIGGER EXTI_Trigger_Rising
|
||||
|
||||
@@ -139,8 +139,13 @@ void checkTrainerSettings()
|
||||
stop_intmodule_heartbeat();
|
||||
else
|
||||
init_intmodule_heartbeat();
|
||||
#else
|
||||
#if defined(HARDWARE_EXTERNAL_ACCESS_MOD)
|
||||
if (g_model.moduleData[EXTERNAL_MODULE].type != MODULE_TYPE_R9M_PXX2) // externalaccessmod 'bridges' HB and Ext module RX pins
|
||||
init_intmodule_heartbeat();
|
||||
#else
|
||||
init_intmodule_heartbeat();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user