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

nRF52832 BLE UART Service Send Big Data

I am using nRF5_SDK_14.2.0_17b948a on a Fanstel BT832 module which is having nRF52832 SoC. And I am using s132_nrf52_5.1.0_softdevice.hex.

In my application, I need to send around 60KB of image data from host to device.

In my case host is Raspberry Pi3. I am using Nobel node.js BLE application. And BT832 module running ble_peripheral\ble_app_uart example.

Currently, i can send 64 bytes of data at once. But if I try to send more data, then I am not getting in nus_data_handler.

For 60KB transfer, it takes about 1 min 30 sec. Initially, i received data faster(i get into nus_data_handler faster) but gradually it slows down. Like around 15 KB of data i received in 20 sec and remaining 40 KB takes around 1 mins.

I have also disabled loops that send received data to UART. Actually, i need to send that data to SPI Display. So what I am doing, I copied 64 bytes data in a local array and set a flag in interrupt. and send to SPI in while loop. This works perfectly but takes a long.

So how can I increase data rate? Should i use any other service than uart?

Related