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/NordicPlayground/fw-nrfconnect-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 the nRF Connect SDK, 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 Installing the required tools
GCC See Installing the 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 links:

Change log

The following sections provide detailed lists of changes by component.

nRF9160

BSD library

  • Updated bsdlib 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_cc310_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 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 bootlader 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.