0

I'm setting up a device to advertise as a server (peripheral) and a mobile phone to act as the client (central). My issue is: when my central 'reads' from the peripheral, how many packets can the peripheral respond with for a single request?

What I have seen so far is that the peripheral may respond with a 20 byte packet and then indicate another 20 byte packet. I don't see how this could achieve the stated data rates?

maze
  • 789
  • 1
  • 7
  • 31

2 Answers2

0

From your question I understand that your actual question is how to achieve the maximum BLE data rate, right?

Have a look here: https://stackoverflow.com/search?q=BLE+throughput

Especially here: BLE peripheral throughput limit and here How can I increase the throughput of my BLE application?

In general the key is not the number of packets in the first place. First have a look at the MTU size and connection interval. After that, yes, it is possible to send multiple packets per connection interval. (Uh, I have to guess here 3 or 4 usually but not sure)

Moreover, in newer bluetooth standard versions you can look if your device supports packet length extension.

For further reading I suggest https://punchthrough.com/pt-blog-post/maximizing-ble-throughput-on-ios-and-android/

and

https://punchthrough.com/pt-blog-post/maximizing-ble-throughput-part-3-data-length-extension-dle/

maze
  • 789
  • 1
  • 7
  • 31
0

Using notifications instead of read requests you will get the best throughput.

Then a lower connection interval will also usually increase the throuhput.

Using LE Data Length Extension and a large MTU will increase it even further.

The last step is to switch from 1 Mbit/s PHY to 2 Mbit/s PHY to get even better.

Emil
  • 16,784
  • 2
  • 41
  • 52