Showing results for 
Search instead for 
Did you mean: 

What's the BLE communication speed? How many bytes can BLE send one time?


I found that the output data is 8 bit (1 byte) with 247 arrays in a BLE example.

So, is 247 bytes maximum value to send data one time through BLE?

if so, I heard BLE can send 1 Mbyte per second. What is this?

Does it mean BLE can communicate to the client about 4000 times per second?


There is a lot of out of context numbers thrown out there by people trying to sell you BLE solutions.

There is three concepts for you to look up that influence in real data troughput:

In not so new android devices connection itnerval is around 40ms.

  • CE length: Length of each data packet maximum is 251 , but it can be extended (checkout DLE)

  • PHY: physicall layer data troughput, 1 or 2 Mbytes/s (in newer devices BLE5.0)

>if so, I heard BLE can send 1 Mbyte per second. What is this?

You need to know BLE has a lot of overhead due to stacked protocols (like tcp).

1Mbyte/s is the PHY layer troughput, in some newer devices this can be set up to 2Mbytes/s(BLE5.0).

Then how do control the connection interval? If I want to send data per every 1 ms, is it possible using BLE?

Or should I send 40 times measured data once?

if I request sending data for every 1 ms, Does the microcontroller send data every 1 ms or 40 ms, and 39 times data is skipped??

in what device, android/windows/linux/embedded....

I have no clue, what is your setup.

I read what you linked. Now, I understood the basic BLE system. BLE can afford a 7.5 ms connection interval and Each interval can contain several packets (a single packet can contain 247 bytes for the BLE 4.2 version). Now I want to know how to modify the connection interval, several packets, and transfer multi-packet data in the STM32 and my PC.

Most document contains so much useless information. So, finding what I want to know is the most difficult thing and a major factor consuming time and energy.

I'm building my personal program using Visual Studio because the LabVIEW was too slow (I've already fully built the LabVIEW-STM32 communication system and successfully transfer ADC data to PC. The LabView can get about 30 times single row data (1x16) from STM32. but it means its fps is ~1.). my target is sending 8bit~16bit 32x16 array data (512B ~ 2kB per frame) to PC within 1 ms (to realize >100 Hz scan speed). So, I'm updating my BLE hardware to the 5.2 version to achieve 200 kB/s throughputs.

does your PC have BLE 5 also?