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

How can I change the TX_BUFFERS on both nrf51 and nrf52?

HI, I get the information frome the sd_ble_tx_buffer_count_get that ,the nrf51 with S110 SD8.0 has 7 count(7*32BYTES) of TX_buffers (I can use 6cnt one time) . The nrf52 with SDK 0.9.2 SDs132_nrf52_2.0.0-4.alpha_softdevice has 3 TX_buffers(2 count can i used).

I want to know that


1. How can I change the tx_buffers size ,or how can I keep the txbuffers always have some data in there?    I have tested the BLE_EVT_TX_COMPLETE event to send data as fast as I can ,that is not fast enough.


Parents
  • Currently the tx buffer size is fixed, but soon you will be able to set the size when you enable the SoftDevice.

    As a peripheral and server, the maximum throughput you can achieve is 42.6 kbps, by using notifications. This is with 20 bytes in each packet, 2 packets per connection interval, and 7.5 ms connection interval. This is only achieveable if the central device supports 7.5 ms connection interval and 2 packets per connection interval.

    You achieve the maximum throughput by calling sd_ble_gatts_hvx() in a loop until it returns BLE_ERROR_NO_TX_BUFFERS. And restart this loop every time you get BLE_EVT_TX_COMPLETE.

  • Soon has arrived.

    The most important thing to configure is the event length. To utilize the complete connection interval set the event length equal to it. 9 packets with a 20 byte payload should be possible with a 7.5 ms connection interval (nRF52<->nRF52).

    Also be aware that you can increase the ATT MTU and link layer payload to send bigger packets over the air.

Reply Children
No Data
Related