I am trying to get a WiFi project working using the nRF52840DK and nRF7002EK. I use a 3.3V power source that is supplying power to both nRF's in parallel. For the nRF7002EK, I added pin header to P6 and supplied power there. I've confirmed the system works this way, as I was able to get the WiFi station project working (NCSv2.9.1, nrf/samples/wifi/sta).
I'm evaluating if it can sleep with a total current draw of <10uA. I am using the PPK2 as an ammeter to measure the current draw coming from the power source directly.
I have determined with a very simple project (NCS v2.9.1, zephyr/samples/boards/nordic/system_off) that the current draw can go as low as about 8.5uA after the sys_poweroff() call. I ensured that:
- nRF52840DK SW6 was moved to "nRF ONLY" after flashing firmware
- Shortly after sys_poweroff() is called, I unplugged power from nRF7002EK's P6.
- This is fine, as we anticipate hardware later on that will similarly cut power to the nRF7002, to save power.
- In other words, the total current draw is mostly, if not completely, coming from the nRF52.
I revisited my WiFi station project to try to replicate this, but with some small changes and typical power reductions like CONFIG_PM=y and CONFIG_SERIAL=n, I could only get it to draw around 12mA after sleeping. But then I tried removing the following and was able to get it to 8.5uA:
- Remove CMake argument -DSHIELD="nrf7002ek"
- Set CONFIG_WIFI_NRF70=n
Obviously the WiFi code won't work without the CMake argument and Kconfig flag, but it seems to point that the nRF52 is doing or waiting for something related to nRF7002. So my main question is - how I can save power like the system_off project shows, while still being able to use the nRF7002EK? Some other related questions include:
- Is there an equivalent to the CMake argument and Kconfig flag, but that can be done dynamically in firmware? Something like "enabling nRF7002" with some function call, and a corresponding "disable" function I can call just before sys_poweroff()?
More info: I am using a Windows 11 machine, VS Code, & nRF Connect Extension. It was already mentioned earlier but we're also using nRF52840DK, nRF7002EK, and the PPK2.