Hello,
According to the nRF7000 specification, the sleep current should be around 15 µA. Electrical specification.
We have a custom PCB with nRF9160 + nRF7000, and the issue is that after enabling nRF7000 support in the application, the idle current of the PCB increases by about 160 µA.
Without nRF7000

With nRF7000

To add support, we included the following configuration:
# Actual configs for the Wi-Fi CONFIG_WIFI=y CONFIG_WIFI_NRF70=y CONFIG_WIFI_NRF70_SKIP_LOCAL_ADMIN_MAC=y # Align this with CONFIG_LOCATION_METHOD_WIFI_SCANNING_RESULTS_MAX_CNT CONFIG_NRF_WIFI_SCAN_MAX_BSS_CNT=10 CONFIG_NRF_WIFI_CTRL_HEAP_SIZE=10240 # Wi-Fi location CONFIG_LOCATION_METHOD_WIFI=y # Align this with CONFIG_NRF_WIFI_SCAN_MAX_BSS_CNT CONFIG_LOCATION_METHOD_WIFI_SCANNING_RESULTS_MAX_CNT=10 # Not for LTE throughput testing CONFIG_NRF_MODEM_LIB_SHMEM_TX_SIZE=4096 CONFIG_NRF_MODEM_LIB_SHMEM_RX_SIZE=4096 CONFIG_NRF_WIFI_2G_BAND=y CONFIG_NRF_WIFI_5G_BAND=n CONFIG_NRF_WIFI_LOW_POWER=y # System settings CONFIG_NEWLIB_LIBC=y CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y # Scan only using offload API CONFIG_WIFI_NM_WPA_SUPPLICANT=n # For nRF9160 the default is socket interface CONFIG_NET_DEFAULT_IF_ETHERNET=y CONFIG_MBEDTLS=n CONFIG_NORDIC_SECURITY_BACKEND=n # Networking CONFIG_NET_L2_ETHERNET=y CONFIG_NET_NATIVE=y CONFIG_NET_DHCPV4=y #CONFIG_NET_STATISTICS=y #CONFIG_NET_STATISTICS_WIFI=y #CONFIG_NET_STATISTICS_USER_API=y #CONFIG_NET_CONTEXT_SYNC_RECV=y # Disable unused networking options CONFIG_NET_IPV6=n # Memory configurations CONFIG_NET_BUF_RX_COUNT=1 CONFIG_NET_BUF_TX_COUNT=1 CONFIG_NET_PKT_RX_COUNT=1 CONFIG_NET_PKT_TX_COUNT=1 CONFIG_NET_TX_STACK_SIZE=512 CONFIG_NET_RX_STACK_SIZE=512 CONFIG_NET_TC_TX_COUNT=1 CONFIG_NET_MAX_CONTEXTS=1 CONFIG_NET_MGMT_EVENT_STACK_SIZE=1024 CONFIG_NRF70_PASSIVE_SCAN_ONLY=y CONFIG_WIFI_RANDOM_MAC_ADDRESS=y
Device tree overlay:
&spi3 {
compatible = "nordic,nrf-spim";
status = "okay";
cs-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&spi3_default>;
pinctrl-1 = <&spi3_sleep>;
pinctrl-names = "default", "sleep";
nrf70: nrf7002-spi@0 {
compatible = "nordic,nrf7000-spi";
status = "okay";
reg = <0>;
spi-max-frequency = <DT_FREQ_M(8)>;
/* nRF7000 */
iovdd-ctrl-gpios = <&gpio0 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* D0 */
bucken-gpios = <&gpio0 16 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* D1 */
host-irq-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>; /* D7 */
wifi-max-tx-pwr-2g-dsss = <21>;
wifi-max-tx-pwr-2g-mcs0 = <16>;
wifi-max-tx-pwr-2g-mcs7 = <16>;
wifi-max-tx-pwr-5g-low-mcs0 = <13>;
wifi-max-tx-pwr-5g-low-mcs7 = <13>;
wifi-max-tx-pwr-5g-mid-mcs0 = <13>;
wifi-max-tx-pwr-5g-mid-mcs7 = <13>;
wifi-max-tx-pwr-5g-high-mcs0 = <12>;
wifi-max-tx-pwr-5g-high-mcs7 = <12>;
wlan0: wlan0 {
compatible = "nordic,wlan";
status = "okay";
};
};
};
For data collection, we use the Location library, and we expect it should handle the nRF7000 power modes automatically.
The question is:
- Why does the nRF7000 consume more current than the 15 µA stated in the datasheet?
- Is this caused by our configuration, or do we need to explicitly put the nRF7000 into sleep mode in our application?
SDK 3.0.0





