ESB and BLE in nRF Connect SDK. An Impossible Pair?

Hi,

I'm encountering some issues when using Bluetooth and ESB simultaneously in a project with the nRF Connect SDK. I'm aware that there's no official support for using both in the same compilation, but I can't even manage to build the project. I hope someone can provide guidance on how to fix this issue.

 

What am I trying to accomplish?

The main purpose of the code is to fetch the current date and timestamps through BLE using a CTS client, and then communicate with another nRF52 to transmit this information.

 

What build error am I encountering?

[232/242] Linking C executable zephyr\zephyr_pre0.elf

FAILED: zephyr/zephyr_pre0.elf zephyr/zephyr_pre0.map

cmd.exe /C "cd . && C:\ncs\toolchains\31f4403e35\opt\zephyr-sdk\arm-zephyr-eabi\bin\arm-zephyr-eabi-gcc.exe  -gdwarf-4 @CMakeFiles\zephyr_pre0.rsp -o zephyr\zephyr_pre0.elf  && cmd.exe /C "cd /D C:\Users\marc\nRF_sdk\peripheral_cts_client\build_1\zephyr && C:\ncs\toolchains\31f4403e35\opt\bin\cmake.exe -E echo ""

c:/ncs/toolchains/31f4403e35/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: modules/nrf/subsys/bluetooth/controller/lib..__nrf__subsys__bluetooth__controller.a(hci_driver.c.obj): in function `mpsl_work_submit':

C:\ncs\v2.4.0\nrf\include\mpsl\mpsl_work.h:49: undefined reference to `mpsl_work_q'

collect2.exe: error: ld returned 1 exit status

ninja: build stopped: subcommand failed.

FATAL ERROR: command exited with status 1: 'c:\ncs\toolchains\31f4403e35\opt\bin\cmake.EXE' --build 'c:\Users\marc \nRF_sdk\peripheral_cts_client\build_1'

 

How can the issue be reproduced?

  1. Open VS through nRF Connect.
  2. Create a new application and choose nrf/samples/bluetooth/peripheral_cts_client as the application template.
  3. Add CONFIG_ESB=y to your prj.conf.
  4. Add a build configuration for nrd52840dk_nrf52840.
  5. Execute the build configuration
Related