nrf7002-DK - Wifi channel switching raw packets

Hi,

We have conducted evaluation test with the nrf7002-DK and the raw packet sample.

The code sends a burst of 3 raw packets on channels 1, 6, 11.

between each packet within the 1,6,11 burst we try to send as fast as we can.

between each burst ( 3 packets)  we sleep for 1 second.

Our goal is to send raw WiFi (802.11.g) packets on a battery powered tag with power optimization in mind.

other modification for the raw packet sample:

1. transmit in legacy mode (802.11g)

CONFIG_RAW_TX_PKT_SAMPLE_RATE_FLAGS 0

2. enabled low power with this

CONFIG_NRF_WIFI_LOW_POWER=y

results:

 - We succeeded in capturing packets on 3 channels with wireshark.

-  There is an issue when channel switching.

here are some result of power profile:

sending 1 packet on 1 channel.  ~20ms.

sending 3 packets on same channel (without ch switching) ~20ms

sending 3 packets with channels switching - ~752ms

some point to look at:

1. what is "1" peak.  is this Wifi calibration?

if so, we need a way to control this.

TI cc3x20 offers 3 modes for calibration

Normal, Triggred, On-time - see link to TI network processor.

https://www.ti.com/lit/ug/swru455m/swru455m.pdf?ts=1711606377096&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FCC3130

2. after transmitting, why does the chip keep on staying awake?

see "2" in image above. - we need minimum time soc is awake for max power optimization

see also thread

devzone.nordicsemi.com/.../477431

Thanks

Dan

  • west build:

    Building raw_tx_packet
    C:\Windows\system32\cmd.exe /d /s /c "west build --build-dir c:/dev/raw_tx_packet/build c:/dev/raw_tx_packet --pristine --board nrf7002dk_nrf5340_cpuapp --no-sysbuild -- -DNCS_TOOLCHAIN_VERSION=NONE -DCONFIG_SIZE_OPTIMIZATIONS=y -DCACHED_CONF_FILE=c:/dev/raw_tx_packet/prj.conf"

    proj.conf -see below: all same configurations:

    only thing that was modified

    CONFIG_RAW_TX_PKT_SAMPLE_RATE_FLAGS=0
    CONFIG_NRF_WIFI_LOW_POWER=y

    connected mode:

    I don't know what you mean - i don't think so.

    label2:

    ~10ms

    #
    # Copyright (c) 2023 Nordic Semiconductor ASA
    #
    # SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
    #
    CONFIG_WIFI=y
    CONFIG_WIFI_NRF700X=y
    CONFIG_NRF_WIFI_LOW_POWER=y
    CONFIG_NRF700X_RAW_DATA_TX=y

    # WPA supplicant
    CONFIG_WPA_SUPP=y

    # Below configs need to be modified based on security
    # CONFIG_RAW_TX_PKT_SAMPLE_KEY_MGMT_NONE=y
    # CONFIG_RAW_TX_PKT_SAMPLE_KEY_MGMT_WPA2=y
    # CONFIG_RAW_TX_PKT_SAMPLE_KEY_MGMT_WPA2_256=y
    # CONFIG_RAW_TX_PKT_SAMPLE_KEY_MGMT_WPA3=y
    CONFIG_RAW_TX_PKT_SAMPLE_SSID="Myssid"
    CONFIG_RAW_TX_PKT_SAMPLE_PASSWORD="Mypassword"
    CONFIG_RAW_TX_PKT_SAMPLE_RATE_FLAGS=0

    # System settings
    CONFIG_NEWLIB_LIBC=y
    CONFIG_NEWLIB_LIBC_NANO=n

    # Networking
    CONFIG_NETWORKING=y
    CONFIG_NET_SOCKETS=y
    CONFIG_NET_LOG=y
    CONFIG_NET_IPV4=y
    CONFIG_NET_UDP=y
    CONFIG_NET_TCP=y
    CONFIG_NET_DHCPV4=y

    CONFIG_NET_PKT_RX_COUNT=8
    CONFIG_NET_PKT_TX_COUNT=8

    # Below section is the primary contributor to SRAM and is currently
    # tuned for performance, but this will be revisited in the future.
    CONFIG_NET_BUF_RX_COUNT=16
    CONFIG_NET_BUF_TX_COUNT=16
    CONFIG_NET_BUF_DATA_SIZE=1500
    CONFIG_HEAP_MEM_POOL_SIZE=153600
    CONFIG_NET_TC_TX_COUNT=1

    CONFIG_NET_IF_UNICAST_IPV4_ADDR_COUNT=1
    CONFIG_NET_MAX_CONTEXTS=5
    CONFIG_NET_CONTEXT_SYNC_RECV=y

    CONFIG_INIT_STACKS=y

    CONFIG_NET_L2_ETHERNET=y

    CONFIG_NET_CONFIG_SETTINGS=y
    CONFIG_NET_CONFIG_INIT_TIMEOUT=0

    CONFIG_NET_SOCKETS_POLL_MAX=10

    # Memories
    CONFIG_MAIN_STACK_SIZE=4096
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
    CONFIG_NET_TX_STACK_SIZE=4096
    CONFIG_NET_RX_STACK_SIZE=4096

    # Debugging
    CONFIG_STACK_SENTINEL=y
    CONFIG_DEBUG_COREDUMP=y
    CONFIG_DEBUG_COREDUMP_BACKEND_LOGGING=y
    CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_MIN=y
    CONFIG_SHELL_CMDS_RESIZE=n


    # Kernel options
    CONFIG_ENTROPY_GENERATOR=y

    # Logging
    CONFIG_LOG=y
    CONFIG_LOG_BUFFER_SIZE=2048
    CONFIG_POSIX_CLOCK=y

    CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.168.1.99"
    CONFIG_NET_CONFIG_MY_IPV4_NETMASK="255.255.255.0"
    CONFIG_NET_CONFIG_MY_IPV4_GW="192.168.1.1"

    # printing of scan results puts pressure on queues in new locking
    # design in net_mgmt. So, use a higher timeout for a crowded
    # environment.
    CONFIG_NET_MGMT_EVENT_QUEUE_TIMEOUT=5000
  • Hi Dan,

    Thank you for providing additional information.

    Regarding your first question, the existence of the peak in your screenshot (marked "1") could be the result of charging external capacitor when turning on specific internal regulator.

    We will look into this issue further during next week. I hope to provide you with some information by the end of the next week.

    Best regards,
    Dejan

  • Hi Dan,

    To reduce duration of the second interval ("2" in your screenshot) you could try to tune idle time by setting -DCONFIG_NRF700X_RPU_PS_IDLE_TIMEOUT_MS=1.

    Best regards,
    Dejan

Related