The nRF5 SDK documentation includes descriptions and other reference material to help you understand the various components of the SDK. Examples are provided for development purposes only and should always be tested with your design.
See Getting Started for instructions on how to run the provided examples.
This version of the SDK supports the following SoftDevices:
To download a copy of the SDK documentation for offline use, go to developer.nordicsemi.com.
SDK Release Notes:
nRF5 SDK v12.1.0 ---------------- Release Date: Week 40, 2016 Highlights: - Added serialization of the S132 SoftDevice v3.0.0. Serialization of S130 is now deprecated. - Included the latest MDK v8.9.0 with a crucial workaround for nRF52832 Errata 108: http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.Rev1.errata/anomaly_832_108.html The following toolchains/devices have been used for testing and verification: - ARM: MDK-ARM version 5.18a - GCC: GCC ARM Embedded 4.9 2015q3 - IAR: IAR Workbench 7.30.4 Supported SoftDevices: - S130 v2.0.1 - S132 v3.0.0 - S212 v2.0.0 - S332 v2.0.0 Supported IC revisions: - nRF51422/nRF51822 IC revision 3 - nRF52832 IC revision 1 Supported boards: - PCA10028 - PCA10031 - PCA10040 - PCA20006 (only for beacon examples) - Dynastream's D52 Starter Kit (only for ANT examples) - Arduino Primo v2.1 (board header only) For other devices and boards, see the SDK documentation, section "Using the SDK with other boards". *** New features **************** ** Overall ** - Serialization of the S132 SoftDevice v3.0. *** Changes *********** ** Overall ** - Includes the latest Nordic MDK v8.9.0. - Small documentation updates. *** Known issues **************** ** Overall ** - Updating the MDK requires to manually copy the header and linker files into the SDK folder (ARM Keil uVision 4, IAR Workbench, ARMGCC). - When uploading an application to an nRF52 IC using nrfjprog, you must provide the "--reset/-r" argument or powercycle the board. ** BLE ** - When performing service discoveries after a reconnect, ble_db_discovery might fail to initialize. Refer to this link for a fix: https://devzone.nordicsemi.com/question/92452/nrf52-ble_db_discovery-failed-to-initialize-correctly-when-repeats-the-service-discovery/ - The "UART/Serial Port Emulation over BLE" (ble_app_uart) example does not compile with nrf_log enabled (missing nrf_log sources) - Some examples might have excessively verbose logging. - Performing pairing without bonding will cause examples to assert. To fix this, make sure the call to pm_peer_rank_highest() during PM_EVT_CONN_SEC_SUCCEEDED happens only when the procedure is PM_LINK_SECURED_PROCEDURE_BONDING. - When an Android device is used as a peripheral, it sends slave security request with the MITM bit set. The central applications in the SDK will reject the security request (Pairing Failed) because they do not support MITM. ** Secure DFU ** - nRF Toolbox for iPhone: - When an error occurs, nRF Toolbox does not automatically disconnect. You must therefore reset the board manually to disconnect before you can connect again. - It is not possible to abort a transfer when the device connection is lost. - On resumption, nRF Toolbox does not call execute, which makes it impossible to resume a transfer. - When transferring a combined SoftDevice and bootloader image, the bootloader might not be updated. - On nRF52 devices, the DFU operation is sometimes reported as completed, even though the device is not updated. ** NFC ** - NFC Type 2 Tag HAL requires using TIMER4 on nRF52832. ------------------------------------------------------------------------ nRF5 SDK v12.0.0 ---------------- Release Date: Week 35, 2016 Highlights: - Added a secure DFU bootloader example and bootloader libraries. This is an improved implementation that replaces the legacy DFU. - Added an implementation of the Continuous Glucose Monitoring Service (CGMS). - Added support for the S132 SoftDevice v3.0.0. - Added support for the S212 and S332 SoftDevices v2.0.0. - Added a capacitive sensor driver and library (csense). - Added Gazell support on nRF52 (experimental). - Added new SDK configuration header files to manage static configuration of an application. - Overhauled the log subsystem. - Removed support for the PCA10036 board and nRF52832 Engineering A and B MCUs. - Included a critical MDK update (v8.7.1). - Added support for the CMSIS DSP library. - Missing feature: Serialization of the latest S132 SoftDevice v3.0.0 API (work in progress). The following toolchains/devices have been used for testing and verification: - ARM: MDK-ARM version 5.18a - GCC: GCC ARM Embedded 4.9 2015q3 - IAR: IAR Workbench 7.30.4 Supported SoftDevices: - S130 v2.0.1 - S132 v3.0.0 - S212 v2.0.0 - S332 v2.0.0 Supported IC revisions: - nRF51422/nRF51822 IC revision 3 - nRF52832 IC revision 1 - nRF52832 Engineering C Supported boards: - PCA10028 - PCA10031 - PCA10040 - PCA20006 (only for beacon examples) - Dynastream's D52 Starter Kit (only for ANT examples) - Arduino Primo v2.1 (board header only) For other devices and boards see the SDK documentation, section "Using the SDK with other boards". *** New features **************** ** Overall ** - Added a secure DFU bootloader example and bootloader libraries. This is an improved implementation that replaces the legacy DFU. The example includes support for cryptographically signed operations. ** Drivers and libraries ** - Added a capacitive sensor driver and library for nRF51 and nRF52 based systems. - Added an app_timer profiler to get maximum operation queue usage. - Reduced RAM usage in app_timer and changed the app_timer_cnt_get function (see the migration note in the Timer library documentation). - Added pull-up configuration to the TWIS driver. - Added an FFT FPU example with the CMSIS DSP library. ** BLE ** - Added a Continuous Glucose Monitoring Service (CGMS) implementation, including an example application (experimental). - Added a Bond Management Service (BMS) implementation, including an example application (experimental). - Expanded APIs to support Privacy 1.2. - Updated Direct Test Mode (DTM), including support for nRF52. ** ANT ** - Added new examples: Continuous Waveform Mode, High Duty Search and Background Scanning, and Time Synchronization. ** NFC ** - Added an NFC BSP module (bsp_nfc) and an example showing the usage of NFC as a wakeup source. ** Proprietary ** - Gazell: Ported examples and library to nRF52 (experimental). *** Changes *********** ** Overall ** - Added a new log system across all SDK sources. Replaced printf and the old log system. ** Drivers and libraries ** - Unified the configuration subsystem and moved configuration to one file (sdk_config.h). - Changed the NRF51 and NRF52 ifdefs in drivers to peripheral related ifdefs. - Improved the PWM library (app_pwm): SET/CLEAR tasks instead of TOGGLE in nRF52. - Updated the TWI driver to de-configure GPIO pins in the uninit function (power-saving change). - Unified field names in HAL. - FreeRTOS fixes: - Fixed invalid assertion. - Improved tickless mode. - Simplified the TWI sensor example. - Added PCA10031 support to the led_softblink and low_power_pwm examples. ** Serialization ** - No support. ** BLE ** - Removed the Device Manager modules. All example applications now use the Peer Manager. - Removed the pstorage module. All example applications now use the fstorage module. ** ANT ** - Moved the following examples from experimental to production level: - Advanced Burst - Asynchronous Transmitter - Continuous Scanning Controller - Debug - Message Types - Relay - Search Sharing - Search Uplink ** NFC ** - Moved BLE OOB Pairing Data encoding to a separate module (nfc_ble_oob_advdata). - Modified nfc_t2t_lib and hal_nfc_t2t to conform with Nordic's coding standard. *** Fixed issues **************** ** Drivers and libraries ** - APP_FIFO: Fixed an issue with app_fifo_write writing one byte even though it was requested to write zero bytes. - APP_BUTTON: Memory improvements. - GPIOTE: Fixed handler pointer checking. - PDM: Fixed high power usage and unexpected restart after calling nrf_drv_pdm_stop(). - QDEC: Fixed QDEC un-initialization sequence. - SAADC: Added missing channel calibration. - SAADC: Fixed high power consumption and burst mode (oversampling without external trigger). - SPI: Fixed STOPPED interrupt handling. - SPIS: Fixed registers in get function of the amount of TX and RX done. - TWI: Fixed misc sending bytes and misleading error codes. - TWI: Added pin toggling functionality configuration during init (pin toggling sequence during init may cause issues with some devices). - UART: Fixed data corruption at 1 Mbaud and race conditions. - DELAY: Fixed nrf_delay_us(0) case. ** BLE ** - Fixed an issue where BLE example applications could assert if Button 2 was held to start advertising while in a connection. - Fixed several minor documentation mistakes that could make testing the BLE examples less clear. ** ANT ** - Fixed channel type setup in the following examples: Broadcast, Multi Channels, and Continuous Scanning Controller. ** NFC ** - NDEF Text record: Fixed UTF selection. - NDEF message size calculation. *** Known issues **************** ** Overall ** - Updating the MDK requires to manually copy the header and linker files into the SDK folder (ARM Keil uVision 4, IAR Workbench, ARMGCC). - When uploading an application to an nRF52 IC using nrfjprog, you must provide the "--reset/-r" argument or powercycle the board. ** BLE ** - Some examples might have excessively verbose logging. - Performing pairing without bonding will cause examples to assert. To fix this, make sure the call to pm_peer_rank_highest() during PM_EVT_CONN_SEC_SUCCEEDED happens only when the procedure is PM_LINK_SECURED_PROCEDURE_BONDING. - When an Android device is used as a peripheral, it sends slave security request with the MITM bit set. The central applications in the SDK will reject the security request (Pairing Failed) because they do not support MITM. ** Secure DFU ** - nRF Toolbox for iPhone: - When an error occurs, nRF Toolbox does not automatically disconnect. You must therefore reset the board manually to disconnect before you can connect again. - It is not possible to abort a transfer when the device connection is lost. - On resumption, nRF Toolbox does not call execute, which makes it impossible to resume a transfer. - When transferring a combined SoftDevice and bootloader image, the bootloader might not be updated. - On nRF52 devices, the DFU operation is sometimes reported as completed, even though the device is not updated. ** NFC ** - NFC Type 2 Tag HAL requires using TIMER4 on nRF52832.