3 feb 2021 — Setup Parameter. Description. Mobile phones ... Setup overview. ST BLE toolbox. GATT Client ... Samsung. GALAXY S9. SM-G900. Nougat v7.1.1. API level 25.
AN5604 Application note STM32WB Series BLE interoperability report Introduction This document describes tests and results of interoperability of STM32WB55 devices with leading AndroidTM and iOSTM smartphones. The testing is performed through two different sessions: · Basic functional tests such as discovery, connection, GATT procedure · Application scenarios such as pairing, data transfer measurement (uplink and downlink) AN5604 - Rev 1 - February 2021 For further information contact your local STMicroelectronics sales office. www.st.com AN5604 Test setup 1 Test setup Setup Parameter Mobile phones ST device under test STM32CubeWB Table 1. Test setup Description Refer to test results STM32WB55 V1.10.0 Debug traces are enabled in the device under test, and are displayed on a serial console. Sniffer is launched, air traces are captured and used to measure timings during the different phases (connection, GATT discovery, notification, indication). Figure 1. Setup overview ST BLE toolbox GATT Client GATT Server AN5604 - Rev 1 page 2/41 2 Basic functional test cases 2.1 Application of STM32WB Series basic functional test The test application consists in one service and three characteristics. Figure 2. BLE IOT test application Peripheral GATT Server IOT TEST SERVICE C1 Read, write, notify, Variable lenght C2 Read, write without response indicate, Variable lenght C1 Read, write, fixed length (245), encryption read/write AN5604 Basic functional test cases 2.2 Summary of basic functional tests Test set 1 2 3 4 5 6 Test case 1 1 2 1 1 2 1 1 Table 2. List of basic functional tests Type BLE scanning, discovery BLE connection GATT (service, characteristic discovery) GATT notification · Variable length data · C1 GATT write/read · Variable length data · C1: write 1 byte 0xAA, read 0xAA GATT write/read · Variable length data · C1: write 4 bytes 0x55443322, read 0x55443322 GATT indication · Variable length data · C2 GATT read/write without response · C2: write 1 byte 0xAA, read 0xAA AN5604 - Rev 1 page 3/41 AN5604 Summary of basic functional tests Test set 6 7 8 9 Test case Type 2 GATT read/write without response · C2: write 4 bytes 0x55443322, read 0x55443322 1 GATT read/write with response · C3 1 GAP connection interval change requested by the peripheral · Connection interval request: 7.5 ms 2 GAP connection interval change requested by the peripheral · Connection interval request: 20 ms 3 GAP connection interval change requested by the peripheral · Connection interval request: 45 ms 4 GAP connection interval change requested by the peripheral · Connection interval request: 200 ms 5 GAP connection interval change requested by the peripheral · Connection interval request: 400 ms 6 GAP connection interval change requested by the peripheral · Connection interval request: 600 ms 7 GAP connection interval change requested by the peripheral · Connection interval request: 1000 ms 8 GAP connection interval change requested by the peripheral · Connection interval request: 2000 ms 9 GAP connection interval change requested by the peripheral · Connection interval request: 4000 ms 1 GAP latency change requested by the peripheral · Connection interval request: 48.75 ms, connection latency = 2 2 GAP latency change requested by the peripheral · Connection interval request: 48.75 ms, connection latency = 4 3 GAP latency change requested by the peripheral · Connection interval request: 200 ms, connection latency = 2 4 GAP latency change requested by the peripheral · Connection interval request: 200 ms, connection latency = 4 5 GAP latency change requested by the peripheral · Connection interval request: 1000 ms, connection latency = 1 AN5604 - Rev 1 page 4/41 2.3 2.3.1 AN5604 Description of basic functional tests Description of basic functional tests Test 1 BLE scanning, discovery STM32WB55 device is the peripheral. · Phone scans and finds the device · Pass if device is found by the phone Figure 3. Phone scans and finds the device STM32WB -Trace Smartphone 2.3.2 Test 2-1 BLE connection STM32WB55 device is the peripheral. · Phone scans, connects · Pass if phone connects to the device Figure 4. Phone connects STM32WB - Trace Smartphone AN5604 - Rev 1 page 5/41 2.3.3 AN5604 Description of basic functional tests Test 2-2 GATT, service/characteristics discovery STM32WB55 device is the peripheral. · Phone scans, connects, discovers service/characteristic, disconnects · Pass if no connection issue and all service/characteristics are discovered by the phone Figure 5. Phone discovers service, characteristics STM32WB - Trace Smartphone AN5604 - Rev 1 page 6/41 2.3.4 AN5604 Description of basic functional tests Test 3 GATT notification Phone enables the notification on the characteristic which triggers a timer, at timer expiration (1 s) the notification is sent with expected value. · Length = 1, data=0x55 · Length = 249 (ATT_MTU-3) Data: Byte0 = Packet sequence number, byte1 = 1,.., byteN = N Pass if the notification is received with the corresponding length and value. · Length = 1, data=0x55 · Length = ATT_MTU-3 Data: Byte0 = Packet sequence number, byte1 = 1,.., byteN = N Check no errors on phone, check the air trace and debug trace on device application. Figure 6. Phone enables the notification STM32WB - Trace Smartphone AN5604 - Rev 1 page 7/41 2.3.5 AN5604 Description of basic functional tests Test 4-1 GATT, write/read characteristic (1 byte) Phone writes a variable length data, reads the written data. · Length = 1, data = 0xAA Pass if the read back value equals the written value and if the phone gets: · 1 byte read back data 0xAA Check no errors on phone, check the air trace and debug trace on device application. Figure 7. Phone writes 1 byte (test 4-1) STM32WB - Trace Smartphone 2.3.6 Test 4-2 GATT, write/read characteristic (4 bytes) Phone writes a variable length data, reads the written data. · Length = 4, data = 0x55443322 Pass if the read back value equals the written value and if the phone gets: · 4 bytes read back data 0x55443322 Check no errors on phone, check the air trace and debug trace on device application. Figure 8. Phone writes 4 bytes (test 4-2) STM32WB - Trace Smartphone AN5604 - Rev 1 page 8/41 2.3.7 AN5604 Description of basic functional tests Test 5 GATT indication Phone enables the indication on the characteristic which triggers a timer, at timer expiration the indication is sent with expected value. · Length = 1 · data = 0x55 · Length = 249 (ATT_MTU-3) Data: Byte0 = Packet sequence number, byte1 = 1,.., byteN = N Pass if the indication is received with the corresponding length and value. · Length = 1, data = 0x55 · length = ATT_MTU-3 data: Byte0 = Packet sequence number, byte1=1,.., byteN = N Check no errors on phone, check the air trace and debug trace on device application. Figure 9. Phone enables the indication STM32WB - Trace Smartphone 2.3.8 Test 6-1 GATT, write without response/read characteristic (1 byte) Phone writes a variable length data, reads the written data · Length = 1, data=0xAA Pass if the read back value equals the written value and if the phone gets: · 1 byte read back data 0xAA Check no error on phone, check the air trace and debug trace on device application. Figure 10. Phone writes 1 byte (test 6-1) STM32WB - Trace Smartphone AN5604 - Rev 1 page 9/41 2.3.9 AN5604 Description of basic functional tests Test 6-2 GATT, write without response/read characteristic (4 byte) Phone writes a variable length data, reads the written data: · Length = 4, data = 0x55443322 Pass if the read back value equals the written value and if the phone gets: · 4 bytes read back data 0x55443322 Check no error on phone, check the air trace and debug trace on device application. Figure 11. Phone writes 4 bytes (test 6-2) STM32WB - Trace Smartphone 2.3.10 Test 7 GATT, write/read characteristic encryption permission The test purpose is to write/read a characteristic with encryption permission needed. With most phones a pop-up appears (see Figure 12) to start the pairing. With some phones, pairing has to be done out of the BLE toolbox application. · Phone reads/writes a fixed length value 245 · Pairing done (encrypted link) · Pass if phone can read/write the characteristic · Check response in the air trace, no error on phone · Check debug trace on device application Figure 12. Phone writes one byte, encryption needed STM32WB - Trace Smartphone AN5604 - Rev 1 page 10/41 AN5604 Description of basic functional tests 2.3.11 Test 8-1 L2CAP connection interval request (7.5 ms) STM32WB55 device is the peripheral. · Phone scans, connects, discovers service/characteristic · Peripheral requests a new connection interval (7.5 ms, 20 ms, 45 ms, 200 ms, 400 ms, 1 s, 2 s, 4 s) · Push SW1 new connection interval requested: 7.5 ms · Accepted, phone requests 11.5 ms Figure 13. Peripheral requests connection interval, 7.5 ms STM32WB - Trace Smartphone 2.3.12 Test 8-2 L2CAP connection interval request (20 ms) · Push SW1 new connection interval requested: 20 ms · Accepted, phone requests 20 ms Figure 14. Peripheral requests connection interval, 20 ms STM32WB - Trace Smartphone AN5604 - Rev 1 page 11/41 AN5604 Description of basic functional tests 2.3.13 Test 8-3 L2CAP connection interval request (45 ms) · Push SW1 new connection interval requested: 45 ms · Accepted, phone requests 45 ms Figure 15. Peripheral requests connection interval, 45 ms STM32WB - Trace Smartphone 2.3.14 Test 8-4 L2CAP connection interval request (200 ms) · Push SW1 new connection interval requested: 200 ms · Accepted, phone requests 200 ms Figure 16. Peripheral requests connection interval, 200 ms STM32WB - Trace Smartphone AN5604 - Rev 1 page 12/41 AN5604 Description of basic functional tests 2.3.15 Test 8-5 L2CAP connection interval request (400 ms) · Push SW1 new connection interval requested: 400 ms · Accepted, phone requests 400 ms Figure 17. Peripheral requests connection interval, 400 ms STM32WB - Trace Smartphone 2.3.16 Test 8-6 L2CAP connection interval request (600 ms) · Push SW1 new connection interval requested: 600 ms · Accepted, phone requests 600 ms Figure 18. Peripheral requests connection interval, 600 ms STM32WB - Trace Smartphone AN5604 - Rev 1 page 13/41 AN5604 Description of basic functional tests 2.3.17 Test 8-7 L2CAP connection interval request (1000 ms) · Push SW1 new connection interval requested: 1000 ms · Accepted, phone requests 1000 ms Figure 19. Peripheral requests connection interval, 1000 ms STM32WB - Trace Smartphone 2.3.18 Test 8-8 L2CAP connection interval request (2000 ms) · Push SW1 new connection interval requested: 2000 ms · Accepted, phone requests 2000 ms Figure 20. Peripheral requests connection interval, 2000 ms STM32WB - Trace Smartphone AN5604 - Rev 1 page 14/41 AN5604 Description of basic functional tests 2.3.19 Test 8-9 L2CAP connection interval request (4000 ms) · Push SW1 new connection interval requested: 4000 ms · Accepted, phone requests 4000 ms Figure 21. Peripheral requests connection interval, 4000 ms STM32WB - Trace Smartphone 2.3.20 Test 9-1 L2CAP connection interval, connection latency request (48.75 ms, latency = 2) STM32WB55 device is the peripheral. · Phone scans, connects, discovers service/characteristic · Peripheral requests a new connection interval and new connection latency (48.75 ms, L = 2; 48.75 ms, L = 4; 200 ms, L = 2; 200 ms, L = 4; 1s, L = 1) · Push SW2 new connection interval requested: 48.75 ms, latency = 2 · Accepted, phone requests 48.75 ms, latency = 2 Figure 22. Peripheral requests connection interval = 48.75 ms, latency = 2 STM32WB - Trace Smartphone AN5604 - Rev 1 page 15/41 AN5604 Description of basic functional tests 2.3.21 Test 9-2 L2CAP connection interval, connection latency request (48.75 ms, latency = 4) · Push SW2 new connection interval requested: 48.75 ms, latency = 4 · Accepted, phone requests 48.75 ms, latency = 4 Figure 23. Peripheral requests connection interval = 48.75 ms, latency = 4 STM32WB - Trace Smartphone 2.3.22 Test 9-3 L2CAP connection interval, connection latency request (200 ms, latency = 2) · Push SW2 new connection interval requested: 200 ms, latency = 2 · Accepted, phone requests 200 ms, latency = 2 Figure 24. Peripheral requests connection interval = 200 ms, latency = 2 STM32WB - Trace Smartphone AN5604 - Rev 1 page 16/41 AN5604 Description of basic functional tests 2.3.23 Test 9-4 L2CAP connection interval, latency request (200 ms, latency = 4) · Push SW2 new connection interval requested: 200 ms, latency = 4 · Accepted, phone requests 200 ms, latency = 4 Figure 25. Peripheral requests connection interval = 200 ms, latency = 4 STM32WB - Trace Smartphone 2.3.24 Test 9-5 L2CAP connection interval, latency request (1000 ms, latency = 1) · Push SW2 new connection interval requested: 1000 ms, latency = 1 · Accepted, phone requests 1000 ms, latency = 1 Figure 26. Peripheral requests connection interval equals to 1000 ms, latency equals to 1 STM32WB - Trace Smartphone AN5604 - Rev 1 page 17/41 2.4 AN5604 Results of basic functional tests Results of basic functional tests Manufacturer Apple® Apple® Apple® Apple® Apple® Apple® Apple® Google® Google® Huawei Huawei Huawei Huawei Huawei Huawei LG Motorola OnePlus OnePlus OPPO Samsung Table 3. Results of basic functional tests Model iPhone 7 MN8X2ZD/A iPhone 8 MQ6V2LL/A iPhone11 iPhone12 XR MRYU2VC/A XS MT9H2ZD/A XS MAX PIXEL2 PIXEL3 Mate 20 LITE NEXUS 6P P10 P20 ELM-L29 P30 ELE-L29 P Smart+ 2019 POT-LX1T K20 Z2 5000 A6003 RX17 PRO CPH1877 OS iOS 13.7 iOS 14.0.1 iOS 13.6.1 iOS 14.3 iOS 14 iOS 13.6.1 iOS 14.2 R v11 API level 30 Q v10 API level 29 Q v10 API level 29 Oreo v8.1.0 API level 27 Nougat v7.0 API level 24 Oreo v8.1.0 API level 27 Q v10 API level 29 Q v10 API level 29 Pie v9 API level 28 Nougat v7.1.1 API level 25 Nougat v7.1.1 API level 25 Q v10 API level 29 Oreo v8.0 API level 26 1234567 8 9 (1) (2) (1) (2) (1) (2) (1) (2) (1) (2) (1) (2) (1) (2) (3) (3) (3) (3) (3) (3) (3) (3) (4) (4) (3) A41 Q v10 (3) AN5604 - Rev 1 page 18/41 AN5604 Results of basic functional tests Manufacturer Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Sony Sony Sony Xiaomi Xiaomi Xiaomi Model SM-A415F A50 SM-A505FN A51 GALAXY A5 GALAXY S7 SM-G930F GALAXY S8 SM-G950F GALAXY S8 SM-G9500 GALAXY S8+ Chinese model SM-G9550 GALAXY S9 SM-G900 GALAXY S9 SM-G960 GALAXY S10 SM-G730 GALAXY S10 SM-G973F Tab A SM-T510 NOTE 8 SM-N950F S6 Edge SM-G925F S10 SM-G973F XPERIA10 XPERIA DOCOMO XPERIAXZ2 MI5 MI8 MI10 OS API level 29 Q v10 API level 29 Q v10 API level 29 Oreo v8 API level 25 Oreo v8 API level 25 Nougat v7 API level 24 Nougat V7 API level 24 Nougat V7 API level 24 Nougat v7.1.1 API level 25 Nougat v7.1.1 API level 25 Pie v9 API level 28 1234567 8 9 (3) (3) (3) (3) (3) (4) (4) (3) (3) (3) Pie v9 API level 28 Q v10 API level 31 Pie v9 API level 27 Nougat v7 API level 24 Q v10 API level 30 Pie v9 API level 28 Nougat v7.1.1 API level 28 Pie v9 API level 28 Marshmallow API level 27 Oreo v8.1.0 API level 27 Q v10 API level 23 (3) (3) (3) (3) (3) (3) (3) (3) (3) (3) AN5604 - Rev 1 page 19/41 AN5604 Results of basic functional tests Manufacturer Model OS 1234567 8 9 Xiaomi MI MIX3 Q v10 API level 29 (3) Xiaomi REDMI M2004J19AG Q v10 API level 30 (3) Xiaomi REDMI NOTE 8 M1908C3JG Q v10 API level 29 (3) Xiaomi REDMI NOTE 8 PRO Q v10 API level 29 (3) 1. If requested connection interval < 30 ms, phone updates with a connection interval around 30 ms (26.25 ms or 30 ms). Other requests are accepted and answered with few differences. 2. L2CAP request with connection interval equals to 1 s and latency > 0 is not accepted. 3. If requested connection interval equals to 7.5 ms, phone updates with 11.25 ms. 4. If requested connection interval equals to 7.5 ms, phone's response is failed but test can continue. AN5604 - Rev 1 page 20/41 AN5604 Specific scenario test cases 3 Specific scenario test cases 3.1 STM32WB Series data throughput application The application used for the following scenario is part of ST project delivery: BLE_Data_Throughput Figure 27. BLE_Data_Throughput application Peripheral GATT Server DATA TRANSFER SERVICE C1 DATA_TRANSFER_TX notify, Variable lenght DATA_TRANSFER_TX, write C2 without response indicate, Variable lenght C1 DATA_TRANSFER_TX_INFO notify, Variable lenght 3.2 Summary of data throughput application tests Test set 1 2 3 4 Test case 1 1 2 1 2 1 2 Table 4. List of data throughput application tests Type BLE connection, GATT (service, characteristic discovery) GAP security requested by the phone GAP security requested by STM32WB55 device Data throughput download (GATT notification) PHY 1 M Data throughput download (GATT notification) PHY 2 M Data throughput upload (GATT write) PHY 1 M Data throughput upload (GATT write) PHY 2 M AN5604 - Rev 1 page 21/41 3.3 3.3.1 AN5604 Description of data throughput application tests Description of data throughput application tests Scenario 1 BLE scanning, connection, service/characteristic discovery STM32WB55 device is the peripheral. · Phone connects, discovers service/characteristic, disconnects · Pass if no connection issue and all service/characteristics are discovered by the phone Figure 28. Phone scans, connects, discovers service and characteristics STM32WB - Trace Smartphone AN5604 - Rev 1 page 22/41 3.3.2 AN5604 Description of data throughput application tests Scenario 2-1 GAP security Pairing requested by the phone STM32WB55 device is in advertising. STM32WB55 device can support legacy pairing or secure connection. The used method depends on the phone. · Phone scans, connects, discovers service/characteristic · The phone starts the pairing/bonding sequence · Pass if after connection, pairing initiated by the phone is successful Figure 29. Phone requests pairing STM32WB - Trace Smartphone AN5604 - Rev 1 page 23/41 3.3.3 AN5604 Description of data throughput application tests Scenario 2-2 GAP security Pairing requested by the STM32WB55 device STM32WB55 device is in advertising. STM32WB55 device can support legacy pairing or secure connection. The used method depends on the phone. · Phone scans, connects, discovers service/characteristic · The STM32WB55 device starts the pairing/bonding sequence · Pass if after connection, pairing initiated by the phone is successful Figure 30. STM32WB55 device requests pairing STM32WB - Trace Smartphone Note: The database can be deleted on phone using "delete bond". Delete database is a local action. Figure 31. Phone deletes its database Smartphone AN5604 - Rev 1 page 24/41 Note: AN5604 Description of data throughput application tests The database can be deleted on STM32WB55 device after disconnection, using SW3-long push (more than 1 s). Delete database is a local action. Figure 32. STM32WB55 device deletes its database STM32WB - Trace AN5604 - Rev 1 page 25/41 3.3.4 AN5604 Description of data throughput application tests Scenario 3-1 Data throughput downlink 1 M STM32WB55 device is the peripheral. · Phone scans, connects, discovers service/characteristic, enables the notification · Push SW1 notification is sent from STM32WB55 device · Throughput is calculated on the phone Pass if all service and characteristics are discovered and the throughput value is displayed Figure 33. STM32WB55 device sends data to the phone at PHY = 1 M STM32WB - Trace Smartphone AN5604 - Rev 1 page 26/41 3.3.5 AN5604 Description of data throughput application tests Scenario 3-2 Data throughput downlink 2 M STM32WB55 device is the peripheral. · Phone scans, connects, discovers service/characteristic, enables the notification · Push SW1 : notification are sent from STM32WB55 device · Push SW2, check the phone supports PHY 2 M · Throughput is calculated on the phone Pass if all service and characteristics are discovered and the throughput value is displayed. Figure 34. STM32WB55 device sends data to the phone at PHY = 2 M STM32WB - Trace Smartphone AN5604 - Rev 1 page 27/41 3.3.6 AN5604 Description of data throughput application tests Scenario 4-1 Data throughput uplink 1 M STM32WB55 device is in advertising. · Phone scans, connects, discovers service/characteristic, enables the notification (not used in this case) · Select uplink box on phone application. Write data started from the phone · Throughput is calculated on device and sent to the phone through a notification. The value is displayed on phone Pass if all service and characteristics are discovered and the throughput value is displayed. Figure 35. Phone sends data to STM32WB55 device at PHY = 1 M STM32WB - Trace Smartphone AN5604 - Rev 1 page 28/41 3.3.7 AN5604 Description of data throughput application tests Scenario 4-2 Data throughput uplink 2 M STM32WB55 device is in advertising. · Phone scans, connects, discovers service/characteristic, enables the notification (not used in this case) · Select uplink box on phone application. Write data started from the phone · Push SW2, check the phone supports PHY 2 M · Throughput is calculated on device and sent to the phone through a notification. The value is displayed on phone. Pass if all service and characteristics are discovered and the throughput value is displayed. Figure 36. Phone sends data to STM32WB55 device at PHY = 2 M STM32WB - Trace Smartphone AN5604 - Rev 1 page 29/41 3.4 AN5604 Results of data throughput application tests Results of data throughput application tests Manufacturer Apple® Apple® Apple® Apple® Apple® Apple® Apple® Google® Google® Huawei Huawei Huawei Huawei Huawei Huawei LG Motorola OnePlus OnePlus Table 5. Results of data throughput application tests Model iPhone 7 MN8X2ZD/A iPhone 8 MQ6V2LL/A iPhone 11 iPhone 12 XR MRYU2VC/A XS MT9H2ZD/A XS MAX PIXEL 2 PIXEL 3 MATE 20 LITE NEXUS 6P P10 P20 ELM-L29 P30 ELE-L29 P Smart+ 2019 POT-LX1T K20 OS iOS 13.7 iOS 14.0.1 iOS 13.6.1 iOS 14.3 iOS 14 iOS 13.6.1 iOS 14.2 R v11 API level 30 Q v10 API level 29 Q v10 API level 29 Oreo v8.1.0 API level 27 Nougat v7 API level 24 Oreo v8.1.0 API level 27 Q v10 API level 29 Q v10 API level 29 Pie v9 API level 28 S1 S2 SC SC SC SC SC SC SC SC SC SC SC SC SC(2) SC SC SC S3-download (kbytes/s) 1 M - 22.11 2 M - 28.31 1 M - 24 2 M - 38 1 M - 15 2 M - 40 1 M - 23.2 2 M - 40 1 M - 24 2 M - 40 1 M - 24 2 M - 40 1 M - 24 2 M - 38 1 M - 48.73 2 M - 85.90 1 M - 48.7 2 M - 75 1 M - 22.3 2 M - not supported 1 M - 20 2 M - not supported 1 M - 30 2 M - 32 1 M - 19 2 M - 32 1 M - 60 2 M - 105 1 M - 16 2 M - not supported 1 M - 2 2 M - not supported Z2 5000 A6003 Nougat v7.1.1 API level 25 SC Nougat v7.1.1 API level 25 SC(2) Q v10 API level 29 SC(2) 1 M - 7.2 2 M - not supported 1 M - 48 2 M - 90 1 M - 62.2 2 M - 85.2 S4-upload (kbytes/s) 1 M - 21.8 2 M - 30.87 1 M - 23 2 M - 39 1 M - 15 2 M - 39 1 M - 23.4 2 M - 39 1 M - 23 2 M - 38 1 M - 23 2 M - 40 1 M - 23 2 M - 39 1 M - 49.30 2 M - 85.20 1 M - 42 2 M - 75 1 M - 8 2 M - not supported 1 M - 42 2 M - not supported 1 M - 30 2 M - 31 1 M - 31 2 M - 31 1 M - 47 2 M - 78 1 M - 2.6 2 M - not supported 1 M - 0.87 2 M - not supported 1 M - 7.2 2 M - not supported 1 M - 48 2 M - 46 1 M - 62.7 2 M - 84 AN5604 - Rev 1 page 30/41 AN5604 Results of data throughput application tests Manufacturer OPPO Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Samsung Sony Sony Sony Xiaomi Model RX17 PRO CPH1877 A41 SM-A415F A50 SM-A505FN A51 GALAXY A5 SM-A520F GALAXY S7 SM-G930F GALAXY S8 SM-G950F GALAXY S8 SM-G9500 GALAXY S8+ Chinese model SM-G9550 GALAXY S9 SM-G900 GALAXY S9 SM-G960 GALAXY S10 SM-G730 GALAXY S10 SM-G973F Tab A SM-T510 NOTE 8 SM-N950F S6Edge S10 XPERIA10 XPERIA DOCOMO XPERIAXZ2 MI5 OS Oreo v8.1.0 API level 27 Q v10 API level 30 Q v10 API level 30 Q v10 API level 29 Oreo v8 API level 25 Oreo v8 API level 25 Nougat v7 API level 24 Nougat V7 API level 24 S1 S2 SC SC SC SC SC SC SC SC S3-download (kbytes/s) 1 M - 47 2 M - 84 1 M - 43 2 M - 74 1 M - 47 2 M - 85 1 M - 43.10 2 M - 77.75 1 M - 35 2 M - not supported 1 M - 24.02 2 M - not supported 1 M - 69 2 M - 74 1 M - 93 2 M - 150 S4-upload (kbytes/s) 1 M - 42 2 M - 61 1 M - 70 2 M - 74 1 M - 46 2 M - 46 1 M - 46.10 2 M - 47.20 1 M - 28 2 M - not supported 1 M - 23.79 2 M - not supported 1 M - 42 2 M - 46 1 M - 48 2 M - 48 Nougat V7 API level 24 SC 1 M - 93 2 M - 164 1 M - 51 2 M - 50 Nougat v7.1.1 API level 25 SC Nougat v7.1.1 API level 25 SC Pie v9 API level 28 SC Pie v9 API level 28 SC Q v10 API level 29 SC(2) Pie v9 API level 27 SC Nougat v7 API level 24 SC Q v10 API level 30 SC Pie v9 API level 28 SC Nougat v7.1.1 API level 25 SC Pie v9 API level 28 SC Marshmallow SC 1 M - 93 2 M - 166 1 M - 93 2 M - 167 1 M - 93 2 M - 167 1 M - 93 2 M - 167 1 M - 37.6 2 M - 64.8 1 M - 86.6 2 M - 156.25 1 M - 2.48 2 M - not supported 1 M - 91.7 2 M - 162.3 1 M - 49.15 2 M - 86.11 1 M - 42 2 M - 86 1 M - 49.3 2 M - 145.5 1 M - 29.8 2 M - not supported 1 M - 42 2 M - 76 1 M - 42 2 M - 57 1 M - 42 2 M - 76 1 M - 43 2 M - 76 1 M - 48.2 2 M - 57.2 1 M - 35.15 2 M - 37.1 1 M - 2 2 M - not supported 1 M - 46.18 2 M - 79 1 M - 48.21 2 M - 75.29 1 M - 38 2 M - 52 1 M - 8.7 2 M - 8.6 1 M - 31.5 2 M - not supported AN5604 - Rev 1 page 31/41 AN5604 Results of data throughput application tests Manufacturer Model OS S1 S2 API level 27 Xiaomi MI 8 Oreo v8.1.0 API level 27 SC(2) Xiaomi MI10 M2001J2G Q v10 API level 29 SC Xiaomi MI MIX3 Q v10 API level 29 SC Xiaomi REDMI M2004J19AG Q v10 API level 29 SC Xiaomi Xiaomi REDMI NOTE 8 REDMI NOTE 8 PRO Q v10 API level 29 Q v10 API level 29 SC SC 1. SC stay for secure connection 2. Peripheral security request not supported by the phone. S3-download (kbytes/s) 1 M - 43 2 M - 85 1 M - 72 2 M - 138 1 M - 47.1 2 M - 82.5 1 M - 73 2 M - 75 1 M - 45 2 M - not supported 1 M - 73.4 2 M - 127.7 S4-upload (kbytes/s) 1 M - 42 2 M - 74 1 M - 55 2 M - 55 1 M - 43 2 M - 80 1 M - 27 2 M - 39 1 M - 16 2 M - not supported 1 M - 27.1 2 M - 40.6 AN5604 - Rev 1 page 32/41 AN5604 Analysis 4 Analysis Figure 37. Data throughput download 1 M and 2 M performances AN5604 - Rev 1 page 33/41 Figure 38. Data throughput upload 1 M and 2 M performances AN5604 Analysis AN5604 - Rev 1 page 34/41 Figure 39. Connection interval and supervision timeout summary AN5604 Analysis AN5604 - Rev 1 page 35/41 Revision history Date 02-Feb-2021 Table 6. Document revision history Version 1 Initial release. Changes AN5604 AN5604 - Rev 1 page 36/41 AN5604 Contents Contents 1 Test setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 2 Basic functional test cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 Application of STM32WB Series basic functional test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Summary of basic functional tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 Description of basic functional tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3.1 Test 1 BLE scanning, discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3.2 Test 2-1 BLE connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3.3 Test 2-2 GATT, service/characteristics discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3.4 Test 3 GATT notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3.5 Test 4-1 GATT, write/read characteristic (1 byte) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.6 Test 4-2 GATT, write/read characteristic (4 bytes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.7 Test 5 GATT indication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3.8 Test 6-1 GATT, write without response/read characteristic (1 byte) . . . . . . . . . . . . . . . . . 9 2.3.9 Test 6-2 GATT, write without response/read characteristic (4 byte) . . . . . . . . . . . . . . . . 10 2.3.10 Test 7 GATT, write/read characteristic encryption permission . . . . . . . . . . . . . . . . . . . . . 10 2.3.11 Test 8-1 L2CAP connection interval request (7.5 ms). . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.12 Test 8-2 L2CAP connection interval request (20 ms) . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3.13 Test 8-3 L2CAP connection interval request (45 ms) . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3.14 Test 8-4 L2CAP connection interval request (200 ms) . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3.15 Test 8-5 L2CAP connection interval request (400 ms) . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.16 Test 8-6 L2CAP connection interval request (600 ms) . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.17 Test 8-7 L2CAP connection interval request (1000 ms) . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.18 Test 8-8 L2CAP connection interval request (2000 ms) . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.19 Test 8-9 L2CAP connection interval request (4000 ms) . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3.20 Test 9-1 L2CAP connection interval, connection latency request (48.75 ms, latency = 2)15 2.3.21 Test 9-2 L2CAP connection interval, connection latency request (48.75 ms, latency = 4)16 2.3.22 Test 9-3 L2CAP connection interval, connection latency request (200 ms, latency = 2) . 16 2.3.23 Test 9-4 L2CAP connection interval, latency request (200 ms, latency = 4) . . . . . . . . . . 17 2.3.24 Test 9-5 L2CAP connection interval, latency request (1000 ms, latency = 1) . . . . . . . . . 17 2.4 Results of basic functional tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 Specific scenario test cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 AN5604 - Rev 1 page 37/41 AN5604 Contents 3.1 STM32WB Series data throughput application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 Summary of data throughput application tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3 Description of data throughput application tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3.1 Scenario 1 BLE scanning, connection, service/characteristic discovery . . . . . . . . . . . . . 22 3.3.2 Scenario 2-1 GAP security Pairing requested by the phone . . . . . . . . . . . . . . . . . . . . 23 3.3.3 Scenario 2-2 GAP security Pairing requested by the STM32WB55 device . . . . . . . . . 24 3.3.4 Scenario 3-1 Data throughput downlink 1 M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3.5 Scenario 3-2 Data throughput downlink 2 M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3.6 Scenario 4-1 Data throughput uplink 1 M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.3.7 Scenario 4-2 Data throughput uplink 2 M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.4 Results of data throughput application tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 AN5604 - Rev 1 page 38/41 AN5604 List of tables List of tables Table 1. Table 2. Table 3. Table 4. Table 5. Table 6. Test setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 List of basic functional tests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Results of basic functional tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 List of data throughput application tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Results of data throughput application tests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 AN5604 - Rev 1 page 39/41 AN5604 List of figures List of figures Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure 6. Figure 7. Figure 8. Figure 9. Figure 10. Figure 11. Figure 12. Figure 13. Figure 14. Figure 15. Figure 16. Figure 17. Figure 18. Figure 19. Figure 20. Figure 21. Figure 22. Figure 23. Figure 24. Figure 25. Figure 26. Figure 27. Figure 28. Figure 29. Figure 30. Figure 31. Figure 32. Figure 33. Figure 34. Figure 35. Figure 36. Figure 37. Figure 38. Figure 39. Setup overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 BLE IOT test application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Phone scans and finds the device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Phone connects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Phone discovers service, characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Phone enables the notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Phone writes 1 byte (test 4-1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Phone writes 4 bytes (test 4-2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Phone enables the indication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Phone writes 1 byte (test 6-1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Phone writes 4 bytes (test 6-2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Phone writes one byte, encryption needed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Peripheral requests connection interval, 7.5 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Peripheral requests connection interval, 20 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Peripheral requests connection interval, 45 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Peripheral requests connection interval, 200 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Peripheral requests connection interval, 400 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Peripheral requests connection interval, 600 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Peripheral requests connection interval, 1000 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Peripheral requests connection interval, 2000 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Peripheral requests connection interval, 4000 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Peripheral requests connection interval = 48.75 ms, latency = 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Peripheral requests connection interval = 48.75 ms, latency = 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Peripheral requests connection interval = 200 ms, latency = 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Peripheral requests connection interval = 200 ms, latency = 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Peripheral requests connection interval equals to 1000 ms, latency equals to 1. . . . . . . . . . . . . . . . . . . . . . . 17 BLE_Data_Throughput application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Phone scans, connects, discovers service and characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Phone requests pairing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 STM32WB55 device requests pairing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Phone deletes its database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 STM32WB55 device deletes its database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 STM32WB55 device sends data to the phone at PHY = 1 M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 STM32WB55 device sends data to the phone at PHY = 2 M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Phone sends data to STM32WB55 device at PHY = 1 M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Phone sends data to STM32WB55 device at PHY = 2 M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Data throughput download 1 M and 2 M performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Data throughput upload 1 M and 2 M performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Connection interval and supervision timeout summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 AN5604 - Rev 1 page 40/41 AN5604 IMPORTANT NOTICE PLEASE READ CAREFULLY STMicroelectronics NV and its subsidiaries ("ST") reserve the right to make changes, corrections, enhancements, modifications, and improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on ST products before placing orders. ST products are sold pursuant to ST's terms and conditions of sale in place at the time of order acknowledgement. Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or the design of Purchasers' products. No license, express or implied, to any intellectual property right is granted by ST herein. Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product. ST and the ST logo are trademarks of ST. For additional information about ST trademarks, please refer to www.st.com/trademarks. All other product or service names are the property of their respective owners. Information in this document supersedes and replaces information previously supplied in any prior versions of this document. © 2021 STMicroelectronics All rights reserved AN5604 - Rev 1 page 41/41Antenna House PDF Output Library 7.0.1600; modified using iText 2.1.7 by 1T3XT C2 v4.2.0220 build 670 - c2 rendition config : Techlit Active