nRF51 SDK v10.0.0

The nRF51 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:

nRF51 SDK v10.0.0
Release Date: Week 46
    - New BLE Peer Manager (experimental), replacement for the BLE Device 
    - FreeRTOS support
    - New ANT modules, additional examples, and new and expanded ANT+ 
    - Support for Dynastream's N5 Starter Kit
    - Three new BLE Services
    - Precompiled HEX files
The following toolchains/devices have been used for testing and 
    - ARM: MDK-ARM version and 5.16a
    - GCC: GCC ARM Embedded 4.9 2015q1
    - IAR: IAR Workbench 7.30.4
    - Windows XP SP3 32-bit
    - Windows 7 SP1 64-bit
    - Windows 8.1
Supported SoftDevices:
    - S110 v8.0.0
    - S120 v2.1.0
    - S130 v1.0.0
    - S210 v5.0.0
    - S310 v3.0.0
Supported boards:
    - PCA10028
    - PCA10031
    - Dynastream's N5DK1 (only for ANT examples)
    For other devices and boards, see the SDK documentation, section "Using
    the SDK with other boards".
  Drivers and libraries:
    New features:
        - Ported FreeRTOS to run on nRF51. Added two FreeRTOS examples: one
          to run on bare metal and one running a BLE HRS example using the 
          S110 and S130 SoftDevices.
        - Added a TWI transaction manager module for managing access to an 
          I2C bus. Added an example that uses this module to control two 
          sensors on the same I2C bus.
        - Added an example that shows how to use the TWI driver.
        - Added a low-power PWM module (software-controlled low-accuracy 
          PWM). Added an example that shows how to use this module.
        - Added an LED softblink module that uses the low-power PWM. Added 
          an example that shows how to use this module. 
        - Ported app_uart to use the UART driver and moved it to the 
          libraries folder.
        - Ported app_gpiote to use the GPIOTE driver.
        - Added nrf_log, a logging module that supports printf and that can
          use either UART or SEGGER RTT as transport medium.
    Fixed issues:
        - Mailbox module moved out of serialization.
        - Bug fixes in app_timer module.
        - App_timer module no longer requires to define the number of 
          timers used in the application.
        - Bug fixes in PWM module.
        - FIFO library: Extended APIs for multi-byte read and write to the 
        - Memory Manager module:
                - Extended number of block categories to 7 (from 3).
                - More RAM-efficient management of memory blocks.
                - Added a diagnostic function to help determine the right 
                  configuration needed for the application.

    New features:
     - Added a command for resetting the connectivity chip.
    New features:
     - Added the following new ANT modules: 
         - ant_encryption 
         - ant_key_manager
         - ant_search_config 
     - Extended/changed the following existing ANT modules:
         - ant_channel_config
         - ant_stack_config
         - ant_state_indicator      
     - Refactored the ANT/ANT+ examples and profiles to make them look more
       similar to the BLE profiles and examples:
         - The following ANT+ profiles have been extracted and extended: 
           Bicycle Power (ant_bpwr), Bicycle Speed & Cadence (ant_bsc), 
           Stride Based Speed & Distance (ant_sdm)
         - All ANT+ examples have been refactored to use extracted 
         - All ANT+/ANT examples have been refactored to use created 
     - Added three new ANT examples:
         - ant_scalable
         - ant_scalable_encrypted
         - ant_scan_and_forward
     - Added an experimental module named Peer Manager. This module will 
       eventually replace the existing Device Manager. The new Peer Manager
       improves on the Device Manager in multiple ways, mainly by 
       supporting concurrent central and peripheral connections.
     - Added an experimental flash memory module named Flash Data Storage 
       (FDS), which greatly reduces the need for time-consuming write and 
       clear operations. When using FDS, data can be arbitrarily long or 
       short (within about a page). All pieces of data are tagged with 
       types, which makes it easy to version data.
     - Updated the experimental HRS/RSCS Relay example:
        - It now uses the new Peer Manager instead of the Device Manager. 
          Therefore, it now supports bonding in both central and peripheral
        - It uses the new nrf_log module, which can use SEGGER RTT.
     - Removed the app_s130_demo example.
     - Added an experimental example supporting the Eddystone beacon 
     - Added the BLE Connection State module, which keeps track of certain 
       states of each connection (for example, whether it is encrypted) and
       can also keep track of user-defined states.
     - Added the Mapped Flags module, which keeps track of flags that are 
       mapped to keys. It is used by the BLE Connection State module.
     - Added ble_gatt_db.h (containing a GATT service structure) and 
       modified ble_db_discovery module to use it.
    BLE Services:
     - Updated the Bluetoothds_template application (experimental) to be 
       compatible with Bluetooth Developer Studio v1.0 and the Nordic 
       Semiconductor NRF5X v1.1.8 plugin.
     - Added three new services:
        - Location Navigation Service (experimental)
        - Proprietary LED Button Service (experimental)
        - Nordic UART Client Service (experimental)

Fixed issues:
     - App_pwm occasionally gives inverted signal.
Known issues:
    - Device Manager is not supported in multi-role S130 operation.
        - Device Manager works in peripheral or central only operation on 
          S130. This must be decided at compile time.
    - The DFU over BLE example has been tested to work with a minimum 
      connection interval of 11.25 ms. The application cannot handle 
      connection intervals lower than 11.25 ms and may undergo a system 
      reset in the middle of a firmware update.
      Workaround: If you face unexpected disconnects during the firmware
                  update process, consider increasing the connection 
                  interval used by the master.
    - The old manual procedure for testing buttonless DFU, as specified in
      the documentation, can lead to the DFU process hanging or returning 
      an error when used with Master Control Panel 3.8 and newer.
    - Bootloader binaries (.bin files) generated with the GCC makefile 
      should not be used. Instead, generate the bootloader bin files using 
      nrfutils, found on GitHub.

This document was last updated on Mon Nov 9 2015.
Please send us your feedback about the documentation! For technical questions, visit the Nordic Developer Zone.