NCS v2.7.0 Matter samples with nRF5340-DK and nRF7002-DK don't work

SDK v2.7.0

nRF5340-DK with nRF7002-EK

Matter samples (e.g. light bulb)

Extra CMake arguments: -DSHIELD=nrf7002ek

Use sysbuild

uart:~$ *** Booting My Application v2.7.0 - unknown commit ***
*** Using nRF Connect SDK v2.7.0-5cb85570ca43 ***
*** Using Zephyr OS v3.6.99-100befc70c74 ***
I: 205 [DL]BLE address: D6:07:18:E7:02:AB
E: Endpoint binding failed with -11
E: HCI driver open failed (-11)
E: 1216 [DL]BLEManager initialization failed: 200000b
E: PlatformMgr().InitChipStack() failed [Error: 0]
E: Exited with code 200000b

Tested with v2.6.2 (no sysbuild), and it works. Seems to be an issue with v2.7.0.

Parents
  • Hi,

    Can you share how you program the device and which version of nrfjprog you have installed? You can find the version by running the command nrfjprog --version in a terminal.

    I get the same error as you if I only program the merged.hex file and not the merged_CPUNET.hex in addition (tested with the nRF Programmer app). If you program the device using the VS Code extension or west flash on the command line, both images should be included.

    Best regards,
    Marte

  • I am using the VS Code extension for the whole process. CPUNET image seems to be programmed too. Flash task output (redacted because trying to post the whole thing gives an unknwon error):

     *  Executing task: nRF Connect: Flash: light_bulb/build_nrf5340dk_nrf7002ek (active)

    Flashing build_nrf5340dk_nrf7002ek to 1050043654

    WARNING: Specifying runner options for multiple domains is experimental.
    If problems are experienced, please specify a single domain using '--domain <domain>'
    -- west flash: using runner nrfjprog
    -- runners.nrfjprog: reset after flashing requested
    -- runners.nrfjprog: Flashing file: merged_CPUNET.hex
    [ #################### ]  12.836s | Erase file - Done erasing                                                          
    [ #################### ]   1.405s | Program file - Done programming                                                    
    [ #################### ]   1.417s | Verify file - Done verifying                                                       
    Applying pin reset.
    -- runners.nrfjprog: Board with serial number 1050043654 flashed successfully.
    -- west flash: using runner nrfjprog
    -- runners.nrfjprog: reset after flashing requested
    -- runners.nrfjprog: Flashing file: merged.hex
    [ #################### ]  43.346s | Erase file - Done erasing                                                          
    [ #################### ]   6.546s | Program file - Done programming                                                    
    [ #################### ]   6.635s | Verify file - Done verifying                                                       
    Applying pin reset.
    -- runners.nrfjprog: Board with serial number 1050043654 flashed successfully.
     *  Terminal will be reused by tasks, press any key to close it.

  • Hi,

    I was able to reproduce the issue with the nRF5340 DK and nRF7002 EK. I am still investigating this and will get back to you.

    Best regards,
    Marte

  • Hi,

    In v2.7.0 you need to manually set SB_CONFIG_WIFI_NRF700X=y, either in sysbuild.conf or in the build command:

    west build -b nrf5340dk/nrf5340/cpuapp -- -DSB_CONFIG_WIFI_NRF700X=y

    This seems to be due to sysbuild, as sysbuild cannot make an "if-statement" based on shields, only based on the SoC. Since the nRF5340 is used for both Thread and Wi-Fi, SB_CONFIG_WIFI_NRF700X=y cannot automatically be set in this case.

    In future versions (v2.8.0) you do not need to include this, but you must specify the shield with -D<app>_SHIELD=... instead of simply SHIELD, for example:

    west build -b nrf5340dk/nrf5340/cpuapp -- -Dlock_SHIELD=nrf7002ek

    This is only the case for the Matter samples, and not for samples that are Wi-Fi only.

    Please note that some of the Matter samples do not support the nRF7002 EK out of the box. You can see if a sample supports it in the requirement section of the sample's documentation.

    Best regards,
    Marte

Reply
  • Hi,

    In v2.7.0 you need to manually set SB_CONFIG_WIFI_NRF700X=y, either in sysbuild.conf or in the build command:

    west build -b nrf5340dk/nrf5340/cpuapp -- -DSB_CONFIG_WIFI_NRF700X=y

    This seems to be due to sysbuild, as sysbuild cannot make an "if-statement" based on shields, only based on the SoC. Since the nRF5340 is used for both Thread and Wi-Fi, SB_CONFIG_WIFI_NRF700X=y cannot automatically be set in this case.

    In future versions (v2.8.0) you do not need to include this, but you must specify the shield with -D<app>_SHIELD=... instead of simply SHIELD, for example:

    west build -b nrf5340dk/nrf5340/cpuapp -- -Dlock_SHIELD=nrf7002ek

    This is only the case for the Matter samples, and not for samples that are Wi-Fi only.

    Please note that some of the Matter samples do not support the nRF7002 EK out of the box. You can see if a sample supports it in the requirement section of the sample's documentation.

    Best regards,
    Marte

Children
Related