diff --git a/radio/src/boards/rm-h750/board.cpp b/radio/src/boards/rm-h750/board.cpp index e91f051db..a910ed74c 100644 --- a/radio/src/boards/rm-h750/board.cpp +++ b/radio/src/boards/rm-h750/board.cpp @@ -144,7 +144,6 @@ void boardInit() usbChargerInit(); gpio_set(LED_BLUE_GPIO); - gpio_init(HALL_SYNC, GPIO_OUT, GPIO_PIN_SPEED_LOW); ExtFLASH_InitRuntime(); diff --git a/radio/src/targets/tx15/CMakeLists.txt b/radio/src/targets/tx15/CMakeLists.txt index a5cde3357..7cb4edab6 100644 --- a/radio/src/targets/tx15/CMakeLists.txt +++ b/radio/src/targets/tx15/CMakeLists.txt @@ -7,6 +7,8 @@ option(GHOST "Ghost TX Module" ON) option(MODULE_SIZE_STD "Standard size TX Module" ON) option(LUA_MIXER "Enable LUA mixer/model scripts support" ON) option(DISK_CACHE "Enable SD card disk cache" ON) +option(BLUETOOTH "FrSky BT module support" OFF) +option(FLYSKY_GIMBAL "Serial gimbal support" ON) set(FIRMWARE_QSPI YES) set(FIRMWARE_FORMAT_UF2 YES) @@ -27,6 +29,11 @@ set(INTERNAL_MODULE_AFHDS3 NO) set(ROTARY_ENCODER YES) set(FUNCTION_SWITCHES_WITH_RGB YES) +# BT and serial gimbal share same UART +if(BLUETOOTH) + set(FLYSKY_GIMBAL OFF) +endif() + #option(STICKS_DEAD_ZONE "Enable sticks dead zone" YES) # IMU support @@ -138,6 +145,12 @@ set(BOARD_COMMON_SRC drivers/pca95xx.cpp ) +if(BLUETOOTH) + set(BOARD_COMMON_SRC ${BOARD_COMMON_SRC} + targets/common/arm/stm32/bluetooth_driver.cpp + ) +endif() + # Bootloader board library add_library(board_bl OBJECT EXCLUDE_FROM_ALL ${BOARD_COMMON_SRC} diff --git a/radio/src/targets/tx15/hal.h b/radio/src/targets/tx15/hal.h index de2a36c86..370bffa89 100644 --- a/radio/src/targets/tx15/hal.h +++ b/radio/src/targets/tx15/hal.h @@ -244,9 +244,6 @@ TIM17: ROTARY_ENCODER_TIMER 0 /* SWF */ \ } -// Serial gimbal sync port -#define HALL_SYNC GPIO_PIN(GPIOH, 11) - #define USE_EXTI9_5_IRQ // used for I2C port extender interrupt #define EXTI9_5_IRQ_Priority 5 @@ -384,16 +381,6 @@ TIM17: ROTARY_ENCODER_TIMER #define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE #define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2 -// Flysky Hall Stick -#define FLYSKY_HALL_SERIAL_USART UART4 -#define FLYSKY_HALL_SERIAL_TX_GPIO GPIO_PIN(GPIOB, 9) -#define FLYSKY_HALL_SERIAL_RX_GPIO GPIO_PIN(GPIOB, 8) -#define FLYSKY_HALL_SERIAL_USART_IRQn UART4_IRQn - -#define FLYSKY_HALL_SERIAL_DMA DMA1 -#define FLYSKY_HALL_DMA_Stream_RX LL_DMA_STREAM_2 -#define FLYSKY_HALL_DMA_Channel LL_DMAMUX1_REQ_UART4_RX - // LED Strip #define LED_STRIP_LENGTH 26 // 6POS + 2 rings of 10 #define BLING_LED_STRIP_START 6 @@ -518,6 +505,27 @@ TIM17: ROTARY_ENCODER_TIMER #define AUX2_SERIAL_DMA_RX_CHANNEL LL_DMAMUX1_REQ_USART3_RX #define AUX2_SERIAL_PWR_GPIO GPIO_PIN(GPIOC, 13) // PC.13 +#if defined(BLUETOOTH) +// Bluetooth +#define STORAGE_BLUETOOTH +#define BT_USART UART4 +#define BT_USART_IRQn UART4_IRQn +#define BT_TX_GPIO GPIO_PIN(GPIOB, 9) +#define BT_RX_GPIO GPIO_PIN(GPIOB, 8) +#define BT_EN_GPIO GPIO_PIN(GPIOH, 11) +#endif + +#if defined(FLYSKY_GIMBAL) +// FlySky Hall Sticks +#define FLYSKY_HALL_SERIAL_USART UART4 +#define FLYSKY_HALL_SERIAL_TX_GPIO GPIO_PIN(GPIOB, 9) +#define FLYSKY_HALL_SERIAL_RX_GPIO GPIO_PIN(GPIOB, 8) +#define FLYSKY_HALL_SERIAL_USART_IRQn UART4_IRQn +#define FLYSKY_HALL_SERIAL_DMA DMA1 +#define FLYSKY_HALL_DMA_Stream_RX LL_DMA_STREAM_2 +#define FLYSKY_HALL_DMA_Channel LL_DMAMUX1_REQ_UART4_RX +#endif + // Touch #define TOUCH_I2C_BUS I2C_Bus_1 #define TOUCH_INT_GPIO GPIO_PIN(GPIOE, 2) // PE.02