This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How to acheive high data rate?

Hi,

Is there any difference(data rate) between sending large data packets through single characteristics and multiple characteristics?

I have created one characteristic with notify property and also created a buffer of size 20 bytes(packet size). I did transmitting the buffer until the sent data size reaches 200KB (transmitting in a for loop until the count reaches 10240).

The problem i face here is, time consumption. For me it took ~36 seconds to transmit 200KB of data. Hence i can only achieve the data rate of 5KB per second. I know that the data rate can be achieved using BLE is 2Mbps,1Mbps and 250kbps.

So please suggest me how to achieve the data rates as specified in the BLE document. Actually i need to transmit the 200KB of data within 1 or 2 sec.

I also tried sending the data using 2 different characteristics. Now each will send 20 bytes of data for 5120 times, but the data rate i achieved is same as above.

I also made changes in the minimum connection interval and maximum connection interval to check whether the required data rate is achieved or not , but i did not get any result as i expected. I also attached my testing results. Please suggest me the min and max connection interval need to be set.

Regards, Balaji

data_rate.png

  • The data rate may be high, however throughput is not. With a small maximum payload size in the bluetooth low energy protocol, you will not achieve 1Mbps even if the underlying radio can.

    200kb is a large application size and I have seen bluetooth low energy over-the-air updates take nearly half a minute like you describe.

    You are already using the shortest connection interval that still meets the BLE SIG spec, perhaps higher datarates are possible with nordic's gazelle or enhanced shockburst.

  • how minimum connection interval and maximum connection interval affect the throughput, i have studied so many documents but still can't find the answer, i am using min. conn int of 500ms and supervision timout of 4s, how much thourghput can i achieve? in my app i am sending data of 20 bytes for every 10ms, i dnt have any problem in that case, how it is related to conn interval, could you please explain me?

  • how minimum connection interval and maximum connection interval affect the throughput, i have studied so many documents but still can't find the answer, i am using min. conn int of 500ms and supervision timout of 4s, how much thourghput can i achieve? in my app i am sending data of 20 bytes for every 10ms, i dnt have any problem in that case, how it is related to conn interval, could you please explain me?

  • As per the document i have referred, we can able to send 4 to 6 packets (each packet maximum of 20 bytes) in a connection interval. As shown in the attachment i too didn't get any idea how the minimum and maximum connection interval affect the throughput, when i tested with the master control panel application. But when i do testing with the android application, i can see the increased packet loss with minimized connection intervals.

  • yep, now i am also losing packets, i created two characteristics each with 20 bytes payload and connection interval of 10ms, i am trying to send each packet for every 1ms, then for 1s i am recieving 45 to 50 packets varying for every second but theoritically i hav to recieve 500 packets but not recieving

    in one case i am getting 30 packets of char.1 and 20 of char.2 and in other case the number is varying but i am not perfectly getting the all packets transmitting. some packets are lost

Related