nRF7000 - Wi-Fi Scan w/ the 7002-EK + nRF58240
Did you know? Google and other providers have large databases of geolocation-SSID pairs! By sniffing SSIDs in your area, you can get surprisingly accurate location without surprising power use. Using nRF Cloud, you can even define your own SSIDs with location--a very powerful feature for situations in which you cannot get a reliable GNSS fix.
Nordic has a few Wi-Fi chips now, the nRF7002, nRF7001, and (believe it or not) the nRF7000. Here are the key features:
- nRF7002 - Dual-band, Wi-Fi 6, TX/RX
- nRF7001 - Single-band (2.4 GHz), Wi-Fi 6, TX/RX
- nRF7000 - Dual-band, RX only
For situations where you are implementing Wi-Fi based geolocation and have an alternate backhaul (cellular with our nRF9161, for example), the nRF7000 is an excellent choice.
Let's investigate the basics of Wi-Fi scanning in nRF Connect SDK using an nRF52840 and the nRF7002-EK! Since the nRF7000 has a subset of the nRF7002's feature set, we can simply use a board overlay with the nRF7002-EK to emulate the nRF7000's scan-only feature.
To begin, gather your nRF52840-DK, nRF7002-EK, and PPK-2.
I would recommend cutting at least the VBAT solder bridge and adding a couple of pin headers for power characterization.
Note: if using the PPK-2, be sure to set it to source meter.
Next, clone the Wi-Fi scan example from nRF Connect SDK:
Next, add a build configuration for the nRF52840:
We will add the "nrf7002ek_nrf7000" shield to the build. Within "Extra CMake arguments" add:
-DSHIELD=nrf7002ek_nrf7000
Your build configuration should look just like this.
After flashing, enable power output in "Ampere meter" mode:
And here are the results:
Congrats! This data can then be fed into nRF Cloud for geolocationing.