RF Test on custom board (nrf5340 + nrf21540)

Hello,

I create a custom board based on nRF5340 with a FEM nRF21540 and I would like to test radio part with some fixed frequency test.

It seems that SDK (nrf connect 2.4) provides a sample for RF test (Direct Test Mode).

After adding my board in the "Direct Test Mode" project, I meet some build error:

Executing task: nRF Connect: Generate config erl_nrf5340_cpunet for /home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode 

Building direct_test_mode
/bin/sh -c west build --build-dir /home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/build_erl /home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode --pristine --board erl_nrf5340_cpunet --no-sysbuild -- -DNCS_TOOLCHAIN_VERSION:STRING="NONE" -DBOARD_ROOT:STRING="/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode" -DCONFIG_DTM_USB="y"

-- west build: generating a build system
Loading Zephyr default modules (Zephyr base).
-- Application: /home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode
-- CMake version: 3.20.5
-- Found Python3: /home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/toolchains/1f9b40e71a/usr/local/bin/python3.8 (found suitable exact version "3.8.2") found components: Interpreter 
-- Cache files will be written to: /home/bgorostidi/.cache/zephyr
-- Zephyr version: 3.3.99 (/home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/v2.4.0/zephyr)
-- Found west (found suitable version "1.0.0", minimum required is "0.7.1")
-- Board: erl_nrf5340_cpunet
-- Found host-tools: zephyr 0.16.0 (/home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/toolchains/1f9b40e71a/opt/zephyr-sdk)
-- Found toolchain: zephyr 0.16.0 (/home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/toolchains/1f9b40e71a/opt/zephyr-sdk)
-- Found Dtc: /home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/toolchains/1f9b40e71a/usr/bin/dtc (found suitable version "1.4.7", minimum required is "1.4.6") 
-- Found BOARD.dts: /home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/boards/arm/erl_nrf5340/erl_nrf5340_cpunet.dts
-- Found devicetree overlay: /home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/boards/erl_nrf5340_cpunet.overlay
-- Generated zephyr.dts: /home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/build_erl/zephyr/zephyr.dts
-- Generated devicetree_generated.h: /home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/build_erl/zephyr/include/generated/devicetree_generated.h
-- Including generated dts.cmake file: /home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/build_erl/zephyr/dts.cmake
Parsing /home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/Kconfig
Loaded configuration '/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/boards/arm/erl_nrf5340/erl_nrf5340_cpunet_defconfig'
Merged configuration '/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/prj.conf'
Merged configuration '/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/boards/erl_nrf5340_cpunet.conf'
Merged configuration '/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/build_erl/zephyr/misc/generated/extra_kconfig_options.conf'
Configuration saved to '/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/build_erl/zephyr/.config'
Kconfig header saved to '/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/build_erl/zephyr/include/generated/autoconf.h'

warning: Experimental symbol DTM_USB is enabled.

-- Found GnuLd: /home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/toolchains/1f9b40e71a/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd (found version "2.38") 
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/toolchains/1f9b40e71a/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
CMake Error at /home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/v2.4.0/nrf/cmake/multi_image.cmake:199 (message):
  No board specified for domain 'CPUAPP'.  This configuration is typically
  defined in
  /home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/boards/arm/erl_nrf5340/Kconfig
Call Stack (most recent call first):
  /home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/v2.4.0/nrf/cmake/multi_image.cmake:169 (add_child_image_from_source)
  /home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/v2.4.0/nrf/samples/CMakeLists.txt:56 (add_child_image)


-- Configuring incomplete, errors occurred!
See also "/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/build_erl/CMakeFiles/CMakeOutput.log".
See also "/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/build_erl/CMakeFiles/CMakeError.log".
FATAL ERROR: command exited with status 1: /home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/toolchains/1f9b40e71a/usr/local/bin/cmake -DWEST_PYTHON=/home/bgorostidi/Workspace/Toolchains/nrfConnect_SDK/toolchains/1f9b40e71a/usr/local/bin/python3.8 -B/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode/build_erl -GNinja -DBOARD=erl_nrf5340_cpunet -DNCS_TOOLCHAIN_VERSION:STRING=NONE -DBOARD_ROOT:STRING=/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode -DCONFIG_DTM_USB=y -S/home/bgorostidi/Workspace/Projects/Iot/nrf53_test/direct_test_mode

 *  The terminal process terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

My custom board has an UART0  (only TX) for debug and USB capability.

Best regards.

8132.direct_test_mode.zip

Parents Reply Children
  • Thanks for confirming, but then I don't understand how the nRF USB exposes multiple ACM ports. Have you tried to program the FW built for the 'nrf5340dk_nrf5340_cpunet' target to your custom board to see if that works? You can edit the board overlays if it is necessary to change the pinout.

    VS Code settings for building the nRF5340 DK with FEM enabled and USB activated in the remote shell app:

    benoit.gorostidi said:
    I thought that Remote shell app was builded/flashed in the same time due to the CONFIG_NCS_SAMPLE_REMOTE_SHELL_CHILD_IMAGE

    Yes, it should. But the remote shell app should only expose one COM port on the nRF USB interface.

  • Device tree of my board provides 3 ACM ports. But in fact, 4 ports appears on host.

    So, I removed all the ACM ports on my device tree and lets the conf/remote_shell/usb.dts enable 1 port.

      zephyr_udc0: &usbd {
     	 compatible = "nordic,nrf-usbd";
     	 status = "okay";
     
    // 	 cdc_acm_uart0: cdc_acm_uart0 {
    // 		 compatible = "zephyr,cdc-acm-uart";
    // 	 };
     
    // 	 cdc_acm_uart1: cdc_acm_uart1 {
    // 		 compatible = "zephyr,cdc-acm-uart";
    // 	 };
    
    // 	 cdc_acm_uart2: cdc_acm_uart2 {
    // 		compatible = "zephyr,cdc-acm-uart";
    // 	 };
      };
    

    After this change, only 1 port appears on host and "Direct Test Mode" desktop app can drive the cpunet.

    Many thanks for your help.

Related