From 97bd7f22b05e949f25080f503160637259d0102c Mon Sep 17 00:00:00 2001 From: 3djc <5167938+3djc@users.noreply.github.com> Date: Tue, 5 May 2026 07:00:40 +0200 Subject: [PATCH] feat(tx16mk3): add Bluetooth compilation option (#7333) --- radio/src/targets/tx16smk3/CMakeLists.txt | 21 ++++++++++++++++----- radio/src/targets/tx16smk3/hal.h | 6 ++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/radio/src/targets/tx16smk3/CMakeLists.txt b/radio/src/targets/tx16smk3/CMakeLists.txt index f6332280e..95aaa396e 100644 --- a/radio/src/targets/tx16smk3/CMakeLists.txt +++ b/radio/src/targets/tx16smk3/CMakeLists.txt @@ -7,6 +7,7 @@ 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(INTERNAL_GPS "Support for internal GPS" ON) option(KCX_BTAUDIO "KCX_BTAUDIO audio emitter installed" OFF) @@ -31,6 +32,16 @@ set(FUNCTION_SWITCHES_WITH_RGB YES) set(FLEXSW "2" CACHE STRING "Max flex inputs usable as switches") set(INTERNAL_GPS_BAUDRATE "9600" CACHE STRING "Baud rate for internal GPS") +# BT and serial gimbal share same UART +if(BLUETOOTH) + set(AUX2_SERIAL OFF) + set(KCX_BTAUDIO OFF) +elseif(KCX_BTAUDIO) + set(AUX2_SERIAL OFF) +else() + set(AUX2_SERIAL ON) +endif() + #option(STICKS_DEAD_ZONE "Enable sticks dead zone" YES) # IMU support @@ -73,11 +84,7 @@ set(SOFTWARE_KEYBOARD ON) set(FUNCTION_SWITCHES ON) set(USB_CHARGER YES) set(AUX_SERIAL YES) -if(KCX_BTAUDIO) - set(AUX2_SERIAL NO) -else() - set(AUX2_SERIAL YES) -endif() + add_definitions( -DSTM32H750XBTx -DSTM32H750xx -DSDRAM -DCCMRAM @@ -190,6 +197,10 @@ add_library(board OBJECT EXCLUDE_FROM_ALL add_dependencies(board board_lib) set(FIRMWARE_SRC ${FIRMWARE_SRC} $) +if(BLUETOOTH) + target_sources(board PRIVATE targets/common/arm/stm32/bluetooth_driver.cpp) +endif() + include_directories(${RADIO_SRC_DIR}/fonts/colorlcd gui/${GUI_DIR} gui/${GUI_DIR}/layouts) if(BOOTLOADER) diff --git a/radio/src/targets/tx16smk3/hal.h b/radio/src/targets/tx16smk3/hal.h index 1a1675537..76a7c0bb0 100644 --- a/radio/src/targets/tx16smk3/hal.h +++ b/radio/src/targets/tx16smk3/hal.h @@ -555,6 +555,12 @@ USART6: INTMODULE_USART #define BTAUDIO_POWER_GPIO GPIO_PIN(GPIOC, 13) #define BTAUDIO_LINKED_GPIO GPIO_PIN(GPIOB, 11) #define BTAUDIO_CONNECT_GPIO GPIO_PIN(GPIOB, 10) +#elif defined(BLUETOOTH) +#define BT_USART USART3 +#define BT_USART_IRQn USART3_IRQn +#define BT_TX_GPIO GPIO_PIN(GPIOB, 10) // PB.10 +#define BT_RX_GPIO GPIO_PIN(GPIOB, 11) // PB.11 +#define BT_EN_GPIO GPIO_PIN(GPIOE, 6) // PE.06 #endif // Touch