cancel
Showing results for 
Search instead for 
Did you mean: 

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

KKIM.6
Senior

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?

10 REPLIES 10
Javier1
Principal

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

https://community.st.com/s/feed/0D53W00001JCSjPSAX

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).

https://www.symmetryelectronics.com/blog/bluetooth-1-0-vs-2-0-vs-3-0-vs-4-0-vs-5-0-how-they-compare-symmetry-blog/

we dont need to firmware by ourselves, lets talk

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....

we dont need to firmware by ourselves, lets talk

I have no clue, what is your setup.

we dont need to firmware by ourselves, lets talk

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?

we dont need to firmware by ourselves, lets talk