nRF5340 LE Audio: Stream Starts but No Audio on EarFun Air Pro 4 (Works with Sony Inzone Buds) #96481
Unanswered
Sathish-kumar-S5
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi
I’m building an LE Audio gateway on the nRF5340 DK using the TMAP_Central sample (NCS v3.1.0, with minor local changes). The setup captures audio, encodes it to LC3, and streams it to headsets.
With Sony Inzone, everything works correctly and audio is heard.
With EarFun Air Pro 4, the control procedure completes (PAC discovery → codec config → QoS → Enable → CIS → Streaming), but no audio is heard.
Initial issue
At first, PAC discovery failed due to a metadata length mismatch:
`
TMAS discovery done
[00:00:37.757,141] bt_gatt: bt_gatt_write: handle 0x0088 length 2
[00:00:38.006,408] bt_gatt: gatt_write_rsp: err 0
[00:00:38.006,408] bt_gatt: att_err_from_int: 0 ... ... ...
[00:00:40.756,713] bt_bap_unicast_client: unicast_client_read_func: pac #1/1
[00:00:40.756,713] bt_bap_unicast_client: unicast_client_set_codec_cap: codec id 0x06 cid 0x0000 vid 0x0000 data_len 19 meta_len 20
[00:00:40.756,744] bt_bap_unicast_client: Unable to parse Codec
[00:00:40.756,774] bt_bap_unicast_client: unicast_client_read_func: Failed to process all PAC records (0/1) Discovery failed: 4
TMAS discovery done
[00:00:37.757,141] bt_gatt: bt_gatt_write: handle 0x0088 length 2
[00:00:38.006,408] bt_gatt: gatt_write_rsp: err 0
[00:00:38.006,408] bt_gatt: att_err_from_int: 0 ... ... ...
[00:00:40.756,713] bt_bap_unicast_client: unicast_client_read_func: pac #1/1
[00:00:40.756,713] bt_bap_unicast_client: unicast_client_set_codec_cap: codec id 0x06 cid 0x0000 vid 0x0000 data_len 19 meta_len 20
[00:00:40.756,744] bt_bap_unicast_client: Unable to parse Codec
[00:00:40.756,774] bt_bap_unicast_client: unicast_client_read_func: Failed to process all PAC records (0/1) Discovery failed: 4
`
Fix: Increased buffer sizes in prj.conf:
CONFIG_BT_AUDIO_CODEC_CAP_MAX_METADATA_SIZE=20
CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT=4
CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SRC_COUNT=4
Current Status
After the fix, the stream starts successfully but no audio plays. The complete control flow works:
Here’s a trimmed log when the stream starts:
`
Attempt to connect!
MTU exchanged: 23/23
[00:00:07.375,183] bt_gatt: bt_gatt_connected: conn 0x200031a8
[00:00:07.375,274] bt_gatt: gatt_exchange_mtu_encode: Client MTU 247
Connected to headset 0: 70:5A:6F:6B:3E:A3 (public)
...
...
[00:00:08.077,545] bt_gatt: gatt_find_type_rsp: err 0
[00:00:08.077,575] bt_gatt: gatt_find_type_rsp: start_handle 0x0083 end_handle 0x008b
[00:00:08.077,575] bt_gatt: gatt_read_type: start_handle 0x0084 end_handle 0x008b
[00:00:08.147,613] bt_gatt: bt_gatt_attr_read: handle 0x0000 offset 0 length 1
Security changed: 0
[00:00:10.307,861] bt_gatt: gatt_find_type_encode: uuid 1855 start_handle 0x0001 end_handle 0xffff
[00:00:10.409,545] bt_gatt: gatt_write_ccc_rsp: err 0
[00:00:10.409,545] bt_gatt: att_err_from_int: 0
[00:00:10.507,751] bt_gatt: gatt_write_ccc_rsp: err 0
[00:00:10.507,751] bt_gatt: att_err_from_int: 0
[00:00:10.607,757] bt_gatt: gatt_find_type_rsp: err 0
[00:00:10.607,757] bt_gatt: gatt_find_type_rsp: start_handle 0x008c end_handle 0x008e
[00:00:10.607,788] bt_tmap: discover_func: Discovered TMAS
...
...
...
TMAS discovery done
[00:00:10.807,678] bt_gatt: bt_gatt_write: handle 0x0088 length 2
[00:00:10.907,501] bt_gatt: gatt_write_rsp: err 0
[00:00:10.907,501] bt_gatt: att_err_from_int: 0
[00:00:10.908,111] bt_gatt: bt_gatt_notification: handle 0x0085 length 3
discover_sinks
[00:00:12.807,952] bt_gatt: gatt_read_type: start_handle 0x0001 end_handle 0xffff
[00:00:12.958,221] bt_gatt: gatt_read_type_rsp: err 0
[00:00:12.958,282] bt_gatt: parse_characteristic: handle 0x0002 uuid 2a05 properties 0x20
[00:00:12.958,343] bt_gatt: parse_characteristic: handle 0x0005 uuid 2b29 properties 0x0a
[00:00:12.958,374] bt_gatt: parse_characteristic: handle 0x0007 uuid 2b2a properties 0x02
...
...
[00:00:13.459,930] bt_gatt: parse_characteristic: handle 0x0056 uuid 2a19 properties 0x12
[00:00:13.459,991] bt_gatt: parse_characteristic: handle 0x005b uuid 2bc3 properties 0x1a
[00:00:13.460,021] bt_gatt: parse_characteristic: handle 0x005f uuid 2bc9 properties 0x12
[00:00:13.460,083] bt_bap_unicast_client: unicast_client_pac_discover_cb: conn 0x200031a8 attr 0x2000da94 handle 0x0060 dir sink
[00:00:13.460,083] bt_gatt: bt_gatt_read: handle 0x0060
data: type 0x04 value_len 4
--- 19 messages dropped ---
4b009b00
data: type 0x05 value_len 1
02
meta: type 0x01 value_len 2
0800
meta: type 0xff value_len 14
0a000b1001020000000000000000
...
...
...
Sink discover complete
discover_sources
[00:00:20.157,745] bt_gatt: gatt_read_type: start_handle 0x0001 end_handle 0xffff
[00:00:20.259,765] bt_gatt: gatt_read_type_rsp: err 0
[00:00:20.259,857] bt_gatt: parse_characteristic: handle 0x0002 uuid 2a05 properties 0x20
[00:00:20.259,918] bt_gatt: parse_characteristic: handle 0x0005 uuid 2b29 properties 0x0a
[00:00:20.259,979] bt_gatt: parse_characteristic: handle 0x0007 uuid 2b2a properties 0x02
[00:00:20.260,009] bt_gatt: parse_characteristic: handle 0x0009 uuid 2b3a properties 0x02
[00:00:20.260,070] bt_gatt: parse_characteristic: handle 0x000c uuid 2a00 properties 0x02
[00:00:20.260,131] bt_gatt: parse
...
...
Enabled stream 0x20005c78
[00:00:26.408,447] bt_cap_initiator: bt_cap_initiator_enabled: cap_stream 0x20005c78
[00:00:26.408,477] bt_cap_initiator: update_proc_done_cnt: proc 1 subproc 3: 1/1
[00:00:26.408,477] bt_cap_initiator: bt_cap_initiator_enabled: Stream 0x20005c78 enabled (1/1 streams done)
[00:00:26.408,508] bt_bap_unicast_client: bt_bap_unicast_client_connect: stream 0x20005c78
[00:00:26.408,538] bt_bap_unicast_client: bt_bap_unicast_client_connect: stream 0x20005c78 iso 0x20006d28
[00:00:26.614,868] bt_bap_unicast_client: unicast_client_ep_iso_connected: stream 0x20005c78 ep 0x20003d54 dir sink receiver_ready 0
[00:00:26.614,898] bt_cap_initiator: bt_cap_initiator_connected: cap_stream 0x20005c78
[00:00:26.614,929] bt_cap_initiator: update_proc_done_cnt: proc 1 subproc 4: 1/1
[00:00:26.614,929] bt_cap_initiator: bt_cap_initiator_connected: Stream 0x20005c78 connected (1/1 streams done)
[00:00:26.657,623] bt_gatt: bt_gatt_notification: handle 0x009b length 20
[00:00:26.657,653] bt_bap_unicast_client: unicast_client_ep_notify: conn 0x200031a8 ep 0x20003d54 len 20
[00:00:26.657,745] bt_bap_unicast_client: unicast_client_ep_set_status: ep 0x20003d54 handle 0x009b id 0x01 dir sink state enabling -> streaming
[00:00:26.657,775] bt_bap_unicast_client: unicast_client_ep_streaming_state: dir sink cig 0x00 cis 0x00
Started stream 0x20005c78
[00:00:26.657,806] bt_cap_initiator: bt_cap_initiator_started: cap_stream 0x20005c78
[00:00:26.657,836] bt_cap_initiator: update_proc_done_cnt: proc 1 subproc 5: 1/1
[00:00:26.657,836] bt_cap_initiator: bt_cap_initiator_started: Stream 0x20005c78 started (1/1 streams done)
`
Additional info
Attached: Screenshot of the headset profile UUIDs from nRF Connect.
Earfun air pro 4
https://drive.google.com/file/d/1qDUr4_DtYyEp9mV620T5inlIzL9LLFgD/view?usp=drive_link
sony inzone buds
https://drive.google.com/file/d/1dZ965C7DavFjkhw4aAHyItthv4GzmW0e/view?usp=drive_link
Question
For single-MAC TWS earbuds, is the host expected to always send mono (with earbuds duplicating internally), or are there cases where the host must stream stereo?
Any insights on why streaming starts but no audio is heard would be very helpful.
Thanks in advance!
Beta Was this translation helpful? Give feedback.
All reactions