Changelog
All the notable changes to this project are documented on this page.
Main branch
Added
Support for new Channel Sounding Inline Phase Correction Term Transfer (IPT) feature. (DRGN-26911)
The vendor-specific HCI command: Transmitter carrier frequency test. (DRGN-28500)
The
include/sdc_asserts.hfile containing a list of documented SDC asserts. (DRGN-28123)
Changes
The supported Bluetooth Core Specification version has been updated to v6.3. Multiple HCI fields have been renamed to align with the Bluetooth Core Specification v6.3 naming conventions (DRGN-28241).
The
Versionfield in theLL_VERSION_INDpacket now contains the value0x11to indicate compatibility with Bluetooth Core Specification v6.3 (DRGN-28241).The functions
sdc_support_channel_sounding_initiator_role()andsdc_support_channel_sounding_reflector_role()have been deprecated.Applications can now reduce the NVM usage of Channel Sounding by enabling support only for the required roles using the following functions:
This change does not affect applications developed in the nRF Connect SDK context. (DRGN-28206)
The function
sdc_support_extended_feature_set()has been deprecated.Applications can now reduce the NVM usage of Extended Feature Set by enabling support only for the required roles using the following functions:
This change does not affect applications developed in the nRF Connect SDK context. (DRGN-28206)
Bug fixes
Fixed an issue where the controller would report the wrong Parameter_Total_Length in the LE Connection Complete event. (DRGN-28394)
Fixed an issue where the controller could assert if it lost sync with a periodic advertiser at the same time it was being terminated by the host. (DRGN-28363)
Fixed an issue where the controller could assert when a BIG broadcaster was terminated. (DRGN-28765)
nRF Connect SDK v3.3.0
Added
Experimental support for the nRF54LS device. (DRGN-26915)
Separate libraries for the nRF54LM and nRF54LV series devices. (DRGN-27252)
Experimental support for Direct Test Mode. (DRGN-27368)
Experimental support for the LE Flushable ACL Data feature and the LE Read and Write Automatic Flush Timeout HCI commands. (DRGN-27485)
Changes
Optimized RAM consumption for simple configurations of the SoftDevice Controller. (DRGN-26915)
The controller now uses the same coding scheme as the associated periodic advertiser when using LE Coded PHY with the
LE Create BIGorLE Create BIG TestHCI commands. (DRGN-27494)The Quality of Service (QoS) channel survey feature is now supported instead of experimental. (DRGN-26264)
The
sdc_hci_cmd_le_set_adv_data()andsdc_hci_cmd_le_set_scan_response_data()functions now return the error code0x12if the data length is more than 31 bytes. Previously, the extra data was truncated. (DRGN-27247)The controller acting as a central will now schedule continuation events only if it has received a packet from the peer device in the previous subrated connection event or in any subsequent continuation events. This change improves scheduling performance with multiple links. (DRGN-27952)
Bug fixes
Fixed two issues where the scanner would assert when performing extended active scanning. (DRGN-27065, DRGN-28050)
Fixed an issue where the controller acting as a central would send a packet on the wrong channel. This would only happen at the instant of the channel map update procedure. (DRGN-27264)
Fixed an issue where the controller, when acting as a channel sounding reflector, would select the wrong antenna during the first (TX) T_PM period of a mode-2 step if it followed a mode-3 step. (DRGN-27360)
Fixed an issue where the controller could send
LL_CS_CAPABILITIES_REQPDU on an unencrypted link. This would only happen when theLE CS Read Remote Supported CapabilitiesHCI command triggers the Feature Exchange procedure. (DRGN-27530)Fixed an issue where the controller could generate one too many HCI LE CS Subevent Result events for a CS procedure. (DRGN-27538)
The issue would only happen if all the following conditions are met:
The CS procedure terminates due to running out of channels, based on the configured channel map and channel map repetition.
The configured duration of the last CS subevent in the CS procedure is just enough to fit all the remaining CS steps.
Fixed an issue where the controller did not generate an
LE CS Procedure Enable CompleteHCI event when disabling the last CS procedure. This would only happen if the maximum number of CS procedures (Max_Procedure_Count) was set to a value greater than1. (DRGN-27705)Fixed a rare issue where establishing a CIS would make the CIS peripheral unresponsive on other established CISes in the same CIG. (DRGN-23021)
nRF Connect SDK v3.2.0
Added
sdc_hci_cmd_vs_cs_params_set()to set preferred internal CS parameters for the controller to use.Central-only and Peripheral-only library variants for the nRF54H Series devices. (DRGN-25197)
Support for the LE Read All Local Supported Features and LE Read All Remote Features HCI commands. (DRGN-25216)
Support for the LE Frame Space Update HCI command. (DRGN-23612)
Support for the LE Connection Rate Request, LE Set Default Rate Parameters, and LE Read Minimum Supported Connection Interval HCI commands. (DRGN-23668)
Support for advertising intervals longer than 10 seconds. (DRGN-9988)
sdc_support_lowest_frame_space()to enable support for the lowest possible frame space for ACL connections. This option forces ACL connections to always use the same TX and RX PHY. (DRGN-26042)
Changes
The
Versionfield in theLL_VERSION_INDpacket now contains the value0x10to indicate compatibility with Bluetooth Core Specification v6.2 (DRGN-26598).sdc_hci_cmd_vs_set_cs_event_length()has been removed, the same functionality is now provided withsdc_hci_cmd_vs_cs_params_set().The sdc_support_* functions now return void. This change does not affect applications developed in the nRF Connect SDK context. (DRGN-26248)
The Channel Sounding antenna switch callback must now be set using
sdc_cs_antenna_switch_callback_set()instead ofsdc_support_channel_sounding()when using multiple antennas. This change does not affect applications developed in the nRF Connect SDK context. (DRGN-26248)The Quality of Service (QoS) channel survey feature now supports incremental channel surveying, allowing it to be used even if there is insufficient time for a full survey. The minimum interval has been reduced from 7.5 ms to 3 ms. (DRGN-26108)
The function
sdc_support_channel_sounding()has been removed. Thesdc_support_channel_sounding_initiator_role()andsdc_support_channel_sounding_reflector_role()functions should be used instead. This change does not affect applications developed in the nRF Connect SDK context. (DRGN-26504)The controller will now attempt to maintain the same ACL event spacing between two connections using the
WinOffsetandInstantfields of theLL_CONNECTION_UPDATE_INDpacket. This will improve scheduling performance when performing the Connection Parameter Update control procedure and the controller is acting as a central on multiple links. For more details, see Connection update scheduling and timing. (DRGN-25782)The controller will now attempt to maintain the same offset between two connections using the
SubrateBaseEventfield of theLL_SUBRATE_INDpacket. This will improve scheduling performance when performing the Connection Subrate Update control procedure and the controller is acting as a central on multiple links. (DRGN-25975)The SoftDevice Controller header files now include the
nrfx.hfile, adding a dependency on nrfx. The SoftDevice Controller has been tested for compatibility with the nrfx revision used by the correspondingsdk-nrfrevision. (DRGN-26373)
Bug fixes
Fixed an issue where the controller would ignore a
CONNECT_INDPDU if theChMfield only contained channels 32, 33, 34, 35, or 36. (DRGN-26788)Fixed an issue where the controller could report a Selected_TX_Power parameter that was much higher than what the radio supports in the
LE CS Procedure Enable CompleteHCI event. (DRGN-25941)Fixed an issue where the controller could show reduced performance when EVENT registers were left uncleared in timeslots. (DRGN-26138)
Fixed a rare issue where the controller could assert or disconnect when connected to multiple devices as a Bluetooth peripheral. (DRGN-26255)
Fixed an issue where an incorrect TX power value was set when using ‐7 dBm on the nRF54L Series devices. (DRGN-26470)
Fixed an issue where the controller would be unable to connect to a peer device when configured with scan window equal to scan interval. (DRGN-26625) This would only occur when the time between two periodic activities was less than a millisecond.
Fixed an issue where the controller would not correctly handle incoming HCI ISO data when the data path was not enabled. In this case the controller would generate a Number of Completed Packets event with connection handle set to 0. (DRGN-26621)
Fixed a rare issue where the controller could assert when the central device replied to an
LL_LENGTH_REQ,LL_PERIPHERAL_FEATURE_REQorLL_POWER_CONTROL_REQ. This issue would only occur with a peer that violates the specification by initiating a new control procedure before receiving the completion of the previous one. (DRGN-26205)
nRF Connect SDK v3.1.0
Added
Central-only and Peripheral-only library variants for the nRF54L Series devices. (DRGN-25081)
Support for generating paEventCounter reports using the VS Enable Periodic Advertising Event Counter Reports command (DRGN-25444).
The
sdc_support_channel_sounding_initiator_role()andsdc_support_channel_sounding_reflector_role()functions, which can reduce the NVM usage of Channel Sounding by removing support for the Initiator or Reflector role (DRGN-23607).
Bug fixes
Fixed a rare issue where the controller would assert when scanning and initiating simultaneously. (DRGN-25478)
The issue would only happen if all the following conditions are met:
The scan interval and scan window used by the initiator were not equal to those used by the scanner.
The Bluetooth host temporarily stopped pulling HCI events.
The initiator received a connectable
ADV_EXT_IND.
Fixed an issue where mode-0 steps in a Channel Sounding subevent would compensate for a random frequency actuation error when using the LE CS Test HCI command (DRGN-25522).
Fixed a rare issue where the controller could assert when calling the
LE Create Connection CancelHCI command. (DRGN-25326)Fixed an issue where the controller could assert when receiving on the Coded PHY over an ACL connection. This would occur when coding indicator or length byte was corrupted, causing the controller to listen for more than 27 bytes on S8 Coded PHY. (DRGN-24930)
Fixed a rare issue where the controller could stop responding when using coexistence interfaces with the SoftDevice Controller on nRF52 or nRF53 Series devices. (DRGN-25846)
Fixed a rare issue where the controller acting as a central would cause the link to time out. This would occur when a connection subrate factor greater than
1was used, and a conflicting scheduling activity was running. (DRGN-25801)Fixed an issue where the controller would stop generating advertising reports while running an extended scanner. (DRGN-25859)
Changes
The
Versionfield in theLL_VERSION_INDpacket now contains the value0x0Fto indicate compatibility with Bluetooth Core Specification v6.1 (DRGN-25531).When controller to host flow control is enabled, the controller no longer waits until all ACL data packets have been acknowledged by the host before raising the Disconnection Complete event. The controller no longer validates the handles provided in the Host Number of Complete Packets command. That is, the handles provided may belong to a Disconnection Complete event which has not yet been processed by the host. This reverts the changes done by DRGN-21085. (DRGN-24882)
The packets received on Coded PHY with reserved for future use (RFU) values in the coding indicator (CI) field are now treated as CRC errors. This would occur when the CI field is corrupted in noisy environments, causing the controller to decode at an incorrect rate. (DRGN-25037)
ISO SDUs up to 1255 bytes are now supported for isochronous channels. (DRGN-25316)
The controller now supports T_IP1 times 30 µs or greater. (DRGN-26241)
nRF Connect SDK v3.0.1
Bug fixes
Fixed an issue where the controller would assert when terminating a connection created from PAwR. The issue would occur if the
CONFIG_BT_CTLR_CHANNEL_SOUNDINGKconfig option was enabled. (DRGN-25200)
nRF Connect SDK v3.0.0
Added
Support generating the HCI LE CIS Established v2 event. (DRGN-24112)
Support for the Advertising Coding Selection feature as an advertiser or scanner. (DRGN-23744)
For an advertiser, this adds support for the LE Set Extended Advertising Parameters [v2] HCI command.
For a scanner, the advertising reports will contain the coding scheme for packets received over LE Coded PHY when the host feature bit is enabled.
Support for multiple packet pairs in an ACL event when using LLPM mode. (DRGN-16157)
Changes
The Channel Sounding feature is now supported instead of experimental. (DRGN-24060)
The LE Channel Selection Algorithm event is no longer raised when a connection was established as a peripheral using legacy advertising commands. This behavior was changed to accommodate ES-27170. (DRGN-24660)
The CIS or BIS sink now generate lost SDUs immediately when scheduling conflicts occur instead of after receiving the next valid SDU. (DRGN-24062)
Removed support for running the SoftDevice Controller on the nRF54L15 DK v0.8.1 and earlier. (DRGN-21403)
Reduced latency when changing the list of subevents to which a Periodic Advertising with Responses Scanner is synchronized. (DRGN-24543)
A CIS peripheral will now reject an invalid
LL_CIS_REQif one of the following condition is met:SDU_Interval_C_To_PorSDU_Interval_P_To_Cis less than 255 µs.ISO_Intervalis not an integer multiple ofSDU_Interval_C_To_PorSDU_Interval_P_To_Cwhen unframed PDU is used.BN_C_To_PorBN_P_To_Cis smaller than the value required by the configuration when an unframed PDU is used.
This only applies when the burst number (BN) in the corresponding direction (
BN_C_To_PorBN_P_To_C) is non-zero. (DRGN-23304)
Bug fixes
Fixed an issue where disconnect could happen if multiple peripheral links were active and encrypted. (DRGN-24784)
Fixed an issue where the controller would fail to synchronize with a BIS Broadcaster. (DRGN-24670)
This would occur when the Broadcaster has set
Num_Bis=1,NSE > 1, andSub_Interval == BIS_Spacing. Previously, the controller would raise the LE BIG Sync Established event with status set toUnsupported Feature or Parameter value (0x11).Fixed an issue where ACL connections could not be created if a Periodic Advertiser was configured when the
CONFIG_BT_CTLR_SDC_PAWR_ADVKconfig option was selected. (DRGN-24148)Fixed a rare issue where the scanner would assert when scanning and initiating at the same time. (DRGN-24198)
The issue would only happen if all the following conditions are met:
BT_CTLR_SDC_ALLOW_PARALLEL_SCANNING_AND_INITIATINGis selected.BT_CTLR_SDC_SCAN_BUFFER_COUNTis set to the non-default value 2.The initiator has received a connectable
ADV_EXT_IND.The initiator is canceled.
Fixed an issue where the central device would disconnect 40 s after responding to a
LL_SUBRATE_REQwith reasonLMP Response Timeout (0x22). This would only occur on nRF52 Series and nRF53 Series devices. (DRGN-24310)Fixed a very rare issue where the scanner would assert, hang or stop producing reports when scanning and initiating at the same time. (DRGN-24370)
The issue would only happen if all the following conditions are met:
BT_CTLR_SDC_ALLOW_PARALLEL_SCANNING_AND_INITIATINGis selected.The timing events are not combined for the scanner and the initiator.
The initiator is canceled or the scanner is stopped after receiving an extended advertising PDU pointing to a AUX_ADV_IND or AUX_CHAIN_IND PDU, but the AUX_ADV_IND or AUX_CHAIN_IND PDU was not received yet. The issue may also occur if the reception of the AUX_ADV_IND or AUX_CHAIN_IND fails to be scheduled.
See Concurrent scanner and initiator timing for information on how to select parameters where the timing events are combined.
Fixed a rare issue where the scanner would fail to receive a secondary channel packet. (DRGN-24300)
The issue would only happen if all the conditions are met:
The configured scan window is larger than 500 milliseconds.
The
ADV_EXT_INDis received at the very end of the scan window.
Fixed an issue where the CIS peripheral would not be able to receive after the first subevent. This would only happen if the subevent interval is large or if the CIS is configured with interleaved packing. (DRGN-24359)
Fixed an issue where the CIS peripheral would report wrong SDU sequence numbers upon receiving. (DRGN-24359)
The issue would only happen if all the following conditions are met:
The subevent interval is large, or if the CIS is configured with interleaved packing.
There are scheduling conflicts.
Fixed an issue where an application running on a nRF54L Series device would sometimes fail to receive an ACL packet after it had sent a packet on Coded PHY with S=2. The issue would only happen when the application explicitly asked to use the coding scheme S=2. (DRGN-23691)
Fixed an issue where a CIS Peripheral would assert when receiving an invalid
LL_CIS_REQ. This would only happen if unframed PDUs were used. (DRGN-24706)Fixed a rare issue where the controller would assert when in a connection. (DRGN-24749)
The issue would only happen if all the following conditions are met:
A feature requiring long control packets is enabled, for example, CIS, Sync Transfer, or Channel Sounding.
A short event length is used.
The data length is not updated
Fixed an issue where the central would disconnect without sending a
LL_TERMINATE_INDwhen the user sent the Disconnect HCI command. This issue occurred when the central was blocked by another higher-priority role for extended periods. (DRGN-24784)Fixed a rare assert when stopping a CIG or BIG. This issue would only occur when another CIG or BIG role was active at the same time. (DRGN-24938)
Fixed a rare issue where the controller running on an nRF54 Series device would send a corrupted packet with a valid CRC. This could lead to sending a packet with an invalid MIC in the case of an encrypted connection. The issue would occur if the
CONFIG_FPUandCONFIG_FPU_SHARINGKconfig options are enabled. (DRGN-24929)
nRF Connect SDK v2.9.2
Bug fixes
Fixed an issue where disconnect could happen if multiple peripheral links were active and encrypted. (DRGN-24784)
Fixed a rare issue where the controller running on an nRF54 Series device would send a corrupted packet with a valid CRC. This could lead to sending a packet with an invalid MIC in the case of an encrypted connection. (DRGN-24929) The issue would occur if the
CONFIG_FPUandCONFIG_FPU_SHARINGKconfig options are enabled.
nRF Connect SDK v2.9.0
Added
Production support for scanning and initiating at the same time. (DRGN-23824)
Experimental support for Channel Sounding step mode-3.
Experimental support for Channel Sounding multiple antenna elements.
Experimental support for the following Channel Sounding HCI commands:
LE CS Write Cached Remote Supported Capabilities
LE CS Write Cached Remote FAE Table
LE CS Remove Config
Changes
The vendor-specific Set Connection Event Trigger HCI command has been removed. (DRGN-23981)
The documentation for the vendor-specific ISO Read TX Timestamp command has been updated to represent the returned value. (DRGN-23708)
Bug fixes
Fixed an issue where the CIS central running on an nRF53 Series device could set an invalid MIC when sending encrypted ISO packets. (DRGN-23776)
Fixed a rare issue where the scanner may give a single advertising report with corrupted data when restarting scanning. The issue would only happen when the scanner received a long extended advertising packet that did not fit into a single advertising report and the scanning was stopped explicitly or through a timeout. (DRGN-23966)
Fixed an issue where the CIS TX Power was set according to the LE Power Control state of the previous CIS in a CIG. (DRGN-21721)
Fixed an issue where the BIS receiver running with FEM could enable the radio at the wrong time, causing the receiver to drop packets and lose sync. (DRGN-23891)
Fixed an issue where the controller would raise Number Of Completed Packets events for a disconnected CIS. (DRGN-23869)
nRF Connect SDK v2.8.0
Added
Production support for the nRF54L Series. (DRGN-23325)
Support for the LE Set Path Loss Reporting Parameters and LE Set Path Loss Reporting Enable HCI commands. (DRGN-17376)
Support for generating connection anchor update event reports using the VS Conn Anchor Point Update Report Enable command. When enabled, one report is generated when the anchor point of a connection is updated. This information can be used to synchronize two applications running on a central and a peripheral device. (DRGN-22662)
Vendor-specific command for triggering a peripheral task at the start of a radio event. See
sdc_hci_cmd_vs_set_event_start_task(). (DRGN-20737)Support for the LE Set Default Subrate and LE Subrate Request HCI commands. (DRGN-19745)
Support for ISO broadcaster handles in the
sdc_hci_cmd_vs_zephyr_write_tx_power()andsdc_hci_cmd_vs_zephyr_read_tx_power()commands (DRGN-23441).Experimental support for Channel Sounding (CS) on nRF54L Series devices. Currently, the SoftDevice Controller only supports one subevent per event. The following HCI commands are now supported:
LE CS Read Local Supported Capabilities
LE CS Read Remote Supported Capabilities
LE CS Security Enable
LE CS Set Default Settings
LE CS Read Remote FAE Table
LE CS Create Config
LE CS Set Channel Classification
LE CS Set Procedure Parameters
LE CS Procedure Enable
LE CS Test
LE CS Test End
The defines
SDC_PPI_CHANNELS_USED_MASK,SDC_DPPI_CHANNELS_USED_MASK,SDC_DPPIC10_CHANNELS_USED_MASK,SDC_DPPIC00_CHANNELS_USED_MASK,SDC_DPPIC020_CHANNELS_USED_MASK, andSDC_DPPIC030_CHANNELS_USED_MASK. These represent the PPI resources used in the SoftDevice Controller.The defines
SDC_PPIB00_CHANNELS_USED_MASK,SDC_PPIB10_CHANNELS_USED_MASK,SDC_PPIB020_CHANNELS_USED_MASK, andSDC_PPIB030_CHANNELS_USED_MASK. These represent the PPIB resources used in the SoftDevice Controller.
Changes
Removed support for running the SoftDevice Controller on the nRF54L15 PDK v0.7.0 and earlier. (DRGN-23325)
Removed support for running the SoftDevice Controller on the Engineering A revision of the nRF54H20 SoC. (DRGN-23325)
The
VersNrfield in theLL_VERSION_INDpacket now contains the value0x0Eto indicate compatibility with Bluetooth Core Specification v6.0 (DRGN-23211).The
sdc_coex_adv_mode_configureAPI has been deprecated as it is not applicable to any supported coexistence interfaces. (DRGN-20876).The
sdc_hci_cmd_vs_coex_priority_configandsdc_hci_cmd_vs_coex_scan_mode_configvendor-specific HCI commands have been removed as they are not applicable to any supported coexistence interfaces. (DRGN-20876)The vendor-specific Set Connection Event Trigger command has been deprecated. Users interested in similar functionality are encouraged to use the VS Set Event Start Task command instead. (DRGN-20737)
Extended Connection Events are not re-enabled on HCI Reset. The state before HCI Reset is preserved, either the value of
CONFIG_BT_CTLR_SDC_CONN_EVENT_EXTEND_DEFAULTor the most recent call tosdc_hci_cmd_vs_conn_event_extend(). (DRGN-22687)The paths to the library files for SoftDevice Controller and MPSL were changed to use the device family. (DRGN-21939)
cortex-m4changed tonrf52cortex-m33+nodspchanged tonrf53nrf54l15_cpuappchanged tonrf54lnrf54h20_cpuradchanged tonrf54h
For a Synchronized Receiver, the priority of the first
BNsubevents of relevant BISes in a BIG event now have an elevated priority. This should improve reliability of ISO data being received by a Synchronized Receiver running alongside a role of lower priority. For more details, see the Scheduling priorities table.The SoftDevice Controller can now utilize more than 64K of memory buffer passed to
sdc_enable(). (DRGN-22067)If LE Power Control is not being used, the TX power of CISes is now the same as for the corresponding ACL connection. (DRGN-23291)
Generating the Number of Completed Packets event is now prioritized above all other events. The event is generated irrespective of the state of the Controller to Host data flow control. (DRGN-23284)
When a link disconnects, the controller will now raise one or more Number Of Completed Packets events for data packets not ACKed by the peer device. (DRGN-23302)
Isochronous roles may now produce HCI ISO data with SDUs containing the
0b01packet status flag which indicates possibly invalid data. This is the case if the peer sends invalid data. (DRGN-23420)
Bug fixes
Fixed a rare assert that could happen when disabling a periodic advertising set with responses. (DRGN-22443)
Fixed an issue where the length byte of the HCI packet could be incorrect. This could happen when the packet contained an LE BIG Sync Established event or LE BIG Complete event with status not equal to success. (DRGN-22441)
Fixed an assert that could happen when in a connection where the peer device is transmitting on S8 Coded PHY. This issue was present in v2.6 and v2.7 releases. (DRGN-22652)
Fixed an issue where the extended scanner would not generate a truncated advertising report after the coexistence interface aborted the reception of an
AUX_CHAIN_INDpacket. (DRGN-22686)Fixed a very rare issue where the controller stopped generating advertising reports. On nRF52 Series and nRF53 Series devices, this would happen at least one hour after the scanner started. On nRF54L and nRF54H Series devices, this would occur immediately after the scanner started. (DRGN-22678)
It would only happen when one of the following applies:
There was another central-like scheduling activity running. Examples of roles with such activities are the ACL central, periodic advertiser, isochronous broadcaster and the CIS central. This activity was configured with an event length or event spacing equal or greater than the scan interval. This is typically only true for use cases where the application enables isochronous channels or uses very short scan windows.
The scanner was configured with scan window equal to scan interval (continuous scanning).
The central-like scheduling activity required less than 1 ms to complete at the point in time where the scanner started.
Fixed a rare issue where the scanner would be stuck in the synchronizing state after failing to receive an
AUX_ADV_INDpacket. This could only happen when the correspondingADV_EXT_INDpacket contained a resolvable address, private address resolution is enabled, and the periodic advertising list is not used. (DRGN-22230)Fixed an issue where the controller could generate the LE Advertising Set Terminated event one event sooner than expected. (DRGN-22705)
This could only happen when all of the following apply:
a non-zero Max_Extended_Advertising_Events parameter was used in the LE Set Extended Advertising Enable command.
other ongoing activities in the controller prevented the first advertising event from taking place when the advertising set was created.
Fixed an issue where calling the
sdc_hci_cmd_vs_zephyr_write_tx_power()function without the LE Power Control feature enabled could cause the controller to de-reference a NULL pointer. (DRGN-22930)Fixed an issue where the Central failed to receive the last packet in an isochronous event. This could only happen if the Connected Isochronous Stream Creation procedure was initiated by the host before the Encryption Start procedure completed. (DRGN-22879)
Fixed an assert that could happen when using the coexistence interface. (DRGN-23002)
This could happen when any of the following controller activities were ongoing:
Isochronous Broadcaster
Connected Isochronous channel in the peripheral role
Periodic Sync with Responses
Fixed an issue where LE Power Control was not being used for CISes which are not the first CIS in a CIG. (DRGN-23291)
Fixed an issue where the SoftDevice Controller in the peripheral role could terminate a connection due to a MIC failure during a valid encryption start procedure. This could only happen if the
LL_ENC_RSPpacket was corrupted due to on-air interference. (DRGN-23204)Fixed an issue where received unframed Isochronous SDUs were not reported to be a SDU interval apart. This could happen when the ISO interval is greater than the SDU interval and multiple SDUs can be received in a single ISO interval. (DRGN-23586)
Fixed an issue where the sleep clock accuracy communicated to the peer was too inaccurate if MPSL was initialized with a low frequency clock accuracy better than 20ppm. (DRGN-23693)
Fixed a rare issue in the controller that could lead to a bus fault. (DRGN-22036)
This could only happen when all of the following conditions were met:
The host was too slow at pulling HCI events.
One or more HCI events had been masked in the controller.
The controller was raising ACL or ISO data to the host.
nRF Connect SDK v2.7.0
Added
Experimental support for scanning and initiating at the same time. (DRGN-19050)
Vendor-specific HCI command to set the channel map for scanning and initiating. See
sdc_hci_cmd_vs_scan_channel_map_set()(DRGN-19730).Vendor-specific HCI command to configure the scanner and initiator to either accept or reject extended advertising packets. See
sdc_hci_cmd_vs_scan_accept_ext_adv_packets_set()(DRGN-21755).Vendor-specific HCI command to change the scheduling priorities. Currently, this only supports changing the priority of initiator activities on the auxiliary channels. Note that unless documented otherwise, any non-default priorities are not tested. This means that there is no guarantee that the controller works as intended when non-tested priorities are used. See
sdc_hci_cmd_vs_set_role_priority()(DRGN-21226).
Changes
The SoftDevice Controller will now schedule all scanner primary channel timing-events cooperatively even when the sum of the scan windows is less than the scan interval. If the SoftDevice Controller is unable to schedule a full scan window for a long time, the scheduling priority will be raised to ensure a full window is scheduled.
Generally, this change will result in either increased scanning time, or similar scanning time to before. In cases where there are many conflicting activities within the scan window, this change may result in reduced scanning time. (DRGN-19050)
Scan windows are no longer limited to 16 seconds. (DRGN-19050)
The deprecated structure members
sdc_rand_source_t.rand_prio_low_getandsdc_rand_source_t.rand_prio_high_gethave been removed. This change does not affect applications developed in the nRF Connect SDK context. (DRGN-20473)The HCI commands used to configure a scanner or initiator no longer return
BT_HCI_ERR_INVALID_PARAMwhen the sum of scan windows is greater than the scan interval. Now the controller will truncate the scan windows so that the sum of the windows fit within the scan interval. (DRGN-21710)The vendor-specific Set Connection Event Trigger command can now be used with advertising sets. (DRGN-21665)
The application can now configure the amount of RAM allocated for the RX ISO SDUs. The SoftDevice Controller now uses the field
rx_sdu_buffer_sizeinsdc_cfg_iso_buffer_cfg_t. The macroSDC_MEM_ISO_RX_SDU_POOL_SIZEhas been changed to take the maximum RX SDU size as an input. This change does not affect applications developed in the nRF Connect SDK context. (DRGN-21650)The application can now configure the amount of RAM allocated for the TX ISO SDUs. The fields
tx_sdu_buffer_countandtx_sdu_buffer_sizeinsdc_cfg_iso_buffer_cfg_tare added. The fieldstx_hci_buffer_countandtx_hci_buffer_sizeinsdc_cfg_iso_buffer_cfg_tare removed. The macrosSDC_MEM_ISO_TX_PDU_POOL_SIZEandSDC_MEM_ISO_TX_SDU_POOL_SIZEreplaceSDC_MEM_ISO_TX_POOL_SIZE. This change does not affect applications developed in the nRF Connect SDK context. (DRGN-21650)The function
sdc_soc_ecb_block_encrypt()has been removed. Usingmpsl_ecb.his now recommended instead. (DRGN-21603)The ability to configure a periodic advertiser with subevents but without response slots has been removed. This is due to an errata to the Bluetooth Core Specification v5.4 no longer allowing this configuration. (DRGN-22189)
Bug fixes
Fixed an issue where an assert could happen if an initiator ran for more than 2147 seconds before connecting (DRGN-22163).
Fixed an extremely rare race condition where using
sdc_soc_ecb_block_encrypt()from an ISR could lead to encryption failures. (DRGN-21603)Fixed an issue where the vendor-specific ISO Read TX Timestamp command returned a timestamp that was 41 µs too small (DRGN-21605).
Fixed an issue where an assert could happen if a CIS peripheral stopped receiving packets from the CIS central. This would only occur after the window widening reached at least half of the ISO interval in magnitude. Assuming worst case clock accuracies on both central and peripheral, this would correspond to 2.4, 3.7, and 4.9 seconds for ISO intervals of 5 ms, 7.5 ms, and 10 ms. This issue would not occur if the supervision timeout was set to a value smaller than the ones mentioned above (DRGN-21619).
Fixed an issue where the peripheral waited for a link to time out when tearing down the connection. This happened when the central would acknowledge
TERMINATE_INDin the same event as it was being sent (DRGN-21637).Fixed an issue where the SoftDevice Controller would accept the HCI LE Set Random Address command while passive scanning had been enabled. The SoftDevice Controller now returns the error code
0x0Din this case. (DRGN-19050)Fixed an issue where a BIS Broadcaster would transmit invalid parameters in the BIG Info if a BIG was created with
num_bisset to1andpackingset to1(interleaved). This could happen with both the LL Create BIG and LL Create BIG Test commands (DRGN-21912).Fixed an issue with the controller-initiated autonomous LE Power Control Request procedure for Coded PHY that could lead to a disconnection. (DRGN-21923)
Fixed an issue where the SoftDevice Controller could assert if a BIS Receiver stops receiving packets from the BIS Broadcaster. (DRGN-21949)
Fixed an issue where the SoftDevice Controller could in some rare cases generate an LE Periodic Advertising Subevent Data Request for a subevent it did not have the memory capacity for. (DRGN-21839)
Fixed an issue where an assert could happen if the peripheral received a connection update indication. This happened when the central used a wide receive window for the connection update, and both sent at the end of the receive window and sent a lot of data in the connection event with the connection update instant (DRGN-22024).
Fixed an issue where the SoftDevice Controller could assert when scanning or advertising on Coded PHY using SPI FEM on the nRF53 series. (DRGN-21962)
nRF Connect SDK v2.6.4
All the notable changes included in the nRF Connect SDK v2.6.4 release are documented in this section.
Bug fixes
Fixed an issue where disconnect could happen if multiple peripheral links were active and encrypted. (DRGN-24784)
nRF Connect SDK v2.6.3
All the notable changes included in the nRF Connect SDK v2.6.3 release are documented in this section.
Bug fixes
Fixed an assert that could happen when in a connection where the peer device is transmitting on S8 Coded PHY. (DRGN-22652 and DRGN-24327)
Fixed an issue where the peripheral waited for a link to time out when tearing down the connection. This happened when the central would acknowledge
TERMINATE_INDin the same event as it was being sent (DRGN-21637).Fixed an issue where the sleep clock accuracy communicated to the peer was too inaccurate if MPSL was initialized with a low frequency clock accuracy better than 20ppm. (DRGN-23693)
Fixed an issue where an assert could happen if the peripheral received a connection update indication. This happened when the central used a wide receive window for the connection update, and both sent at the end of the receive window and sent a lot of data in the connection event with the connection update instant (DRGN-22024).
Fixed an issue where the SoftDevice Controller in the peripheral role could terminate a connection due to a MIC failure during a valid encryption start procedure. This could only happen if the
LL_ENC_RSPpacket was corrupted due to on-air interference. (DRGN-23204)Fixed a rare issue in the controller that could lead to a bus fault. (DRGN-22036)
This could only happen when all of the following conditions were met:
The host was too slow at pulling HCI events.
One or more HCI events had been masked in the controller.
The controller was raising ACL or ISO data to the host.
Changes
Generating the Number of Completed Packets event is now prioritized above all other events. The event is generated irrespective of the state of the Controller to Host data flow control. (DRGN-23284)
When a link disconnects, the controller will now raise one or more Number Of Completed Packets events for data packets not ACKed by the peer device. (DRGN-23302)
nRF Connect SDK v2.6.0
All the notable changes included in the nRF Connect SDK v2.6.0 release are documented in this section.
Added
Vendor-specific HCI command to read average RSSI calculated by LE Power Control. See
sdc_hci_cmd_vs_read_average_rssi()(DRGN-17355).Vendor-specific HCI command to set the time between anchor points of central ACL connections with identical connection intervals. See
sdc_hci_cmd_vs_central_acl_event_spacing_set()(DRGN-20796).Vendor-specific HCI command to set up (D)PPI tasks on radio events. See
sdc_hci_cmd_vs_set_conn_event_trigger()(DRGN-20737).Vendor-specific HCI command to read the next connection event counter value. See
sdc_hci_cmd_vs_get_next_conn_event_counter()(DRGN-20737).Vendor-specific HCI command to allow parallel connection establishment through initiating and periodic advertising with responses. See
sdc_hci_cmd_vs_allow_parallel_connection_establishments()(DRGN-20823).Vendor-specific HCI command to set the minimum value that will be used as maximum Tx octets for ACL connections. See
sdc_hci_cmd_vs_min_val_of_max_acl_tx_payload_set()(DRGN-20819).Vendor-specific HCI command to read the ISO tx timestamp and packet sequence number of the SDU that the host previously provided. See
sdc_hci_cmd_vs_iso_read_tx_timestamp()(DRGN-19283).Vendor-specific HCI command to change the time reserved for other roles in each ISO interval, used when selecting BIG parameters. See
sdc_hci_cmd_vs_big_reserved_time_set()(DRGN-20891).Vendor-specific HCI command to change the time reserved for other roles in each ISO interval, used when selecting CIG parameters. See
sdc_hci_cmd_vs_cig_reserved_time_set()(DRGN-21344).Vendor-specific HCI command to set the CIS subevent length. See
sdc_hci_cmd_vs_cis_subevent_length_set()(DRGN-21362).
Changes
The LE Isochronous Channels feature is now supported instead of experimental, both Connected Isochronous Streams and Broadcast Isochronous Streams. Unless mentioned otherwise, the SoftDevice Controller supports the whole range of the allowed parameters. See the Limitations section for known limitations.
The controller now returns the error code
0x12if the same subevent index is used multiple times in LE Set Periodic Advertising Subevent Data. This conforms to erratas ES23466 and ES23424. (DRGN-20736)The vendor-specific Set event length for ACL connections HCI command no longer sets the time between anchor points of central ACL connections with identical connection intervals. (DRGN-20796)
The vendor-specific HCI commands
sdc_hci_cmd_vs_set_auto_power_control_request_param()andsdc_hci_cmd_vs_set_power_control_apr_handling()have been replaced bysdc_hci_cmd_vs_set_power_control_request_params()(DRGN-17355).The controller now always returns the error code
0x0Dif a connection attempt is made while another is still pending. Previously, this was not the case if one connection attempt was through periodic advertising with responses while the other was through the initiator. (DRGN-20823)The scheduling priority for initiator events where the scan window is equal to the scan interval is lowered to the third scheduling priority. For other configurations of scan window and scan interval the priority is unchanged. (DRGN-20831)
The vendor-specific Set event length for ACL connections HCI command now accepts values lower than 1250 us. (DRGN-20796)
The scheduling priority for the scanner where the scan window is equal to the scan interval is lowered to the fourth scheduling priority. This will allow concurrent Bluetooth LE roles to interrupt continuous scanning, but will reduce the time available for scanning. For other configurations of scan window and scan interval the priority is unchanged. (DRGN-19272)
The scheduling priority for MPSL timeslots with normal priority and the 802.15.4 radio driver is lowered to the fifth scheduling priority. This is done to maintain the relative priority with them and continuous scanning. (DRGN-20488)
Improved scheduling performance when receiving packets closely following an
AUX_SYNC_INDthat does not point to anAUX_CHAIN_IND. The controller will attempt to prioritize the reception of such packets while still maintaining the periodic sync. (DRGN-19272)The functions
rand_prio_low_get()andrand_prio_high_get()have been deprecated. They are no longer used by the SoftDevice Controller. (DRGN-20472)
Bug fixes
Fixed an issue where the LE Set Periodic Advertising Subevent Data command could fail when providing data at the same time as an
AUX_SYNC_SUBEVENT_INDwas sent. (DRGN-20762)Fixed an issue where a packet might not be received when sent at the instant of a Channel Map Update. This could happen when acting as Peripheral. (DRGN-20815)
Fixed an assert that could happen if the LE Set Periodic Advertising Response Data command was issued more than once without fetching the Command Complete Event. (DRGN-20432)
Fixed an issue where the controller would assert during cooperative active scanning or when running a cooperative initiator. This could happen when the controller was about to send a scan request or connect indication. (DRGN-20832)
Fixed an issue where the nRF5340 DK consumed too much current while scanning. This could happen if the controller was running with TX power higher than 0 dB. (DRGN-20862)
Fixed an assert that could happen if the Periodic Sync with Responses was terminated. (DRGN-20956)
Fixed an issue where the controller stopped generating advertising reports. This could happen when the controller was running an extended cooperative scanner together with other activities, such as advertising or connection, while receiving data in an extended advertising event that used
AUX_CHAIN_IND. (DRGN-21020)Fixed an issue where the controller would stop sending ACL data packets to the host when controller to host flow control was enabled. This could happen when a disconnection occurred before the host had issued the Host Number of Complete Packets command for the remaining ACL data packets. Now the controller waits until after all ACL data packets have been acknowledged by the host before raising the Disconnection Complete event. The controller also validates the handles provided in the Host Number of Complete Packets command. (DRGN-21085)
Fixed a rare issue where the scanner may assert when it schedules the reception of the next advertising packet. (DRGN-21253)
nRF Connect SDK v2.5.2
All the notable changes included in the nRF Connect SDK v2.5.2 release are documented in this section.
Bug fixes
Fixed an issue where the controller stopped generating advertising reports. This could happen when the controller was running an extended cooperative scanner together with other activities, such as advertising or connection, while receiving data in an extended advertising event that used
AUX_CHAIN_IND. (DRGN-21020)Fixed an issue where the controller would stop sending ACL data packets to the host when controller to host flow control was enabled. This could happen when a disconnection occurred before the host had issued the Host Number of Complete Packets command for the remaining ACL data packets. Now the controller waits until after all ACL data packets have been acknowledged by the host before raising the Disconnection Complete event. The controller also validates the handles provided in the Host Number of Complete Packets command. (DRGN-21085)
Fixed a rare issue where the scanner may assert when it schedules the reception of the next advertising packet. (DRGN-21262)
nRF Connect SDK v2.5.0
All the notable changes included in the nRF Connect SDK v2.5.0 release are documented in this section.
Added
Experimental support for isochronous channels, both Connected Isochronous Streams and Broadcast Isochronous Streams. The controller supports an ISO interval equal to the SDU interval, using unframed PDUs. The following HCI commands are now supported:
Read Connection Accept Timeout
Write Connection Accept Timeout
LE Read Buffer Size [v2]
LE Read ISO TX Sync
LE Set CIG Parameters
LE Set CIG Parameters Test
LE Create CIS
LE Remove CIG
LE Accept CIS Request
LE Reject CIS Request
LE Create BIG
LE Create BIG Test
LE Terminate BIG
LE BIG Create Sync
LE BIG Terminate Sync
LE Setup ISO Data Path
LE Remove ISO Data Path
LE ISO Transmit Test
LE ISO Receive Test
LE ISO Read Test Counters
LE ISO Test End
LE Set Host Feature
LE Read ISO Link Quality
Experimental support for the Quality of Service (QoS) channel survey. See the
sdc_hci_cmd_vs_qos_channel_survey_enable()function.Support for starting the scanner without setting scan parameters. Previously the controller would assert (DRGN-17623).
Vendor-specific HCI command to enable utilization of remote APR on the local TX power when using LE Power Control. See
sdc_hci_cmd_vs_set_power_control_apr_handling()(DRGN-17355).
Changes
Host now always receives LE Transmit Power Reporting Events. Previously, some events might not be received when remote and local power changes were applied to the same PHY simultaneously. (DRGN-18950)
sdc_hci_cmd_put()andsdc_hci_cmd_vs_read_supported_vs_commands()functions are removed. This change does not affect applications developed in the nRF Connect SDK context. (DRGN-19281)When creating a connection or periodic advertiser, the controller will now attempt to select the interval so that it causes as few scheduling conflicts with existing periodic activities as possible. The selected interval is always in the range
[interval_min, interval_max], whereinterval_minandinterval_maxare provided by the host. Previously, the controller always selectedinterval_max.The
SDC_CFG_TYPE_EVENT_LENGTHconfiguration is removed. An application must use thesdc_hci_cmd_vs_event_length_set()HCI command instead.The ChSel bit in a
CONNECT_INDPDU will now match the ChSel bit in theADV_INDPDU. Previously, this was always set to indicate channel selection algorithm 2. (DRGN-19115)The LE Power Control Request feature is now supported instead of experimental. (DRGN-17499)
sdc_soc_flash_write_async()andsdc_soc_flash_page_erase_async()functions are removed. This change does not affect applications developed in the nRF Connect SDK context. (DRGN-20451)When synchronizing to a periodic advertiser, the number of events skipped is restricted so that there are at least three opportunities to receive before timing out. Previously, only one opportunity to receive was guaranteed before timing out. (DRGN-20448)
Bug fixes
Fixed an issue where the continuous extended scanner would not be able to receive the
AUX_ADV_INDpacket if the time between theADV_EXT_INDandAUX_ADV_INDwas more than 840 μs (DRGN-19460).Fixed an issue where the stack would dereference a NULL pointer when a resolvable
own_address_typewas used in the HCI Le Extended Create Connection V2 command while the resolving list was empty (DRGN-19580).Fixed an issue where the HCI Reset command would not clear the channel map set by the host using the HCI Le Set Host Channel Classification command (DRGN-19623).
Fixed a bug where the
Peer_Address_Typeparameter in theLE Connection Completeevent was set to2or3in case the connection was established to a device whose address was resolved (DRGN-18411). The least significant bit of thePeer_Address_Typeparameter was set correctly.Fixed an issue where the stack would assert if trying to set up more advertisers than there are available advertising sets (DRGN-20118).
Fixed an issue where enabling an extended advertising set would assert in cases where a host-provided address was not needed and no address had been set up for the advertising set (DRGN-20085).
Fixed an issue where the controller acting as a central would assert when receiving a non-compliant LL_PHY_RSP from a peer device (DRGN-20578).
Fixed an issue that could occur when the Host Number of Complete Packets command was sent with a connection handle the controller had already raised a disconnect event for. The controller would return
BT_HCI_ERR_INVALID_PARAMto the command, which would mean that the host could not return the buffer to the controller (DRGN-20654).
nRF Connect SDK v2.4.3
All the notable changes included in the nRF Connect SDK v2.4.3 release are documented in this section.
Bug fixes
Fixed an issue where the controller stopped generating advertising reports. This could happen when the controller was running an extended cooperative scanner together with other activities, such as advertising or connection, while receiving data in an extended advertising event that used
AUX_CHAIN_IND(DRGN-21020).Fixed an issue where the continuous extended scanner would not be able to receive the
AUX_ADV_INDpacket if the time between theADV_EXT_INDandAUX_ADV_INDwas more than 840 μs (DRGN-19460).Fixed an issue where the controller would stop sending ACL data packets to the host when controller to host flow control was enabled. This could happen when a disconnection occurred before the host had issued the Host Number of Complete Packets command for the remaining ACL data packets. Now the controller waits until after all ACL data packets have been acknowledged by the host before raising the Disconnection Complete event. The controller also validates the handles provided in the Host Number of Complete Packets command (DRGN-21085).
Fixed a rare issue where the scanner may assert when it schedules the reception of the next advertising packet (DRGN-21262).
nRF Connect SDK v2.4.0
All the notable changes included in the nRF Connect SDK v2.4.0 release are documented in this section.
Added
Support for the vendor-specific HCI command: Set Compatibility mode for window offset (DRGN-18727).
Support for Periodic Advertising with Responses (PAwR) Scanner (DRGN-18739).
Support for LE Read and Write RF Path Compensation HCI commands (DRGN-10234 and DRGN-18202).
Support for up to 255 addresses in the Filter Accept List (DRGN-18967).
Support for configuring the Filter Accept List to have an arbitrary size (DRGN-18967).
Support for sync handles in the
sdc_hci_cmd_vs_zephyr_write_tx_power()andsdc_hci_cmd_vs_zephyr_read_tx_power()commands (DRGN-18805).Support for reading channel map updates that are not at the beginning of an ACAD (DRGN-19067).
Changes
The
VersNrfield in theLL_VERSION_INDpacket now contains the value 0x0D to indicate compatibility with Bluetooth Core Specification v5.4 (DRGN-18624).Receiving a Periodic Advertisement Sync Transfer (PAST) with invalid parameters will now generate the
LE Periodic Advertising Sync Transfer Receivedevent when receiving PAST is enabled (DRGN-18803).Periodic advertiser is allocated from the Periodic Advertising with Responses (PAwR) Advertiser sets when
SDC_CFG_TYPE_PERIODIC_ADV_RSP_COUNTis available. Otherwise, it is allocated from the Periodic Advertiser sets ifSDC_CFG_TYPE_PERIODIC_ADV_COUNTis set (DRGN-18979).The controller now returns the error code
0x0Dinstead of0x09if it has insufficient resources to handle more connections and the host tries to start a connectable advertiser or the controller receives the commandsLE Extended Create ConnectionorLE Create Connection(DRGN-18944).Periodic Advertising with Responses (PAwR) Advertiser is supported (DRGN-18497).
Bug fixes
Fixed a rare issue where the controller could assert when starting a connectable advertiser or creating a connection too quickly after disconnection (DRGN-18714).
Fixed an issue where the Periodic Advertisement Sync Transfer (PAST) sender may generate an incorrect
SyncInfofield for periodic advertising intervals greater than 5 seconds (DRGN-18775).Fixed an issue where the Periodic Advertisement Sync Transfer (PAST) sender could assert if the associated periodic sync was not fully established (DRGN-18833).
Fixed an issue where the controller would not deliver advertising reports for advertisements received when the scanner was close to timing out (DRGN-18651).
Fixed lower TX power on the nRF21540 DK in connected state. This occurred when using MPSL FEM and manually configuring the radio power (DRGN-18971).
Fixed an issue where the controller cannot synchronize to a periodic advertising train using the Periodic Advertising Sync Transfer procedure if it has previously tried to do it while it was already synchronized to the periodic advertising train (DRGN-19003).
Fixed an issue where the peripheral would disconnect with DIFFERENT_TRANSACTION_COLLISION when a collision of a connection update and a PHY update occurs even when central asks for no change (DRGN-18840).
Fixed a rare issue where the controller would assert when multiple instances of the same Bluetooth role were running and one of the instances was being stopped (DRGN-18424).
Fixed an issue where the SoftDevice Controller would not accept an
adv_handleprovided in HCI commands with values above the configured number of advertising sets (DRGN-19058).Fixed an issue where the controller could assert while synchronized to a Periodic Advertiser (DRGN-18883).
Fixed an issue where the controller fails to advertise using extended advertising in the first advertising event after an increase in advertising data payload (DRGN-19197).
nRF Connect SDK v2.3.0
All the notable changes included in the nRF Connect SDK v2.3.0 release are documented in this section.
Added
Support for enabling the receiving of Periodic Advertising Sync Transfer (PAST) using dedicated functions such as
sdc_support_periodic_adv_sync_transfer_receiver_central()(DRGN-16995).Support for LE Request Peer SCA command HCI command (DRGN-17972).
Support for Sleep Clock Accuracy Update control procedure (DRGN-17883).
Support for Periodic Advertising with Responses (PAwR) Advertiser (experimental) (DRGN-18497).
Changes
Memory buffer provided to
sdc_enable()must be 8 bytes aligned (DRGN-18090).
Bug fixes
Fixed an issue where the controller was using non-zero randomness for the first advertising event. This happened even after calling
sdc_hci_cmd_vs_set_adv_randomness()with a validadv_handleparameter (DRGN-18261).Fixed an issue where the controller would end up in the HardFault handler after receiving an invalid response to a scan request (DRGN-18358).
Fixed a bug where the
Peer_Address_Typeparameter in theLE Connection Completeevent was set to 2 or 3 in case the connection was established to a device which address was resolved (DRGN-18411). The least significant bit of thePeer_Address_Typeparameter was set correctly.Fixed an issue where the stack could dereference a NULL pointer when starting a periodic advertiser (DRGN-18420).
Fixed an issue where initiating Periodic Advertisement Sync Transfer (PAST) as advertiser may assert when the periodic advertisement train is not running (DRGN-18586).
Fixed an issue where calling the
bt_ctlr_set_public_addr()function beforebt_enable()incorrectly failed to set the address (DRGN-18655).
nRF Connect SDK v2.2.0
All the notable changes included in the nRF Connect SDK v2.2.0 release are documented in this section.
Added
Support for Connection CTE Response in the angle of arrival (AoA) configuration (DRGN-17365).
Support for LE Set Data Related Address Changes HCI command (DRGN-17919).
Support for changing advertising randomness using
sdc_hci_cmd_vs_set_adv_randomness()(DRGN-17872).Support for enabling the sending of Periodic Advertising Sync Transfer (PAST) using dedicated functions such as
sdc_support_periodic_adv_sync_transfer_sender_central()(DRGN-17817).Experimental support for the LE Power Control Request feature (DRGN-17350).
Changes
The functions
sdc_hci_evt_get()andsdc_hci_data_get()have been replaced bysdc_hci_get()(DRGN-17060).Scheduling performance when doing extended advertising and periodic advertising simultaneously has been improved on Coded PHY (DRGN-17819).
Bug fixes
Fixed an issue where the controller accepts an LL_PAUSE_ENC_REQ packet received on an unencrypted link (DRGN-17777).
Fixed an issue where the controller accepts CONNECT_IND, AUX_CONNECT_REQ and CONNECTION_UPDATE_REQ packets with the
connSupervisionTimeoutvalue set to 0 (DRGN-17776).Fixed an issue where the controller would assert if trying to sync to a periodic advertiser with a sync timeout shorter than the periodic advertiser interval (DRGN-19744).
Fixed an issue in MPSL where the controller would assert when a Bluetooth role was running (DRGN-17851).
Fixed an issue in MPSL where the controller would abandon a link, causing a disconnect on the remote side (DRGN-18105).
Fixed an issue where creating a periodic sync could in some cases erase periodic advertising reports for previously created syncs (DRGN-18089).
nRF Connect SDK v2.1.3
All the notable changes included in the nRF Connect SDK v2.1.3 release are documented in this section.
Bug fixes
Fixed an issue in MPSL where the controller would assert when a Bluetooth role was running (DRGN-17851).
Fixed an issue in MPSL where the controller would abandon a link, causing a disconnect on the remote side (DRGN-18105).
nRF Connect SDK v2.1.2
All the notable changes included in the nRF Connect SDK v2.1.2 release are documented in this section.
Changes
On nRF53, the fix for Errata 158 is now applied.
nRF Connect SDK v2.1.0
All the notable changes included in the nRF Connect SDK v2.1.0 release are documented in this section.
Added
Support for changing the radio transmitter’s default power level using
sdc_default_tx_power_set()(DRGN-15903).Support for disabling or enabling peripheral latency using
sdc_hci_cmd_vs_peripheral_latency_mode_set()(DRGN-15706).Stub version of
sdc_hci_get()for getting all types of HCI packets from the Link Layer (DRGN-17060).Experimental support for generic coex (DRGN-17128).
Changes
When the SoftDevice Controller is used with the Front-End Module provided by the Multiprotocol Service Layer, the transmit power is expressed as the power on the antenna instead of the power of the SoC output. This allows dynamic gain control of the Front-End Module if the selected Front-End Module supports it. The default transmit power for Bluetooth LE activities does not change, so if the Front-End Module has an exemplary gain of +10 dB, the output power of the SoC will be decreased accordingly. To achieve higher output powers on the antenna, the user must call the appropriate API. For
sdc_hci_cmd_vs_zephyr_write_tx_power()the transmit power is expressed as the maximum power on the antenna. The returned transmit power is the power on the antenna that can be achieved on the current SoC and Front-End Module. Forsdc_hci_cmd_vs_zephyr_read_tx_power()the returned transmit power is the power on the antenna that can be achieved on the current SoC and Front-End Module. (KRKNWK-13714)Improved channel selection for secondary advertising packets (DRGN-17452).
The extended advertiser will now always include the SyncInfo in the AUX_ADV_IND if there is a corresponding periodic advertiser, even if the offset cannot be represented (DRGN-16240).
Split the function
sdc_support_dle()intosdc_support_dle_central()andsdc_support_dle_peripheral().Added functions
sdc_support_phy_update_central()andsdc_support_phy_update_peripheral(), to enable change of PHY independently of the functionssdc_support_le_coded_phy()andsdc_support_le_2m_phy()These changes reduce the code size when using only central or peripheral role. (DRGN-17592)Applications may now configure fewer TX/RX buffers than the default. Note that this may lead to reduced throughput (DRGN-17651).
The scanner is now scheduling cooperatively when the sum of scan windows is equal to the scan interval. This improves scheduling performance when scanning concurrently on multiple PHYs (DRGN-17754).
Improved scheduling performance when synchronized to a periodic advertiser sending packets on Coded PHY (DRGN-17754).
Bug fixes
Fixed a HardFault that could occur when receiving legacy PDUs while using the periodic advertising synchronization functionality (DRGN-17656).
Fixed an issue where the maximum data length capabilities were set to 27 bytes when the configured event length (
CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT) was more than 65535 us (DRGN-17454).Fixed an issue where using the memory macros in
sdc.hwith fewer TX/RX buffers than the default would report incorrect memory usage (DRGN-17651).Fixed an issue where the periodic advertiser sends its AUX_SYNC_IND 40 us later than indicated in the SyncInfo of the AUX_ADV_IND packet (DRGN-17710).
Fixed an issue where the scanner would attempt to receive the first AUX_SYNC_IND 40 us later than indicated in the SyncInfo of the AUX_ADV_IND packet (DRGN-17710).
nRF Connect SDK v2.0.0
All the notable changes included in the nRF Connect SDK v2.0.0 release are documented in this section.
Added
Support for Peripheral-initiated Feature Exchange.
Vendor-specific HCI commands to set the priority and scan mode of Wi-Fi coexistence. See
sdc_hci_cmd_vs_coex_priority_config()andsdc_hci_cmd_vs_coex_scan_mode_config()(DRGN-16518).Support for periodic advertising intervals larger than ten seconds (DRGN-16873).
Support for periodic sync timeouts larger than 128 seconds (DRGN-16434).
The
sdc_support_ext_central()function that makes the extended initiator role configurable (DRGN-16392).Support for connectionless angle of arrival (AoA) transmitter (DRGN-16588). The following HCI commands are now supported (DRGN-16713):
LE Set Connectionless CTE Transmit Parameters
LE Set Connectionless CTE Transmit Enable
LE Read Antenna Information
Support for Periodic Advertising ADI (DRGN-16759).
The
nak_countfield into QoS Connection event reports that counts the number of received Negative Acknowledges from the peer during the connection event. Seesdc_hci_subevent_vs_qos_conn_event_report_t(DRGN-17183).The
sdc_coex_adv_mode_configureAPI to configure the behavior of the advertiser when using the coexistence interface (DRGN-16585).
Changes
Update public API terms to Bluetooth Core Specification v5.3 (DRGN-16271)
SDC_DEFAULT_MASTER_COUNThas been renamed toSDC_DEFAULT_CENTRAL_COUNT.SDC_DEFAULT_SLAVE_COUNThas been renamed toSDC_DEFAULT_PERIPHERAL_COUNT.SDC_MEM_PER_MASTER_LINKhas been renamed toSDC_MEM_PER_CENTRAL_LINK.SDC_MEM_PER_SLAVE_LINKhas been renamed toSDC_MEM_PER_PERIPHERAL_LINK.SDC_MEM_MASTER_LINKS_SHAREDhas been renamed toSDC_MEM_CENTRAL_LINKS_SHARED.SDC_MEM_SLAVE_LINKS_SHAREDhas been renamed toSDC_MEM_PERIPHERAL_LINKS_SHARED.SDC_CFG_TYPE_MASTER_COUNThas been renamed toSDC_CFG_TYPE_CENTRAL_COUNT.SDC_CFG_TYPE_SLAVE_COUNThas been renamed toSDC_CFG_TYPE_PERIPHERAL_COUNT.sdc_cfg_t.master_counthas been renamed tosdc_cfg_t.central_count.sdc_cfg_t.slave_counthas been renamed tosdc_cfg_t.peripheral_count.sdc_support_master()has been renamed tosdc_support_central().sdc_support_slave()has been renamed tosdc_support_peripheral().
HCI interface was updated according to Bluetooth Core Specification v5.3. For a list of the original terms and names and their replacements, refer to Appropriate Language Mapping Table.
The scanner now waits until the host has pulled the previous event’s periodic advertising reports before enqueuing a report for the next event. Note that this does not apply to single-PDU periodic advertising events (DRGN-16920).
The binary size of an application using the scanner but not the central role is decreased (DRGN-16392).
The functions
sdc_support_scan()andsdc_support_ext_scan()can no longer be called together withsdc_support_central()(DRGN-16392).Removed support for running the SoftDevice Controller on the nRF5340 PDK (DRGN-15174).
The
VersNrfield in theLL_VERSION_INDpacket now contains the value 0x0C to indicate compatibility with Bluetooth Core Specification v5.3 (DRGN-16109).The
sdc_hci_subevent_vs_qos_conn_event_report_tstructure has been redefined (DRGN-17183).
Bug fixes
Fixed an issue where Advertiser Address Type in the LE Periodic Advertising Sync Established event was never set to 0x02 or 0x03, even if the advertiser’s address was resolved (DRGN-17110).
Fixed an issue where Advertiser Address Type was not set in the LE Periodic Advertising Sync Established event when using the Periodic Advertiser List (DRGN-17110).
Fixed an issue where setting advertiser radio output power using the vendor-specific HCI command Zephyr Write TX Power Level returned
Unknown Advertiser Identifier (0x42).Fixed an issue where reading advertiser radio output power using the vendor-specific HCI command Zephyr Read TX Power Level returned
Unknown Advertiser Identifier (0x42).Fixed an issue where an assert could occur if
sdc_disable()was called while a Bluetooth role was running (DRGN-16515).Fixed an issue where the advertiser would incorrectly set Offset Adjust in the SyncInfo when the offset to the
AUX_SYNC_INDis large (DRGN-16887).Fixed an issue where issuing a legitimate connection update could result in an
BT_HCI_ERR_INVALID_PARAMerror (DRGN-17324).Fixed an issue where connecting to the same device using a different address got denied as a duplicate connection (DRGN-17232).
nRF Connect SDK v1.9.0
All the notable changes included in the nRF Connect SDK v1.9.0 release are documented in this section.
Added
Added support for Periodic Advertising for production for nRF52 Series.
Added support for a vendor-specific HCI command setting the periodic advertising event length (DRGN-16513).
Added
SDC_CFG_TYPE_PERIODIC_ADV_LIST_SIZEto allow the application to configure the size of the periodic advertiser list (DRGN-16357).
Bug fixes
Fixed an issue on the nRF53 Series where an assert could occur when connected as a peripheral, and the RC oscillator is used as the Low Frequency Clock source (DRGN-16808).
nRF Connect SDK v1.8.0
All the notable changes included in the nRF Connect SDK v1.8.0 release are documented in this section.
Added
Added experimental support for Periodic Advertising. Use
sdc_support_le_periodic_adv()orsdc_support_le_periodic_sync()or both to enable this feature.SDC_CFG_TYPE_PERIODIC_ADV_COUNTcan be used to set the number of periodic advertisers.SDC_CFG_TYPE_PERIODIC_SYNC_COUNTcan be used to set the number of synchronizations to periodic advertisers.SDC_CFG_TYPE_PERIODIC_SYNC_BUFFER_CFGcan be used to configure the number of periodic synchronization report buffers.
The following HCI commands are now supported (DRGN-11505):
LE Set Periodic Advertising Data
LE Set Periodic Advertising Enable
LE Set Periodic Advertising Parameters
LE Periodic Advertising Create Sync
LE Periodic Advertising Create Sync Cancel
LE Periodic Advertising Terminate Sync
LE Add Device To Periodic Advertiser List
LE Remove Device From Periodic Advertiser List
LE Clear Periodic Advertiser List
LE Read Periodic Advertiser List Size
LE Set Periodic Advertising Receive Enable
Changes
The default advertising data size is now 31 bytes, even for extended advertising (DRGN-16209).
SDC_CFG_TYPE_ADV_BUFFER_CFGcan be used to change the maximum buffer size before enabling the controller. The required memory for an advertising set with a given advertising data size will then be returned bySDC_MEM_PER_ADV_SET.The type
sdc_cfg_scan_buffer_cfg_tis replaced withsdc_cfg_buffer_count_t.The controller will now prevent establishing a connection to a device it is already connected to (DRGN-15989).
Bug fixes
Fixed an issue where the active scanner could assert when performing extended scanning on Coded PHY with a full whitelist (DRGN-16113 and DRGN-16013).
Fixed an issue where extended advertising reports with advertising data with length 228 were lost (DRGN-16341).
Fixed an issue where the peripheral would always listen on data channel 0 if the initiator sent a connection request with all channels marked as bad (DRGN-16394).
Fixed an issue where an assert may occur when switching from a faster to a slower PHY (DRGN-15547). The assert would only occur when:
Fixed an issue where the host callback was called after an advertising event even if there were no events generated (DRGN-16405).
Fixed an issue where a MPU fault may occur when switching between extended and legacy advertising (NCSIDB-572).
nRF Connect SDK v1.7.0
All the notable changes included in the nRF Connect SDK v1.7.0 release are documented in this section.
Added
Added
SDC_CFG_TYPE_SCAN_BUFFER_CFGto allow the application to configure the number of scan buffers (DRGN-15899).Added
SDC_CFG_TYPE_ADV_BUFFER_CFGto allow the application to configure the maximum advertising buffer size (DRGN-15661).
Changes
The
Direct_Address_Typeand theDirect_Addressin extended advertising reports are updated to reflect the latest BLE specification. See Specification errata 14566 and 15752 (DRGN-15927).The scanner is now scheduling cooperatively when the scan window is equal to the scan interval. This improves the performance in the case of Bluetooth Mesh applications (DRGN-13146).
Support for radio front-end module (FEM) in nRF53 Series, based on the Front-end module feature (DRGN-14908).
The application must now call the APIs prefixed with
sdc_support_before callingsdc_cfg_set()(DRGN-15899).
Bug fixes
Fixed an issue where the scanner did not check that the scan window was smaller than the scan interval (DRGN-15586).
Fixed an issue where the channel map provided by the “LE Host Set Channel Classification” HCI command was not always applied on the secondary advertising channels (DRGN-15695).
Fixed an issue on the nRF53 Series where an assert could occur while scanning using legacy commands (DRGN-15852).
Fixed an issue on the nRF53 Series where the scanner could generate corrupted advertising reports (DRGN-15852).
Fixed an issue where the
mpsl_tx_power_channel_map_set()API would not work on peripheral-only or central-only configurations (DRGN-16091).Fixed an issue where an assert may occur when legacy advertiser is used after “HCI LE Clear Advertising Sets” (DRGN-15993).
Fixed an issue where an assert could occur when in LLPM mode and the connection interval was more than 1 ms (DRGN-16079).
nRF Connect SDK v1.6.1
Bug fixes
Fixed an issue on the nRF53 Series where an assert could occur while scanning using legacy commands (DRGN-15852).
Fixed an issue on the nRF53 Series where the scanner could generate corrupted advertising reports (DRGN-15852).
nRF Connect SDK v1.6.0
All the notable changes included in the nRF Connect SDK v1.6.0 release are documented in this section.
Added
Added support for multiple advertising sets (DRGN-15426).
Added radio front-end module (FEM) support, based on the Front-end module feature (nRF52 Series only) (DRGN-11059).
Added support for the vendor-specific HCI command: Read Supported Vendor Specific Commands (DRGN-13763).
Added support for the vendor-specific HCI command: Zephyr Read Key Hierarchy Roots (DRGN-13237).
Added support for nRF5340, which was previously only supported for evaluation purposes (DRGN-8639).
Changes
Moved permanent limitations from the Known issues page to Limitations.
Increased the maximum supported radio output power on nRF53 Series devices from 0 dBm to 3 dBm. If the output power is above 0 dBm, NRF_VREQCTRL->VREGRADIO.VREQH is set (DRGN-15476).
Reduced
SDC_DEFAULT_RX_PACKET_COUNTfrom 3 to 2. Now the controller can achieve full throughput with only two RX buffers (DRGN-7696).Decoupled the controller from the random number generator (DRGN-12507). This functionality must now be provided by the user. The user must provide
rand_prio_low_get(),rand_prio_high_get()andrand_poll()through the newly introducedsdc_rand_source_register(). These functions can be mapped to the Zephyr Entropy APIs:rand_prio_low_get()<->entropy_get_entropy_isr()(*_isr()for nonblocking behavior)rand_prio_high_get()<->entropy_get_entropy_isr()rand_poll()<->entropy_get_entropy()
Bug fixes
Fixed an issue where a slave connection could disconnect prematurely if there were scheduling conflicts with other roles (DRGN-15469).
Fixed an issue where the channel map provided by the LE Host Set Channel Classification HCI command was not applied on the secondary advertising channels (DRGN-13594).
The SoftDevice Controller can now be qualified on nRF52832 (DRGN-15382).
Fixed an issue where setting a legacy advertiser’s scan response data using extended advertising HCI commands corrupted the advertising data (DRGN-15465).
Fixed an issue where, in rare cases, an assert could occur when receiving a packet as a slave. This could only occur after performing a data length procedure on Coded PHY (DRGN-15251).
Fixed an issue where “HCI Read RSSI” would always return a Command Disallowed (0x0C) error code (DRGN-15310).
Fixed an issue where setting radio output power using the vendor-specific HCI command Zephyr Write TX Power Level returned
Unsupported Feature or Parameter value (0x11). Now the controller will select an output power level that is lower or equal to the one requested. The command returns success and the selected power level (DRGN-15369).Fixed an issue where an assert could occur when running an extended advertiser with maximum data length and minimum interval on Coded PHY. The assert would only occur if there were scheduling conflicts (DRGN-15694).
Fixed an issue where a connectable or scannable advertiser ends with sending a packet without listening for the CONNECT_IND, AUX_CONNECT_REQ, and SCAN_REQ (DRGN-15484).
Fixed an issue where an extended advertiser with limited duration may time out after the first primary channel packet in the last advertising event (DRGN-10367).
Fixed an issue where the coding scheme provided by the LE Set PHY HCI Command was ignored after a remote initiated PHY procedure (DRGN-15531).
Fixed an issue where the controller may still have pending events after
sdc_hci_evt_get()returns false. This would only occur if the host has masked out events (DRGN-15758).Fixed an issue where the extended scanner generated reports containing truncated data from a chained advertising PDU (DRGN-13338).
nRF Connect SDK v1.5.1
Added
Added radio front-end module (FEM) support, based on the Front-end module feature (DRGN-11059).
Bug fixes
Fixed an issue where the channel map provided by the LE Host Set Channel Classification HCI command was not applied on the secondary advertising channels (DRGN-13594).
The SoftDevice Controller can now be qualified on nRF52832 (DRGN-15382).
Fixed an issue where setting a legacy advertiser’s scan response data using extended advertising HCI commands corrupted the advertising data (DRGN-15465).
nRF Connect SDK v1.5.0
All the notable changes included in the nRF Connect SDK v1.5.0 release are documented in this section.
Added
Added
sdc_support_ext_scan()which makes support for extended scanning configurable (DRGN-14902).Added
sdc_support_ext_adv()which makes support for extended advertising configurable (DRGN-14914).Added support for the vendor-specific HCI command: Zephyr Read Chip Temperature (DRGN-13769).
Added support for the vendor-specific HCI command: Zephyr Read Tx Power (DRGN-15250).
Changes
Renamed and reconfigured the libraries (DRGN-15118). Refer to the README for their corresponding supported feature sets. The new names are now:
libsoftdevice_controller_peripheral.alibsoftdevice_controller_central.alibsoftdevice_controller_multirole.a
All libraries are now compatible with all platforms within a given family (DRGN-15118).
Bug fixes
Fixed an issue where the application could not immediately restart a connectable advertiser after a high duty cycle advertiser timed out (DRGN-13029).
Fixed an issue where a directed advertiser used a resolvable address as the
TargetAwhen the local device address was set to public or random device address (DRGN-13921).Fixed an issue where “HCI LE Set Extended Advertising Parameters” should have returned “Packet Too Long (0x45)” when the advertising set was already configured with data that was longer than it could fit within the advertising interval. Previously, the advertising data was cleared every time the advertising set was configured (DRGN-14008).
Fixed an issue where the link would disconnect with reason
LMP Response Timeout (0x22). This would occur if the “HCI LE Long Term Key Request event” was disabled and the slave received an encryption request (DRGN-15226).Fixed an issue where the LL control procedures LE start encryption and LE connection parameter update could not be initiated at the same time (DRGN-11963).
Fixed an issue where the generation of QoS Connection event was not disabled after an HCI reset (DRGN-15291).
Known issues
See the Known issues page in nRF Connect SDK for the list of known issues and limitations for this release.
nRF Connect SDK v1.4.0
All the notable changes included in the nRF Connect SDK v1.4.0 release are documented in this section.
Added
Added Read Transmit Power Level command (DRGN-12236).
Added LE Read Transmit Power command (DRGN-12236).
Added LE Read Advertising Physical Channel Tx Power command (DRGN-12238).
Added support for setting the event length of a connection. See
hci_vs_cmd_event_length_set()(DRGN-12696).Added Set Controller to Host Flow Control command (DRGN-13331).
Added Host Buffer Size command (DRGN-13331).
Added Host Number of Complete Packets command (DRGN-13331).
Added support for the vendor-specific HCI command: Zephyr Write BD Addr (DRGN-14511).
Added LE Read PHY command (DRGN-14664).
Added APIs for every supported HCI command (DRGN-13723).
Added
sdc_support_adv()which makes the advertising state configurable (DRGN-14759).Added
sdc_support_slave()which makes the slave role configurable (DRGN-14759).Added
sdc_support_scan()which makes the scanning state configurable (DRGN-14759).Added
sdc_support_master()which makes the master role configurable (DRGN-14759).
Changes
When linking the final binary, the image size is reduced. Only the requested features are included. See
sdc_support_adv()and similar APIs for more details.When LLPM mode is enabled, the connection event length is now no longer implicitly set to 1 ms (DRGN-12696).
When the connection interval is an LLPM connection interval, that is, below 7.5 ms, link-layer procedures with an instant will use an instant larger than 6 connection events (DRGN-14379).
The nRF Bluetooth LE Controller was renamed to SoftDevice Controller (DRGN-14283). APIs are updated accordingly:
BLE_CONTROLLER -> SDC
ble_controller -> sdc
HCI APIs are now prefixed with sdc
The name of the library file was changed to
libsoftdevice_controller.a(DRGN-14283).SoC APIs have been renamed (DRGN-14283):
ble_controller_flash_write -> sdc_soc_flash_write_async
ble_controller_flash_page_erase -> sdc_soc_flash_page_erase_async
ble_controller_rand_vector_get -> sdc_soc_rand_vector_poll
ble_controller_rand_vector_get_blocking -> sdc_soc_rand_vector_get
ble_controller_ecb_block_encrypt -> sdc_soc_ecb_block_encrypt
Vendor-specific HCI APIs have been renamed (DRGN-14701):
HCI_VS_OPCODE -> HCI_OPCODE_VS
HCI_VS_SUBEVENT -> HCI_SUBEVENT_VS
hci_vs_cmd -> hci_cmd_vs
Bug fixes
Fixed an issue in the master role which could cause disconnects if there were scheduling conflicts while doing control procedures with an instant (DRGN-11222).
Known issues and limitations
See the Known issues page in nRF Connect SDK for the list of known issues and limitations for this release.
nRF Connect SDK v1.3.0
All the notable changes included in the nRF Connect SDK v1.3.0 release are documented in this section.
Added
Added Read Authenticated Payload Timeout command.
Added Write Authenticated Payload Timeout command.
Added Set Event Mask command.
Added Set Event Mask Page 2 command.
Added
ble_controller_support_le_2m_phy()which makes LE 2M PHY support configurable.Added
ble_controller_support_le_coded_phy()which makes LE Coded PHY support configurable.Added LE Read Supported States command.
Added LE Set Advertising Set Random Address command.
Added LE Remove Advertising Set command.
Added LE Clear Advertising Sets command.
Added support for the vendor-specific HCI command: Zephyr Read Version Information.
Added support for the vendor-specific HCI command: Zephyr Read Supported Commands.
Added support for the vendor-specific HCI command: Zephyr Read Static Addresses.
Added support for the vendor-specific HCI command: Zephyr Write TX Power Level (per Role/Connection).
Changes
HCI_VS_SUBEVENT_CODE_QOS_CONN_EVENT_REPORTwas renamed toHCI_VS_SUBEVENT_QOS_CONN_EVENT_REPORT.hci_vs_evt_qos_conn_event_report_twas renamed tohci_vs_subevent_qos_conn_event_report_t.hci_vs_cmd_zephyr_read_supported_commands_return_twas converted from a struct to a union. The content remains the same.The VersNr field in the LL_VERSION_IND packet now contains the value 0x0B to indicate Bluetooth Core Specification v5.2 compliance.
The previously implemented Vendor Specific HCI command opcodes are now offset with 0x100.
The previously implemented Vendor Specific HCI event codes are now offset with 0x80.
When the controller receives an unknown command, it will raise
Command Status eventinstead ofCommand Complete event.When in slave latency, the controller now picks up data from the host for transmission earlier than it used to.
In the LE Extended Advertising Report, the Direct Address Type values 0x02, 0x03, and 0xFE will only be used when the Scanning Filter Policy is equal to 0x02 or 0x03 and TargetA is a resolvable private address. If the address is resolved, then the Direct Address Type will contain the same value as the Own Address Type parameter of the command LE Set Extended Scan Parameters. This follows the Bluetooth Core Specification v5.2.
On nRF53, the fix for Errata 16 is now applied.
nRF Connect SDK v1.2.0
All the notable changes included in the nRF Connect SDK v1.2.0 release are documented in this section.
Added
Added
ble_controller_support_dle()which makes LE Data Length Extension support configurable.Added preliminary support for the S140 variant with the nRF5340 device. The Bluetooth LE Controller for nRF5340 supports the same feature set as its nRF52 Series counterpart. The following library has been added:
ble_controller/lib/cortex-m33+nodsp/soft-float/libble_controller_s140.a
Changes
mpsl_init()is no longer called byble_controller_init(). Application is therefore responsible for callingmpsl_init(), and it must be done beforeble_controller_init()is called.Clock configuration parameters are now contained in
mpsl_clock_lfclk_cfg_tinstead ofnrf_lf_clock_cfg_t, and must be provided tompsl_init()instead ofble_controller_init().Clock accuracy must now be specified in parts per million (ppm) instead of the previous enum value.
The IRQ line to pend for low priority signal processing must be provided to
mpsl_init()instead ofble_controller_init().The application must call
mpsl_low_priority_process()instead ofble_controller_low_prio_tasks_process()to process low priority signals.mpsl_uninit()is no longer called byble_controller_disable(). Application must therefore callmpsl_uninit()afterble_controller_disable()to uninitialize MPSL.Interrupt handler APIs for the following peripherals are moved to MPSL: RADIO, RTC0, TIMER0, and POWER_CLOCK.
High-frequency clock API (
ble_controller_hf_clock_...) is removed. Use the corresponding API in MPSL instead.Temperature API (
ble_controller_temp_get()) is removed. Use the corresponding API in MPSL instead.Timeslot API is removed. Use the corresponding API in MPSL instead.
Version numbers have been removed from the libraries.
Bug fixes
Fixed an issue where the application could not immediately restart a connectable advertiser after a high duty cycle advertiser timed out.
Fixed an issue where a control packet could be sent twice even after the packet was ACKed. This would only occur if the radio was forced off due to an unforeseen condition.
Fixed an issue in HCI LE Set Extended Scan Enable where
UNSUPPORTED_FEATUREwas returned when duplicate filtering was enabled.Fixed an issue in HCI LE Set Advertising Parameters where
UNSUPPORTED_FEATUREwas returned whensecondary_max_skipwas set to a non-zero value. This issue occurred when sending a packet on either LE 1M or LE 2M PHY after receiving or transmitting a packet on LE Coded PHY. If this occurred while performing a Link Layer Control Procedure, the controller could end up retransmitting an ACKed packet, resulting in a disconnect.Fixed an issue where an assert could occur when receiving a packet with a CRC error after performing a data length procedure on Coded PHY.
Fixed an issue where an assert occurred when setting a secondary PHY to 0 when using HCI LE Set Extended Advertising Parameters. This issue occurred when the advertising type was set to legacy advertising.
nRF Bluetooth LE Controller 0.3.0-3.prealpha
All the notable changes included in this release are documented in this section.
Added
Added support for nRF52833.
Bug fixes
Fixed an issue where
hci_data_get()could return “No data available” when there was data available. This issue would only occur when connected to multiple devices at the same time.
nRF Bluetooth LE Controller 0.3.0-2.prealpha
All the notable changes included in this release are documented in this section.
Bug fixes
Fixed an issue where an assert occurred when the host issued LE Write Suggested Default Data Length.
nRF Bluetooth LE Controller 0.3.0-1.prealpha
All the notable changes included in this release are documented in this section.
Added
Increased the number of supported SoC and library combinations.
Added API for estimating the dynamic memory usage returned by
ble_controller_cfg_set().Added a new header
ble_controller_hci_vs.hthat exposes definitions of Vendor-Specific HCI commands and events.Added support for connection intervals less than the standard minimum of 7.5 ms. Note that this is a proprietary feature that is not Bluetooth compliant. This proprietary feature is named ‘Low Latency Packet Mode (LLPM)’.
Added support for enabling or disabling connection event length extension. When disabled, the maximum connection event length is set by
ble_controller_cfg_event_length_t::event_length_us. When enabled, the maximum connection event length is determined by the connection interval.Added support for generating QoS Connection event reports. When enabled, one report is generated with every connection event. The report contains information that can be used to change the Bluetooth LE channel map.
Bug fixes
Fixed an issue where the “HCI Read Local Supported Commands” command did not indicate support for the “HCI LE Set Privacy Mode” command.
Fixed an issue where an ASSERT occurred when setting advertising data after HCI Reset without setting advertising parameters.
Fixed an issue where an ASSERT occurred when writing to flash.
Fixed an issue where a directed advertiser could time out without sending a packet on air.
Changes
The
VersNrfield in the LL_VERSION_IND packet now contains the value 0x0A to indicate Bluetooth Core Specification v5.1 compatibility.Bluetooth Core Specification Erratum #10750 is incorporated. The LE Data Length Change event will now be raised when switching to and from Coded PHY. On-air behavior has not changed.
Bluetooth Core Specification Erratum #10818 is incorporated. The controller now allows HCI ACL data packets with a 0-length payload but does not transmit anything until receiving the next non-zero continuation fragment.
Cleaned up invalid Doxygen comments.
nRF Bluetooth LE Controller 0.2.0-4.prealpha
Added a workaround to block the host from sending HCI commands when a shared command is in progress.
nRF Bluetooth LE Controller 0.2.0-3.prealpha
Fixed a bug causing an assert in ble_controller_soc.c:29.
nRF Bluetooth LE Controller 0.2.0-2.prealpha
Minor documentation fixes.
Changes
Added names to nested structs and unions in
timeslot.has a workaround for a Sphinx documentation build issue.Fixed internal links to functions and files.
nRF Bluetooth LE Controller 0.2.0-1.prealpha
Updated Bluetooth LE Controller with bug fixes and updated APIs.
Added
Added API for fetching build revision information.
Added
ble_controller_rand_vector_get_blocking()as a blocking call to get a vector of random bytes.Added API to get Bluetooth LE Controller build revision:
ble_controller_build_revision_get().Added separate
ble_controller_init()API.
Bug fixes
Fixed an issue in HCI control flow that severely limited Bluetooth LE throughput.
Changes
Moved
fault_handlerandp_clk_cfgfromble_controller_enable()toble_controller_init().Changed
ble_controller_process_SWI5_IRQ()to be IRQ independent. The genericble_controller_low_prio_tasks_process()is used instead and SWI5 is no longer reserved.Aligned naming for Bluetooth LE Controller configuration names.
Made minor changes to existing API.
Improved API documentation.
nRF Bluetooth LE Controller 0.1.0-2.prealpha
No change to library files.
Added
Added the headers necessary to utilize the timeslot API.
nRF Bluetooth LE Controller 0.1.0-1.prealpha
Initial release.
Added
Added the following ble_controller_nrf52_0.1.0-1.prealpha library variants, each in soft-float, softfp-float, and hard-float builds:
libble_controller_s112_nrf52_0.1.0-1.prealpha.alibble_controller_s132_nrf52_0.1.0-1.prealpha.alibble_controller_s140_nrf52_0.1.0-1.prealpha.a