Help with the nrf21540 on the nrf5340_audio project

Hi,

I'm using nRF Connect version 2.9.1 with the buildprog script method of building this project.

I've got some custom boards based on the nRF5340_audio_dk. We swapped out the codec for a stereo one and went to a Fanstel BT40N module for better range, but it doesn't seem like the FEM/amplifier is working right.

Right now I'm handling it by adding --nrf21540 to the end of my buildprog command to tell it that I've got a nrf21540 shield, and then I edited the arduino_compatible.overlay and arduino_compatible_fwd.overlay files (attached) to change up the pinout to match what the BT40N needs. 

It's definitely working better than before I made those changes, but it doesn't seem to be working nearly as well as it should and I'm wondering if the amplifier is the problem.

Should the FEM be fully working with the changes I've made?

Also, even when it works I get a ton of sync errors. See attached debug log.

I'm going to try removing the --nrf21540 and just see what happens when I hardcode the pins to be in a TX or RX configuration - does the BIS broadcaster firmware do any receiving and does the BIS receiver firmware do any transmitting?

Thanks,

Glen

arduino_compatible.overlay

arduino_compatible_fwd.overlay


*** Booting nRF Connect SDK v2.9.1-60d0d6c8d42d ***
*** Using Zephyr OS v3.7.99-ca954a6216c9 ***
[00:00:01.036,041] <inf> fw_info:
         nRF5340 Audio nRF5340 Audio DK cpuapp
         NCS base version: 2.9.1
         Cmake run : Tue Jul 15 11:58:50 2025
[00:00:01.056,518] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:01.056,518] <inf> bt_hci_core: HW Variant: nRF53x (0x0003)
[00:00:01.056,549] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 121.4259
 Build 3078678206
[00:00:01.090,606] <inf> bt_hci_core: Identity: F3:1F:3E:44:97:B6 (random)
[00:00:01.090,637] <inf> bt_hci_core: HCI: version 6.0 (0x0e) revision 0x209a, manufacturer 0x0059
[00:00:01.090,637] <inf> bt_hci_core: LMP: version 6.0 (0x0e) subver 0x209a
[00:00:01.091,003] <inf> bt_mgmt_ctlr_cfg: Controller: SoftDevice: Version 6.0 (0x0e), Revision 8346
[00:00:01.091,156] <inf> bt_mgmt: Local identity addr: F3:1F:3E:44:97:B6 (random)
[00:00:01.092,437] <err> TLV320: GDM cs47l63_comm_init
[00:00:01.092,468] <err> audiocodec: GDM cs47l63_initialize
[00:00:01.092,468] <err> TLV320: GDM cs47l63_comm_gpio_set
[00:00:01.094,543] <err> TLV320: GDM cs47l63_comm_gpio_set
[00:00:01.194,580] <err> TLV320: GDM End of cs47l63_comm_init
[00:00:01.194,610] <err> hw_codec: GDM Soft reset code
[00:00:01.195,831] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:01.195,831] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:02.503,387] <inf> main: PA sync lost, reason: 62
[00:00:02.503,387] <err> main: Failed to restart scanning: -120
[00:00:03.703,857] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:04.903,900] <inf> broadcast_sink: Sync with stereo channel
[00:00:04.903,900] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:04.904,083] <err> audio_system: GDM Decoder sample rate 48000
[00:00:04.904,083] <inf> main: Presentation delay 3000 us is set
[00:00:06.158,142] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:06.158,172] <inf> broadcast_sink: Stream sync lost
[00:00:06.158,203] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:06.158,203] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:06.158,233] <inf> broadcast_sink: Stream sync lost
[00:00:06.158,264] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:06.158,355] <inf> main: Sync lost
[00:00:06.158,752] <inf> main: PA sync lost, reason: 22
[00:00:06.159,576] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:06.159,606] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:06.159,606] <inf> main: Restarted scanning for broadcaster
[00:00:06.159,606] <inf> main: Sync lost
[00:00:06.159,637] <wrn> main: PA sync is NULL
[00:00:06.159,973] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:06.159,973] <err> bt_mgmt: Failed to delete PA sync
[00:00:06.159,973] <wrn> main: Failed to delete PA sync -13
[00:00:06.161,132] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:06.161,132] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:06.161,132] <inf> main: Restarted scanning for broadcaster
[00:00:07.503,906] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:08.103,912] <inf> broadcast_sink: Sync with stereo channel
[00:00:08.103,912] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:08.104,064] <err> audio_system: GDM Decoder sample rate 48000
[00:00:08.104,064] <inf> main: Presentation delay 3000 us is set
[00:00:09.958,160] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:09.958,190] <inf> broadcast_sink: Stream sync lost
[00:00:09.958,221] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:09.958,221] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:09.958,251] <inf> broadcast_sink: Stream sync lost
[00:00:09.958,282] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:09.958,374] <inf> main: Sync lost
[00:00:09.958,770] <inf> main: PA sync lost, reason: 22
[00:00:09.959,594] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:09.959,625] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:09.959,625] <inf> main: Restarted scanning for broadcaster
[00:00:09.959,625] <inf> main: Sync lost
[00:00:09.959,655] <wrn> main: PA sync is NULL
[00:00:09.959,991] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:09.959,991] <err> bt_mgmt: Failed to delete PA sync
[00:00:09.959,991] <wrn> main: Failed to delete PA sync -13
[00:00:09.961,151] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:09.961,151] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:09.961,151] <inf> main: Restarted scanning for broadcaster
[00:00:11.303,405] <inf> main: PA sync lost, reason: 62
[00:00:11.303,436] <err> main: Failed to restart scanning: -120
[00:00:12.503,906] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:13.103,942] <inf> broadcast_sink: Sync with stereo channel
[00:00:13.103,942] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:13.104,095] <err> audio_system: GDM Decoder sample rate 48000
[00:00:13.104,095] <inf> main: Presentation delay 3000 us is set
[00:00:15.558,197] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:15.558,197] <inf> broadcast_sink: Stream sync lost
[00:00:15.558,258] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:15.558,258] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:15.558,288] <inf> broadcast_sink: Stream sync lost
[00:00:15.558,319] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:15.558,410] <inf> main: Sync lost
[00:00:15.558,807] <inf> main: PA sync lost, reason: 22
[00:00:15.559,631] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:15.559,631] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:15.559,661] <inf> main: Restarted scanning for broadcaster
[00:00:15.559,661] <inf> main: Sync lost
[00:00:15.559,661] <wrn> main: PA sync is NULL
[00:00:15.560,028] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:15.560,028] <err> bt_mgmt: Failed to delete PA sync
[00:00:15.560,028] <wrn> main: Failed to delete PA sync -13
[00:00:15.561,187] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:15.561,187] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:15.561,187] <inf> main: Restarted scanning for broadcaster
[00:00:16.503,936] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:17.703,948] <inf> broadcast_sink: Sync with stereo channel
[00:00:17.703,948] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:17.704,132] <err> audio_system: GDM Decoder sample rate 48000
[00:00:17.704,132] <inf> main: Presentation delay 3000 us is set
[00:00:20.758,209] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:20.758,239] <inf> broadcast_sink: Stream sync lost
[00:00:20.758,270] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:20.758,270] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:20.758,300] <inf> broadcast_sink: Stream sync lost
[00:00:20.758,361] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:20.758,422] <inf> main: Sync lost
[00:00:20.758,850] <inf> main: PA sync lost, reason: 22
[00:00:20.759,674] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:20.759,674] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:20.759,674] <inf> main: Restarted scanning for broadcaster
[00:00:20.759,704] <inf> main: Sync lost
[00:00:20.759,704] <wrn> main: PA sync is NULL
[00:00:20.760,040] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:20.760,040] <err> bt_mgmt: Failed to delete PA sync
[00:00:20.760,040] <wrn> main: Failed to delete PA sync -13
[00:00:20.761,199] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:20.761,230] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:20.761,230] <inf> main: Restarted scanning for broadcaster
[00:00:21.503,967] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:22.103,973] <inf> broadcast_sink: Sync with stereo channel
[00:00:22.103,973] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:22.104,156] <err> audio_system: GDM Decoder sample rate 48000
[00:00:22.104,156] <inf> main: Presentation delay 3000 us is set
[00:00:22.758,239] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:22.758,239] <inf> broadcast_sink: Stream sync lost
[00:00:22.758,300] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:22.758,300] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:22.758,331] <inf> broadcast_sink: Stream sync lost
[00:00:22.758,361] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:22.758,453] <inf> main: Sync lost
[00:00:22.758,850] <inf> main: PA sync lost, reason: 22
[00:00:22.759,674] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:22.759,674] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:22.759,704] <inf> main: Restarted scanning for broadcaster
[00:00:22.759,704] <inf> main: Sync lost
[00:00:22.759,704] <wrn> main: PA sync is NULL
[00:00:22.760,040] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:22.760,070] <err> bt_mgmt: Failed to delete PA sync
[00:00:22.760,070] <wrn> main: Failed to delete PA sync -13
[00:00:22.761,230] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:22.761,230] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:22.761,230] <inf> main: Restarted scanning for broadcaster
[00:00:23.903,717] <inf> main: PA sync lost, reason: 62
[00:00:23.903,747] <err> main: Failed to restart scanning: -120
[00:00:24.503,997] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:25.704,010] <inf> broadcast_sink: Sync with stereo channel
[00:00:25.704,010] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:25.704,162] <err> audio_system: GDM Decoder sample rate 48000
[00:00:25.704,162] <inf> main: Presentation delay 3000 us is set
[00:00:29.358,276] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:29.358,276] <inf> broadcast_sink: Stream sync lost
[00:00:29.358,337] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:29.358,337] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:29.358,367] <inf> broadcast_sink: Stream sync lost
[00:00:29.358,398] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:29.358,489] <inf> main: Sync lost
[00:00:29.358,886] <inf> main: PA sync lost, reason: 22
[00:00:29.359,710] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:29.359,710] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:29.359,741] <inf> main: Restarted scanning for broadcaster
[00:00:29.359,741] <inf> main: Sync lost
[00:00:29.359,741] <wrn> main: PA sync is NULL
[00:00:29.360,076] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:29.360,107] <err> bt_mgmt: Failed to delete PA sync
[00:00:29.360,107] <wrn> main: Failed to delete PA sync -13
[00:00:29.361,267] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:29.361,267] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:29.361,267] <inf> main: Restarted scanning for broadcaster
[00:00:30.703,491] <inf> main: PA sync lost, reason: 62
[00:00:30.703,491] <err> main: Failed to restart scanning: -120
[00:00:31.504,028] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:32.704,040] <inf> broadcast_sink: Sync with stereo channel
[00:00:32.704,040] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:32.704,193] <err> audio_system: GDM Decoder sample rate 48000
[00:00:32.704,193] <inf> main: Presentation delay 3000 us is set
[00:00:33.958,282] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:33.958,312] <inf> broadcast_sink: Stream sync lost
[00:00:33.958,343] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:33.958,343] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:33.958,374] <inf> broadcast_sink: Stream sync lost
[00:00:33.958,404] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:33.958,496] <inf> main: Sync lost
[00:00:33.958,923] <inf> main: PA sync lost, reason: 22
[00:00:33.959,747] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:33.959,747] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:33.959,747] <inf> main: Restarted scanning for broadcaster
[00:00:33.959,777] <inf> main: Sync lost
[00:00:33.959,777] <wrn> main: PA sync is NULL
[00:00:33.960,113] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:33.960,113] <err> bt_mgmt: Failed to delete PA sync
[00:00:33.960,113] <wrn> main: Failed to delete PA sync -13
[00:00:33.961,273] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:33.961,273] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:33.961,273] <inf> main: Restarted scanning for broadcaster
[00:00:34.904,052] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:36.104,064] <inf> broadcast_sink: Sync with stereo channel
[00:00:36.104,064] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:36.104,217] <err> audio_system: GDM Decoder sample rate 48000
[00:00:36.104,217] <inf> main: Presentation delay 3000 us is set
[00:00:36.758,300] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:36.758,331] <inf> broadcast_sink: Stream sync lost
[00:00:36.758,361] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:36.758,361] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:36.758,392] <inf> broadcast_sink: Stream sync lost
[00:00:36.758,422] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:36.758,514] <inf> main: Sync lost
[00:00:36.758,911] <inf> main: PA sync lost, reason: 22
[00:00:36.759,735] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:36.759,735] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:36.759,735] <inf> main: Restarted scanning for broadcaster
[00:00:36.759,735] <inf> main: Sync lost
[00:00:36.759,765] <wrn> main: PA sync is NULL
[00:00:36.760,101] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:36.760,101] <err> bt_mgmt: Failed to delete PA sync
[00:00:36.760,101] <wrn> main: Failed to delete PA sync -13
[00:00:36.761,260] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:36.761,260] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:36.761,260] <inf> main: Restarted scanning for broadcaster
[00:00:37.304,046] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:38.504,058] <inf> broadcast_sink: Sync with stereo channel
[00:00:38.504,089] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:38.504,241] <err> audio_system: GDM Decoder sample rate 48000
[00:00:38.504,241] <inf> main: Presentation delay 3000 us is set
[00:00:39.158,325] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:39.158,325] <inf> broadcast_sink: Stream sync lost
[00:00:39.158,386] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:39.158,386] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:39.158,416] <inf> broadcast_sink: Stream sync lost
[00:00:39.158,447] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:39.158,538] <inf> main: Sync lost
[00:00:39.158,935] <inf> main: PA sync lost, reason: 22
[00:00:39.159,729] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:39.159,729] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:39.159,759] <inf> main: Restarted scanning for broadcaster
[00:00:39.159,759] <inf> main: Sync lost
[00:00:39.159,759] <wrn> main: PA sync is NULL
[00:00:39.160,095] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:39.160,125] <err> bt_mgmt: Failed to delete PA sync
[00:00:39.160,125] <wrn> main: Failed to delete PA sync -13
[00:00:39.161,285] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:39.161,285] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:39.161,285] <inf> main: Restarted scanning for broadcaster
[00:00:40.304,077] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:41.504,089] <inf> broadcast_sink: Sync with stereo channel
[00:00:41.504,089] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:41.504,241] <err> audio_system: GDM Decoder sample rate 48000
[00:00:41.504,272] <inf> main: Presentation delay 3000 us is set
[00:00:42.158,325] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:42.158,355] <inf> broadcast_sink: Stream sync lost
[00:00:42.158,386] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:42.158,386] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:42.158,416] <inf> broadcast_sink: Stream sync lost
[00:00:42.158,447] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:42.158,538] <inf> main: Sync lost
[00:00:42.158,935] <inf> main: PA sync lost, reason: 22
[00:00:42.159,759] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:42.159,759] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:42.159,759] <inf> main: Restarted scanning for broadcaster
[00:00:42.159,790] <inf> main: Sync lost
[00:00:42.159,790] <wrn> main: PA sync is NULL
[00:00:42.160,125] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:42.160,125] <err> bt_mgmt: Failed to delete PA sync
[00:00:42.160,125] <wrn> main: Failed to delete PA sync -13
[00:00:42.161,285] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:42.161,285] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:42.161,285] <inf> main: Restarted scanning for broadcaster
[00:00:42.704,071] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:44.504,089] <inf> broadcast_sink: Sync with stereo channel
[00:00:44.504,119] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:44.504,272] <err> audio_system: GDM Decoder sample rate 48000
[00:00:44.504,272] <inf> main: Presentation delay 3000 us is set
[00:00:46.958,374] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:46.958,374] <inf> broadcast_sink: Stream sync lost
[00:00:46.958,404] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:46.958,435] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:46.958,465] <inf> broadcast_sink: Stream sync lost
[00:00:46.958,496] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:46.958,557] <inf> main: Sync lost
[00:00:46.958,984] <inf> main: PA sync lost, reason: 22
[00:00:46.959,808] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:46.959,808] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:46.959,808] <inf> main: Restarted scanning for broadcaster
[00:00:46.959,838] <inf> main: Sync lost
[00:00:46.959,838] <wrn> main: PA sync is NULL
[00:00:46.960,174] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:46.960,174] <err> bt_mgmt: Failed to delete PA sync
[00:00:46.960,205] <wrn> main: Failed to delete PA sync -13
[00:00:46.961,364] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:46.961,364] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:46.961,364] <inf> main: Restarted scanning for broadcaster
[00:00:47.704,101] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:48.904,113] <inf> broadcast_sink: Sync with stereo channel
[00:00:48.904,144] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:48.904,296] <err> audio_system: GDM Decoder sample rate 48000
[00:00:48.904,296] <inf> main: Presentation delay 3000 us is set
[00:00:49.558,380] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:49.558,380] <inf> broadcast_sink: Stream sync lost
[00:00:49.558,441] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:49.558,441] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:49.558,471] <inf> broadcast_sink: Stream sync lost
[00:00:49.558,502] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:49.558,593] <inf> main: Sync lost
[00:00:49.558,990] <inf> main: PA sync lost, reason: 22
[00:00:49.559,783] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:49.559,814] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:49.559,814] <inf> main: Restarted scanning for broadcaster
[00:00:49.559,814] <inf> main: Sync lost
[00:00:49.559,814] <wrn> main: PA sync is NULL
[00:00:49.560,150] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:49.560,180] <err> bt_mgmt: Failed to delete PA sync
[00:00:49.560,180] <wrn> main: Failed to delete PA sync -13
[00:00:49.561,340] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:49.561,340] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:49.561,340] <inf> main: Restarted scanning for broadcaster
[00:00:50.504,119] <inf> bt_mgmt_scan: PA synced to name: NRF5340_BROADCASTER, id: 0x06d1bf, addr: 2C
:87:9B:72:0B:28 (random)
[00:00:52.904,144] <inf> broadcast_sink: Sync with stereo channel
[00:00:52.904,144] <inf> broadcast_sink: Syncing to broadcast stream index 0
[00:00:52.904,327] <err> audio_system: GDM Decoder sample rate 48000
[00:00:52.904,327] <inf> main: Presentation delay 3000 us is set
[00:00:54.158,416] <wrn> bt_conn: conn 0x20003660 failed to establish. RF noise?
[00:00:54.158,416] <inf> broadcast_sink: Stream sync lost
[00:00:54.158,447] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:54.158,477] <wrn> bt_conn: conn 0x20003730 failed to establish. RF noise?
[00:00:54.158,508] <inf> broadcast_sink: Stream sync lost
[00:00:54.158,538] <inf> broadcast_sink: Stream index 0 stopped. Reason: 62
[00:00:54.158,599] <inf> main: Sync lost
[00:00:54.159,027] <inf> main: PA sync lost, reason: 22
[00:00:54.159,851] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:54.159,851] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:54.159,851] <inf> main: Restarted scanning for broadcaster
[00:00:54.159,881] <inf> main: Sync lost
[00:00:54.159,881] <wrn> main: PA sync is NULL
[00:00:54.160,217] <wrn> bt_hci_core: opcode 0x2045 status 0x0c
[00:00:54.160,217] <err> bt_mgmt: Failed to delete PA sync
[00:00:54.160,217] <wrn> main: Failed to delete PA sync -13
[00:00:54.161,376] <inf> bt_mgmt_scan: Local addr: F3:1F:3E:44:97:B6 (random). May time out. Updates
not printed
[00:00:54.161,407] <inf> bt_mgmt_scan: Scanning successfully started
[00:00:54.161,407] <inf> main: Restarted scanning for broadcaster

Parents
  • Hi Glen,

    Some thoughts from our Audio internal team members is below.

    For nRF5340 audio DK and nRF5340 audio project, we only tested the GPIO mode with nRF21540

    • This is becasue the SPI pins are sharing between audio codec CS47L63 and nRF21540-EK. But nRF5340 APP core needs to control the CS47L63, so APP core needs to occupy control permission for the SPI pins. 
    • Once if that happened, the NET cannot control the FEM through SPI anymore. So we always using GPIO mode instead of SPI mode on nRF5340 ADK + nRF21540-EK

    Since you mentioned that you are using customized HW, then you could check if the SPI for nRF21540 is controlled by NET properly or not. for example proble the SPI pins and check if the SPI bus has reasonable traffic between FEM and NET.

    Also worth mentioning, for SPI mode on your custom board, you need to ensure the netcore uart isn't enabled:

    6. On nRF53 Series devices, SPIM0 and UARTE0 are mutually exclusive AHB bus masters on the network core as described in the Product Specification, Section 6.4.3.1, Table 22. As a result, they cannot be used simultaneously. For the SPI part of the nRF21540 interface to be functional, disable the UARTE0 node in the network core’s devicetree file

  • Hello Susheel, I'm trying to help Glen out by managing the ticket responses a bit.  

    Thank you for confirming SPI mode was untested on the Audio platform.  The Fanstel Module (and our board) does not use the Codec or SPI, so we just assumed it was good.  After switching to GPIO mode with the proper configuration, we have audio connections taking place.  The PA appears mostly operational, and we get about 300' of BIS range.

    However, on some boards and randomly at some times, we get an endless 800ms loud clicking develop as the I2S audio drops out for 100-200ms.   We are not getting disconnect callbacks.  It isn't clear why this is happening and it comes and goes.  There is no source of interference.  Some boards are rock solid forever.  Some start clicking or stop clicking if the transmitter is restarted and the board is forced to reconnect.  

    We also continue to see frequent messaging related to the presentation compensation state machine, init, meas, wait events, though we've not correlated them. 

    From our extensive email chain, we understand the SDK-defined FEM settling time is a problem.  Several emails have mentioned this problem but none go into sufficient depth on the matter.  Our understanding is the nrf21540 requires more TX settling time than is setup by default in config with the 2.9.1 build we are using.  And worse, 2.9.1 limits this to 40us.  To work properly, this must be some value >40us but we have not been told what that is exactly.

    * What does the TX settling time for the NRF21540 FEM shield board recommended to be?  

    * Might this explain our odd audio sync errors?  I can see how if packets end up truncated it could cause sync issues in odd ways.   

    We did get debug messages enabled and visible through RTT, but even with the FEM messages set to "ERR" level, which should make them print at a higher priority, we don't see any FEM messages.
    CONFIG_MPSL_FEM_LOG_LEVEL_ERR=y
    CONFIG_MPSL_LOG_LEVEL_ERR=y
    * Would it be possible to get additional feedback on how we might further debug FEM timing issues?

    We also still cannot debug on this platform like all the other Zephyr projects we have done.  The example did specifically state that Code download and Debug through VScode was not supported, but it isn't clear why this limitation might exist.  

    Glen had inquired about this in another ticket, but it wasn't addressed: https://devzone.nordicsemi.com/f/nordic-q-a/121836/trouble-with-getting-the-nrf5340_audio_dk-working

    Thank you for any help you can provide!  

    - Jason

  • Hi Jason and Glen,

    Our apologies for the late follow-up. Susheel has been out of office, and there was some issue with the reassignment of this case.

    I have now been assigned to this case. I will catch up with the ongoing discussion and follow-up shortly.

    Hieu

  • Hi Jason and Glen,

    Juason said:
    We did get debug messages enabled and visible through RTT, but even with the FEM messages set to "ERR" level, which should make them print at a higher priority, we don't see any FEM messages.
    CONFIG_MPSL_FEM_LOG_LEVEL_ERR=y
    CONFIG_MPSL_LOG_LEVEL_ERR=y
    * Would it be possible to get additional feedback on how we might further debug FEM timing issues?

    The issue with the FEM timing is not software detectable, so it makes sense that nothing shows up when you enable logging here.

    On that note, please know that LOG_LEVEL_ERR is actually a low log level, only second to LOG_LEVEL_NONE. The reason is because the config defines the lowest severity log level being printed and ERR is the highest severity level.
    For the most logs, you want CONFIG_<module>_LOG_LEVEL_DBG. Note that this sometimes produce so much log that you will also have to increase both the general log buffer and the log backend buffer.

    Juason said:
    * What does the TX settling time for the NRF21540 FEM shield board recommended to be?  

    The recommendation is to actually migrate to NCS v3.0.0 or newer. Is this an option?

    If not, then the general ideas are:

    • There are two settle times to pay attention to: TX settle time and PDN settle time.
    • PDN has to be set at least 18us before TX.
    • In NCS v2.9.1, PDN can only be set at most 39us before radio ramping complete.
    • We want as much TX settle time as possible.

    Following those reasons, please try:

    pdn-settle-time-us=18

    tx-en-settle-time-us=21

    Hieu

Reply
  • Hi Jason and Glen,

    Juason said:
    We did get debug messages enabled and visible through RTT, but even with the FEM messages set to "ERR" level, which should make them print at a higher priority, we don't see any FEM messages.
    CONFIG_MPSL_FEM_LOG_LEVEL_ERR=y
    CONFIG_MPSL_LOG_LEVEL_ERR=y
    * Would it be possible to get additional feedback on how we might further debug FEM timing issues?

    The issue with the FEM timing is not software detectable, so it makes sense that nothing shows up when you enable logging here.

    On that note, please know that LOG_LEVEL_ERR is actually a low log level, only second to LOG_LEVEL_NONE. The reason is because the config defines the lowest severity log level being printed and ERR is the highest severity level.
    For the most logs, you want CONFIG_<module>_LOG_LEVEL_DBG. Note that this sometimes produce so much log that you will also have to increase both the general log buffer and the log backend buffer.

    Juason said:
    * What does the TX settling time for the NRF21540 FEM shield board recommended to be?  

    The recommendation is to actually migrate to NCS v3.0.0 or newer. Is this an option?

    If not, then the general ideas are:

    • There are two settle times to pay attention to: TX settle time and PDN settle time.
    • PDN has to be set at least 18us before TX.
    • In NCS v2.9.1, PDN can only be set at most 39us before radio ramping complete.
    • We want as much TX settle time as possible.

    Following those reasons, please try:

    pdn-settle-time-us=18

    tx-en-settle-time-us=21

    Hieu

Children
  • Thanks Hieu - our plan long term is to move to 3.0+, but we didn't have time to go down that path before our initial release. For now we've gotten it working smoothly by adjusting the presentation delay, and I'm not sure if the issues that solved are related to the FEM or not.
    One question - most of the modifications I had to make to the firmware were related to receiving both the left and right channels on the headset (we swapped in a stereo codec rather than the mono one on the eval board). I made those changes based on an unofficial example someone linked me to where a Nordic employee made those changes in SDK 2.9.0.  From looking at the documentation for the newer SDK, it looks like stereo receive *might* have been incorporated as a selectable option. Do you know if that's true and if so how to configure that mode?

  • Hi Glen,

    Glen M said:
    For now we've gotten it working smoothly by adjusting the presentation delay, and I'm not sure if the issues that solved are related to the FEM or not.

    Do I understand right that the FEM issues have been taken cared of for now? If so, that's good news.

    Glen M said:
    From looking at the documentation for the newer SDK, it looks like stereo receive *might* have been incorporated as a selectable option. Do you know if that's true and if so how to configure that mode?

    Yes, stereo has been experimentally supported. Refer to nRF Connect SDK v3.1.0 Release Notes.

    The details of enabling it in any project is quite outside of my expertise, unfortunately. I see the Kconfigs to enable it is showed here: sdk-nrf/applications/nrf5340_audio/broadcast_sink/overlay-broadcast_sink.conf at v3.1.0 · nrfconnect/sdk-nrf.

    For further follow-up regarding it, do you mind opening a new DevZone case? An engineer better suited for the topic can help you there; and we also try to keep each DevZone case focused on one topic.

  • Regarding whether the FEM issue is fixed - It seems to be either fixed or mostly-fixed. I don't know the reason for the occasional 1ms dropouts we're getting and it's it's possible that it's due to the timing issue we've been told about with the FEM, but in general the system is working well enough that we shipped some to our customer, with those little dropouts being smoothed over by the presentation delay code.

    Thanks for the links on the 3.1 solution - that is GREAT news that the stereo receive option has been incorporated there as it should let me start fresh with that SDK's nrf5340_audio example and just merge in my board files and other minor changes.

  • Glen M said:
    Regarding whether the FEM issue is fixed - It seems to be either fixed or mostly-fixed. I don't know the reason for the occasional 1ms dropouts we're getting and it's it's possible that it's due to the timing issue we've been told about with the FEM, but in general the system is working well enough that we shipped some to our customer, with those little dropouts being smoothed over by the presentation delay code.

    I am out of the loop regarding the presentation delay mentioned, so I can't comment about it. If you are content with the result now, I am hesitant to push for the settle time adjustment. When you move to NCS v3.1.0 for stereo, it will be taken care of there anyway.

    If you do modify the settle time in your custom board file, please keep in mind that the "fix" in NCS v3.0.0 is done partly by changing the default value. It means that any custom configuration will override the fix and should be changed/removed.

    Other than that, I'm glad to hear you are happy with the audio change.

Related