From bc875e68d98a684d4087f265fb358de7ebd33b52 Mon Sep 17 00:00:00 2001 From: 3djc Date: Sun, 30 Nov 2025 01:50:46 +0100 Subject: [PATCH] feat(tx15): support for KCX BT audio (#6777) --- radio/src/boards/rm-h750/audio_driver.cpp | 30 +++++++++++++ radio/src/boards/rm-h750/board.cpp | 4 ++ radio/src/drivers/kcx_btaudio.cpp | 44 ++++++++++++++++++++ radio/src/gui/colorlcd/radio/radio_setup.cpp | 11 +++++ radio/src/hal/audio_driver.h | 5 +++ radio/src/targets/simu/audio_driver.cpp | 4 ++ radio/src/targets/tx15/CMakeLists.txt | 13 +++++- radio/src/targets/tx15/hal.h | 3 ++ radio/src/translations/i18n/cn.h | 2 + radio/src/translations/i18n/cz.h | 2 + radio/src/translations/i18n/da.h | 2 + radio/src/translations/i18n/de.h | 2 + radio/src/translations/i18n/en.h | 2 + radio/src/translations/i18n/es.h | 2 + radio/src/translations/i18n/fi.h | 2 + radio/src/translations/i18n/fr.h | 2 + radio/src/translations/i18n/he.h | 2 + radio/src/translations/i18n/it.h | 2 + radio/src/translations/i18n/jp.h | 2 + radio/src/translations/i18n/ko.h | 2 + radio/src/translations/i18n/nl.h | 2 + radio/src/translations/i18n/pl.h | 2 + radio/src/translations/i18n/pt.h | 2 + radio/src/translations/i18n/ru.h | 2 + radio/src/translations/i18n/se.h | 2 + radio/src/translations/i18n/tw.h | 2 + radio/src/translations/i18n/ua.h | 2 + radio/src/translations/sim_string_list.h | 2 + radio/src/translations/string_list.h | 2 + 29 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 radio/src/drivers/kcx_btaudio.cpp diff --git a/radio/src/boards/rm-h750/audio_driver.cpp b/radio/src/boards/rm-h750/audio_driver.cpp index abbd5b4a2..4435223b4 100644 --- a/radio/src/boards/rm-h750/audio_driver.cpp +++ b/radio/src/boards/rm-h750/audio_driver.cpp @@ -1,3 +1,24 @@ +/* +* Copyright (C) EdgeTX + * + * Based on code named + * opentx - https://github.com/opentx/opentx + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + #include "drivers/tas2505.h" #include "stm32_dma.h" @@ -141,11 +162,20 @@ static void audio_update_dma_buffer(uint8_t tc) bool audioHeadphoneDetect() { +#if defined(KCX_BTAUDIO) + return gpio_read(AUDIO_HP_DETECT_PIN) || gpio_read(BTAUDIO_LINKED_GPIO); +#else return gpio_read(AUDIO_HP_DETECT_PIN); +#endif } void audioSetVolume(uint8_t volume) { +#if defined(KCX_BTAUDIO) + // KCX need a volume boost + if (btAudioLinked()) + volume = volume + (volume >> 2); +#endif tas2505_set_volume(&_tas2505, volume * 9 / 10, audioHeadphoneDetect()); // TX15 HP cannot handle the full power of TAS2505 } diff --git a/radio/src/boards/rm-h750/board.cpp b/radio/src/boards/rm-h750/board.cpp index a910ed74c..1085e16e9 100644 --- a/radio/src/boards/rm-h750/board.cpp +++ b/radio/src/boards/rm-h750/board.cpp @@ -135,6 +135,10 @@ void boardInit() // enable interrupts __enable_irq(); +#if defined(KCX_BTAUDIO) + btAudioInit(); +#endif + ledInit(); boardInitModulePorts(); diff --git a/radio/src/drivers/kcx_btaudio.cpp b/radio/src/drivers/kcx_btaudio.cpp new file mode 100644 index 000000000..4c2dc3075 --- /dev/null +++ b/radio/src/drivers/kcx_btaudio.cpp @@ -0,0 +1,44 @@ +/* +* Copyright (C) EdgeTX + * + * Based on code named + * opentx - https://github.com/opentx/opentx + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "hal.h" +#include "stm32_gpio_driver.h" +#include "stm32_gpio.h" +#include "os/sleep.h" + +void btAudioInit() +{ + gpio_init(BTAUDIO_LINKED_GPIO, GPIO_IN, GPIO_PIN_SPEED_LOW); + gpio_init(BTAUDIO_CONNECT_GPIO, GPIO_OUT, GPIO_PIN_SPEED_LOW); + gpio_set(BTAUDIO_CONNECT_GPIO); +} + +bool btAudioLinked() +{ + return gpio_read(BTAUDIO_LINKED_GPIO); +} + +void btAudioConnect() +{ + gpio_clear(BTAUDIO_CONNECT_GPIO); + sleep_ms(100); + gpio_set(BTAUDIO_CONNECT_GPIO); +} diff --git a/radio/src/gui/colorlcd/radio/radio_setup.cpp b/radio/src/gui/colorlcd/radio/radio_setup.cpp index 9d7b809d2..278bde8c1 100644 --- a/radio/src/gui/colorlcd/radio/radio_setup.cpp +++ b/radio/src/gui/colorlcd/radio/radio_setup.cpp @@ -255,6 +255,17 @@ static SetupLineDef soundPageSetupLines[] = { GET_SET_DEFAULT(g_eeGeneral.backgroundVolume)))->setPos(x, y); } }, +#if defined(KCX_BTAUDIO) + { + STR_DEF(STR_BTAUDIO), + [](Window* parent, coord_t x, coord_t y) { + new TextButton(parent, {x, y, 0, 0}, STR_PAIRING, [=]() { + btAudioConnect(); + return 0; + }); + } + }, +#endif }; #endif diff --git a/radio/src/hal/audio_driver.h b/radio/src/hal/audio_driver.h index a9db8b182..d91e52245 100644 --- a/radio/src/hal/audio_driver.h +++ b/radio/src/hal/audio_driver.h @@ -36,3 +36,8 @@ bool audioHeadphoneDetect(); void audioSetVolume(uint8_t volume); void audioConsumeCurrentBuffer(); +#if defined(KCX_BTAUDIO) +void btAudioInit(); +bool btAudioLinked(); +void btAudioConnect(); +#endif diff --git a/radio/src/targets/simu/audio_driver.cpp b/radio/src/targets/simu/audio_driver.cpp index a8f8a5616..e014bd41d 100644 --- a/radio/src/targets/simu/audio_driver.cpp +++ b/radio/src/targets/simu/audio_driver.cpp @@ -29,6 +29,10 @@ bool audioHeadphoneDetect() } #endif +void btAudioInit() {} +bool btAudioLinked() { return false; } +void btAudioConnect() {} + #if !defined(SOFTWARE_VOLUME) static int _simu_volume = 0; diff --git a/radio/src/targets/tx15/CMakeLists.txt b/radio/src/targets/tx15/CMakeLists.txt index 0a0807b20..5d9f6ac2e 100644 --- a/radio/src/targets/tx15/CMakeLists.txt +++ b/radio/src/targets/tx15/CMakeLists.txt @@ -8,7 +8,8 @@ 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) +option(FLYSKY_GIMBAL "Serial gimbal support" OFF) +option(KCX_BTAUDIO "KCX_BTAUDIO audio emitter installed" OFF) set(FIRMWARE_QSPI YES) set(FIRMWARE_FORMAT_UF2 YES) @@ -32,6 +33,9 @@ set(FUNCTION_SWITCHES_WITH_RGB YES) # BT and serial gimbal share same UART if(BLUETOOTH) set(FLYSKY_GIMBAL OFF) + set(KCX_BTAUDIO OFF) +elseif(KCX_BTAUDIO) + set(FLYSKY_GIMBAL OFF) endif() #option(STICK_DEAD_ZONE "Enable sticks dead zone" YES) @@ -150,6 +154,13 @@ if(BLUETOOTH) ) endif() +if(KCX_BTAUDIO) + set(BOARD_COMMON_SRC ${BOARD_COMMON_SRC} + drivers/kcx_btaudio.cpp + ) + add_definitions(-DKCX_BTAUDIO) +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 e6a1c29a3..a6fc74ca6 100644 --- a/radio/src/targets/tx15/hal.h +++ b/radio/src/targets/tx15/hal.h @@ -504,6 +504,9 @@ TIM17: ROTARY_ENCODER_TIMER #define BT_TX_GPIO GPIO_PIN(GPIOB, 9) #define BT_RX_GPIO GPIO_PIN(GPIOB, 8) #define BT_EN_GPIO GPIO_PIN(GPIOH, 11) +#elif defined(KCX_BTAUDIO) +#define BTAUDIO_LINKED_GPIO GPIO_PIN(GPIOH, 11) +#define BTAUDIO_CONNECT_GPIO GPIO_PIN(GPIOB, 9) #endif #if defined(FLYSKY_GIMBAL) diff --git a/radio/src/translations/i18n/cn.h b/radio/src/translations/i18n/cn.h index 1f0a7e193..0d2fc83a4 100644 --- a/radio/src/translations/i18n/cn.h +++ b/radio/src/translations/i18n/cn.h @@ -1014,6 +1014,8 @@ #define TR_RECEIVER_RESET "是否复位接收机?" #define TR_SHARE "分享" #define TR_BIND "对频" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("注册", "注册")) #define TR_MODULE_RANGE BUTTON(TR("测距", "测距")) #define TR_RANGE_TEST "距离测试(低功率)" diff --git a/radio/src/translations/i18n/cz.h b/radio/src/translations/i18n/cz.h index 946bfcfe2..47e37644e 100644 --- a/radio/src/translations/i18n/cz.h +++ b/radio/src/translations/i18n/cz.h @@ -1012,6 +1012,8 @@ #define TR_RECEIVER_RESET "Resetovat přijímač?" #define TR_SHARE "Sdílet" #define TR_BIND "Párovat" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Registrovat")) #define TR_MODULE_RANGE BUTTON(TR("Rng", "Dosah")) #define TR_RANGE_TEST "Test dosahu" diff --git a/radio/src/translations/i18n/da.h b/radio/src/translations/i18n/da.h index 9df58371c..de5e22443 100644 --- a/radio/src/translations/i18n/da.h +++ b/radio/src/translations/i18n/da.h @@ -1019,6 +1019,8 @@ #define TR_RECEIVER_RESET "Nulstil modtager?" #define TR_SHARE "Del" #define TR_BIND "Tilslut" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Registrer")) #define TR_MODULE_RANGE BUTTON(TR("Ræk", "Rækkevidde")) #define TR_RANGE_TEST "Test af rækkevidde" diff --git a/radio/src/translations/i18n/de.h b/radio/src/translations/i18n/de.h index 286425755..bea9fa003 100644 --- a/radio/src/translations/i18n/de.h +++ b/radio/src/translations/i18n/de.h @@ -1008,6 +1008,8 @@ #define TR_RECEIVER_RESET "Empfänger resetten?" #define TR_SHARE "Share" #define TR_BIND "Binden" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Register")) #define TR_MODULE_RANGE BUTTON(TR("Rng", "Reichweite")) #define TR_RANGE_TEST "Reichweitentest" diff --git a/radio/src/translations/i18n/en.h b/radio/src/translations/i18n/en.h index d0e548d92..e0575ba98 100644 --- a/radio/src/translations/i18n/en.h +++ b/radio/src/translations/i18n/en.h @@ -1015,6 +1015,8 @@ #define TR_RECEIVER_RESET "Reset receiver?" #define TR_SHARE "Share" #define TR_BIND "Bind" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Register")) #define TR_MODULE_RANGE BUTTON(TR("Rng", "Range")) #define TR_RANGE_TEST "Range Test" diff --git a/radio/src/translations/i18n/es.h b/radio/src/translations/i18n/es.h index 212b4ec88..b865da1ff 100644 --- a/radio/src/translations/i18n/es.h +++ b/radio/src/translations/i18n/es.h @@ -1008,6 +1008,8 @@ #define TR_RECEIVER_RESET "Reset receptor?" #define TR_SHARE "Compartido" #define TR_BIND "Emparejar" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Registrar")) #define TR_MODULE_RANGE "[Lim.]" #define TR_RANGE_TEST "Range test" diff --git a/radio/src/translations/i18n/fi.h b/radio/src/translations/i18n/fi.h index 9d9189f7a..ea8757466 100644 --- a/radio/src/translations/i18n/fi.h +++ b/radio/src/translations/i18n/fi.h @@ -1008,6 +1008,8 @@ #define TR_RECEIVER_RESET "Reset receiver?" #define TR_SHARE "Share" #define TR_BIND "Bind" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Register")) #define TR_MODULE_RANGE "[Range]" #define TR_RANGE_TEST "Range test" diff --git a/radio/src/translations/i18n/fr.h b/radio/src/translations/i18n/fr.h index fcbbc0815..c327b1588 100644 --- a/radio/src/translations/i18n/fr.h +++ b/radio/src/translations/i18n/fr.h @@ -1012,6 +1012,8 @@ #define TR_RECEIVER_RESET "Réinit. récept.?" #define TR_SHARE "Partager" #define TR_BIND "Bind" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Enr", "Enregistr.")) #define TR_MODULE_RANGE BUTTON(TR("Prt", "Port.")) #define TR_RANGE_TEST "Test de portée" diff --git a/radio/src/translations/i18n/he.h b/radio/src/translations/i18n/he.h index 0eef8303c..acd07b7fc 100644 --- a/radio/src/translations/i18n/he.h +++ b/radio/src/translations/i18n/he.h @@ -1017,6 +1017,8 @@ #define TR_RECEIVER_RESET "? איפוס מקלט" #define TR_SHARE "שיתוף" #define TR_BIND "צימוד" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Register")) #define TR_MODULE_RANGE BUTTON(TR("Rng", "בדיקת טווח קליטה")) #define TR_RANGE_TEST "בדיקת טווח" diff --git a/radio/src/translations/i18n/it.h b/radio/src/translations/i18n/it.h index 9d2202bcc..620d14fce 100644 --- a/radio/src/translations/i18n/it.h +++ b/radio/src/translations/i18n/it.h @@ -1014,6 +1014,8 @@ #define TR_RECEIVER_RESET "Resetto RX?" #define TR_SHARE "Condividere" #define TR_BIND "Bind" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Registrare")) #define TR_MODULE_RANGE TR("[Rng]","[Range]") #define TR_RANGE_TEST "Test del link radio a bassa potenza" diff --git a/radio/src/translations/i18n/jp.h b/radio/src/translations/i18n/jp.h index 536ac1624..914198ef5 100644 --- a/radio/src/translations/i18n/jp.h +++ b/radio/src/translations/i18n/jp.h @@ -1013,6 +1013,8 @@ #define TR_RECEIVER_RESET "受信機をリセットしますか?" #define TR_SHARE "共有" #define TR_BIND "Bind" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "登録")) #define TR_MODULE_RANGE BUTTON(TR("Rng", "受信強度")) #define TR_RANGE_TEST "受信強度テスト" diff --git a/radio/src/translations/i18n/ko.h b/radio/src/translations/i18n/ko.h index b5b1bf7ba..85e43ee61 100644 --- a/radio/src/translations/i18n/ko.h +++ b/radio/src/translations/i18n/ko.h @@ -1060,6 +1060,8 @@ #define TR_RECEIVER_RESET "수신기를 초기화할까요?" #define TR_SHARE "공유" #define TR_BIND "바인딩" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("등록", "등록")) #define TR_MODULE_RANGE BUTTON(TR("범위", "범위 테스트")) #define TR_RANGE_TEST "범위 테스트" diff --git a/radio/src/translations/i18n/nl.h b/radio/src/translations/i18n/nl.h index c11e11136..a1acd768b 100644 --- a/radio/src/translations/i18n/nl.h +++ b/radio/src/translations/i18n/nl.h @@ -1010,6 +1010,8 @@ #define TR_RECEIVER_RESET "Reset receiver?" #define TR_SHARE "Share" #define TR_BIND "Bind" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Register")) #define TR_MODULE_RANGE TR("[Rng]", "[Range]") #define TR_RANGE_TEST "Range test" diff --git a/radio/src/translations/i18n/pl.h b/radio/src/translations/i18n/pl.h index bcfaa798a..db0c3c862 100644 --- a/radio/src/translations/i18n/pl.h +++ b/radio/src/translations/i18n/pl.h @@ -1007,6 +1007,8 @@ #define TR_RECEIVER_RESET "Reset receiver?" #define TR_SHARE "Share" #define TR_BIND "Bind" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Register")) #define TR_MODULE_RANGE TR("[Zas]","Zasięg") #define TR_RANGE_TEST "Test zasięgu" diff --git a/radio/src/translations/i18n/pt.h b/radio/src/translations/i18n/pt.h index e92835a24..a998a5a68 100644 --- a/radio/src/translations/i18n/pt.h +++ b/radio/src/translations/i18n/pt.h @@ -1015,6 +1015,8 @@ #define TR_RECEIVER_RESET "Reset receiver?" #define TR_SHARE "Share" #define TR_BIND "Bind" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Register")) #define TR_MODULE_RANGE BUTTON(TR("Rng", "Range")) #define TR_RANGE_TEST "Range Test" diff --git a/radio/src/translations/i18n/ru.h b/radio/src/translations/i18n/ru.h index 13b4bb0a6..c3b76d5fc 100644 --- a/radio/src/translations/i18n/ru.h +++ b/radio/src/translations/i18n/ru.h @@ -1016,6 +1016,8 @@ #define TR_RECEIVER_RESET "Сбросить приемник?" #define TR_SHARE "Поделиться" #define TR_BIND "Bind" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Рег", "Регистр")) #define TR_MODULE_RANGE BUTTON(TR("Диап", "Диапазон")) #define TR_RANGE_TEST "Тест диапазона" diff --git a/radio/src/translations/i18n/se.h b/radio/src/translations/i18n/se.h index f2038588e..4e5be1388 100644 --- a/radio/src/translations/i18n/se.h +++ b/radio/src/translations/i18n/se.h @@ -1015,6 +1015,8 @@ #define TR_RECEIVER_RESET "Återställ mottagare?" #define TR_SHARE "Dela" #define TR_BIND "Parkopplar" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Reg", "Registrera")) #define TR_MODULE_RANGE BUTTON(TR("Tst", "Testa")) #define TR_RANGE_TEST "Test av radiolänkkvalitet (begränsad signalstyrka)" diff --git a/radio/src/translations/i18n/tw.h b/radio/src/translations/i18n/tw.h index df113e3ea..bcd130d8d 100644 --- a/radio/src/translations/i18n/tw.h +++ b/radio/src/translations/i18n/tw.h @@ -1011,6 +1011,8 @@ #define TR_RECEIVER_RESET "是否重啟接收機?" #define TR_SHARE "分享" #define TR_BIND "對頻" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("註冊", "註冊")) #define TR_MODULE_RANGE BUTTON(TR("測距", "測距")) #define TR_RANGE_TEST "距離測試(低功率)" diff --git a/radio/src/translations/i18n/ua.h b/radio/src/translations/i18n/ua.h index ce435b902..78525e915 100644 --- a/radio/src/translations/i18n/ua.h +++ b/radio/src/translations/i18n/ua.h @@ -1015,6 +1015,8 @@ #define TR_RECEIVER_RESET "Скинути приймач?" #define TR_SHARE "Поділитися" #define TR_BIND "Прив'язати" +#define TR_PAIRING "Pairing" +#define TR_BTAUDIO "BT Audio" #define TR_REGISTER BUTTON(TR("Регі.", "Регістр")) #define TR_MODULE_RANGE BUTTON(TR("Діап.", "Діапазон")) #define TR_RANGE_TEST "Тест діапазону" diff --git a/radio/src/translations/sim_string_list.h b/radio/src/translations/sim_string_list.h index feccc4fb0..4a7ff9788 100644 --- a/radio/src/translations/sim_string_list.h +++ b/radio/src/translations/sim_string_list.h @@ -429,6 +429,8 @@ #define STR_BEEPCTR currentLangStrings->STR_BEEPCTR #define STR_BG_VOLUME currentLangStrings->STR_BG_VOLUME #define STR_BIND currentLangStrings->STR_BIND +#define STR_PAIRING currentLangStrings->STR_PAIRING +#define STR_BTAUDIO currentLangStrings->STR_BTAUDIO #define STR_BINDING_CH1_8_TELEM_OFF currentLangStrings->STR_BINDING_CH1_8_TELEM_OFF #define STR_BINDING_CH1_8_TELEM_ON currentLangStrings->STR_BINDING_CH1_8_TELEM_ON #define STR_BINDING_CH9_16_TELEM_OFF currentLangStrings->STR_BINDING_CH9_16_TELEM_OFF diff --git a/radio/src/translations/string_list.h b/radio/src/translations/string_list.h index 8311b75e2..09600c730 100644 --- a/radio/src/translations/string_list.h +++ b/radio/src/translations/string_list.h @@ -428,6 +428,8 @@ STR(BEEPCOUNTDOWN) STR(BEEPCTR) STR(BG_VOLUME) STR(BIND) +STR(PAIRING) +STR(BTAUDIO) STR(BINDING_CH1_8_TELEM_OFF) STR(BINDING_CH1_8_TELEM_ON) STR(BINDING_CH9_16_TELEM_OFF)