This blog has the details of benchmark test performed for BLE GATT Throughput between Cypress BT SoC CYW20820/CYW20721 and different Android and iPhones.
The firmware used to perform the measurement is available on GitHub as a Code Example. Go through the Readme file associated with the code example to get a quick understanding of BLE throughput and the parameters used to tune it. Using this code example, you can easily perform the throughput measurement on your own with just a BT SoC based Cypress kit and your phone!
Let’s get started by checking out how the benchmarking is done.
Test Setup
To conduct this activity, CYW920820EVB-02/CYW920721EVB-02 were used as BLE GAP Peripheral and GATT Server with custom throughput measurement service. The iPhones and the Android Phones listed below were used as a BLE GAP Central and GATT Client:
The measurements were done for both 1M and 2M PHY. An MTU size of 515 was exchanged between both the devices and DLE(Data Length Extension) was enabled. The BT SoC is programmed to send a request for connection interval of 26.25 ms, but the interval chosen depends on the Central device. Ellisys Bluetooth Sniffer was used to collect BLE air logs for all measurements.
The data traffic is only one way, i.e., GATT notifications from the BT SoC (Tx) to the smartphone (Rx). But the code example can operate for two more modes of data traffic; First mode is where, the data traffic from smartphone (Tx) to BT SoC (Rx) and the second mode mode is where, the both the Tx and Rx operation of data happen simultaneously on both the devices. For these two modes, we need a custom feature in Android/iOS CySmart app which can send frequent, automated GATT write/notifications. The android/iOS apps currently available on Playstore/Appstore do not have this feature. So, the values presented here are for GATT notifications from BT SoC to smartphone.
Throughput rates for 2M PHY
The below table summarizes the results obtained for 2M PHY:
Test ID | BT SoC -> Phone | MTU | Connection Interval | BLE GATT Throughput |
1. | CYW20721 -> iPhone 11 | 515 | 26.25 ms | 311 kbps |
2. | CYW20721 -> iPhone 11 Pro | 515 | 26.25 ms | 365 kbps |
3. | CYW20820 -> iPhone X | 515 | 26.25 ms | 340 kbps |
4. | CYW20721 -> Google Pixel 3 | 515 | 45.00 ms | 1236 kbps |
5. | CYW20721 -> Samsung Galaxy S10 Plus | 515 | 26.25 ms | 1222 kbps |
6. | CYW20820 -> iPhone X | 247 | 26.25 ms | 362 kbps |
7. | CYW20820 -> Google Pixel 3A | 247 | 45.00 ms | 1303 kbps |
8. | CYW20820 -> Samsung Galaxy S8 | 247 | 26.25 ms | 1320 kbps |
Note: The throughput values are averaged for 15 readings.
By now, you might have observed that with the iPhone, we get a lesser throughput (with the same parameters exchanged) compared to Android. This is because, iPhone which is the LL master in the connection, is terminating the connection event length in a connection interval. Let us compare one connection interval captured by the sniffer for both Android and iPhone to understand this:
One connection interval (26.25 ms) for Android: Samsung Galaxy S10 Plus
One connection interval (26.25 ms) for iPhone: iPhone 11
Notice that, in case of Android, most of the interval (25 ms) is utilized for data transfer, whereas, in case of iPhone, the connection event is terminated by Central after 7 ms from start of the interval.
This means, the remaining air time is wasted and not utilized for data transfer. This is the reason, for lesser throughput in case of iPhone for the negotiated parameters.
Throughput rates for 1M PHY
The below table summarizes the results obtained for 1M PHY:
Test ID | BT SoC -> Phone | MTU | Connection Interval | BLE GATT Throughput |
1. | CYW20721 -> iPhone 11 | 515 | 26.25 ms | 130 kbps |
2. | CYW20721 -> iPhone 11 Pro | 515 | 26.25 ms | 82 kbps |
3. | CYW20820 -> iPhone X | 515 | 30.00 ms | 160 kbps |
4. | CYW20721 -> Google Pixel 3 | 515 | 45.00 ms | 527 kbps |
5. | CYW20721 -> Samsung Galaxy S10 Plus | 515 | 26.25 ms | 222 kbps |
Note: The throughput values are averaged for 15 readings.
Ellisys Sniffer Logs
A look into the Instant Throughput graph of entire data traffic captured by Ellisys Sniffer:
CYW20721 -> Google Pixel 3
Three Ellisys log files are attached with this blog for reference:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We use cookies and similar technologies (also from third parties) to collect your device and browser information for a better understanding on how you use our online offerings. This enables us to optimize and personalize your experience with Infineon and to provide you with additional services and information based on your individual profile. Details are available in our privacy policy where you can also change your preferences on cookies at any time.
By technically required cookies we mean cookies without those the technical provision of the online service cannot be ensured. These include e.g. cookies supporting essential services like a smooth reproduction of video or audio footage. So called ‘functional cookies’ are also assigned belonging to this category. Functional cookies store information in order to provide you comfortable use of our online services (e.g. language selection). The legal basis for the processing of personal data by means of cookies of this category is Infineon’s legitimate interest. This includes, among other things, the interest in having a professional external presentation as well as an optimal balancing of the loads on the server due to technical reasons.
By performance and marketing cookies we mean cookies which are technically not required. We use performance and marketing cookies only if you have given us your prior consent. With such cookies, we collect information about how users interact with our website and which pages have been visited. This helps us to understand user activity on our website on an aggregated as well as on a personal level to provide you relevant content and services.