Bluedroid API : How to improve Data Transfer Rate ?
Posted: Thu Mar 09, 2023 7:46 am
Good morning,
I am working on a program where I would like to read a file which is on the embedded flash of a ESP32-WROOM1 (BLE Client)
module and to send it via BLE to a server module.
The algorithm seems to be ok and optimised, the MTU negociated is 255 and the connection parameters negociated are :
min int = 6
max int = 14
Conn int = 14
Latency = 0
Timeout = 3200.
I am reader the file chunck by chunck using approximatively MTU bytes each time, and I send it using the write_characteristic
command.
The program is waiting the WRITE_CHARAC_..._EVT in order to read and send the following chunck.
The Server is automatically acknowledging the write_characteristic (I do not remember how to choose between auto acknowledge and manual acknowledge ?).
Using these connexion parameters and the MTU I thought the transfer rate would be better than that.
Unfortunately, my file is 62146 bytes and it takes 11,47s to send it. So the transfer rate is 5418 bytes/sec...
It seems to be very low...
I would like to improve it but I don't know how to do this...
I do not understand why the transfer rate is so low !!
Could you please help me ???
Best regards,
Thomas TRUILHE
I am working on a program where I would like to read a file which is on the embedded flash of a ESP32-WROOM1 (BLE Client)
module and to send it via BLE to a server module.
The algorithm seems to be ok and optimised, the MTU negociated is 255 and the connection parameters negociated are :
min int = 6
max int = 14
Conn int = 14
Latency = 0
Timeout = 3200.
I am reader the file chunck by chunck using approximatively MTU bytes each time, and I send it using the write_characteristic
command.
The program is waiting the WRITE_CHARAC_..._EVT in order to read and send the following chunck.
The Server is automatically acknowledging the write_characteristic (I do not remember how to choose between auto acknowledge and manual acknowledge ?).
Using these connexion parameters and the MTU I thought the transfer rate would be better than that.
Unfortunately, my file is 62146 bytes and it takes 11,47s to send it. So the transfer rate is 5418 bytes/sec...
It seems to be very low...
I would like to improve it but I don't know how to do this...
I do not understand why the transfer rate is so low !!
Could you please help me ???
Best regards,
Thomas TRUILHE