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

Increasing of data rate nrf52832

Hello everyone!

I have peripheral device with notify characteristic with 20 bytes length of value and connection time interval - 7.5 ms. So, I want to increase throughput of this system. In this blog post and in the first answer in this thread. Authors talk about increasing of number of pockets, but it's not clearly for me, what kind of pockets is it? It's about create for example 3 additional characteristics and update their value?

As peripheral device I use nrf52832 breakout board from Sparkfun... with BLEPeripheral library.

  • Yes. Throughput depends on the number of packets you are able to send in each connection interval, this is usually limited by the central device, as you can see from the list of central devices.

    What kind of central device are you connecting to?

    There are other ways of increasing throughput as well. You can do data length extension (DLE) to increase the payload of each packet, reducing overhead. You can can use the high speed 2Mbps mode that was introduced with Bluetooth 5. I am however not sure if this is supported by the BLEPeripheral library. You have more freedom and possibilities if you use our SDK instead.

  • Dear Petter, thank you for response. As Central device I use nRF51822. Can you tell me, where I can control number of pockets in SDK? Which functions I should use? Regarding data length extenstion, you talking about MTU? If yes, so this value is constant in BLEPeripheral, also like high speed mode... But anyway, can you tell me how can I choose/change speed mode in SDK?

  • Which SDK and SoftDevice are you using with the nRF51822?

    No, I'm not talking about ATT MTU, but you have to increase that as well to take advantage of DLE. So if you can't change that, DLE doesn't help.

    What kind of throughput are you seeing now? What kind of throughput do you want?

  • I use SDK 12.3.0, Softdevice S130. I want to send and receive 6 pockets with data length 20 bytes every 7.5 ms. Now I able to send only 1 pocket with data length 20 bytes.

  • The default bandwidth configuration for central is medium, which is to be able to receive 3 packets per connection interval, so this might not be the culprit. You can try to change the bandwidth configuration to high, and see if that makes a difference. This is done when you enable the SoftDevice, see the ble_conn_bw_counts_t struct inside ble_enable_params_t.

    It might be a limitation on the peripheral side as well. A sniffer trace would give more information on what is going on.

Related