[Help] Porting ESB (Enhanced ShockBurst) project to Zephyr 4.2.0 on nRF5340 DK

Hi everyone,

I'm currently working on porting a project that uses Enhanced ShockBurst (ESB), originally developed with nRF Connect SDK v3.0.2, to Zephyr 4.2.0. The project runs on the nRF5340 DK, specifically on the network core (CPUNET).


Wrench Project context

  • The original project uses esb.h, dk_buttons_and_leds.h, clock_control, etc.
  • I copied the ESB source files from nrf/subsys/esb/:
    • esb.c, esb_dppi.c, esb_ppi.c
    • esb.h, esb_peripherals.h, esb_ppi_api.h
  • I created a Kconfig file inside the esb/ folder and another one at the root of the project to declare symbols like CONFIG_ESB, CONFIG_DK_LIBRARY, etc.
  • I added the sources and include paths in CMakeLists.txt using target_sources() and zephyr_include_directories().

X Problem

When I try to build the project with:

west build -b nrf5340dk_nrf5340_cpunet

I get multiple warnings and errors like:

warning: attempt to assign the value 'y' to the undefined symbol ESB
warning: attempt to assign the value 'y' to the undefined symbol DK_LIBRARY
...
error: Aborting due to Kconfig warnings

Even though the Kconfig files are present, Zephyr doesn't seem to recognize the symbols defined in them.


White check mark What I’ve tried

  • Verified the project structure and file names
  • Added rsource "esb/Kconfig" in the root Kconfig
  • Cleaned the build with -p always
  • Verified that the esb/ folder is included in both CMakeLists.txt and Kconfig

Question What I need help with

  • How to properly integrate the ESB module into a pure Zephyr 4.2.0 project (without NCS)
  • How to make Zephyr recognize the custom Kconfig symbols
  • Any advice on structuring the project correctly for nRF5340 DK (CPUNET)

Thanks in advance for your help!

Related