cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WBA BLE Data Throughput example : throughput optimization

SnoZek
Associate II

Hello everyone,

I'm currently working with the STM32WBA65RI Nucleo board.

For my upcoming application, I require a stable BLE throughput of over 800 kbps. However, using the provided example, I can only achieve around 600 kbps.

So far:

  • I'm using an MTU of 244 bytes.

  • 2M PHY 
  • Manage to minimize connection interval : 11.25 ms when using the ST BLE Toolbox app, and 7.5 ms when using a custom script on Windows.

  • I’ve tested with several smartphones/ configuration and also tried increasing the MCU clock, but none of these changes improved the performance significantly.

Has anyone managed to achieve a higher throughput with this setup or found effective optimizations?

Thanks in advance for any insights.

3 REPLIES 3
Lina_DABASINSKAITE
Community manager
Community manager

Hello @SnoZek,

This post has been escalated to the ST Online Support Team for additional assistance.  We'll contact you directly.​  

Best regards,​  

Lina


In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
_Joe_
ST Employee

Hi SnoZek,

This limitation originates from the smartphone used.
We conducted data throughput benchmarks.
For downloads (from STM32 to the smartphone) at PHY 2M, the average throughput was approximately 600 kbps.

For uploads (from the smartphone to STM32), the results are even more dependent on the smartphone and range from 250 kbps to 680 kbps.

The following wiki page will be updated with graphs in the coming days:
STM32WBA Bluetooth® LE – Data throughput measurement - stm32mcu

Between two WBAs, data throughputs of around 950 kbps can be achieved.

BR, Joé



SnoZek
Associate II

Hi Joé,

Thanks a lot for your answer and for sharing your benchmark results, they really helped me better understand my own measurements.

To verify, I made sure the parameters were correctly set:

  • DLE enabled

  • ATT MTU = 247

  • PHY = 2M

  • Tried several connection intervals (9, 11.25, 26.25, 30, 50, 300 ms…)

I observed that the shorter the connection interval, the higher the throughput.

You mentioned:

"Between two WBAs, data throughputs of around 950 kbps can be achieved."

I was aiming to reach similar performance using a NUCLEO-STM32WBA65RI (server) and a NUCLEO-STM32WBA55CGA (client).
I first flashed the ST example applications without any modifications, but I wasn’t able to match your performance.
Even after reducing the connection interval to 8.75 ms, I couldn’t achieve more than ~60,000 bytes/s.

Could you share me the configuration you did to acheive 900 kbps ?

Thanks, 
Yvan