nRF Connect SDK v1.0.0 Release Notes

nRF Connect SDK delivers reference software and supporting libraries for developing low-power wireless applications with Nordic Semiconductor products. It includes the MCUboot and the Zephyr RTOS open source projects which are continuously integrated and re-distributed with the SDK.

nRF Connect SDK v1.0.0 supports product development with the nRF9160 Cellular IoT device. It contains reference applications, sample source code, and libraries for Bluetooth Low Energy devices in the nRF52 Series, though product development on these devices is not currently supported with the nRF Connect SDK.

Highlights

  • nRF Connect SDK v1.0.0 is aligned with the production release of nRF9160.

  • Added a new AWS FOTA sample demonstrating application firmware update through the use of AWS IoT Jobs with MQTT and HTTP.

  • Added secure services in Secure Partition Manager (SPM) for TrustZone devices (nRF9160).

  • Updated the Download Client library with support for HTTPS and IPv6.

  • Included a new version of the nRF BLE Controller.

Release tag

The release tag for the nRF Connect SDK manifest repository (https://github.com/nrfconnect/sdk-nrf) is v1.0.0. Check the west.yml file for the corresponding tags in the project repositories.

To use this release, check out the tag in the manifest repository and run west update. See Getting the nRF Connect SDK code for more information.

Supported modem firmware

  • mfw_nrf9160_1.0.0

Starting from nRF Connect SDK v1.0.0, use nRF Connect for Desktop for modem firmware updates.

Supported boards

  • PCA10090 (nRF9160 DK)

  • PCA10056 (nRF52840 Development Kit)

  • PCA10059 (nRF52840 Dongle)

  • PCA10040 (nRF52 Development Kit)

  • PCA10028 (nRF51 Development Kit)

  • PCA63519 (Smart Remote 3 DK add-on)

Required tools

In addition to the tools mentioned in Installing manually, the following tool versions are required to work with the nRF Connect SDK:

Tool

Version

Download link

SEGGER J-Link

V6.41

J-Link Software and Documentation Pack

nRF5x Command Line Tools

v9.8.1

nRF5x Command Line Tools

nRF Connect for Desktop

v3.0.0 or later

nRF Connect for Desktop

dtc (Linux only)

v1.4.6 or later

Install the required tools

GCC

See Install the GNU Arm Embedded Toolchain

GNU Arm Embedded Toolchain

As IDE, we recommend to use SEGGER Embedded Studio (Nordic Edition), version 4.18 or later. It is available from the following platforms:

  • Windows x86

  • Windows x64

  • Mac OS x64

  • Linux x86

  • Linux x64

Changelog

The following sections provide detailed lists of changes by component.

nRF9160

  • Added the following samples:

    • nRF9160: AWS FOTA - shows how to perform over-the-air firmware updates of an nRF9160 through the use of AWS IoT Jobs with MQTT and HTTP.

    • nRF9160: Secure Services - demonstrates using the reboot and random number services.

  • Added the following libraries:

    • FOTA download - handles Firmware Over The Air (FOTA) downloads.

    • at_cmd library - facilitates handling of AT Commands by multiple modules.

    • AWS jobs - facilitates communication with the AWS IoT Jobs service.

    • AWS FOTA - combines the AWS jobs and FOTA download libraries to create a user-friendly library that can perform firmware-over-the-air (FOTA) update using HTTP and MQTT TLS.

  • Asset Tracker sample:

    • The orientation detector now supports interrupt handling.

  • nRF Connect SDK now uses upstream CoAP implementation. The nRF9160: Simple MQTT sample was rewritten to use the upstream library, and the downstream CoAP was removed.

  • The nRF9160: HTTP application update sample has been updated to use the FOTA download library.

BSD library

  • Updated BSD library to version 0.3.3.

  • Introduced a new header bsdlib.h to be used by the application to initialize and shut down the library.

  • Library initialization during system initialization (SYS_INIT) is now optional, and controlled via Kconfig. The default behavior is unchanged.

Secure Partition Manager (SPM) library

  • Added random number secure service, providing access to the RNG hardware from the non-secure firmware.

  • Non-Secure callable support for TrustZone:

    • A secure_services module is now available over secure entry functions. This means:

      • secure_services.c resides in secure firmware (SPM).

      • secure_services.h declares functions that can be called from non-secure firmware.

    • Secure Partition Manager (SPM) now exposes secure entry functions by default.

    • Added reboot as a secure service. The reboot secure service is called when the non-secure firmware calls sys_reboot().

  • PWM0-3 added as non-secure.

Common libraries

  • Added the following library:

    • PPI trace - enables tracing of hardware peripheral events on pins.

Enhanced Shockburst

  • Added support for nRF52811.

Download Client

  • Added IPv6 support, with fallback to IPv4.

  • Added HTTPS support. The application must provision the TLS security credentials.

  • Several improvements to buffer handling and network code.

  • Library now runs in a separate thread.

Crypto

  • Added nrf_cc3xx_mbedcrypto library library v0.8.1 (experimental release) to perform hardware-accelerated cryptography using Arm CryptoCell CC310 on devices with the CC310 peripheral.

nRF BLE Controller

  • Added support for the nRF BLE controller 0.2.0-4.prealpha. Includes drivers to access HCI, flash, clock control, and entropy hardware. For details, see Changelog.

Subsystems

Bluetooth Low Energy

Partition Manager

  • Partition Manager now handles all HEX file merging.

  • Static configuration of upgradable images is now supported.

nRF Desktop

  • The nrf_desktop reference implementation is moved from the samples/ folder to applications/.

  • The nrf_desktop configuration channel now allows data to be exchanged between the device and host in both directions.

Documentation

Known issues

nRF9160

  • The nRF9160: Asset Tracker sample does not wait for connection to nRF Connect for Cloud before trying to send data. This causes the sample to crash if the user toggles one of the switches before the board is connected to the cloud.

  • The nRF9160: Asset Tracker sample might show up to 2.5 mA current consumption in idle mode with CONFIG_POWER_OPTIMIZATION_ENABLE=y.

  • If a debugger (for example, J-Link) is connected via SWD to the nRF9160, the modem firmware will reset. Therefore, the LTE modem cannot be operational during debug sessions.

  • The SEGGER Control Block cannot be found by automatic search by the RTT Viewer/Logger. As a workaround, set the RTT Control Block address to 0 and it will try to search from address 0 and upwards. If this does not work, look in the builddir/zephyr/zephyr.map file to find the address of the _SEGGER_RTT symbol in the map file and use that as input to the viewer/logger.

  • nRF91 fails to receive large packets (over 4000 bytes) over NB-IoT. LTE-M is not affected.

  • nrf_connect fails if called immediately after initialization of the device. A delay of 1000 ms is required for this to work as intended.

Crypto

  • The Nordic Security Module glue layer is broken because symbol renaming is not handled correctly. Therefore, the behavior is undefined when selecting multiple back-ends for the same algorithm (for example, AES).

Subsystems

Bluetooth Low Energy

  • Bluetooth: Peripheral LBS does not report the Button 1 state correctly.

  • The central samples (Bluetooth: Central UART, Bluetooth: Central HIDS) do not support any pairing methods with MITM protection.

  • On some operating systems, the nrf_desktop application is unable to reconnect to a host.

  • central_uart: A too long 212-byte string cannot be handled when entered to the console to send to peripheral_uart.

  • central_hids: After flashing a HEX file to the nrf52_pca10040 board, UART connectivity is lost when using the BLE Controller. The board must be reset to get UART output.

  • On nRF51 devices, BLE samples that use GPIO might crash when buttons are pressed frequently. In such case, the GPIO ISR introduces latency that violates real-time requirements of the Radio ISR. nRF51 is more sensitive to this issue than nRF52 (faster core).

Bootloader

  • Building and programming the immutable bootloader (see Secure bootloader chain) is not supported in SEGGER Embedded Studio.

  • The immutable bootloader can only be used with the following boards:

    • nrf52840_pca10056

    • nrf9160_pca10090

DFU

  • Firmware upgrade using mcumgr or USB DFU is broken for non-secure applications, because the metadata used by MCUboot is stored in a secure section of flash and is not readable by the non-secure application. Therefore, it is not possible to upload the image. To work around this issue, modify mcumgr to hard code the addresses instead of reading them from the metadata.

Zephyr

nrfxlib

  • In the BSD library, the GNSS sockets implementation is experimental.

  • Forcing a cold start and writing AGPS data is not yet supported.

nrfx 1.7.1

  • nrfx_saadc driver: Samples might be swapped when buffer is set after starting the sample process, when more than one channel is sampled. This can happen when the sample task is connected using PPI and setting buffers and sampling are not synchronized.

  • The nrfx_uarte driver does not disable RX and TX in uninit, which can cause higher power consumption.

  • The nrfx_uart driver might incorrectly set the internal tx_buffer_length variable when compiled with high optimization level.

In addition to the known issues above, check the current issues in the official Zephyr repository, since these might apply to the nRF Connect SDK fork of the Zephyr repository as well. To get help and report issues that are not related to Zephyr but to the nRF Connect SDK, go to Nordic’s DevZone.