nRF5 SDK v12.2.0
----------------
Release Date: Week 49, 2016

Highlights:
- Added an NFC Type 4 Tag stack (experimental).
- Replaced the existing Eddystone example with a new implementation. 
- Added experimental support for the new nRF52840 chip. See the section 
  "Scope for the nRF52840" for information about which SDK features are 
  supported on the new chip.

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 boards:
- PCA10028
- PCA10031
- PCA10040
- PCA10056 (limited support; see the "Scope for the nRF52840" section)
- PCA20006 (only for beacon examples)
- Dynastream's N5DK1 (only for ANT examples)
 
For other devices and boards, see the SDK documentation, section "Using
the SDK with other boards".
 
 
*** Scope for the nRF52840 chip
********************************
Support for the new development board PCA10056 has been added.
All examples and libraries for the new chip should be treated as 
experimental.
 
The following SDK features are supported on the new nRF52840 chip:
  - Most BLE, hardware peripheral, and NFC examples (with some 
    exceptions; see the available example projects for details)
  - Peripheral HAL and drivers (both for existing and new peripherals)
  - Library supporting CC310 CryptoCell
  - NFC Type 2 Tag and Type 4 Tag

The following SDK features are not supported on the new nRF52840 chip:
   - ANT
   - Secure DFU
   - Serialization
   - DTM
   - ESB and Gazell
   - RTX and FreeRTOS 
   - Eddystone
    
    
*** New features
*****************
 
** Drivers and libraries **
- Added a SysTick driver.
- Added a queue module (nrf_queue).
- Added a memory block allocator module (nrf_balloc).
- Added an atomic operations module (nrf_atomic, nRF52 Series only).
- Added an atomic FIFO module (app_atfifo, nRF52 Series only).
- Added a power management module (nrf_pwr_mgmt).
- Added an asynchronous SD card driver using SPI.
- Ported fatfs for nRF5 (external library).
 
*** nRF52840 specific updates ***
- Added a USB device stack and the following USB classes: HID, MSC,
  CDC ACM, Audio.
- Added a QSPI driver for external memories.
- Added support for 2 UART instances.
- Added support for 4 PWM instances.
- Added support for more GPIO (48 pins).
 
** BLE **
- Integrated the Eddystone project from GitHub, replacing the existing
  Eddystone Beacon example. The new implementation follows the 
  specification at https://github.com/google/eddystone (commit 97225a9 
  from Sep 28, 2016). The new Eddystone library and example supports both
  nRF51 and nRF52 (experimental).
- Added an example to demonstrate ATT throughput with long ATT_MTU and
  DLE (experimental).
- Added a GATT module that encapsulates the long ATT_MTU feature.
- Extended the Apple Notification Center Service (ANCS) Service module
  and example application:
    - Added 'notification actions' that depend on the app (for example,
      marking a new email as read or dialing up a missed call).
    - Added functionality to retrieve app attributes, which allows to
      get the name of the app that provided a notification.
- Extended the Continuous Glucose Monitoring Service (CGMS) example
  application to handle greater, lesser, or equal filtering for the
  Record Access control point.
- Updated the BLE examples to no longer attempt to re-initiate bonding
  if encryption fails due to a missing or wrong key.
 
** NFC **
- Added support for NFC Type 4 Tag with both read and write NDEF
  access (experimental).
- Added support for raw ISO-DEP transmission protocol mode.
- Added Type 4 Tag support to the Adafruit Tag Reader example.
 
** Cryptography **
- Added support for the ARM CryptoCell 310 hardware-accelerated
  cryptography engine.
- Added examples to show how to use the hardware-accelerated
  cryptography functionality.


*** Changes
************
 
** Overall **
- Changed the default interrupt priorities for nRF52 to be the same as
  the SoftDevice event priority.
- Prefixed error codes with "NRF_".
- Fixed a bug in the clock driver where the driver was failing to handle 
  two requests coming from the same source.
- Removed nRF52 support for RTX. RTX is now supported on nRF51 chips 
  only.
- Updated the example Secure DFU images. They are now created with the
  debug flag enabled.
- Modified the SoftDevice header files nrf_soc.h and nrf_nvic.h to
  support PCA10056 (nRF52840).
- Split up the files located in the examples\bsp folder to new locations:
  components\libraries\bsp and components\boards.
 
** Drivers and libraries **
- Updated the RNG driver so that it supports the SoftDevice being
  enabled and disabled. Removed the function nrf_drv_rng_pool_capacity().
- Changed the API for function app_button_is_pushed() (located in
  app_button.h).
- Extended the app_gpiote API to support more than 32 pins. Removed 
  unimplemented functions from the API.
- Extended the nrf_gpio API to support more than 32 pins. Removed 
  functions that referred to 8-bit ports (for example, 
  nrf_gpio_port_read).
- Removed the function nrf_drv_adc_gpio_to_ain() from the 
  nrf_drv_adc API.
- Removed the function nrf_drv_comp_gpio_to_ain() from the 
  nrf_drv_comp API.
- Removed the function nrf_drv_saadc_gpio_to_ain() from the 
  nrf_drv_saadc API.
  
** BLE **
- Fixed an issue that would cause some central examples to fail when
  restarting scanning using a whitelist.
- Updated the Peer Manager modules to return NRF_ERROR_STORAGE_FULL
  instead of NRF_ERROR_NO_MEM.
- The field "peer_id" in the Peer Manager structure
  "pm_peer_data_bonding_t" has been renamed to "peer_ble_id".
- Fixed an issue where the Database Discovery Module would not
  re-initialize properly upon successive discoveries.
- Fixed an issue where the Database Discovery Module would fail to
  discover the extended properties descriptor and the characteristic
  user description descriptors.
- Fixed an issue where the Apple Notification Center Service (ANCS)
  example application could crash if the connecting iPhone disconnected
  immediately after connecting.
 
** NFC **
- Modified the Adafruit NFC Shield library to support reading Type 2 and
  Type 4 Tags.
- Improved performance of the Adafruit library in Type 2 Tag reader mode
  (faster read).
- Added LE Secure Connections OOB values encoding in ble_pair_msg.
- Enabled dynamic update of the TK value in ble_pair_msg.
 
 
*** 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.
- RTX is not supported on nRF52 chips.
 
** BLE **
- Some examples might have excessively verbose logging.
- In the Proximity Application, writing "High Alert" to the AlertLevel
  characteristic of the Link Loss Service does not trigger a high alert
  when the link is lost.
- 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.
- Eddystone Beacon Application:
   - Advertisement intervals are not verified. Clients must ensure that
     the configured advertisement interval is within the valid range.
     Note that EID/eTLM configurations might require advertisement
     intervals larger than the default value.
   - Caution: On nRF51 devices, eTLM calculation takes around 500 ms
     and is performed once per EID slot in the same interrupt level
     priority as the 'Unlock' functionality. Therefore, if multiple EID
     slots and an eTLM slot are configured, the client might not be able
     to unlock a beacon that has an eTLM slot and uses the default
     advertisement interval. To resolve this issue, increase the
     advertisement interval.
- Buttonless DFU Template Application (experimental):
   - The project setup of the example is wrong and does not fit into the
     available space below the DFU bootloader. To fix this problem, 
     change the IROM1 size from 0x61000 to 0x59000. In addition, comment
     out the code section that reserves a codepage at 0x7E000 for MBR 
     parameters. For details, see  
     https://devzone.nordicsemi.com/question/100609/sdk-12-bootloader-erased-after-programming/
   - To switch to DFU mode, you must write to the DFU control point. 
     However, this characteristic is set as read only. Add the following
     code line to enable the write property:
       char_md.char_props.write = 1;
     For details, see
     https://devzone.nordicsemi.com/question/93414/sdk12-ble_app_buttonless_dfu/#95079 

 
** NFC **
- NFC Type 2 and Type 4 Tag HAL modules require using TIMER4 on nRF52832.
- Type 2 Tag on nRF52840 chips might fail unpredictably.
- Some mobile phone apps cannot write Type 4 Tag ("NFC Tool" seems to be
  okay to use).


========================================================================

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.


========================================================================

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();
  }


========================================================================

nRF5 SDK v11.0.0-2.alpha
------------------------
Release date: Week 51, 2015
 
Highlights:
- Common SDK supporting both the nRF51 and the nRF52 Series  
- Added support for SoftDevices S130 v2.0.0, S132 v2.0.0, and S212 v0.5.1
- Permanently removed support for SoftDevices S110 and S120
- Temporarily removed support for ANTBLE SoftDevices
- Enhanced Peer Manager and FDS modules
- Enhanced DFU module
- Configured nrf_log to use UART by default
- Added HardFault handler
- Added drivers for nRF52 peripherals: nrf_drv_i2s, nrf_drv_pdm, 
  nrf_drv_pwm
- Enhanced drivers to work for both nRF51 and nRF52: nrf_drv_twi, 
  nrf_drv_spi, nrf_drv_uart, nrf_drv_timer, nrf_drv_ppi, nrf_drv_clock
- Added FreeRTOS and RTX support for nRF52
- Added NFC modules: Type 2 Tag parser, generic NDEF message builder, 
  new NFC records and messages
- Added support for Adafruit PN532 NFC shield to provide NFC Forum 
  Device (Poller) functionality
- Improved support for NFC: enhanced NFC Type 2 Tag library and 
  Connection Handover module
 
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
- Windows XP SP3 32-bit
- Windows 7 SP1 64-bit
- Windows 8.1
 
Supported SoftDevices:
- S130 v2.0.0-7.alpha
- S132 v2.0.0-7.alpha
- S210 v5.0.0
- S212 v0.5.1.alpha
 
Supported boards:
- PCA10028
- PCA10031
- PCA10036
- PCA10040
- PCA20006 (only for beacon examples)
- 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:
  - Added driver and example for PWM peripheral (nrf_drv_pwm).
  - Added driver and example for I2S peripheral (nrf_drv_i2s).
  - Added driver for PDM peripheral (nrf_drv_pdm).
  - Enhanced nrf_drv_twi and nrf_drv_spi to support AUTOLOG and 
    triggering transfers from PPI.
  - Added double buffering of RX buffers to nrf_drv_uart.
  - Extended nrf_drv_timer to support more compare channels and low 
    power counter mode in nRF52.
  - Extended nrf_drv_ppi API to support forks.
  - Added support for FreeRTOS and RTX on nRF52.
  - Simplified SPI and SPIS examples.
 
  Fixed issues:
  - In certain cases, FreeRTOS on nRF51 kept interrupts disabled after 
    context switch (see https://devzone.nordicsemi.com/question/57993/tickless-freertos-in-sdk-100-app_uart).
 
  Known issues:
  - The FreeRTOS nRF51 port has a wrong assertion during system startup.
    If you are using assertions, you can safely ignore it. Alternatively,
    comment out line 188 in port_cmsis.c.
 
  Changes:
  - Enhanced nrf_drv_clock driver (asynchronous clock management).
 
 
Serialization:

  - Work in progress; not included in this release.
 

ANT:

  New features:
  - Added support for the S212 SoftDevice v0.5.1.alpha.
  - Added ANT DFU support for nRF52.
 
  Known issues:
  - When using the ANT OTA Updater v1.2. for nRF52, there is a flash 
    memory address limitation of 0x40000 (256 KB) for the application.
 

BLE:

  Changes:
  - All BLE examples have been tested only on PCA10028 and PCA10040.
  - The S13x SoftDevice v2.0.0-7.alpha is configurable, which leads to a
    variable RAM setup:
      - Added a macro to the softdevice_handler module to check the RAM 
        configuration against the SoftDevice parameters.
      - Added a wrapper function for the sd_enable function to the 
        softdevice_handler module, which can output the required RAM 
        start address if the one passed to the SoftDevice is not 
        correct.
  - DFU:
      - Added an experimental nRF52 bootloader.
      - Updated the SoftDevice initalization according to API changes in
        S132 v2.0.0-7.alpha.
      - Updated to MBR version v2.0.0-1 alpha.
  - Introduced nrf_log as default logging module (UART) in all BLE 
    examples.
  - Peer Manager & FDS have received incremental improvements and bug 
    fixes.
 
  Known issues:
  - In the HRS/RSCS Relay example, button presses do not have any effect.
  - ble_app_cts_c requires an increased UART_TX_BUF_SIZE. The size can be
    set in nrf_log.c.
  - DTM for nRF52 does not support long packets according to the 
    Bluetooth 4.2 specification.
  - Inconsistent behavior in DFU with devices running Android v6.0.1.
  - The BLE and serial DFU examples do not work when using CMSIS Packs. 
    Use the zip version of the SDK instead.
 

NFC:

  New features:
  - Added a Type 2 Tag parser.
  - Added a generic NFC NDEF message builder (the builder is used to 
    implement all specific records and messages).
  - Added modules to create Windows LaunchApp records, Android 
    Application Records, and common application launch messages. Added 
    an associated example.
  - Ported the Adafruit NFC library for the Adafruit PN532 Shield, which
    provides NFC Forum Device capabilities. Added an associated example
    to read tags.
  - Added modules to create application/vnd.bluetooth.le.oob records, 
    application/vnd.bluetooth.ep.oob records, ac records, Hs records, 
    and BLE pairing messages.

  Changes:
  - Improved the NFC Type 2 Tag library: tested and power-optimized the 
    library and enhanced it with RTT logger capability.
  - Re-implemented NFC URI record and message. Refactored the associated
    example.
  - Enhanced and re-implemented the NFC Connection Handover solution 
    (pairing using NFC).
  - Re-implemented the BLE NFC pairing example.
 
  Known issues:
  - NFC examples do not work when UART logger is enabled.


========================================================================

nRF51 SDK v10.0.0
-----------------
Release date: Week 46, 2015
  
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 5.14.0.0 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.

========================================================================

nRF52 SDK v0.9.2
----------------
Release date: Week 42, 2015

This is an amendment to nRF52 SDK v0.9.1.

Highlights:
    - New targets to enable the two near field communication (NFC) 
      examples to run on the new PCA10040 development board with
      nRF52832 IC rev. Engineering B.

Libraries:
    - Extended the NFC HAL layer of the NFC library to support the NFCT 
      peripherial for both the chip version delivered with the nRF52 
      Preview Development Kit (Engineering A: QFAA-AA0, QFAA-AC0, 
      CGAA-AA0) and the chip version delivered with the nRF52 Development
      Kit (Engineering B: QFAA-BA0, QFAA-BB0, CHAA-AA0, CHAA-AB0).

Examples:
    - Added PCA10040 as target bord for the following examples:
      - Heart Rate Example with pairing over NFC 
      - NFC URL Record Application 

Known issues/workarounds:
    - To use the software workarounds implemented for PCA10036 (part 
      of nRF52 Preview Development Kit), globally define 
      HAL_NFC_ENGINEERING_A_FTPAN_WORKAROUND in your project.
    - The TIMER4 peripheral is used to implement one of the workarounds 
      for PCA10036. This workaround is not used for PCA10040.
    - The ble_app_hrs_pairing_nfc example is unable to wake up from 
      system off.
 
========================================================================

nRF52 SDK v0.9.1
----------------
Release date: Week 29, 2015
 
This is an amendment to nRF52 SDK v0.9.0.
 
Highlights:
    - Support for near field communication (NFC)
 
Libraries/Services:
    - Added a library that supports Type 2 NFC-A tag functionality in 
      read-only state
    - Added a module to generate NFC NDEF messages for BLE pairing over NFC
    - Added a module to generate NFC NDEF messages with an URI record type
    - Extended the ble_advdata module
 
Examples:
    - Added ble_app_hrs_pairing_nfc example that demonstrates pairing over 
      NFC (with S132 SoftDevice)
    - Added record_url NFC example that demonstrates exposing a URL record 
      (without SoftDevice)
 
Limitations:
    - The current version of the NFC library uses TIMER4.
    - The ble_app_hrs_pairing_nfc example has been tested only with Samsung 
      Galaxy S6.
    - If the path to the SDK directory is too long, compilation in Keil fails. 
      To work around this problem, move the SDK higher in the folder tree 
      or use shorter folder names.
 
========================================================================

nRF51 SDK v9.0.0
----------------
Release Date: Week 28, 2015
  
Highlights:
    - Support for S210 SoftDevice v5.0.0
    - Support for S310 SoftDevice v3.0.0
    - Documentation moved to Infocenter
    - DFU Signing using Elliptic Curve Cryptography added as experimental
        - Available in the zip file only
    - Running Speed and Cadence relay example showing concurrent 
      central/peripheral functionality of S130
  
The following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM version 5.14.0.0
    - GCC: GCC ARM Embedded 4.9 2015q1
    - IAR: IAR Workbench 7.20
    - 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
  
    For other devices and boards, see the SDK documentation, section 
    "Using the SDK with other boards".
  
Changes:
    
    - Flash access module has been refactored (pstorage).

    ANT:
        - Both the S310 and the S210 SoftDevices now support an extended 
          number of ANT channels (16).
 
 
        Libraries:
            - Heart Rate Monitor Profile
            - ANT stack configuration
            - ANT channel configuration
            - ANT channel state indicator
            - ANT pulse simulator
         
        Examples:
            - The ANT HRM examples have been refactored.
            - The Bicycle Power examples (ant_bicycle_pwr) support S310.
  
    ANT + BLE (S310):
        The following examples were added:
        - Bluetooth LE and ANT combined heart rate example (ble_ant_app_hrm).
        - Experimental ANT Shared Channels (experimental_ant_shared_channel_master_to_master, 
          experimental_ant_shared_channel_slave).
 
    BLE:
     - Advertising module has a new mode: Low Duty Cycle Directed Advertising.
     - Running Speed and Cadence Client added as experimental.
     - Bluetooth Developer Studio template added as experimental.
     - Heart Rate Sensor example (ble_app_hrs) supports S310.
     - Running Speed and Cadence example (ble_app_rscs) supports S310.
     - Combined Peripheral and Central example added as experimental.
     - DFU Signing using Elliptic Curve Cryptography added as experimental
       (using the same elliptic curve and hashing algorithm as Bluetooth 
       Low Energy 4.2 Secure Connections).
 
Fixed issues:
     - Pstorage now supports updates of bond split across two pages.
     - Advertising module can be set to infinite time-out.
     - Corrected clock source in BLE multiactivity beacon example.
     - Serialization HCI transport layer: Receiving packet-buffer is not 
       freed while sending ACK or NACK.
  
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.
    - App_pwm occasionally gives inverted signal.
    - 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.

========================================================================

nRF52 SDK v0.9.0
----------------
Release date: 17.06.2015
 
Highlights:
  - Support for PCA10036 board v1.0.0 with nRF52832 QFAAAA
  - Support for S132 SoftDevice v1.0.0-3.alpha (hex included)
  - Support for S212 SoftDevice v0.2.0-1.alpha 
  - Support for Keil5 without CMSIS Packs
  - Support for GCC
  - Same structure as nRF51 SDK v8.1.0
  - New peripheral drivers
  - Documentation moved to Infocenter
 
The following toolchains/devices have been used for testing and verification:
  - ARM: MDK-ARM version 5.14.0.0
  - GCC: GCC ARM Embedded 4.9 2015q1
  - Windows 7 SP1 64-bit

Supported SoftDevices:
  - S132 v1.0.0-3.alpha
  - S212 v0.2.0-1.alpha

Supported boards:
  - PCA10036 v1.0.0

Examples:
  - Most examples are ported from nRF51 SDK v8.1.0
  - BLE examples run with the S132 SoftDevice
  - ANT examples run with the S212 SoftDevice
  - The following examples are included:
    - BLE peripheral examples
    - BLE central example
    - New BLE combined central and peripheral example
    - ANT examples
    - HW peripheral examples
      - New SAADC example
      - New TWI master with TWI slave example
    - BLE/serial DFU bootloader
    - Direct Test Mode Application

Drivers:
  - Includes all drivers from nRF51 SDK v8.1.0
  - New drivers:
    - SPI driver that supports SPI and SPIM
    - UART driver that supports UART and UARTE
    - SAADC HAL driver
    - TWI slave driver
    - SAADC driver
 
Libraries/Services:
  - Same functionality as for nRF51 SDK v8.1.0
  - The following libraries and services are included:
    - BLE libraries
    - BLE Services
    - Transport Services
    - Other libraries/components
 
Known issues:
  - Device might reset when a Bluetooth link layer procedure and flash operation happens in parallel.
  - Inconsistent behavior with Nexus devices running Android v5.1.1, for example:
    - DFU fails 
    - Link loss might reset the nRF52 device 
      (such behavior might occur with other devices as well)
  - After a power cycle, a UART lockup between Segger J-Link and nRF52 might occur
    - Before a serial DFU operation or DTM can be executed, "nrfjprog --reset" must be run 
 
========================================================================

nRF51 SDK v. 8.1.1
------------------
This is a supplement to the nRF51 SDK v8.1.0 release notes.
This release does not include any code changes compared to nRF51 SDK v8.1.0., except for a minor addition that is described in the "Changes" section.

Fixed issues:

    - Project does not compile if nrf_drv_ppi is used together with SoftDevice S110, S120 or S210. 
      Issue exists only in CMSIS PACK release. 

Changes:
    - Released new SoftDevice packs: nRF_SoftDevice_S110.8.0.1, nRF_SoftDevice_S120.2.0.1 and 
      nRF_SoftDevice_S210.4.0.1-5 with updated nrf_sd_def.h.

Supported SoftDevices:
    - S110 8.0.0
    - S120 2.0.0
    - S130 1.0.0
    - S210 4.0.1

========================================================================

nRF51 SDK v8.1.0
----------------

Highlights:
    - Support for SoftDevice S130 v1.0.0
    - Serialization supporting SoftDevice S110, S120, and S130
    - ANCS updated and no longer in experimental state
    - GCC updated to new version: ARMGCC 4.9 q1-2015
    - DFU example now has support for IAR and GCC 

The following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM version 4.72.10, 5.13.0.0, 5.14.0.0
    - GCC: gcc-arm-embedded 4.9 2015q1
    - IAR: IAR Embedded Workbench for ARM version 7.20.2
    - Windows XP SP3 32-bit
    - Windows 7 SP1 64-bit
    - Windows 8.1

Supported devices:
    - This SDK is optimized for IC revision 3.
      For details, see the "nRF51 Series Compatibility Matrix" document (ATTN-51) available on
      www.nordicsemi.com.

      Note 1: To run the ANT examples, you must use an nRF51422 device.
      Note 2: Some of the examples using the SoftDevice will not fit on the 128 kB variant of the
      chip.

Supported SoftDevices:
    - S110 8.0.0
    - S120 2.0.0
    - S130 1.0.0
    - S210 4.0.1

Supported boards:
    - PCA10028
    - PCA10031

    For other devices and boards, see the SDK documentation, section "Using the SDK with other
    boards", or use SDK v6.x.x.

Changes:
    ANT + BLE (dual stack):
        - Not included in this release due to conflicting interface between SoftDevice S310 and S110. Use SDK v7.2.0 for S310 support.
        - S310 support will be reintroduced in a future release.
    BLE:
        - SoftDevices:
            - Support for S130 v1.0.0.
        - Serialization:
            - Fully serialized S110, S120, and S130 API.
        - Modules/Services:
            - New button module (bsp_btn_ble) that enables functionality such as disconnect, turn off whitelist, go to sleep.
            - Advertising module now supports scan response data
        - Examples:
            - ANCS example is no longer in experimental state.
    Proprietary:
        - IAR support for proprietary examples.

Peripheral drivers & libraries:
    - New peripheral drivers: TWI, SWI, and GPIOTE.
    - New PWM driver. PWM example updated to use the driver.

Fixed issues:
    - NRFFOSDK-2044: Fixed issue in app_gpiote.
    - NRFFOSDK-3855: Fixed issue in Current Time Service.

Known issues:
    - Device Manager is not supported in multirole 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.

    - ANT:
        - NRFFOSDK-755: HRM TX buttons example may report wrong total elapsed time.

    - BLE:
        - A few APIs of the Device Manager are not implemented. Also, documentation providing 
          examples of how the API can be used is missing.
        - NRFFOSDK-2824: Device Manager (pstorage) does not support update of bond split across two 
          pages.

    - Proprietary:
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box 
          with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
          The legacy examples need to add the following to work with the nRF51 examples:
              hal_nrf_setup_dynamic_payload(0xFF);
              hal_nrf_enable_dynamic_payload(true);
              hal_nrf_enable_ack_payload(true);
              hal_nrf_set_rf_channel(10);
          In addition, the legacy PTX example must add code for handling the payloads received in ACK.
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy 
          Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and 
          channel tables require adjustment.
            - Timeslot period: Edit the gzll_params.h file used in the nRF24Lxx projects or use the 
              nrf_gzll_set_timeslot_period() function in the nRF51 projects 
              (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
            - Channel table: Edit the gzll_params.h file used in the nRF24Lxx projects or use the 
              nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v8.0.0
----------------

Highlights:
    - Support for the latest S110, S120, and S130 SoftDevices. (S310 is not supported.)
    - SoftDevices included in the SDK.
    - Greatly increased driver and HAL coverage.
    - New service client and profile example: Current Time Service/Time Profile.
    - IAR support for most examples.

The following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.72.10, 5.13.0.0, 5.14.0.0
    - GCC: gcc-arm-embedded 4.7 2013q1
    - IAR: IAR Embedded Workbench for ARM version 7.20.2
    - Windows XP SP3 32-bit
    - Windows 7 SP1 64-bit
    - Windows 8.1

Supported devices:
    - This SDK is optimized for IC revision 3.
      For details, see the "nRF51 Series Compatibility Matrix" document (ATTN-51) available on
      www.nordicsemi.com.

      Note 1: To run the ANT examples, you must use an nRF51422 device.
      Note 2: Some of the examples using the SoftDevice will not fit on the 128 kB variant of the
              chip.

Supported SoftDevices:
    - S110 8.0.0
    - S120 2.0.0
    - S130 0.9.0-1.alpha
    - S210 4.0.1

Supported boards:
    - PCA10028
    - PCA10031

    For other devices and boards, see the SDK documentation, section "Using the SDK with other
    boards", or use SDK v6.x.x.

Changes:
    Toolchain/IDE:
        - The nRF51 SDK now supports the following toolchains in most examples:
            - Keil 5.14 (with packs)
            - Keil 5.14 (without packs)
            - Keil 4.72.10
            - ARM GCC 4.7 2013q1
            - IAR 7.20.2
        - The supported SoftDevices are now included in the SDK and can be flashed directly from
          Keil, as a separate target.

    ANT + BLE (dual stack):
        - Removed support for the S310 SoftDevice for BLE API compatibility reasons. For support, 
          use SDK v7.2.0.

    BLE:
        - SoftDevices:
            - The SDK now supports the S110 SoftDevice v8.0.0.
            - The SDK now supports the S120 SoftDevice v2.0.0.
            - The SDK now supports the S130 SoftDevice v0.9.0-1.alpha.
        - Serialization:
            - Serialization support has been removed. For support, use SDK v7.2.0 with appropriate
              SoftDevices.
        - Modules/Services:
            - Added a new advertising module (ble_advertising) that provides automatic handling of
              directed/fast/slow advertising, with and without whitelist.
            - Nordic UART Service (ble_nus), detached from the UART over BLE Example.
            - Added Current Time Service Client (ble_cts_c).
            - Service Changed characteristic has been implemented for DFU, so that the indication is
              sent when transitioning between application and bootloader.
            - Implemented a mechanism for sharing of IRK and LTK from application to bootloader. 
              This allows for whitelist advertising and reconnection in DFU mode using existing 
              keys.
        - Examples:
            - The UART over BLE Example is no longer experimental.
            - Added a Time Profile (ble_app_cts_c) example using the Current Time Service Client
              implementation.

    Drivers/Libraries:
        - Added hardware abstraction layer for the following hardware peripherals:
            - ADC (Analog-to-digital converter)
            - CLOCK (Clock management)
            - LPCOMP (Low power comparator)
            - PPI (Programmable Peripheral Interconnect)
            - QDEC (Quadrature decoder)
            - RNG (Random number generator)
            - RTC (Real time counter)
            - TIMER (Timer/counter)
            - WDT (Watchdog timer)
        - Added drivers for the following peripherals:
            - CLOCK (Clock management)
            - LPCOMP (Low power comparator)
            - PPI (Programmable Peripheral Interconnect)
            - QDEC (Quadrature decoder)
            - RNG (Random number generator)
            - RTC (Real time counter)
            - TIMER (Timer/counter)
            - WDT (Watchdog timer)
        - Added modules:
            - app_simple_timer (Simple timer based on TIMER1)

    Hardware Examples:
        - Added:
            - adc_simple (NRF_ADC)
            - clock (NRF_DRV_CLOCK)
            - lpcomp (NRF_DRV_LPCOMP)
            - qdec (NRF_DRV_QDEC)
            - simple_timer (APP_SIMPLE_TIMER)
            - wdt (NRF_DRV_WDT)
        - Modified:
            - ppi (NRF_DRV_PPI)
            - rng (NRF_DRV_RNG)
            - rtc (NRF_DRV_RTC)
            - timer (NRF_DRV_TIMER)

Fixed issues:
    - Fixed pstorage issue where different applications could write to the same page.

Known issues:
    - 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.

    - ANT:
        - NRFFOSDK-755: HRM TX buttons example may report wrong total elapsed time

    - BLE:
        - A few APIs of the Device Manager are not implemented. Also, documentation providing 
          examples of how the API can be used is missing.
        - NRFFOSDK-2824: Device Manager (pstorage) does not support update of bond split across two 
          pages.

    - Proprietary:
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box 
          with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
          The legacy examples need to add the following to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
          In addition, the legacy PTX example must add code for handling the payloads received in ACK.
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy 
          Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and 
          channel tables require adjustment.
            - Timeslot period: Edit the gzll_params.h file used in the nRF24Lxx projects or use the 
              nrf_gzll_set_timeslot_period() function in the nRF51 projects 
              (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
            - Channel table: Edit the gzll_params.h file used in the nRF24Lxx projects or use the 
              nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v7.2.0
----------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 5.12, 5.13
    - GCC: gcc-arm-embedded 4.7 2013q1
    - IAR: no support in this release
    - Windows XP SP3 32-bit
    - Windows 7 SP1 64-bit
    - Windows 8.1

Supported devices
    - This SDK is optimized for IC revision 3. 
      For details, see the "nRF51 Series Compatibility Matrix" document (ATTN-51) available on 
      www.nordicsemi.com.

      Note 1: To run the ANT examples, you must use an nRF51422 device.
      Note 2: Some of the examples using the SoftDevice will not fit on the 128 kB variant of the 
              chip.
      Note 3: Some of the serialization examples are too big to be compiled using the free version 
              of Keil.

Supported SoftDevices:
    - S110 7.1.0
    - S120 1.0.1
    - S130 0.5.0-1.alpha
    - S210 4.0.1
    - S310 2.0.1

Supported boards:
    - PCA10028
    - PCA10031
    - S110 connectivity support for Wavetek WT51822

    For other devices and boards, see the SDK documentation, section "Using the SDK with other 
    boards", or use SDK v6.x.x.

Changes:
    - ANT:
        - ANT-FS client example: Added callback to allow applications to execute custom code while
          waiting for the burst to complete
        - Major rework on ANT DFU example
        - Added new ANT hub-2-hub/shared channel example 
        - Added S310 target support for DTM example
        - BLE DFU is now supported for S310

Fixed issues:
    - ANT:
        - ANT-FS: Fixed bug with transfer sequence number error causing download failures
        - ANT-FS: Fixed bug where upon exhaustion of m_retry, the link time-out has been mistakenly
          disabled by a burst transfer
        - Fixed issue in linker script for S310
        - Fixed memory corruption issue by using dedicated buffers for ANT and BLE stack events 
          respectively on S310
        - Fixed an issue where the ANT OTA Updater application v0.8 would not support hex files 
          with code size larger than 65535 bytes

Known issues:
    - SEGGER J-Link software has some issues with Keil. 
      See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for details.
    - Keil 5.13 may issue a warning about missing packs even when all Nordic Semiconductor packs are
      correctly installed. 
    - 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.

    - ANT:
        - NRFFOSDK-755: HRM TX buttons example may report wrong total elapsed time

    - BLE:
        - NRFFOSDK-3135: S120 examples: RAM is limited to 16 kB, because S120 V1.0.1 does not 
          support utilizing the whole flash on the QFACAB chip
        - NRFFOSDK-119: Only the ble_app_proximity_low_power and ble_app_hrs applications are power 
          optimized
        - S120 examples: Flash clear operation may fail when connected. Impact of this in the S120 
          examples is that if the peer loses the bond and a rebonding occurs, flash clear fails and
          a DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
        - A few APIs of the Device Manager are not implemented. Also, documentation providing 
          examples of how the API can be used is missing.
        - NRFFOSDK-2824: Device Manager (pstorage) does not support update of bond split across two 
          pages.

    - Proprietary:
        - Temperature example does not give sane output values. This is a hardware-related issue
          described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box 
          with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
          The legacy examples need to add the following to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
          In addition, the legacy PTX example must add code for handling the payloads received in ACK.
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy 
          Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and 
          channel tables require adjustment.
            - Timeslot period: Edit the gzll_params.h file used in the nRF24Lxx projects or use the 
              nrf_gzll_set_timeslot_period() function in the nRF51 projects 
              (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
            - Channel table: Edit the gzll_params.h file used in the nRF24Lxx projects or use the 
              nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v7.1.0
----------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 5.12
    - GCC: gcc-arm-embedded 4.7 2013q1
    - IAR: no support in this release
    - Windows XP SP3 32-bit
    - Windows 7 SP1 64-bit
    - Windows 8.1

Tested with devices:
    - nRF51422 QFACAB
    
    For others devices, use SDK 6.x.x.

Supported SoftDevices:
    - S110 7.1.0
    - S120 1.0.1
    - S130 0.5.0-1.alpha
    - S210 4.0.1
    - S310 2.0.0

Supported boards:
    - PCA10028
    - PCA10031
    - S110 connectivity support for Wavetek WT51822

    For other boards, use SDK V6.x.x.

Changes:
    - Experimental support for over-the-air firmware update using the ANT radio protocol
    - New experimental example ANT relay demo
    - Support for S310 ANT+BLE version 2.0.0
    - Re-introduce Device Firmware Update via UART
    - BLE DFU single bank support for bootloader+softdevice update

Fixed issues:
    - NRFFOSDK-3119 Fixed issue in app_timer where issuing start/stop from interrupt context caused long delays

Known issues:

    - SEGGER J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - 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

    ANT
        - The OTA Updater application v.0.8 does not support hex files with code size larger than 65535 bytes.
        - NRFFOSDK-366: ANT-FS host: download sometimes fails when downloading a large file
        - NRFFOSDK-755: HRM TX buttons example may report wrong total elapsed time

    BLE
        - NRFFOSDK-3135: S120 examples: RAM is limited to 16 kB, because S120 V1.0.1 does not support utilizing the whole flash on the QFACAB chip
        - NRFFOSDK-119: Only the ble_app_proximity_low_power and ble_app_hrs applications are power optimized
        - S120 examples: Flash clear operation may fail when connected. Impact of this in the S120 examples is that if the peer loses the bond and a rebonding occurs, flash clear fails and a DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
        - A few APIs of the Device Manager are not implemented. Also, documentation providing examples of how the API can be used is missing.
        - NRFFOSDK-2824: Device Manager (pstorage) does not support update of bond split across two pages.

    Proprietary:
        - Temperature example does not give sane output values. This is a hardware-related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
            - Timeslot period: Edit the gzll_params.h file used in the nRF24Lxx projects or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
            - Channel table: Edit the gzll_params.h file used in the nRF24Lxx projects or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v. 7.0.1
------------------
This is a supplement to the nRF51 SDK v7.0.0 release notes.
This release does not include any code changes compared to nRF51 SDK v7.0.0, except for a minor addition that is described in the "Changes" section.

Fixed issues:

    - Replaced DeviceFamilyPack v1.1.3, which has a wrong URL, with DeviceFamilyPack v1.1.4.
    - Added a version field to Pack examples descriptions (NordicSemiconductor.nRF_Examples.pdsc).
    - Added missing Nordic Semiconductor nRF51 MDK installer to the repository distribution (nRF51_SDK_x.x.x_xxxxxxx.zip).
    - Added missing message sequence charts to the documentation.
    - Changed incorrect description of supported SoftDevices in the release notes (see below for the correct list of supported SoftDevices).

Changes:

    - Added all the register and bitfields for the SPIM peripheral (present in the nRF51802 device) to the HAL header files and replaced the pack nRF_Drivers v1.0.0 with nRF_Drivers v1.1.0. 

Supported SoftDevices:

    - S110 7.1.0
    - S120 1.0.1
    - S130 0.5.0-1.alpha
    - S210 4.0.1

nRF51 SDK v7.0.0
----------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 5.12
    - GCC: gcc-arm-embedded 4.7 2013q1
    - IAR: no support in this release
    - Windows XP SP3 32-bit
    - Windows 7 SP1 64-bit
    - Windows 8.1

Tested with devices:

    - nRF51422 QFACAB
    
    For others devices, use SDK 6.x.x.

Supported SoftDevices:

    - S110 7.1.0
    - S120 1.0.0 S120 1.0.1
    - S130 0.5.0-1.alpha
    - S210 4.0.1
    - S310 1.0.0 

Supported boards:

    - PCA10028
    - PCA10031
    - S110 connectivity support for Wavetek WT51822

    For other boards, use SDK V6.x.x.

 

Changes:

    - New folder structure
    - Moved from installer to CMSIS pack format
    - Added support for PCA100028 and PCA10031
    - Deprecated support for previous boards 
    - Added support for RTX tickless 

    ANT
        - Changed the ANT examples to support S210 SoftDevice v4.0.1
        - Added experimental Background Scanning example
        
    ANT + BLE (Dual stack)
        - Removed support for S310 SoftDevice (for support, use SDK v6.x.x)
        
    BLE
        - DFU: Added experimental mechanism to exchange encryption keys between application and BootLoader 
        - DFU: Added identification of firmware versions in the init packet
        - Added experimental BLE nRF UART example
        - Added experimental ANCS example
        - Added experimental example demonstrating usage of S130 SoftDevice
        - Added HRS example with RTX
    
    Proprietary
        - Deprecated the following examples (for support, use SDK v6.x.x): 
            * ADNS2080 Mouse Sensor Driver Application
            * Cherry8x16 Keyboard Application
            * Button Debouncer Example
            * nRF6350 Radio Configuration Example
            * PWM Analyzer Example
            * Motor Control Example 
            * TWI Master Example
         

Fixed issues:

    - NRFFOSDK-362: Reset button won't work after programming without cycling the target power
    - NRFFOETT-205: The nRF51822 installer will not run if no C:\ drive exists - No installer 
    - NRFFOSDK-236: When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear - No installer
    - NRFFOSDK-363: Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode

Known issues:

    - SEGGER J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.  
    - 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

    ANT
        - NRFFOSDK-366: ANT-FS host: download sometimes fails when downloading a large file
        - NRFFOSDK-755: HRM TX buttons example may report wrong total elapsed time
    
    BLE 
        - NRFFOSDK-3135: S120 examples: RAM is limited to 16 kB, because S120 V1.0.1 does not support utilizing the whole flash on the QFACAB chip
        - NRFFOSDK-119: Only the ble_app_proximity_low_power and ble_app_hrs applications are power optimized
        - S120 examples: Flash clear operation may fail when connected. Impact of this in the S120 examples is that if the peer loses the bond and a rebonding occurs, flash clear fails and a DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
        - A few APIs of the Device Manager are not implemented. Also, documentation providing examples of how the API can be used is missing.
        - NRFFOSDK-2824: Device Manager (pstorage) does not support update of bond split across two pages.
    
    Proprietary:
        - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
        - Temperature example does not give sane output values. This is a hardware-related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.         
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
            - Timeslot period: Edit the gzll_params.h file used in the nRF24Lxx projects or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
            - Channel table: Edit the gzll_params.h file used in the nRF24Lxx projects or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).
    
========================================================================

nRF51 SDK v. 6.1.0
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 5.10.x/5.11.x
    - GCC: gcc-arm-embedded 4.7 2013q1
    - IAR: Embedded Workbench for ARM 6.60
    - Windows XP SP3 32 bit
    - Windows 7 SP1 64 bit
    - Windows 8.0/8.1

Tested with devices:

    - nRF51822 QFAAG0
    - nRF51822 QFAAGC 
    - nRF51822 QFAAFA 
    - nRF51422 QFAAE0
    
    For others devices, use SDK 4.x.x

Supported SoftDevices:

    - S110 7.0.0
    - S120 1.0.0
    - S210 3.0.0
    - S310 1.0.0

Supported boards:

    - PCA10000 v1.0 (Only for use with Master Emulator)
    - PCA10000 v2.1.0 and 2.2.0
    - PCA10001 v2.1.0 and 2.2.0
    - PCA10004 v2.1.0 
    - PCA10005 v2.1.0 and 2.2.0
    - PCA10003 v3.0.0 
  
    
Changes:

    - Added Keil 5 uvprojx files for most example projects.
    - Extended GCC support, most examples now supplied with Makefiles.

    ANT
        - None.
        
    ANT + BLE (Dual stack)
        - None.
    
    BLE
        - Device firmware upgrade with support for OTA update of SoftDevice, app and bootloader is no longer in experimental status.
        - Buttonless bootloader mode, enter bootloader mode via over-the-air command (see ble_app_hrs example, using ble_app_hrs_dfu.uvproj project).
        - Device manager (BLE bond handling) for S110 and S120 are no longer in experimental status.
        - db_discovery module (for GATT database discovery) for S120 is no longer in experimental status.
        - New reliable transport layer for S110 SoftDevice serialization.
        - Example ble_app_hrs_c (heart rate collector) for S120 is no longer in experimental status.
        - Example ble_app_multilink_central for S120 is no longer in experimental status.
        - Example ble_app_multilink_peripheral for S110 is no longer in experimental status.
        - Experimental examples ble_app_ancs and ble_app_multiactivity have been deprecated from this release.
        - Experimental example ble_app_uart for pca10001 has been deprecated from this release.
        
    Proprietary
        - None.
    
Fixed issues:
    - NRFFOSDK-2884: Fixed issue in app_button module (function app_button_is_pushed).
    - NRFFOSDK-1341: Added missing characteristic in Blood Glucose application.
    - NRFFOSDK-2859: Removed redundant code in Blood Glucose application.
    - NRFFOSDK-2557: Fixed some doxygen documentation errors.

Known issues:
    
    - When flashing from Keil 4, a pop-up might appear stating "Cannot Load Flash Device Description !".
          Solution:
            - Write new flash algorithm settings to the uvopt file. 
                Press ALT+F7 to open "Options for Target" dialog.
                Select "Options for Target" -> "Utilities".
                Press "Settings" button to see flashing algorithms.
                Verify that "nRF51xxx" is in the list of flashing algorithms, if not add it by pressing the "Add" button.
                Exit and save settings by pressing "OK". This is also important to do if you did find the "nRF51xxx" in the list of flashing algorithms.

    - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
        Solution:
            Press ALT+F7 to open "Options for Target" dialog.
            Select "Options for Target" -> "Device".
            Choose "Nordic nRF51 Series Devices" from the Database list.
            Select the variant of the nRF51 chip that is used for the KEIL project target.
    - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
        Solution: Upgrade J-Link software to version 4.66 or later.
    - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
        Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it. 
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
    - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
    - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms. 
      This application will not be able to 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 firmware update process, consider increasing the connection interval used by the master.

    ANT
        - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file. 
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time. 

    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
        - S120 Examples: Flash clear operation may fail when connected. Impact of this in the S120 examples is that if peer loses the bond and a re-bonding occurs, flash clear fails, and DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
        - Device manager has a few APIs unimplemented. Also documentation providing examples of how API can be used is missing.
        - NRFFOSDK-2824: Device manager (pstorage) doesn't support update of bond split across two pages.
        
    Proprietary:
        - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v. 6.0.0
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 5.10.x/5.11.x
    - GCC: gcc-arm-embedded 4.7 2013q1
    - IAR: Embedded Workbench for ARM 6.60
    - Windows XP SP3 32 bit
    - Windows 7 SP1 64 bit
    - Windows 8.0/8.1

Tested with devices:

    - nRF51822 QFAAG0
    - nRF51822 QFAAGC 
    - nRF51822 QFAAFA 
    - nRF51422 QFAAE0
    
    For others devices, use SDK 4.x.x

Supported SoftDevices:

    - S110 7.0.0
    - S120 1.0.0
    - S210 3.0.0
    - S310 1.0.0

Supported boards:

    - PCA10000 v1.0 (Only for use with Master Emulator)
    - PCA10000 v2.1.0 and 2.2.0
    - PCA10001 v2.1.0 and 2.2.0
    - PCA10004 v2.1.0 
    - PCA10005 v2.1.0 and 2.2.0
    - PCA10003 v3.0.0 
  
    
Changes:

    - Added partial support for Keil 5 uvprojx files.

    ANT
        - None
        
    ANT + BLE (Dual stack)
    
    BLE
        - New module device manager replaces bond manager for storing persistent data
        - Experimental device manager support for s120 (BLE central)
        - S110 serialization solution has been reworked
            - 100% s110 BLE APIs are now serialized
        - S110 support for application concurrent multiprotocol radio access
        - Pstorage module: Added API for doing range updates 
        - Experimental: Device firmware upgrade now supports updating both SoftDevice and bootloader for s110
        
    Proprietary
        - Enhanced ShockBurst: Added nrf_esb_reuse_pid() function to API, giving "reuse payload" functionality.
        - Gazell: Added "suspend" mode enabling sharing of radio and PPI. 
        - Gazell: HW resources are released when Gazell is being disabled or entering suspend mode.
        - Gazell: HW resources are reconfigured when Gazell is being enabled or exiting from suspend mode.
    
Fixed issues:
    
    - NRFFOSDK-2542 - SoftDevice related documentation for S110, S120 and S310 BLE stack is not consistent. When looking up SoftDevice application interface or message sequence charts, it is possible that one is looking at incorrect interface. Recommendation hence is to look at SoftDevice headers to ensure correct appplication interface. This is also applicable for Serialization library references. This will be fixed in next release.
        - SDK documentation has been splitted into 4 seperate documents with a common index page.
    
    ANT
        - None

    ANT + BLE (Dual stack)
        - S310 Heart Rate Relay Example: Bonding does not always function as expected. If bonding is enabled using compiler flag it is recommended to perform service discovery before bonding to minimize chances of unexpected behaviour.    

    BLE
        
    Proprietary
        - Enhanced ShockBurst/Gazell: Received packets in Host/PRX mode with CRC error can no longer return ACK to device.
        - NRFFOSDK-2470: app_timer - Fixed issue where starting and stopping the timer repeatedly caused errors in the module

Known issues:
    
    - When flashing from Keil 4, a pop-up might appear stating "Cannot Load Flash Device Description !".
          Solution:
            - Write new flash algorithm settings to the uvopt file. 
                Press ALT+F7 to open "Options for Target" dialog.
                Select "Options for Target" -> "Utilities".
                Press "Settings" button to see flashing algorithms.
                Verify that "nRF51xxx" is in the list of flashing algorithms, if not add it by pressing the "Add" button.
                Exit and save settings by pressing "OK". This is also important to do if you did find the "nRF51xxx" in the list of flashing algorithms.

    - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
        Solution:
            Press ALT+F7 to open "Options for Target" dialog.
            Select "Options for Target" -> "Device".
            Choose "Nordic nRF51 Series Devices" from the Database list.
            Select the variant of the nRF51 chip that is used for the KEIL project target.
    - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
        Solution: Upgrade J-Link software to version 4.66 or later.
    - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
        Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it. 
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
    - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
    - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms. 
      This application will not be able to 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 firmware update process, consider increasing the connection interval used by the master.

    ANT
        - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file. 
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time. 

    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
        - S120 Examples: Flash clear operation may fail when connected. Impact of this in the S120 examples is that if peer loses the bond and a re-bonding occurs, flash clear fails, and DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
        - Device manager has a few APIs unimplemented. Also documentation providing examples of how API can be used is missing.
        - NRFFOSDK-2824: Device manager (pstorage) doesn't support update of bond split across two pages.
        
    Proprietary:
        - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v. 5.2.0
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 5.10.x
    - GCC: gcc-arm-embedded 4.7 2013q1
    - IAR: Embedded Workbench for ARM 6.60
    - Windows XP SP3 32 bit
    - Windows 7 SP1 64 bit
    - Windows 8.0/8.1
    - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.1.

Tested with devices:

    - nRF51822 QFAAG0
    - nRF51822 QFAAGC 
    - nRF51822 QFAAFA 
    - nRF51422 QFAAE0
    
    For others devices, use SDK 4.x.x

Supported SoftDevices:

    - S110 6.0.0
    - S120 1.0.0-1.alpha
    - S210 3.0.0
    - S310 1.0.0

Supported boards:

    - PCA10000 v1.0 (Only for use with Master Emulator)
    - PCA10000 v2.1.0 and 2.2.0
    - PCA10001 v2.1.0 and 2.2.0
    - PCA10004 v2.1.0 
    - PCA10005 v2.1.0 and 2.2.0
    - PCA10003 v3.0.0 
  
    
Changes:

    - app_button module: Detect both push and release, instead of just push
    - Persistent storage (pstorage) module:
        - Support for writing to used memory regions with the new update API. 
        - Support for clearing single blocks.
        - Added get_status API to identify pending flash operations.
 
    ANT
        - None
        
    ANT + BLE (Dual stack)
        - Support for s310 SoftDevice added.
        - Heart rate monitor example project support added.
        - Added Device Firmware Update (DFU) example for s310.
    BLE
        - New experimental device manager module for managing bonds on s120.
        - Beacon example added. It is available at nrf51822\Board\nrf6310\s110\ble_app_beacon 
          and nrf51822\Board\pca10001\s110\ble_app_beacon.
        - Multiple GATT clients: The Database Discovery module available in 
          nrf51822\Board\nrf6310\s120\experimental\common folder can now be used to
          discover two GATT services at the peer.
        - Serialized s110 advertisement example has been removed.
        - HID Keyboard application modified to send upper case letters on pressing Button 2. 
        
    Proprietary
        - None
    
Fixed issues:

    ANT
        - None
        
    ANT + BLE (Dual stack)
        - None 
        
    BLE
        - NRFFOSDK-1897: Glucose: Fixed bug where authentication was not initiated when connecting to already bonded master.
        - NRFFOSDK-2318: Glucose Feature values had incorrect values for 'General Device Fault Supported', 'Time fault Supported', and 'Multiple Bond Supported'. This has been fixed.
        - ANCS: The advertising interval of the Apple Notification Center Client example application is reduced to 25 ms. Previously it was 250 ms which made it hard to discover from the peer device.
        - NRFFOSDK-2357: Blood Pressure application changed to check if indication is enabled before attempting to send an indication to the peer
        - NRFFOSDK-2336: HID Keyboard application fixed to send the correct Input Report bytes when in Boot Mode. 
        - Fixed issue in bond manager related to clearing of whitelist on deleting all bonds.
        - NRFFOSDK-2162: New pstorage get_status API used to allow for flash access to be completed before system off.
        
    Proprietary
        - NRFFOETT-644 - Gazell / ESB: Fixed some documentation issues.

Known issues:

    - NRFFOSDK-2542 - SoftDevice related documentation for S110, S120 and S310 BLE stack is not consistent. When looking up SoftDevice application interface or message sequence charts, it is possible that one is looking at incorrect interface. Recommendation hence is to look at SoftDevice headers to ensure correct appplication interface. This is also applicable for Serialization library references. This will be fixed in next release.

    - When flashing from Keil 4, a pop-up might appear stating "Cannot Load Flash Device Description !".
          Solution:
            - Write new flash algorithm settings to the uvopt file. 
                Press ALT+F7 to open "Options for Target" dialog.
                Select "Options for Target" -> "Utilities".
                Press "Settings" button to see flashing algorithms.
                Verify that "nRF51xxx" is in the list of flashing algorithms, if not add it by pressing the "Add" button.
                Exit and save settings by pressing "OK". This is also important to do if you did find the "nRF51xxx" in the list of flashing algorithms.

    - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
        Solution:
            Press ALT+F7 to open "Options for Target" dialog.
            Select "Options for Target" -> "Device".
            Choose "Nordic nRF51 Series Devices" from the Database list.
            Select the variant of the nRF51 chip that is used for the KEIL project target.
    - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
        Solution: Upgrade J-Link software to version 4.66 or later.
    - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
        Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it. 
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
    - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
    - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms. 
      This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update. 
      Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.

    ANT
        - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file. 
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time. 

    ANT + BLE (Dual stack)
        - S310 Heart Rate Relay Example: Bonding does not always function as expected. If bonding is enabled using compiler flag it is recommended to perform service discovery before bonding to minimize chances of unexpected behavior.    

    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
            (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
        - S120 Examples: Flash clear operation may fail when connected. Impact of this in the S120 examples is that if peer loses the bond and a re-bonding occurs, flash clear fails, and DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
        - Device manager is an experimental module and has a few APIs unimplemented. Also documentation providing examples of how API can be used is missing.

    Proprietary:
        - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================
      
nRF51 SDK v. 5.1.0
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 5.0.5.x
    - GCC: gcc-arm-embedded 4.7 2013q1
    - IAR: Embedded Workbench for ARM 6.60
    - Windows XP SP3 32 bit
    - Windows 7 SP1 64 bit
    - Windows 8.0/8.1
    - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.1.

Tested with devices:

    - nRF51822 QFAAGC (For others, use SDK 4.x.x)
    - nRF51822 QFAAFA (For others, use SDK 4.x.x)
    - nRF51422 QFAADA (For others, use SDK 4.x.x)

Supported SoftDevices:

    - S110 6.0.0
    - S120 0.8.0-2.alpha
    - S210 3.0.0-3.beta 
    - S310 1.0.0-2.alpha 


Supported boards:

    - PCA10000 v1.0 (Only for use with Master Emulator)
    - PCA10000 v2.1.0 and 2.2.0
    - PCA10001 v2.1.0 and 2.2.0
    - PCA10004 v2.1.0 
    - PCA10005 v2.1.0 and 2.2.0
  
    
Changes:

    - Moved and renamed SoftDevice header folders:
        from nrf51822/Include/ble/softdevice to nrf51822/Include/s110
        from nrf51422/Include/ble/softdevice to nrf51422/Include/s210
    - Added SoftDevice headers for s120 and s310 at:
        nrf51822/Include/s120
        nrf51422/Include/s310
    - Moved ANT examples from nrf51422/Board/<board name>/ant to nrf51422/Board/<board name>/s210
    - Moved s110 SoftDevice examples from nrf51822/Board/<board name>/ble to nrf51822/Board/<board name>/s110
    - Added folder for s310 examples in nrf51422/Board/<board name>/s310
    - Added folder for s120 SoftDevice examples in nrf51822/Board/<board name>/s120

    ANT
    - The flash layout settings of all ANT examples have been adapted to suit the new flash layout of S210 SoftDevice. 


    BLE
        - Added experimental Multilink (up to 8) Central example which uses s120 SoftDevice.
        - Added experimental Heart Rate collector example which uses s120 SoftDevice.
        - Added prototype iBeacon example. 
        
    Proprietary 
 
Fixed issues:

    - NRFFOETT-671: Added support for creating new nRF51 projects in Keil 5.
 
    ANT
        - NRFFOETT-438: The API documentation of S210 SoftDevice is now correctly structured in the SDK documentation.
    BLE
    
    Proprietary

Known issues:

    - When flashing from Keil 4, a pop-up might appear stating "Cannot Load Flash Device Description !".
          Solution:
            - Write new flash algorithm settings to the uvopt file. 
                Press ALT+F7 to open "Options for Target" dialog.
                Select "Options for Target" -> "Utilities".
                Press "Settings" button to see flashing algorithms.
                Verify that "nRF51xxx" is in the list of flashing algorithms, if not add it by pressing the "Add" button.
                Exit and save settings by pressing "OK". This is also important to do if you did find the "nRF51xxx" in the list of flashing algorithms.

    - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
        Solution:
            Press ALT+F7 to open "Options for Target" dialog.
            Select "Options for Target" -> "Device".
            Choose "Nordic nRF51 Series Devices" from the Database list.
            Select the variant of the nRF51 chip that is used for the KEIL project target.
    - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
        Solution: Upgrade J-Link software to version 4.66 or later.
    - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
        Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it. 
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
    - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
    - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms. 
      This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update. 
      Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.

  
    ANT
        - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file. 
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time. 
      
    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
            (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
        - NRFFOSDK-2162 - Heart Rate application for PCA10001 possible inconsistent system attributes on power cycle. It is possible that the system attributes on power cycle are not consistent with the ones updated during previous connection.
       
    Proprietary:
        - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v. 5.0.0
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.72.1.0
    - GCC: gcc-arm-embedded 4.7 2013q1
    - IAR: embedded workbench for ARM 6.60
    - Windows XP SP3 32 bit
    - Windows 7 SP1 64 bit
    - Windows 8.0/8.1
    - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.1.

Tested with devices:

    - nRF51822 QFAAGC (For others, use SDK 4.x.x)
    - nRF51822 QFAAFA (For others, use SDK 4.x.x)
    - nRF51422 QFAADA (For others, use SDK 4.x.x)

Supported SoftDevices:

    - S110 6.0.0-3 Beta
    - Expected to be Compatible with SoftDevice S110 V6.0.0 production version

Supported boards:

    - PCA10000 v1.0 (Only for use with Master Emulator)
    - PCA10000 v2.1.0 and 2.2.0
    - PCA10001 v2.1.0 and 2.2.0
    - PCA10004 v2.1.0
    - PCA10005 v2.1.0 
    
    NOTE: The ANT examples in this release will only work on nRF51422 QFAADA engineering samples.
          Currently no official boards/kits exist that work with these examples.
         
    
Changes:

    - Added pstorage module for handling asynchronous non-volatile memory (flash) access via SoftDevice API
    - Existing BLE event handler has been extended into the new SoftDevice handler module. The new SoftDevice handler module allows for fetching SoC, BLE and ANT events
    - Restructured documentation

    
    ANT

    BLE
        - Changes for support of S110 V6.0.0-3 Beta
        - Added Apple Notification Center in experimental

    Proprietary 
        - SPI slave driver and example code added
        - Include new ESB library which uses the same peripherals as the S110 SoftDevice 
    
Fixed issues:
 
    ANT

    BLE
    
    Proprietary

Known issues:

    - Creating a blank project with Keil V5.0  it is not possible to choose the nRF51 series.
        Solution:
            Start new projects by making a copy of any existing keil project from the SDK

    - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
        Solution:
            Press ALT+F7 to open "Options for Target" dialog.
            Select "Options for Target" -> "Device".
            Choose "Nordic nRF51 Series Devices" from the Database list.
            Select the variant of the nRF51 chip that is used for the KEIL project target.

    - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
        Solution: Upgrade J-Link software to version 4.66 or later.
    - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
        Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it. 
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
    - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
    - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms. 
      This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update. 
      Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.

  
    ANT
        - NRFFOETT-438 - Documentation on S210 SoftDevice API wrongly structured. All SoftDevice functions appear as SVCALL in the Doxygen page.
        - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file. 
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time. 
      
    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
            (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
        - NRFFOSDK-2162 - Heart Rate application for PCA10001 possible inconsistent system attributes on power cycle. It is possible that the system attributes on power cycle are not consistent with the ones updated during previous connection.
       
    Proprietary:
        - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v. 4.4.2
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.72.1.0
    - GCC: gcc-arm-embedded 4.7 2013q1
    - IAR: embedded workbench for ARM 6.60
    - N51822 QFAACA on PCA10004 module on nRF6310 motherboard
    - N51822 QFAAFA on PCA10005 module on nRF6310 motherboard
    - Windows XP SP3 32 bit
    - Windows 7 SP1 64 bit
    - Windows 8.0/8.1
    - BLE SoftDevice Version : s110_nrf51822_5.2.1 
    - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.1.

- Supported boards in nRF51 SDK v. 4.4.2:
    - PCA10000 v1.0 (Only for use with Master Emulator)
    - PCA10000 v2.0.0
    - PCA10001 v1.0 through v2.1.0
    - PCA10003 v1.0 through v2.0.0
    - PCA10004 v1.0 through v2.0.0
    - PCA10005 v1.0 through v2.1.0
    - PCA10006 v1.0 through v2.0.0
    - PCA10007 v1.0 through v2.0.0
    - PCA10014 v1.0
    - PCA10018 v1.0.0 through v1.1.0

Changes:

    ANT
        None 
            
    BLE
        - Removed ble_dfu_send_hex.exe from device_firmware_update experimental folder. Similar feature is now available in latest Master Control Panel application.

    Proprietary
        None

Fixed issues:
    
    - NRFFOSDK-1750 - Added PAN-11 workaround in PPI, PWM, and Simple PWM motor control examples.
    - NRFFOSDK-1633 - Added PAN-56 workaround in TWI master driver.

    ANT
        None 

    BLE
        - NRFFOSDK-1025 - The field max_len in rep_char_add signature in ble_hids.c has been corrected to uint16_t.
        - NRFFOSDK-1921 - In case IRK is distrubuted by a peer using public address whitelist is updated for both IRK and address.
        - NRFFOSDK-1899 - System attributes re-initialized on rebonding.
        - NRFFOSDK-1900 - Removed false detection of DIV collisions.
        - NRFFOSDK-1993 - Increased buffer in hci_mem_pool_internal.h fix the serialization examples.
    Proprietary
        None

Known issues:
    
    - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
        Solution:
            Press ALT+F7 to open "Options for Target" dialog.
            Select "Options for Target" -> "Device".
            Choose "Nordic nRF51 Series Devices" from the Database list.
            Select the variant of the nRF51 chip that is used for the KEIL project target.

    - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
        Solution: Upgrade J-Link software to version 4.66 or later.
    - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
        Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it. 
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
    - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
    - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms. 
      This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update. 
      Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.

  
    ANT
        - NRFFOETT-438 - Documentation on S210 SoftDevice API wrongly structured. All SoftDevice functions appear as SVCALL in the Doxygen page.
        - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file. 
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time. 
      
    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
            (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
       
    Proprietary:
        - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v. 4.4.1
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.71.2
	- GCC: gcc-arm-embedded 4.7 2013q1
	- IAR: embedded workbench for ARM 6.60
    - N51422 QFAACA on PCA10003 evaluation kit board
    - N51822 QFAACA on PCA10004/5 module on nRF6310 motherboard
    - Windows XP SP3 32 bit
    - Windows 7 SP1 64 bit
    - BLE SoftDevice Version : s110_nrf51822_5.2.1 
    - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.1 Preview.

Changes:

    - DFU documentation improved.

    ANT
        None 
            
    BLE
    	- NRFFOSDK-1759: Example IAR application for Heart Rate Service added.   
        - NRFFOSDK-1271: Speed and Cadence Control Point added to Cycling Speed and Cadence Service.

    Proprietary
        - ESB: Improved tolerance to delayed interrupts.

		
Fixed issues:

    - NRFFOSDK-1592: Risk of losing timer interrupts when the resolution of the timer is very high, e.g. 1 ms resolution, is now fixed.
	
    ANT
        None 

    BLE
        - NRFFOETT-399: An IRK is added to the bond manager's whitelist only if the address type of the master is 'resolvable'.
        - NRFFOETT-552: DTM application is now implementing PCN_083
        - NRFFOSDK-1828: Key refresh was triggering a link failure when re-bonding to a master. This is now fixed.
        - NRFFOETT-571: Premature disconnection scenario handling added to bond manager. Previously this was resulting in system attributes of a master to be cleared.

    Proprietary
        - ESB: The nrf_esb_tx_failed() callback function was never called when dynamic acknowledgement was used. This is now fixed.

Known issues:
   
     - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
        Solution:
            Press ALT+F7 to open "Options for Target" dialog.
            Select "Options for Target" -> "Device".
            Choose "Nordic nRF51 Series Devices" from the Database list.
            Select the variant of the nRF51 chip that is used for the KEIL project target.

    - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
        Solution: Upgrade J-Link software to version 4.66 or later.
    - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
        Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it. 
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
    - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
    - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms. 
      This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update. 
      Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.
	
  
    ANT
	- NRFFOETT-438 - Documentation on S210 SoftDevice API wrongly structured. All SoftDevice functions appear as SVCALL in the Doxygen page.
        - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file. 
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time. 
      
    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
            (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
       
    Proprietary:
	- NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v. 4.4.0
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.71.2
	- GCC: gcc-arm-embedded 4.7 2013q1
    - N51422 QFAACA on PCA10003 evaluation kit board
    - N51822 QFAACA on PCA10004/5 module on nRF6310 motherboard
    - Windows XP SP3 32 bit
    - Windows 7 SP1 64 bit
    - BLE SoftDevice Version : s110_nrf51822_5.2.1 
    - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.

Changes:

    - Device Firmware Update example released as part of the main SDK.
      - Added support for image transfer over BLE.
      - HCI Transport Layer used for serial transfer.
      - Note: This example is implemented to work on nRF6310 motherboard because it uses Button 7 to enter bootloader mode on reset. 
	      This is because Button 0 and Button 1 are used by other SDK applications as wakeup buttons.
	      If this example is to be changed to work for evaluation kit board, then this should be taken into consideration.
      - PC application examples for performing firmware updates using HCI and BLE added in nrf6310\device_firmware_updates\experimental folder.

    - UICR Configuration example added to the SDK. It can be found in nrf6310\uicr_config_example folder.

    ANT
	 None 
            
    BLE
       - NRFFOETT-507: ble_app_dtm missing bytes on UART fixed.
       - NRFFOSDK-73 : HID keyboard application will now send one key press per notification. 
   

    Proprietary
	 None
		
Fixed issues:

    ANT
	 None 

    BLE
	- NRFFOSDK-1432: Buffer overflow issue in ble_bondmngr_sys_attr_store() function fixed.
	- NRFFOETT-339: CCCD values (System Atributes) are now restored on reconnection to a known master only after the link is encrypted.

    Proprietary
	 None

Known issues:
   
     - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
        Solution:
            Press ALT+F7 to open "Options for Target" dialog.
            Select "Options for Target" -> "Device".
            Choose "Nordic nRF51 Series Devices" from the Database list.
            Select the variant of the nRF51 chip that is used for the KEIL project target.

    - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
        Solution: Upgrade J-Link software to version 4.66 or later.

    - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
        Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it. 
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
    - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
    - NRFFOSDK-1774: During SDK installation, chosing custom install location for SDK examples will create Start Menu shortcuts that point to Keil installation location.
    - NRFFOSDK-1592: There is a risk of losing timer interrupts when the resolution of the timer is very high, e.g. 1 ms resolution. 
    - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms. 
      This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update. 
      Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.
	
  
    ANT
	- NRFFOETT-438 - Documentation on S210 SoftDevice API wrongly structured. All SoftDevice functions appear as SVCALL in the Doxygen page.
        - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file. 
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time. 
      
    BLE
	- NRFFOETT-399 - The bond manager will use distrubted IRK in its whitelist regardless of the type of central's address and should actually use the irk if distributed and if the central's address is not public, and not random_static and not random_private_non_resovable. 
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
            (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
       
    Proprietary:
	- NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v. 4.3.0
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.60
	- GCC: gcc-arm-embedded 4.7 2013q1
    - N51422 QFAACA on PCA10003 evaluation kit board
    - N51822 QFAACA on PCA10004/5 module on nRF6310 motherboard
    - Windows XP SP3 32 bit
    - Windows 7 SP1 64 bit
    - BLE SoftDevice Version : s110_nrf51822_5.2.0

Changes:

    - Supported GCC toolchain switched from CodeSourcery to gcc-arm-embedded.
        - New gcc startup file, linker scripts, and makefiles.
        - Updated CMSIS header files in Include/gcc to the latest revision (3.20).
        - Makefile target "all" now runs "clean" and "debug" targets instead of incremental "release" target.
    - nrf.h requires projects to have a define for a chip to enable some needed workarounds.
	- SDK examples now support PCA10000 v2.0.0. To make the examples work on the older PCA10000 v1.0, the UART pins need to be remapped in the pca10000.h header file.
		For v1.0
			#define RX_PIN_NUMBER  3
			#define TX_PIN_NUMBER  1
			#define CTS_PIN_NUMBER 2
			#define RTS_PIN_NUMBER 0
		For v2.0.0
			#define RX_PIN_NUMBER  11
			#define TX_PIN_NUMBER  9
			#define CTS_PIN_NUMBER 10
			#define RTS_PIN_NUMBER 8
    
    ANT
            - ANT examples have been updated to support the newest UART API.
    BLE
	    - HCI Transport Layer from Bluetooth Specification v4.0 introduced for BLE S110 Serialized Applications. 
		- BLE S110 Serialization Examples released as part of the main SDK.
		- Updated serialized ble_app_advertising and ble_app_hrs to use app_scheduler.
	    - Connection Parameter update module : Added possibility to request different connection parameters multiple times. A new event, BLE_CONN_PARAMS_EVT_SUCCEEDED has been created. Event handler implementation needs to take this into account, especially if they were implemented to trigger a disconnect regardless of the type of event.
		- Added Makefile and Eclipse project file for ble_app_hrs.
		- Changed hard coded flash pages to be FICR CODESIZE dependent.
           
    Proprietary
        - Gazell:
			- Added Gazell Pairing Host source code and board example. Backwards compatible with nRF24L Gazell Pairing Device and Host modules.
			- Added function nrf_gzll_set_auto_disable(uint32_t num_ticks), to disable Gazell after a number of timeslots.
			- Added function nrf_gzll_get_tick_count().
			- Gazell Pairing Device now uses nrf_gzll_get_tick_count() in order to implement a delay. This reduces current consumption.
			- Default sync_lifetime value has been increased to 3*channel_table_size*number_of_timeslots_per_channel. This improves performance in high-interference environments. Current users who are satisfied with the performance may wish to maintain the minimum value of 1*channel_table_size*number_of_timeslots_per_channel, in order to avoid any slight increase in current consumption.
        - Enhanced ShockBurst:
			- ESB PTX now calls nrf_esb_tx_success() callback instead of nrf_esb_tx_failed() for NOACK packets.
			- Fix in nrf_esb_set_mode() 
        - Information concerning backwards compatibility with nRF24L devices has been moved to the User Guide.
		
Fixed issues:

    - Examples doing flash writes were not waiting for writes to finish.
    
    ANT
	    - NRFFOSDK-1312 - Changed ANTFS_TRANSMIT_POWER define in antfs.h from 0 to 3. The define previously had an incorrect definition which set the power value to -20dBm instead of 0dBm even though the comment indicated 0dBm. 

    BLE
	    - NRFFOETT-402 - DFU Bootloader application in experimental project now sets stack pointer correctly before executing reset vector of application.

    Proprietary
	    - NRFFOETT-301 - Radio example uses obsolete RADIO_TXPOWER_TXPOWER_Neg40dBm definition.
        - Fixed issue in TWI HW driver. Event was not cleared before waiting it to get cleared.
        - Floating point ABI used by Makefiles was incorrect. Now using mabi-float=soft.
        - Gazell/ESB: Fixed set_mode() functionality.
        - Gazell GCC board examples startup and run correctly with the GCC libraries.
        - A Gazell Device nows stop the RSSI measurement when no ACK is received, improving the base current consumption. 

Known issues:

    - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
        Solution:
            Press ALT+F7 to open "Options for Target" dialog.
            Select "Options for Target" -> "Device".
            Choose "Nordic nRF51 Series Devices" from the Database list.
            Select the variant of the nRF51 chip that is used for the KEIL project target.

    - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
        Solution: Upgrade J-Link software to version 4.66 or later.

    - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
        Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it. 
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
    - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
 
    ANT
	    - NRFFOETT-438 - Documentation on S210 SoftDevice API wrongly structured. All SoftDevice functions appear as SVCALL in the Doxygen page.
        - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file. 
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time. 
      
    BLE
	    - NRFFOETT-399 - The bond manager will use distrubted IRK in its whitelist regardless of the type of central's address and should actually use the irk if distributed and if the central's address is not public, and not random_static and not random_private_non_resovable. 
	    - NRFFOSDK-1432 - A buffer overflow has been discovered in the BLE bond manager upon system attributes store. Workaround, define BLE_BONDMNGR_MAX_BONDED_MASTERS in ble_bondmngr_cfg.h to be 1 higher than the number of bond required by the applicaiton. 
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
            (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
       
    Proprietary:
	    - Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).
		
========================================================================

nRF51 SDK v. 4.2.0
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.60
    - N51422 QFAACA on PCA10003 evaluation kit board
    - N51822 QFAACA on PCA10004/5 module on nRF6310 motherboard
    - Windows XP SP3 32 bit
    - Windows 7 SP1 64 bit
    - BLE SoftDevice Version : s110_nrf51822_5.1.0

Changes:
    
    ANT

    BLE
        - NRFFOSDK-623 - BLE S110 DFU Bootloader prototype added to experimental folder.
        - NRFFOSDK-996 - Delete of individual bonds in Bond Manager. API extension.
            Validity check of stored bond added to Bond Manager API.
        - NRFFOSDK-745 - Extended BLE S110 Serialized API. 
            Added serialized Heartrate example to exprimental folder.
           
    Proprietary
        
Fixed issues:
    
    - NRFFOSDK-1015 - nRFgo Display lock up after a reset
    
    ANT

    BLE
        - NRFFOSDK-486 - All applications using bond manager will assert when the maximum number of bonded masters is passed. 
    
    Proprietary

Known issues:
    - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
        Solution:
            Press ALT+F7 to open "Options for Target" dialog.
            Select "Options for Target" -> "Device".
            Choose "Nordic nRF51 Series Devices" from the Database list.
            Select the variant of the nRF51 chip that is used for the KEIL project target.


    - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
        Solution: Upgrade J-Link software to version 4.66 or later.

    - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
        Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it. 
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
    - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        Solution: Wake-up the current application from SYTEM_OFF before flashing a new application.
 
    ANT
        - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file. 
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time. 
      
    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
            (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
       
    Proprietary:
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).
        
========================================================================

nRF51 SDK v. 4.1.0
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.60
    - N51422 QFAACA on PCA10003 evaluation kit board
    - N51822 QFAACA on PCA10004/5 module on nRF6310 motherboard
    - Windows XP SP3 32 bit
    - Windows 7 SP1 64 bit
    - BLE SoftDevice Version : s110_nrf51822_5.0.0

Changes:
    - nRF51 device variant removed from KEIL device database and replaced with nRF51 series specific devices.
    - Added nrf6310_experimental folder to the nRF51 SDK which contains examples and modules under development.
        - Experimental version of the SoftDevice S110 serialization API with examples.
    - Removed obsolete Master Emulator firmware from the release (nrf51822\Board\pca10000\ble\master_emulator\MEFW_nRF51822_firmware.hex).
    - Renamed twi_sw_master_example to twi_master_example
    ANT

    BLE
        - Updated SoftDevice S110 specific documentation to include message sequence charts.
    Proprietary
        
Fixed issues:
        - NRFFOETT-257 - twi_master_clear_bus() functionality fix done.
        - NRFFOSDK-953 - twi_hw_master.c functionality fix done.
    ANT

    BLE
        - NRFFOSDK-758 - Button 1 does not wake up Bluetooth examples applications. To erase bonding information from system-off mode, press both button 0 and button 1.
    
    Proprietary

Known issues:
    - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
        Solution:
            Press ALT+F7 to open "Options for Target" dialog.
            Select "Options for Target" -> "Device".
            Choose "Nordic nRF51 Series Devices" from the Database list.
            Select the variant of the nRF51 chip that is used for the KEIL project target.


    - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
        Solution: Upgrade J-Link software to version 4.66 or later.

    - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
        Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it. 
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
    - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        Solution: Wake-up the current application from SYTEM_OFF before flashing a new application.
 
    ANT
        - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file. 
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time. 
      
    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
            (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
        - NRFFOSDK-486 - All applications using the bond manager will assert when the maximum number of bonded masters is passed. See proximity application documentation. 
       
    Proprietary:
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v. 4.0.1
------------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.60
    - N51422 QFAACA on PCA10006 module on nRF6310 motherboard
    - N51822 QFAACA on PCA10001 evaluation kit board
    - Windows XP SP3 32-bit
    - Windows 7 SP1 64-bit
    - BLE SoftDevice Version : s110_nrf51822_4.0.0-2.beta 

Changes:
    - Adressed poor search functionality in the documentation by upgrading used Doxygen version and adding a CHM version of the documentation.
    Proprietary
        - ESB/Gazell: A hard PLL rampdown is now implemented which shortens the TX to RX switching time to match nRF24L devices.
        
Fixed issues:
    - NRFFOSDK-801 - Project memory layout was incorrect for S110 4.0.0 targets.
    - NRFFOETT-249 - gcc_nrf51_s110.ld had wrong SoftDevice size.

    ANT

    BLE
        - NRFFOSDK-807 - Made changes to the default assert handler.
        - NRFFOSDK-800 - Bug when switching between BLE and Gazell mode on buttons presses fixed.
        - NRFFOETT-225 - DTM didn't work with Tescom TC3000C and R&S CBT.
        - NRFFOETT-262 - Evaluation kit BLE examples had button pin pullup resistors disabled.
        - NRFFOSDK-804 - Excluded ble_sps.c and ble_sps.h from release as they have not been fully implemented.
    
    Proprietary
        - ESB/Gazell: The peripherals are no longer prepared for use by the nrf_esb_init() and nrf_gzll_init() functions. This is performed in the SystemInit() function.

Known issues:
    - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
        On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi.
        Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51 SDK installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it.
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power
    - NRFFOSDK-363 - Flashing a software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode (implies to wake-up the current application from SYTEM_OFF before flashing a new application)

    ANT
        - NRFFOSDK-366 - ANT-FS host: download some times fails when downloading large file.
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.

    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application
            If the bonding information are not erased manually - by pressing button 1 during start-up - the new application might assert. 
        - NRFFOSDK-486 - All applications using bond manager will assert when the maximum number of bonded masters is passed - See proximity application documentation. 
        - NRFFOSDK-758 - Button 1 does not wake up Bluetooth examples applications. To erase bonding information from system-off mode, press on both button 0 and button 1.
        - NRFFOSDK-759 - Unable to switch to BLE mode from gazell mode in Multiprotocol application 

    Proprietary:
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the nRF51 examples:
                hal_nrf_setup_dynamic_payload(0xFF);
                hal_nrf_enable_dynamic_payload(true);
                hal_nrf_enable_ack_payload(true);
                hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v. 4.0.0
-----------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.60
    - N51422 QFAACA on PCA10006 module on nRF6310 motherboard
    - N51822 QFAACA on PCA10001 evaluation kit board
    - Windows XP SP3 32-bit
    - Windows 7 SP1 64-bit

Changes:
    - NRFFOSDK-192 - Interrupt driven low power UART module added.
    - NRFFOSDK-543 - Set of common modules used by nRF51xxx examples added.
    
    ANT
        - NRFFOSDK-312 - adapt to renaming of SoftDevice S210 V2.0.0 APIs

    BLE
        - NRFFOSDK-55 - adapt to renaming of SoftDevice S110 V4.0.0 APIs


Fixed issues:
    - NRFFOSDK-563 - nRF51 SDK installer - Keil CDB not installing correctly on PC's running Win7 w/Asian Locales (prim: Japanese/Chinese).

    ANT 
        - NRFFOSDK-484 - HRM TX background pages are not following 65th packet rule according to spec

    BLE
        - NRFFOSDK-361 - System attributes are stored in flash only after disconnect.  API ble_bondmngr_sys_attr_store to save system attributes while in a connection is now available.
 
 

Known issues:
    - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
        On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi.
        Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
    - NRFFOSDK-236 - When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it.
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power
    - NRFFOSDK-363 - Flashing a software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode (implies to wake-up the current application from SYTEM_OFF before flashing a new application)

    ANT
        - NRFFOSDK-366 - ANT-FS host: download some times fails when downloading large file.
        - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.

    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application
            If the bonding information are not erased manually - by pressing button 1 during start-up - the new application might assert. 
        - NRFFOSDK-486 - All applications using bond manager will assert when the maximum number of bonded masters is passed - See proximity application documentation. 
        - NRFFOSDK-758 - Button 1 does not wake up Bluetooth examples applications. To erase bonding information from system-off mode, press on both button 0 and button 1.
        - NRFFOSDK-759 - Unable to switch to BLE mode from gazell mode in Multiprotocol application 

    Proprietary:
        - ESB/Gazell: Calling nrf_esb_init() or nrf_gzll_init() will disable usage of the GPIOTE peripheral. 
        
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the
            nRF51 examples:
            hal_nrf_setup_dynamic_payload(0xFF);
            hal_nrf_enable_dynamic_payload(true);
            hal_nrf_enable_ack_payload(true);
            hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the
            payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
          
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        
        - Gazell does not support "Low Power Host mode" (Host mode 1).

========================================================================

nRF51 SDK v3.0.0
-----------------
Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.60
    - Windows XP SP3 32-bit
    - Windows 7 SP1 64-bit

Changes:
    
    - Merged nRF514 and nRF518 SDKs
    
    - system_nrf51.c: GPIOTE peripheral turned on during system init.

    ANT
        - Added ANT bicycle power-only sensor example
        - Added ANT combined bicycle speed and cadence sensor example
    
    BLE
        - Added Direct Test Mode (DTM) source code 
        - Added Glucose Meter service and example
        - Added Health Thermometer service and example
        - Added Blood Pressure service and example
        - Added Proximity example for evaluation board
        - Bond manager and flash module modified to write bonding information in flash while in a connection
    
Fixed issues:
    BLE
        -NRFFOSDK-120 - ble_bondmngr_store_bonded_masters function from the bond manager cannot be used when advertising nor when in a connection
              The bonding information are now written while in a connection but not the system attributes information.

    ANT 
        - Fixed incorrect event time generation in ANT HRM Tx example
        - NRFFOSDK-469 - ANT - bicycle power rx: doxygen architecture picture defect
        
        - NRFFOSDK-470 - ANT - bicycle power tx: doxygen architecture picture defect
        
    Proprietary:
        - twi_hw_master example : Fixed deadlock when stop condition was not issued. (NRFFOETT-167)
        
        - Bugfix: Polarity of on-air "no_ack" bit inverted to comply with legacy nRF24L01
            hardware ESB.
        

Known issues:
    - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
         On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi.
         Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
         
    - NRFFOSDK-236 - When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it.
    
    - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power
    
    - NRFFOSDK-363 - Flashing a software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode 
        (implies to wake-up the current application from SYTEM_OFF before flashing a new application)
    ANT
        - ARCH-506 - ANT-FS host; download could fail when downloading large files.
        
        - NRFFOSDK-484 - HRM TX background pages are not following 65th packet rule according to spec
 
    BLE
        - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized
        
        - NRFFOSDK-361 - System attributes are stored in flash only after disconnect.
        
        - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application 
            If the bonding information are not erased manually - by pressing button 1 during start-up - the new application might assert. 
            
        - NRFFOSDK-486 - All applications using bond manager will assert when the maximum number of bonded masters is passed 
            For more information, see proximity application documentation. 



    Proprietary:
        - ESB/Gazell: Calling nrf_esb_init() or nrf_gzll_init() will disable usage of the GPIOTE peripheral. 
        
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
        
        - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
            - The legacy examples do not use "payload in ACK".
            - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
            - The examples do not use dynamic payload length.
            The legacy examples need to add the following in order to work with the
            nRF51 examples:
            hal_nrf_setup_dynamic_payload(0xFF);
            hal_nrf_enable_dynamic_payload(true);
            hal_nrf_enable_ack_payload(true);
            hal_nrf_set_rf_channel(10);
            In addition, the legacy PTX example must add code for handling the
            payloads received in ACK.  
            
        - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
          
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        
        - Gazell does not support "Low Power Host mode" (Host mode 1).

Notification ANT:
    - This is last release that will support N51422 QFAACA (ANT). Next release will contain API changes.

    
    
   
    
    
========================================================
Old release notes from before SDK merge
========================================================


nRF518 SDK v2.0.0
-----------------

Following toolchains/devices have been used for testing and verification:
    - ARM: MDK-ARM Version 4.60
    - N51822 QFAACA on PCA10000 evaluation kit USB dongle
    - N51822 QFAACA on PCA10001 evaluation kit board
    - N51822 QFAACA on PCA10004 module on nRF6310 motherboard
    - Windows XP SP3 32-bit
    - Windows 7 SP1 64-bit

    Bluetooth:
        - Bluetooth Low Energy SoftDevice S110_nRF51822_2.0.0_alpha1

    Gazell / ESB libraries on-air compatible with the following SDKs for legacy nRF24Lxx devices:
        - nRFgo SDK 2.3.0
        - nRFready Desktop 1.2.3

Changes:

    Bluetooth:
        - Adapted examples for updated S110 API (S110_nRF51822_2.0.0_alpha1).
        - Added Find Me (Immediate Alert Service as client) to Proximity Application.
        - Added Alert Notification (client) service and example.
        - Added Cycling Speed and Cadence service and example.
        - Added Running Speed and Cadence service and example.
        - Bond Manager modified to add Whitelist handling and CRC verification of flash.
        - Bond Manager usage added to all examples except for power profiling application.
        - Use of Whitelist added to Proximity, HID Mouse and HID Keyboard examples.
        - Use of directed advertisement added to HID Mouse and HID Keyboard examples.
        - Timer Module refactored.

    Proprietary:
        - Added nRF24L series address conversion functions to radio_example.
        - Added support for GCC to nRF51 Code Examples, ESB and Gazell examples.
        - Examples no longer use deprecated PERPOWER register.
        - Disabled "Download to flash" and "Verify Code Download" in JLink debug Download Options.
        - All SDK release notes are now in this file.
        - Added hardware flow control option to simple_uart. 
        - Fixed compilation problems with Keil ARM MDK v4.60 and ram retention, temperature and blinky examples.
        - debouncer_example, ppi_example and timer_example now explicitly set timer bitmode.
        - keil_arm_uv4.lnt include folder changed from C:\Keil\ARM\RV31\INC to C:\Keil\ARM\ARMCC\INC.
        - Corrected location of SFR files in UV projects.

        - ESB: ESB PRX transceiver operations are shorted, removing continuous wave transmission and improving speed and current consumption. 
        - ESB: PRX starts listening immediately after sending an ACK, no longer waiting for the next timeslot.
        - ESB: The NOACK bit is changed to an ACK bit to ensure compatibility with L01 radios. The L01 product specification is incorrect, only devices using dynamic ack will see this. 
        - ESB: esb_is_enabled function added.
        - ESB: Disabling CRC checking on PRX/Host side works correctly
        - ESB: Added support for controlling the XOSC outside the ESB library

        - Gazell: Added support for controlling the XOSC outside the Gazell library
        - GZP: No longer deletes pairing data on gzp_init. Added functions to check if device has pairing data and delete all pairing info from flash. 
        - GZP: gzp_desktop_emulator example requires only one key press to pair and has been tested to work on SoftDevice.
        - GZP: nrf_nvmc_write_bytes correctly iterates through bytes.

Fixed issues:
    - Examples use deprecated PERPOWER register. 

    Proprietary:
        - When using Keil ARM MDK v4.60 the ram retention, temperature and blinky examples might fail during compilation.
        - Gazell and ESB examples point to wrong SFR file (should be SFD\Nordic\nRF51\nRF51822.sfr). 

    Bluetooth:
          - The buttons on the evaluation board are not debounced.

Known issues:
    - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
    - On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi. 
      Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
    - When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it. (DRGN-1807)
    - Reset button won't work after programing without cycling the target power. (DRGN-1885)
    - Flashing a software using SEGGER is possible only when NOT in SYSTEM_OFF mode (implies to wake-up the current application with a button press for example before flashing a new application).(DRGN-1925)
      
    Bluetooth:
        - Only the ..\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\ and ..\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ applications are power optimized.(DRGN-1914)
        - ble_bondmngr_store_bonded_masters function from the bond manager cannot be used when advertising nor when in a connection (DRGN-1915)
         (flash erase/write prevents the CPU from running which means the stack will not be able to run properly.) 
          If ble_bondmngr_store_bonded_masters function is called while advertising or in a connection, the behavior is UNDEFINED.

    Proprietary:
        - ESB/Gazell: Calling nrf_esb_init() or nrf_gzll_init() will disable usage of the GPIOTE peripheral. In order to use the GPIOTE peripheral, the workaround in PAN 22 must be performed after calling these functions.         
        - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
        - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.

        - The nRF24Lxx ESB examples found in the legacy nRFready
          SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
        - The legacy examples do not use "payload in ACK".
        - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
        - The examples do not use dynamic payload length.

          The legacy examples need to add the following in order to work with the
          nRF51 examples:

          hal_nrf_setup_dynamic_payload(0xFF);
          hal_nrf_enable_dynamic_payload(true);
          hal_nrf_enable_ack_payload(true);
          hal_nrf_set_rf_channel(10);

          In addition, the legacy PTX example must add code for handling the
          payloads received in ACK.  

        - The Gazell Link Layer examples are not fully "out of the box" compatible 
          with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx
          devices. The timeslot periods and channel tables require adjustment.
        - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects,
          or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects
          (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
        - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, 
          or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
        - Gazell does not support "Low Power Host mode" (Host mode 1).







nRF518 SDK v1.1.1
-----------------

Changes:
- Master Control Panel updated to version 3.1.1. Includes fix for issue where pca10000 master emulator devices did not get detected.

Known issues:
- When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it.
- When using Keil ARM MDK v4.60 the ram retention, temperature and blinky examples might fail during compilation and leave an error message like this:
    C3900U: Unrecognized option '--asm'.
    C3900U: Unrecognized option '--interleave'.
  To fix this Click Alt+F7, choose "Listing" tab. Uncheck "C Compiler Listing" 
- Previous issues from v1.1.0 does still apply







nRF518 SDK v1.1.0
-----------------

Following toolchains/devices have been used for testing and verification:
- ARM: MDK-ARM Version 4.54
- N51822 QFAACA on PCA10004 module on nRF6310 motherboard
- N51822 QFAACA on PCA10000 USB dongle
- N51822 QFAACA on PCA10001 board
- Windows XP SP3 32-bit
- Windows 7 SP1 64-bit

Known issues:
- Examples use depracated PERPOWER register. Future silicon will power up peripherals after reset and PERPOWER register will be removed.
- Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
- Temperature example does not give sane output values. This is hardware related issue described in
- Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
- On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi. 
  Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
- Gazell and ESB examples point to wrong SFR file (should be SFD\Nordic\nRF51\nRF51822.sfr). 
- Reset button wont work after programing without cycling the target power. Workaround is to update system_nrf51.c with 
  void SystemInit (void) 
  {
      /* Switch ON both RAM banks */
      NRF_POWER->RESET = POWER_RESET_RESET_Enabled;
      NRF_POWER->RAMON |= (POWER_RAMON_ONRAM0_RAM0On << POWER_RAMON_ONRAM0_Pos) |
                          (POWER_RAMON_ONRAM1_RAM1On << POWER_RAMON_ONRAM1_Pos);
  } 

Bluetooth:
  - The button on the evaluation board are not debounced in hardware and the application implementing for it does not debounce the button presses either (using software mechanisms). So there will be additional increments/decrements of heart rate measurement while pressing the buttons.





nRF518 SDK v1.0.0
-----------------

Following toolchains/devices have been used for testing and verification:
- ARM: MDK-ARM Version 4.54
- N51822 QFAACA on nRF2752 module on nRF6310 motherboard
- Windows XP SP3 32-bit
- Windows 7 SP1 64-bit
Bluetooth:
  - S110 SoftDevice v1.0.0
  - J-Link ARM v4.52b or higher

This release contains the following:
Bluetooth:
  - Complete source code needed for writing applications on top of S110 SoftDevice (BLE Stack)
  - Template application that can be used as a starting point to develop custom applications.
  - Example application for Heart Rate Service 
  - Example application for Proximity profile
  - Example application for HID Mouse
  - Example application for HID Keyboard
  - Power profiling application
  - Example application using Heart Rate Service for Evaluation Board (PCA10001)
  - Multiprotocol application that implements the Heart Rate profile in Bluetooth mode and the Gazell 'device' mode.
  - Documentation
  
Known issues:
- Examples use depracated PERPOWER register. Future silicon will power up peripherals after reset and PERPOWER register will be removed.
- Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
- Temperature example does not give sane output values. This is hardware related issue described in
- Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
- On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi. 
  Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
- Gazell and ESB examples point to wrong SFR file (should be SFD\Nordic\nRF51\nRF51822.sfr). 
- Reset button wont work after programing without cycling the target power. Workaround is to update system_nrf51.c with 
  void SystemInit (void) 
  {
      /* Switch ON both RAM banks */
      NRF_POWER->RESET = POWER_RESET_RESET_Enabled;
      NRF_POWER->RAMON |= (POWER_RAMON_ONRAM0_RAM0On << POWER_RAMON_ONRAM0_Pos) |
                          (POWER_RAMON_ONRAM1_RAM1On << POWER_RAMON_ONRAM1_Pos);
  } 
- Spi master function spi_master_init() sends two dummy bytes. This will be removed in a future release.
- timer_example nrf_timer_delay_ms() will not give expected results using parameter values over 65 ms.

Bluetooth:
  - The button on the evaluation board are not debounced in hardware and the application implementing for it does not debounce the button presses either (using software mechanisms). So there will be additional increments/decrements of heart rate measurement while pressing the buttons.
  
      

      
nRF514 SDK v.1.2.0
------------------

Following toolchains/devices have been used for testing and verification:
- ARM: MDK-ARM Version 4.60
- N51422 QFAACA on PCA10004 module on nRF6310 motherboard
- N51422 QFAACA on PCA10006 module on nRF6310 motherboard
- N51822 QFAACA on nRF2752 module on nRF6310 motherboard
- N51822 QFAACA on PCA10001 evaluation kit board
- Windows XP SP3 32-bit
- Windows 7 SP1 64-bit

Changes:
- Added Bicycle Power minimal slave example.
- Added Stride and Distance Monitor minimal slave and master example.
- Removed deprecated PERPOWER register from examples and header files.

Known issues:
- Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
- On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi.
  - Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
- When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it.
- Flashing a software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode (implies to wake-up the current application from SYTEM_OFF before flashing a new application)
- Reset button won't work after programming with Keil without cycling the target power. On the other hand if nrfjprog with -p (pin reset) is used to program the device, reset button will work.
- Using -p option in nrfjprog too heavily might block JLink. This block can be resolved by re-cycling the JLink power.


nRF514 SDK v1.1.0
-----------------

Following toolchains/devices have been used for testing and verification:
- ARM: MDK-ARM Version 4.54
- N51422 QFAACA on PCA10001 module
- N51422 QFAACA on a PCA10005 modulea on nRF6310 motherboard

Known issues:
- When having an application which starts up by putting the chip in SystemOff mode, and wakeup source is not configured correctly, the device cannot be programmed.
  Workaround: Use nrfjprog with "recover" option to wipe the application keeping the application in SystemOff mode.
- For PCA10003 examples using UART, the terminal program on the PC has to release the COM port when PCA10003 is power cycled. It is not possible for the PCA10003 to keep a connection up when performing a power cycle.
  Workaround: Close terminal program for each time you want to perform a power recycle

Changes:
- Added examples for PCA10003 Evaluation kit.
- Added nrfjprog.exe - Nordic Semiconductor command line nRF51 programming tool using JLink dll's.
- Added custom system_nrf51422.c in templates folder for handling reset after flashing and turning all peripherals on (except GPIOTE) as described in PAN028.
- Removed references to depricated PERPOWER register in ANT code examples.
- Added compiler flag to the ANT examples, to easier being able to run examples without any UART.
- Modified simple_uart_config() parameters. Added new parameters for flow control
- Added include/boards folder for handling examples targeted for different boards
- Fixed bug in timer_example
- Fixed bug in spi_example


nRF514 SDK v1.0.0
-----------------

Following toolchains/devices have been used for testing and verification:
- ARM: MDK-ARM Version 4.54
- N51822 QFAACA on nRF2754 module on nRF6310 motherboard
- Tested on Windows 7 64-bit

Known issues:
- Examples use depracated PERPOWER register. Future silicon will power up peripherals after reset and PERPOWER register will be removed.
- Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
- Temperature example does not give sane output values. This is hardware related issue described in
- Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
- Reset button wont work after programing without cycling the target power. Workaround is to update system_nrf51.c with 
  void SystemInit (void) 
  {
      /* Switch ON both RAM banks */
      NRF_POWER->RESET = POWER_RESET_RESET_Enabled;
      NRF_POWER->RAMON |= (POWER_RAMON_ONRAM0_RAM0On << POWER_RAMON_ONRAM0_Pos) |
                          (POWER_RAMON_ONRAM1_RAM1On << POWER_RAMON_ONRAM1_Pos);
  } 
- Spi master function spi_master_init() sends two dummy bytes. This will be removed in a future release.
- timer_example nrf_timer_delay_ms() will not give expected results using parameter values over 65 ms.

Changes:
- First public release

