nrf_dm on the nrf54l15

Is there a trick to getting nrf_dm to compile on the nrf54l15?

I've installed v2.9.1

Command I normally use (nrf52840): 

west build -b nrf52840dk_nrf52840 -d build_nrf52840dk_nrf52840 -- -DSHIELD=waveshare_epaper_gdey0213b74

Command I tried (not sure if it's correct?):

west build -b nrf54l15bsim/nrf54l15/cpuapp -d build_nrf54L15 -- -DSHIELD=waveshare_epaper_gdey0213b74

-- west build: generating a build system
Loading Zephyr module(s) (Zephyr base): sysbuild_default
-- Found Python3: C:/ncs/toolchains/b620d30767/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
-- Cache files will be written to: C:/ncs/v2.9.1/zephyr/.cache
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: nrf54l15bsim, qualifiers: nrf54l15/cpuapp
-- Shield(s): waveshare_epaper_gdey0213b74
Parsing C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/Kconfig.sysbuild
Loaded configuration 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/_sysbuild/empty.conf'
Merged configuration 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/_sysbuild/empty.conf'
Configuration saved to 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/zephyr/.config'
Kconfig header saved to 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/_sysbuild/autoconf.h'
--
****************************
* Running CMake for nrf_dm *
****************************

Loading Zephyr default modules (Zephyr base).
-- Application: C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm
-- CMake version: 3.21.0
-- Using NCS Toolchain 2.8.20241119.782234748775 for building. (C:/ncs/toolchains/b620d30767/cmake)
-- Found Python3: C:/ncs/toolchains/b620d30767/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
-- Cache files will be written to: C:/ncs/v2.9.1/zephyr/.cache
-- Zephyr version: 3.7.99 (C:/ncs/v2.9.1/zephyr)
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: nrf54l15bsim, qualifiers: nrf54l15/cpuapp
-- Shield(s): waveshare_epaper_gdey0213b74
-- Found host-tools: zephyr 0.17.0 (C:/ncs/toolchains/b620d30767/opt/zephyr-sdk)
-- Found toolchain: host (gcc/ld)
CMake Error at C:/ncs/v2.9.1/zephyr/cmake/compiler/host-gcc/generic.cmake:5 (find_program):
Could not find CMAKE_C_COMPILER using the following names: gcc
Call Stack (most recent call first):
C:/ncs/v2.9.1/zephyr/cmake/modules/FindHostTools.cmake:108 (include)
C:/ncs/v2.9.1/zephyr/cmake/modules/dts.cmake:9 (find_package)
C:/ncs/v2.9.1/zephyr/cmake/modules/zephyr_default.cmake:133 (include)
C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
CMakeLists.txt:8 (find_package)

-- Configuring incomplete, errors occurred!

CMake Error at cmake/modules/sysbuild_extensions.cmake:514 (message):
CMake configure failed for Zephyr project: nrf_dm

Location: C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm
Call Stack (most recent call first):
cmake/modules/sysbuild_images.cmake:20 (ExternalZephyrProject_Cmake)
cmake/modules/sysbuild_default.cmake:20 (include)
C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include)
C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
C:/ncs/v2.9.1/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include)
template/CMakeLists.txt:10 (find_package)


-- Configuring incomplete, errors occurred!
See also "C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/CMakeFiles/CMakeOutput.log".
FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\b620d30767\opt\bin\cmake.EXE' -DWEST_PYTHON=C:/ncs/toolchains/b620d30767/opt/bin/python.exe '-BC:\ncs\v2.9.1\nrf\samples\bluetooth\nrf_dm\build_nrf54L15' -GNinja -DBOARD=nrf54l15bsim/nrf54l15/cpuapp -DSHIELD=waveshare_epaper_gdey0213b74 '-SC:\ncs\v2.9.1\zephyr\share\sysbuild' '-DAPP_DIR:PATH=C:\ncs\v2.9.1\nrf\samples\bluetooth\nrf_dm'

Parents
  • Hey Michael,

    It appears you're building for the Babblesim board target and not the nRF54L15-DK target. Try changing from:
    nrf54l15bsim/nrf54l15/cpuapp to nrf54l15dk/nrf54l15/cpuapp

    Thanks,

    Helmut Lord

  • Thanks. I tried this... I don't fully understand all the output from the compile. nrf_dm specifies processors in the nrf_dm yaml file... nrf54 is not part of the processor list, but I don't know if that is a problem or not? 

    PS C:\ncs\v2.9.1\nrf\samples\bluetooth\nrf_dm> west build -b nrf54l15dk/nrf54l15/cpuapp -d build_nrf54L15 -- -DSHIELD=waveshare_epaper_gdey0213b74
    -- west build: generating a build system
    Loading Zephyr module(s) (Zephyr base): sysbuild_default
    -- Found Python3: C:/ncs/toolchains/b620d30767/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
    -- Cache files will be written to: C:/ncs/v2.9.1/zephyr/.cache
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: nrf54l15dk, qualifiers: nrf54l15/cpuapp
    -- Shield(s): waveshare_epaper_gdey0213b74
    Parsing C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/Kconfig.sysbuild
    Loaded configuration 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/_sysbuild/empty.conf'
    Merged configuration 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/_sysbuild/empty.conf'
    Configuration saved to 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/zephyr/.config'
    Kconfig header saved to 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/_sysbuild/autoconf.h'
    --
    ****************************
    * Running CMake for nrf_dm *
    ****************************

    Loading Zephyr default modules (Zephyr base).
    -- Application: C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm
    -- CMake version: 3.21.0
    -- Using NCS Toolchain 2.8.20241119.782234748775 for building. (C:/ncs/toolchains/b620d30767/cmake)
    -- Found Python3: C:/ncs/toolchains/b620d30767/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
    -- Cache files will be written to: C:/ncs/v2.9.1/zephyr/.cache
    -- Zephyr version: 3.7.99 (C:/ncs/v2.9.1/zephyr)
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: nrf54l15dk, qualifiers: nrf54l15/cpuapp
    -- Shield(s): waveshare_epaper_gdey0213b74
    -- Found host-tools: zephyr 0.17.0 (C:/ncs/toolchains/b620d30767/opt/zephyr-sdk)
    -- Found toolchain: zephyr 0.17.0 (C:/ncs/toolchains/b620d30767/opt/zephyr-sdk)
    -- Found Dtc: C:/ncs/toolchains/b620d30767/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6")
    -- Found BOARD.dts: C:/ncs/v2.9.1/zephyr/boards/nordic/nrf54l15dk/nrf54l15dk_nrf54l15_cpuapp.dts
    -- Found devicetree overlay: C:/ncs/v2.9.1/zephyr/boards/shields/waveshare_epaper/waveshare_epaper_gdey0213b74.overlay
    -- Found devicetree overlay: C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/app.overlay
    devicetree error: C:/ncs/v2.9.1/zephyr/boards/shields/waveshare_epaper/dts/waveshare_epaper_common.dtsi:7 (column 1): parse error: undefined node label 'arduino_spi'
    CMake Error at C:/ncs/v2.9.1/zephyr/cmake/modules/dts.cmake:295 (execute_process):
    execute_process failed command indexes:

    1: "Child return code: 1"

    Call Stack (most recent call first):
    C:/ncs/v2.9.1/zephyr/cmake/modules/zephyr_default.cmake:133 (include)
    C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
    C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
    CMakeLists.txt:8 (find_package)


    -- Configuring incomplete, errors occurred!
    CMake Error at cmake/modules/sysbuild_extensions.cmake:514 (message):
    CMake configure failed for Zephyr project: nrf_dm

    Location: C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm
    Call Stack (most recent call first):
    cmake/modules/sysbuild_images.cmake:20 (ExternalZephyrProject_Cmake)
    cmake/modules/sysbuild_default.cmake:20 (include)
    C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include)
    C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
    C:/ncs/v2.9.1/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include)
    template/CMakeLists.txt:10 (find_package)


    -- Configuring incomplete, errors occurred!
    See also "C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/CMakeFiles/CMakeOutput.log".
    ←[91mFATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\b620d30767\opt\bin\cmake.EXE' -DWEST_PYTHON=C:/ncs/toolchains/b620d30767/opt/bin/python.exe '-BC:\ncs\v2.9.1\nrf\samples\bluetooth\nrf_dm\build_nrf54L15' -GNinja -DBOARD=nrf54l15dk/nrf54l15/cpuapp -DSHIELD=waveshare_epaper_gdey0213b74 '-SC:\ncs\v2.9.1\zephyr\share\sysbuild' '-DAPP_DIR:PATH=C:\ncs\v2.9.1\nrf\samples\bluetooth\nrf_dm'
    ←[0m

Reply
  • Thanks. I tried this... I don't fully understand all the output from the compile. nrf_dm specifies processors in the nrf_dm yaml file... nrf54 is not part of the processor list, but I don't know if that is a problem or not? 

    PS C:\ncs\v2.9.1\nrf\samples\bluetooth\nrf_dm> west build -b nrf54l15dk/nrf54l15/cpuapp -d build_nrf54L15 -- -DSHIELD=waveshare_epaper_gdey0213b74
    -- west build: generating a build system
    Loading Zephyr module(s) (Zephyr base): sysbuild_default
    -- Found Python3: C:/ncs/toolchains/b620d30767/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
    -- Cache files will be written to: C:/ncs/v2.9.1/zephyr/.cache
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: nrf54l15dk, qualifiers: nrf54l15/cpuapp
    -- Shield(s): waveshare_epaper_gdey0213b74
    Parsing C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/Kconfig.sysbuild
    Loaded configuration 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/_sysbuild/empty.conf'
    Merged configuration 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/_sysbuild/empty.conf'
    Configuration saved to 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/zephyr/.config'
    Kconfig header saved to 'C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/_sysbuild/autoconf.h'
    --
    ****************************
    * Running CMake for nrf_dm *
    ****************************

    Loading Zephyr default modules (Zephyr base).
    -- Application: C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm
    -- CMake version: 3.21.0
    -- Using NCS Toolchain 2.8.20241119.782234748775 for building. (C:/ncs/toolchains/b620d30767/cmake)
    -- Found Python3: C:/ncs/toolchains/b620d30767/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter
    -- Cache files will be written to: C:/ncs/v2.9.1/zephyr/.cache
    -- Zephyr version: 3.7.99 (C:/ncs/v2.9.1/zephyr)
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: nrf54l15dk, qualifiers: nrf54l15/cpuapp
    -- Shield(s): waveshare_epaper_gdey0213b74
    -- Found host-tools: zephyr 0.17.0 (C:/ncs/toolchains/b620d30767/opt/zephyr-sdk)
    -- Found toolchain: zephyr 0.17.0 (C:/ncs/toolchains/b620d30767/opt/zephyr-sdk)
    -- Found Dtc: C:/ncs/toolchains/b620d30767/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6")
    -- Found BOARD.dts: C:/ncs/v2.9.1/zephyr/boards/nordic/nrf54l15dk/nrf54l15dk_nrf54l15_cpuapp.dts
    -- Found devicetree overlay: C:/ncs/v2.9.1/zephyr/boards/shields/waveshare_epaper/waveshare_epaper_gdey0213b74.overlay
    -- Found devicetree overlay: C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/app.overlay
    devicetree error: C:/ncs/v2.9.1/zephyr/boards/shields/waveshare_epaper/dts/waveshare_epaper_common.dtsi:7 (column 1): parse error: undefined node label 'arduino_spi'
    CMake Error at C:/ncs/v2.9.1/zephyr/cmake/modules/dts.cmake:295 (execute_process):
    execute_process failed command indexes:

    1: "Child return code: 1"

    Call Stack (most recent call first):
    C:/ncs/v2.9.1/zephyr/cmake/modules/zephyr_default.cmake:133 (include)
    C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
    C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
    CMakeLists.txt:8 (find_package)


    -- Configuring incomplete, errors occurred!
    CMake Error at cmake/modules/sysbuild_extensions.cmake:514 (message):
    CMake configure failed for Zephyr project: nrf_dm

    Location: C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm
    Call Stack (most recent call first):
    cmake/modules/sysbuild_images.cmake:20 (ExternalZephyrProject_Cmake)
    cmake/modules/sysbuild_default.cmake:20 (include)
    C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include)
    C:/ncs/v2.9.1/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
    C:/ncs/v2.9.1/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include)
    template/CMakeLists.txt:10 (find_package)


    -- Configuring incomplete, errors occurred!
    See also "C:/ncs/v2.9.1/nrf/samples/bluetooth/nrf_dm/build_nrf54L15/CMakeFiles/CMakeOutput.log".
    ←[91mFATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\b620d30767\opt\bin\cmake.EXE' -DWEST_PYTHON=C:/ncs/toolchains/b620d30767/opt/bin/python.exe '-BC:\ncs\v2.9.1\nrf\samples\bluetooth\nrf_dm\build_nrf54L15' -GNinja -DBOARD=nrf54l15dk/nrf54l15/cpuapp -DSHIELD=waveshare_epaper_gdey0213b74 '-SC:\ncs\v2.9.1\zephyr\share\sysbuild' '-DAPP_DIR:PATH=C:\ncs\v2.9.1\nrf\samples\bluetooth\nrf_dm'
    ←[0m

Children
  • nrf_dm is not supported for the nRF54 series, these devices use Channel Sounding for ranging.

  • Thanks! 

    Is "Channel Sounding" a similar function to "nrf_dm"? Is there a "Channel Sounding" sample that I can use to revise my current "nrf_dm" code/job to so that I can get the same type of result using the nrf54l15?

    And, most importanly, would it be superior to the results I am currently getting with nrf_dm on the nrf52840?

  • Hi Michael,

    You can find the samples in the NCS 2.9, the documentation is here and here.

    mej7000 said:
    Is "Channel Sounding" a similar function to "nrf_dm"?

    Yes it is similar, and uses a lot of the same technology. Though there are a few differences, like for instance ndt being propriatery and CS being an official part of BLE, which means that you can use it with other products as well. 

    Another thing that might make more of a difference to you, is that we unfortunately do not really provide a product-quality angle algorithm for it - you will have to create that yourself. Like it says in the documentation of the samples:

    It also provides a basic distance estimation algorithm to demonstrate the IQ data handling. The accuracy is not representative for Channel Sounding and should be replaced if accuracy is important.

    mej7000 said:
    And, most importanly, would it be superior to the results I am currently getting with nrf_dm on the nrf52840?

    Yes, with a decent angle algorithm it is expected to be a bit better, but somewhat comparable to the results you got with NDT.

    Regards,

    Elfving

Related