RoadTest: Sign Up to Review the Nordic Wi-Fi 6 IC Dev Kit nRF7002 DK with WI-Fi 6 Router
Author: redcharly
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?: Boards with WiFi and Bluetooth
What were the biggest problems encountered?: No problem
Detailed Review:
When I decided to propose my participation in the Nordic nRF7002 Wi-Fi DK roadtest, I was very curious as I have never used Nordic hardware and software before. I have seen many applications of the nRF5340 and would like to test this development kit.
The nRF7002 DK is a hardware development platform to facilitate the design and development of Wi-Fi® 6 (IEEE802.11 ax) applications. This Development Kit combines the Wi-Fi 6 capabilities of the nRF7002 companion Integrated Circuit with the nRF5340 System on Chip.
It's an extremely powerful and feature-rich board. With this board alone it is possible to experiment using the most popular WiFi technologies such as 2.4 and 5 GHz WiFi, Matter, Bluetooth BLE, ZigBee, etc. This makes this DK valuable as it allows you to use all the most popular communication technologies in a single board.
My aim in this roadtest is to use the board to create a simple project that uses some of its capabilities.
For information relating to the technical characteristics of the nRF7002 DK, I recommend reading the numerous pages dedicated to it on the Nordic site:
homepage
and that of the roadtests that have already been published in this Development Kit.
Receiving a new board is alwaiys a fantastic experience. I like to see and touch a new board and nRF7002 DK is really impressive, it's quite similar to nRF5340 DK but the nRF7002 Wi-Fi 6 Companion IC makes the difference.
{gallery}My Gallery Title |
---|
We will be using the nRF Connect SDK, "a scalable and unified software development kit for building low-power wireless applications based on the Nordic Semiconductor nRF52, nRF53, nRF70, and nRF91 Series wireless devices. It integrates the Zephyr real -time operating system (RTOS) and a wide range of complete applications, samples, and protocol stacks such as Bluetooth® Low Energy, Bluetooth mesh, Matter, Thread/Zigbee, Wi-Fi®, and LTE-M/NB-IoT/ GPS, TCP/IP. It also includes middleware such as CoAP, MQTT, LwM2M, various libraries, hardware drivers, Trusted Firmware-M for security, and a secure bootloader (MCUboot)".
The necessary steps to create an application are:
Configuration System (Kconfig) generates definitions that configure libraries and subsystems;
Devicetree describes the hardware;
CMake generates build files based on the provided CMakeLists.txt files, which use information from Kconfig and devicetree;
Ninja (comparable to make) uses the build files to build the program;
The GCC compiler creates the executables.
Software installation is quite simple using the tutorial on Installation guide. The installation of the nRF Connect SDK is completed in a short time and without any problems.
{gallery}Installation |
---|
|
At this point you have to choose how to build an application:
Using Visual Studio Code and the nRF Connect for VS Code extension
Using command line.
"The nRF Connect for VS Code extension is a complete IDE for developing applications compatible with the nRF Connect SDK. This includes an interface to the compiler and linker, an RTOS-aware debugger, a seamless interface to the nRF Connect SDK, and a serial terminal".
To start working and get to know the nRF7002 DK, I chose to use one of the contained examples proposed by Nordic. I thought I'd explore the capabilities of the DK by trying out the Shell application (nrf/samples/wifi/shell).
Once a new application has been created, choosing nrf/samples/wifi/shell as template, just click on the button indicated by the blue arrow (nRF Connect) to open the interface shown in the figure.
First of all, it will be necessary to choose the board on which to run the application (red arrow).
From Nordic website: " The build target column uses several entries for multi-core hardware platforms:
For core type:
cpuapp
- When you choose this target, you build the application core firmware.
cpunet
- When you choose this target, you build the network core firmware.
For usage of Cortex-M Security Extensions (CMSE):
Entries without *_ns
(cpuapp
) - When you choose this target, you build the application core firmware as a single execution environment that does not use CMSE (Trusted Firmware-M (TF-M)).
Entries with *_ns
(for example, cpuapp_ns
) - When you choose this target, you build the application with CMSE. The application core firmware is placed in Non-Secure Processing Environment (NSPE) and uses Secure Processing Environment (SPE) for security features. By default, the build system automatically includes Trusted Firmware-M (TF-M) in SPE and merges it with NSPE ".
Once you have the build configuration, you can flash the program to the board (green arrow).
Once you have the build configuration, you can flash the program to the board.
Now that the nRF7002 DK has loaded the shell program, you will need to open a terminal to access the program. I used Putty, a very light terminal and also available in a portable version.
The connection parameters to be used are in the figure below.
By writing "wifi" in the terminal we get the list of available commands.
To test the functioning of the Shell program, type "wifi scan" on the terminal to obtain the list of networks detected by the nRF7002 DK and their characteristics.
In just a few minutes we tested our nRF7002 DK with a simple WiFi application.
From this simple example we immediately notice how the Nordic nRF7002 DK is a card capable of connecting to 5GHz networks and is therefore much more versatile than similar boards.
One of the things that immediately intrigued me about this board is its ability to use the Matter protocol, one of the most used in home automation. I have an Amazon Alexa device at home and I immediately tried to use it with the board.
Matter is a communication protocol that is having an amazing diffusion in the world of home automation. Today it is very common in our homes and its success is due to its characteristics.
A simple application that I want to experiment with is the Nordic nRF7002 DK "Light bulb", a simple application that allows you to simulate a smart light bulb that can be controlled via voice commands given to Alexa. The steps necessary for configuring, building and flashing the example are the same as those already performed in the first example.
After a few seconds, the board begins its new life as a simulated "light bulb".
Using the Alexa app and searching for new devices, the board was immediately recognized and associated with a light bulb.
From that moment, with a voice command or directly from the App, it is possible to turn on or off the user LED in our board.
The interesting thing is that this program also allows you to adjust the brightness of the LED, so we can think of many applications in everyday life. The most obvious is to control a lamp or LED strip, remotely regulating its status and light intensity or we could adjust the speed of the DC fan that refreshes us on hot Sicilian afternoons.
It is very easy to think of applications of this wonderful Nordic board in home automation and IoT applications.
We can control devices using a driver connected to pin P1.07.
The potential of the Nordic nRF7002 is truly remarkable. Browsing through the samples in the nRF Connect SDK folder you can see how there are many possible applications for this board. The Nordic nRF7002 DK allows you to work with the most common communication protocols and there are numerous ready-made applications with which to test the potential of the board with WiFi, Zigbee, Matter and NFC. This DK could be very useful in a secondary school to learn how to use and test many communication protocols.
Another topic we cover at school is cryptography. One of the most important objectives of the last years of school activity is to train a generation of students who are attentive to privacy and aware of the dangers of the web. Encrypting information is an operation that by now must be done at every level, both, obviously, for sensitive or personal data of users, and for the data that our numerous IoT devices send at any moment and which, in the hands of malicious people, could be used or modified without our knowledge.
The Nordic nRF7002 DK handles both symmetric and asymmetric encryption and there are many samples available. I tried those related to AES but, at school it would be nice to use SHA256 or RSA encryption as well.
*** Booting Zephyr OS build v3.3.99-ncs1-1 *** [00:00:00.292,236] <inf> aes_cbc: Starting AES-CBC-NO-PADDING example... [00:00:00.292,266] <inf> aes_cbc: Generating random AES key... [00:00:00.292,419] <inf> aes_cbc: AES key generated successfully! [00:00:00.292,449] <inf> aes_cbc: Encrypting using AES CBC MODE... [00:00:00.292,755] <inf> aes_cbc: Encryption successful! [00:00:00.292,785] <inf> aes_cbc: ---- IV (len: 16): ---- [00:00:00.292,785] <inf> aes_cbc: Content: 6a 7a 46 34 b8 5d f2 41 93 54 e7 a7 f4 fa 7f d9 |jzF4.].A .T...... [00:00:00.292,816] <inf> aes_cbc: ---- IV end ---- [00:00:00.292,846] <inf> aes_cbc: ---- Plaintext (len: 64): ---- [00:00:00.292,846] <inf> aes_cbc: Content: 45 78 61 6d 70 6c 65 20 73 74 72 69 6e 67 20 74 |Example string t 6f 20 64 65 6d 6f 6e 73 74 72 61 74 65 20 62 61 |o demons trate ba 73 69 63 20 75 73 61 67 65 20 6f 66 20 41 45 53 |sic usag e of AES 20 43 42 43 20 6d 6f 64 65 2e 00 00 00 00 00 00 | CBC mod e....... [00:00:00.292,877] <inf> aes_cbc: ---- Plaintext end ---- [00:00:00.292,907] <inf> aes_cbc: ---- Encrypted text (len: 64): ---- [00:00:00.292,907] <inf> aes_cbc: Content: bc 6f a6 5e 16 7e f2 68 69 b1 9e ab c4 ba f4 4a |.o.^.~.h i......J 7a 89 89 10 b1 b6 46 9b 4f bb 17 59 e2 b8 1c af |z.....F. O..Y.... bb a6 c3 29 ba 50 3a b4 ba a7 50 b9 7d b8 90 2d |...).P:. ..P.}..- bc 6f ff 6f 48 44 45 16 87 c4 86 60 4d b5 f8 6c |.o.oHDE. ...`M..l [00:00:00.292,938] <inf> aes_cbc: ---- Encrypted text end ---- [00:00:00.292,968] <inf> aes_cbc: ---- Ciao, (len: 16): ---- [00:00:00.292,968] <inf> aes_cbc: Content: 6a 7a 46 34 b8 5d f2 41 93 54 e7 a7 f4 fa 7f d9 |jzF4.].A .T...... [00:00:00.292,999] <inf> aes_cbc: ---- Ciao, end ---- [00:00:00.293,029] <inf> aes_cbc: Decrypting using AES CBC MODE... [00:00:00.293,212] <inf> aes_cbc: ---- Decrypted text (len: 64): ---- [00:00:00.293,243] <inf> aes_cbc: Content: 45 78 61 6d 70 6c 65 20 73 74 72 69 6e 67 20 74 |Example string t 6f 20 64 65 6d 6f 6e 73 74 72 61 74 65 20 62 61 |o demons trate ba 73 69 63 20 75 73 61 67 65 20 6f 66 20 41 45 53 |sic usag e of AES 20 43 42 43 20 6d 6f 64 65 2e 00 00 00 00 00 00 | CBC mod e....... [00:00:00.293,243] <inf> aes_cbc: ---- Decrypted text end ---- [00:00:00.293,273] <inf> aes_cbc: Decryption successful! [00:00:00.293,304] <inf> aes_cbc: Example finished successfully!
Obviously, starting from this simple example, you can make encrypted data transmissions using symmetric or asymmetric cryptography and you can learn how to protect your important information.
It should be emphasized that in these examples, as well as in the other samples, the code is extremely clear and orderly and can be very useful for showing students who have just started programming how to create readable, elegant and versatile code.
The Nordic nRF7002 DK is an outstanding board. It offers many possibilities to the user and can be used for most of the protocols in use today in our homes and in our companies. I am constantly looking for devices that can serve the professional growth of my students and this board is really at the top. Usually in schools we stop at the Arduino environment for its simplicity of use but, especially for groups of advanced and motivated students, the use of this DK could be really useful.
Congratulations to Nordic for the excellent product.
Thanks to Element14 for giving me the opportunity to test the Nordic nRF7002.