nRF5 SDK v11.0.0
Introduction

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:

SDK Release Notes:

nRF5 SDK v11.0.0
----------------
Release date: Week 10, 2016
 
Highlights:
- Combined SDK supporting both the nRF51 and the nRF52 Series
- Moved Peer Manager out of experimental
- Moved NFC libraries out of experimental and added support for low 
  power mode
- Added drivers for all nRF52 peripherals
- Added serialization of the S132 and S130 SoftDevices
- Added support for SoftDevices S130 v2.0.0, S132 v2.0.0, S212 v0.9.x, 
  and S332 v0.9.x
- Replaced the Enhanced ShockBurst library with a new implementation 
  (based on µESB)
- Included a critical MDK update (v8.5.0)
- Removed support for CMSIS Packs
 
The following toolchains/devices have been used for testing and
verification:
- ARM: MDK-ARM version 5.16a
- GCC: GCC ARM Embedded 4.9 2015q1
- IAR: IAR Workbench 7.30.4
 
Supported SoftDevices:
- S130 v2.0.0
- S132 v2.0.0
- S212 v0.9.x
- S332 v0.9.x
 
Supported IC revisions:
- nRF51 IC revision 3
- nRF52 IC revision 1
- nRF52 Engineering C
- nRF52 Engineering A and Engineering B (see Compatibility)
 
Supported boards:
- PCA10028
- PCA10031
- PCA10036 (see Compatibility)
- PCA10040 (see Compatibility)
- PCA20006 (only for beacon examples)
For other devices and boards, see the SDK documentation, section 
"Using the SDK with other boards".
 
Compatibility:
The SoftDevices that are supported in this SDK are not compatible 
out-of-the-box with nRF52 Engineering A and Engineering B (the 
IC revisions present on all versions of PCA10036 and on PCA10040
v0.9.0).
However, you can use the latest SoftDevices on Engineering A and B 
nRF52 chips for development purposes if you implement the 
workaround for anomaly 73 (TIMER: Event lost, see 
http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52/dita/nrf52/errata.html).
 
*** New features
****************
 
** Drivers and libraries **
- Added a COMP driver (nRF52 only)
 
** BLE **
- Extended the Peer Manager functionality:
    - Added an additional data unit (Peer Rank) that can be used for 
      tracking which bonds are most (and least) recently used
    - Added support for LE Secure Connections in Peer Manager 
      (experimental)
- Added an example application for LE Secure Connections (experimental,
  support for Keil5, IAR, and GCC only)
 
** ANT **
- Added new examples (experimental):
    - Advanced Burst
    - Asynchronous Transmitter
    - Continuous Scanning Controller
    - Debug Demo
    - IO Demo
    - Message Types
    - Search Sharing
    - Search Uplink
- ANT OTA bootloader application now uses the SoCLibrary API to perform 
  NVIC operations instead of direct operations
- Added multiprotocol examples for the S332 SoftDevice:
    - Heart Rate Monitor Relay Application
    - Shared Channels (experimental)
 
** Serialization **
- Added serialization of the S130 and S132 v2.0.0 SoftDevices
 
** NFC **
- Added a generic NDEF message parser that can parse NDEF messages to 
  the format that is used by the generic NFC NDEF message builder
- Added a module and example for creating NDEF text records
- Added and modified NFC pairing examples (experimental):
    - HID Keyboard Application with BLE pairing using NFC (new)
    - Heart Rate Application with BLE pairing using NFC (improved user 
      experience)
 
** Proprietary **
- Added a Low Power Transmitter/Receiver example for ESB
 
*** Changes
***********
 
** Overall **
- Support for CMSIS Packs has been removed. The SDK is delivered as zip 
  file only.
 
** Drivers and libraries **
- The MSB and LSB macros have been renamed to MSB_32 and LSB_32. Code 
  using these macros should be changed to use either the 16- or the 
  32-bit variant.
 
** BLE **
- Multi-instance handling of Service client modules has been greatly 
  improved. The client examples now handle service discovery in the main
  application context. The main application context must manage which 
  client instance belongs to which connection link.
- The Multi-link Example has been modified to demonstrate multiple 
  client instances in a better way.
- The ble_app_multilink_peripheral example has been removed. 
  ble_app_blinky now acts as the peripheral for ble_app_multilink_central.
- Heart Rate Application with RTX: Support for nRF52 has been removed.
- The Peer Manager is no longer experimental.
- The following BLE examples now use Peer Manager:
    - Central: 
         Running Speed and Cadence Collector (ble_app_rscs_c)
    - Central and Peripheral: 
         BLE Relay (ble_app_hrs_rscs_relay)
         BLE LE Secure Connections Multirole (ble_app_multirole_lesc)
    - Peripheral: 
         Alert Notification (ble_app_alert_notification)
         Proximity (ble_app_proximity)
         Glucose (ble_app_gls)
         HID Keyboard Application with BLE pairing using NFC (experimental_ble_app_hids_keyboard_pairing_nfc)
- The behavior of Peer Manager and Device Manager has changed to reject 
  pairing requests from already bonded peer centrals.
- Several BLE peripheral examples now support the S332 SoftDevice.
- Minor bugfixes in DFU.
 
** ANT **
- The ANT bootloader was aligned to MBR version 2.0.0.
- The following ANT examples now support the S332 SoftDevice 
  (experimental):
    - ANT Bootloader/DFU
    - Message Types
 
** NFC **
- The Adafruit Tag Reader Example has been extended to show added NDEF 
  parsing functionality.
- The NFC Type 2 Tag HAL was improved with a workaround for supporting 
  low power mode.
 
** Proprietary **
- A new implementation of the Enhanced ShockBurst (ESB) protocol 
  supporting both nRF51 and nRF52 has been added.
 
*** Fixed issues
****************
 
** Drivers and libraries **
- GPIOTE: Fixed the problem of lost events in low-accuracy sense toggle 
          mode
- SAADC: Added functionality to use one AIN with multiple channels
- UART: Fixed a glitch on TX pin when initializing the driver
- UART: Fixed the problem that TX bytes were sent in wrong order in 
        app_uart_fifo
 
** BLE **
- Removed a vulnerability in Peer Manager and Device Manager that would 
  allow malicious attackers to overwrite the bonding information of a 
  bonded device
 
** ANT **
- Fixed the handling of send-until-success request types in the ANT 
  request controller
- Fixed an ant_evt_t structure member alignment bug
 
** NFC **
- Fixed the NFC examples to work when the UART logger is enabled
- Fixed a buffer leakage bug in the module for creating 
  application/vnd.bluetooth.le.oob records
 
*** Known issues
****************
 
** Drivers and libraries **
- Using the NVIC API directly and not through a SoftDevice causes 
  problems, especially when NVIC_EnableIRQ or NVIC_DisableIRQ are called
  from critical sections.
 
** BLE **
- All BLE examples have been tested only on PCA10028 and PCA10040.
- BLE Examples that use pairing are incompatible with examples in SDK 
  version 6.1 and earlier that do not use pairing.
 
** ANT **
- Previous versions of the ANT DFU example are incompatible with the ANT
  S212/S332 SoftDevices version 0.9.x.
 
** NFC **
- NFCT requires using TIMER4 on nRF52832.
 
** FPU **
- When the FPU is in use, it triggers the FPU_IRQn interrupt when one of
  the six exception flags (IDC, IXC, UFC, OFC, DZC, IOC) is set.
  The FPU interrupt will always set the pending flag (even if the 
  interrupt is not enabled), irrespective of whether the user is 
  interested in the exception bit.
  The pending flag then prevents the SoftDevice from going into low 
  power mode when sd_app_evt_wait() is called.
  Therefore, always clear the exception bits and the pending interrupt 
  before calling sd_app_evt_wait(). See the code below for an example 
  implementation.
  FPU exception bit definition:
  http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0553a/BABBFJEC.html
  Example code:
  {
  // Set bit 7 and bits 4..0 in the mask to one (0x ...00 1001 1111)
  #define FPU_EXCEPTION_MASK 0x0000009F 
 
  ...
      /* Clear exceptions and PendingIRQ from the FPU unit */
      __set_FPSCR(__get_FPSCR()  & ~(FPU_EXCEPTION_MASK));      
      (void) __get_FPSCR();
      NVIC_ClearPendingIRQ(FPU_IRQn);
 
      /* Call SoftDevice Wait For event */
      error_code = sd_app_evt_wait();
  }



Documentation feedback | Developer Zone | Updated