nRF5 SDK for Thread is intended for use with the nRF52840 Development Kit.
The SDK provides the precompiled OpenThread library. The library was built on Linux with arm-none-eabi-gcc version 6.3.0 with the following parameters:
OpenThread is natively developed in POSIX environment, and it is a recommended setup to build and test the Thread SDK examples. However, it is possible to build the examples on Windows with the MinGW environment. If you have already built regular nRF5 SDK examples with the GCC compiler on you machine, you should be able to build Thread examples as well, without additional effort.
The following peripherals are owned by the OpenThread stack and cannot be used directly by an application:
OpenThread API can be used to access the hardware random number generator.
You must install a set of tools to complete the environment setup process.
Make
First, make sure that you have the make
tool installed on your system. To do this, run the following command:
If the command does not provide output, you must install the make
tool. Refer to the documentation of your Linux distribution for information on how to download and install it.
GNU ARM Embedded Toolchain
To be able to compile projects for the nRF52840 Development Kit, you must install GNU ARM Embedded Toolchain in version 4.9.3. You can download this version from GNU ARM Embedded Toolchain. Make sure to install it in the /usr/local/gcc-arm-none-eabi-4_9-2015q3
folder.
If you already have another version of arm-none-eabi installed, you can modify the default path in the following file: <InstallFolder>/components/toolchain/gcc/Makefile.posix
.
SEGGER J-Link
To enable communication between devices, you need the SEGGER J-Link utility. Recommended version is 6.14d, which can be downloaded from J-Link Download page.
nrfjprog
You need the nrfjprog tool to program the nRF52840 chips. The latest version of this tool can be found on the nRF52840 product website.
Make
The make
tool, required to build GCC projects, is not natively available on Windows. However, the MinGW package can be used to install it:
C:\MinGW
C:\MinGW\bin
C:\MinGW\msys\1.0\bin
make
tool was installed correctly by typing make --version
and pressing Enter. If there are no errors during installation, the following message is displayed: To be able to compile projects for the nRF52840 Development Kit, you must install GNU ARM Embedded Toolchain in version 4.9.3. You can download this version from GNU ARM Embedded Toolchain. It is recommended to install it in the default directory: C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2015q3
.
If you already have another version of arm-none-eabi installed, or have installed it in a different directory, you can modify the default path in the following file: <InstallFolder>\components\toolchain\gcc\Makefile.windows
.
nRF5x Command Line Tools
To communicate with and program the nRF52840 Development Kit, you need the SEGGER J-Link and nrfjprog tools. Download and install the latest version of nRF5x Command Line Tools from the nRF52840 product website. This package includes the latest version of SEGGER J-Link and nrfjprog utilities.
After the installation is complete, add nrfjprog installation directory (for example C:\Program Files (x86)\Nordic Semiconductor\nrf5x\bin\
) to your system PATH variable.
Building an example
To build an example, perform the following steps:
<InstallFolder>/examples/thread/experimental/cli/pca10056/blank/armgcc
.make
command in this folder. If the environment was set up correctly, the build process will start._build
folder: <InstallFolder>/examples/thread/experimental/cli/pca10056/blank/armgcc/_build/nrf52840_xxaa.hex
. make
command on Windows, make sure that you do not have any other make
instances from other toolsets like Cygwin or GnuWin32 in your PATH variable. Running an example
To program the nRF52840 Development Kit, first connect it to your computer with a USB cable. When your board is detected, type the following commands:
You can use RTT Viewer to view the log messages produced by the example.
It is recommended to use the provided, precompiled version of the OpenThread library. However, it is possible to compile the latest version from GitHub. Currently, only the POSIX environment is supported, so you need Linux or Mac to build the OpenThread library.
libmbedcrypto.a
) provided with the SDK. The library available in OpenThread repository does not support hardware acceleration. You can still use it, but the commissioning procedure takes more time in such case (see table for comparison). For the best performance, use the library provided with the SDK. Version | Commissioning (with Network Discovery) | DTLS Handshake |
---|---|---|
Without CryptoCell | 37,76 s | 32,88 s |
With CryptoCell | 6,31 s | 1,51 s |
Follow these steps to build the library:
make
with the following parameters: <OpenThreadFolder>/output/lib
to the SDK folder: /external/openthread/lib/gcc
. Do not overwrite the libmbedcrypto.a
library if you want to use hardware accelerator for cryptographic operations.<OpenThreadFolder>/include
folder into the /external/openthread
folder.If you want to update the mbedTLS library with CryptoCell support, for example when OpenThread updates the mbedTLS version it uses, you can build the new library within SDK.
To build the new library, perform the following steps:
<InstallFolder>/external/mbedtls
.<InstallFolder>/components/thread/experimental/crypto/lib_nrf52/armgcc
folder.make
to build the library.libmbedcrypto.a
library into the OpenThread folder: <InstallFolder>/external/openthread/lib/gcc
.See the following topics for further introduction into Nordic Semiconductor's Thread implementation.