Setting nrf700x-coex ble-WiFi brings error

Hi All,

I am trying to add the BLE Wifi Coexistence on the nrf7002DK to my project by following this.
I am simply adding this to the overlay

/ {
    nrf_radio_coex: nrf7002-coex {
       status = "okay";
       compatible = "nordic,nrf700x-coex";
       req-gpios =     <&gpio0 24 (GPIO_ACTIVE_HIGH)>;
       status0-gpios = <&gpio0 14 (GPIO_ACTIVE_HIGH)>;
       grant-gpios =   <&gpio0 25 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
 };
};
and this to prj.conf : 
CONFIG_MPSL_CX=y
CONFIG_MPSL_CX_NRF700X=y
As soon as I am doing this two changes some errors appear, here's the logs : 
nrf_wifi_fw_load: nrf_wifi_fmac_fw_load failed
[00:00:11.091,888] <err> wifi_nrf: nrf_wifi_hal_fw_chk_boot: Boot_sig check failed for RPU(0), Expected: 0x5A5A5A5A, Actual: 0x88888888

[00:00:11.091,979] <err> wifi_nrf: nrf_wifi_fmac_fw_load: LMAC ROM boot check failed

[00:00:11.096,343] <err> wifi_nrf: nrf_wifi_fmac_dev_add_zep: nrf_wifi_fw_load failed

[00:00:11.096,374] <err> wifi_nrf: nrf_wifi_if_init_zep: nrf_wifi_fmac_dev_add_zep failed

[00:00:11.097,015] <err> wifi_nrf: nrf_wifi_if_start_zep: Invalid MAC address: <unknown>

[00:00:11.103,881] <inf> fs_nvs: 2 Sectors of 4096 bytes
[00:00:11.103,881] <inf> fs_nvs: alloc wra: 0, fe8
[00:00:11.103,912] <inf> fs_nvs: data wra: 0, 0
*** Booting nRF Connect SDK v2.5.0 ***
[00:00:11.206,512] <err> nrf_rpc_ipc: IPC endpoint bond timeout
[00:00:11.206,542] <err> NRF_RPC: Failed to initialize transport, err: -32
[00:00:12.206,665] <err> NRF_RPC: Not all groups are ready to use.
[00:00:12.206,726] <inf> net_config: Initializing network
[00:00:12.206,756] <inf> net_config: Waiting interface 1 (0x200017d0) to be up...
[00:00:42.207,763] <inf> net_config: IPv4 address: 192.165.100.150
[00:00:42.207,824] <inf> net_config: Running dhcpv4 client...
[00:00:42.208,160] <err> net_config: Timeout while waiting network interface
[00:00:42.208,190] <err> net_config: Network initialization failed (-115)
[00:00:42.209,259] <inf> ble_module: State: STATE_INIT
[00:00:42.210,357] <inf> ui_module: Registrated Button 0
[00:00:42.210,418] <inf> wifi_module: State: STATE_INIT
[00:00:42.211,090] <err> net_sock: invalid access on sock 536960896 by thread 0x20001c48
[00:00:42.211,120] <inf> wifi_module: State: STATE_RUNNING
[00:00:42.225,006] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:42.225,036] <inf> bt_hci_core: HW Variant: nRF53x (0x0003)
[00:00:42.225,067] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 197.47763 Build 2370639017
[00:00:42.310,577] <inf> bt_hci_core: No ID address. App must call settings_load()
[00:00:42.310,607] <inf> ble_module: Wi-Fi provisioning service starts successfully.

[00:00:42.311,859] <inf> bt_hci_core: Identity: D8:02:D1:80:10:C0 (random)
[00:00:42.311,889] <inf> bt_hci_core: HCI: version 5.4 (0x0d) revision 0x2102, manufacturer 0x0059
[00:00:42.311,920] <inf> bt_hci_core: LMP: version 5.4 (0x0d) subver 0x2102
[00:00:42.333,557] <inf> ble_module: settings_load() return code 0
[00:00:42.339,721] <inf> ui_module: ble_status_msg processed by CALLBACK ble_channel_cb: ble_central_status = 1

[00:00:42.339,752] <inf> ui_module: ble_status_msg processed by CALLBACK ble_channel_cb: ble_peripheral_status = 1

[00:00:42.339,782] <inf> ble_module: State: STATE_RUNNING

Do you know why? What am I doing wrong?

Thank you,
Sylvain
  • Hi

    First thing's first, can you make sure P22 and P23 headers on the DK has jumpers on them, as this has been the issue when seeing this in the past.

    Another common issue that will result in logs like this is if you haven't enabled the read/write access for the OTP memory locations in your nRF7002, please follow the OTP memory programming section of our Device Commissioning and Characterization application note available here to write a MAC address and set the OTP memory to protected state afterwards before usage.

    Best regards,

    Simon

  • Hi Simon,

    Yes the DK has the P22-P23 headers has jumpers.

    I just followed the OTP memory programming section, heres the logs: 

    uart:~$ wifi_radio_ficr_prog otp_write_params 0x100 0x50FA50FA
    OTP Region is open for R/W

    Finished Writing OTP params
    [00:00:27.209,320] <inf> otp_prog: Written REGION_PROTECT0 (0x100) : 0x50fa50fa

    [00:00:27.209,350] <inf> otp_prog: Written REGION_PROTECT1 (0x104) : 0x50fa50fa

    [00:00:27.209,350] <inf> otp_prog: Written REGION_PROTECT2 (0x108) : 0x50fa50fa

    [00:00:27.209,381] <inf> otp_prog: Written REGION_PROTECT3 (0x10c) : 0x50fa50fa

    uart:~$

    *** Booting nRF Connect SDK v2.5.0 ***
    uart:~$ wifi_radio_ficr_prog otp_read_params
    OTP Region is open for R/W

    PRODTEST.FT.PROGVERSION = 0xff0200ff

    PRODTEST.TRIM0 = 0x0099040b
    PRODTEST.TRIM1 = 0x0099d407
    PRODTEST.TRIM2 = 0x0099d807
    PRODTEST.TRIM3 = 0x009f040c
    PRODTEST.TRIM4 = 0x009fd408
    PRODTEST.TRIM5 = 0x009fd808
    PRODTEST.TRIM6 = 0xffffffff
    PRODTEST.TRIM7 = 0xffffffff
    PRODTEST.TRIM8 = 0xffffffff
    PRODTEST.TRIM9 = 0xffffffff
    PRODTEST.TRIM10 = 0xffffffff
    PRODTEST.TRIM11 = 0xffffffff
    PRODTEST.TRIM12 = 0xffffffff
    PRODTEST.TRIM13 = 0xffffffff
    PRODTEST.TRIM14 = 0xffffffff

    INFO.PART = 0x00007002
    INFO.VARIANT = 0x00423030

    INFO.UUID0 = 0xc468fd02
    INFO.UUID1 = 0x11ed7d66
    INFO.UUID2 = 0x75a701cc
    INFO.UUID3 = 0x02f0c3ce

    REGION.PROTECT0 = 0x50fa50fa
    REGION.PROTECT1 = 0x50fa50fa
    REGION.PROTECT2 = 0x50fa50fa
    REGION.PROTECT3 = 0x50fa50fa

    MAC0.ADDRESS0 = 0x0036cef4
    MAC0.ADDRESS1 = 0x0000dc17
    MAC0.ADDRESS = f4:ce:36:00:17:dc

    MAC1.ADDRESS0 = 0x0036cef4
    MAC1.ADDRESS1 = 0x0000dd17
    MAC1.ADDRESS = f4:ce:36:00:17:dd

    CALIB.XO = 0x29
    REGION_DEFAULTS = 0xfffffff1

    uart:~$ wifi_radio_ficr_prog otp_write_params 0x100 0x00000000
    OTP Region is open for R/W

    Finished Writing OTP params
    [00:02:47.825,988] <inf> otp_prog: Written REGION_PROTECT0 (0x100) : 0x0000

    [00:02:47.826,019] <inf> otp_prog: Written REGION_PROTECT1 (0x104) : 0x0000

    [00:02:47.826,019] <inf> otp_prog: Written REGION_PROTECT2 (0x108) : 0x0000

    [00:02:47.826,049] <inf> otp_prog: Written REGION_PROTECT3 (0x10c) : 0x0000

    -

    -

    -

    -

    -

    And if after I go back to my code I still have the issue: 

    nrf_wifi_fw_load: nrf_wifi_fmac_fw_load failed
    [00:00:11.287,322] <err> wifi_nrf: nrf_wifi_hal_fw_chk_boot: Boot_sig check failed for RPU(0), Expected: 0x5A5A5A5A, Actual: 0x88888888

    [00:00:11.287,414] <err> wifi_nrf: nrf_wifi_fmac_fw_load: LMAC ROM boot check failed

    [00:00:11.291,809] <err> wifi_nrf: nrf_wifi_fmac_dev_add_zep: nrf_wifi_fw_load failed

    [00:00:11.291,809] <err> wifi_nrf: nrf_wifi_if_init_zep: nrf_wifi_fmac_dev_add_zep failed

    [00:00:11.292,449] <err> wifi_nrf: nrf_wifi_if_start_zep: Invalid MAC address: <unknown>

    [00:00:11.299,713] <inf> fs_nvs: 2 Sectors of 4096 bytes
    [00:00:11.299,743] <inf> fs_nvs: alloc wra: 0, fe8
    [00:00:11.299,743] <inf> fs_nvs: data wra: 0, 0
    *** Booting nRF Connect SDK v2.5.0 ***
    [00:00:11.402,343] <err> nrf_rpc_ipc: IPC endpoint bond timeout
    [00:00:11.402,374] <err> NRF_RPC: Failed to initialize transport, err: -32
    [00:00:12.402,496] <err> NRF_RPC: Not all groups are ready to use.
    [00:00:12.402,557] <inf> net_config: Initializing network
    [00:00:12.402,587] <inf> net_config: Waiting interface 1 (0x200017d0) to be up...
    [00:00:42.403,594] <inf> net_config: IPv4 address: 192.165.100.150
    [00:00:42.403,656] <inf> net_config: Running dhcpv4 client...
    [00:00:42.403,991] <err> net_config: Timeout while waiting network interface
    [00:00:42.404,022] <err> net_config: Network initialization failed (-115)
    [00:00:42.405,090] <inf> ble_module: State: STATE_INIT
    [00:00:42.406,219] <inf> ui_module: Registrated Button 0
    [00:00:42.406,250] <inf> wifi_module: State: STATE_INIT
    [00:00:42.406,921] <err> net_sock: invalid access on sock 536960896 by thread 0x20001c48
    [00:00:42.406,982] <inf> wifi_module: State: STATE_RUNNING
    [00:00:42.420,837] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
    [00:00:42.420,898] <inf> bt_hci_core: HW Variant: nRF53x (0x0003)
    [00:00:42.420,928] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 197.47763 Build 2370639017
    [00:00:42.506,500] <inf> bt_hci_core: No ID address. App must call settings_load()
    [00:00:42.506,530] <inf> ble_module: Wi-Fi provisioning service starts successfully.

    [00:00:42.507,751] <inf> bt_hci_core: Identity: D8:02:D1:80:10:C0 (random)
    [00:00:42.507,781] <inf> bt_hci_core: HCI: version 5.4 (0x0d) revision 0x2102, manufacturer 0x0059
    [00:00:42.507,812] <inf> bt_hci_core: LMP: version 5.4 (0x0d) subver 0x2102
    [00:00:42.529,327] <inf> ble_module: settings_load() return code 0
    [00:00:42.535,522] <inf> ui_module: ble_status_msg processed by CALLBACK ble_channel_cb: ble_central_status = 1

    [00:00:42.535,522] <inf> ui_module: ble_status_msg processed by CALLBACK ble_channel_cb: ble_peripheral_status = 1

    [00:00:42.535,583] <inf> ble_module: State: STATE_RUNNING

    Best regards,

    Sylvain

  • Hmm, that's strange. Does it also occur if you power the DK off and on with the power switch? I've seen this been a fix in the past at least. What revision of the nRF7002 DK are you using? You can try setting CONFIG_NRF700X_REV_A=n in your prj.conf file if it isn't already (I think it should be by default). 

    Best regards,

    Simon

  • Hi Simon,

    I tried to power off with the switch but it did not solved it.
    I am using the PCA10143 (1.0.2), the symbol CONFIG_NRF700X_REV_A is unknown so I can't set it. 

    Thank you,

    Sylvain

  • Hi Sylvain

    With that version of the DK NCS 2.5.0 should by default build for that chip revision, so that shouldn't be the issue. Can you send a (high-res) picture of your DK, and some information on how you're posing it and what the switches on the DK is set to?

    The error messages you get is telling you that you're not able to communicate correctly with the nRF7002 chip for some reason, so I just want to see that the DK seems to be correctly set up.

    Best regards,

    Simon

Related