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 Highlights: - New BLE Peer Manager (experimental), replacement for the BLE Device Manager - FreeRTOS support - New ANT modules, additional examples, and new and expanded ANT+ profiles - Support for Dynastream's N5 Starter Kit - Three new BLE Services - Precompiled HEX files The following toolchains/devices have been used for testing and verification: - ARM: MDK-ARM version 184.108.40.206 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". Changes: 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. Changes: - FIFO library: Extended APIs for multi-byte read and write to the FIFO. - 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. Serialization: New features: - Added a command for resetting the connectivity chip. ANT: 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 profiles. - All ANT+/ANT examples have been refactored to use created modules. - Added three new ANT examples: - ant_scalable - ant_scalable_encrypted - ant_scan_and_forward BLE: - 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 roles. - 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 format. - 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.