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 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 |
|
nRF5x Command Line Tools |
v9.8.1 |
|
nRF Connect for Desktop |
v3.0.0 or later |
|
dtc (Linux only) |
v1.4.6 or later |
|
GCC |
See Install the 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 Cellular: 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 viaKconfig
. 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
Added the following samples:
Bluetooth: Central BAS - demonstrates how do use the GATT Battery Service (BAS) Client to receive battery level information from a compatible device.
Bluetooth: NUS shell transport - demonstrates how to use the Nordic UART Service (NUS) shell transport to receive shell commands from a remote device.
Added the following libraries:
GATT Battery Service (BAS) Client - used to retrieve information about the battery level from a device.
Nordic UART Service (NUS) shell transport - allows for sending shell commands from a host to the application.
Added Bluetooth LE Console - a desktop application that can be used to communicate with an nRF device over Bluetooth Low Energy using the Nordic UART Service (NUS) shell transport.
Added Manufacturer Data filter to the Bluetooth LE scanning.
Added application callbacks for the Output Report related operations in the HID service.
Partition Manager
Partition Manager now handles all HEX file merging.
Static and dynamic configuration of upgradable images is now supported.
nRF Desktop
The nrf_desktop reference implementation is moved from the
samples/
folder toapplications/
.The nrf_desktop configuration channel now allows data to be exchanged between the device and host in both directions.
Documentation
Added or updated documentation for the following samples:
nRF9160:
nRF9160: Secure Services
Secure Partition Manager
nRF9160: AWS FOTA
Bluetooth Low Energy:
Other:
Added or updated documentation for the following libraries:
nRF9160:
Secure Partition Manager (SPM)
at_cmd
librarySecure Services
Bluetooth Low Energy:
Other:
Added or updated the following documentation:
nRF BLE Controller (experimental)
API documentation of all libraries now also mentions the location of header files and source files.
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 nRF Security 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
The Counter Alarm does not work. A fix can be found in Pull Request #16736.
USB Mass Storage does not compile.
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.