nRF7002 with nRF54 custom board issues

Hey everyone,

I have designed a custom board with a bunch of nordic IC's (nRF54L15, nRF9151, nRF7002 & nPM1300)

I have tested the basic functionality so far, including Hello World and Blink via npm.

Also bit more advanced so SLM on the nrf9151 is working with external UART (haven't tested from nRF54 on board) and Basic Bluetooth is working with connection to nrf app and connection stay stable.

My next step is to test the basic functions of the nRF7002, but I have hit an issue here.

I have tried the nRF54 with both WiFi: Scan sample and WiFi: Shell. both seem to be running into the same issue related to wifi_nrf_bus: Error: RDSR2 failed

Here is the log output of the Scan sample:

00> [00:03:40.180,219] <inf> wifi_nrf_bus: SPIM spi@c8000: freq = 8 MHz
00> [00:03:40.180,245] <inf> wifi_nrf_bus: SPIM spi@c8000: latency = 0
00> [00:03:40.191,820] <err> wifi_nrf_bus: RPU wakeup write ACK failed even after 10ms
00> [00:03:40.191,827] <err> wifi_nrf_bus: Error: RDSR2 failed
00> [00:03:40.191,845] <err> wifi_nrf: zep_shim_bus_qspi_dev_add: RPU enable failed with error -1
00> [00:03:40.191,887] <err> wifi_nrf: nrf_wifi_bus_qspi_dev_add: nrf_wifi_osal_bus_qspi_dev_add failed
00> [00:03:40.191,929] <err> wifi_nrf: nrf_wifi_bal_dev_add: Bus dev_add failed
00> [00:03:40.191,973] <err> wifi_nrf: nrf_wifi_sys_hal_dev_add: nrf_wifi_bal_dev_add failed
00> [00:03:40.192,047] <err> wifi_nrf: nrf_wifi_sys_fmac_dev_add: nrf_wifi_sys_hal_dev_add failed
00> [00:03:40.192,069] <err> wifi_nrf: nrf_wifi_fmac_dev_add_zep: nrf_wifi_fmac_dev_add failed
00> *** Booting nRF Connect SDK v3.0.1-9eb5615da66b ***
00> Starting nrf54l15dk with CPU frequency: 128 MHz
00> [00:03:44.192,314] <err> wifi_nrf: nrf_wifi_if_stop_zep: rpu_ctx_zep is NULL
00> [00:03:44.194,682] <inf> wifi_nrf_bus: SPIM spi@c8000: freq = 8 MHz
00> [00:03:44.194,696] <inf> wifi_nrf_bus: SPIM spi@c8000: latency = 0
00> [00:03:44.206,251] <err> wifi_nrf_bus: RPU wakeup write ACK failed even after 10ms
00> [00:03:44.206,259] <err> wifi_nrf_bus: Error: RDSR2 failed
00> [00:03:44.206,276] <err> wifi_nrf: zep_shim_bus_qspi_dev_add: RPU enable failed with error -1
00> [00:03:44.206,318] <err> wifi_nrf: nrf_wifi_bus_qspi_dev_add: nrf_wifi_osal_bus_qspi_dev_add failed
00> [00:03:44.206,360] <err> wifi_nrf: nrf_wifi_bal_dev_add: Bus dev_add failed
00> [00:03:44.206,404] <err> wifi_nrf: nrf_wifi_sys_hal_dev_add: nrf_wifi_bal_dev_add failed
00> [00:03:44.206,497] <err> wifi_nrf: nrf_wifi_sys_fmac_dev_add: nrf_wifi_sys_hal_dev_add failed
00> [00:03:44.206,520] <err> wifi_nrf: nrf_wifi_fmac_dev_add_zep: nrf_wifi_fmac_dev_add failed
00> [00:03:44.206,533] <err> wifi_nrf: nrf_wifi_if_start_zep: nrf_wifi_fmac_dev_add_zep failed
00> [00:03:44.206,568] <inf> scan: OTP not programmed, proceeding with local MAC: F6:CE:36:00:00:01
00> [00:03:44.206,583] <err> wifi_nrf: nrf_wifi_disp_scan_zep: Interface not UP
00> [00:03:44.206,589] <err> scan: Scan request failed

And here is that of the Wifi Shell sample

00> 
00> mosh:~$ --- 8 messages dropped ---
00> [00:31:26.504,385] <err> wifi_nrf: nrf_wifi_sys_fmac_dev_add: nrf_wifi_sys_hal_dev_add failed
00> mosh:~$ [00:31:26.504,403] <err> wifi_nrf: nrf_wifi_fmac_dev_add_zep: nrf_wifi_fmac_dev_add failed
00> mosh:~$ [00:31:26.504,420] <err> wifi_nrf: nrf_wifi_if_start_zep: nrf_wifi_fmac_dev_add_zep failed
00> mosh:~$ [00:31:26.506,336] <inf> fs_nvs: 2 Sectors of 4096 bytes
00> mosh:~$ [00:31:26.506,342] <inf> fs_nvs: alloc wra: 0, fd0
00> mosh:~$ [00:31:26.506,347] <inf> fs_nvs: data wra: 0, 0
00> mosh:~$ *** Booting nRF Connect SDK v3.0.1-9eb5615da66b ***
00> mosh:~$ *** Using Zephyr OS v4.0.99-77f865b8f8d0 ***
00> mosh:~$ Starting nrf54l15dk with CPU frequency: 128 MHz
00> mosh:~$ [00:31:26.507,243] <inf> wifi_supplicant: wpa_supplicantmosh:~$ 
  < wifi scan
00> wifi scan
00> Scan request failed
00> mosh:~$ [00:31:34.471,778] <err> wifi_nrf: nrf_wifi_disp_scan_zep: Interface not UP
00> mosh:~$ mosh:~$ 

The VDDIO is power by 3V3 (measured 3.44V)

The VBAT is currently being emulated by a PPK II (3.76V)

I have followed the reference circuitry for the nRF7002-CEAA and nRF54L15-CAAA

I am also seeing some strange noise right after I reset the nrf54l15 and its is probably trying to initiate the nrf7002

In the image below you see the voltage on the VDD_BUCK Line

And I see something similar on the PWRIOVDD line:

I am not sure where to start debugging here, software or hardware. I hope someone can help me out.

I also double checked pinouts on the schematic vs overlay and they are the same too with no pin conflicts.

  • Okay, we've got some progress!  I changed to SPI00. Now I have the WiFi-Scan sample working for the first scan, but I'm experiencing some issues. (expect for once where it kept working (1/8 tests)

    Most of the time, the Wifi Scan Output is this:

    00> [00:49:38.350,074] <inf> wifi_nrf_bus: SPIM spi@4a000: freq = 8 MHz
    00> [00:49:38.350,104] <inf> wifi_nrf_bus: SPIM spi@4a000: latency = 0
    00> [00:49:38.420,419] <inf> wifi_nrf: nrf_wifi_fmac_otp_mac_addr_get: MAC addr not programmed in OTP
    00> [00:49:38.420,449] <err> wifi_nrf: nrf_wifi_get_mac_addr: Invalid MAC address: 00:00:00:00:00:00
    00> [00:49:38.420,463] <err> wifi_nrf: nrf_wifi_if_start_zep: Failed to get MAC address
    00> *** Booting nRF Connect SDK v3.0.1-9eb5615da66b ***
    00> *** Using Zephyr OS v4.0.99-77f865b8f8d0 ***
    00> Starting gst with CPU frequency: 128 MHz
    00> [00:49:39.420,900] <err> wifi_nrf: nrf_wifi_if_stop_zep: rpu_ctx_zep is NULL
    00> [00:49:39.423,290] <inf> wifi_nrf_bus: SPIM spi@4a000: freq = 8 MHz
    00> [00:49:39.423,305] <inf> wifi_nrf_bus: SPIM spi@4a000: latency = 0
    00> [00:49:39.613,018] <inf> scan: OTP not programmed, proceeding with local MAC: F6:CE:36:00:00:01
    00> Scan requested
    00> Num  | SSID                             (len) | Chan | RSSI | Security | BSSID
    00> 1    |                                  0     | 6    | -36  | WPA2-PSK | 7A:45:58:90:8F:96
    00> 2    | Internet of Things Lab           22    | 6    | -36  | WPA2-PSK | 78:45:58:D0:8F:96
    00> 3    | Gyromotics 2-1                   14    | 1    | -48  | WPA2-PSK | C0:C1:C0:F4:DD:98
    00> 4    | HyER=                            5     | 2    | -53  | WPA2-PSK | A2:64:CF:D7:EC:80
    00> 5    |                                  0     | 2    | -55  | WPA2-PSK | A2:64:CF:D7:EC:81
    00> 6    | DIRECT-3L-EPSON-ET-4700 Series   30    | 1    | -56  | WPA2-PSK | 52:57:9C:95:4F:8A
    00> 7    | Fluxthor                         8     | 1    | -59  | WPA-PSK | 64:64:4A:25:B5:AB
    00> 8    | DIRECT-76-HP M234 LaserJet       26    | 11   | -62  | WPA2-PSK | EE:91:61:80:E9:76
    00> 9    | CiWi-Fi-B0.01                    13    | 1    | -62  | WPA2-PSK | 78:45:58:60:69:F9
    00> 10   | Flexplekken                      11    | 11   | -63  | WPA2-PSK | F6:55:A8:1E:55:78
    00> 11   | eduroam                          7     | 11   | -63  | EAP-TLS | EE:55:A8:1E:55:78
    00> 12   |                                  0     | 11   | -64  | WPA2-PSK-SHA256 | DA:55:A8:1E:55:78
    00> 13   | AG-84fce6076504                  15    | 1    | -64  | OPEN  | 84:FC:E6:07:65:05
    00> 14   | LYLA                             4     | 11   | -65  | WPA-PSK | B0:BE:76:1A:A4:BB
    00> 15   | LYLA-gast                        9     | 11   | -65  | WPA-PSK | B6:BE:76:1A:A4:BC
    00> 16   | ADI-WLAN                         8     | 8    | -65  | WPA2-PSK | C2:BF:B8:4B:9F:C1
    00> 17   | Hypersoniq                       10    | 7    | -65  | WPA2-PSK | AC:15:A2:92:F8:AB
    00> 18   | VEMS                             4     | 10   | -66  | WPA2-PSK | 20:97:27:1B:24:90
    00> 19   | DeNoize                          7     | 8    | -66  | WPA-PSK | 98:DA:C4:97:BB:17
    00> 20   | ASUS                             4     | 2    | -69  | OPEN  | 04:92:26:3A:D5:A0
    00> 21   | DIRECT-7E-HP OfficeJet Pro 7740  31    | 8    | -70  | WPA2-PSK | 9E:7B:EF:5C:0E:7E
    00> 22   | GeoBirds                         8     | 3    | -70  | WPA2-PSK | CC:2D:21:24:C7:71
    00> 23   | GA-BASF-AP                       10    | 1    | -72  | WPA2-PSK | 20:43:A8:4C:12:9D
    00> 24   | Basecamp                         8     | 5    | -73  | WPA2-PSK | CC:40:D0:7A:33:B1
    00> 25   | Ontzorgd                         8     | 5    | -74  | WPA2-PSK | 30:68:93:ED:7F:27
    00> 26   | eduroam                          7     | 6    | -81  | EAP-TLS | EE:55:A8:1E:55:6F
    00> 27   | YES!Delft Guest                  15    | 6    | -81  | OPEN  | E2:55:A8:1E:55:6F
    00> 28   | YES!Delft                        9     | 6    | -82  | WPA2-PSK | E4:55:A8:1E:55:6F
    00> 29   |                                  0     | 40   | -88  | WPA2-PSK | 7A:45:58:A0:8F:97
    00> 30   | Internet of Things Lab           22    | 40   | -89  | WPA2-PSK | 78:45:58:D0:8F:97
    00> 31   |                                  0     | 40   | -89  | WPA2-PSK | 7A:45:58:90:8F:97
    00> Scan request done
    00> Scan requested
    00> [00:50:14.250,808] <inf> wifi_nrf: nrf_wifi_disp_scan_zep: Scan already in progress
    00> [00:50:14.250,832] <err> scan: Scan request failed
    00> [00:50:24.250,520] <err> scan: Scan request failed (-116)
    00> Scan requested
    00> [00:50:34.254,047] <inf> wifi_nrf: nrf_wifi_disp_scan_zep: Scan already in progress
    00> [00:50:34.254,072] <err> scan: Scan request failed
    00> [00:50:44.254,174] <inf> wifi_nrf: nrf_wifi_disp_scan_zep: Scan already in progress
    00> [00:50:44.254,199] <err> scan: Scan request failed

    Together with this one, I also captured the power profiler output:

    With the WiFi shell, I get a set of new errors now, and I cannot perform a wifi scan because interface is not up

    00> kernel reboot
    00> 
    00> mosh:~$ [00:20:41.241,974] <inf> wifi_nrf_bus: SPIM spi@4a000: freq = 8 MHz
    00> mosh:~$ [00:20:41.241,992] <inf> wifi_nrf_bus: SPIM spi@4a000: latency = 0
    00> mosh:~$ [00:20:41.355,036] <inf> wifi_nrf: Configuring SLEEP CTRL GPIO control register
    00> 
    00> mosh:~$ [00:20:41.364,818] <inf> wifi_nrf: nrf_wifi_fmac_otp_mac_addr_get: MAC addr not programmed in OTP
    00> mosh:~$ [00:20:41.364,847] <err> wifi_nrf: nrf_wifi_get_mac_addr: Invalid MAC address: 00:00:00:00:00:00
    00> mosh:~$ [00:20:41.364,860] <err> wifi_nrf: nrf_wifi_if_start_zep: Failed to get MAC address
    00> mosh:~$ [00:20:41.367,391] <inf> fs_nvs: 2 Sectors of 4096 bytes
    00> mosh:~$ [00:20:41.367,397] <inf> fs_nvs: alloc wra: 0, fd0
    00> mosh:~$ [00:20:41.367,402] <inf> fs_nvs: data wra: 0, 0
    00> mosh:~$ *** Booting nRF Connect SDK v3.0.1-9eb5615da66b ***
    00> mosh:~$ *** Using Zephyr OS v4.0.99-77f865b8f8d0 ***
    00> mosh:~$ Starting gst with CPU frequency: 128 MHz
    00> mosh:~$ [00:20:41.368,212] <inf> wifi_supplicant: wpa_supplicant initialized
    00> mosh:~$ [00:20:41.369,560] <err> wifi_nrf: nrf_wifi_wpa_supp_set_key: rpu_ctx_zep is NULL
    00> mosh:~$ [00:20:41.369,599] <err> wpa_supp: _wpa_drv_zep_set_key: set_key op failed
    00> mosh:~$ [00:20:41.369,629] <err> wifi_nrf: nrf_wifi_wpa_supp_set_key: rpu_ctx_zep is NULL
    00> mosh:~$ [00:20:41.369,660] <err> wpa_supp: _wpa_drv_zep_set_key: set_key op failed
    00> mosh:~$ [00:20:41.369,690] <err> wifi_nrf: nrf_wifi_wpa_supp_set_key: rpu_ctx_zep is NULL
    00> mosh:~$ [00:20:41.369,721] <err> wpa_supp: _wpa_drv_zep_set_key: set_key op failed
    00> mosh:~$ [00:20:41.369,751] <err> wifi_nrf: nrf_wifi_wpa_supp_set_key: rpu_ctx_zep is NULL
    00> mosh:~$ [00:20:41.369,782] <err> wpa_supp: _wpa_drv_zep_set_key: set_key op failed
    00> mosh:~$ [00:20:41.369,812] <err> wifi_nrf: nrf_wifi_wpa_supp_set_key: rpu_ctx_zep is NULL
    00> mosh:~$ [00:20:41.369,843] <err> wpa_supp: _wpa_drv_zep_set_key: set_key op failed
    00> mosh:~$ [00:20:41.369,872] <err> wifi_nrf: nrf_wifi_wpa_supp_set_key: rpu_ctx_zep is NULL
    00> mosh:~$ [00:20:41.369,904] <err> wpa_supp: _wpa_drv_zep_set_key: set_key op failed
    00> mosh:~$ mosh:~$ mosh:~$ 

    Lastly, I also reran the bustest with this output:

    00> *** Booting nRF Connect SDK v3.0.1-9eb5615da66b ***
    00> *** Using Zephyr OS v4.0.99-77f865b8f8d0 ***
    00> Running TESTSUITE bustest_suite
    00> ===================================================================
    00> D: GPIO configuration done...
    00> 
    00> D: Bucken = 1, IOVDD = 1
    00> I: SPIM spi@4a000: freq = 8 MHz
    00> I: SPIM spi@4a000: latency = 0
    00> D: Written 0x1 to WRSR2
    00> D: err: 0 -> 0 1 1 1 1 1
    00> D: RDSR2 = 0x1
    00> D: err: 0 -> 0 0 0 0 0 0
    00> D: RDSR1 = 0x0
    00> D: err: 0 -> 0 0 0 0 0 0
    00> D: RDSR1 = 0x0
    00> D: err: 0 -> 0 0 0 0 0 0
    00> D: RDSR1 = 0x0
    00> D: err: 0 -> 0 0 0 0 0 0
    00> D: RDSR1 = 0x0
    00> D: err: 0 -> 0 2 2 2 2 2
    00> D: RDSR1 = 0x2
    00> D: RPU Clocks ON...
    00> I: Wi-Fi ON done
    00> START - test_dataram
    00>  PASS - test_dataram in 0.009 seconds
    00> ===================================================================
    00> START - test_peripbus
    00>  PASS - test_peripbus in 0.001 seconds
    00> ===================================================================
    00> START - test_sysbus
    00>  PASS - test_sysbus in 0.001 seconds
    00> ===================================================================
    00> TESTSUITE bustest_suite s

  • Hi, 

    I see both sample logs have the following error message:

    00> mosh:~$ [00:20:41.364,818] <inf> wifi_nrf: nrf_wifi_fmac_otp_mac_addr_get: MAC addr not programmed in OTP
    00> mosh:~$ [00:20:41.364,847] <err> wifi_nrf: nrf_wifi_get_mac_addr: Invalid MAC address: 00:00:00:00:00:00

    You can refer to this post and this post to configure the MAC address. 

    If you're unsure about the validity of your MAC address, you may want to consult with your network administrator or refer to the IEEE guidelines for MAC address assignments.

    -Amanda H.

  • I think it is working consistently for now. It was likely related to the problem you mentioned but instead I used CONFIG_WIFI_RANDOM_MAC_ADDRESS, as I was unsure about which MAC address to assign to the OTP, since it is for development purposes for now. And the five times I have tried so far, it has kept working on both the shell and scan samples.

    On a side note:

    While I was testing with the radio_test sample (/nrf/samples/wifi/radio_test/single_domain) I was running into the issue that it could not find the path referenced in the Kconfig of the sample

    because of this error:

    /home/jack/ncs/v3.0.1/zephyr/scripts/kconfig/kconfig.py: /home/jack/Documents/GST-FW/single_domain_1/Kconfig:9: '/home/jack/Documents/GST-FW/single_domain_1/../../../../samples/peripheral/radio_test/Kconfig' not found (in 'rsource "../../../../samples/peripheral/radio_test/Kconfig"'). Check that environment variables are set correctly (e.g. $srctree, which is set to '/home/jack/ncs/v3.0.1/zephyr'). Also note that unset environment variables expand to the empty string.

    This is because the Kconfig uses a relative path: 

    rsource "../../../../samples/peripheral/radio_test/Kconfig"

    And this broke because I used the NRF Connect "create a new application" and "Copy a sample" steps, and put the code in another folder I use for projects.

    I fixed this by changing the path to:

    rsource "${ZEPHYR_BASE}/../nrf/samples/peripheral/radio_test/Kconfig"

    Not sure if this is worth changing, but something others might run into

Related