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

Increase data transfer rate for nRF52840 for queued write

Hi

I am using the provided example ble_app_queued_writes to send 256 bytes in each call.

It is taking around 13 seconds to transfer 3136 bytes:

12 calls of 256 and one for 64. Around 1 second per transfer. This seems very slow to me.

I checked many posts on this site and refered the throughput and long range demo to make the data transfer faster.

I got slight improvement of a second overall when i made following changes:

1) Updated BLE_GAP_DATA_LENGTH_DEFAULT to 128 from 27 (Successful)

2) Updated 

MIN_CONN_INTERVAL to MSEC_TO_UNITS(10, UNIT_1_25_MS) (Successful)

MAX_CONN_INTERVAL to MSEC_TO_UNITS(20, UNIT_1_25_MS) (Successful)

Other useful changes sugested gives error once the hex is uploaded:

1) ATT MTU :  NRF_SDH_BLE_GATT_MAX_MTU_SIZE more than 23 results in error:

<warning> app: System reset
<info> app_timer: RTC: initialized.
<warning> nrf_sdh_ble: Insufficient RAM allocated for the SoftDevice.
<warning> nrf_sdh_ble: Change the RAM start location from 0x20002300 to 0x20002C80.
<warning> nrf_sdh_ble: Maximum RAM size for application is 0x3D380.
<error> nrf_sdh_ble: sd_ble_enable() returned NRF_ERROR_NO_MEM.
<error> app: Fatal error

2) When updating to BLE_GAP_PHY_2MBPS getting again System reset

I am using Iphone 8 Plus to transfer data: on printing character maximumWriteValueLength i get value as 512

SDK: nRF5_SDK_16.0.0_98a08e2

Kit: nRF52840-DK

Am i correct thinking using queued write will be the fasted way to transfer data in volume? Is updating MTU, DLE not possible with it?

Please advice how i can make the data transfer faster?

Related