![]() |
nRF5 SDK
v12.0.0
|
| Choose documentation: | nRF5 SDK | S130 SoftDevice API | S132 SoftDevice API | S212 SoftDevice API | S332 SoftDevice API |
The nRF5 SDK documentation includes descriptions and other reference material to help you understand the various components of the SDK. Examples are provided for development purposes only and should always be tested with your design.
See Getting Started for instructions on how to run the provided examples.
This version of the SDK supports the following SoftDevices:
SDK Release Notes:
nRF5 SDK 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.