RoadTest: Sign Up to Review the Nordic Wi-Fi 6 IC Dev Kit nRF7002 DK with WI-Fi 6 Router
Author: Fred27
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Any other Wi-Fi development board
What were the biggest problems encountered?: No significant problem. The limitation of power profiling whilst connected to USB serial made it a little harder to evaluate
Detailed Review:
I plan to tackle this RoadTest in the same way I tackle any review of a microcontroller-based development kit. You can pretty much guarantee that any modern microcontroller won’t be the resource-constrained device you might have had in decades gone by. It’ll be cheap, it’ll be surprisingly powerful and is most likely to be 32-bit – even at the cheap and of the scale. Obviously, specs are important, but they’re probably not the limiting factor in getting things done. Ease of use – in the guise of good documentation and a good development environment – are more critical.
I would still count this as a “microcontroller-based development kit” even though the star of the show isn’t the microcontroller, it’s the nRF7002 Wi-Fi sidekick. Anyway, let’s take a look at the what we have.
The nRF7002 is a “companion IC” it’s designed to add Wi-Fi to a microcontroller rather than being programmable itself. Nordic also produce a nRF7001, which seems identical apart the fact that the nRF7002 supports both 2.4GHz and 5GHz and the nRF7001 has to make do with just the 2.4GHz band. In fact, there isn’t a development kit for the nRF7001. The nRF7002 can simulate nRF7001 by being instructed to ignore its 5GHz capabilities. If you want to explore the nRF7001 then this is the approach you’re expected to take.
The nRF700x range is a bit of a departure for Nordic. The rest of their wireless portfolio of devices contain a built-in microcontroller. Most of them – the nRF5340, nRF52840, etc. – are focussed on Bluetooth, Thread, Zigbee, and NFC. The nRF9160 is intended for Cellular and GPS. All of them have an Arm Cortex on board. All except these Wi-Fi chips.
I wonder why they didn’t stick with the same principle? Maybe they thought that Wi-Fi wasn’t particularly useful on its own and that it was likely to need some NFC or Bluetooth to configure what Wi-Fi network to connect to? Anyway, here we are. Let’s look at the development kit that hints at how Nordic expect the nRF7002 to be used.
The development kit (and Wi-Fi 6 router to go with it) arrived safely - although with the UK customs taking a little peek inside before it got to me.
The nRF7002 DK looks very much like their previous development kits. If you have used an nRF5340 or nRF52840 DK then it will seem totally familiar. Here you can see the nRF7002 DK alongside the rest of the range you’d be hard pressed to differentiate it from earlier offerings.
The recent nRF5340 Audio DK was a bit of a departure - in size, design and USB connector. That looked quite different and used USB-C to connect to your PC. I think the nRF7002 DK is more recent than the nRF5340 Audio DK, but it has gone back to the familiar layout and the microUSB connector used on previous boards. I must admit I think it’s a shame that it didn’t use USB-C, but the layout doesn’t really make much difference. Maybe they wanted it as a direct swap for a standard (Wi-Fi-less) nRF5340 DK.
As the nRF7002 is a companion IC, there has to be a microcontroller for a development kit to be useful. No surprise that this development board is using their current flagship - the nRF5340. Obviously, the nRF7002 could be used with any microcontroller, but I would guess that if you ever see a nRF7002 in the wild that a Nordic microcontroller won’t be far away.
I’m glad to see that the box contains just the microcontroller board. There really is no need to bundle yet another micro USB cable to add to the ever-growing tangle in your desk drawer. All you’ll find is a card with a link that takes you to a “getting started” page. There's a small power switch on the board - very handy and something I only remember seeing on Nordic DKs. Once it is switched on, you are presented with 2 serial ports and a local drive containing a readme file. The readme tells you that you can drop a firmware file on the drive to program the device. All nice and simple – exactly how it should be.
The board blinks a couple of LEDs to let you know it’s working. One very odd thing I found is that nowhere does it say what code is loaded and running. Maybe it’s just “blinky” but it doesn’t match any sample code available via the nRF Connect SDK.
Anyway, the getting started video here (https://www.nordicsemi.com/Products/Development-hardware/nRF7002-DK/GetStarted) suggests you start with the Wi-Fi provisioning sample. The accompanying Android/iOS app isn’t at the location linked in the guide, but it can be found if you search for "nRF Wi-Fi provisioner" in the Google Store. This app can’t detect a board running the Out-of-the-Box code, so it’s obviously not pre-programmed with the Wi-Fi provisioning sample. Likewise, the board doesn’t present an access point and attaching the NFC antenna does nothing.
The pre-programmed code will forever remain a mystery as I replace it with the precompiled Wi-Fi provisioning hex file available from the downloads page. The provisioning app does exactly what it claims to do – runs you through the example code that allows you to use a Bluetooth connection to configure that Wi-Fi network that the nRF7002 will connect to.
This application is obviously not much use on its own, but would be very useful incorporated into your own application as it provides a nice way to set what network the board will connect to without having to recompile firmware. It’s definitely a useful bit of sample code.
Dragging a precompiled hex file onto the board might be useful, but compiling your own “blinky” example is the essential first step with any board. In my previous nRF5340 Audio DK road test (link) I found compiling the example to be clumsy and the documentation inadequate. I’m glad to say the it wasn’t the case for the NRF7002 DK. I followed the clear guide at https://nrfconnect.github.io/vscode-nrf-connect/get_started/build_app_ncs.html and the process was smooth and easy. I selected "nrf7002dk_nrf5340_cpuapp_ns" for the board and it compiled and flashed without an issue.
I initially forgot to check "enable debug options" and wasn;t unable to debug, but once that was checked I could step through the code. I did however have some temporary issues with a warning on first compilation and getting breakpoints to stick, but that seemed to resolve itself in the end.
I managed to get sidetracked at this point – but sidetracked in a good way. I came across the Nordic DevAcademy (https://academy.nordicsemi.com/) and worked my way through the 3 excellent courses they have available at the moment. The first one on nRF Connect SDK Fundamentals was great for filling in the gaps in my knowledge of the IDE. The second on Bluetooth LE was very useful for the nRF5340 part of this board. Even the third on Cellular IoT was useful. It was intended to be used alongside the nRF9160, but there was a lot of networking stuff that should apply just as well to the nRF7002.
If you’re trying to get to grips with any of the Nordic devices, I can thoroughly recommend the DevAcademy. It was well worth a small digression from looking specifically at the nRF7002, and I wouldn’t be surprised to see a course aimed at this board appearing in the future.
There’s quite a few useful starting points for creating your own code. I’m surprised that they’re not linked from the getting started guide, but you’ll find them here.
The most useful bit of sample code – for this road test in particular – is the Wi-Fi shell. Whilst I can imagine it’s less relevant when developing your own code, it seemed perfect for easily experimenting with the device without constantly amending coding and re-flashing.
Once this sample is on the board you are presented with a simple UART interface for controlling aspects of the nRF7002.
The only unexpected thing about the Wi-Fi shell is that it appears to reboot every few seconds. This puzzled me for a bit until I realised that the default setting is to run in power save mode and for the nRF7002 to spend most of it’s time with Wi-Fi off. All that’s needed is to execute “wifi ps off” in the shell and Wi-Fi will remain connected permanently. Not great for battery life, but a bit simpler when exploring the board!
(wifi ps off)
I was looking forward to digging into the low power aspects of the nRF7002. It has lots of useful features that are aimed at making sure you get the most for your mAh when creating a battery powered device.
The hardware looks promising at first glance. There’s a jumper (J23 - just near the debug out header) that’s for measuring the power used by the nRF7002 WiFi companion chip. There’s also a j22 header just below it that’s for measuring the power used by the nRF5340 microcontroller. Other than the fact that you need two PPK2s to make separate measurements – and I only have one – this all looked very promising. Even the fact that the 2-pin headers have jumpers on the out of the box hints that the cutting and shorting solder bridges that you had to do on earlier devices might not be needed.
So, I dug into the documentation. It’s fairly easy to find documentation on the PPK2 and this includes connecting to various DK up to the nRF3540 and nRF9160. Finding how to connect it to this DK was a little harder, but it is there if you look hard enough.
Unfortunately, two things jump out.
There were also some small things that the guide missed. You have to peel the Kapton tape off the tiny VBAT switch and move it to the other position. It also seems that if you want to measure the nRF5340 side of the power usage you do have to start modifying the board, so I didn’t try this.
The two restrictions meant that I couldn’t go ahead with my RoadTest plan of using the Wi-Fi shell serial console to manage the state of the nRF7002 whilst measuring the power consumption. I’d have to run it from a LiPo with no serial console. Luckily, I have a 3.7V LiPo battery that came with the nRF5340 Audio DK. That’s handy! Or it would be if Nordic hadn’t used a 3-pin connector for the Audo DK and a 2-pin connector for this one. (photo)
I get that the Audio DK could also charge the LiPo so needed 3-pins, but you’d think they’d stick with the same connector. I eventually managed to find a suitable battery from an old toy drone that did the trick.
This was the first time I’d used the PPK2 and I was reasonably impressed. It can be used in real-time mode and trigger a power usage recording when a power threshold is hit. It can also be used in Data logger mode and record power usage (plus up to 8 digital channels) for a period of time. It’s a shame that the digital inputs can’t be used as triggers, as that would make it even more useful to record a particular section of activity. However, that might be a lot to ask of a power profiler. That would be starting to creep into logic analyser territory.
As I couldn’t use the Wi-Fi- shell code as planned, I ran the provisioning sample and could see the power change as I set up the device. Without being able to make the sort of changes that the shell code provides, it wasn’t possible to see the differences that power modes made. If it was your own product that you were investigating, I can imagine that it would be easier to evaluate the various options you have available.
Overall, I’m impressed with the nRF7002 DK. There was the odd bit of documentation that was tricky to find, but it’s all there. Nothing like the problems I has with the nRF5340 Audio DK. I can also recommend the Nordic Dev Academy for a good overview of the development environment and the Bluetooth side of the on-board nRF5340. I hope we’ll see some Wi-Fi specific content up there too. It says “More courses coming soon!” but without any dates visible for the existing courses, it’s hard to know how long that message has been there.
The real test is whether I would use the nRF7002 myself for a Wi-Fi project or whether I would recommend it to others. I’d say that if you are familiar with other Nordic devices or you need Bluetooth, Zigbee, Thread, or NFC alongside the Wi-Fi- then go for it. Likewise, if Wi-Fi 6 suits your requirements or you're running on battery power then there are significant gains t be had using an nRF7002 over cheaper W-Fi SoC alternatives.