Skip to content

Conversation

@3djc
Copy link
Collaborator

@3djc 3djc commented Nov 8, 2025

This PR adds the ability to use wireless BT headphone/earphone to get radio sounds instead of main speaker

In more details, it brings two things:

  1. a basic support for KCX BT audio emitter: https://www.scribd.com/document/760703454/KCX-BT-EMITTER-english-1 , which can be purchased easily online. This support needs to be implemented radio by radio, as the pins required for the module connections need to be programmed according to availability.

  2. an implementation for TX15: this uses AUX-UART4 connector on TX15.

  • a compile options is added: -DKCX_BTAUDIO=YES. Please note on TX15, only one of: KCX_BTAUDIO/BLUETOOTH/FRSKY_GIMBAL can be used has they use the same pins!

  • the module needs to be connected as such:

Radio Module AUX-UART4
GND PGND (pin 2)
5V +5V (pin 1)
RX Not connected
TX Connect (pin 11)
Sync Link (pin 3)
  • Headset jack connector
    Top left (Metallic header) Module AGND (white wire in picture bellow)
    Second top left. Module AUDIO_R and AUDIO_L (yellow wire in picture bellow)
Capture d’écran 2025-11-08 à 10 59 15

Example of wired module:
Capture d’écran 2025-11-08 à 10 35 08

  1. Usage
  • the module start by default in pairing mode, but will connect automatically to an already paired headphone
  • when BT headset is connected, the main speaker will automatically turn off
  • volume commands are working like usual
  • if you want to reset existing pairing, go to Radio Setup / General settings / Sound / push Pairing button toward bottom of screen

Added a nice wiring picture thanks to Radiomaster
image

@pfeerick : no companion impact that I can see, likely needs adding a compile option to buddy or similar

@3djc 3djc added the enhancement ✨ New feature or request label Nov 8, 2025
@3djc 3djc added this to the 3.0 milestone Nov 8, 2025
@pfeerick
Copy link
Member

KCX modules arrived in yesterday's post, so will hopefully be using this on the weekend :)

@pfeerick pfeerick changed the title feat(TX15): support for KXC BT audio feat(tx15): support for KCX BT audio Nov 26, 2025
@pfeerick
Copy link
Member

the module start by default in pairing mode, but will connect automatically to an already paired headphone

When it works, it works well, but with my AirPods at least, it (the KCX module) seems to lose the bind and need to be re-bound, or stuck in some sort of connected but not connected mode. Which press of pairing and putting the Airpods back into pair mode may or may not fix. But this could be a faulty module, and I have 3 more (but no inclination to wire another one in just yet... I will leave the radio as it is for tomorrow's flying - unless the forecast rain says otherwise 🤭 ).

when BT headset is connected, the main speaker will automatically turn off

Which because of the above, makes me think it might be handy to have a "disable/enable" button, although then that would require storage, yada, yada. Unless it's just a "disable for now"? Maybe? Maybe not?

@pfeerick
Copy link
Member

pfeerick commented Nov 30, 2025

Ok, so it looks like the Apple AirPods 4 seem to have issue with holding the bind with the KCX BT module. However two bluetooth speakers (Sony, Blitzwolf) both worked just fine.

  1. Something that will definetely need to be considered in later PRs to make the user experience better for BT Audio will be indication on the screen as to what is the output audio - i.e. change the icon on the "radio info" widget from a speaker to a BT icon?
  2. It seems like the KCX is latching onto something else in the house on it's own if powered up and the last paired device not active (possibly a BT extender/sniffer... I can see the module go from flashing for pairing/searching to it's periodic double flash, but it didn't connect to the AirPods that were powered up just after the radio), thus exposing another issue that will need to be resolved architecurally ... namely the end user should be able to configure if main audio only, bluetooth only or both. Both as an system option, and also as a SF/GF IMO... just like what is happening with brightness, volume, etc.

Other than that, this works great! :)

@pfeerick pfeerick merged commit bc875e6 into main Nov 30, 2025
48 checks passed
@pfeerick pfeerick deleted the 3djc/KCX_BT branch November 30, 2025 00:50
@3djc
Copy link
Collaborator Author

3djc commented Nov 30, 2025

  1. why not, we could then do it for wired headset to. I need the icons for that tho

  2. periodic double flash is connected to a device. It does not only remember last device,but at least last 5 devices. Could yo try this : Radio Setup / General settings / Sound / push Pairing button toward bottom of screen, but do NOT pair anything.Turn radio off and restart. Pushing that command should wipe the pairing table

@pfeerick
Copy link
Member

  1. periodic double flash is connected to a device. It does not only remember last device,but at least last 5 devices. Could yo try this : Radio Setup / General settings / Sound / push Pairing button toward bottom of screen, but do NOT pair anything.Turn radio off and restart. Pushing that command should wipe the pairing table

I'll give that a try tomorrow, but I suspect it won't many any difference. Walking out of the house so it was out of range of the Bluetooth proxy was enough to make it work more consistently with the AirPods.

The issue I see usability wise with how this is implemented presently is the potential for the module to blindly pair to anything it sees all on its own accord (if you didn't have the previously paired device already on/visible), the other part of this being a device could come into range/be turned on partway through a flight and just kill the audio with no warning or way of stopping it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement ✨ New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants