s115 release notes
Introduction to the s115 release notes
About the document
These release notes describe the changes in the s115 from version to version.
The release notes are intended to list all relevant changes in a given version. They are kept brief to make it easy to get an overview of the changes. More details regarding changes and new features may be found in the s115 migration document (normally available for major releases only).
This document may be updated for an already released version of SoftDevice. The changes will be tagged with “Update X”, where X is a number incremented each time the document has been revised.
Issue numbers in parentheses are for internal use and should be disregarded by the customer.
Copyright © Nordic Semiconductor ASA. All rights reserved.
s115_10.0.0
This version is a major release, adding support for new nRF54L series devices and reducing RAM and NVM requirements.
Notes:
This release has changed the API. This requires changes to applications.
The release notes list changes since s115_9.0.0.
For nRF54LS05, the support is experimental.
SoftDevice properties
This SoftDevice variant is compatible with nRF54LS05.
The SoftDevice memory requirements for this version are as follows:
NVM: 101.0 kB (0x19400 bytes).
RAM: 4.1 kB (0x1080 bytes). This is the minimum required memory. The actual requirements depend on the configuration chosen at
sd_ble_enable()time.Call stack: The SoftDevice uses a call stack combined with the application. The worst-case stack usage for the SoftDevice is 1.8 kB (0x700 bytes). Application writers should ensure that enough stack space is reserved to cover the worst-case SoftDevice call stack usage combined with the worst-case application call stack usage.
SoftDevice base address:
nRF54LS05: 0x065800 (
s115_nrf54ls05_10.0.0_softdevice.hex).
The Firmware ID of this SoftDevice is 0x30AC.
This version of the SoftDevice includes the SoftDevice Controller and Multiprotocol Service Layer (MPSL) libraries from nRF Connect SDK v3.3.0. See the changelog of the SoftDevice Controller and MPSL for more details about changes in these components.
Changes
SoftDevice
Optimized RAM consumption for simple configurations of the SoftDevice. (DRGN-26915)
The event
NRF_EVT_RADIO_CANCELEDwas never generated and has been removed. (DRGN-27894)
GAP
ble_gap_evt_scan_req_report_tnow includes the Received Signal Strength Indication of the received scan request. (DRGN-27726)
Bug Fixes
GAP
Fixed an issue where the SoftDevice did not provide LTK to application. That happened if LESC bonding was run without IRK distribution at least in one direction. (DRGN-27912)
Limitations
SoftDevice
If Radio Notifications are enabled, flash write and flash erase operations initiated through the SoftDevice API will be notified to the application as Radio Events (DRGN-5197).
Synthesized low frequency clock source is not tested or intended for use with the Bluetooth LE stack.
Applications must not modify the SEVONPEND flag in the SCR register when running in priority levels higher than 6 (priority level numerical values lower than 6) as this can lead to undefined behavior.
The SoftDevice may generate several events when connected, based on peer actions, meaning without previous action from the application. The
BLE_GAP_EVT_PHY_UPDATE_REQUESTevent, for instance, is generated when a connected peer sends a Phy Update Request, even when an application does not include logic to change PHY. There are several such events that may require action from an application if they are received. For more information, see thesd_ble_enable()API in SoftDevice.Configuring multiple connection configurations (see
ble_conn_cfg_t::conn_cfg_tag) is not supported (DRGN-23839).
GATT
To conform to the Bluetooth Core Specification, there shall be no secondary service that is not referenced somehow by a primary service. The SoftDevice does not enforce this (DRGN-906).
Known Issues
LL
If the application adds an all zeroes IRK with the
sd_ble_gap_device_identities_set(), it will be treated as a valid entry in the device identity list. An all zeroes IRK is invalid and must not be added (DRGN-9083).
s115_9.0.0
This version is a major release, providing support for nRF54L series devices.
Notes:
This release has changed the API. This requires changes to applications.
The release notes list changes since s115_9.0.0-3.prototype.
SoftDevice properties
This SoftDevice variant is compatible with nRF54L05, nRF54L10, and nRF54L15.
The SoftDevice memory requirements for this version are as follows:
NVM: 107.0 kB (0x1AC00 bytes).
RAM: 4.9 kB (0x1380 bytes). This is the minimum required memory. The actual requirements depend on the configuration chosen at
sd_ble_enable()time.Call stack: The SoftDevice uses a call stack combined with the application. The worst-case stack usage for the SoftDevice is 1.8 kB (0x700 bytes). Application writers should ensure that enough stack space is reserved to cover the worst-case SoftDevice call stack usage combined with the worst-case application call stack usage.
SoftDevice base address:
nRF54L05: 0x062000 (
s115_nrf54l05_9.0.0_softdevice.hex).nRF54L10: 0x0E2000 (
s115_nrf54l10_9.0.0_softdevice.hex).nRF54L15: 0x162000 (
s115_nrf54l15_9.0.0_softdevice.hex).
The Firmware ID of this SoftDevice is 0x3024.
Changes
SoftDevice
Scheduler improvements (DRGN-24450):
The scheduler can now manage events that are scheduled less than 100 microseconds apart.
Updated Radio Timeslot implementation:
The events
NRF_EVT_RADIO_BLOCKEDandNRF_EVT_RADIO_CANCELEDare now sent immediately after the specified timeout or start time, instead of being sent early if the scheduler predicted the timeslot could not be scheduled.Timeslot events can now run for longer than 128 seconds.
Deprecated wrapper functions defined in the SoftDevice headers have been removed (DRGN-26817).
sd_rand_application_pool_capacity_getsd_rand_application_bytes_available_getsd_app_evt_wait
The function
sd_flash_writenow uses buffered writes to RRAM, with WRITEBUFSIZE=1. This reduces RRAM wear and improves performance (DRGN-24675).A new field
hfint_ctivhas been added tonrf_clock_lf_cfg_tto control how often HFINT is calibrated (DRGN-26506).A new field
hfclk_latencyhas been added tonrf_clock_lf_cfg_tto inform the SoftDevice about the ramp-up time of the high-frequency crystal oscillator (DRGN-26554).
GAP
The SoftDevice no longer enforces the spec-required 1 second interval between channel map updates (
ble_gap_opt_ch_map_t) (DRGN-26253).The SoftDevice no longer allows an all-zeroes Identity Resolving Key (IRK) in the device identity list when in network privacy mode (
BLE_GAP_PRIVACY_MODE_NETWORK_PRIVACY).sd_ble_gap_privacy_setandsd_ble_gap_device_identities_setnow returnBLE_ERROR_GAP_ZERO_IRK_NOT_ALLOWEDin this case.The SoftDevice now uses an application-provided passkey (
BLE_GAP_OPT_PASSKEY) for only one pairing attempt. Using a static or non-random passkey is insecure and not allowed by the Bluetooth Core Specification (DRGN-26638).The API for Data Signing has been removed. This was never supported by the SoftDevice (DRGN-26752).
The API for BR/EDR Link Key has been removed. This was never supported by the SoftDevice (DRGN-26752).
Removed the
p_id_infoparameter fromsd_ble_gap_sec_info_reply. It was unused by the SoftDevice (DRGN-26752).The SoftDevice now supports advertising intervals longer than 10 seconds (DRGN-9988).
In compliance with Bluetooth Core Specification v6.2, LE Legacy Pairing with Passkey Entry no longer provides Authenticated man-in-the-middle (MITM) protection (DRGN-26635).
Added
sec_statusparameter tosd_ble_gap_lesc_dhkey_replyso application can reject pairing earlier if peer’s public key validation failed. LE Secure Connections pairing now will not proceed to authentication stage 1 until application callssd_ble_gap_lesc_dhkey_reply(DRGN-26190).
Limitations
SoftDevice
If Radio Notifications are enabled, flash write and flash erase operations initiated through the SoftDevice API will be notified to the application as Radio Events (DRGN-5197).
Synthesized low frequency clock source is not tested or intended for use with the Bluetooth LE stack.
Applications must not modify the SEVONPEND flag in the SCR register when running in priority levels higher than 6 (priority level numerical values lower than 6) as this can lead to undefined behavior.
The SoftDevice may generate several events when connected, based on peer actions, meaning without previous action from the application. The
BLE_GAP_EVT_PHY_UPDATE_REQUESTevent, for instance, is generated when a connected peer sends a Phy Update Request, even when an application does not include logic to change PHY. There are several such events that may require action from an application if they are received. For more information, see thesd_ble_enable()API in SoftDevice.Configuring multiple connection configurations (see
ble_conn_cfg_t::conn_cfg_tag) is not supported (DRGN-23839).
GATT
To conform to the Bluetooth Core Specification, there shall be no secondary service that is not referenced somehow by a primary service. The SoftDevice does not enforce this (DRGN-906).
Known Issues
LL
If the application adds an all zeroes IRK with the
sd_ble_gap_device_identities_set(), it will be treated as a valid entry in the device identity list. An all zeroes IRK is invalid and must not be added (DRGN-9083).
s115_9.0.0-3.prototype
This version is a major release, providing support for nRF54L series devices.
Notes:
This release has changed the API. This requires changes to applications.
The release notes list changes since s115_9.0.0-2.prototype.
SoftDevice properties
This SoftDevice variant is compatible with nRF54L05, nRF54L10, and nRF54L15.
The SoftDevice memory requirements for this version are as follows:
NVM: 107.0 kB (0x1AC00 bytes).
RAM: 4.9 kB (0x1380 bytes). This is the minimum required memory. The actual requirements depend on the configuration chosen at
sd_ble_enable()time.Call stack: The SoftDevice uses a call stack combined with the application. The worst-case stack usage for the SoftDevice is 1.8 kB (0x700 bytes). Application writers should ensure that enough stack space is reserved to cover the worst-case SoftDevice call stack usage combined with the worst-case application call stack usage.
SoftDevice base address:
nRF54L05: 0x062000 (
s115_9.0.0-3.prototype_nrf54l05_softdevice.hex).nRF54L10: 0x0E2000 (
s115_9.0.0-3.prototype_nrf54l10_softdevice.hex).nRF54L15: 0x162000 (
s115_9.0.0-3.prototype_nrf54l15_softdevice.hex).
The Firmware ID of this SoftDevice is 0x3072.
New Features
GAP
Added support for LE Data Packet Length Extension (DLE).
Changes
SoftDevice
Support for PA/LNA (
BLE_COMMON_OPT_PA_LNA) has been removed (DRGN-23876).A new API for seeding the random number generator
sd_rand_seed_sethas been added (DRGN-25550).The
sd_radio_notification_cfg_setnow accepts an uint16_t distance_us parameter instead of enum. The valid range is [50, 5500] µs. The enums can still be used for backwards compatibility. The active notification distance is now from when the SoftDevice prepares to use the radio, and not the actual radio activity (DRGN-25879).
GAP
The Device IRK is no longer used as a fallback to generate Resolvable Private Addresses (RPA). Applications that want to use RPA need to populate the device identity list (
sd_ble_gap_device_identities_set). Otherwise the identity address will be used (sd_ble_gap_addr_set) (DRGN-23358).When privacy is enabled (
sd_ble_gap_privacy_set) the advertiser will refresh private addresses whenever the advertising data or scan response data is changed (sd_ble_gap_adv_set_configure) (DRGN-23358).
Limitations
SoftDevice
If Radio Notifications are enabled, flash write and flash erase operations initiated through the SoftDevice API will be notified to the application as Radio Events (DRGN-5197).
Synthesized low frequency clock source is not tested or intended for use with the Bluetooth LE stack.
Applications must not modify the SEVONPEND flag in the SCR register when running in priority levels higher than 6 (priority level numerical values lower than 6) as this can lead to undefined behavior.
The SoftDevice may generate several events when connected, based on peer actions, meaning without previous action from the application. The
BLE_GAP_EVT_PHY_UPDATE_REQUESTevent, for instance, is generated when a connected peer sends a Phy Update Request, even when an application does not include logic to change PHY. There are several such events that may require action from an application if they are received. For more information, see thesd_ble_enable()API in SoftDevice.Configuring multiple connection configurations (see
ble_conn_cfg_t::conn_cfg_tag) is not supported (DRGN-23839).
GATT
To conform to the Bluetooth Core Specification, there shall be no secondary service that is not referenced somehow by a primary service. The SoftDevice does not enforce this (DRGN-906).
Known Issues
SoftDevice
GAP
If the Peer Preferred Connection Parameters Characteristic (PPCP) contains “No specific values indication (0xFFFF)”, application should not perform a peripheral initiated connection parameter update using PPCP. Otherwise invalid values will be used in
L2CAP_CONNECTION_PARAMETER_UPDATE_REQ. A workaround is to always specify the connection parameters in thesd_ble_gap_conn_param_updatecall (DRGN-15111).The
BLE_GAP_EVT_SEC_INFO_REQUESTevent will not report the identity address of the peer to the application. A workaround is to do a mapping of the connection handle to the peer’s identity address (DRGN-10340).
GATTC
The
ble_gattc_service_t::uuidfield is incorrectly populated in theBLE_GATTC_EVT_PRIM_SRVC_DISC_RSPevent ifsd_ble_gattc_primary_services_discover()orsd_ble_gattc_read()is called when a Primary Service Discovery by Service UUID is already ongoing. When the application has calledsd_ble_gattc_primary_services_discover(), it should wait for theBLE_GATTC_EVT_PRIM_SRVC_DISC_RSPevent before callingsd_ble_gattc_primary_services_discover()orsd_ble_gattc_read()(DRGN-11300).
LL
If the application adds an all zeroes IRK with the
sd_ble_gap_device_identities_set(), it will be treated as a valid entry in the device identity list. An all zeroes IRK is invalid and must not be added (DRGN-9083).
s115_9.0.0-2.prototype
This version is a major release, providing support for nRF54L series devices.
Notes:
This release has changed the API. This requires changes to applications.
The release notes list changes since s115_9.0.0-1.prototype.
SoftDevice properties
This SoftDevice variant is compatible with nRF54L05, nRF54L10, and nRF54L15.
The SoftDevice memory requirements for this version are as follows:
NVM: 128.0 kB (0x20000 bytes).
RAM: 4.9 kB (0x1380 bytes). This is the minimum required memory. The actual requirements depend on the configuration chosen at
sd_ble_enable()time.Call stack: The SoftDevice uses a call stack combined with the application. The worst-case stack usage for the SoftDevice is 1.8 kB (0x700 bytes). Application writers should ensure that enough stack space is reserved to cover the worst-case SoftDevice call stack usage combined with the worst-case application call stack usage.
SoftDevice base address:
nRF54L05: 0x05D000 (
s115_9.0.0-2.prototype+offset-0x05D000_softdevice.hex).nRF54L10: 0x0DF800 (
s115_9.0.0-2.prototype+offset-0x0DF800_softdevice.hex).nRF54L15: 0x15D000 (
s115_9.0.0-2.prototype+offset-0x15D000_softdevice.hex).
The Firmware ID of this SoftDevice is 0x3106.
Changes
Application needs to do relevant ISR forwarding to SoftDevice. See
nrf_sd_isr.h. (DRGN-25185)Connection handles generated by the SoftDevice are no longer restricted to the range [0..<max_connections-1>], and must not be used as array indices.
The functions
sd_nvic_EnableIRQ,sd_nvic_DisableIRQ,sd_nvic_GetPendingIRQ,sd_nvic_SetPendingIRQ,sd_nvic_ClearPendingIRQ,sd_nvic_SetPriority,sd_nvic_GetPriority,sd_nvic_SystemReset,sd_nvic_critical_region_enter,sd_nvic_critical_region_exithave been removed. An application must use the CMSISNVIC_*functions instead. Make sure that the application does not use the interrupts and interrupt priorities owned by the SoftDevice.Setting of RAM retention for the first memory blocks has been removed.
Limitations
SoftDevice
If Radio Notifications are enabled, flash write and flash erase operations initiated through the SoftDevice API will be notified to the application as Radio Events (DRGN-5197).
Synthesized low frequency clock source is not tested or intended for use with the Bluetooth LE stack.
Applications must not modify the SEVONPEND flag in the SCR register when running in priority levels higher than 6 (priority level numerical values lower than 6) as this can lead to undefined behavior.
The SoftDevice may generate several events when connected, based on peer actions, meaning without previous action from the application. The
BLE_GAP_EVT_PHY_UPDATE_REQUESTevent, for instance, is generated when a connected peer sends a Phy Update Request, even when an application does not include logic to change PHY. There are several such events that may require action from an application if they are received. For more information, see thesd_ble_enable()API in SoftDevice.Configuring multiple connection configurations (see
ble_conn_cfg_t::conn_cfg_tag) is not supported (DRGN-23839).
GATT
To conform to the Bluetooth Core Specification, there shall be no secondary service that is not referenced somehow by a primary service. The SoftDevice does not enforce this (DRGN-906).
Known Issues
SoftDevice
The Radio Notification signal is not yet supported. The function
sd_radio_notification_cfg_setmust not be used (DRGN-24324).
GAP
Privacy feature is not yet supported. (DRGN-23358)
If the Peer Preferred Connection Parameters Characteristic (PPCP) contains “No specific values indication (0xFFFF)”, application should not perform a peripheral initiated connection parameter update using PPCP. Otherwise invalid values will be used in
L2CAP_CONNECTION_PARAMETER_UPDATE_REQ. A workaround is to always specify the connection parameters in thesd_ble_gap_conn_param_updatecall (DRGN-15111).The
BLE_GAP_EVT_SEC_INFO_REQUESTevent will not report the identity address of the peer to the application. A workaround is to do a mapping of the connection handle to the peer’s identity address (DRGN-10340).
GATTS
Queued Writes are not yet supported. Receiving the
ATT_PREPARE_WRITE_REQPDU will lead to assert (DRGN-23848).
GATTC
The
ble_gattc_service_t::uuidfield is incorrectly populated in theBLE_GATTC_EVT_PRIM_SRVC_DISC_RSPevent ifsd_ble_gattc_primary_services_discover()orsd_ble_gattc_read()is called when a Primary Service Discovery by Service UUID is already ongoing. When the application has calledsd_ble_gattc_primary_services_discover(), it should wait for theBLE_GATTC_EVT_PRIM_SRVC_DISC_RSPevent before callingsd_ble_gattc_primary_services_discover()orsd_ble_gattc_read()(DRGN-11300).
LL
If the application adds an all zeroes IRK with the
sd_ble_gap_device_identities_set(), it will be treated as a valid entry in the device identity list. An all zeroes IRK is invalid and must not be added (DRGN-9083).
s115_9.0.0-1.prototype
This version is a major release, providing support for nRF54L series devices.
Notes:
This release has changed the API. This requires changes to applications.
The release notes list changes since s112_nrf52_7.2.0.
SoftDevice properties
This SoftDevice variant is compatible with nRF54L15.
The SoftDevice memory requirements for this version are as follows:
NVM: 100.0 kB (0x19000 bytes).
RAM: 4.9 kB (0x1380 bytes). This is the minimum required memory. The actual requirements depend on the configuration chosen at
sd_ble_enable()time.Call stack: The SoftDevice uses a call stack combined with the application. The worst-case stack usage for the SoftDevice is 1.8 kB (0x700 bytes). Application writers should ensure that enough stack space is reserved to cover the worst-case SoftDevice call stack usage combined with the worst-case application call stack usage.
The Firmware ID of this SoftDevice is 0x30D2.
Changes
SoftDevice
The function
sd_flash_page_erasehas been removed for devices that do not require page erase before write.The function
sd_flash_protecthas been removed.The function
sd_protected_register_writehas been removed.The function
sd_power_pof_thresholdvddh_sethas been removed.The functions
sd_power_ram_power_set,sd_power_ram_power_clr, andsd_power_ram_power_gethave been removed.The functions
sd_power_dcdc_mode_setandsd_power_dcdc_mode_gethave been removed.The functions
sd_power_reset_reason_getandsd_power_reset_reason_clrhave been removed.The function
sd_power_system_offhas been removed.The functions
sd_ppi_channel_enable_get,sd_ppi_channel_enable_set,sd_ppi_channel_enable_clr,sd_ppi_channel_assign,sd_ppi_group_task_enable,sd_ppi_group_task_disable,sd_ppi_group_assignandsd_ppi_group_gethave been removed.
Limitations
SoftDevice
If Radio Notifications are enabled, flash write and flash erase operations initiated through the SoftDevice API will be notified to the application as Radio Events (DRGN-5197).
Synthesized low frequency clock source is not tested or intended for use with the Bluetooth LE stack.
Applications must not modify the SEVONPEND flag in the SCR register when running in priority levels higher than 6 (priority level numerical values lower than 6) as this can lead to undefined behavior.
The SoftDevice may generate several events when connected, based on peer actions, meaning without previous action from the application. The
BLE_GAP_EVT_PHY_UPDATE_REQUESTevent, for instance, is generated when a connected peer sends a Phy Update Request, even when an application does not include logic to change PHY. There are several such events that may require action from an application if they are received. For more information, see thesd_ble_enable()API in SoftDevice.Configuring multiple connection configurations (see
ble_conn_cfg_t::conn_cfg_tag) is not supported (DRGN-23839).
GATT
To conform to the Bluetooth Core Specification, there shall be no secondary service that is not referenced somehow by a primary service. The SoftDevice does not enforce this (DRGN-906).
Known Issues
SoftDevice
The Radio Notification signal is not yet supported. The function
sd_radio_notification_cfg_setmust not be used (DRGN-24324).The API functions in
nrf_nvic.hthat operate on interrupts are not yet supported. This includes the functionssd_nvic_critical_region_enterandsd_nvic_critical_region_exit(DRGN-23477).
L2CAP
Receiving fragmented L2CAP packets is not yet supported (DRGN-23305).
GAP
If the Peer Preferred Connection Parameters Characteristic (PPCP) contains “No specific values indication (0xFFFF)”, application should not perform a peripheral initiated connection parameter update using PPCP. Otherwise invalid values will be used in
L2CAP_CONNECTION_PARAMETER_UPDATE_REQ. A workaround is to always specify the connection parameters in thesd_ble_gap_conn_param_updatecall (DRGN-15111).The
BLE_GAP_EVT_SEC_INFO_REQUESTevent will not report the identity address of the peer to the application. A workaround is to do a mapping of the connection handle to the peer’s identity address (DRGN-10340).LE Secure Connections are not yet supported (DRGN-23305).
GATT
ATT MTU size greater than 23 octets is not yet supported (DRGN-23305).
GATTS
Queued Writes are not yet supported. Receiving the
ATT_PREPARE_WRITE_REQPDU will lead to assert (DRGN-23848).
GATTC
The
ble_gattc_service_t::uuidfield is incorrectly populated in theBLE_GATTC_EVT_PRIM_SRVC_DISC_RSPevent ifsd_ble_gattc_primary_services_discover()orsd_ble_gattc_read()is called when a Primary Service Discovery by Service UUID is already ongoing. When the application has calledsd_ble_gattc_primary_services_discover(), it should wait for theBLE_GATTC_EVT_PRIM_SRVC_DISC_RSPevent before callingsd_ble_gattc_primary_services_discover()orsd_ble_gattc_read()(DRGN-11300).
LL
If the application adds an all zeroes IRK with the
sd_ble_gap_device_identities_set(), it will be treated as a valid entry in the device identity list. An all zeroes IRK is invalid and must not be added (DRGN-9083).