NRF7002 can scan and see 5GHz network, but can't connect to it

Hi, 

so, If I take the WiFi scan sample from the nrf/samples/wifi/scan folder, and flash it to my board, I can reliably see my created hotspots, no matter if they're 2.4GHz or 5GHz.... and I can connect to both instances of the hotspot with the nrf/samples/wifi/sta sample. So, I would say hardware is ok. But, my code in my project can reliably scan and "see" 5GHz network, but, I can only connect to the 2.4GHz instance of the hotspot.... 5GHz can see the network, and, when I try to connect, it say's the that the access point isn't found. 


[00:01:03.225,708] <inf> scan: 1    | test_hotspot                     12    | 11   | -21  | WPA2-PSK | 3E:6E:2D:12:E7:CC

[00:13:40.635,681] <inf> scan: 8    | test_hotspot                     12    | 161  | -51  | WPA2-PSK | E2:29:7A:21:D0:68



These are the logs from my app: 

[00:00:08.982,788] <inf> wifi_module: Wi‑Fi connection initiated to 'test_hotspot'
[00:00:15.006,744] <inf> wifi_module: Net event: 3512074243
[00:00:15.007,080] <err> wifi_module: Wi-Fi connection failed: access point not found.
[00:00:15.007,507] <inf> wifi_module: Attempting to send another WiFi connect request, retry number 1
[00:00:18.713,867] <inf> wifi_module: Wi‑Fi connection initiated to 'test_hotspot'
[00:00:24.737,396] <inf> wifi_module: Net event: 3512074243
[00:00:24.737,731] <err> wifi_module: Wi-Fi connection failed: access point not found.
[00:00:24.738,189] <inf> wifi_module: Attempting to send another WiFi connect request, retry number 2
[00:00:28.451,416] <inf> wifi_module: Wi‑Fi connection initiated to 'test_hotspot'
[00:00:34.475,372] <inf> wifi_module: Net event: 3512074243
[00:00:34.475,708] <err> wifi_module: Wi-Fi connection failed: access point not found.
[00:00:34.476,135] <wrn> wifi_module: Unsucessful connecting to the WiFi, failed 3 requests.


This is my prj.conf, can you please check and see if there' something that's not ok? I also embedded my code for connecting to the Wi-Fi....

#
# General config
#
CONFIG_REBOOT=y

# Logs - use RTT instead of UART...
CONFIG_LOG=y
#CONFIG_UART_CONSOLE=y
#CONFIG_LOG_BACKEND_UART=y
#CONFIG_UART_ASYNC_API=y
CONFIG_LOG_BACKEND_RTT_BUFFER_SIZE=16384
CONFIG_LOG_BACKEND_RTT=y
CONFIG_LOG_MODE_IMMEDIATE=y
CONFIG_USE_SEGGER_RTT=y
CONFIG_SEGGER_RTT_BUFFER_SIZE_UP=4096
CONFIG_SEGGER_RTT_BUFFER_SIZE_DOWN=4096
CONFIG_SEGGER_RTT_PRINTF_BUFFER_SIZE=1024

# device ID library
CONFIG_HW_ID_LIBRARY=y
CONFIG_HW_ID_LIBRARY_SOURCE_DEVICE_ID=y

# Re-enable this if shell is needed...
#CONFIG_SHELL=y
#CONFIG_SHELL_STACK_SIZE=6144

# Thread data - useful for stack overflows, etc...
CONFIG_THREAD_NAME=y
#CONFIG_THREAD_ANALYZER=y
#CONFIG_THREAD_ANALYZER_AUTO=y
#CONFIG_THREAD_ANALYZER_RUN_UNLOCKED=y

# Stack sizes
CONFIG_MAIN_STACK_SIZE=4096
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=16384

CONFIG_HEAP_MEM_POOL_SIZE=44240
CONFIG_HEAP_MEM_POOL_IGNORE_MIN=y
CONFIG_NRF_WIFI_DATA_HEAP_SIZE=40000

# this creates a lot of warnings, but better than patching the Zephyr source? 
CONFIG_COMPILER_OPT="-DMBEDTLS_ALLOW_PRIVATE_ACCESS"

# NVS and settings
CONFIG_NVS=y
CONFIG_SETTINGS=y
CONFIG_SETTINGS_NVS=y

# Link time optimisation - less flash needed
CONFIG_LTO=y
CONFIG_ISR_TABLES_LOCAL_DECLARATION=y
CONFIG_SIZE_OPTIMIZATIONS_AGGRESSIVE=y

# Kernel options
CONFIG_ENTROPY_GENERATOR=y

# SoC flash
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_FLASH=y
CONFIG_FLASH_MAP=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_STREAM_FLASH=y
CONFIG_SOC_FLASH_NRF_RADIO_SYNC_NONE=y

# MCUBoot configs
CONFIG_IMG_MANAGER=y
CONFIG_MCUBOOT_IMG_MANAGER=y
CONFIG_MCUBOOT_UPDATE_FOOTER_SIZE=0x0

# Keys
CONFIG_HW_UNIQUE_KEY=y
CONFIG_IDENTITY_KEY=y

# CBOR support
CONFIG_ZCBOR=y

#Finite state machine
CONFIG_SMF=y

# Nanopb library
CONFIG_NANOPB=y

# cJSON
CONFIG_CJSON_LIB=y

#
# Bluetooth settings
#
CONFIG_BT=y
CONFIG_BT_SMP=n
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_MAX_CONN=1

CONFIG_BT_BUF_ACL_RX_SIZE=514
CONFIG_BT_L2CAP_TX_MTU=517
CONFIG_BT_BUF_ACL_TX_SIZE=514

CONFIG_BT_RX_STACK_SIZE=4096
CONFIG_BT_HCI_TX_STACK_SIZE=1536
CONFIG_BT_BONDABLE=n
CONFIG_BT_DEVICE_NAME_DYNAMIC=y

CONFIG_BT_PERIPHERAL_PREF_TIMEOUT=75

#Added to fix BLE crash in coex enable cases.
CONFIG_NRF_RPC=n
CONFIG_NRF_RPC_CBOR=n

# BLE optimisations
CONFIG_BT_DEBUG_NONE=y
CONFIG_BT_ASSERT=n
CONFIG_BT_DATA_LEN_UPDATE=n
CONFIG_BT_PHY_UPDATE=n
CONFIG_BT_GATT_CACHING=n
CONFIG_BT_GATT_SERVICE_CHANGED=n
CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS=n

# Disable Bluetooth controller features not needed
CONFIG_BT_CTLR_PRIVACY=n
CONFIG_BT_CTLR_PHY_2M=n

# Reduce Bluetooth buffers
CONFIG_BT_BUF_EVT_DISCARDABLE_COUNT=1
CONFIG_BT_BUF_EVT_DISCARDABLE_SIZE=43
CONFIG_BT_BUF_EVT_RX_COUNT=2

CONFIG_BT_L2CAP_TX_BUF_COUNT=8
CONFIG_BT_ATT_TX_COUNT=8
CONFIG_BT_BUF_ACL_TX_COUNT=8
CONFIG_BT_CONN_TX_MAX=8

#
# Secure storage and encryption settings
#
CONFIG_NRF_SECURITY=y
CONFIG_NORDIC_SECURITY_BACKEND=y

# Use hardware crypto accelerator
CONFIG_CC3XX_BACKEND=n
CONFIG_OBERON_BACKEND=y
CONFIG_PSA_CRYPTO_DRIVER_OBERON=y
CONFIG_PSA_CRYPTO_DRIVER_CC3XX=n

# Trusted storage settings
CONFIG_TRUSTED_STORAGE=y
CONFIG_TRUSTED_STORAGE_BACKEND_AEAD=y
CONFIG_TRUSTED_STORAGE_BACKEND_AEAD_KEY_DERIVE_FROM_HUK=y
CONFIG_PSA_PROTECTED_STORAGE=y
CONFIG_PSA_INTERNAL_TRUSTED_STORAGE=y
CONFIG_TRUSTED_STORAGE_STORAGE_BACKEND_SETTINGS=y
CONFIG_TRUSTED_STORAGE_BACKEND_AEAD_MAX_DATA_SIZE=2048

# MbedTLS settings
CONFIG_MBEDTLS=y
CONFIG_MBEDTLS_PSA_CRYPTO_C=y
CONFIG_MBEDTLS_THREADING_C=y
CONFIG_MBEDTLS_PSA_CRYPTO_STORAGE_C=y
CONFIG_MBEDTLS_SHA256_C=y
CONFIG_MBEDTLS_BUILTIN=y
CONFIG_PSA_WANT_ALG_SHA_256=y
CONFIG_MBEDTLS_RSA_C=y
CONFIG_MBEDTLS_MPI_MAX_SIZE=512

# TFM and crypto settings
CONFIG_PSA_WANT_KEY_TYPE_AES=y
CONFIG_PSA_WANT_ALG_CTR=y
CONFIG_PSA_WANT_GENERATE_RANDOM=y
CONFIG_PSA_WANT_ALG_GCM=y

#
# WiFi support
#

# Optimize WiFi stack to save some memory
CONFIG_WIFI=y
CONFIG_WIFI_NRF70=y

# WiFi credentials library, and WiFi safe backend PSA storage. Maximum nr. of entries is one
CONFIG_NET_CONFIG_SETTINGS=y
CONFIG_WIFI_CREDENTIALS=y
CONFIG_WIFI_CREDENTIALS_MAX_ENTRIES=1

# More stack settings
CONFIG_NET_TX_STACK_SIZE=1200
CONFIG_NET_RX_STACK_SIZE=1500

#
# Net settings
#
CONFIG_NETWORKING=y
CONFIG_NET_SOCKETS=y
CONFIG_NET_NATIVE=y
CONFIG_NET_LOG=y
CONFIG_NET_IPV4=y
CONFIG_NET_UDP=y
CONFIG_NET_TCP=y
CONFIG_NET_DHCPV4=y
CONFIG_DNS_RESOLVER=y
CONFIG_NET_SOCKETS_DNS_TIMEOUT=30000
CONFIG_NET_TC_TX_COUNT=1
CONFIG_NET_IF_UNICAST_IPV4_ADDR_COUNT=1
CONFIG_NET_MAX_CONTEXTS=6
CONFIG_NET_MAX_CONN=6
CONFIG_NET_CONTEXT_SYNC_RECV=y
CONFIG_INIT_STACKS=y
CONFIG_NET_L2_ETHERNET=y
CONFIG_NET_CONFIG_INIT_TIMEOUT=0
CONFIG_NET_L2_WIFI_MGMT=y
CONFIG_L2_WIFI_CONNECTIVITY=y
CONFIG_L2_WIFI_CONNECTIVITY_AUTO_CONNECT=n
CONFIG_L2_WIFI_CONNECTIVITY_AUTO_DOWN=n
CONFIG_NET_SOCKETS_OFFLOAD=n
CONFIG_NET_CONTEXT_SNDTIMEO=y
CONFIG_NET_CONTEXT_RCVTIMEO=y
CONFIG_NET_MGMT=y
CONFIG_NET_MGMT_EVENT=y
CONFIG_NET_MGMT_EVENT_INFO=y
CONFIG_NET_MGMT_EVENT_QUEUE_TIMEOUT=5000
CONFIG_NET_CONNECTION_MANAGER=y
CONFIG_NET_CONNECTION_MANAGER_MONITOR_STACK_SIZE=5200
CONFIG_NET_OFFLOAD=y

# Some network optimisations 
CONFIG_NRF70_AP_MODE=n
CONFIG_NRF70_P2P_MODE=n
CONFIG_NET_PKT_RX_COUNT=16
CONFIG_NET_PKT_TX_COUNT=16
CONFIG_NRF70_RX_NUM_BUFS=16
CONFIG_NET_BUF_RX_COUNT=16
CONFIG_NET_BUF_TX_COUNT=32
CONFIG_NRF70_UTIL=n
CONFIG_NRF70_MAX_TX_AGGREGATION=1
CONFIG_NRF70_MAX_TX_TOKENS=5
CONFIG_ZVFS_OPEN_MAX=20
CONFIG_NET_SOCKETS_POLL_MAX=20
CONFIG_NET_PKT_BUF_TX_DATA_POOL_SIZE=4096
CONFIG_NET_PKT_BUF_RX_DATA_POOL_SIZE=4096
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=65535

# WPA supplicant
CONFIG_WIFI_NM_WPA_SUPPLICANT=y

# Coexistence 
CONFIG_NRF70_SR_COEX=y
CONFIG_NRF70_SR_COEX_RF_SWITCH=n

# TLS networking
CONFIG_NET_SOCKETS_SOCKOPT_TLS=y
CONFIG_NET_SOCKETS_ENABLE_DTLS=n
CONFIG_NET_SOCKETS_TLS_MAX_CONTEXTS=10
CONFIG_TLS_CREDENTIALS_BACKEND_PROTECTED_STORAGE=n
CONFIG_TLS_CREDENTIALS=y
CONFIG_TLS_MAX_CREDENTIALS_NUMBER=15
CONFIG_MBEDTLS_PEM_PARSE_C=y
CONFIG_NET_MGMT_EVENT_STACK_SIZE=8192
CONFIG_MBEDTLS_X509_CRT_PARSE_C=y
CONFIG_MBEDTLS_PK_PARSE_C=y
CONFIG_MBEDTLS=y
CONFIG_MBEDTLS_DTLS=n
CONFIG_MBEDTLS_TLS_VERSION_1_2=y
CONFIG_MBEDTLS_TLS_VERSION_1_3=n
CONFIG_MBEDTLS_RSA_C=y
CONFIG_MBEDTLS_ECP_C=y
CONFIG_PSA_WANT_RSA_KEY_SIZE_4096=y
CONFIG_PSA_WANT_RSA_KEY_SIZE_2048=y
CONFIG_MBEDTLS_HAVE_TIME_DATE=n
CONFIG_MBEDTLS_SSL_SERVER_NAME_INDICATION=y
CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=16384
CONFIG_MBEDTLS_MPI_MAX_SIZE=512
CONFIG_NET_SOCKETS_TLS_SET_MAX_FRAGMENT_LENGTH=n
CONFIG_MBEDTLS_SSL_RENEGOTIATION=y
CONFIG_NET_SOCKETS_TLS_MAX_CONTEXTS=3
CONFIG_NET_SOCKETS_SOCKOPT_TLS=y
CONFIG_TLS_CREDENTIALS=y
CONFIG_TLS_MAX_CREDENTIALS_NUMBER=10
CONFIG_NET_SOCKETS_TLS_MAX_CREDENTIALS=10
CONFIG_MBEDTLS_PEM_PARSE_C=y
CONFIG_MBEDTLS_X509_CRT_PARSE_C=y
CONFIG_POSIX_API=y
CONFIG_NET_IPV4=y
CONFIG_NET_IPV6=y
CONFIG_NET_CONNECTION_MANAGER=y
CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
CONFIG_MBEDTLS_TLS_VERSION_1_2=y
CONFIG_MBEDTLS_HAVE_TIME_DATE=n
CONFIG_NET_MAX_CONN=12
CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
CONFIG_PSA_WANT_RSA_KEY_SIZE_1024=y
CONFIG_MBEDTLS_RSA_C=y
CONFIG_MBEDTLS_TLS_LIBRARY=y
CONFIG_MBEDTLS_X509_LIBRARY=y
CONFIG_MBEDTLS_ECDSA_C=y
CONFIG_MBEDTLS_LIBRARY_NRF_SECURITY=y

CONFIG_WIFI_RANDOM_MAC_ADDRESS=y

# This moves the nRF70 patches and code to external flash, and allows it to 
# be patched with MCUBoot
CONFIG_NRF_WIFI_PATCHES_EXT_FLASH_STORE=y
CONFIG_NRF_WIFI_FW_FLASH_CHUNK_SIZE=2048
CONFIG_NRF_WIFI_FW_PATCH_DFU=y
CONFIG_DFU_MULTI_IMAGE_MAX_IMAGE_COUNT=2

# SNTP support
CONFIG_SNTP=y
CONFIG_NET_CONFIG_NEED_IPV4=y
CONFIG_NET_HOSTNAME_ENABLE=y

# Low power
CONFIG_PM_DEVICE=y
CONFIG_PM_DEVICE_RUNTIME=y

CONFIG_FSM_TICK_TIMER_ENABLED=n
CONFIG_RESET_ON_FATAL_ERROR=y


    /* Hardcoded SSID and password */
    const char *ssid = "test_hotspot";
    const char *psk = ************ (removed here);

    struct wifi_connect_req_params conn_params;
    memset(&conn_params, 0, sizeof(conn_params));

    conn_params.ssid = (const uint8_t *)ssid;
    conn_params.ssid_length = strlen(ssid);
    conn_params.psk = (const uint8_t *)psk;
    conn_params.psk_length = strlen(psk);

    conn_params.channel = WIFI_CHANNEL_ANY;
    conn_params.mfp = WIFI_MFP_OPTIONAL;
    conn_params.timeout = CONFIG_WIFI_CONNECT_TIMEOUT_S;
    conn_params.security = WIFI_SECURITY_TYPE_PSK;

    /* Get the default network interface */
    struct net_if *p_iface = net_if_get_first_wifi();
    if (!p_iface) {
        LOG_ERR("No default network interface available");
        return;
    }

    LOG_DBG("Connecting to SSID='%s' (len %u), PSK='%s' (len %u)", ssid, (unsigned)conn_params.ssid_length,
            psk, (unsigned)conn_params.psk_length);

    /* Issue the connection request */
    int err = net_mgmt(NET_REQUEST_WIFI_CONNECT, p_iface, &conn_params, sizeof(conn_params));
    if (err) {
        LOG_ERR("Wi‑Fi connect attempt failed: %d", err);
        return;
    }

    LOG_INF("Wi‑Fi connection initiated to '%s'", ssid);
}

Related