Bluetooth Dual Mode Software Release Notes

Silicon Labs

Bluetooth Dual Mode Software Release Notes - Silicon Labs

2.3 Bluetooth Dual Mode Software v.1.5.0 build 212. Software Version. 1.5.0 build 212. Software Status. Production. Release Date. 6th of April, 2020. Affected Products. BT121. Dual ...

BLUETOOTH DUAL MODE SOFTWARE - Silicon Labs

18 juin 2021 — 979 BT121 iAP endpoint send buffers. Endpoint was not closed after iAP connection timeout and buffers stuck full full message.

PDF preview unavailable. Download the PDF instead.

release-notes-bt121
BLUETOOTH DUAL MODE SOFTWARE
RELEASE NOTES Wednesday, 3 March 2021
Version 3.10

Table of Contents
1 Version History ________________________________________________________________________ 3 2 Bluegiga Bluetooth Dual Mode Software Release Notes ________________________________________ 4
2.1 Bluetooth Dual Mode Software v.1.7.0 build 217 __________________________________________ 4 2.1.1 Changes: 1.7.0 (build 217) compared to 1.6.0 (build 215) ____________________________ 4
2.2 Bluetooth Dual Mode Software v.1.6.0 build 215 __________________________________________ 4 2.2.1 Changes: 1.6.0 (build 215) compared to 1.5.0 (build 212) ____________________________ 4
2.3 Bluetooth Dual Mode Software v.1.5.0 build 212 __________________________________________ 5 2.3.1 Changes: 1.5.0 (build 212) compared to 1.4.0 (build 211) ____________________________ 5
2.4 Bluetooth Dual Mode Software v.1.4.0 build 211 __________________________________________ 5 2.4.1 Changes: 1.4.0 (build 211) compared to 1.3.0 (build 210) ____________________________ 5
2.5 Bluetooth Dual Mode Software v.1.3.0 build 210 __________________________________________ 6 2.5.1 Changes: 1.3.0 (build 210) compared to 1.2.0 (build 208) ____________________________ 6 2.5.2 IOP testing _________________________________________________________________ 7
2.6 Bluetooth Dual Mode Software v.1.2.0 build 208 _________________________________________ 8 2.6.1 Changes: 1.2.0 (build 208) compared to 1.1.2 (build 184) ____________________________ 8 2.6.2 IOP testing ________________________________________________________________ 10
2.7 Bluetooth Dual Mode Software v.1.1.2 build 184 _________________________________________ 11 2.7.1 Changes: 1.1.2 (build 184) compared to 1.1.1 (build 168) ___________________________ 11
2.8 Bluetooth Dual Mode Ready Software v.1.1.1 build 168 ___________________________________ 12 2.8.1 Changes: 1.1.1 (build 168) compared to 1.1.0 (build 154) ___________________________ 12
2.9 Bluetooth Dual Mode Software v.1.1.0 build 154 _________________________________________ 13 2.9.1 Changes: 1.1.0 (build 154) compared to 1.0.0 (build 97) ____________________________ 14
2.10 Bluetooth Dual Mode Software v.1.0.0 build 97 _________________________________________ 16 2.10.1 Changes: 1.0.0 (build 97) compared to 0.9.1 (build 44) ____________________________ 16
2.11 Bluetooth Dual Mode Software v.0.9.1 build 44 _________________________________________ 19 2.11.1 Features in the First Release ________________________________________________ 19 2.11.2 Fixed Issues _____________________________________________________________ 19 2.11.3 Known Issues in this Release ________________________________________________ 19 2.11.4 IOP Testing ______________________________________________________________ 20

Silicon Labs

Page 2 of 22

1 Version History

Version Comments

1.0

Beta SW Release 0.9.1 build 44

2.0

Production SW Release 1.0.0 build 97

3.0

Production SW Update 1.1.0 build 149

3.1

Production SW Release 1.1.0 build 154

3.2

Production SW Update 1.1.0 build 154

3.3

Production SW Release 1.1.1 build 168

3.4

Production SW Release 1.1.2 build 184

3.5

Production SW Release 1.2.0 build 208

3.6

Production SW Release 1.3.0 build 210

3.7

Production SW Release 1.4.0 build 211

3.8

Production SW Release 1.5.0 build 212

3.9

Production SW Release 1.6.0 build 215

3.10

Production SW Release 1.7.0 build 217

Silicon Labs

Page 3 of 22

2 Bluegiga Bluetooth Dual Mode Software Release Notes

2.1 Bluetooth Dual Mode Software v.1.7.0 build 217

Software Version Software Status Release Date Affected Products

1.7.0 build 217 Production 3rd of March, 2021 BT121 Bluetooth Dual Mode Module

2.1.1 Changes: 1.7.0 (build 217) compared to 1.6.0 (build 215)

New Features

Feature
Accessory identification information parameters

Explanation
Updated list of accessory identification information parameters according to new requirements in MFi specification

Quality Improvements
N/A
Fixed Known Issues in this release

ID Issue Explanation N/A N/A No known issues

2.2 Bluetooth Dual Mode Software v.1.6.0 build 215

Software Version Software Status Release Date Affected Products

1.6.0 build 215 Production 25th of November, 2020 BT121 Bluetooth Dual Mode Module

2.2.1 Changes: 1.6.0 (build 215) compared to 1.5.0 (build 212)
Quality Improvements
Implemented protection against IOActive BR/EDR ASB-U Injection Attack Implemented protection against Impersonation in the Passkey Entry Protocol, Authentication of the LE Legacy Pairing Protocol and Impersonation in the PIN Pairing Protocol vulnerabilities
Fixed Known Issues in this release

ID Issue
979 BT121 iAP endpoint_send buffers stuck full
986 Unable to bond with PC (Win10)

Explanation of the issue
Endpoint was not closed after iAP connection timeout and buffers full message
BT121 didn't store the previous link key

Silicon Labs

Page 4 of 22

ID Issue
992 Wrong invalidation of a some PS Keys

Explanation of the issue
PS Dump function returned no longer valid PS Keys apart from existing PS Keys

2.3 Bluetooth Dual Mode Software v.1.5.0 build 212

Software Version Software Status Release Date Affected Products

1.5.0 build 212 Production 6th of April, 2020 BT121 Bluetooth Dual Mode Module

2.3.1 Changes: 1.5.0 (build 212) compared to 1.4.0 (build 211)
Quality Improvements
Implemented protection against SweynTooth vulnerabilities
Known Issues in this release

ID Issue Explanation N/A N/A No known issues

2.4 Bluetooth Dual Mode Software v.1.4.0 build 211

Software Version Software Status Release Date Affected Products

1.4.0 build 211 Production 20th of March, 2020 BT121 Bluetooth Dual Mode Module

2.4.1 Changes: 1.4.0 (build 211) compared to 1.3.0 (build 210)
Quality Improvements
Changed messages generated during HID connection closing
Fixed Known Issues since the version 1.3.0 build 210

ID Issue

Explanation of the issue

Silicon Labs

Page 5 of 22

ID Issue
981 Problem with smartphone connection over HID profile
985 Bonding to BT121 with random static address doesn't work

Explanation of the issue
When the first connection attempt initialized by BT121 was rejected intentionally by a smartphone user, the next connection attempt resulted with an error message ' PSM already in use '
When BT121 device uses random static address, the attempt of bonding establishment during LE connection fails

2.5 Bluetooth Dual Mode Software v.1.3.0 build 210

Software Version Software Status Release Date Affected Products

1.3.0 build 210 Production 25th of October, 2019 BT121 Bluetooth Dual Mode Module

2.5.1 Changes: 1.3.0 (build 210) compared to 1.2.0 (build 208)

New Features

Feature BGAPI and streaming mode switching Bridging example Delay example

Explanation Support for switching between BGAPI and streaming mode at runtime
Added LE serial RFCOMM bridging BGScript example Added example of delay realization in BGScript

Quality Improvements
Improved multiple connections handling Added getting the value of the first and the last handlers related to a specific characteristic during discovering process Added the number of sent packets to test_dtm_completed event Added protection against changing encryption key size in the process of connection establishment and during the connection by introducing minimum key size checking Implemented protection against CVE-2019-2102 vulnerability by dropping connection if LTK provided by a remote device is the same as one used in Bluetooth Core Specification example
Fixed Known Issues since the version 1.2.0 build 208

ID Issue

Explanation of the issue

900 GATT over Bluetooth BR /EDR not work correctly

Writing over Bluetooth BR/EDR a value to the remote attribute residing at a remote GATT server did not work

976 Memory leakage When opening/closing connections very frequently using HID, o ne of following

during closing HID errors could have been received: 'Controller is at limit of connections it can

connections

support' or 'Device has run out of memory'

Silicon Labs

Page 6 of 22

ID Issue

Explanation of the issue

938 Bug in the bgbuild. Bgbuild.exe parser was not giving any error with a wrong value type in a gatt.xml

exe parser

file

980 Reset in sleep mode

BT121 occasionally was resetting when using sleep mode

Known Issues in this release

ID Issue Explanation N/A N/A No known issues

2.5.2 IOP testing

This software release (1.3.0 build 210) has been tested against the following device platforms. Basic Bluetooth BR/EDR and Low Energy connection, pairing and data transfer tests have been run. "OK" means that test was performed with a positive result. "N/A" means the platform does not support the functionality.

Test Case
BT BR/EDR connection BT BR/EDR pairing SPP or iAP2 BT Low Energy connection BT Low Energy pairing GATT over BT Low Energy

Android Android Android iOS

7.0

8.0

9.0

12.4

OK

OK

OK

OK

Windows Ubuntu

10

18.04.03

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

MacOS 10.13.6 OK
OK OK N/A
N/A
N/A

Tested Platform Android 7.0 Android 8.0 Android 9.0 iOS 12.4 Windows 10 Ubuntu 18.04.03 MacOS 10.13.6

Device / Stack Manufacturer Samsung Galaxy Tab S2 Nokia 8 Xiaomi Mi A2 iPhone 6 CSR8510 A10 Dongle BlueZ 5.48 CSR8510 A10 Dongle Apple BT Soft Version 6.0.7f10

Silicon Labs

Page 7 of 22

2.6 Bluetooth Dual Mode Software v.1.2.0 build 208

Software Version Software Status Release Date Affected Products

1.2.0 build 208 Production 28th of August, 2018 BT121 Bluetooth Dual Mode Module

2.6.1 Changes: 1.2.0 (build 208) compared to 1.1.2 (build 184)
New Features

Feature
Multiple filtering in scan results
Encryption option during pairing
Support for Apple iAP authentication co-processor 3.0
Enabling and disabling services
Different BT address for LE and BT BR/EDR
SPI slave

Explanation Multiple filtering added to the le_gap_set_scan_result_filter
New configuration option has been introduced that allows to choose only EncKey during pairing or a combination of EncKey, IdKey and Sign. Support for the new Apple iAP authentication co-processor 3.0 has been added
It is possible to enable/disable service during runtime.
It is possible to have different BT and LE address. For LE side a random static address is assigned. SPI slave implementation has been added

Quality Improvements
Bluetooth SIG security update Regarding Coordinate Invalid Curve Attack Changed the Silicon Labs License Agreement text for SDK and host examples Bondable mode can be configured separately for BLE and BR/EDR BT Improved API documentation generation API descriptions have been updated Documentation of using HID descriptor in the module has been updated Not saving BR/EDR link_key if MITM required and LinkKey is not MITM protected DFU host example handles the possible UART desync at startup User interface improvement for BGTool application SPI examples have been updated DFU examples have been updated iAP reference application has been updated HW sleep and port options documentation has been updated
Fixed Known Issues since the version 1.1.2 build 184

ID Issue
888 RTS line remaining stuck active high

Explanation of the issue
RTS line stuck active when sending a large amount of data over RFCOMM link. Timeout has been introduced.

Silicon Labs

Page 8 of 22

ID Issue

Explanation of the issue

889 bt_connection_list does not report HID connections

Connection list did not contain HID connections to check the module role (master or slave). List of reported connections has been changed.

892 set_role works only in RFCOMM It was reported that set_role command works only with RFCOMM

connections

connection and does not work with HID connections.

894 Strange behavior when opening the ACL and the RFCOMM connections separately

You can open an ACL link with the command bt_gap_open, but you cannot close such ACL link manually, because it is closed automatically any time the last RFCOMM connection is closed. Now, after manually opening an ACL link with the command bt_gap_open, such ACL link will remain up until you explicitly close it with the command endpoint_close (using the connection ID received with the response of the bt_gap_open).

898 Internal temperature sensor issue

Compensation for supply voltage fluctuations when reading the temperature has been added.

903 Investigation needed on a system_recovery event

The event evt_system_recovery is being triggered after a write to a gatt server attribute.

906 LE security manager send wrong Identity Resolving Key

BT121 does not support resolveable addresses so the key that the module sends should be all zeros.

911 Every other attempt to reprogram a BT121 with the bgupdate.exe fails with "Sync Failed" message

In some cases during the process of a re-program of the module with the bgupdate.exe, the "Sync Failed" message occurs. 10 ms delays added between writes.

918 BT121 freezes when sending notifications while rts/cts flow control is disabled

BT121 is operating with the host STM32 microcontroller. The connection is up and running and after some random time BT121 stops responding for any commands. The last outgoing command is a dumo_cmd_gatt_server_send_characteristic_notification. The only way to make it work again is to do a power cycle/reset and reinitiate the module.

921 HCI not waking up "watchdog" does not work

Root cause for HCI getting stuck is a controller issue. Disabling the contoroller sleep unless it is put on intentionally.

922 HID Keyboard system_recovery event comes when module reconnects to Win10

After disconnecting (but paired) and trying to re-connect from the module to the host, a successful response to the bt_hid_open call is received, but then the module resets and issues a system_recovery event. This happens using a Win10 PC as well as a MacOS computer. When using mobile devices (Android and iOS) then the re-connection works as expected.

924 Problem with connection establishment while at the edge of range

When the remote device is at the edge of the range, it is not rare not to receive any event following the commands bt_rfcomm_open or bt_rfcomm_open_port, whereas either the event endpoint_closing with reason 0x0204 (page timeout) or the many events that come when a connection is successfully established are expected. This is a TI radio related issue. Protection timer to gap_open acl for BR/EDR has been added as a workaround.

928 sm_store_bonding_configuration After boot the default configuration appears to be always in use is not persistent across a reset until the sm_store_bonding_configuration command is issued, despite the sm_read_bonding_configuration reporting a different configuration than the default.

930 le_gap_scan_response events not issued if the "Flags" AD structure is at the end af the adv data

With "Flags" added at the end of AD structure BT121 as the scanner will not report advertisements at all and only scan responses are reported

Silicon Labs

Page 9 of 22

ID Issue 931 Cannot advertise in
scannable_non_connectable mode while connected 936 BT121 should continue to retry the iAP initialization byte sequence every second
946 Pullup function doesn't work
948 Problems with DFU host example in build 206

Explanation of the issue
Restarting the advertising mode using scannable_non_connectable mode after a connection is established was not possible.
With iOS 11.2 beta slave, BT121 is sending an iAP initialization byte sequence but only sends it once and never tries again. BT121 should continue to retry the iAP initialization byte sequence every second according to section 47.1.7.2 of the Apple Accessory Interface Specification R27.
It was impossible to use wakeup_pin with state down, because a pull-up feature attribute in HW config file and corresponing API command did not work properly.
It was impossible to perform field upgrade with ST-based DFU using example under host_example/dfu direction because of a wrong parameter in data_length in uart_rx function.

Known Issues in this release

ID Issue Explanation N/A N/A No known issues

2.6.2 IOP testing

This software release (1.2.0 build 208) has been tested against the following device platforms. Basic Bluetooth BR/EDR and Low Energy connection, pairing and data transfer tests have been run. "OK" means that test was performed with a positive result. "N/A" means the platform does not support the functionality.

Test Case
BT BR/EDR connection BT BR/EDR pairing SPP or iAP2 BT Low Energy connection BT Low Energy pairing GATT over BT Low Energy

Android 6.0
OK

Android 7.0
OK

Android 8.0
OK

iOS 11.4.1
OK

Windows Ubuntu

10

18.04.1

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

OK

MacOS 10.13.6 OK
OK OK N/A
N/A
N/A

Tested Platform Android 6.0 Android 7.0 Android 8.0 iOS 11.4.1 Windows 10 Ubuntu 18.04.1 MacOS 10.13.6

Device / Stack Manufacturer Samsung Galaxy J5 Samsung Galaxy S6 Sony Xperia XZ1 Compact iPhone 7 Plus CSR8510 A10 Dongle BlueZ 5.48 CSR8510 A10 Dongle Apple BT Soft Version 6.0.7f10

Silicon Labs

Page 10 of 22

2.7 Bluetooth Dual Mode Software v.1.1.2 build 184

Software Version Software Status Release Date Affected Products

1.1.2 build 184 Production 3rd of March, 2017 BT121 Bluetooth Dual Mode Module

2.7.1 Changes: 1.1.2 (build 184) compared to 1.1.1 (build 168)
New Features

Feature

Explanation

evt_bt_rfcomm_credit_starvation event

New event for indicating that the device is running out of RFCOMM credits. As an application level workaround, one can then disconnect and reconnect.

cmd_le_gap_set_scan_result_filter()

Added the ability to filter scan responses and advertisements by device name.

cmd_hardware_read_junction_temperature() This command can be used to read junction temperature (in Celsius) of the internal MCU when ADC is set active.

Quality Improvements
Improved API reference manual documentation Characteristic length definitions fixed in GATT.xml General documentation improvements BGTool crash fixed HID virtual cable unplug fixed Number of bondings now loaded in start-up I2C fixes Updated BGUpdate tool to handle non-virtual COM ports Fixed all examples for better IOP with Windows PCs running Toshiba stack RF test mode robustness improved in LE cases RFCOMM endpoint data handling in BGScript does not cause a crash anymore Fixed SPP server example Storing bonding keys for legacy devices only if they do not exist yet Improved IOP with WinCE devices by handling <ServiceName> tag better Improved HCI controller watchdog RFCOMM MTU size is set the same for both directions for better Android IOP
Fixed Known Issues since the version 1.1.1 build 168

ID Issue

Explanation of the issue

317 Wrong byte order with Android 5.1

Android OS 5.1 release has a bug which causes 128bit UUIDs to be shown in wrong byte order. At least from Android 6.0.1 onward, the byte order is fixed.

428 Advertisement This functionality will not be changed in the forthcoming releases anymore, but the

data

user must manually stop advertising to change advertising data if needed.

835 Lost ACL frames

The original TI controller issue will no longer be fixed for the existing HW version of the product. However, there is now an application level workaround for the issue. Please see New Features chapter for the description, and API Reference Manual for more details.

Silicon Labs

Page 11 of 22

ID Issue
841 Closing RFCOMM connection
847 Bidirectional iAP UART traffic

Explanation of the issue
If remote end, in this case a certain type of Windows PC, closes RFCOMM connection too quickly, BT121 will lose the last part of the incoming data, which is sent just before RFCOMM closing. This behavior is not seen for example with Android or iOS devices.
If iAP data is sent over UART in both directions exactly at the same time, data transfer can hang. To fix this, iAP data packet and acknowledgement are now separated to different RFCOMM frames.

Known Issues in this release

ID Issue

Explanation

889 HID connections

cmd_bt_connection_list command does not report HID connections.

892 cmd_bt_connection_set_role() The command only works for RFCOMM connections.

2.8 Bluetooth Dual Mode Ready Software v.1.1.1 build 168

Software Version Software Status Release Date Affected Products

1.1.1 build 168 Production 25th of October, 2016 BT121 Bluetooth Dual Mode Module

2.8.1 Changes: 1.1.1 (build 168) compared to 1.1.0 (build 154)

New Features

Feature

Explanation

bt_sdp_add_entry command

This command can be used to add an SDP record into SDP server.

bt_sdp_delete_entry command

This command can be used to delete an SDP record from SDP server.

hardware_read_write_spi Read and write command for SPI interface. command

RFCOMM port information

Local RFCOMM port information is added to bt_connection_parameters event as the last parameter.

Maximum number of bondings reduced

In order to free more flash memory for customer applications, we have decided to reduce the size of the database, which holds the information about the bondings. The maximum number of stored bondings is now 12.

Quality Improvements
Improved API reference manual documentation Changes in iOS 10 taken into account in interoperability with Apple devices Local and remote user messages fixed when closing an HID connection SDK examples improved Improvement to ensure Apple ATS tests always pass Application Note and other documentation updates Improved BGTool with minor and cosmetic fixes L2CAP control message ID fixed HID UUID now correctly added to EIR when HID server is started Firmware CRC checksum calculation fixed Endpoint data event fixed for BGScript when using BGAPI at the same time

Silicon Labs

Page 12 of 22

HID endpoints are now closed automatically after a timeout if it is not manually closed Non-supported SDP configuration options handled gracefully for better interoperability Optimized flash usage when storing bondings GATT service SDP record made configurable Fixed I2C timing calculations
Fixed Known Issues since the version 1.1.0 build 154

ID Issue

Explanation of the issue

672 Local name encoding

It is possible to set an invalid local name for a device.

816 BGTool's The MAC address used by the BGTool in the bt_rfcomm_open command is broken, when re-connect this command is launched by pressing the reconnect button under the RFCOMM tab. button

817 UART parity bit

When setting parity bit to odd or even, the parity bit is not added to the 8 data bits but the module starts to use 7 data bits. This prevents the use of parity bit with the BGAPI.

818 SPI read SPI reads return invalid data.

821 6th

6th incoming SPP connection will make the module SW to run out of memory, so it is not

incoming recommended to have more than 5 simultaneous SPP connections with the newest SW

SPP

build. This limitation has emerged due the new features in the FW, and those reserve a

connection little bit more RAM for the system tasks compared to the previous build.

Known Issues in this release

ID Issue

Explanation

317 Wrong byte order with Android 5.1

Android OS 5.1 release has a bug which causes 128bit UUIDs to be shown in wrong byte order.

428 Advertisement It is not possible to change advertising data during advertising without stopping

data

advertising in between.

835 Lost ACL frames

There is an issue in TI controller, which can cause data transfer to hang when in transparent mode. This seems to be because the controller does not always handle SEQN when the ACL frame contains bit errors.

841 Closing RFCOMM connection

If remote end, in this case a certain type of Windows PC, closes RFCOMM connection too quickly, BT121 will lose the last part of the incoming data, which is sent just before RFCOMM closing. This behavior is not seen for example with Android or iOS devices.

847 Bidirectional iAP UART traffic

If iAP data is sent over UART in both directions exactly at the same time, data transfer can hang.

2.9 Bluetooth Dual Mode Software v.1.1.0 build 154

Software Version Software Status Release Date Affected Products

1.1.0 build 154 Production 1st of July, 2016 BT121 Bluetooth Dual Mode Module

Silicon Labs

Page 13 of 22

2.9.1 Changes: 1.1.0 (build 154) compared to 1.0.0 (build 97)

New Features

Feature

Explanation

HID device over BR/EDR

HID profile support.

Cable replacement

Cable replacement functionality for Bluetooth Low Energy connections.

bt_connection_get_rssi command

Get the RSSI value of a connection.

bt_connection_read_clock command

Read Bluetooth clock of a connection/piconet.

bt_gap_set_auto_sniff command

Set automatic sniff parameters for connections.

bt_gap_set_discovery_mode command Set the discovery mode.

bt_gap_set_host_channel_classification Configure BR/EDR channel classifications. command

bt_rfcomm_modem_status command Set modem control status for RFCOMM connections.

bt_rfcomm_set_modem_status_default Set modem control status to default values. command

bt_rfcomm_start_server_port command Start RFCOMM connection on a specific port.

bt_rfcomm_stop_server_port command Stop RFCOMM connection on a specific port.

endpoint_set_active command

Set an endpoint active / inactive.

endpoint_closed event

Indicates that an RFCOMM endpoint has been closed by a timer.

gatt_set_max_mtu command

Set maximum size of GATT MTU.

hardware_read_vdd command

Read voltage level on VDD pin.

le_connection_list command

List of Bluetooth Low Energy current connections and their parameters.

le_gap_set_host_channel_classification Configure Bluetooth Low Energy channel classifications. command

sm_pin_code_request event

Event for requesting the user to enter legacy pairing PIN code.

sm_enter_pin_code command

Command to input the legacy paring PIN code.

system_recovery event

Event indicating an error condition and a following reset.

system_script_stopped event

Event indicating an event handler running more than 1000000 interpreter steps.

Bootloader Change
A new boot-loader has been introduced to free some additional flash memory for the user application. When upgrading the module's Bluetooth software from the previous build 97 using the BGAPI-based DFU method, it is required to take into account that the boot-loader must be updated separately. A host example in C code is provided in the new SDK under the directory \host_example\dfu\ to demonstrate the DFU update procedure. A knowledge-base article also exists with more details about the BGAPI-based DFU update method, and about the other two re-flashing methods. The article can be found here: http://community.silabs.com/t5/Wireless-Knowledge-Base/Programming-the-BT121/ta-p /173579

Silicon Labs

Page 14 of 22

Quality Improvements
BGTool stability improved Example applications updated RFCOMM robustness improved Sleep functionality improved for scripting applications Fixed Bluetooth Low Energy connection counters UART state fixed after waking up from CPU stop mode Code size optimized to allow more flash memory for customer applications Improved data buffer usage to make data streaming more reliable Updated TI firmware to fix issues with LE data streaming and Bluetooth Low Energy advertising Fixed a memory leak in SDP server Fixed a memory leak in ATT Fixed endpoint streaming issues Fixed Security Manager to handle keyboard only devices correctly Improved Security Manager robustness Improved interoperability with Android and iOS devices Multiple GATT notifications are now supported properly Fixed ADC configuration Fixed ACL buffer handling to allow data routing between two RFCOMM endpoints le_gap_set_conn_parameters() and le_connection_set_parameters() now validate the parameters properly Fixed slave select pin usage Internal buffering improved to save RAM with connections Bi-directional data sending fixed to be reliable Unused RFCOMM endpoints are automatically closed ProductID and VendorID of the Device ID Profile can be set dynamically GATT characteristic handle and incoming packet robustness improved CoD is now preserved over reset System ID characteristic is now properly initialized flash_ps_erase() returns a proper error if the key in question does not exist

Fixed Known Issues since the version 1.0.0 build 97

ID Issue

Explanation of the issue

103 HCI interface memory consumption

HCI interface memory consumption is not optimized.

220 Bluetooth stack initialization

Even if Bluetooth stack is not yet initialized, GAP does not currently give any error, when sending commands to the stack.

247 RFCOMM connection closing

Connection closed event gives reason code 0x216 "local terminated" even if remote side closes the connection.

288 BGAPITM

BGAPITM message payload is limited to 250 bytes.

message payload

limitation

492 le_gap_set_mode Connectable mode setting cannot be changed multiple times in a row without

command

clearing the mode setting first.

507 Non-encrypted LE connection

Characteristic which requires authentication is accessible without encryption with the devices which have been authenticated and bonded.

567 GATT out-ofbounds

There is a possible out of bounds write in GATT DB in case when module has over 64 "dynamic" characteristics and notification or indication is enabled for those characteristics. Same happens if client characteristic configuration is written to characteristic, which is defined as constant.

Silicon Labs

Page 15 of 22

ID Issue

Explanation of the issue

583 Multiple RFCOMM connections to the same port

There is no error if one tries to open multiple connections to the same RFCOMM port.

586 bt_connection_list bt_connection_list command lists also closed RFCOMM connections. command

589 Invalid endpoint parameters

bt_rfcomm_open_* and bt_rfcomm_start_server commands don't report a failure, even if invalid endpoint parameter is given.

592 flash_ps_erase command

flash_ps_erase command returns success even if the key which is being erased doesn't exist.

Known Issues in this release

ID Issue

Explanation

317 Wrong byte order with Android 5.1

Android OS 5.1 release has a bug which causes 128bit UUIDs to be shown in wrong byte order.

428 Advertisement It is not possible to change advertising data during advertising without stopping

data

advertising in between.

672 Local name encoding

It is possible to set an invalid local name for a device.

816 BGTool's reconnect button

The MAC address used by the BGTool in the bt_rfcomm_open command is broken, when this command is launched by pressing the reconnect button under the RFCOMM tab.

817 UART parity bit

When setting parity bit to odd or even, the parity bit is not added to the 8 data bits but the module starts to use 7 data bits. This prevents the use of parity bit with the BGAPI.

818 SPI read

SPI reads return invalid data.

821 6th incoming SPP connection

6th incoming SPP connection will make the module SW to run out of memory, so it is not recommended to have more than 5 simultaneous SPP connections with the newest SW build. This limitation has emerged due the new features in the FW, and those reserve a little bit more RAM for the system tasks compared to the previous build.

2.10 Bluetooth Dual Mode Software v.1.0.0 build 97

Software Version Software Status Release Date Affected Products

1.0.0 build 97 Production 24th of September, 2015 BT121 Bluetooth Dual Mode Module

2.10.1 Changes: 1.0.0 (build 97) compared to 0.9.1 (build 44)
New Features

Feature Bluetooth qualification

Explanation Bluetooth SIG qualification completed, Declaration ID D027374.

Silicon Labs

Page 16 of 22

Feature Regulatory certifications Country certifications Pairing handling

Explanation Certification completed for FCC, IC and CE. Certification completed for Japan and South-Korea. Implemented default pairing data handling algorithm (overwrite oldest pairing).

Quality Improvements
All documentation updated after Beta release according to improvements made for the Production release. BGTool stability improved. Example applications updated. Fixed crashing with multiple software timers. Fixed ADC initialization and added timeout to initialization phase. Fixed ADC error codes. Fixed reading of ADC values. Fixed disallowing role changes in bt_gap_set_policy command. Added status parameter to dumo_evt_bt_gap_remote_name event. Fixed crashing in bt_connection_set_* commands. Fixed handling of multiple bonding entries to same device, when both BR/EDR and Low Energy are being used. Fixed corruption of client characteristic configuration when using multiple custom characteristics. Added advertisement parameter checking. Enabled alternate settings for I2C in bgbuild. Fixed direction flag in bt_connection_parameters event. Fixed indicating user correctly if an SDP record is not found. Fixed variable length characteristics length calculation. TI firmware updated according to TI recommendations to prevent crashing when both ends close the connection at the same time. le_gap_end_procedure is not used anymore for canceling connection creation. Improved le_gap_open to pass return code. Fixed iap_start_server and iap_stop_server failure error codes. Fixed outgoing re-connection failure after the other device comes back into range. Fixed bt_gap_set_parameters command. Fixed handling of old iAP1 iOS devices. Included iAP connections in connection listings into BGAPI. Fixed crash in connection details. Fixed bonding configuration. Deleting useless SDP files in SDK after image is created when using bgbuild. Fixed random number generator initialization. Send bt_connection_parameters for iAP connections also. Fixed iAP authentication bug when using AppLaunch. Fixed host API types for IAR compiler. Unified RF test APIs for BR/EDR and Low Energy. Added throughput measurements example application. Fixed iAP features listing. Removed unused RFCOMM channel parameter (from bt_rfcomm_start_server and iap_start_server commands). Implemented iap_stop_server command. Implemented bt_rfcomm_stop_server command. Fixed the handling of invalid att_data when read_attribute_value command is issued. Fixed crashing in read_attribute_type command when invalid att_data is given. Fixed bonding data reading for Bluetooth Low Energy connections. Fixed response being sent before event when using sm_list_all_bondings command. Fixed test mode for TI hardware. Scheduled flash defragmentation in more optimized way to prevent BGAPI response delays. Fixed the handling of multiple incoming iAP packets combined to same RFCOMM packet. Implemented sm_set_oob_data command. Fixed key sizes in Security Manager. Added pairing information integrity checks.

Silicon Labs

Page 17 of 22

Implemented le_gap_set_max_power command. Fixed the order of the bonding data in sm_list_all_bondings command. Added bonding database integrity checking. Added syntax error message for wrong BGAPI commands. Fixed crash in bidirectional data sending. Updated TI firmware to fix issues with pairing.
Fixed Known Issues since the previous Release

ID Issue 246 le_gap_open 296 le_gap_end_procedure 364 Bonding parameter in
scan response 365 Bonding with Android
398 cmd_sm_enter_passkey
439 Unresponsive BGAPITM
462 Bonding events 466 Pairing information

Explanation
le_gap_open command always returns "out of memory" in all error cases.
le_gap_end_procedure does not always stop le_gap_open procedure.
Bonding parameter in evt_gap_scan_response event can sometimes contain wrong information.
It is sometimes possible to bond with an Android device, even if bonding is disabled.
cmd_sm_enter_passkey sometimes returns error code 384 even if pairing is successful.
It is sometimes possible over a long period of usage that the API does not respond to new commands.
Bonding event is not always received, even if bonding is successful.
It is possible that in some cases, pairing information is not properly stored.

Known Issues in this Release

ID Issue

Explanation

103 HCI interface memory consumption

HCI interface memory consumption is not optimized.

220 Bluetooth stack initialization

Even if Bluetooth stack is not yet initialized, GAP does not currently give any error, when sending commands to the stack.

247 RFCOMM connection closing

Connection closed event gives reason code 0x216 "local terminated" even if remote side closes the connection.

288 BGAPITM

BGAPITM message payload is limited to 250 bytes.

message payload

limitation

317 Wrong byte order Android OS 5.1 release has a bug, which causes 128bit UUIDs to be shown in with Android 5.1 wrong byte order.

428 Advertisement data

It is not possible to change advertising data during advertising without stopping advertising in between.

492 le_gap_set_mode Connectable mode setting cannot be changed multiple times in a row without

command

clearing the mode setting first.

507 Non-encrypted LE connection

Characteristic which requires authentication is accessible without encryption with the devices which have been authenticated and bonded.

567 GATT out of bounds

There is a possible out of bounds write in GATT DB in case when module has over 64 "dynamic" characteristics and notification or indication is enabled for those characteristics. Same happens if client config is written to characteristic, which is defined as const.

Silicon Labs

Page 18 of 22

ID Issue

Explanation

583 Multiple RFCOMM connections to the same port

There is no error if one tries to open multiple connections to same the RFCOMM port.

586 bt_connection_list bt_connection_list command lists also closed RFCOMM connections. command

589 Invalid endpoint parameters

bt_rfcomm_open_* and bt_rfcomm_start_server commands don't report a failure, even if invalid endpoint parameter is given.

592 flash_ps_erase command

flash_ps_erase command returns success even if the key which is being erased doesn't exist.

2.11 Bluetooth Dual Mode Software v.0.9.1 build 44

Software Version Software Status Release Date Affected Products

0.9.1 build 44 Beta 22nd of May, 2015 BT121 Bluetooth Dual Mode Module

2.11.1 Features in the First Release

Feature SPP iAP2 ATT GATT GATT over BR GAP BGAPITM BGScriptTM

Explanation Serial Port Profile for Bluetooth BR/EDR Apple iAP2 protocol for Bluetooth BR/EDR (only available for Apple MFI Licensees) Attribute Profile for Bluetooth Low Energy Generic Attribute Profile for Bluetooth Low Energy Generic Attribute Profile for Bluetooth BR/EDR Generic Access Profile Binary command host API Scripting language for standalone applications

2.11.2 Fixed Issues

ID Issue Explanation N/A N/A First public release

2.11.3 Known Issues in this Release

ID Issue
103 HCI interface memory consumption
220 Bluetooth stack initialization
246 le_gap_open

Explanation HCI interface memory consumption is not optimized yet.
Even if Bluetooth stack is not yet initialized, GAP does not currently give any error, when sending commands to the stack. le_gap_open command always returns "out of memory" in all error cases.

Silicon Labs

Page 19 of 22

ID Issue

Explanation

288 BGAPITM message payload limitation

BGAPITM message payload is limited to 250 bytes.

296 le_gap_end_procedure le_gap_end_procedure does not always send le_gap_open procedure.

317 Wrong byte order with Android 5.1

Android OS 5.1 release has a bug, which causes 128bit UUIDs to be shown in wrong byte order.

364 Bonding parameter in scan response

Bonding parameter in evt_gap_scan_response event can sometimes contain wrong information.

365 Bonding with Android

It is sometimes possible to bond with an Android device, even if bonding is disabled.

398 cmd_sm_enter_passkey cmd_sm_enter_passkey sometimes returns error code 384 even if pairing is successful.

428 Advertisement data

Currently it is not possible to change advertising data during advertising.

439 Unresponsive BGAPITM It is sometimes possible over a long period of usage that the API does not respond to new commands.

462 Bonding events

Bonding event is not always received, even if bonding is successful.

466 Pairing information

It is possible that in some cases, pairing information is not properly stored.

2.11.4 IOP Testing

This software release (0.9.1 build 44) has been tested against the following device platforms. Basic Bluetooth BR/EDR and Low Energy (where applicable) connection, pairing and data transfer tests have been run. N/A means the platform does not support the functionality.

Test Case

Android iOS WinPhone Ubuntu OSX Win7 (MS)

BT BR/EDR connection OK

OK OK

OK

OK OK

BT BR/EDR pairing

OK

OK OK

OK

OK OK

SPP or iAP2

OK

OK OK

OK

OK OK

BT Low Energy connection

OK

OK OK

OK

N/A N/A

BT Low Energy pairing OK

OK OK

OK

N/A N/A

GATT over BT Low

OK

Energy

OK OK

OK

N/A N/A

GATT over BT BR/EDR OK*

N/A N/A

OK

N/A N/A

Win7 (BC) OK OK OK OK
OK OK
N/A

Win8 Win8.1 Pro Pro OK OK OK OK OK OK N/A OK
N/A OK N/A OK
N/A N/A

*) Please see Known Issues #317.

Tested Platform Android 5.1 iOS 8.3 Windows Phone 8.1 Ubuntu 10.04.2 OSX 10.10.3 Windows 7 SP1

Device / Stack Manufacturer Google Nexus 5 Apple iPod Nokia Lumia 625 PC / BlueZ 5.30 stack Apple MacBook Pro PC / Microsoft stack

Silicon Labs

Page 20 of 22

Tested Platform Windows 7 SP1 Windows 8 Pro Windows 8.1 Pro

Device / Stack Manufacturer PC / Broadcom 6.5.1 stack PC / Microsoft stack Microsoft Surface Pro tablet

Silicon Labs

Page 21 of 22

Simplicity Studio
One-click access to MCU and wireless tools, documentation, software, source code libraries & more. Available for Windows, Mac and Linux!

IoT Portfolio
www.silabs.com/IoT

SW/HW
www.silabs.com/simplicity

Quality
www.silabs.com/quality

Support & Community
www.silabs.com/community

Disclaimer Silicon Labs intends to provide customers with the latest, accurate, and in-depth documentation of all peripherals and modules available for system and software implementers using or intending to use the Silicon Labs products. Characterization data, available modules and peripherals, memory sizes and memory addresses refer to each specific device, and "Typical" parameters provided can and do vary in different applications. Application examples described herein are for illustrative purposes only. Silicon Labs reserves the right to make changes without further notice to the product information, specifications, and descriptions herein, and does not give warranties as to the accuracy or completeness of the included information. Without prior notification, Silicon Labs may update product firmware during the manufacturing process for security or reliability reasons. Such changes will not alter the specifications or the performance of the product. Silicon Labs shall have no liability for the consequences of use of the information supplied in this document. This document does not imply or expressly grant any license to design or fabricate any integrated circuits. The products are not designed or authorized to be used within any FDA Class III devices, applications for which FDA premarket approval is required, or Life Support Systems without the specific written consent of Silicon Labs. A "Life Support System" is any product or system intended to support or sustain life and/or health, which, if it fails, can be reasonably expected to result in significant personal injury or death. Silicon Labs products are not designed or authorized for military applications. Silicon Labs products shall under no circumstances be used in weapons of mass destruction including (but not limited to) nuclear, biological or chemical weapons, or missiles capable of delivering such weapons. Silicon Labs disclaims all express and implied warranties and shall not be responsible or liable for any injuries or damages related to use of a Silicon Labs product in such unauthorized applications.
Trademark Information Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs® and the Silicon Labs logo®, Bluegiga®, Bluegiga Logo®, ClockBuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember®, Energy Micro, Energy Micro logo and combinations thereof, "the world's most energy friendly microcontrollers", Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, Gecko OS, Gecko OS Studio, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY®, Telegesis, the Telegesis Logo®, USBXpress®, Zentri, the Zentri logo and Zentri DMS, Z-Wave®, and others are trademarks or registered trademarks of Silicon Labs. ARM, CORTEX, Cortex-M3 and THUMB are trademarks or registered trademarks of ARM Holdings. Keil is a registered trademark of ARM Limited. Wi-Fi is a registered trademark of the Wi-Fi Alliance. All other products or brand names mentioned herein are trademarks of their respective holders.
Silicon Laboratories Inc. 400 West Cesar Chavez Austin, TX 78701 USA
http://www.silabs.com


PDFescape Scroll PDF Exporter